Название: РСЛ-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М, но думаю, что в контексте вопроса это не существенно. |