Энциклопедия АСУ ТП Спонсор проекта: Skip Navigation LinksЭнциклопедия АСУ ТП : 2 Промышленные сети и интерфейсы : 2.10 Протокол DCON Соспонсор:




Робот BotEyes




Промышленные контроллеры RealLab!

2.10. Протокол DCON

Протокол DCON, использованный в модулях фмрмы ICP DAS не относится к стандартным, однако очень широко распространен в России благодаря популярности модулей RealLab! серии NL фирмы RealLab! и усилиям фирм, продвигающих на Российский рынок изделия Тайваньских производителей ICP DAS и Advantech.

Этот протокол использует только физический и прикладной уровень модели OSI. На физическом уровне используется прямое двоичное кодирование, когда логический ноль представлен низким уровнем напряжения в шине RS-485, логическая единица - высоким уровнем. Требования к среде передачи (витая пара) определяются стандартом на интерфейс RS-485.

Широкая популярность протокола DCON обусловлена отсутствием необходимости в специализированных микросхемах для реализации стека протоколов, что существенно снижает себестоимость устройств, а, следовательно, цену для конечного потребителя. С другой стороны, у системного интегратора уменьшаются затраты на обучение, поскольку применение протокола предельно простое.

Протокол DCON используется в архитектуре "ведущий - ведомый". В сети может быть 255 ведомых устройств, но только одно ведущее, что в принципе исключает возможность конфликтов.

Для увеличения надежности передачи информации на физическом уровне используется простейший способ - вычисление контрольной суммы. Канального уровня в протоколе нет и поэтому ошибки передачи могут быть выявлены только на прикладном уровне, непосредственно граничащем с программой пользователя.

Рис. 2.34. Формат кадра протокола DCON

Кадры протокола DCON имеют структуру, показанную на рис. 2.34. Каждый кадр начинается с разделителя, в качестве которого могут быть использованы знаки: $, #, %, @, *, в ответах ведомого устройства используются символы ~, !, ?, >.

За некоторыми командами следуют данные, но их может и не быть. Контрольная сумма, состоящая из двух символов, может отсутствовать. Каждый кадр должен оканчиваться символом возврата каретки cr (ASCII код 0Dh).

Контрольная сумма (CHK) состоит из двух символов (в нее не включается код символа возврата каретки) и позволяет обнаружить ошибки в командах, посланных из ведущего устройства, а также в ответах ведомого.

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

Контрольная сумма представляется двумя ASCII символами шестнадцатеричного формата и передается непосредственно перед "возвратом каретки" (cr). Она должна быть равна сумме кодовых значений всех ASCII символов команды и быть представлена в шестнадцатеричной системе счисления. Если сумма больше FFh, то в качестве контрольной суммы используется только ее младший байт.

Например, если нужно переслать ведомому устройству команду $012(cr), то сумма ASCII кодов символов команды (символ возврата каретки не считается) равна

“$”+”0”+”1”+”2” = 24h+30h+31h+32h=B7h, контрольная сумма равна B7h, т.е. перед символом (cr) в команде надо указать ”B7”, и команда $012(cr) будет выглядеть как $012B7(cr).

Если ответ модуля на эту команду без контрольной суммы получен в виде, например, !01400600(cr), то сумма ASCII кодов символов этой команды равна:

“!”+”0”+”1”+”4”+”0”+”0”+”6”+”0”+”0”=21h+30h+31h+34h+30h+30h+36h +30h +30h =1AСh, и контрольная сумма для этого случая равна ACh, т.е. ответ модуля при работе с контрольной суммой будет, например, !014006С0AC(cr), где предпоследний байт С0 означает, что установлен режим обмена с контрольной суммой.

При написании программы прикладного уровня используется набор команд, примеры которых приведены в табл. 2.15.

Табл. 2.15. Примеры команд протокола DCON

Команда

Ответ

Описание

%AANNTTCCFF

!AA

Устанавливает адрес, диапазон входных напряжений, скорость обмена, формат данных, контрольную сумму

#AA

>(Data)

Возвращает все входные значения для заданного модуля

#AAN

>(Data)

Возвращает входное значение в канале номер N для модуля с заранее заданным адресом

$AA0

!AA

Выполняет калибровку аналогового модуля для компенсации погрешности коэффициента передачи

$AA1

!AA

Выполняет калибровку аналогового модуля для компенсации погрешности смещения нуля

$AA2

!AATTCCFF

Возвращает параметры конфигурации модуля с указанным адресом

$AA8

!AAV

Читает конфигурацию светодиодного индикатора

$AA8V

!AA

Устанавливает конфигурацию светодиодного индикатора

Команды протокола DCON делятся на 4 типа:

  • команды модулей аналогового ввода;

  • команды модулей аналогового вывода;

  • команды дискретного ввода-вывода;

  • команды счетчиков/таймеров.

Рассмотрим пример применения команды #AA (см. табл. 2.1) для получения данных из модуля аналогового ввода.

Синтаксис команды: #AA[CHK](cr), где AA - адрес модуля (от 00 до FF).

Ответ модуля на эту команду имеет вид >(Data)[CHK](cr), если команда выполнена. Здесь > - символ-разделитель при выполненной команде; (Data) - измеренные данные. Если имели место синтаксические ошибки или ошибки связи, то ответа нет.

Например, для опроса модуля с адресом 01 рассматриваемая команда примет вид #01(cr). Ответ на нее может выглядеть следующим образом:

 >+1.2345+0.3456+0.0001+2.5000+1.2345+0.3456+0.0001+2.5000

В ответе представлены 8 значений напряжений на 8 входах модуля ввода.

Подробное описание команд протокола DCON можно найти на вебсайте RealLab!.


© RLDA Ltd. info@rlda.ru  Спонсоры проекта: , а также