PDA

Просмотр полной версии : MasterSCADA4D + Ethernet + произвольный 16-тиричный код (HEX)



Vetal10
13.05.2022, 17:44
Здравствуйте!
Надо передать из MasterSCADA4D произвольный 16-тиричный код (HEX), например: 02 05 12 C6 A8 56 28 42 15 22 A5 ...
по адресу 192.168.1.1 в порт 5025, т.е. 192.168.1.1:5025 и получить ответ 16-тиричный код (HEX).
Чем и как это возможно реализовать?

Как правильно записывать 16-тиричные числа в переменные (Начальное значение) в MasterSCADA4D (Word, String, Real)?
Перепробовал много всего. И ФБ и ST и Протоколы. Ничего не получается. Везде упирается в ModBus.
А мне надо произвольный код (HEX) отправить и произвольный код (HEX) принять. Здесь нет никаких команд чтения записи, адресов, регистров чтения/записи и т.п.
Помогите пожалуйста решить эту задачу.

melky
13.05.2022, 22:12
Универсал MasterOPC с языком программирования С или LUA
В вашем случае наверное по другому никак.

ну это если упираться в MasterScada

Vetal10
10.06.2022, 23:24
Сразу не понял ответа. Вернее не осознал. А теперь вопрос. А если не упираться в MasterScada, тогда как?

melky
12.06.2022, 11:25
Vetal10 Scada систем, которые позволяют писать свой код опроса много на рынке. На вскидку RapidScada (C#), IntraScada (JavaScript), OpenScada и много наверное других.

Юрий Горелый2
16.06.2022, 13:30
Сразу не понял ответа. Вернее не осознал. А теперь вопрос. А если не упираться в MasterScada, тогда как?

вообще любым языком программирования, который такое позволяет. большинство, с подключенными библиатеками могут такое.

Vetal10
31.07.2024, 10:51
Один вопрос остался открытым: Как правильно записывать 16-тиричные числа в переменные (Начальное значение) в MasterSCADA4D String чтоб послать их в COM порт
02 05 12 C6 A8 56 28 42 15 22 A5
или
$02 $05 $12 $C6 $A8 $56 $28 $42 $15 $22 $A5
или
#02 #05 #12 #C6 #A8 #56 #28 #42 #15 #22 #A5
или ещё как-то ?

melky
31.07.2024, 11:20
в C# при создании массива байт для Hex пишите {0x02, 0x05, 0x12} и так далее, если именно в 16-м делаете
Если на ST там кажется синтаксис другой будет для обозначения hex - вроде так #16 в ST

Vetal10
31.07.2024, 11:45
Спасибо за ответ. Нигде в помощи не могу найти. Неужели в такой крутой СКАДА не придумали, чтобы просто указать в переменой что она HEX ?
Перед каждой цифрой писать 16# - это же маразм!
Но у меня всё равно не получается передать данные в COM. Ни в каком формате.
Поставил в дереве "Универсальный протокол COM порта", в этой же ветке сделал Программу ФБД и в ней ФБ "COMPort". Номера портов одинаковые, как в помощи указано.
Отправляю в порт "16#1016#4016#0116#4116#16". Пробелы нужны или нет?
Порт молчит.

C#, к сожалению, не знаю. Не смог разобраться с библиотеками, а спросить не у кого.

melky
31.07.2024, 11:59
К сожалению по ST не подскажу. Посмотрите в темах по ПЛК CodeSys 2 или 3 работу с произвольными протоколами. Там как раз синтаксис ST будет, есть куда подсмотреть.
Наверное пробелы или даже запятые но явно какой-то разделитель нужен

Vetal10
31.07.2024, 12:22
Порт ожил получает посылку, но видимо из-за неправильного формата посылки не отвечает.
Почитал про CodeSys, там пишут и 0х23 и 16#23.
так и не ясно как правильно.

melky
31.07.2024, 12:25
Что у вас за устройство? 10 40 01 41 16 - куда посылаете ?

Vetal10
31.07.2024, 12:34
Да купил сдуру счётчик воды "Пульсар" с протоколом M-BUS. Попутался, не знал, что M-BUS и MOD-BUS - это разные вещи. Купил преобразователь в Китае RS-485 <-> M-BUS.
С родной программой с сайта Пульсар счётчик отлично работает через этот преобразователь. Но мне надо подружить его со СКАДА. Мне надо с него всего два параметра: общий объём и текущий объём, т.е.сколько через него проходит в ланный момент. Посылаемые коды HEX известны, родная программа их показывает. Посылаю эти коды через программу терминал - всё работает.
Как со СКАДА послать эту же посылку?

На преобразователе есть светодиоды - приём / отправка.
Приём светится, т.е. СКАДА порт открывает, посылку посылает. Ответа нет из-за того, что я не знаю как правильно указать в Message ФБ "COMPort" HEX формат.

capzap
31.07.2024, 12:38
Порт ожил получает посылку, но видимо из-за неправильного формата посылки не отвечает.
Почитал про CodeSys, там пишут и 0х23 и 16#23.
так и не ясно как правильно.

у Вас же направление было правильное в начале, пока не послушали своего собеседника, который в этом не разбирается 77723 лучше тупую машину спрашивайте пользы будет больше

Vetal10
31.07.2024, 12:41
Это я видел. Интересует HEX формат.
Отправил $10 $40 $01 $41 $16 (пробелы нужны?)
и $10$40$01$41$16
В ответ тишина.

capzap
31.07.2024, 12:46
Это я видел. Интересует HEX формат.
Отправил $10 $40 $01 $41 $16 (пробелы нужны?)
В ответ тишина.
Вы должны строку заполнить символами, а не в строку записать символы, тем более пробелы. Самое простое в КДС это создать массив байт с Вашими HEX значениями и полтом через указатель POINTER TO STRING присвоить свой массив в строку, как это делается в МС я не знаю, возможно сразу в порт можно отправить массив байт

melky
31.07.2024, 13:07
Vetal10 вы можете свой счетчик дать в доступ? я реализовывал протокол M-Bus на RapidScada, правда только один режим телеграмм, других приборов не попадалось. Хотелось бы Пульсаровский опросить, насколько они там честны с протоколом :)

