4.1.1.2.3.1.2. Функциональные возможности

 

Режимы работы модуля

 
Модуль Modbus TCP Master может работать в двух режимах: РАБОТА или РЕЗЕРВ. Режим работы модуля в Astra.Server устанавливает ядро. Режим работы модуля напрямую зависит от режима работы Astra.Server. В процессе работы режим работы Astra.Server может измениться.
 
Резервирование предназначено для повышения надежности системы управления. Резервирование Astra.Server необходимо для минимизации времени отсутствия основной функции систем управления, а именно времени потери функции управления станциями. Повышение надежности происходит благодаря тому, что при выходе из строя Astra.Server, содержащего модуль, происходит быстрое переключение на другой Astra.Server.
 
Время перехода модуля между режимами максимально оптимизировано. Время перехода увеличивается при использовании функций ограничения работы в режиме РЕЗЕРВ.
 
В режиме РАБОТА модуль выполняет функции:
ведет опрос подчиненной станции;
отправляет команды управления подчиненным станциям.
 
Отличия режима РЕЗЕРВ от режима РАБОТА:
управляющие воздействия подчиненным станциям не отправляются;
есть возможность регулирования ограничений нагрузки работы на подчиненную станцию. Нагрузка на подчиненную станцию увеличивается при множественных подключениях, а также при выполнении функций опроса и управления по множественным подключениям.
 
Ограничение режима работы в режиме РЕЗЕРВ предназначено для того, чтобы обеспечить корректную работу с устройствами, которые не поддерживают множественных подключений или не обеспечивают необходимой скорости работы с транзакциями в режиме постоянного опроса несколькими мастерами.
 
Скорость переключения между модулями зависит от настроек работы модуля в режиме РЕЗЕРВ. Имеются три варианта работы модуля в режиме РЕЗЕРВ:
"вести опрос" - в данном режиме модуль устанавливает связь с подчиненной станцией и отправляет запросы на чтение данных с подчиненной станции. При переключении между режимами не теряется время на установку соединения со станцией, а также на полный опрос этой станции. Рекомендованный вариант работы резервного модуля;
"поддерживать соединение" – в данном режиме модуль устанавливает связь с подчиненной станцией и проводит проверку соединения. При переключении между режимами не теряется время на установку соединения с подчиненной станцией;
"закрыть соединение" - в данном режиме модуль не устанавливает соединение и не проверяет состояние связи с подчиненной станцией, пока не перейдет в режим РАБОТА. Такой вариант работы используется, если подчиненная станция не поддерживает множественных подключений.
 

Стратегия формирования запросов на чтение

 
Модуль Modbus TCP Master предоставляет выбор варианта составления таблицы поллинга, т.е. возможность регулировки максимальной длины запроса на чтение, и выбор варианта учитывать или не учитывать разрывы данных в адресном пространстве протокола.
 
Существуют два варианта формирования таблицы поллинга. Один из них позволяет оптимизировать количество запросов, другой объем запрашиваемых данных. Выбор варианта формирования таблицы поллинга производится при конфигурировании модуля:
"По максимуму" - строится карта запросов максимальной длины, не учитывая фрагментацию запрашиваемых данных – объединение в один запрос расположенных не подряд данных. Например, если есть 2 сигнала с адресом 1 и 125, они объединяются в один запрос, лишние данные при получении игнорируются (т.е. игнорируются данные с адресами от 2 до 124). Таким образом, оптимизируется количество отправляемых запросов за счет увеличения трафика (количества переданной информации);
"На сплошные данные" - строится карта запросов только по необходимым данным. Таким образом, оптимизируется трафик за счет потери времени. Потеря времени происходит из-за необходимости построения и отправки нескольких запросов.
 
Максимальная длина запроса равна 125 регистров. Длина запроса задается в параметрах конфигурации модуля.
 
Формирование карты поллинга
Если заданы адреса на чтение 1, 7-25, 47, 130 то для стратегии формирования запросов:
по максимуму будут сформированы два запроса. Один из запросов по адресам от 1 до 125, второй запрос от 126 до 130;
на сплошные данные будет сформировано 3 запроса: по адресу 1, по адресам от 7 до 25, по адресу 47 и по адресу 130.
 

