Форум АО "ВЗЛЕТ"

Приборы ЗАО "Взлет" => Отдел программистов => Тема начата: kac от 10.05.2018, 12:44:52



Название: РСЛ-212 и РСЛ связь Modbus RTU
Отправлено: kac от 10.05.2018, 12:44:52
Задача читать контроллером расход, уровень и накопительный расход с приборов ВЗЛЕТ.
Связь с приборами есть но читается как то непонятно:
1) прибор РСЛ -212
Два параметра читаются. (функция 4)
       349257 0xC068 УРОВЕНЬ без динамической видимости, м ИЗМЕРЕНИЯ КАНАЛ 1 (0)
       349269 0xC074 НАКОПЛЕННЫЙ ОБЪЕМ (64 бита), м\xBA Объем, м\xBA КАНАЛ 1 (0)
А Расход читается но цифра совсем не та (пробовал и так и эдак её декодировать...)
       349267 0xC072 РАСХОД без динамической видимости, ИЗМЕРЕНИЯ КАНАЛ 1 (0)
2) Прибор РСЛ
 расход и уровень читаем.
 а вместо накопительного опять левая цифра, или ее как то хитро закодировали...

Подскажите в каком направлении вести раскопки?  :)


Название: Re:РСЛ-212 и РСЛ связь Modbus RTU
Отправлено: dimoniche от 10.05.2018, 19:31:15
Здравствуйте.

Во первых имейте в виду, что байты нужно перевернуть, для 4х байтных чисел: abcd -> dcba
Во вторых 4х байтные числа в вашем случае это float
В третьих 8 байтные накопительные числа должны считываются все за раз и представляют собой 2 числа: int (32 бита, целая часть) + float (дробная часть). (переворачивать байты нужно по 4 байта, раздельно целую и дробную часть).

Вот такое направление.


Название: Re:РСЛ-212 и РСЛ связь Modbus RTU
Отправлено: kac от 11.05.2018, 11:48:22
Контроллер простенький МЗТА МС12. Программа вся на FBD, городить свои алго-блоки нельзя.
Имеется алго-блок для перевода из модбасовских 2*int -> float.

Данный алго-блок отлично справляется с Уровнем (349257) - это тоже float.
А соседний регистр выдает какую то ересь...


Название: Re:РСЛ-212 и РСЛ связь Modbus RTU
Отправлено: I_m от 15.05.2018, 08:35:09
Контроллер простенький МЗТА МС12.

Наш подрядчик сказал, что на КОНТАРе такое не реализуется. Мы ответили, что нас вполне устроит целая часть, без дробной мы как-нибудь переживем. Так и сделали. Стыковали с ТСРВ-024М, но думаю, что в контексте вопроса это не существенно.