Доброе время суток, появилась задача за мониторить ДГУ, не когда не занимался писанием скриптов, решил попробовать. Но уперся в разложение мульти переменных. Кто то может подскажет, как это проделать?config-DGU-Telys-2.json (9.0 КБ)
Здравствуйте!
При написании собственного шаблона рекомендую ознакомиться с примерами шаблонов и документацией. Можно посмотреть, например, здесь:
Если вам нужно получить биты из 16-битного регистра, то здесь могут быть такие варианты для чтения регистров 256 и 257:
- Проверить с помощью утилиты modbus_client можно ли регистры 256 и 257 считать по отдельности (по 16 бит), тогда можно из них считывать отдельные биты. Для этого в шаблоне запишите
адрес в формате: “address”:“reg:shift:width”, где reg — адрес регистра, shift —
смещение от начала, а width — количество считываемых битов. Например,
“address”:“257:6:1” — прочитать шестой бит регистра, расположенного по
адресу 257, “address”:“256:5:1” — прочитать пятый бит регистра, расположенного по
адресу 256. Обратите внимание, что нумерация битов у каждого из регистров будет от 0 до 16.
"address" : "257:6:1",
"format": "u16",
....
"address" : "256:5:1",
"format": "u16",
- Если регистры по отдельности считать нельзя, тогда нужно в шаблоне прописать регистр 256 как 32-битный, считать его целиком, и уже в правилах контроллера анализировать отдельные биты:
"address" : "256",
"format": "u32",
Спасибо большое, на днях попробую на оборудование.
1 лайк