Опрос подчиненной станции

 
Опрос нескольких подчиненных станций ведется модулем параллельно, т.е. опрос одной станции не зависит от опроса другой станции.
 
При опросе подчиненной станции модуль отправляет запросы на чтение, сформированные в таблице поллинга. Количество одновременно активных запросов настраивается в параметрах модуля.
 
В начале опроса модуль в соответствии с настройками параметра "Максимальное количество одновременных запросов" отправляет станции N первых запросов по таблице поллинга. По мере поступления ответов модуль отправляет новые запросы, поддерживая количество одновременно доступных запросов не более, чем N.
 
 
На рисунке обозначено:
"- время ожидания ответа от станции (параметр конфигурации) промежуток времени, в течение которого модуль ждет ответа на запрос от подчиненной станции;
"i" - счетчик количества неуспешных запросов. Используется для определения состояния связи со станцией. С момента запуска модуля имеет значение равное 0 (i=0);
"N" - максимальное количество одновременных запросов (параметр конфигурации).
 
По истечении указанного времени Т счетчик количества неуспешных запросов увеличивается на 1 (i=i+1). Время отчитывается с момента отправки запроса на станцию. Если количество неуспешных запросов больше максимального количества неуспешных запросов (параметр конфигурации), то связь со станцией считается потерянной. Счетчик сбрасывается в 0 при нормальном завершении хотя бы одной операции запроса (i=0).
 
Модуль имеет четыре состояния связи со станцией: соединение отсутствует, ожидание подключения, соединение есть, запрашиваются или передаются данные. Отображение состояния связи ведется в служебном сигнале связи. Значениям служебного сигнала связи соответствуют следующие состояния связи:
соединение со станцией отсутствует, значение сигнала связи равно 0. Состояние устанавливается при запуске модуля и при разрыве связи со станцией;
ожидание подключения, значение сигнала связи равно 1. Это значение служебного сигнала связи принимается при попытках установить связь и при кратковременной потери связи. Если связь установлена, то выполняется переход в следующее состояние со значением сигнала связи 2, иначе выполняется переход в состояние со значением сигнала связи 0;
соединение со станцией установлено, значение сигнала связи равно 2. Значение устанавливается при появлении соединения со станцией;
запрашиваются или передаются данные, значение сигнала связи равно 3. Значение принимается при опросе станции или при отправке команд управления подчиненной станции. При кратковременной потери связи сигнал состояния связи принимает значение 1.
 
Если полученные данные с подчиненной станции не успевают обрабатываться и очередь данных достигает максимального размера, то опрос станции приостанавливается, происходит запись в журнал работы модуля об этом событии. Опрос подчиненной станции продолжается, когда уменьшится размер очереди данных.
 
Функция изменения порядка байт необходима для работы с определенными устройствами, которые на аппаратном уровне меняют местами байты в словах.
 
При опросе и выдаче управляющих воздействий модуль имеет возможность изменять порядок байт, параметры настраиваются в конфигурации модуля:
Байт в слове - включает/отключает изменение порядка следования байтов в регистре. В случае если флаг установлен, то байты регистра меняются местами.
 
Действие флага распространяется на все протокольные типы сигналов, кроме TS и TC.
 
Слов в сигналах ТМС, TR4 — включает/отключает изменение порядка следования слов в сигналах ТМС, TR4. В случае если флаг установлен, то слова данных меняются местами.
Если одновременно установлены флаги Слов в сигналах ТМС, TR4 и Байт в слове, то слова данных меняются местами и байты в словах меняются местами;
Слов в сигналах TMF4, TMF8, TRF4 — включает/выключает изменение порядка слов в сигналах TMF4, TMF8, TRF4. В случае если флаг установлен, изменение порядка следования слов происходит аналогично изменению порядка следования слов в сигналах ТМС, TR4. Если одновременно установлены флаги Слов в сигналах TMF4, TMF8, TRF4 и Байт в слове, то пары байтов меняются местами и в каждой паре байты меняются местами (рисунок выше).
 

