Найти в Дзене

Настройка обмена данными между несколькими датчиками и ПЛК EVCO по Modbus RTU

В прошлый раз мы обсуждали возможность обмена данными между датчиком и ПЛК EVCO по Modbus RTU, а также разобрались, как это настроить. А теперь представим, что нам необходимо реализовать опрос ПЛК четырёх датчиков, соответственно запрограммировать четыре команды. На рис.1 приводится общая структура опроса датчиков. Блок «SM_ModbusMaster» анализирует статус блоков «ModbusMaster_ReadSingleHoldingRegister» и разрешает или запрещает отправлять следующий запрос, ведь, если отправлять запросы просто по времени, например каждую секунду, то, произойдёт коллизия с наложением данных, которая приведёт к ошибкам связи. Программный код блока «SM_ModbusMaster» приводится на рис.2. Блок «SM_ModbusMaster» выдает команду разрешение, которая поступает на блоки «AL_Enable_Slave». Блоки «AL_Enable_Slave» реализуют контроль очередности запросов от мастера устройства к подчинённым устройствам. Программный код блока «AL_Enable_Slave» приводится на рис.3. В подпрограммах «Датчик» находиться структура, которую

В прошлый раз мы обсуждали возможность обмена данными между датчиком и ПЛК EVCO по Modbus RTU, а также разобрались, как это настроить. А теперь представим, что нам необходимо реализовать опрос ПЛК четырёх датчиков, соответственно запрограммировать четыре команды. На рис.1 приводится общая структура опроса датчиков.

Рисунок 1 - Общая структура опроса датчиков
Рисунок 1 - Общая структура опроса датчиков

Блок «SM_ModbusMaster» анализирует статус блоков «ModbusMaster_ReadSingleHoldingRegister» и разрешает или запрещает отправлять следующий запрос, ведь, если отправлять запросы просто по времени, например каждую секунду, то, произойдёт коллизия с наложением данных, которая приведёт к ошибкам связи. Программный код блока «SM_ModbusMaster» приводится на рис.2.

Рисунок 2 – Программный код блока «SM_ModbusMaster»
Рисунок 2 – Программный код блока «SM_ModbusMaster»

Блок «SM_ModbusMaster» выдает команду разрешение, которая поступает на блоки «AL_Enable_Slave». Блоки «AL_Enable_Slave» реализуют контроль очередности запросов от мастера устройства к подчинённым устройствам. Программный код блока «AL_Enable_Slave» приводится на рис.3.

Рисунок 3 – Программный код блока «AL_Enable_Slave»
Рисунок 3 – Программный код блока «AL_Enable_Slave»

В подпрограммах «Датчик» находиться структура, которую мы разбирали в прошлой публикации. Внизу расположен блок «ALG_CommunicationError_Slave», который является счетчиком ошибок. Программный код блока «ALG_CommunicationError_Slave» приводится на рис.4.

Рисунок 4 - Счетчик ошибок
Рисунок 4 - Счетчик ошибок

Если вы хотите улучшить свои производственные процессы и повысить эффективность работы, то оставляйте заявку на наше оборудование уже сегодня! Оставить заявку на нашем сайте