PDA

Просмотр полной версии : Modbus Universal MasterOPC Server в режиме slave



smk1635
19.06.2012, 14:54
Есть два контроллера ПЛК154 и МастерСкада. Один контроллер – мастер, скада и второй контроллер – слейв. Связь по ModBus ТСР.
Обен между контроллерами работает нормально.
Обмен между Скадой и контроллером-мастером, не очень. Сигналы с контроллера проходят нормально. Сигналы со Скады (кнопки) не проходят.
Где ошибся ?

SCADAMaster
19.06.2012, 15:09
А запросы к устройству уходят?
Вы с адресами и типами ничего не напутали? В Codesys у вас тип переменной Holding Registers, а в ОРС inputRegisters (тег IS)

smk1635
19.06.2012, 15:18
А запросы к устройству уходят?
Вы с адресами и типами ничего не напутали? В Codesys у вас тип переменной Holding Registers, а в ОРС inputRegisters (тег IS)

Да это я уже тупым перебором пошёл. :D
Что Holding Registers, что inputRegisters, всё равно не проходят сигналы с скады.

smk1635
19.06.2012, 15:22
Причем на скаду уходит. И в Скаде все отражается. Лампы в Скаде - это выхода контроллеров дискретные. Всё работает. Кнопки в Скаде - дублируют дискретные входа контроллеров. Вот с них как раз и нет сигнала, точнее с ОРС-сервера. Причем как видно на изображениях в ОРС-сервере всё в порядке. Сигналы как положено.

smk1635
19.06.2012, 15:30
Такой вопрос ещё. В ОРС-сервере пременная типа "INPUT". Пытаюсь изменить тип доступа с "ReadWrite" на "ReadOnly". Не получается. Это нормально ?

SCADAMaster
19.06.2012, 15:31
Проверьте без скады. На всякий случая скачайте текущую версию ОРС сервера 2.0.0.9.
Запустите ОРС сервер в режим исполнения, собственным клиентом. Введите какое нибудь значение в тег и смотрите поступит ли его значение в контроллер.
Посмотрите какие запросы приходят к ОРС серверу - вероятно контроллер обращается к неправильным адресам.

Почему у вас в Codesys добавлен Debug 232?

SCADAMaster
19.06.2012, 15:41
Такой вопрос ещё. В ОРС-сервере пременная типа "INPUT". Пытаюсь изменить тип доступа с "ReadWrite" на "ReadOnly". Не получается. Это нормально ?
InputRegisters - это раздел регистров только для чтения. Чтение идет функцией 0х04
http://ru.wikipedia.org/wiki/Modbus#.D0.A7.D1.82.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B4 .D0.B0.D0.BD.D0.BD.D1.8B.D1.85
Используйте HoldingRegisters.

smk1635
19.06.2012, 16:06
Проверьте без скады. На всякий случая скачайте текущую версию ОРС сервера 2.0.0.9
Почему у вас в Codesys добавлен Debug 232?

Скинте ссылку пожайлуста. При всем моем уважении к компании InSat на сайте черт ногу сломит. :) Досих пор путаюсь где что искать.

При добавлении модуля Модбас (мастер) автоматически появляется Debug 232. Настройки ТСР указываются в подмодулях.

SCADAMaster
19.06.2012, 16:40
Как раз к ОРС найти ссылку совсем не проблема - ОРС серверы - ОРС серверы Modbus
http://www.masteropc.ru/prices/info.php?pid=6944

smk1635
19.06.2012, 17:30
Установил версию 2.0.0.9. Всё заработало штатно. Спасибо за помощь.

energvk
24.11.2014, 11:51
Не могу понять принцип работы слейва. Создаю слейв узел tcp/ip, в нем устройство, в котором есть период опроса. Т.е. я правильно понимаю, что мастер, подключается клиентом к серверу, которым является opc-сервер, после чего opc шлет запросы на устройство с заданным интервалом?

SCADAMaster
24.11.2014, 13:34
Нет, не так.
Если вы задали узел типа Slave, то ОРС сервер становится ведомым - он отвечает на запросы со стороны мастера.
Если же у вас контроллер является Slave, то ОРС сервер должен быть мастером (то есть настройка Slave) должна быть выключена. Посмотрите видеопримеры - в них все это описано:
http://insat.ru/prices/info.php?pid=6944#m1

energvk
24.11.2014, 15:48
Ясно,спасибо. Просто смутила настройка периода опроса