Качество сигналов

 
В протоколе Modbus отсутствует понятие качества данных, и поэтому качество устанавливается модулем, исходя из результатов выполнения запросов. При старте модуля все сигналы имеют плохое качество.
 
Качества сигналов, выставляемых коммуникационным модулем, приведены в таблице:
 
Значение качества
Идентификатор качества
Расшифровка
4
CONFIG_ERROR
Сигнал неправильно сконфигурирован
8
NOT_CONNECTED
Сигнал принят на обслуживание, но устройство еще не инициализировано
12
DEVICE_FAILURE
Ошибка инициализации устройства
20
LAST_KNOWN
КП нет на связи, последнее пришедшее значение
24
COMM_FAILURE
КП нет на связи
28
OUT_OF_SERVICE
Модуль не запущен
64
UNCERTAIN
Связь установлена, но значения еще не пришли
192
GOOD
Значение сигнала достоверно
216
LOCAL_OVERRIDE
Значение достоверно, введено вручную
 
При переходе между резервными каналами и кратковременными пропаданиями связи качество сигналов не изменяется, так как предусмотрен параметр Таймаут потери связи (параметр конфигурации, рисунок ниже). Если связь со станцией потеряна, то начинается отчет времени, в течение которого модуль пытается восстановить соединение с подчиненной станцией – таймаут потери связи Т0. По истечению этого времени если соединение не удалось установить, то сигналам выставляется качество COMM_FAILURE.
 
 
Модуль имеет возможность обрабатывать ошибки, для того чтобы не выставлять плохое качество данных при возникновении единичных сбоев в поведении устройства, а также чтобы сохранить целостную картину при резервных переходах устройств. Алгоритмы обработки ошибок следующие:
если устройство при запросе данных возвращает строку SLAVE DEVICE BUSY (запись строки происходит в поле Качество сигнала), то запрос данных не повторяется, связь со станцией не меняется, модуль переходит к запросу следующих данных. Недоставленные данные перезапрашиваются в следующем цикле опроса;
если устройство при запросе данных возвращает строку ILLEGAL DATA ADDRESS (запись строки происходит в поле Качество сигнала), то по данному запросу инкрементируется счетчик ошибочных запросов. Если в течение трех циклов опроса устройства подряд возвращается ошибка ILLEGAL DATA ADDRESS, то данным запроса выставляется качество OPC_QUALITY_BAD. Любой корректный ответ по этим данным обнуляет счетчик. Счетчик взводится отдельно для каждого запроса в карте поллинга;
если устройство при запросе данных возвращает любой другой код ошибки, то по данному запросу инкрементируется счетчик ошибочных запросов. Если в течение трех циклов опроса устройства подряд возвращается данная ошибка, то данным запроса выставляется качество OPC_QUALITY_BAD и инкрементируется счетчик неуспешных запросов. При достижении максимального количества неуспешных запросов связь со станцией считается потерянной. Любой корректный ответ по этим данным обнуляет счетчик.
 

Метка времени

 
Протокол Modbus не оперирует понятием время возникновения данных, обычно сигналам присваивается время сервера на момент получения данных, свойство 4 (TimeStamp).
 
Модуль Modbus TCP Master реализует расширение спецификации в части передачи метки времени. Эта возможность может быть использована как для формирования в контроллере времени изменения значения, так и для формирования однозначной последовательности событий, возникающих на уровне контроллера, что невозможно в обычных условиях, так как опросчик может не успеть прочитать данные, если они очень быстро изменяются.
 
Для передачи метки времени параметров вводятся дополнительные типы данных в модуле Modbus TCP Master: TM2_TIME, TMF4_TIME, TMC_TIME, TMF8_TIME. Протокольные типы данных с меткой времени представляются логической структурой, представленной в таблице:
 
