PDA

Просмотр полной версии : Codesys OPC и 102 контроллера ОВЕН ПЛК100.Р-М



Евгений_1976
05.02.2008, 16:44
В документации по настройке OPC Codesys написано, что он хорошо справляется с обработкой 15000 символов или символьным файлом размером 1,5 Мб. У кого нибудь есть опыт опроса через OPC Codesys большого количества ПЛК ?
Запустили недавно систему из 102 ПЛК ОВЕН ПЛК100.Р-М. Данные из этих ПЛК через OPC Codesys поступают в SCADA WIZCON 8.3. Отмечается нестабильный опрос всех ПЛК. Иногда при запуске WIZCON все контроллеры опрашиваются нормально, стоит закрыть и снова запустить WIZCON, с некоторыми ПЛК связь теряется и больше не восстанавливается.

Сергей Бондаренко
05.02.2008, 18:01
:eek: Ого!
102-х ПЛК, крутая у вас однако система! А каждый ПЛК сколько имеет еще модулей подключеных? или Вы количеством ПЛК набрали количество каналов, вообщем интерсно куда могло понадобиться столько ПЛК в одной сети, что за процессы?

Филоненко Владислав
05.02.2008, 18:25
И ещё 5 копеек.
102 ПЛК, связь через OPC CoDeSys, пероятно по Ethernet.
Достаточно много пакетов, чтобы перегрузить линию Ethernet.
У компьютера задействован 1 порт Ethernet? И на нём-же обычная локальная сеть общего пользования?

Евгений_1976
05.02.2008, 18:35
Имеется у нас комплектное распределительное устройство (КРУ) 10 кВ, состоящее из такого количества вакуумных выключателей. Для управления каждым выключателем и защиты отходящего фидера используем микропроцессорный блок релейной защиты БМРЗ фирмы "Механотроника" г. Санкт-Петербург (mtrele.ru). ПЛК Овен установлены для опроса состояния электрооборудования (5-6 дискретных сигналов) в каждом релейном отсеке (где установлены блоки БМРЗ) и для опроса по Modbus самого блока БМРЗ.
Можно конечно было обойтись и меньшим количеством ПЛК, но решено было для каждого вакуумного выключателя и его релейной защиты установить отдельный ПЛК. :)

Евгений_1976
05.02.2008, 18:51
Связь через Codesys по Ethernet. У компьютера задействован 1 порт. ПЛК Овен подключены к общей цеховой сети. В этой же сети работают еще контроллеры фирмы Текон (www.tecon.ru) около 30 штук. Они также опрашиваются через свой OPC сервер Проблем с ними в плане опроса пока не возникает, может потому что их пока не так много. Но в ближайшее время их количество тоже возрастет.

Филоненко Владислав
05.02.2008, 21:22
Рекомендую сегментировать сети, отделить данные в общецеховой цепи (там гуляет куча UPD и ICMP пакетов), к компьютеру сегменты подключить либо через гигабитный свич, либо (что предпочтительнее) разнести общую сеть и сеть, по к-й опрашиваются приборы на отдельные порты Ethernet на компьютере.
Также желательно промониторить "приборный" сегмент на наличие лишних пакетов и отсечь их путём настройки свичей (если позволяют) или компьютера.
Это намётки, более качественную консультацию сможет оказать сетевой администратор, если ему описать проблему и требования.

Эта скада (WizCOn) позволяет перезапускать связь с отдельными контроллерами? При сбоях связи с каким-то контроллером возможно ли снять снифером лог обмена в сети и выложить, посмотрим идут ли запросы от OPC к молчащему контроллеру.

Евгений_1976
06.02.2008, 03:40
ПЛК подключены к цеховой сети через управляемый коммутатор 2 уровня Allied Telesyn 8516FX, но мы его пока не настраивали.
Кстати, на форуме уже описывалась подобная проблема... Этот коммутатор не пропускал пакеты от ПЛК, у которых MAC адреса начинались на 67:77.
Здесь проблема, как нам кажется, в связке OPC - Scada. Пока система работатет стабильно... Но если перезапустить Wizcon, то возникают подобные проблемы. Приходится его несколько раз перезапускать, пока не убедимся, что все контроллеры опрашиваются. Эта скада не позволяет перезапускать связь с отдельными контроллерами, ведь она является OPC-клиентом по отношению с Codesys OPC...
Попробуем потестить Codesys OPC каким-нибудь простым OPC-клиентом... Может в настройках OPC config времена понастраивать ?

