PDA

Просмотр полной версии : Отслеживание обрыва связи modbus codesys



Velv
11.02.2024, 15:27
Здравствуйте. По каким переменным в codesys можно отслеживать обрыв связи с модулями?

У меня есть ПЛК210 с моделями МУ210, МВ210 и панель СП307Р. Связаны по ModbusTCP через Ethernet, соответственно ПЛК мастер, а остальные - слейвы. На панели есть поля ввода скоростей для частотников, управляемых от ПЛК. Значения из этих полей ПЛК собирает и хранит у себя в VAR_Retain области. Каналы сбора данных настроены так, чтобы сохранять последние значения.

Решил проверить сохранение введённых данных. Отключаю Ethernet кабель от панели - ПЛК видит, что связь пропала и значения скоростей сохранились. Выключаю питание контроллера и через 10 секунд снова включаю. Соединяюсь по codesys и вижу, что скорости обнулились. Предполагаю, что после перезагрузки контроллера он пытается получить значения от панели, но из-за отсутствия связи получает 0 и записывает эти значения. Либо Retain плохо работает в ПЛК.

Хочу отслеживать состояние связи по modbus tcp и при отсутствии связи запретить плк переписывать полученные значения, но никак не могу найти способ выразить ошибку связи с модулем в виде переменной. Пробовал IoDrvModbusTCP и IoDrvModbusTCP.ModbusTCPSlade_Diag - никак не реагируют, все выходы false и undefined. Заметил, что при подключении онлайн если зайти в слейв устройство и выбрать вкладку ModbusTCPSlave МЭК-объектов есть структура Device.Application.SP307 типа IoDrvModbusTCP.ModbusTCPSlade_Diag и в ней есть переменная xInitDone, которая реагирует на включение и отключение кабеля панели, но пытаясь вызвать в коде программы блок с названием Device.Application.SP307 и типом IoDrvModbusTCP.ModbusTCPSlade_Diag или поставить контакт с названием Device.Application.SP307.xInitDone компилятор жалуется, что не задан идентификатор Application.

Собственно вопрос - как отслеживать обрыв связи ModBus? В довесок было бы интересно как отслеживать обрыв связи по RS485 с частотниками.

Евгений Кислов
11.02.2024, 15:32
Добрый день.


Собственно вопрос - как отслеживать обрыв связи ModBus? В довесок было бы интересно как отслеживать обрыв связи по RS485 с частотниками.

https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Modbus_v3.2.pdf
п. 3.4 и 4.6


Соединяюсь по codesys и вижу, что скорости обнулились. Предполагаю, что после перезагрузки контроллера он пытается получить значения от панели, но из-за отсутствия связи получает 0 и записывает эти значения.

Там же, табл. 4.2.3, параметр "Обработка ошибок".

StirlitzSD
08.04.2025, 15:14
Вопрос решился. При пропадании связи на мастере ПЛК210 срабатывает реле, отключая питание с панели, зажигая аварийный светодиод, при восстановлении связи все возвращается, светодиод, соответственно, гаснет, панель включается, система работает...