Рег./Поз.
8
7
6
5
4
3
2
1
8
7
6
5
4
3
2
1
1-4
Данные занимают от 1 до 4 регистров в зависимости от типа сигнала
5
секунды
миллисекунды
6
час
минуты
7
год
месяц
день
 
Для возможности взаимодействия модуля и контроллера на стороне контроллера следует поддержать формирование описанной структуры.
 
Модуль, работая с сигналом, который имеет тип с меткой времени, формирует запрос на чтение с учетом типа сигнала и дополнительной структуры длиной три регистра. При получении данных метка времени, лежащая в дополнительной структуре, преобразуется к стандартному времени и записана в свойство 4 (TimeStamp) одновременно с записью значения в свойство 2 (Value).
 
Для получения метки времени, у подчиненной станции должен быть поддержан формат структур (таблица выше) по сигналам, которые должны содержать метку времени. Поля структуры должны заполняться на стороне подчиненной станции. В Astra.Server должны быть указаны протокольные типы данных с меткой времени для сигналов.
 

Отправка управляющих и регулирующих воздействий

 
Отправка команд телеуправления и телерегулирования выполняется, только когда пара резервируемых серверов активна и Astra.Server находится в режиме РАБОТА.
 
Отправка управляющих воздействий имеет больший приоритет, чем опрос станций. При необходимости отправки управляющего воздействия модуль вставляет пакет, содержащий команду в начало очереди запросов на отправку подчиненной станции.
 
Отправка команд по резервным каналам происходит также как при опросе станций.
 
Модуль позволяет указать количество повторов отправки команд в случае неуспешной отправки. Повторы отправки команд происходят, если:
устройство вернуло в ответ исключение с кодом SLAVE DEVICE BUSY. Если в итоге запись так и не была выполнена, состояние связи не меняется;
устройство вернуло в ответ исключение с кодом ILLEGAL DATA ADDRESS, ILLEGAL DATA VALUE, состояние связи не меняется.
 
Если устройство вернуло в ответ исключение с любым кодом, кроме кодов, перечисленных выше, то отправка команд не повторяется, счетчик количества неуспешных запросов увеличивается на 1.
 
Если вышел таймаут ожидания ответа от станции, то отправка команд не повторяется, увеличивается счетчик количества неуспешных запросов.
Качество данных является показателем достоверности информации. Управляющие сигналы с недостоверной информацией отправлять недопустимо. Сигналы плохого качества не отправляются.
 
Для исходящих сигналов модуль позволяет настраивать сигналы доставки управляющих и регулирующих воздействий до подчинённой станции, которые формируются по правилам из таблицы:
 
Значение
Описание
2
Доставка подтверждена
1
Ожидание подтверждения доставки
-1
Нет связи со станцией
-2
Вышел таймаут подтверждения запроса
-1000 + код исключения
Устройство вернуло код исключения
 
Модуль имеет возможность отправлять все сигналы телерегулирования, при проявлении подчиненной станции на связи. При этом может произойти отправка сигнала, содержащего устаревшую информацию, из-за этого функцию необходимо использовать осторожно.
 
Отправка сигнала телеуправления (ТС) может проводиться в сегменте Holding Registers адресного пространства. Для возможности подачи телеуправления при конфигурировании сигнала следует указать номер бита, который будет устанавливаться в 1 при отправке телеуправления. При подаче телеуправления модуль формирует регистр для записи в устройство таким образом, что все биты, кроме указанного в настройках адреса сигнала телеуправления, будут сброшены в ноль. Например, если в адресе сигнала записано
"BitPosition=(5)", то при отправке ТС в Holding Registers запишется число "00000000 00010000" или "32" в зависимости от настроек подчиненной станции.
 

Резервируемые каналы связи

 
Резервирование каналов связи с устройством является одним из способов повышения надежности системы автоматизации. Разные производители устройств строят системы работы с резервируемыми каналами по-разному. В связи с этим модуль реализует несколько вариантов работы с подчиненными станциями по резервируемым каналам. Максимальное количество каналов связи Master-Slave равно 4. Количество настраивается в параметрах конфигурации.
 