Малышев Олег
06.02.2008, 11:31
Есть еще вариант. Убрать CoDeSys OPC и поставить Modbus TCP OPC сервер. Как вариант - Matricon. Размер данных понизится, сложность работы тоже. Как дополнительный бонус для работы через CoDeSys не потребуется отключать OPC.

Евгений_1976
06.02.2008, 16:40
Сегодня в настройках opc_config для каждого ПЛК поставили галочку "No Login Service" (по умолчанию она не стояла). Не знаем с этим ли это связано, но пока система работает стабильно. Где-то 8 раз перезапускали SCADA и все нормально. В лог-файлах Codesys OPC тоже все норма, все ПЛК опрашиваются. Посмотрим как дальше все будет работать.

Филоненко Владислав
06.02.2008, 19:05
Удачи, интересно, как такая большая система будет работать.

lomtik
01.09.2012, 01:18
Добрый день, ломаю голову над такой же проблемой, только кол-во контроллеров 203 и это не предел, должно быть более 500-т контроллеров ПЛК-100. Проект по диспетчеризации. С одного контроллера передаются 4 сигнала: 3 счетчика и сигнал пожарной сигнализации, итого пока около 800 переменных. Кодесисный ОПС глючит по страшному. Соответственно Мастерскада замирает и считай тоже не работает. Пока нашли временный выход - принудительное прибитие процесса по расписанию ОПС кодесис.ехе каждый час, после этого скада запускает его заново и более-менее все восстанавливается, но это не выход. Бывает и часа ОПС не протягивает. И есть еще одна проблема - могу подключить только 200 контроллеров, а какие-нибудь три постоянно в офлайне, что за беда?
Реально ли эта настройка помогла (галочка - на no login) на стабильность? У меня тоже не стоит, если мне не поможет - буду переходить на Modbus OPC Server.
Скачал инсатовский демо на 32 тэга. Подскажите, опыта маловато: как задать правильно тэги в модбасе для ПЛК-100? Список адресов регистров плк-100 где взять.

Николаев Андрей
01.09.2012, 01:26
Могу сказать сразу: OPC CoDeSys не потянет. Проверяли на Питерских Силовых машинах. Вешается, особенно когда в корпоративную локалку ставили.
Только внешние ModBus OPC. Какой был на силовых машинах - не помню. Европеец. Потянет ли Инсатовский - надо спросить поддержку Инсата.

Если можно - скиньте пожалуйста Ваши координаты на a.nikolaev@owen.ru - очень интересно что у Вас за проект.

lomtik
01.09.2012, 01:43
Инсатовский есть на 500, на 2500 и безлимитный, хочу потестить на бесплатном 32 тэговом сначала. Его использовать рекомендовали Пролог (Смоленск), после консультаций кажется с вами же (Овен). Я им такой же вопрос задал. Думаю должен потянуть. Сказали по опыту примерно до 900 переменных тянет ОПС кодесис, не знаю откуда 15000 взялось в первом сообщении. Мне еще не понятно почему не подключается более 199-200 котроллеров одновременно. Разработчики (3S) из германии ответили что-то невнятное - типа ограничения на кол-во подключаемых контроллеров нет, есть ограничения по производительности компа и кажется кол-ву тэгов и запросили логи опээса. Загрузка компа -65-75 %.
и еще - сеть только для диспетчеризации.

capzap
01.09.2012, 08:06
:) Вы наверное в армии не служили, подобные схемы решаются делением на структурные подразделения. В результате диспетчерский пункт собирал бы инфу например с 10-ти плк, каждый в свою очередь по другому каналу связи собирал бы помимо своих четырех каналов со своих ведомых плк, в количестве тех же 10 штук. И в итоге 100 плк присылали бы свои данные на ДП

