PDA

Просмотр полной версии : OPC сервер ИНСАТ



AJR
29.11.2024, 08:16
Добрый день. Помогите пожалуйста новичку. Получаю данные от счетчика в таком формате 9B 61 B9 3F FE C5 AF 42 2D 04 00 00 02 4E 00 00 00 00 6B B9.
Как мне настроить сервер чтобы отдельно прочитать 9B 61 B9 3F, отдельно FE C5 AF 42, отдельно 2D 04 00 00?

melky
29.11.2024, 08:40
Если это Modbus, сделать разные запросы, или правильно настроить группу.
Если это иной протокол, типа просто известный запрос и массив полученных байт, то наверное парсить скриптами.
Вопрос не ясен в самом начале.

AJR
29.11.2024, 08:58
Модбас. Прикладываю скрин от производителя8042980430

imaex
29.11.2024, 09:30
Модбас.

Что-то не похоже. На первый взгляд.

melky
29.11.2024, 09:30
Ну раз Modbus, то очень странно, что в OPC сервере вы не можете указать какие регистры какой переменной принадлежат. Это какой-то нонсенс. Значит читайте документацию на OPC сервер и его настройку.

Хотя да, а где в ответе адрес отвечающего слейв устройства и другие параметры заголовка ответа? И откуда там Modbus? сами придумали, или потому что расчет CRC аналогичный?

Ну да, CRC такая же как в Modbus. но протокол тут в целом при чем? :)

AJR
29.11.2024, 11:56
Нонсенс не нонсенс. Если б я знал я б не писал.

melky
29.11.2024, 11:59
осталось выяснить, как вы прочитали данный ответ. Или вы просто скопировали его из документации протокола? :)

imaex
29.11.2024, 12:33
А с чего Вы вдруг решили, что там modbus? Если начиная с формата команды это на modbus не похоже ни разу.

AJR
29.11.2024, 12:52
Виноват. Не модбас. Как мне вычитать данные?

AJR
29.11.2024, 12:55
осталось выяснить, как вы прочитали данный ответ. Или вы просто скопировали его из документации протокола? :)

Чтоб меньше писать. Счётчик данные отправляет. Опс читает.

melky
29.11.2024, 12:56
Если вы планируете использовать именно Инсат OPC, то берете Universal OPC сервер с поддержкой LUA или C++, и пишите опрос вашего устройства на одном из этих языков, на чем вам будет проще.
Примеры опроса вроде должны быть на сайте.

Так чем вы получаете данные? какой именно OPC точно?

бл.... у вас вопросы, по которым объяснений НОЛЬ.

Если вы получаете данные в виде строки или массива байт, и получаете это в какую-то scada, ну так в ней и смотрите, как вытащить данные. Поддержка скриптов наверняка же есть.

AJR
29.11.2024, 13:01
Проблема в том, что если даже пример будет перед моими глазами, я не пойму что это оно. Потому прошу помощи

imaex
29.11.2024, 13:08
Вы не помощи просите, а ищите того, кто это сделает за Вас. Это не обязательно делать на форуме.

AJR
29.11.2024, 13:14
Так я не прошу чтоб за меня делали. Я прошу подсказать

imaex
29.11.2024, 13:44
Я прошу подсказать
Так подсказали уже, просто Вы не поняли, наверное. Или сделали вид, что не поняли.

Если Вы используете MPS от ИнСАТ, используйте Script protocol. Документация и прочие материалы всё на русском.

80450

melky
29.11.2024, 14:57
Вопрос прежний - КАК? вы прочитали OPC сервером указанный вами набор байт ?

AJR
29.11.2024, 15:05
Счетчик начинает отправлять данные после получения АА 02. В сервере включил преамбулу. В моем вопросе набор байт это пример от производителя. Полученные данные от счетчика соответствуют реальным фактическим данным. У меня тоже вопрос прежний

melky
29.11.2024, 15:13
я уже не знаю, как спрашивать.
Смотрите что показал imaex, а так же смотрите возможности того ПО, куда вы это собрались передавать данные. Путей всегда несколько.

AJR
29.11.2024, 15:16
Не могу найти данную вкладку

AJR
29.11.2024, 15:20
Так подсказали уже, просто Вы не поняли, наверное. Или сделали вид, что не поняли.