Roman62rus
30.11.2014, 19:06
И всё-таки где конкретно можно посмотреть или прочитать, как работает OPC-сервер в режиме Slave? Я пересмотрел все видеоуроки, но так и не обнаружил, чтобы в каком-либо из них описывался этот режим. Я что-то пропустил?
Нужно связать контроллер с Master SCADA, причём контроллер должен быть мастером, он сам считывает данные по MODBUS с периферийных приборов и должен отдавать SCAD'е эти и другие данные.

SCADAMaster
30.11.2014, 19:36
При добавлении узла, укажите у него настройку "Slave подключение".

Roman62rus
01.12.2014, 14:07
Это понятно, а дальше?
Когда мы конфигурируем сервер в режиме Master, для каждого тега мы указываем номер регистра в контроллере, поэтому команды чтения или записи MODBUS, посылаемые сервером, адресуются к конкретному регистру в контроллере. Чтобы контроллер мог так же использовать команды MODBUS, он должен знать номера регистров на сервере, к которым ему нужно адресоваться. Где они указываются? Есть ли ограничения на номера этих регистров? Вообще, пример настройки такого режима был бы весьма полезен.

PS Поскольку режим Master или Slave является основополагающим параметром при конфигурировании сервера, хотелось бы, чтобы запрос на установку данного параметра выдавался программой отдельно, так как если сразу не изменить режим на нужный, то потом приходится удалять всё и конфигурировать заново. Альтернатива - сделать возможным изменить режим существующего ком. узла.

SCADAMaster
01.12.2014, 15:25
Добавляете устройство, в него добавляете теги. У каждого тега вы задаете адрес Modbus - по этому адресу вы и будете обращаться к ОРС серверу из контроллера. Диапазон адресов ограничен только стандартом Modbus. Также вы можете задать тип данных регистра.

Roman62rus
01.12.2014, 16:50
Отлично! Теперь стало понятно. Но одновременно появился вопрос: если регистр 32-разрядный (или float), то следует это учитывать при нумерации, то есть увеличивать номер на 2, а не на 1? Или по-другому: можно ли назначать регистрам просто номера 1, 2, 3 и т. д., не учитывая их разрядность? В компьютере всё равно все регистры 32-разрядные (и даже 64).

SCADAMaster
01.12.2014, 17:50
Отлично! Теперь стало понятно. Но одновременно появился вопрос: если регистр 32-разрядный (или float), то следует это учитывать при нумерации, то есть увеличивать номер на 2, а не на 1?
Да, обязательно.


В компьютере всё равно все регистры 32-разрядные (и даже 64).
В компьютере да, но по стандарту Modbus один регистр занимает 2 байта.

ilan
15.10.2019, 17:14
Добрый день.
Нужно ли в настройках узла TCP/IP RTU Slave указывать ip адрес? Ведь он такой же как у компьютера, на котором запускается OPC-сервер. Или нет?

SCADAMaster
15.10.2019, 21:23
Можно оставить 127.0.0.1

AlexArGC
31.01.2023, 21:50
OPC север будет запущен удаленно,поэтому необходимо его настроить в режиме сервера. Но как то странно ведет себя этот режим. Он должен "слушать" шину по TCP, а он зачем то шлет опросы и получает таймауты. Инструкция к серверу вообще никак не помогает в настройке, там нет полного/внятного описания что происходит у сервера в таком режиме? То ли он ответов каких то ждет от клиента?

Сначала я сделал проверку на запись регистра с помощью утилиты MODRSSIM и вот что получил:

https://owen.ru/forum/attachment.php?attachmentid=65610&stc=1&d=1675190038
https://owen.ru/forum/attachment.php?attachmentid=65611&stc=1&d=1675190046

