Передача по modbus rtu большого количества данных(TIA PORTAL)

Инженерное программное обеспечение
Ответить
Stasyllius
Дилетант
Сообщения: 13
Зарегистрирован: 19 янв 2022, 11:26

Передача по modbus rtu большого количества данных(TIA PORTAL)

Сообщение Stasyllius »

Приветствую Всех! Если нужно передавать по модбас рту данные в количестве 50 дискретных и 50 аналоговых из плк cpu1214c в плк шнайдер электрик, то сразу приходит в голову такая схема: добавляется блок MB_COMM_LOAD и блок MB_SLAVE; создаем DB в который помещаем весь набор данных(дискретные предварительно записываем в слова) и помещаем адрес DB на вход MB_HOLD_REG блока MB_SLAVE, но будет ли такая конструкция работать? + если еще придется записывать несколько holding register из плк шнайдер в сименсе, то это уже функция 23(чтение/запись нескольких регистров), которая ни где в help-e не упоминается(это касается modbus rtu).

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Передача по modbus rtu большого количества данных(TIA PORTAL)

Сообщение Михайло »

SLAVE - это пассивное устройство, оно не командует, оно напротив принимает команды. На стороне S7-1200 (SLAVE) вы просто подготавливаете и постоянно актуализируете данные в датаблоке, а функция MB_SLAVE делает свое дело без какого-либо вмешательства, просто настройте эту функцию и запустите в цикле. Соответственно со стороны MASTER (Schneider Electric) должна приходить команда Read words (04) или другая из допустимых с некоторой регулярностью, необходимой хозяину (MASTERу). Вот на его стороне есть какая-то логика выбора команд, таймеры-задержки отправки команд и т.д.
И да, Modbus у Сименса несколько ограничен.

Stasyllius
Дилетант
Сообщения: 13
Зарегистрирован: 19 янв 2022, 11:26

Re: Передача по modbus rtu большого количества данных(TIA PORTAL)

Сообщение Stasyllius »

Если нужно в слэйве часть данных читать, а часть записывать. Для этого нужно создать блок данных и поместить в него и то и другое? И в блоке данных естественное номерация слов будет идти по порядку начиная с 0 для читаемого слова и заканчивая последним перезаписываемым словом, то в шнайдере по функции 4 будут читаться слова с 0, а по функции 6(16) будут перезаписываться слова с 0 адреса или это должно быть привязано к номеру в блоке данных слэйва в сименс? Или в общем нужно в слэйве разделить данные читаемые и перезаписываемые на разные блоки данных, создав по два нетворка с блоками MB_SLAVE ?

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Передача по modbus rtu большого количества данных(TIA PORTAL)

Сообщение Михайло »

Можно разместить все данные в одном блоке вроде как, но в разных структурах (Struct).

Stasyllius
Дилетант
Сообщения: 13
Зарегистрирован: 19 янв 2022, 11:26

Re: Передача по modbus rtu большого количества данных(TIA PORTAL)

Сообщение Stasyllius »

Михайло писал(а):
24 янв 2022, 14:48
Можно разместить все данные в одном блоке вроде как, но в разных структурах (Struct).
Благодарю за ответ. Буду пробовать.

Ответить