Вход

Просмотр полной версии : Опрос ТСРВ-024М с ПЛК210



Irida
22.02.2024, 21:17
Здравствуйте. Столкнулась с такой проблемой: при опросе ТСРВ-024М стандартными средствами, чтение (функцией 03) адреса 0xC0AE возвращается странное значение, не соответствующее тому, что показывает прибор.
73818 - читаю отсюда, согласно карты регистров с оф сайта.
Часть других параметров (температуру, давление и расход) которые тоже неправильно читались примерно из этой же "области" (349213-349255(лог адрес)/0xC03C-0xC066(физ адрес) - по карте) удалось прочитать из (449213-449255(лог адрес)/0xC03C-0xC066(физ адрес)) - сверили с показаниями на экране прибора.
Но с адресом 349327/0xC0AE не прошло, чтение 449327/(функцией 04) 0xC0AE каждый раз вызывает ошибку SLAVE DEVICE FAILURE (При попытке выполнить запрос в ведомом устройстве произошла неисправимая ошибка).
Кто-нибудь сталкивался с такой ошибкой? Это ТСРВ дешевит? Таймаут 1500мс, остальные 18 параметров опрашиваются без проблем. Если меняю функцию чтения, то тоже ошибок нет, но и чисел правильных нет.

Евгений Кислов
22.02.2024, 21:41
Добрый день.
Вы можете повторить ваш эксперимент, опросив Взлет с ПК с помощью любого ПО, которое может работать в режиме Modbus Master (например, MasterOPC Universal Modbus Server).
Скорее всего, ситуация повторится - и тогда вам стоит обратиться в техподдержку Взлета и попросить комментариев у нее.

Irida
22.02.2024, 22:12
Добрый день.
Вы можете повторить ваш эксперимент, опросив Взлет с ПК с помощью любого ПО, которое может работать в режиме Modbus Master (например, MasterOPC Universal Modbus Server).
Скорее всего, ситуация повторится - и тогда вам стоит обратиться в техподдержку Взлета и попросить комментариев у нее.

Благодарю, будем пробовать. Сегодня специалист из техподдержки Взлета полдня потратил, но не смог настроить связь прибора с ПК, есть в чем разбираться.

imaex
23.02.2024, 06:17
чтение (функцией 03)

Почему 3, если, согласно карте адресов, это регистры ввода? Да и из логического адреса то же самое следует.

И учтите, что данный параметр - вещественное с двойной точностью. Т.е. читать надо сразу 4 регистра.

Посмотрите тут:
http://www.vzljot.ru/forum/index.php?topic=3832.0

Irida
23.02.2024, 10:46
Почему 3, если, согласно карте адресов, это регистры ввода? Да и из логического адреса то же самое следует.

И учтите, что данный параметр - вещественное с двойной точностью. Т.е. читать надо сразу 4 регистра.

Посмотрите тут:
http://www.vzljot.ru/forum/index.php?topic=3832.0

Потому что с применением функции 3 с этих адресов считываются константы (0.001), а с применением функции 4 - данные, которые похожи на те, что показывает сам расходомер. Почему так - ХЗ.
Про двойную точность - благодарю за подсказку, в карте регистров нет раздела с полями двойной точности, просто "Регистры ввода типа вещественное значение". Догадаться что наличие "заглушки" после поля данных означает, что ее тоже нужно считывать и интерпретировать как часть предыдущего числа - не смогла. Эта пара регистров называется "Заглушка для 4 регистровых ModBus переменных, реально не передается, у.е."

imaex
23.02.2024, 11:11
"реально не передается" означает, что их нельзя прочитать по отдельности. Считываются все 4 регистра.


"Регистры ввода типа вещественное значение"

Видите? Но Вы можете дальше упорствовать с функцией для чтения регистров хранения.


Почему так - ХЗ

Потому что в адресном пространстве holding-регистров есть регистр с точно таким же номером. Но это совсем не то, что Вам нужно.

Irida
23.02.2024, 22:36
Все получилось прочитать. Получается, что ошибка SLAVE DEVICE FAILURE в данном случае возникала при попытке прочитать число регистров, не соответствующее размещенной по этому адресу переменной/структуры.