Поддерживаются функции 1, 2, 3, 4, 5, 6, 15 и 16.
Физическое соединение по сети RS485 осуществляется по топология "шина":
Каждый порт RS485 может быть независимо запрограммирован для работы в одном из двух режимов: Slave или Master. В спецификации MODBUS эти режимы называются также Server и Client, соответственно.
Порт Ethernet поддерживает только протокол MODBUS TCP Server. Возможно включить режим трансляции запросов из TCP в RS485 (режим шлюза RTU/TCP). В этом режиме контроллер перенаправляет все запросы, у которых Slave ID не равен нулю, на соответствующий порт RS485 (он должен быть настроен на режим Master).
В сети RS485 обычно существует несколько ведомых устройств, каждое из которых имеет уникальный сетевой номер (идентификатор, Slave ID). Для каждого порта RS485 задается отдельный сетевой номер (переменная RS485_X_Slave_ID). Сетевой номер и другие параметры портов можно настроить через системные переменные и через системные MODBUS-регистры, описанные в Инструкции по эксплуатации.
Если порт работает в режиме Slave, ему назначается определенный профиль MODBUS. Профиль - это заранее настроенные таблицы регистров (Inputs, Coils, IR, HR). Предусмотрено 3 профиля, т.е. есть возможность назначить разные таблицы регистров для трех разных портов. Один и тот-же профиль можно использовать для разных портов. В этом случае через эти порты будут доступны одни и те-же таблицы регистров.
В сети RS485 может быть только одно Master-устройство.
Если порт контроллера запрограммирован на работу в режиме Master, то для записи новой программы через этот порт, контроллер должен быть переведен в режим INIT. Подробнее об этом написано в разделе "Запись программы".
Каждый запрос имеет такие параметры:
Если переменная Разрешение выбрана, то запрос выполняется только если значение этой переменной равно 1 в тот момент, когда пришла очередь выполнить данный запрос. Если подошла очередь данного запроса и Разрешение = 1, то начинается выполнение этого запроса, а в переменную Разрешение записывается 0, т.е. Разрешение сбрасывается автоматически при каждом выполнении запроса. Автосброс дает возможность точно управлять запросами. Например, организовать однократное выполнение запроса по какому-нибудь событию.
Если переменная Разрешение не выбрана, то запрос выполняется всегда.
После завершения запроса в переменную Результат записывается результат выполнения запроса:
Переменная Счетчик ошибок увеличивается на 1 после каждого неудачного запроса.
В физическом интерфейсе Ethernet имеется несколько программных портов MODBUS TCP. Количество этих программных портов равно количеству портов RS485, предусмотренных в данной модели контроллера. Несколько программных портов сделано для того, чтобы можно было организовать шлюз TCP/RTU (см ниже).
Через каждый программный порт контроллер позволяет принять два одновременных TCP-соединения. При попытке подключить третье соединение, первое из существующих соединений разрывается и новое соенинение подключается. Это соответствует логике, описанной в документе "MODBUS MESSAGING ON TCP/IP IMPLEMENTATION GUIDE V1.0b".
Если в параметрах программного порта MODBUS TCP установлен параметр "Шлюз в RS485", то на данном программном порту будет активирован режим шлюза TCP/RTU. Данный флаг доступен только в том случае, если соответствующий порт RS485 настроен на режим Master.
Шлюз TCP/RTU работает следующим образом:
Когда на порт MODBUS TCP приходит запрос с полем Slave ID не равным нулю, этот запрос преобразуется в формат MODBUS RTU и отправляется в соответствующий порт RS485 (порт с тем-же индексом, что и данный программный порт TCP). При получении ответа, этот ответ преобразуется из формата MODBUS RTU в формат MODBUS TCP и отправляется TCP-клиенту, который послал исходный запрос. Более детально работа шлюза и возможные сообщения об ошибках описаны в документе "MODBUS MESSAGING ON TCP/IP IMPLEMENTATION GUIDE V1.0b".
Если параметр Slave ID в TCP-запросе равен нулю, то контроллер трактует этот запрос, как "свой" и отвечает на него в соответствии с выбранным профилем MODBUS. Т.е. предоставляет доступ к своим переменным через соответствующие таблицы регистров (если в настройках TCP-порта флаг "Шлюз в RS485" не установлен, то Slave ID игнорируется и контроллер все запросы интерпретирует как "свои").
Для порта RS485, настроенного на режим Slave, можно включить режим пересылки запросов в другой порт RS485, который настроен на режим Master. При помощи этой функции можно, например, организовать доступ нескольких Master-устройств к Slave-устройствам в сети RS485.
Если контроллер получает запрос через Slave-порт и Slave ID в этом запросе больше, чем Slave ID, присвоенное данному порту, то этот запрос транслируется в другой порт RS485 (Master-порт), а ответ передается обратно в исходный Slave-port.