capzap в счетчики можно и байтами посылать, а не строками, там с самим протоколом нюансов выше крыши... до хрена битов разбирать при получении ответа телеграммы.

Vetal10 вы его купили для себя лично? и почему выбор пал на MasterScada ?

Vetal10
31.07.2024, 14:06
C MasterSCADA 4D я работаю давно, потому что легко организовать управление через интернет. Возможностей у ней предостаточно.
Дать доступ могу. Но мне не нужен протокол M-BUS как таковой. Я писал, у меня есть две команды в HEX. Их надо послать в порт и получить ответ Как разобрать ответ по байтам я знаю. Не проблема.
Например, узнать общий объём:
11 57 35 85 01 0E 80 00 00 00 01 00 3D 6E
Причём, 11 57 35 85 - это адрес прибора (серийный номер).
Ответ сегодня:
11 57 35 85 01 0E 00 00 00 00 01 00 22 AE
Где опять же 11 57 35 85 - это адрес прибора.
Объём = 0 куб.м. Пока не пускал воду через него.
Скорее всего четыре пары нулей - это и есть объём.
Так же будет и с текущим объёмом. Всего две команды надо послать.
Остальное не интересует. Протокол-то M-BUS, но идёт он через преобразователь RS-485. Ну и как протокол он мне не нужен. У этого счётчика куча параметров, но мне они не интересны.
Делаю я так. На объекте ставлю комп-р со СКАДА и дома в браузере вижу всё, что написал в СКАДА. Есть всё управление которое мне надо. А если нужны какие-то другие параметры счётчика, то я могу соединиться с комп-ом по удалёнке, запустить родную прог-у Пульсар и всё увидеть. Но ещё раз говорю, мне это не интересно. Итак, есть комп, который обеспечивает связь по интернет через браузер, а если чего-то не хватает - то удалёнка. По удалёнке работаю я,когда мне надо подрепетировать что-то в СКАДА, через браузер - заказчик.
Очень удобно. Не надо тащиться на объект за 100 км.

