Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Функция чтения одного байта из входного буфера СОМ-порта



int ReadCom1(void);

Если чтение успешно, то возвращает ASCII-код символа (0 – 255), если ошибка чтения порта, то возвращает -1 (ошибка порта) или -6 (буфер пустой).

Функция посылки одного байта в СОМ-порт

int ToCom1(int data);

Функции передается ASCII-код передаваемого символа. В случае передачи байта возвращает 0, в противном случае -5.

Функция посылки n-байт данных в СОМ-порт

int ToCom1Bufn(char *buf, int no);

Функции передается адрес строки (buf) содержащего строку и количество передаваемых байтов. Если строка передана успешно, то возвращает 0 в противном случае -5.

Функция посылки строки в СОМ-порт

int ToCom1Str(char *str);

Функции передается адрес строки заканчивающиеся ASCII-нулем. Эта функция возвращает такие же значения, что и предыдущая функция.

Функция очистки всех данных из входного буфера СОМ-порта

int ClearCom1(void);

Возвращаемое значение 0.

 

 

Г) Функции для 5-цифрового ЖКД

Контроллер имеет 5 цифровой 7-и сегментный индикатор. Индикаторы пронумерованы как 1, 2, 3, 4 и 5 слева на право. Перед использованием их, пользователь должен вызвать функцию

void Init5DigitLed (void), и затем вызывать функцию:

int Show5DigitLed(int pos,int data)

Параметр pos может быть 1, 2, 3, 4 и 5 - определяет положение цифры. Параметр data может принимать значения от 0 до 17 (16-ичные цифры, 16 – пусто, 17- символ “-”).

Для вывода цифры с точкой следует вызывать функцию:

int Show5DigitLedWithDot(int pos,int data)

Пример. Вывод на индикатор числа 12.345

Show5DigitLed(1, 1);

Show5DigitLedWithDot(2, 2); //Будет показан “2.”

Show5DigitLed(3, 3);

Show5DigitLed(4, 4);

Show5DigitLed(5, 5);

 

Д) Функции для светодиода

Контроллер I-7188EAD имеет один светодиод, который, например, может показать режим работы контроллера. Для включения этого светодиода предназначена функция void LedOn(void), а для отключения светодиода – void LedOff(void).

Функция void LedToggle(void) переключает светодиод на противоположное состояние.

           

Е) Функция для задержки времени

void DelayMs(unsigned int time);

Эта функция задерживает время на указанное в параметре time число мс. Вызов этой функции не нуждается в инсталляции драйвера таймера.

 

Для посылки команд на модули 7000-серии следует использовать функцию:

int SendCmdTo7000 (int Port,unsigned char *Cmd,int ChkSum)

здесь Port – номер СОМ порта;

Cmd – строка, содержащая команду

Эта функция возвращает 0, если команда передана (ответ получен) или возвращает код ошибки.

После посылки команды, программа должна вызывать функцию

Int ReceiveResponseFrom7000(int Port, unsigned char *Buffer, long TimeOut, int ChkSum);

для получения ответа из модуля серии 7000.

- buffer – адрес буфера для сохранения ответа пришедшего из модуля 7000-серии.

- TimeOut – время прихода ответа (в мс). Функция ReceiveResponseFrom7000 контролирует время получения ответа.

Общие команды для модулей

Параметры обмена по сети RS485 по умолчанию

- Адрес: 01

- Скорость обмена: 9600 бод

- Контрольная сумма: отключена.

Рассмотрим общих команд на примере модуля I-7060D

1. $AAM – чтение имени модуля

Ответ: !AA(Data) – где Data имя модуля.

 

2. Команда ~** - Информирует всех модулей, что хозяин сети готов

Ответ: Ничего не возвращает

 

3. Команда $AA2 — чтение конфигурации

Ответ: !AA TT CC FF[chk](cr)

ТТ — тип модуля ввода/вывода: 40 для дискретных модулей.

СС – Скорость обмена

Код 03 04 05 06 07 08 09
Скорость 1200 2400 4800 9600 19200 38400 57600 115200

FF – Формат данных – определяет наличие контрольной суммы, и формат выводимых данных. Для дискретных модулей:

 

*1: Фронт сигнала для счетчика входного канала: 0=Задний фронт, 1=Передний фронт

*2: Контрольная сумма: 0=отключен, 1=включен

*3 :7050 = 000), 7060 = 001, 7052 = 010, 7053 = 011

 

4. Команда %AA NN TT CC FF — установка конфигурации

NN — новый адрес;

Ответ: !AA[chk](cr) — правильная команда.

 

5. Команда #** - Чтение каждого входа каждого модуля в сети RS-485 и сохранение их для дальнейшего опроса. Для опроса прочитанных данных должна выполняться команда $AA4.

 

/////////// Смотри еще команды в вопросе 6.


Поделиться:



Последнее изменение этой страницы: 2019-04-21; Просмотров: 231; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.016 с.)
Главная | Случайная страница | Обратная связь