PDA

Просмотр полной версии : Как настроить ПЛК для работы через CodeSys OPC с 2-мя и более PC



Ed61
05.11.2015, 15:35
Всем доброго дня.

Проблема заключается в сборе информации на две станции РС с нескольких ПЛК (в данном случае два ПЛК100 и ПЛК110) через CodeSys OPC
Собрана такая система:
- С двух ПЛК 100 посредством утилиты plc_io один раз в сутки забирается txt файл (архив данных).
- В то же время, эти ПЛК связаны с excel файлом через Lectus OPC DDE server, где видны текущие значения переменных и их суточный архив.
- Данные ПЛК110 передаются в базу Access через CodeSys OPC посредством OPC-rouer.
Все работает но есть пробема: связка excel и Lectus OPC DDE server забирает много ресурсов и как результат есть потери данных.

Решил перевести передачу данных со всех ПЛК в базу Access через CodeSys OPC посредством OPC-rouer, такой способ на много производительнее. Но перестала работать утилита plc_io (ошибка 100).
При разносе задач на разные компьютеры пробема осталась. В то же время, проект ПЛК связь с контроллером обеспечивает на любом из PC.

Можно ли к одному ПЛК через Codesys OPC подсоединить несколько станций PC?
Есть вероятность регуляной модификации базы данных, а она разрешает только монопольный доступ (во время сбора данных ее невозможно будет модифицировать).
Поэтому хотелось бы организовать доступ к ПЛК с двух компьютеров одновременно, один из которых будет находится в процессе отладки для модификации базы и SCADA

Uniqum
06.11.2015, 07:23
почему бы не попробовать TCP Slave????

Ed61
06.11.2015, 08:46
почему бы не попробовать TCP Slave????

TCP Slave это модуль в конфигурации входов выходов для передачи по протоколу Modbus, а при передаче данных через CodeSys OPC формируется символьный файл, который настраивается в "рабочая область - символная конфигурация", где можно выбрать асолютно любую переменную для вывода на CodeSys OPC сервер. Так что этот вариант не проходит.

Uniqum
06.11.2015, 09:43
странно, у Вас есть Lectus OPC, что же мешает настроить в Lectuse прием данных, а уже оттуда в базу данных... Sorry не полностью прочитал ваш вопрос, предложение снимается :) 20677

Ed61
01.12.2015, 11:21
проблему работы с одним контроллером с двух разных компьютеров через CodeSys OPC решить не удается, приходится налаживать работу на разных компьютерах через разные OPC сервера, настроился так: один работает через CodeSys OPC второй работает через fastwell modbus OPC, что не очень good. Lectus OPC DDE server не хочет работать с inray OPC router (название переменных видно но нет передачи их значений). При передаче через modbus TCP/IP большой процент потери данных, чего не наблюдается при работе через CodeSys OPC. Заметил, если с разных компьютеров организовать чтение запись переменных через modbus TCP/IP одного и того же модуля в конфигурации ПЛК, то канал занимает только один из компьютеров у второго нет доступа к данным, предполагаю, скорей всего, для каждого компьютера в конфигурации ПЛК необходимо прописывать свой TCP/IP модуль возможно с другим номером порта (такой вариант не пробовал).

Николаев Андрей
01.12.2015, 14:56
Вы пришли к совершенно верному выводу.
CODESYS OPC использует протокол Gateway. По сути точка точка. При попытке подключиться вторым Gateway клиентом - контроллер может виснуть и перезагружадться.
По этому ModBus TCP OPC сервер. Для каждого из них открываете свой порт (до 5 портов).
Так же не стоит работать с CODESYS OPC и другим OPC ровно из тех же соображений + то, что Gateway очень тяжел по транспортной нагрузке, а это увеличивает объем передаваемой информации в общей посылке.

FPavel
30.01.2016, 11:22
Я не разбираюсь в деталях, но для Siemens видел следующее решение (возможно, интегрированное со СКАДой):
- один компьютер является сервером. Он принимает от множества приборов из разных сетей данные - все интерфейсы рано или поздно преобразовывались через преобразователи (от производителей приборов) в ethernet. На сервере работают OPC серверы от производителей приборов.
- остальные компьютеры являются клиентами и находятся в одной локальной сети с сервером. Нужными данными они обмениваются не напрямую с приборами, а через сервер.

Полагаю, что можно совместить функции АРМ и сервера на одном из компьютеров.

krollcbas
30.01.2016, 13:26
Universal Modbus OPC server - подойдет для Вас. Там можно организовывать и мастера и слейва, делать на JS привязку значений от любого ПЛК любому ПЛК. Бесплатно (на пробу) 32 тэга.
Техническая поддержка компании Инсат работает хорошо. Мне всегда хватало для понимания их ответов