melky
31.07.2024, 14:11
11 57 35 85 01 0E 00 00 00 00 01 00 22 AE - ой подозреваю это не только то, что вы ждете :)

Вывод от программы Пульсар точно такой же? Это больше похоже на ответ инициализации прибора на линии, чем на ответ телеграммы.

там должно быть 68 длина длина 68 тело ответа КС 16

Вот электрический счетчик с таким протоколом

Отправка (9): 68 03 03 68 53 01 B1 05 16
Приём (4/4): 68 90 90 68
Приём (146/146): 08 01 72 78 56 34 12 FF FF 01 02 55 00 00 00 0B FD 47 37 31 02 0B FD 47 00 00 00 0B FD 47 00 00 00 0B FD 47 00 00 00 0B FD 47 00 00 00 0B FD 47 00 00 00 0B FD 59 00 00 00 0B FD 59 00 00 00 0B FD 59 00 00 00 0B FD 59 00 00 00 0B 2A 00 00 00 0B 2A 00 00 00 0B 2A 00 00 00 0B 2A 00 00 00 0B FD 3A 00 00 00 0B FD 3A 00 00 00 0B FD 3A 00 00 00 0B FD 3A 00 00 00 0A FD 3A 00 10 0A FD 3A 00 10 0A FD 3A 00 00 0A FD 3A 00 00 0A FD 3A 02 50 40 16
OK
Отправка (5): 10 7B 01 7C 16
Приём (4/4): 68 5D 5D 68
Приём (95/95): 08 01 72 78 56 34 12 FF FF 01 02 55 00 00 00 0C 04 82 22 71 00 0C 04 82 22 71 00 0C 04 00 00 00 00 0C 04 00 00 00 00 0C 04 00 00 00 00 0C 04 00 00 00 00 0C FD 3A 77 29 08 00 0C FD 3A 66 27 08 00 0C FD 3A 11 02 00 00 0C FD 3A 00 00 00 00 0C FD 3A 00 00 00 00 0C FD 3A 00 00 00 00 51 16
OK

Правда я его прямиком прошу, без инициализации на линии.

melky
31.07.2024, 14:15
Отправка (5): 10 40 FD 3D 16

Вот команда инициализации. Кстати у вас там 41 вместо FX - не помню что это, вообще поле адреса вроде.

Vetal10
31.07.2024, 14:17
У меня команда инициализации 10 40 01 41 16
Ну вообще прог-а Пульсар посылает три разные команды, на разные Пульсары.
Мой на эту даёт ответ E5
И как я понял, в моём случае эта команда вообще не нужна. Без неё всё работает нормально.
Это 10 40 01 41 16 так, но как их послать из СКАДА?

melky
31.07.2024, 14:28
E5 это подтверждающий ответ прибора, что он принял команду. Вы по адресу посылаете команду. Если FD кажется это широковещательная.

Да, если подавать команды запросов можно и не посылать, у меня тоже счетчик отвечает без инициализации если по адресу запрашивать.
M-Bus приборы должны работать как по Адресу (однобайтовый) так и по ID, что обычно серийный номер.

Ну с MasterScada не подскажу, не пользуюсь. Должны же у них примеры быть, если вы делаете на ST, то посмотрите примеры для 3-й версии, не думаю, что там что-то поменялось, ST он вроде и в Африке такой

Vetal10
31.07.2024, 14:38
Ну причём тут ST ?

77732

В СКАДУ что писать ?

melky
31.07.2024, 15:45
Vetal10 я боюсь вам придется работать через скрипты, а не через окошки.

Можете скинуть лог Пульсаровской программы на ваш счетчик?

вместо string там можно выбрать массив байт? потому что я не представляю как буквами ввести DLE, SYN и другие спецсимволы ASCii

Vetal10
31.07.2024, 17:18
Не знаю что такое лог Пульсаровской программы.
Нет никаких DLE, SYN и другие спецсимволы ASCii.
77736

