Посмотрел и не нашел в 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. Спешил, поэтому предпочёл заплатить.
При чем тут модбас или не модбас, Плк210 позволяет любой модбас подобный протокол использовать и прочие как по 2х проводной линии rs485 так и по тср. По тср считываете данные порта и расшифровываете.
А во вторых, я спросил почему сразу в скаду? Больше никаких устройств кроме пульсаров нет?
.. а модифицированный mod-bus это модифицированный modbus, т.к. там 1 байт на адрес прибора?
Есть проекты с управлением. Использую ПР-205.
Есть проект, где только один счётчик и всё.
У ПЛК210 возможностей больше, чем у MasterSCADA 4D ?
Там по крайней мере есть union, я вам выше показывал. Массив из 4 байт и реал записываете в юнион, и плк сам все делает. Во вторых в нем есть уже визуализация, если вам графики надо или прочее. Типа скады. Не ориентируюсь в ценах на мастерскаду, но плк около 50 тысяч.
https://owen.ru/forum/showthread.php...l=1#post443368
Скада мне позволяет организовать диспетчеризацию через любой браузер по интернет. ПЛК также делает?
Даже так?
https://up-laz.ru/макет
https://webspk.owen.ru:7070/webvisu.htm
Это спк, но это тот же продукт, только с экраном.
Вы ссылку то смотрели? Это типа и есть браузер плк. Веб визуализация. Нет у плк200 и плк210 монитора. Просто этот пример только в разделе спк приведен. Вбиваете нужный адрес в любом браузере и так же смотрите. Ваш пример кстати даже не масштабируется, как на смартфоне увидеть всю картинку? Танцевать с бубном? Переключать на не мобильное отображение?
PS Версия для ПК помогла...
1. Протокол Пульсар ни коим образом не относится к протоколу Modbus от слова СОВСЕМ.
Если производитель прибора и протокола применил расчет контрольной суммы такой же, как в Modbus, это не значит, что протокол стал Modbus подобным.
2. То же относится и к протоколу счётчиков Меркурий, там тоже контрольная сумма рассчитывается по тому же полиному, что и в Modbus.
И ещё можно назвать некоторые приборы, где CRC такой же как в Modbus.
Один раз запомните, что эти протоколы не Modbus и даже не Modbus подобные.
Протокол Пульсар достаточно прост и логичен, просто его надо понять, принять и прАстить :)
Кстати CRC по полиному как в Modbus очень классный, он даёт в результате 0, если на расчет закинуть весь пакет вместе с CRC.
Я пока не встречал на других расчетах подобного.
Мой драйвер Пульсар для RapidScada бесплатен, таким и останется, даже если прикручу к нему ещё чтение архивов. Писался давно, фактически шаблон надо делать ручками, извините, тогда плохо умел программировать, ну и приходилось обходить ограничения Scada. Правда не знаю, дойдут ли когда руки. Бесплатно, если мне самому придется модернизировать под свои задачи, сейчас мои задачи выполняются :)
з.ы. я уже предлагал использовать RapidScada в качестве шлюза в OPC UA или mqtt. Если MasterScada это понимает в рамках ваших лицензий.
Там всего-то надо будет установить сервер и коммуникатор, все БД в ноль без сохранения.
В базе за 0 рублей получаете шлюз на Пульсар протокол.
Опрашивать ваш конкретный прибор по MBus смысла не вижу, у них кривая реализация.
И перепиливать драйвер MBus пока нет в планах.
Есть одна идея, но ее надо проверить. Может проверю через Терминал ком порта. Но подозреваю, что может не сработать.
Мое мнение, Пульсар добавил протокол MBus для участия в рынке, но сделал это криво.
А это как и всегда!
Если тебе приходится постоянно "пилить" протоколы и ты к этому привык - то это судьба.
У меня другой подход. Если я купил СКАДА - то она должна работать с любым протоколом. Она для этого сделана. Разве не так? Если не так, то тогда зачем у неё вообще есть протоколы?
Я умею программировать на всех языках, кроме "С...", да и на "С..." тоже умею, но с его библиотеками не дружу.
И я считаю, что если надо в СКАДА программировать - то это должна быть какая-то нетривиальная задача. Ну есть у тебя проблема с ФБ или другая - реши её программированием. СКАДА это позволяет.
Но чтобы "пилить" протокол ... !!! Это уже слишком !!!
Проверил MBus
10 40 01 41 16 - это так называемый NKE запрос с ответом E5
Если его посылать каждую сессию, то можно запрашивать по два запроса каждый раз.
У меня реализовано, что NKE посылается вообще один раз и потом нет, Происходит некорректные запросы из-за реализации у Пульсара. Честно не знаю, насколько это допустимо вообще протоколом, но такую штуку могу реализовать у себя быстро.
Только одно но, драйвер протокола MBus у меня платный на экземпляр сервера, правда ценник далек от ценников MasterScada :)
Вот только попытки его реализовать разовыми запросами в самой MasterScada думаю мало к чему приведут, он куда сложнее в разборе, чем протокол Пульсар.
Vetal10 я не могу сказать что реализация 100% кривая, но ни у одного прибора пока еще не видел, чтобы одними и теми же запросами можно было прочитать разные телеграммы.
Ну еще не проверял на предмет работы протокола по id прибора. MBus протокол позволяет опрашивать приборы как по Адресу, который задается в для однобайтовой переменной, так и по серийному номеру прибора.
Запроса длинных телеграмм я не увидел. Вообще как бы хороший тон, что определенный запрос приводит к определенному ответу, а тут последовательность запросов из 5-ти приводит к разным ответам. Такое вижу впервые.
не так. Scada в мире много и разных, у всех подходы разные. Например есть как Simple Scada - работает ТОЛЬКО через OPC DA серверы не имея поддержки протоколов собственными средствами, следовательно только Windows.Цитата:
Разве не так?
А так как я предпочитаю Sсada, которые моЖут :) работать под Linux, то мне она не подходит.
И так как я не привык ждать когда Scada отдуплится, после нескольких нажатий мышки, мне не подходит MasterScada.
И так далее - на каждый цвет свои фломастеры.
Vetal10 я говорю не про RT, который как заявляют работает сносно. Я прежде всего говорю про среду разработки, которой тебя окунули в года 2000-ные с дерьмовым компом.
Мне надо ехать от среды разработки, а не рюшечки интерфейса слабых программистов.
Я как-то экспериментировал с кодом, и заметил, что очень сильно напрягает например RichTextBox - если выводить в него строки, то файл xml на 900 строк открывается минут 6.
Если убрать вывод в RichTextBox, то чтение файла занимает 1,2 секунды.
Вот что там в MS4D напортачили с кодом, что она на вполне современных ПК ползает как черепаха, я не знаю. Да и плевать, таким Запорожцем я пользоваться НЕ БУДУ.
Вот я о чем. Ну и извините рисовать мнемосхему внутри каличного окошка мне тоже не интересно. Да много что мне в ней неинтересно, так как подходы школоты.
мой комп (ноут) AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 32,0 ГБ (доступно: 31,3 ГБ)
на котором запущено два экземпляра RapidScada и все программы работают вполне себе адекватно по скорости.
Но только не MS4D, которая просто "залипает" :)
интересно что означает это слово, если мастерскада4д ни чем не отличается от других Вложение 77948, на скрине внизу координаты мышки, она была в углу окна и если смотреть по ползункам то еще был запас, наверное как обычно начитался других и давай фейки метать
Угу, убрав все окна, к которым нужен доступ. А открыть саму мнемосхему в новом окне и кинуть на другой монитор? Где?
Или так и ползать между, уменьшая или отключая как бы нужное?
Сделать не авто закрытие, а плавающее и перенести на другой монитор, да так же как и в тиа портале ни чем не отличается
capzap, вот, отсюда поподробнее тоже, как вытащить только окно мнемосхемы на второй монитор, а остальные окна оставить на первом. Пошагово плиз. А то может все есть, но мы не умеем, спасибо справке.
Маленькое но, если используем ноут и монитор, могут быть разные разрешения, и там программу кажется нельзя нормально растянуть на 2-а монитора. По крайней мере вид будет так себе.
Если речь идёт об открепление окон внутри основного окна приложения.
То есть нужны два одинаковых монитора для этого.