Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Положительный и отрицательный фронт
В STL контакту Положительный фронт соответствует команда EU (Edge Up). В STL контакту Отрицательный фронт соответствует команда ED (Edge Down).
6. Язык SCL на примере контроллера I-7188 ф. ICP DAS. Пример. Дублирование состояния входов на выходах. Порт СОМ2 у контроллера I-71788 EAD работает по интерфейсу RS-485. Как известно, этот интерфейс используется для создания распределенной системы сбора данных на основе модулей серии I-7000. Для посылки команд на модули 7000-серии следует использовать функцию: int SendCmdTo7000 (int Port,unsigned char *Cmd,int ChkSum) здесь Port – номер СОМ порта; Эта функция возвращает 0, если команда передана (ответ получен) или возвращает код ошибки. После посылки команды, программа должна вызывать функцию int ReceiveResponseFrom7000 (int Port,unsigned char *Buffer,long TimeOut, int ChkSum); для получения ответа из модуля серии 7000. Общие команды для модулей Параметры обмена по сети RS485 по умолчанию - Адрес: 01 - Скорость обмена: 9600 бод - Контрольная сумма: отключена. Рассмотрим общие команды на примере модуля I-7060D 1. $AAM – чтение имени модуля Ответ: !AA(Data) – где Data имя модуля.
2. Команда ~** - Информирует всех модулей, что хозяин сети готов Ответ: Ничего не возвращает
Модуль дискретного ввода/вывод I-7060D Модуль I-7060D имеет 4 входа и 4 релейных выхода. Релейные выходы RL1 и RL2 имеют нормально разомкнутые контакты, а релейные выходы RL3 и RL4 имеют переключающиеся контакты. Основные команды для работы с входами и выходами 1. @AA - Чтение состояния дискретных входов/выходов. Ответ: >(Data) здесь (Data) – прочитанное состояние дискретных входов/выходов. Пример. Команда: @01. Ответ: >0F09 0F – состояние выходов. 09 – состояние входов.
2. @AA(Data) - Установка дискретных выходов. Data – значение выходных данных. Один символ для выходных каналов, меньше чем 4. Для модуля I-7060 Data принимает значения от 0 до F. Ответ: > Пример. Команда: @01F. Ответ: > Установка всех выходов на лог. 1.
3. #AABBDD - Установка дискретных выходов. Эта команда дублирует предыдущую команду. BB – определяет режим вывода: 1. BB = 00 – вывод на все каналы. При этом DD определяет состояние выходов. Для модуля I-7060 DD может находиться от 00h до 0Fh. 2. BB = 1c – установка значения одного канала. Число с – определяет номер канала. Для модуля I-7060 число с = 03. При этом DD определяет состояние выхода: DD=01 – установка канала; DD=00 – обнулить канал. Ответ: Правильная команда > Пример. Команда: #01 00 0F. Ответ: > Предполагаемый модуль I-7060 с адресом 01. Установка всех выходов 0Fh=1111b. Возвращает успешное выполнение команды.
4. $AA6 - Чтение состояния дискретного ввода/вывода Ответ: !(Data) (Data) значение дискретного ввода/вывода. Для модуля I-7060D ответ будет например, таким: !0F0900. Назначение цифр: 0F - состояние 4-х выходов, 09 – состояние 4-х входов, 00 – ничего не означает. Биты 16-ичной цифры определяют состояние соответствующего входа или выхода.
5. $AA4 - Чтение синхронно выбранных данных Ответ: Правильная команда: !S(Data) Неправильная команда: ?AA S – статус синхронных данных, 1 - первое чтение, 0 – повторное чтение. Пример. Команда: $014. Ответ: !10F00 Чтение по адресу 01. S=1 – первое чтение. Данные – 0F – состояние выходов; 00- состояние входов для модуля I-7044.
6. Команда #** - синхронное чтение модулей.
ПРИМЕР: Дублирование состояния входов на выходе
#include
Int data, quit=0; Unsignes_char Response [40], Command [40], in; Void { InstallCom2(9600,8,0); Strcat(Command, “@01”); //Цикл контроллера While (!quit) { If (kbhit()) { Data=Getch(); If (data==’q’)quit=1; } SendCmdTo7000(2,”@01”,0); ReceiveResponseFrom7000(2,Response,10000L,0); //ответ: >0F0A In=Response[4]; Command[3]=in; Command[4]=0; SendCmdTo7000(2,Response,10000L,0); } //конец цикла RestoreCom2(); } Система команд для чтения/записи данных на модули, включенные в сеть RS-485. Библиотечные функции контроллера I-7188 для доступа к удаленным модулям. Система команд контроллера I-7188 EAD А) Команды чтения и записи на порта Контроллер I-7188 EAD имеет 8 дискретных входов и 7 дискретных выходов. Для чтения состояния дискретных входов и изменения состояния дискретных выходов можно использовать следующих команд: Inp(порт) - считывание состояния дискретных входов. Outp(порт, значение) – записывает значение в указанный порт. int Kbhit (void) – проверяет, имеется ли символ в буфере клавиатуры. Если данных нет, то возвращает 0. Если данные имеются, то возвращает символ. int Getch(void) - считывает один символ из порта СОМ1 и возвращает его (число от 0 до 255). Если в буфере порта не имеется символа, то функция будет ожидать до тех пор, пока не появится символ. void Putch (int data) – посылает один символ на порт СОМ1 (только младший байт будет послан)
Б) Инсталлирование драйвера СОМ-порта и снятие драйвера Перед использованием СОМ-порта, пользователь должен вызывать функцию InstallCom (или InstallCom1/2/3/4) для инсталляции драйвера СОМ-порта. Перед выходом из программы, пользователь должен вызывать функцию RestoreCom (или RestoreCom1/2/3/4) для снятия драйвера COM-порта.
В) Функции для работы с СОМ-портами Функция проверки на наличие данных во входном буфере СОМ-порта: int IsCom1(void); Если буфер СОМ-порта пустой, то возвращает 0, если в буфере имеются данные, то возвращает 1. Если буфер СОМ-порта переполнен, то возвращает -7. Для снятия статуса переполнения следует считывать данных из СОМ порта с помощью функции ReadCom( ). |
Последнее изменение этой страницы: 2019-04-21; Просмотров: 276; Нарушение авторского права страницы