PDA

Просмотр полной версии : После выключения питания ПЛК не работает CodeSys OPC



Izergill
22.08.2018, 11:24
Добрый день!
Столкнулся с проблемой не могу решить.
Используем в своих проектах ПЛК Овен 110[M02]. Для обмена данными со скада системой используем CodeSys OPC. Настраиваем символьную конфигурацию, настраиваем сам OPC сервер через OPC Configurator. Процедура стандартная и все работало.
Недавно изменили концепцию проекта (начали широко использовать структуры и указатели) и теперь каждый раз после выключения ПЛК происходит следующее: OPC сервер запускается, может выдавать список переменных, но обмен с ПЛК не происходит и при изменении переменных в скаде, переменные в ПЛК не меняются. Проблема решается только полной очисткой, перекомпиляцией и полной загрузкой проекта в ПЛК. Соответственно, требуется программист и сбрасываются все переменные (в том числе энергонезависимые), а значит требуется полная настройка оборудования.
Кто-то сталкивался с подобной проблемой? Как можно ее решить?

Newcomer
22.08.2018, 12:32
Скорее всего проблема связана с некорректным использованием указателей в проекте ПЛК.

Izergill
22.08.2018, 12:59
Какая связь между указателями в проекте и работой OPC?
Логика в проекте отрабатывает без каких-либо нареканий. При загрузке проекта OPC тоже работает корректно. Проблемы начинаются после отключения питания.

Izergill
23.08.2018, 10:49
Продолжаю искать причину:
- файл символьной конфигурации в директории проекта *.sym создается и наполнен соотв. переменными
- файл *.sdb в директории Gateway Files создается и наполнен
- по прежнему при полной загрузке в ПЛК он работает
- после отключения и включения питания ПЛК запускается, подключаюсь к нему кодесисом, он выдает сообщение PLC Started, и показывает статус ЗАПУЩЕНО. Однако, программа не выполняется и соответственно переменный OPC сервера пустые...

ultraviolet
13.10.2018, 12:23
У меня такая же проблема. После отключения-включения питания ПЛК CodesysOPC не может соединится с ним через Ethernet.

Логи CodesysOPS:

(13.10.2018, 16:18:44.695) 49. Reconnect to <PLC1>
(13.10.2018, 16:18:44.695) [PLC1]: ::ConnectGateway(): m_ulGatewayChannels=1
(13.10.2018, 16:18:45.725) **** ERROR: Login failed. No reply from PLC <PLC1>
(13.10.2018, 16:18:45.725) **** ERROR: Open communication to <PLC1> failed
(13.10.2018, 16:18:47.675) [PLC1]: ::DisconnectGateway(m_ulGateway=0):

CodesysOPC устанавливает соединение только после того как вручную захожу в проект Codesys и подключаюсь к контроллеру:

(13.10.2018, 16:21:38.054) Motorola=0, NoLogin=0
(13.10.2018, 16:21:38.070) <PLC1> ProjectID matched, Project <test8>: PLC=124083, SYM=124083
(13.10.2018, 16:21:38.070) Reorganize finished, with changed item pool
(13.10.2018, 16:21:38.070) <PLC1> 27 symbols loaded
(13.10.2018, 16:21:38.163) <PLC1> 1 active items

У кого-нибудь получилось решить проблему?

SBER
14.10.2018, 19:02
При подключении кодесисом после перезапуска плк он сразу подключается или говорит, что программа изменена?

ultraviolet
15.10.2018, 06:27
Сразу подключается. Пишет: "PLC Started".

Andrew_Stranger
16.10.2018, 08:45
Тоже были заморочки подобные, перешел на 3 версию OPC. Стабильнее стало работать.

ultraviolet
17.10.2018, 04:34
Можно программировать контроллер и конфигурировать символьный файл во 2 версии Codesys и использовать OPC 3 версии?

Andrew_Stranger
17.10.2018, 10:20
Да можно, только все пременные в скаду надо заново заносить. В 3 версии еще удобнее тем что структуры выделяются в отдельные группы тэгов.

ultraviolet
17.10.2018, 15:00
А OPC 3 версии ведь платный? Нужно лицензию приобретать, чтобы использовать на объекте?

Andrew_Stranger
17.10.2018, 15:55
Нет все по аналогии с codesys v2, идет с дистрибутивом codesys v3.

ultraviolet
25.10.2018, 08:13
Спасибо за совет. С использованием OPC v3 после включения питания передача данных возобновляется.

Только возобновление передачи занимает около минуты. Это при обмене через Gateway.
Через Modbus TCP так же, передача возобновляется около минуты.
Зато через Modbus по RS-485 передача возобновляется практически сразу после подачи питания. Это очень хорошо, но приходится вручную прописывать все переменные, поэтому пробую другие варианты.

Это нормально, что возобновление передачи по Ethernet занимает столько времени или нужно произвести какие-то дополнительные настройки?