Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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

Передача команд и прием ответов из модулей серии 7000

Порт СОМ2 у контроллера I-71788EAD работает по интерфейсу RS-485. Как известно, этот интерфейс используется для создания распределенной системы сбора данных на основе модулей серии I-7000.

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

int SendCmdTo7000 (int Port,

unsigned char *Cmd,

int ChkSum)

 

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

Cmd – строка, содержащая команду (массив символов заканчивающиеся ASCII нулем). Команда не должна заканчиваться символом 0x0d. Эта функция будет сама посылать этот символ.

ChkSum – 1, если посылать команду с контрольной суммой и 0, если посылать команду без контрольной суммы. Если контрольная сумма разрешен, то эта функция будет добавлять в конец команды 2 байта контрольной суммы.

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

Функция SendCmdTo7000 будет контролировать направление передачи по RS-485, т.е. вначале переключает сеть на передачу, а после передачи переключается на прием.

 

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

int ReceiveResponseFrom7000 (int Port,

unsigned char *Buffer,

long TimeOut,

int ChkSum);

для получения ответа из модуля серии 7000. Если посланная команда не посылает ответа, то не следует вызывать эту функцию. Эта функция имеет почти такие же параметры, что и предыдущая функция:

- Port – номер порта, должен быть 1 или 2 для портов СОМ1 или СОМ2.

- buffer – адрес буфера для сохранения ответа пришедшего из модуля 7000-серии. Ответ заканчивается символом 0х0d. Эта функция удаляет этот символ (а точнее, заменяет его ASCII-нулем). Если контрольная сумма включена, то эта функция будет контролировать его и удалить контрольную сумму из сообщения.

- TimeOut – время прихода ответа (в мс). Функция ReceiveResponseFrom7000 контролирует время получения ответа. Если за это время не получен символ 0x0d, функция возвращает ошибка TimeOut (-5).

- ChkSum равен нулю, если контрольная сумма отключена, и равна 1, если контрольная сумма включена.

До вызова команды получения ответа пользователь должен быть уверен, что все данные отправлены СОМ портом. Для этого предназначена функция:

Int WaitTransmitOver2(void);

При передаче данных эта функция возвращает 0, в противном случае TimeOut (-5). В конце заметим, что имеются аналоги этой функции для других СОМ-портов.

 

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

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

- Адрес: 01

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

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

 

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

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

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

 

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

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

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

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

 

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

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

Код              
Скорость                

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.

 


1. Модуль дискретного ввода/вывод I-7060D

Модуль I-7060D имеет 4 оптоизолированного входа. Схема включения входных сигналов представлена ниже:

На входы могут подаваться напряжения до 30 В. Уровень лог. 0 до 1 В, уровень лог. 1 – от 4 В до 30 В.

Модуль I7060D имеет 4 релейных выхода. Релейные выходы RL1 и RL2 имеют нормально разомкнутые контакты, а релейные выходы RL3 и RL4 имеют переключающиеся контакты. Контакты могут пропускать токи до 0.6 А при напряжении ~125 В и токи 2 А при напряжении =30 В.

Структурная схема модуля I-7060D представлена ниже:

 



<== предыдущая лекция | следующая лекция ==>
Лекции по программированию на Паскале. Часть 2 | Характеристики гидромотора.
Поделиться с друзьями:


Дата добавления: 2016-12-31; Мы поможем в написании ваших работ!; просмотров: 536 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

80% успеха - это появиться в нужном месте в нужное время. © Вуди Аллен
==> читать все изречения...

2294 - | 2147 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.