SCADAMaster
01.09.2012, 17:50
Добрый день, ломаю голову над такой же проблемой, только кол-во контроллеров 203 и это не предел, должно быть более 500-т контроллеров ПЛК-100. Проект по диспетчеризации. С одного контроллера передаются 4 сигнала: 3 счетчика и сигнал пожарной сигнализации, итого пока около 800 переменных.

800 переменных наш ОРС потянет без проблем. Только не советуем увлекаться маленькими периодами опроса, начните с 1000 мс, а потом уже пробуйте снижать.
Ну а поскольку у вас Ethernet то запросы можно сделать подлиннее, одним запросом опрашивайте все ваши 4 тега.
На странице загрузки версии на 32 тега, есть видеопримеры, по созданию конфигураций
http://www.masteropc.ru/prices/info.php?pid=6944



Скачал инсатовский демо на 32 тэга. Подскажите, опыта маловато: как задать правильно тэги в модбасе для ПЛК-100? Список адресов регистров плк-100 где взять.
Вот с этим у ПЛК100 не все просто. В PLC Configuration добавляете Modbus Slave, настраиваете на Modbus TCP. А затем начинаете добавлять теги.
При этом конкретный Modbus адрес нигде не отображается, его нужно вычислить самостоятельно.
Подробнее вам расскажут в техподдержке ОВЕН.
В принципе если у вас всего 4 тега, то конфигурация будет несложная (скорее всего у вас 4 тега uint16).

lomtik
01.09.2012, 20:53
:) Вы наверное в армии не служили, подобные схемы решаются делением на структурные подразделения.
capzap ;)да да не служил:D . Да и проект не я придумал. Я лишь продолжаю начатое дело, а опыта не так много в этом, тем более это не основное мое занятие :) .

извините за странные вопросы, но в текущей конфигурации плк - стоит modbus master, её надо будет удалить тогда?

SCADAMaster
видеопримеры я смотрел, но не много не понял, список адресов регистров как узнать. Это вы про это же:

При этом конкретный Modbus адрес нигде не отображается, его нужно вычислить самостоятельно.

а нигде нет подробной интсрукции как перестроить плк-100 с кодесис опс сервера на инсатовский modbus сервер? нигде не нашел.

capzap
01.09.2012, 21:47
capzap ;)да да не служил:D . Да и проект не я придумал. Я лишь продолжаю начатое дело, а опыта не так много в этом, тем более это не основное мое занятие :) .

извините за странные вопросы, но в текущей конфигурации плк - стоит modbus master, её надо будет удалить тогда?

SCADAMaster
видеопримеры я смотрел, но не много не понял, список адресов регистров как узнать. Это вы про это же:


а нигде нет подробной интсрукции как перестроить плк-100 с кодесис опс сервера на инсатовский modbus сервер? нигде не нашел.
ОРС работает со слейвами же

а поповоду расположения в слейве данных, плк вообще трогать ненадо, если оставляете структуру такой какая есть. С конфигурацией все просто, с верху в них с нулевого регистра и биты тоже с нуля этой же конфигурации. Регистры считаются по два байта и кратны двум, если в начеле стоит один 8-и битный модуль, а заним регистр, то номер этого регистра уже будет 1, а межу этими модулями будет незадействова целый байт, впрочем прочтите сами
http://www.kipshop.ru/CoDeSys/steps/owen_plc-configuration.pdf

3.1.3.1. Выравнивание переменных

lomtik
01.09.2012, 22:43
спасибо за ссылку
вот смотрю я на конфигурацию своих плк, и не понимаю, почему у них у всех тогда modbus master стоит :-)


ОРС работает со слейвами же

capzap
02.09.2012, 00:21
ну, в проекте у Вас мастер обращается к модулю МДВВ, про общение со скадой я не нашел ничего
И судя по проекту, Вам вообще плк нужны, ОРС точно так же может и сами модули опрашивать, с той лишь разницей что по 485 интерфейсу с дальностью до километра, на порядок больше чем по Ethernet

SCADAMaster
02.09.2012, 10:32
видеопримеры я смотрел, но не много не понял, список адресов регистров как узнать. Это вы про это же:

При работе с ПЛК100 вы сами создаете конфигурацию адресов Modbus - добавляете в PLC Configuration регистры. Capzar вам описал схему определения адреса