Запросил только один параметр (остальные галочки снял)
Программа выдала запрос - ответ разным цветом.
Всё просто.
Мне надо просто в СКАДА написать эти цифры и кинуть в порт.
Через терминал COM порта посылаю эти же цифры и получаю тот же ответ. Надо чтоб это сделала СКАДА.

capzap
31.07.2024, 17:25
Не знаю что такое лог Пульсаровской программы.
Нет никаких DLE, SYN и другие спецсимволы ASCii..

Ну как же, справа после посылок байт, стоят строки, где точки это не читаемые символы, можете проверить и символы и hex коды https://www.industrialnets.ru/files/misc/ascii.pdf

melky
31.07.2024, 17:50
Vetal10 я вас поздравляю, у вас счетчик с протоколом Пульсар скорее всего, о каком MBus речь то была?. Можете его идентификатор точный прислать?

Голову тут морочите блин. Держите... Если прям надо описание протокола, тоже найду. А то версионность там у них отличается по докам...

Vetal10
31.07.2024, 18:48
Ну я же точки в СКАДА не напишу. А цифры HEX могу. Меня интересует какой префикс цифрам написать, чтоб СКАДА поняла что это HEX и отправила этот HEX в порт.

Vetal10
31.07.2024, 18:51
Я купил счётчик у Пульсар. Всё что есть на сайте у них я перелопатил. Все протоколы видел. Не нужны они мне.
А разве M-BAS ы бывают разные? Мне не нужен M-BAS. Я хочу спросить у знающих людей, как мне в СКАДА написать чтоб счётчик распознал команду 10 40 01 41 16
И всё!
Посылая эту команду через терминал - получаю ответ. Надо чтоб это сделала СКАДА.

77739

10 40 01 41 16
0x10 0x40 0x01 0x41 0x16
16#1016#4016#0116#4116#16
16#10 16#40 16#01 16#41 16#16
$10 $40 $01 $41 $16
$10$40$01$41$16
#10#40#01#41#16

Ни одну из этих он не воспринимает. Строка STRING

melky
31.07.2024, 19:00
Если стринг, то скорее всего вы посылаете или ОНО посылает ascii коды введенных вами символом в данном поле. Если есть логи в мс4д или если стать на линию, вы увидите что-то типа 30 31 31 36 на отправку ваших 01 16 в байтах хекс скорее всего.

На последнем вашем скрине из TestAll их чистый протоко Пульсар. Ни о каком MBus там речи и нет, и документашка это подтверждает.

Что документация (справка) мс4д говорит по вашему вопросу как отсылать?

melky
31.07.2024, 19:05
Если возможна отправка только строкой, то надо посмотреть как экранируются символы меньше какого-то, тут точно не подскажу.

А другие делаете так, вам нужен байт 35 hex, смотрите по таблице что там за буква, вот W вроде и ее вместо hex 35 втыкаете в свою строку.
В общем привет геморрой :)
Ой, соврал, 35 это 5 , W на байт раньше

COMPortByte у вас такая штука должна быть

Vetal10
31.07.2024, 21:16
Вот я и спрашиваю, чем заэкранировать символы чтобы в STRING они стали HEX

melky
31.07.2024, 21:20
Возможно ничем, просто может быть не предусмотрено. Поищите другой метод, который я выше указал. Это из справки мс4д, там подаётся массив байт

Vetal10
31.07.2024, 21:33
Справку всю перечитал. Непонятно. Буду писать в INSAT. Раз уж есть ФБ "COMPort" то должен быть механизм отправки HEX.

melky
31.07.2024, 22:11
Фб COMPortByte

Вариант &H10

Vetal10
01.08.2024, 08:53
И так
&H10 &H40 &H01 &H41 &H16
И так
&H10&H40&H01&H41&H16

не работает.
Написал в INSAT, ответят - отпишусь.

melky
01.08.2024, 08:55
Vetal10 тогда еще раз внимательнее прочтите - используйте FB COMPortByte вместо COMPort
По справке для отправки массива байт используется ДРУГОЙ FB