Если Вы используете MPS от ИнСАТ, используйте Script protocol. Документация и прочие материалы всё на русском.

80450
Это Multi-Protocol MasterOPC Server?

melky
29.11.2024, 15:22
Так вот с самого начала и надо начинать. Что именно вы используете, как именно вы используете со скриншотами и т.д.
А то сразу - как? Как Ванга скажет, так и сделаете. :)
Про Multi-Protocol MasterOPC Server я выше уже писал, там есть вариант с поддержкой LUA и вариант с поддержкой C++

AJR
29.11.2024, 15:28
У меня Modbus Universal MasterOPC Server

AJR
29.11.2024, 15:32
Скрин запросов
80453

imaex
29.11.2024, 15:49
У меня Modbus Universal MasterOPC Server

Он не подходит для этой задачи. Он работает с устройствами по протоколу Modbus.

AJR
29.11.2024, 15:51
Да. Поздно. Но дошло

melky
29.11.2024, 16:00
Ну если там можно указать не float а просто массив байт и для кого вы там читаете этот массив можно разобрать, то как-то фиолетово будет.

imaex
29.11.2024, 16:27
Ну если там можно указать не float а просто массив байт и для кого вы там читаете этот массив можно разобрать, то как-то фиолетово будет.

И в какой регистр писать команду AA 02 ? А с какого регистра читать ответ?

melky
29.11.2024, 16:42
imaex - ну оно же что-то куда-то прочитало? просто не пользуюсь OPC Инсат. Он прочитал ответ, проверил CRC, может ли он это положить в массив байт и отдать дальше не разбираясь?

imaex
29.11.2024, 16:51
imaex - ну оно же что-то куда-то прочитало?

Вот и именно что "что-то". Прочитало то, что устройство ему выплюнуло на посылку непонятного формата. Каким образом (исходя из чего) такой TX получился? Расшифровать пробовали?
Да всё равно - "out_of_service"

Не взлетит.

AJR
29.11.2024, 17:51
И в какой регистр писать команду AA 02 ? А с какого регистра читать ответ?

Не в какой. В порт отправляются символы аа 02, и счётчик передаёт в ответ массив согласно руководству счётчика.

AJR
29.11.2024, 17:53
imaex - ну оно же что-то куда-то прочитало? просто не пользуюсь OPC Инсат. Он прочитал ответ, проверил CRC, может ли он это положить в массив байт и отдать дальше не разбираясь?

У счётчика есть своя программа для работы. Я просто подсмотрел какие команды проходят через порт во время опроса

AJR
29.11.2024, 17:57
Вот и именно что "что-то". Прочитало то, что устройство ему выплюнуло на посылку непонятного формата. Каким образом (исходя из чего) такой TX получился? Расшифровать пробовали?
Да всё равно - "out_of_service"

Не взлетит.

Счётчику все равно какой ТХ. Кроме команды фас в виде аа 02. После он сразу начинает отправлять текущие значения.

AJR
29.11.2024, 18:07
Вкратце для чего все это. Есть на предприятии КНС. В КНС насос который качает канализационные воды в очистные города. В насос попадает от батона до год-она. Насос засоряется и встаёт. Иногда с последствиями. КНС территориально далеко. И не всегда есть возможность контролировать. Есть операторы 24/7 и действующая скада. Я хочу чтобы операторы видели скорость потока и могли забить тревогу. Так как не специалист в этом вопросе, поэтому прошу помощи

МихаилГл
29.11.2024, 18:14
Вкратце для чего все это. Есть на предприятии КНС. В КНС насос который качает канализационные воды в очистные города. В насос попадает от батона до год-она. Насос засоряется и встаёт. Иногда с последствиями. КНС территориально далеко. И не всегда есть возможность контролировать. Есть операторы 24/7 и действующая скада. Я хочу чтобы операторы видели скорость потока и могли забить тревогу. Так как не специалист в этом вопросе, поэтому прошу помощи