а нигде нет подробной интсрукции как перестроить плк-100 с кодесис опс сервера на инсатовский modbus сервер? нигде не нашел.
Просто настраивается Modbus Slave. Посмотрите в документе который вам дал capzar

lomtik
02.09.2012, 13:28
ну, в проекте у Вас мастер обращается к модулю МДВВ, про общение со скадой я не нашел ничего


вот и мне странно показалось комментарии на МДВВ в программе, такое ощущение, что списали программу с МДВВ, т.к. у нас нет таких модулей - только ПЛК-100 :D

спасибо за ссылки на документацию, уже изучаю, теперь думаю разберусь.:)

SCADAMaster какой брать сервер лучше - сразу на 2,5К. Или можно на 500, а потом еще нарастить на 500 например и т.д.

а какая длина логической переменной BOOL и переменной типа DWORD?

SCADAMaster
02.09.2012, 15:24
SCADAMaster какой брать сервер лучше - сразу на 2,5К. Или можно на 500, а потом еще нарастить на 500 например и т.д.

Нет, так нарастить не получится.
Можете взять на 500, а потом обновить (с доплатой) до 2.5К, но нужно уточнить. Уточните об этом в отделе продаж scada(собака)insat.ru



а какая длина логической переменной BOOL и переменной типа DWORD?
BOOL обычно опрашивают через тип функции 0x01 (Coils).
Dword - это эквивалент Uint32 в нашем сервере.

lomtik
04.09.2012, 10:19
SCADAMaster, capzap спасибо вам большое, у меня все получилось.))) Сделал все на одном тестовом контроллере и 32-х тэговом модбасе. Без ваших советов это было было бы невозможно. Выравнивание данных заняло больше всего времени))).

Еще маленький вопрос: когда у меня будет 200 контроллеров и 800 тэгов на модбасе, настройки модбаса по умолчанию подойдут, надо что-то будет менять? И какой реальный предел кол-ва тэгов модбас сервера инсата кто-нибудь проверял?

SCADAMaster
04.09.2012, 14:54
Еще маленький вопрос: когда у меня будет 200 контроллеров и 800 тэгов на модбасе, настройки модбаса по умолчанию подойдут, надо что-то будет менять?
Скорее всего подойдут по умолчанию. Но можно немного увеличить период опроса контроллера - до 2-3 секунд.



И какой реальный предел кол-ва тэгов модбас сервера инсата кто-нибудь проверял?
На 800 тегов проблем быть не должно.

lomtik
05.09.2012, 23:10
ваш ответ немного настораживает :-)
напомню, что 200 контроллеров и 800 тэгов - это мое текущее состояние, которое с трудом но переваривает кодесис, а вот конечное состояние будет более 500 контроллеров и более 2000 тэгов :cool:
надеюсь наша сеть и ваш сервер выдержат такие объемы, так что ждите статистики от меня :D

Александр_Гранд
02.12.2012, 01:00
Ну как? Статистика какая уже есть?

lomtik
02.12.2012, 02:44
В настоящий момент к инсатовскому серваку подключил 207 контроллеров ПЛК-100 и где-то 830 тэгов. Сервак работает обалденно. Ни одного зависа, ни одного сбоя. Раньше по расписанию ставил небольшой bat-файл для прибития процесса кодесис и последующего его автоматического перезапуска. Сейчас же забыл про эту штуку совсем. Причем сервак запросто проглатывает и переваривает все сбои по связи у нас в сети, т.е. опрос контроллеров сразу же автоматически восстанавливается при восстановлении связи с контроллером. А вот кодесис от этих сбоев по связи зависал...

Александр_Гранд
02.12.2012, 14:57
Спасибо! Очень полезная информация!

