Посмотрел и не нашел в MS4 никаких инструментов работы с памятью напрямую.
Наверное остаётся только вариант формирования числа как у capzap
Вид для печати
Честно говоря, не знаю как правильно. Способов наверняка много. Мне понравился этот.
Вложение 77902
Вложение 77903
https://support.mps-soft.ru/Help-web...?dword_to.html
Вроде как есть готовые функции конвертации.
Опять же, работая с массивами байт и вообще с байтами - зачем строки в принципе? по два лишних преобразования всегда - зачем?
Получил ответ от Insat:
Был задан вопрос:
Здравствуйте!
У меня есть число: 0.0328006.
Оно записано в формате IEEE 754.
HEX: [EA 59 06 3D]
или
DEC: [234,89,6,61]
Подскажите пожалуйста, как мне конвертировать HEX или DEC в REAL чтоб получить это число ?
MasterScada 4D
---------------------------------
Ответ:
Стандартных функций для конвертации нет в MS4D. Поэтому вы можете написать свой функциональный блок для конвертировании из HEX в REAL. Хочу сразу заметить, что очередность байт обратная.
Вот пример ФБ:
Вложение 77917
Проверил, работает.
-----------------------------------
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. Выбирай какой хочешь. ТРИ секунды подцепил, проверил. Отправил на объект и НЕТ ГОЛОВНЯКА !!!
А Пульсар теперь будет валяться, пока не впарю кому-нить.
И, что прикольно, я им отписал, что мне такой товар не подходит. Возьмите назад. В ответ - тишина !!!
Пульсар тут ни при чем. И кстати их протокол вполне нормальный.
Это вы ещё Логику не подключали к MS4D :)
з.ы. вообще некоторые протоколы приборов древнее MasterScada и других Scada систем.
И производители не обязаны вам ничем, там все решает железо и код, который способен крутиться на этом железе.
Пульсар открытый протокол, пилите, Шура, пилите :)
Вы им указывали что работаете с пульсаром, возможно они бы удивились что не обращаете внимание на эту ссылку https://support.mps-soft.ru/Help-web...la_pulsar.html, мне кажется есть легкий вариант, вероятно платный
В другом месте (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. Спешил, поэтому предпочёл заплатить.