Written on: 17. 01. 2019 [12:14]
|
khan21
Андрей Ханжин
Topic creator
registered since: 17.09.2013
Posts: 19
|
Уважаемые форумчане. Подскажите, что это может быть.
Имеем:
1. ПЛК, в котором из дисктретных входов собираем слово состояния (INT) для OPENSCADA (см. СнимокIG_1).
2. OPENSCADA - читаем данные из ПЛК. Читаем/записываем дискретные сигналы из/в ПЛК, читаем слово состояния (см. СнимокOS_1, СнимокOS_1_1).
3. В OPENSCADA получаем данные (см. СнимокOS_1_2).
Всё хорошо. До перезагрузки.
Перезагрузили комп, OPENSCADA восстановила обмен, Дискретные данные читаются/записывваются без проблем, НО!
Слово состояния = 65535! (см. СнимокOS_2). Изменение битовых переменных хоть из OPENSCADA, хоть в ПЛК - нормально (пишется/читается). В ПЛК слово состояния формируется корректно.
Но в OPENSCADA - стабильные 65535.
Изменение параметров контроллера TCP_MBus (объединять фрагменты данных, использовать функции 15_16, Использовать асинхронную запись) не помогли.
Читать корректно OPENSCADA (а в ПЛК, как уже писал, данные формируются правильно) слово состояния начинает только после следующих действий:
1. Состояние параметра - отключен.
2. В разделе "Перечень аттрибутов" строке "R_u2:601:r:PU1_DI1:НА1_ДискрВх_слово1" номер регистра 601 меняем на 600 (! и только 600 !).
3. Включаем параметр (состояние - включён).
4. Отключаем параметр.
5. Меняем регистр на нужный 601.
6. Включаем параметр.
Всё снова работает. До перезагрузки компа или до перезапуска OPENSCADA.
Эта проблема у меня только с целым числом, битовые переменные читаются/записываются без проблем.
Подскажите, в чём дела вопрос? Где я что пропустил?
Attachment
СнимокIG_1.PNG (File type: image/png, Size: 34.99 kilobytes) — 1264 downloads
СнимокOS_1.png (File type: image/png, Size: 198.76 kilobytes) — 1255 downloads
СнимокOS_1_1.png (File type: image/png, Size: 174.76 kilobytes) — 1247 downloads
СнимокOS_1_2.png (File type: image/png, Size: 173.02 kilobytes) — 1293 downloads
СнимокOS_2.png (File type: image/png, Size: 113.02 kilobytes) — 1279 downloads
|
Written on: 17. 01. 2019 [12:35]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"khan21" wrote:
Подскажите, в чём дела вопрос? Где я что пропустил?
В ПЛК!
R_u2 это базовый тип регистра, который просто синоним на просто R, следовательно тут не может быть проблем комбинации.
Для того чтобы разобраться смотрите получаемые пакеты в логе обмена, которых для ModBus там аж три!
Ну и всегда, и в первую очередь, смотреть в ДемоБД, если подозреваете OpenSCADA, где есть полная цепочка из ModBus клиента, сервера и все возможные типы данных тестируются!
Learn, learn and learn better than work, work and work.
|
Written on: 18. 01. 2019 [08:47]
|
khan21
Андрей Ханжин
Topic creator
registered since: 17.09.2013
Posts: 19
|
Спасибо за мгновенный ответ.
Дела не в ПЛК (это железо), а в голове.
Каждый адрес в ПЛК - 32 разряда, при чём слова в адресе развёрнуты: 600-это старшее, 601-это младшее.
Ещё раз спасибо.
|
Written on: 18. 01. 2019 [09:07]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"khan21" wrote:
Дела не в ПЛК (это железо), а в голове.
В котором софт и с которыми и не такие проблемы бывают!
"khan21" wrote:
Каждый адрес в ПЛК - 32 разряда, при чём слова в адресе развёрнуты: 600-это старшее, 601-это младшее.
Точно, что в голове если такое звучит, поскольку адрес ModBus регистров 16-разрядный и сам регистр это 16-разрядное (два байта и почему R_u2), а если речь об отдельных регистрах 600 и 601, и как следствие 32-разрядном целом (четыре байта), тогда указывать прямо "R_u4" и про что в подсказке и документации написано, как и про то каким образом меняется порядок регистров!
Learn, learn and learn better than work, work and work.
|
Written on: 18. 01. 2019 [18:36]
|
khan21
Андрей Ханжин
Topic creator
registered since: 17.09.2013
Posts: 19
|
Абсолютно согласен, торопился ответить и скомкал сообщение.
Конечно, регистры развёрнуты.
Так и поступил "R_u4:601,600:r:aaa:DI_DW0"
Н-да, неверно высказанная мысль приводит к....
Ещё раз спасибо.
|