https://support.mps-soft.ru/Help-web/index.html?comportbyte.html

Vetal10
02.08.2024, 13:55
Дошёл до маразма. Сделал 2 ФБ. ФБ"COMPortByte" вообще ничего не посылает в порт. Такое ощущение, что он не работает.
77777

capzap
02.08.2024, 14:00
Дошёл до маразма. Сделал 2 ФБ. ФБ"COMPortByte" вообще ничего не посылает в порт. Такое ощущение, что он не работает.
77777

маразм то в чем, два раза открываете один и тот же порт?
и почему в первом случае(COMPortByte ) в синем окне порт 1 а во втором 5

Vetal10
02.08.2024, 14:03
Реально работающий порт 5. Но в комп-е есть и 1. Меняю местами порты. ФБ"COMPortByte" не работает.
Картинку я прислал, чтоб было видно, что сделано всё одинаково для обоих. Один работает, другой нет.

capzap
02.08.2024, 14:11
тогда почему для первого случая send привязан к пятому порту

Vetal10
02.08.2024, 14:12
Это просто название параметра. Назвать его можно как угодно.
77778

melky
02.08.2024, 14:18
Там по справке ComPortByte должен быть привязан к протоколу, ну по идее сперва надо сам порт как-то открыть, а уже потом что-то в него посылать.
Смотрите разницу в настройках, где-то наверное есть отличия, раз один посылает, а другой нет.

melky
02.08.2024, 14:21
Протокол - в смысле какой-то узел должен быть создан, а не висящий в воздухе fb.

В теме про MS, ещё одна из причин не выбирать, если вроде таких тривиальных вещей не сделано удобно для понимания, при этом справка практически ни о чем...

Vetal10
02.08.2024, 14:23
Та уже всю голову сломал. Не вижу разницы.
77780

capzap
02.08.2024, 14:26
Это просто название параметра. Назвать его можно как угодно.
77778
пришлите одну картинку с одним блоком COMPortByte на рабочий порт, выход State всегда ноль или не работает потому что ни чего не шлет, тогда вход Count почему не пять?

Vetal10
02.08.2024, 14:26
Протокол - в смысле какой-то узел должен быть создан, а не висящий в воздухе fb.


Не висит в воздухе
77781

Vetal10
02.08.2024, 14:33
пришлите одну картинку с одним блоком COMPortByte на рабочий порт, выход State всегда ноль или не работает потому что ни чего не шлет, тогда вход Count почему не пять?

Так пойдёт ? SEND отключил у работающего.

77782

--------------

77783

capzap
02.08.2024, 14:40
Так пойдёт ? SEND отключил у работающего.

77782

--------------

77783
ну Count то по прежнему ноль
Count INT Задается количество байт, которое необходимо передать.

Vetal10
02.08.2024, 14:42
А если переменное количество, то сколько надо туда написать?
Я это поле вообще не трогал.
Передаю 5 байт.
Написал 5 - работает!
Осталось понять в каком формате писать HEX

capzap
02.08.2024, 14:45
А если переменное количество, то сколько надо туда написать?
Я это поле вообще не трогал.

ну начните хотя бы с той посылки которую отправляете, получается или нет. Если знаете какую команду посылаете, значит известна и её длинна

Vetal10
02.08.2024, 14:45
ну начните хотя бы с той посылки которую отправляете, получается или нет. Если знаете какую команду посылаете, значит известна и её длинна

Передаю 5 байт.
Написал 5 - работает!
Осталось понять в каком формате писать HEX

capzap
02.08.2024, 14:47
Передаю 5 байт.
Написал 5 - работает!
Осталось понять в каком формате писать HEX

HEX или DEC это только представление для человека, для машины это значение байта всё равно в единичках и ноликах

Vetal10
02.08.2024, 14:49
Посылку формирую через ST

MESSAGE_IN_1 := '$10$40$01$41$16'; // передаваемое сообщение
MESSAGE_OUT := STRING_TO_BYTE_ARRAY(IN:= MESSAGE_IN_1, ENCODING:= );

Получаю отправляемое сообщение
77785