dr.power
15.03.2018, 22:01
Здравствуйте.
Прежде чем тут писать, прочитал все что было в ветке форума и файлы которые тут давали.
Но ни как не могу победить, сразу скажу это впервые в жизни когда я прикоснулся к плк и опс.
исходные данные.
ПЛК100 (овен) к нему подключены 6 штук МВ110-224-16д (rs-485). Так же есть ОПС сервер инсат на 500 тегов. (Ethernet к ПЛК)
Задача в сервере получить данные с дискретных входов (замкнут или разомкнут)
ОПС к плк подключается, но с 16д, не могу получить данные. Пробовал создавать тег с указанием адреса устройства (д16 имеет адрес 11, специально купил АС4 и через него изменил адрес, так же изменил протокол на modbus RTU), пробовал импортировать уже готовый в ОПС сервере устройство как у меня, результат один и тот же, посылка запроса и тишина, или ошибка 3.
уже не знаю в какую сторону копать, а в этой теме еще про выравнивание данных вычитал. у меня конкретный ступор.
Прошу помощи, ткните куда копать, где копать.
http://my-files.ru/dgr8j1

dr.power
16.03.2018, 09:38
Здравствуйте.
Прежде чем тут писать, прочитал все что было в ветке форума и файлы которые тут давали.
Но ни как не могу победить, сразу скажу это впервые в жизни когда я прикоснулся к плк и опс.
исходные данные.
ПЛК100 (овен) к нему подключены 6 штук МВ110-224-16д (rs-485). Так же есть ОПС сервер инсат на 500 тегов. (Ethernet к ПЛК)
Задача в сервере получить данные с дискретных входов (замкнут или разомкнут)
ОПС к плк подключается, но с 16д, не могу получить данные. Пробовал создавать тег с указанием адреса устройства (д16 имеет адрес 11, специально купил АС4 и через него изменил адрес, так же изменил протокол на modbus RTU), пробовал импортировать уже готовый в ОПС сервере устройство как у меня, результат один и тот же, посылка запроса и тишина, или ошибка 3.
уже не знаю в какую сторону копать, а в этой теме еще про выравнивание данных вычитал. у меня конкретный ступор.
Прошу помощи, ткните куда копать, где копать.
куда можно загрузить кофигурацию плк, пытался на файло обменник но походу нельзя

_Mikhail
16.03.2018, 11:01
Здравствуйте.
Прежде чем тут писать, прочитал все что было в ветке форума и файлы которые тут давали.
Но ни как не могу победить, сразу скажу это впервые в жизни когда я прикоснулся к плк и опс.
исходные данные.
ПЛК100 (овен) к нему подключены 6 штук МВ110-224-16д (rs-485). Так же есть ОПС сервер инсат на 500 тегов. (Ethernet к ПЛК)
Задача в сервере получить данные с дискретных входов (замкнут или разомкнут)
ОПС к плк подключается, но с 16д, не могу получить данные. Пробовал создавать тег с указанием адреса устройства (д16 имеет адрес 11, специально купил АС4 и через него изменил адрес, так же изменил протокол на modbus RTU), пробовал импортировать уже готовый в ОПС сервере устройство как у меня, результат один и тот же, посылка запроса и тишина, или ошибка 3.
уже не знаю в какую сторону копать, а в этой теме еще про выравнивание данных вычитал. у меня конкретный ступор.
Прошу помощи, ткните куда копать, где копать.
куда можно загрузить кофигурацию плк, пытался на файло обменник но походу нельзя

Нужно смотреть как сконфигурован опрос. Без проекта не сказать

dr.power
16.03.2018, 14:15
вот это у меня в плк.
http://my-files.ru/y964hp

capzap
16.03.2018, 14:16
Ак как сюда выложить проект, просто тут кнопки прикрепить файл не вижу.
http://my-files.ru/y964hp

воспользуйтесь кнопкой расширенный режим

dr.power
16.03.2018, 14:45
А в расширенном режиме интересней :-)
Как я понимаю, то выглядить должно в программе плк так.
Слейв модбас, потом указываем куда пересылать запросы (это из компьюетрных пониманий происходящего), указываем модбас мастер и в нем универсальные устройсвтва прописываем адреса устройств доступных для работы, и как кие пказания снимать у устройств ( регистр инпут модулер у меня стоит)

тут мне кажеться я прав, если нет закидайте меня и подскажите где я не прав.

А вот почитав про выравниваение приходит на ум, одно, это как согласование... мы вам шлем деньги доллары, а на сервере принимают рубли, и вот тут мне нужны 2байта, 4 байта, и 8 бит, типа обменика, но как их использовать и какие я не могу найти инфу.