Имеются три режима работы резервных каналов, предназначенных для того, чтобы:
максимально сократить время задержки доставки данных при переходе между резервными каналами связи;
сократить время отсутствия возможности передачи управляющих воздействий;
увеличить скорость опроса. Увеличение скорости опроса происходит благодаря тому, что запросы отправляются по каналам параллельно и за одно время работы пройдет в N раз больше запросов, где N – количество каналов связи.
 
Режимы работы резервных каналов следующие:
все каналы выполняют опрос станции. Для каждого канала, по которому ведется опрос устройства, модуль резервирует максимальное количество одновременно возможных транзакций. В данном режиме работы модуль считает все резервные каналы единым каналом с большой пропускной способностью. Количество свободных транзакций суммируется (рисунок ниже). При отказе работы одного из каналов весь трафик делится между оставшимися каналами;
один канал выполняет опрос, по остальным каналам поддерживается связь со станцией. Этот вариант используется для того, чтобы не перегружать устройство. В тоже время при переключении между каналами время переключения минимально. При отказе работы канала, выполняющего опрос, функция опроса передается другому каналу, выбор которого осуществляет модуль;
один канал выполняет опрос, связь со станцией по остальным каналам не поддерживается. Этот вариант используется в случае, когда устройство не поддерживает множественные подключения опросчиков, при необходимости переключения между каналами время перехода будет больше чем в предыдущих случаях.
 
 

Отправка управляющих и регулирующих воздействий

 
Отправка команд телеуправления и телерегулирования выполняется, только когда пара резервируемых серверов активна и Astra.Server находится в режиме РАБОТА.
 
Отправка управляющих воздействий имеет больший приоритет, чем опрос станций. При необходимости отправки управляющего воздействия модуль вставляет пакет, содержащий команду в начало очереди запросов на отправку подчиненной станции.
 
Отправка команд по резервным каналам происходит также как при опросе станций.
 
Модуль позволяет указать количество повторов отправки команд в случае неуспешной отправки. Повторы отправки команд происходят, если:
устройство вернуло в ответ исключение с кодом SLAVE DEVICE BUSY. Если в итоге запись так и не была выполнена, состояние связи не меняется;
устройство вернуло в ответ исключение с кодом ILLEGAL DATA ADDRESS, ILLEGAL DATA VALUE, состояние связи не меняется.
 
Если устройство вернуло в ответ исключение с любым кодом, кроме кодов, перечисленных выше, то отправка команд не повторяется, счетчик количества неуспешных запросов увеличивается на 1.
 
Если вышел таймаут ожидания ответа от станции, то отправка команд не повторяется, увеличивается счетчик количества неуспешных запросов.
 
Качество данных является показателем достоверности информации. Управляющие сигналы с недостоверной информацией отправлять недопустимо. Сигналы плохого качества не отправляются.
 
Для исходящих сигналов модуль позволяет настраивать сигналы доставки управляющих и регулирующих воздействий до подчинённой станции, которые формируются по правилам из таблицы:
 
Значение
Описание
2
Доставка подтверждена
1
Ожидание подтверждения доставки
-1
Нет связи со станцией
-2
Вышел таймаут подтверждения запроса
-1000 + код исключения
Устройство вернуло код исключения
 
Модуль имеет возможность отправлять все сигналы телерегулирования, при проявлении подчиненной станции на связи. При этом может произойти отправка сигнала, содержащего устаревшую информацию, из-за этого функцию необходимо использовать осторожно.
 
Отправка сигнала телеуправления (ТС) может проводиться в сегменте Holding Registers адресного пространства. Для возможности подачи телеуправления при конфигурировании сигнала следует указать номер бита, который будет устанавливаться в 1 при отправке телеуправления. При подаче телеуправления модуль формирует регистр для записи в устройство таким образом, что все биты, кроме указанного в настройках адреса сигнала телеуправления, будут сброшены в ноль. Например, если в адресе сигнала записано "BitPosition=(5)", то при отправке ТС в Holding Registers запишется число "00000000 00010000" или "32" в зависимости от настроек подчиненной станции.