Vetal10
02.08.2024, 14:50
Переменная ST

77786

Vetal10
02.08.2024, 14:54
Кусок программы ST

77787

Vetal10
03.08.2024, 02:59
Добил я его. Заработало!

77796

Видимо нельзя на "Универсальный протокол COM порта" вешать два ФБ "ComPort".
Итак, в ST формирую посылку из "$10$40$01$41$16" (всё-таки "$" !!!), получаю массив (ну или вижу что получаю) "[16, 64, 1, 65, 22]" - это отправляется в Com и приходит правильный ответ в десятеричном формате. СКАДА без спроса всё преобразует в DEC.
Пришёл ответ "229" в DEC - это мои долгожданные "E5" на команду HEX "10 40 01 41 16".

melky
03.08.2024, 06:46
Посмотрите как формировать массив сразу байтами, на кой строки то применять?
Только правильность синтаксиса в ST соблюсти
В С# было бы
byte[] mass = new byte[] {0x10, 0x40, , , , 0x16};
Вместо 0x10 можно написать десятичным 16 и так далее.
А вы делаете двойную работу, в строку, потом будете из строки, в то время как протоколы байтовые если можно так выразиться

Ну Scada и не обязана работать как TestAll или другие программы, но конечно хорошим тоном считается показывать обмен именно в hex для com порта, либо строкой, если протокол символьный

melky
03.08.2024, 08:31
Но мне во всем этом непонятно одно.
Физически прибор у вас один или два?
Если один, он у них что, мульти протокольный? Одновременно можно использовать или MBus или протокол Пульсар?

Потому что все это 10 40 и т.д. с возвратом E5 это от MBus протокола, а то, что вы показали на скрине TestAll это классический Пульсар протокол.

Vetal10
03.08.2024, 10:33
Но мне во всем этом непонятно одно.
Физически прибор у вас один или два?
Если один, он у них что, мульти протокольный? Одновременно можно использовать или MBus или протокол Пульсар?

Потому что все это 10 40 и т.д. с возвратом E5 это от MBus протокола, а то, что вы показали на скрине TestAll это классический Пульсар протокол.

Прибор один. Протокол возможно, что Пульсаровский но работает эта дрянь через преобразователь RS485 <-> M-BAS. Скажу более, я перепробовал несколько программ M-BAS и ридер и OPC сервер. На все запросы M-BAS даёт ответ. Что они там намутили я не знаю.

Если хочешь могу дать доступ к нему. Единственно что мне надо - подготовить для этого ноут, т.е не прям сразу, а ближе к вечеру.

Дал команду которая мне нужна: "$11$57$35$85$01$0E$80$00$00$00$01$00$3D$6E"

Получаю: Ошибка: Внутренняя ошибка : [string "chunk"]:148: unfinished string near <eof>

Vetal10
03.08.2024, 12:09
HEX или DEC это только представление для человека, для машины это значение байта всё равно в единичках и ноликах

Вот, ну АБСОЛЮТНО ВСЕ !!!, твои советы дельные! Но ты их говоришь, как намёками. Рассказывай народу подробнее. Сказал "А", говори "Б". Я голову сломал, чтоб воплотить твой совет.
А всё именно так как ты сказал.

Вместо: MESSAGE_IN_1 := '$11$57$35$85$01$0E$80$00$00$00$01$00$3D$6E';
MESSAGE_OUT := STRING_TO_BYTE_ARRAY(IN:= MESSAGE_IN_1, ENCODING:= );

Сделал:
VAR_OUTPUT
MESSAGE_OUT: ARRAY OF BYTE := 17,87,53,133,1,14,128,0,0,0,1,0,61,110;
END_VAR

И получил в ответ: [17, 87, 53, 133, 1, 14, 0, 0, 0, 0, 1, 0, 34, 174]
Что и ожидал: 11 57 35 85 01 0E 00 00 00 00 01 00 22 AE.

И совсем забыл. СПАСИБО !!!

