Честно говоря, не знаю как правильно. Способов наверняка много. Мне понравился этот.
2024-08-07_11-38-58.png
2024-08-07_11-35-28.png
https://support.mps-soft.ru/Help-web...?dword_to.html
Вроде как есть готовые функции конвертации.
Опять же, работая с массивами байт и вообще с байтами - зачем строки в принципе? по два лишних преобразования всегда - зачем?
Последний раз редактировалось melky; 08.08.2024 в 11:22.
Получил ответ от Insat:
Был задан вопрос:
Здравствуйте!
У меня есть число: 0.0328006.
Оно записано в формате IEEE 754.
HEX: [EA 59 06 3D]
или
DEC: [234,89,6,61]
Подскажите пожалуйста, как мне конвертировать HEX или DEC в REAL чтоб получить это число ?
MasterScada 4D
---------------------------------
Ответ:
Стандартных функций для конвертации нет в MS4D. Поэтому вы можете написать свой функциональный блок для конвертировании из HEX в REAL. Хочу сразу заметить, что очередность байт обратная.
Вот пример ФБ:
79d4f3ca26095aa5fe678c3b47d12fbe6f81d6b0.png
Проверил, работает.
-----------------------------------
HEX = 3D0659EA (STRING)
VAR
sign,exponent: INT;
mantissa: REAL;
END_VAR
sign := SHR(IN := (HEX_TO_DWORD(HEX) AND 2147483648), N := 31);
exponent := SHR(IN := (HEX_TO_DWORD(HEX) AND 2139095040), N := 23) - 127;
mantissa := 1+DWORD_TO_REAL((HEX_TO_DWORD(HEX) AND 8388607)) / (2**23);
Value_Real :=((-1)**sign) * mantissa * (2**exponent);
-----------------------------------------------------------------
Как и говорил "capzap" - легко не будет. Он прав 100 пудов !!!
--------------------------------------------------
Вывод: Покупаешь Пульсар - покупаешь головняк. Больше никогда не буду покупать Пульсар.
Я им писал, ну сделайте вы Mod-Bus и ваши продажи увеличатся. Ну фиг с ним, не хотите делать Mod-Bus, то сделайте для своих счётчиков OPC сервер, программисты же есть! Им по фигу.
НИКОГДА не покупайте Пульсар !!!
СПАСИБО "capzap" !!! ОГРОМНОЕ !!! Если бы не он, то я бы ............. охренел !!!!!!!!!
-------------------------------------------------
Купил китайский счётчик воды ультразвуковой. Он в два раза дешевле и у него и M-Bus и Mod-Bas. Выбирай какой хочешь. ТРИ секунды подцепил, проверил. Отправил на объект и НЕТ ГОЛОВНЯКА !!!
А Пульсар теперь будет валяться, пока не впарю кому-нить.
И, что прикольно, я им отписал, что мне такой товар не подходит. Возьмите назад. В ответ - тишина !!!
Последний раз редактировалось Vetal10; 21.09.2024 в 14:20.
Пульсар тут ни при чем. И кстати их протокол вполне нормальный.
Это вы ещё Логику не подключали к MS4D
з.ы. вообще некоторые протоколы приборов древнее MasterScada и других Scada систем.
И производители не обязаны вам ничем, там все решает железо и код, который способен крутиться на этом железе.
Пульсар открытый протокол, пилите, Шура, пилите![]()
Вы им указывали что работаете с пульсаром, возможно они бы удивились что не обращаете внимание на эту ссылку https://support.mps-soft.ru/Help-web...la_pulsar.html, мне кажется есть легкий вариант, вероятно платный
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
В другом месте (MasterSCADA4D + Ethernet + произвольный 16-тиричный код (HEX)) я уже писал. Дублирую!
С MAsterScada 4D я работаю давно. И никакой ссылки там не было пока ...
Я запросил в INSAT протокол для Пульсара с RS-485. Они содрали с меня 20 000 р. и попросили доступ. Две недели ковырялись, Сделали. И сделали его же в мультипротокол OPC сервер. Теперь при обновлении СКАДА с меня просят за обновление 10 000 и 20 000 за обновление протокола. Вот такой бизнес.
И только после этого у них есть ссылка на Пульсар. Поверь, я это контролирую.
Но в данном случае - это протокол пульсара по RS-485. Это ни разу не M-Bus. Та вся инфа в регистрах, как в Mod-Bus, единственная проблема того протокола, что в отличие от Mod-Bus у Пульсара самые первые не 2, а 4 байта адреса, поэтому в СКАДА оно не работает. Но я тогда и не разобрался как запустить ComPort. Спешил, поэтому предпочёл заплатить.
Последний раз редактировалось Vetal10; 09.08.2024 в 11:48.