Показать сообщение отдельно
Старый 28.02.2019, 15:37   #1
Artsen
Новичок
 
Регистрация: Jan 2019
Сообщения: 27
Благодарил(а): 2 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Связь по Modbus-485, панель Trim5. Неконтролируемая отправка телеграммы

Проблема решена, но остались вопросы и хочется бОльшего понимания о процессах происходящих внутри Trim5.
Требуется обеспечить общение с устройством на линии 485 с произвольным адресом.
Изначально была выстроена схема как на рисунке 1.

Устанавливаются параметры связи, после чего, в произвольном порядке, обеспечивается загрузка группы данных по адресу 10 или чтение группы регистров с адреса 20.
В ходе работы получается так: если первым идет запрос на запись данных, то на линии идут последовательно команды записи группы (16) с адреса 10, потом чтение группы (3) с адреса 10. Так же адекватными идут все последующие запросы общения с устройством, чтение группы (3) с адреса 20.
Но, если первым запросом идет команда чтение (3) с адреса 20, то на линии modbus идет сначала команда записи группы (16) с адреса 10 (контрольный запрос на чтение с адреса 10 не производится) и уже следом идет команда на чтение с адреса 20. Такая ситуация проявляется один раз после холодного старта или после загрузки программы. Не выявлено зависимости от порядка расположения элементов на поляне или устанавливаемых значений, есть зависимость только от последовательности действий. Неконтролируемая команда групповой записи происходит с holding регистрами карты modbus, которые имеют подключение к другим элементам схемы. Т.е. если отключить управление отправки регистра, то он отправляться не будет.

Проблема решилась установкой инвертирующего элемента в цепи управления командой записи, рисунок 2.

Т е, когда на входе держится статичная "1", то неконтролируемая команда на запись не производится.

Хочется узнать, это особенность программы/среды/панели или какая то моя принципиальная ошибка построения схемы.
Artsen вне форума   Ответить с цитированием