PDA

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



Party3AH
29.05.2024, 14:15
Добрый день,

не удаётся подключить OPC-сервер к ПЛК160М2 (Master).

Установил тип узла в OPC - Slave, появляется ошибка: "Нарушение прав доступа к сокету".
Номер порта - 502.
Если его изменить на любой другой - ошибка уходит, но связи конечно нет.

76109

ПЛК160 - Master имеет IP 10.0.6.10.
В его конфигурации добавлен Universal Modbus Device как Slave, с адресом 10.0.6.20, порт TCP 502.

1exan
29.05.2024, 15:21
Добрый день,

не удаётся подключить OPC-сервер к ПЛК160М2 (Master).

Установил тип узла в OPC - Slave, появляется ошибка: "Нарушение прав доступа к сокету".
Номер порта - 502.
Если его изменить на любой другой - ошибка уходит, но связи конечно нет.

ПЛК160 - Master имеет IP 10.0.6.10.
В его конфигурации добавлен Universal Modbus Device как Slave, с адресом 10.0.6.20, порт TCP 502.

Если вы хотели опрашивать ПЛК с ПК, то не надо никаких Universal Modbus Device. Добавьте в конфигурацию ПЛК только "Modbus (slave)", а в его подблок "Modbus[FIX]" - добавьте "TCP" (там порт по умолчанию стоит 502). После этого добавьте в "Modbus (slave)" нужные теги. В OPC укажите IP ПЛК (10.0.6.10) и порт 502 (тоже должен уже быть такой по умолчанию)

kondor3000
29.05.2024, 16:14
Добрый день,
ПЛК160 - Master имеет IP 10.0.6.10.
В его конфигурации добавлен Universal Modbus Device как Slave, с адресом 10.0.6.20, порт TCP 502.

По ТСР вы так не сможете подключить, только ПЛК слейв.

Если хотите ПЛК мастер и программу слейв, то подключайте по RS485 через переходник.

Party3AH
29.05.2024, 16:36
Хотелось бы оставить ПЛК в роли Master, т.к. уже в разработанной системе панель оператора (Slave) планирую заменить СКАДА, но ПЛК160 не поддерживает OPC UA.
Все регистры уже прописаны для мастера.

Да и хотелось бы использовать такую возможность, всё-таки написано, что MasterOPC поддерживает режим ModbusTCP-Slave.

Party3AH
29.05.2024, 16:37
Интересно, это ограничение ПЛК160?
Не совсем понимаю, в чём проблема такого подключения.

1exan
29.05.2024, 17:06
Интересно, это ограничение ПЛК160?
Не совсем понимаю, в чём проблема такого подключения.

Попробовал - у меня такой ошибки нет, через ModbusPoll опрашивается:

76115

Вообще мастер через конфигурацию в ПЛК1X0 не поддерживает групповые запросы, если регистров много - надо использовать библиотеки.
Может проще сделать ПЛК слейвом - даже через конфигурацию это работает без нареканий

Pavel5698
29.05.2024, 17:12
Установил тип узла в OPC - Slave, появляется ошибка: "Нарушение прав доступа к сокету".
Номер порта - 502.


А порт 502 у вас не занят? Другие ПО его не используют?
Можете в командной строке прописать netstat -no и поискать через Ctrl+F "502"
И IP адрес ПК у вас какой?

Party3AH
29.05.2024, 17:57
А порт 502 у вас не занят? Другие ПО его не используют?
Можете в командной строке прописать netstat -no и поискать через Ctrl+F "502"
И IP адрес ПК у вас какой?

Да, похоже на то, что порт 502 был занят, но не могу понять чем.

IP адрес ПЛК = 10.0.6.10,
маска подсети 255.255.255.0,

IP адрес ПК = 10.0.6.20, так же на нём работает MasterSCADA и её RunTime (может он как-то влиял?).
маска подсети 255.255.255.0,
Отключил все брэндмауэры и антивирусы - также блокировался порт.

Добавил в ПЛК узел Slave, MasterOPC сделал Master - всё заработало.

Всё закрыл, выключил скаду и OPC сервер, вбил "netstat -no" - подключений с таким IP нет.

Ещё интересный момент - после перезагрузки ПК один раз всё заработало - в OPC сервере ПЛК подключился, заморгали светодиоды на его разъёме.
Но после переподключения опять ошибка, что сокет не доступен...

Party3AH
29.05.2024, 17:59
Попробовал - у меня такой ошибки нет, через ModbusPoll опрашивается:

76115

Вообще мастер через конфигурацию в ПЛК1X0 не поддерживает групповые запросы, если регистров много - надо использовать библиотеки.
Может проще сделать ПЛК слейвом - даже через конфигурацию это работает без нареканий

Групповые запросы ПЛК160-М2 поддерживает - я записываю сразу STRING по 80 регистров через "Preset Multiple Registers" команду 0x10.
Или Вы имеете ввиду MasterOPC не поддерживает?

Попровал ПЛК слейвом - действительно в чём-то проще, и сразу принимать данные в MasterSCADA :)

1exan
29.05.2024, 18:02
Групповые запросы ПЛК160-М2 поддерживает - я записываю сразу STRING по 80 регистров через "Preset Multiple Registers" команду 0x10...

Да, это тоже вариант

Pavel5698
29.05.2024, 18:19
IP адрес ПК = 10.0.6.20, так же на нём работает MasterSCADA и её RunTime (может он как-то влиял?).


С выключенной скадой та же ошибка?
попробуйте прописать netstat -ano, с включенной скадой

Party3AH
31.05.2024, 15:51
С включенной скадой netstat -ano отображает подключение по 10.0.6.20 порт 502.
И с выключенной скадой также OPC Server не работал.

Но в режиме ПЛК-slave всё работает хорошо, и с включенной скадой также.
Вдобавок, в скаде удобнее прописывать регистры, когда она в роли мастера.

Pavel5698
31.05.2024, 16:50
С включенной скадой netstat -ano отображает подключение по 10.0.6.20 порт 502.
В строке где было это написано крайняя правая цифра - это ID процесса. Запомните его. Затем зайдите в Диспетчер задач, раздел Подробности (в win10) и найдите процесс c таким ID. Узнаете, что именно занимает порт.


Но в режиме ПЛК-slave всё работает хорошо, и с включенной скадой также.
Вдобавок, в скаде удобнее прописывать регистры, когда она в роли мастера

Само собой). Скада и должна быть мастером. Описанный способ просто позволяет выяснить кто занимает порт.