Избыточность
В резервированной системе «КАСКАД Цифра» на каждой стороне работает по одному Modbus-серверу. Запись конфигурации connectToRedundantHosts предоставляет два варианта подключения сервера Modbus к системе “КАСКАД Цифра”.
- connectToRedundantHosts = 0: Сервер Modbus подключен только к локальному менеджеру событий. Это означает, что клиент должен подключиться к обоим серверам Modbus в системе и отправлять команды на оба сервера, поскольку пассивный менеджер событий блокирует изменения значений.
- connectToRedundantHosts = 1: Не имеет значения, какой сервер Modbus выбран клиентом. Однако, если клиент отправляет команды на оба сервера, команды принимаются дважды в приложении “КАСКАД Цифра”.
Сервер Modbus не поддерживает резервные соединения. Если клиент устанавливает два соединения, оба соединения считаются обычными. Это означает, что сообщение в направлении мониторинга отправляется по обоим соединениям. Если клиент отправляет команду по обоим соединениям, обе команды обрабатываются и пересылаются приложению.
Области памяти и поддерживаемые функциональные коды
Память сервера Modbus /TCP “КАСКАД Цифра» разделена на 4 области, доступ к которым осуществляется с помощью различных функциональных кодов. Для каждой области может использоваться до 65536 бит или регистров.
Область памяти | Номер регистра или бита | Доступ через |
1: Входные дискреты | Бит 0 – 65535 | FC2 считывает дискретные входные данные |
2: Катушки | Бит 0 – 65535 | FC1 считывает катушки, FC5 записывает отдельные катушки, FC15 записывает несколько катушек |
3: Регистр ввода | Регистрация 0 — 65535 | FC4 считывает входной регистр |
4: Регистр хранения | Регистрация 0 — 65535 | FC3 считывает регистры хранения, FC6 записывает один регистр, FC16 записывает несколько регистров |
Следующая таблица содержит краткое описание функциональных кодов, поддерживаемых сервером Modbus/TCP “КАСКАД Цифра”.
Функциональный код | Код | Описание |
считывание катушек | 1 | Считывает состояние ВКЛЮЧЕНИЯ / выключения дискретного выхода. |
считывание дискретных входных данных | 2 | Считывает состояние ВКЛЮЧЕНИЯ / выключения дискретного входа. |
считывание нескольких регистров | 3 | Считывает двоичное содержимое регистра хранения. |
считывание входных регистров | 4 | Считывает двоичное содержимое входного регистра. |
катушка записи | 5 | Включает или выключает одну катушку |
запись в единый регистр | 6 | Записывает значение в регистр хранения. |
принудительно подключайте несколько катушек | 15 | Включает или выключает каждую катушку в последовательности катушек. |
запись нескольких регистров | 16 | Записывает значения в несколько регистров хранения. |
Типы данных
Поддерживаемые точки данных должны быть сопоставлены регистрам Modbus. Количество используемых регистров может быть определено в пользовательских данных каждого узла.
Например, это необходимо, если вы хотите представить элемент точки данных типа int как один регистр Modbus. В этом случае пользователь должен убедиться, что элемент точки данных не превышает диапазон номеров регистра Modbus. Если сопоставлен элемент точки данных, который занимает более одного регистра, необходимо убедиться, что следующий элемент точки данных сопоставлен следующему свободному регистру. Перекрывающиеся сопоставления приведут к появлению сообщения об ошибке.
Для определения количества используемых регистров используйте либо вкладку Plantmodel Editor – Modbus, либо функцию CTRL cnsSetProperty.
ПРИМЕЧАНИЕ
Редактор Plantmodel автоматически устанавливает соответствующий ключ в пользовательских данных. Если вы используете cnsSetProperty, вы должны установить ключ “OA: DMOD” для определения количества используемых элементов dyn и ключ “OA: MOD” для определения количества используемых регистров.
Поддерживаются следующие типы данных (а также соответствующие типы dyn):
Тип данных | Количество используемых регистров по умолчанию |
uint | 2 |
int | 2 |
float | 4 |
bool | |
bit32 | 2 |
длинный | 4 |
ulong | 4 |
bit64 | 4 |
строка | |
большой двоичный объект | |
время | 4 (дата / время, сохраненные как G12DateTime) |
ПРИМЕЧАНИЕ
Элементы точки данных типа bool или dyn_bool могут быть сопоставлены только с областью памяти 1 или 2. Все остальные типы данных могут быть сопоставлены только с областью памяти 3 или 4.
В случае типов данных “КАСКАД Цифра» без определенной длины (например, типов dyn или string) пользователь должен явно определить длину при сопоставлении с моделью данных Modbus.
Формат G12DateTime
Тип данных времени отображается в области памяти Modbus в следующем формате:
G12DateTime (дата и время, закодированные в виде четырех неподписанных 16-битных слов | ||
[16 бит] (формат Motorola) (секунды * 1000) + миллисекунды | ||
[8 бит] Минут | [1 бит] Флаг DST | [7 бит] Часов |
[3 бита] рабочий день (пн = 1) | [5 бит] день месяца | [8 бит] месяц (январь = 1) |
[8 бит] год основания (9 = 2009) | [8 бит] заполнение нулем |