PDA

Просмотр полной версии : Конфликт Modbus RTU регистров



Evdoc
24.06.2019, 22:45
Извините но не нашел в форуме ответа.
Есть ПР200 который общается через Modbus с неким устройством.
Это устройство ведомое.
Регистр 0 тип bool это запуск
Регистр 0 int это управляющий сигнал

OWEN Logic выдает ошибку при создании данного перечня регистров для подчиненного устройства.

Есть ли выход из данной особенности оборудования?
Попробовал на другом контроллере все работает, но не проходит по температуре эксплуатации. Оборудование будет эксплуатироваться на улице.

bayk
24.06.2019, 23:12
В принципе это довольно странная нумерация регистров. Может это всё-таки не два нуля? А есть какие-то приписки? Посмотрите апноты к этому оборудованию где приведены примеры обмена.

Ревака Юрий
25.06.2019, 07:46
Извините но не нашел в форуме ответа.
Есть ПР200 который общается через Modbus с неким устройством.
Это устройство ведомое.
Регистр 0 тип bool это запуск
Регистр 0 int это управляющий сигнал

OWEN Logic выдает ошибку при создании данного перечня регистров для подчиненного устройства.

Есть ли выход из данной особенности оборудования?
Попробовал на другом контроллере все работает, но не проходит по температуре эксплуатации. Оборудование будет эксплуатироваться на улице.

bool и INT это разные команды, а Вы как указываете в настройках?

capzap
25.06.2019, 08:14
bool и INT это разные команды, а Вы как указываете в настройках?

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

Ревака Юрий
25.06.2019, 09:20
это на самом деле случается, причем в любой последовательности, что буль впереди что инт, только когда инт впереди следующую переменную автоматом проставляет последующий регистр, а когда буль вначале тогда сразу после добавления второй переменной появляется краснота.

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

capzap
25.06.2019, 09:35
Это само собой, программа изначально ведь не знает что мы дальше будем делать, но после того как меняется функция чтения/записи все становится норм, как пример, четыре нулевых регистра с разными функциями, все ОК.

возможно Вы не все варианты попробовали или я чего то не допонял, согласитесь на скрине я менял команды, краснота пропадает только если в первой переменной оставить только функцию чтения

Ревака Юрий
25.06.2019, 10:29
возможно Вы не все варианты попробовали или я чего то не допонял, согласитесь на скрине я менял команды, краснота пропадает только если в первой переменной оставить только функцию чтения

Там вариантов на самом деле больше:
чтение 0 регистра INT 3 функцией
чтение 0 регистра INT 4 функцией
запись 0 регистра INT 10 функцией
чтение 0 регистра INT 6 функцией, аналогично для bool, вот только для 0 регистра float почему-то нет предупреждения, хотя по логике должно быть.

Пока проверял разные варианты, заметил что если долго перебирать разные варианты, можно обойти блокировку, и будут в конфигурации одинаковые номера.