dr.power
17.03.2018, 17:04
Есть предположение, скорее всего я вообще все не верно понимаю, и поэтому ни кто не хочет помогать, Если да, так и скажите... Просто я на грани срыва, нет понимания. Я понял что у меня весь упор именно в это выравнивание, но ни как не могу понять как его сделать, в плане у меня есть 10 дискретников, и как с них получать данные. С ПЛК они одним пакетом идут на ОПС, если да, то получается мне нужно из этого пакета с разных ячеек выбрать отдельные данные, но какие и из каких? а если не одним, то тогда как? где это узнать. Какой то информации объясняющей подробно нет или не нашел, или не понял что это именно то что нужно но оно изложенно фиг пойми в какой форме.

capzap
17.03.2018, 17:47
начните с простых вещей, отдельно мастер, отдельно слейв, в программе транзит. А у Вас сразу желание наломать по больше дров, запихивать в мастер слейв или как Вы там сделали. Про выравнивание Вам пока рано задумываться, когда в проекте используется один регистр в слейве

dr.power
18.03.2018, 16:34
Я в модбас слейв положил модбас мастер, это уже было сделано из домыслов одной из логик как это должно работать.
Прошу Вас пожалуйста направьте.
Если выше написаное не верно, тогда спрошу какой вариант верный. Мне для понимания логики работы плк.
1. Создаем модбас мастер, в нем прописываем все доп модули. Указываем адреса, по какому протоколу работают. В этом случае в закладке PLC_PRG (при работе с языком CFC) я создаю выборочные входы прописываю их (согласно названным до этого в универсальных модулях в конфигурации ПЛК) и получаю данные о том какой контакт у меня в каком положении. Соответственно в это закладе я все вижу.
1а. Теперь мне необходимо создать модбас слейв, в нем в модбас фикс указываю протокол для связи TCP там указан порт 502, его оставляю.
1б. На сервере опс создаю устройство для связи указываю протокол связи TCP, указываю IP ПЛК и порт, в него добавляю устройство путем импорта из готовых, там есть имено мой дискретный модуль. указываю протокол для связи модбас RTU, указываю адрес 11 (это адрес одного из модулей). Запускаю сервер, подключение к ПЛК проходит нормально, дальше опрос доп модуля, и тишина.
36101
36102
___________________

dr.power
18.03.2018, 18:44
Дадно, последний вопрос. как узнать опс серевер вообще опрашивает модуль или нет, что то типа команды пинг. Узнать, я вообще получаю доступ к устройству или нет, если да, то я просто получаю не верные данные и опс их не понимает, или же я просто даже устройство не вижу с ОПС.

Новикова Маргарита
19.03.2018, 10:55
Дадно, последний вопрос. как узнать опс серевер вообще опрашивает модуль или нет, что то типа команды пинг. Узнать, я вообще получаю доступ к устройству или нет, если да, то я просто получаю не верные данные и опс их не понимает, или же я просто даже устройство не вижу с ОПС.

Добрый день!
Чтобы опросить модуль, подключенный к ПЛК, с помощью ОРС-сервера, Вам нужно:
- создать подмодуль модбас мастер в конфигурации ПЛК для опроса модуля;
- создать модуль модбас слейв для передачи данных в орс-сервер;
- в программе передать значение с модуля (переменная из модбас мастер) в переменную модбас слейв.
см. проект во вложении (в конфигурации ПЛК адрес модуля для опроса укажите свой).
- далее в ОРС-сервере создаете узел для опроса ПЛК (указываете ip-адрес, порт, адрес); опрашивать Вы будете именно ПЛК, а не модуль напрямую.
- добавляете переменную для опроса; состояние входов модуля передается в виде битовой маски. Чтобы получить состояние конкретного входа, можно разбить маску на биты в ОРС-сервере. Для этого добавляете несколько переменных с одинаковым адресом регистра, но с разными номерами битов (начиная с нуля: 0 - первый вход...15 - 16й вход)
см. скриншот во вложении.
Чтобы посмотреть, идет ли обмен, в ОРС-сервере посмотрите на вкладки "Сообщения" (здесь приведена информация об ошибках) и "Запросы" (здесь - посылки по протоколу).