P.S. У ФБ "ComPort" на входе "Message" установлено "String". И хоть что ты ему пиши: и 16#11 и $11 и &H10 он все "$", "&H", "#", пробел, запятую ВОСПРИНИМАЕТ КАК "String". и соответственно перекодирует КАЖДЫЙ символ.

melky
03.08.2024, 13:39
Если сможете сделать по аналогии с преобразователем Ethernet-RS485 то давайте.
Если это через TeamViewer или аналогичное, мне придется RapidScada ставить со всеми требуемыми компонентами. Там решайте сами. Если что на почту черканете или в личку.

11 57 35 85 - адрес прибора в BCD формате - типа как слышится, так в байты и заносится :) там никогда не будет букв
01 - команда чтения параметров, в зависимости от приборов может быть int16, float и даже double
0E - маска запрашиваемых параметров - всего 3 параметра и судя по ответу это или int16 или беззнаковый dint16
00 00 00 00 01 00 - собственно эти 3 параметра согласно маске
22 AE - контрольная сумма Modbus

А есть логи от программ MBus read и других в текстовом виде? интересно посмотреть.

Vetal10
03.08.2024, 13:48
Вообще не вопрос. Я потому и хочу ноут., ставь на него чё хошь. Если тебе интересно, балуйся. Не жалко. Я его включу и думаю, мне он неделю не понадобится, так что в любое удобное время занимайся. Я с вопросом разобрался, оставшиеся "штрихи" не к спеху. Давай связь держать через телегу.

melky
03.08.2024, 13:49
Vetal10 напишите на почту телегу. Не вопрос. я сейчас как раз в отпуске, смогу посмотреть как там и чего. Мне такой Пульсар не попадался еще.

capzap
03.08.2024, 15:19
P.S. У ФБ "ComPort" на входе "Message" установлено "String". И хоть что ты ему пиши: и 16#11 и $11 и &H10 он все "$", "&H", "#", пробел, запятую ВОСПРИНИМАЕТ КАК "String". и соответственно перекодирует КАЖДЫЙ символ.
То что я видел на картинке, это кодировка юникод, а мы речь вели про ascii, это в два раза меньше байт и возможно их смена местами, скорее всего отсюда и не работало

Vetal10
03.08.2024, 15:39
Пульсар переделал MOD-BUS. Это остался MOD-BUS, но адрес устройства стал не 2 а 4 байта. И всё. В остальном это MOD-BUS. Из-за этих 4-х байтов СКАДА и не работает с ним.
Я запросил в INSAT протокол для Пульсара с RS-485. Они содрали с меня 20 000 р. и попросили доступ. Две недели ковырялись, Сделали. И сделали его же в мультипротокол OPC сервер. Теперь при обновлении СКАДА с меня просят за обновление 10 000 и 20 000 за обновление протокола. Вот такой бизнес.

Vetal10
03.08.2024, 15:40
То что я видел на картинке, это кодировка юникод, а мы речь вели про ascii, это в два раза меньше байт и возможно их смена местами, скорее всего отсюда и не работало

Ну да, по умолчанию у него UTF8

Vetal10
03.08.2024, 15:46
Имей ввиду: M-BUS - это интерфейс. А протокол по нему "гуляет" всё-таки пульсаровский.
У меня были Пусары с RS-482. Но та же фигня - интерфейс RS-482 и протокол пульсаровский.
Сейчас вся разница в том, что стоит преобразователь RS-482 <-> M-BUS - где RS-482 чисто для связи с компом. А дальше M-BUS с пульсаровским протоколом. Хотя и на M-BUS вьюер, ридер он отвечает.

melky
03.08.2024, 17:21
Ну, Бизнес от Master Scada вполне понятный. Хотя на Пульсар я делал драйвер беЗплатно :) не знаю честно, за что там деньги брать, там протокол примитивный в некотором роде.

MBus это и интерфейс и протокол тоже. Что гонять по интерфейсу не имеет значения в принципе. У нас есть производители теплостетчиков, у которых протокол MBus, а интерфейс RS485, не помню производителя, они в двух модификациях вроде выпускают.

+ MBus (интерфейса), что он одновременно и питает интерфейс.