Скажу тебе так... Операторам пофиг на эти скорости. Случай из прежнего места работы. Оператор запустила насос, один из четырех. Даже не она, а автоматика по датчику верхнего уровня. Я параллельно смотрю на скаду и вижу, что уровень не падает, звоню, говорю, включите другой насос. Мне такой вопрос: так этот же работает.
Пришлось учить, что если уровень не ушел в течении минуты, то насосу пи... Ну вы поняли. Им элементарно пофиг. Если только вы автоматически выключите, тогда поможет, а оператору эти цифры до одного места.

AJR
29.11.2024, 18:22
Не совсем. Хоть и красопеткам за 60, свои обязанности они знают.

МихаилГл
29.11.2024, 18:26
Ну с другой стороны, зачем ей голову забивать? Тогжа надо делать не просто расход, например, но и аварийное окошко на нижний предел. Тогда соглашусь. Но цифры... Сегодня они одни, завтра будут другие, и вместо того чтоб менять регламент при замене насоса, лучше в скаде поменять предел аварийной сигнализации.

AJR
29.11.2024, 18:36
Ну с другой стороны, зачем ей голову забивать? Тогжа надо делать не просто расход, например, но и аварийное окошко на нижний предел. Тогда соглашусь. Но цифры... Сегодня они одни, завтра будут другие, и вместо того чтоб менять регламент при замене насоса, лучше в скаде поменять предел аварийной сигнализации.

Согласен. Но, у меня операторы больше ориетируются по цифры. Специфика такая. Хоть со скриптами я не смог подружится, но на скаде при минимальных значениях, окошошко данных могу на красный поменять. Проблема не работы с операторами, а как из массива который отправляет счётчик получить реальные цифры

melky
29.11.2024, 18:40
AJR. Встаёт вопрос какая scada.
Ну а если вкратце.
1. Разобраться, может ли текущий OPC отдать сырыми данными, которые вы прочли scada системе?
2. Сможет ли scada система "обналичить" эти сырые данные в нужные вам переменные?

Если первый пункт "нихт" то сразу брать мульти протокольный opc с поддержкой LUA и по примерам делать для scada с формированием нужных переменных для scada.

melky
29.11.2024, 18:44
Судя по протоколу, там фигня полная, написать для RapdScada драйвер без красот не больше дня. Хотя не знаю, но в любом случае не долго.
И ее использовать как шлюз в OPC UA для вашей scada.

AJR
29.11.2024, 18:45
AJR. Встаёт вопрос какая scada.
Ну а если вкратце.
1. Разобраться, может ли текущий OPC отдать сырыми данными, которые вы прочли scada системе?
2. Сможет ли scada система "обналичить" эти сырые данные в нужные вам переменные?

Если первый пункт "нихт" то сразу брать мульти протокольный opc с поддержкой LUA и по примерам делать для scada с формированием нужных переменных для scada.

Ответ нихт. Simple scada. Может и умеет. Но я не умею к сожалению.

melky
29.11.2024, 18:48
Не, эту не знаю. Точнее меня она не интересует, ибо вЫндоуз :)

LUA и C++ тож не знаю, так что не помогу. А для Рапид драйвер бы сделал, тут так понимаю он примитивный, так как фиксированный набор данных вроде.

AJR
30.11.2024, 12:19
80463
Сервер данные получает. Теперь надо как то расшифровать.

melky
30.11.2024, 13:36
Покажите, какие типы в сервере можно задавать Tag-у ?
Если там нет строки, массива то забудьте.
Берите другой сервер и гирю, и пилите, она золотая.
А, это уже другой так понимаю.
Ищите примеры скриптов, как из буфера забирать нужные байты. И преобразовывайте.
По уму конечно порт опрашивать один раз, потом другими тегами забирать из опроса

AJR
30.11.2024, 13:57
Ищите примеры скриптов, как из буфера забирать нужные байты. И преобразовывайте.
Было бы так просто

melky
30.11.2024, 14:02
блин, поищите, были примеры для LUA точно. Как минимум начните со всех файлов установленного OPC. + справка + сайт

AJR
01.12.2024, 13:22
Победил все же

melky
01.12.2024, 14:31
Кроме сообщения "Победил все же" неплохо бы показать пример победы?
Прямо в OPC или смогли передать массив байт в Scada и там раскидать ?

В общем другим тоже было бы полезно узнать как одержали победу.

AJR
01.12.2024, 17:18
Завтра скину