Но сервер OPC в режиме "сервера" отказывается работать :-( Может кто подскажет в чем секрет?
Приложил скрины настроек сервера...

kondor3000
31.01.2023, 22:16
OPC север будет запущен удаленно,поэтому необходимо его настроить в режиме сервера. Но как то странно ведет себя этот режим. Он должен "слушать" шину по TCP, а он зачем то шлет опросы и получает таймауты. Инструкция к серверу вообще никак не помогает в настройке, там нет полного/внятного описания что происходит у сервера в таком режиме? То ли он ответов каких то ждет от клиента?
Сначала я сделал проверку на запись регистра с помощью утилиты MODRSSIM и вот что получил:
Но сервер OPC в режиме "сервера" отказывается работать :-( Может кто подскажет в чем секрет?
Приложил скрины настроек сервера...
Похоже у вас программа в режиме Мастер, а вам надо сделать слейв. Удалите всё и начните сначала.
Используйте MasterOPC Universal Modbus Server, там нет проблем сделать Слейв, смотри скрин 65619
И включите Модбас поверх ТСР.
Кроме того не делайте адресов Тегов подряд как у вас 10 и 11, ваша 16 битная переменная (в сервере 32 битная), займёт 2 регистра. Например адреса 10 и 12.
https://owen.ru/product/opc_server_insat

или например программу Лектус https://owen.ru/product/modbus_opc_dde_server/documentation_and_software 65621
Можно сделать ТСР сервер и ТСР клиент

AlexArGC
31.01.2023, 22:28
Похоже у вас программа в режиме Мастер, а вам надо сделать слейв.
Используйте MasterOPC Universal Modbus Server, там нет проблем сделать Слейв, смотри скрин 65619
https://owen.ru/product/opc_server_insat

Точно ведь! А не поделитесь? Что-то от сюда уже не качается https://masteropc.ru/download

Нашел английскую версию здесь https://opc-server.com/catalog/modbusopc/modbus_opc/ и "о боги" все сразу заработало :-)
А чего нашим то инсайтам не имется это режим закрыть?

AlexArGC
31.01.2023, 23:06
Похоже у вас программа в режиме Мастер, а вам надо сделать слейв. Удалите всё и начните сначала.
Используйте MasterOPC Universal Modbus Server, там нет проблем сделать Слейв, смотри скрин 65619
И включите Модбас поверх ТСР.
Кроме того не делайте адресов подряд как у вас 10 и 11, ваша 16 битная переменная (в сервере 32 битная), займёт 2 регистра. Например адреса 10 и 12.
https://owen.ru/product/opc_server_insat

или например программу Лектус https://owen.ru/product/modbus_opc_dde_server/documentation_and_software 65621
Можно сделать ТСР сервер и ТСР клиент

Спасибо за наводку.... Попробовал её. Немного не нативной настройка slave... Но странный лог получаю :-(
Как это понимать "не запрашиваемые" :-) Ну они такие и есть....


01:04:09.453 [8392] (0.0.0.0:502 сервер) Подключение клиента - ОК (192.168.0.14:51077)
01:04:18.564 [8392] (0.0.0.0:502 сервер) Подключение клиента - ОК (192.168.0.14:50391)
01:04:18.778 [11088] (0.0.0.0:502 сервер)(192.168.0.14:50391) Rx:[12] 00 00 00 00 00 06 01 06 00 0A 1C D0
01:04:18.778 [11088] (0.0.0.0:502)Rx: [8] 01 06 00 0A 1C D0 A0 94
01:04:18.778 [11088] Ошибка: получены не запрашиваемые данные
01:04:23.523 [11088] (0.0.0.0:502 сервер)(192.168.0.14:50391) Rx:[12] 00 01 00 00 00 06 01 06 00 0A 30 59
01:04:23.523 [11088] (0.0.0.0:502)Rx: [8] 01 06 00 0A 30 59 7D F2
01:04:23.523 [11088] Ошибка: получены не запрашиваемые данные
01:04:28.528 [11088] (0.0.0.0:502 сервер)(192.168.0.14:50391) Rx:[12] 00 02 00 00 00 06 01 06 00 0A 43 E2
01:04:28.528 [11088] (0.0.0.0:502)Rx: [8] 01 06 00 0A 43 E2 18 B1
01:04:28.528 [11088] Ошибка: получены не запрашиваемые данные

kondor3000
31.01.2023, 23:49
Точно ведь! А не поделитесь? Что-то от сюда уже не качается https://masteropc.ru/download

Нашел английскую версию здесь https://opc-server.com/catalog/modbusopc/modbus_opc/ и "о боги" все сразу заработало :-)
А чего нашим то инсайтам не имется это режим закрыть?

Так у вас она же и стояла, просто не сразу увидел, а по моей ссылке и вашей с 3 окна качается Мозиллой. Где 64 битная версия на 1 час.
С адресами 10 и 12, это для проверки, а так пробуйте 10 и 11, главное, чтобы они друг друга не затирали, 32 битная и 16 битная переменные.

В Лектусе проще, там читает и в сервер пишет одно и тоже.