Для настройки коммуникаций с панелью HMISGU по Modbus TCP в качестве Сервера, необходимо проделать следующее:
Используем только функционал встроенный в среду разработки SystemeHMI Studio:
- В настройках Project->Communication Connection -> Service выбираем протокол для панели по Ethernet порту как «Modbus_TCP_Server». В качестве IP адреса конфигурируемого Сервера автоматически присваивается IP адрес нашей панели оператора.
- Ставим галочку на Enable Address Mapping
- Открываем Таблицу Address Mapping и создаем запись, в которой определяем тип данных переменных и совместные области памяти как в области памяти удаленных устройств Service Address «4Х», так и в области локальных данных панели Device Map Address например «LW» .
- Указываем начальные адреса областей обмена данными (я сделал их совпадающими -> %MW2017 и LW2017) и открыл область в качестве примера в 10 слов .
- Сохраняем настройки всех открытых окон.
- Переходим в Главное Окно проекта (которое будет открыто на панели чаще всего)
- Щелчком правой кнопкой мыши выбираем опцию Window Properties и в закладке Timed Data Transmission создаем новый Элемент.
- В этом элементе в закладке Trigger and Stop выбираем условия запуска передачи данных (например запуск при открытии этого окна), а в закладке Data Transmission задаем направление передачи данных, тип передаваемых данных, и количество, начальные адреса ячеек памяти регистров в Источнике и Приемнике. Я назначил в качестве источника данные из удаленного устройства Power Meter с начальным адресом %MW2017 , а в качестве приемника – внутреннюю область памяти панели с начальным адресом LW2017, как и было ранее оговорено в настройках Modbus_TCP_Server-а.
После компиляции и загрузке этих настроек в панель мы можем внешним клиентом пересылать данные в регистры LW панели по Modbus TCP и использовать эти данные в проекте.
Ограничения.
В закладке Data Transmission в параметре Transport Type допустимыми являются 3 типа данных – 16 bit INT, 32 bit INT, 32 bit FLOAT.