Обозначение
Описание
Блок IEC104Server реализует протокол по стандарту МЭК-870-5-104, и определяет функцию контролируемой
станции (ведомый, слэйв)
Совместно с IEC104Server используются специальные буфера – IECBufIn для
получаемых
данных\команд, IECBufOut для отправляемых данных\команд. С помощью данных буферов
создаётся база Объектов
Информации (ОИ) участвующих в обмене по указанному протоколу.
Назначение входов и выходов
Входы:
-
enbl – режим работы:
- 0 – блок отключен.
- 1 – штатный режим работы.
- 2 – штатный режим работы без отправки данных (клиент считает, что сервер работает в штатном режиме).
- 3 – штатный режим работы без приема данных (клиент считает, что сервер работает в штатном режиме).
- 4 – штатный режим работы без отправки и приема данных (клиент считает, что сервер работает в штатном режиме. Отличается от режима 0 тем, что соединение не разрывается).
tmp – период вызова функции обнаружения событий (триггеры передачи данных и команд) (мс). См. Применение IECInfo.
lip – локальный IP адрес. Используется в случае наличия нескольких сетевых интерфейсов.
lprt – TCP порт для подключения клиентов.
sdr – для ОС QNX определяет путь к сетевому стеку.
evntsprio – приоритет потока обработки сообщений (при нуле наследуется от системой).
rxtxprio – приоритет потока приема\передачи и работы с сокетами (при нуле наследуется от системой).
clts – ограничение одновременно подключенных клиентов.
rxbsz – размер буфера приема (байт).
txbsz – размер буфера передачи (байт).
oa – адрес источника (не используется).
w – последнее подтверждение после приёма w кадров формата I.
k – максимальная разность между переменной состояния передачи и номером последнего подтверждённого кадра.
t1 – таймаут при посылке кадров (мс).
t2 – таймаут для подтверждения в случае отсутствия сообщения с данными (t2 < t1) (мс).
t3 – таймаут для посылки блоков тестирования в случае долгого простоя (мс).
qsz – глубина очереди сообщений.
evbufsz – размер буфера сообщений* (если ноль, то буфер не используется).
evbuftmo – время жизни сообщений в буфере* (сек) (если < 0, то время жизни не контролируется).
cpp – период отправки Циклических сообщений (мс).
bpp – период отправки сообщений Фонового Сканирования (мс).
cfg – конфигурация:
- бит 0 – синхронизировать время после установления связи (используется системное время).
- бит 1 – послать команду общего опроса после установления связи.
- бит 2 – использовать глобальное время (UTC) в метках времени.
- бит 3 – принудительно считать временные метки действительными.
- бит 4 – блокировать команду синхронизации времени.
- бит 5 – включать метку времени при отправке данных с причиной передачи: циклические.
- бит 6 – включать метку времени при отправке данных с причиной передачи: фоновые.
- бит 7 – включать метку времени при отправке данных с причиной передачи: общий опрос.
- бит 8 – использовать структурированный адрес (ТИ – 0x2000, ТС – 0x1000).
- бит 9 – отключить замещение старых данных новыми в очереди.
ctl – управление:
- бит 1 – инициировать команду общего опроса.
- бит 2 – инициировать команду общего опроса счетчиков.
dbg – конфигурация отладки.
- бит 0 - 7 – битовая маска, определяющая какие типы сообщений выводить. бит 0 - тип 1, ..., бит 7 - тип 8 (высший уровень)
- бит 8 – выводить в консоль
- бит 9 – выводить через paLog
- бит 10 – выводить через протокол отправки диагностических сообщений
ito – таймаут выполнения команды (мс).
sto – таймаут выбора команды (мс).
boi – коннектор для подключения IECBufOut.
Выходы:
-
itr – коннектор для подключения IECBufIn.
sts – выход статуса.
- бит 0 – есть связь.
- бит 1 – время синхронизировано.
Замечания
Все значения на входах блоков, за исключением входов управления и конфигурации отладки, фиксируются при
компиляции проекта. Это означает, что изменение значений на этих входах в режиме отладки не будут иметь эффекта.
*В сервере реализована возможность буферирования событий. Если на входе evbufsz указан ненулевой размер, то сервер создает кольцевой буфер данного размера. В этот буфер (независимо от того, подключен ли клиент, или выключена передача данных) попадают события, для которых включена эта опция (с помощью бита 5 на входе trt блока IECBufOut). После того, как буфер заполняется полностью, старые события начинают замещаться новыми. При подключении клиента, вначале сервер передает события из этого буфера, и только затем текущие события. События на передачу фильтруются в соответствии с заданным временем жизни событий в буфере.
*В сервере реализована возможность буферирования событий. Если на входе evbufsz указан ненулевой размер, то сервер создает кольцевой буфер данного размера. В этот буфер (независимо от того, подключен ли клиент, или выключена передача данных) попадают события, для которых включена эта опция (с помощью бита 5 на входе trt блока IECBufOut). После того, как буфер заполняется полностью, старые события начинают замещаться новыми. При подключении клиента, вначале сервер передает события из этого буфера, и только затем текущие события. События на передачу фильтруются в соответствии с заданным временем жизни событий в буфере.
Дополнительно
На рисунке ниже представлено распределение по потокам основных функций блока IEC104Server: