Автор |
Сообщение |
Сообщение создано: 09. 11. 2012 [14:20]
|
punk
Василий Петров
Создатель темы
Зарегистрирован(а) с: 09.05.2011
Сообщения: 57
|
Есть контроллер (S7-315), подключенный по ethernet(CP-343-1). Очень давно у меня была проблема - иногда контроллер начинал мигать всеми светодиодами и на ключ не реагировал. Начиналось это при закрытии скады. Свое сообщение на эту тему не нашел, но на тот момент решили, что это что-то странное т.к. почти не воспроизводилось. Недавно удалось воспроизвести подобное зависание. Несколько удивили вызовы daveNewInterface() & daveConectPLC при отключении, думаю, что проблема в этом.
1|/WorkStation/sub_DAQ/mod_Siemens/cntr_CIP34/ | Останов контроллера!
0|/WorkStation/sub_DAQ/mod_Siemens/cntr_CIP34/ | Ошибка чтения блока '10': Timeout when waiting for PLC response
daveNewInterface(fd.rfd:26 fd.wfd:26 name:IFCIP34 local MPI:0 protocol:122 PB speed:2)
daveSetTimeOut(di:0xb31ef130, time:1500000)
IFCIP34 daveConnectPLC() step 1. got packet: :
Лог с включенной отладкой libnodave прилагаю.
Вложенный файл
daveLOGG (Тип файла: application/octet-stream, Размер: 30.92 килобайт) — 1369 загрузок
|
Сообщение создано: 09. 11. 2012 [15:04]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"punk" wrote:
Есть контроллер (S7-315), подключенный по ethernet(CP-343-1). Очень давно у меня была проблема - иногда контроллер начинал мигать всеми светодиодами и на ключ не реагировал. Начиналось это при закрытии скады. Свое сообщение на эту тему не нашел, но на тот момент решили, что это что-то странное т.к. почти не воспроизводилось. Недавно удалось воспроизвести подобное зависание. Несколько удивили вызовы daveNewInterface() & daveConectPLC при отключении, думаю, что проблема в этом.
1|/WorkStation/sub_DAQ/mod_Siemens/cntr_CIP34/ | Останов контроллера!
0|/WorkStation/sub_DAQ/mod_Siemens/cntr_CIP34/ | Ошибка чтения блока '10': Timeout when waiting for PLC response
У меня тоже такой контроллер есть и работая с ним я подобных проблем никогда не видел!
Версия OpenSCADA какая?
Похоже на то, что задача контроллера реально не останавливается, а ресурсы освобождаются. В текущей версии причин для подобного я не вижу.
Конфигурация в целом жуткая! Может Вы бы разобрались с ней для начала?
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 22. 03. 2013 [11:09]
|
punk
Василий Петров
Создатель темы
Зарегистрирован(а) с: 09.05.2011
Сообщения: 57
|
Немного поразбирался с этой проблемой и сделал тестовую конфигурацию, в которой ошибка (максимум) с нескольких попыток проявляется. Суть проблемы в том, что она возникает при (относительно) большом объеме читаемых данных. В моем примере используется 7 строк суммарным размером 540 байт. При сильно меньшем количестве -- поведение абсолютно нормальное.
Версия OpenSCADA - от сегодня, соединение с CPU по Ethernet (ISO_TCP).
Модулеи Siemens: CPU -- 6ES7-315-2AF01-0AB0, EthernetCP -- 6GK7-343-1E20-0XE0
Прилагаю конфигурацию и лог работы (запуск, через пару секунд -- выход).
Вложенный файл
oscSiemBug.tgz (Тип файла: application/x-compressed-tar, Размер: 944.03 килобайт) — 1404 загрузок
logSiemensBug (Тип файла: application/octet-stream, Размер: 7.26 килобайт) — 1354 загрузок
|
Сообщение создано: 22. 03. 2013 [12:37]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"punk" wrote:
Прилагаю конфигурацию и лог работы (запуск, через пару секунд -- выход).
Я вижу только сообщение:
0|/WorkStation/sub_DAQ/mod_Siemens/cntr_testPLC/ | Ошибка чтения блока '10': Timeout when waiting for PLC response
0|/WorkStation/sub_DAQ/mod_Siemens/cntr_testPLC/ | Ошибка чтения блока '10': Timeout when waiting for PLC response
Только само по себе это не проблема и с первичной проблемой врядли связано:
иногда контроллер начинал мигать всеми светодиодами и на ключ не реагировал
Если объяснять эти сообщения то они происходят в момент остановки, возможно по причине того, что в процессе останова потоку опроса шлются сигналы SIGUSR1 и SIGALRM. Причём SIGALRM предназначен как раз прервать различные функции ожидания. Возможно SIGALRM попадает на ожидание ответа от контроллера, а алгоритм LibNoDave интерпретирует это как достижение таймаута.
Оно то конечно можно сказать не слать SIGALRM, но тогда задачи с большими таймаутами будут останавливаться долго, особенно если на момент останова нет связи.
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 22. 03. 2013 [16:49]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"roman" wrote:
Я вижу только сообщение:
0|/WorkStation/sub_DAQ/mod_Siemens/cntr_testPLC/ | Ошибка чтения блока '10': Timeout when waiting for PLC response
0|/WorkStation/sub_DAQ/mod_Siemens/cntr_testPLC/ | Ошибка чтения блока '10': Timeout when waiting for PLC response
Добавил в циклы обхода блоков проверку на endrun и теперь это сообщение появится не более одного раза.
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 24. 03. 2013 [10:52]
|
punk
Василий Петров
Создатель темы
Зарегистрирован(а) с: 09.05.2011
Сообщения: 57
|
"roman" wrote:
"roman" wrote:
Я вижу только сообщение:
0|/WorkStation/sub_DAQ/mod_Siemens/cntr_testPLC/ | Ошибка чтения блока '10': Timeout when waiting for PLC response
0|/WorkStation/sub_DAQ/mod_Siemens/cntr_testPLC/ | Ошибка чтения блока '10': Timeout when waiting for PLC response
Добавил в циклы обхода блоков проверку на endrun и теперь это сообщение появится не более одного раза.
Проверил, на тестовом примере контроллер зависать перестал. На неделе проверю на оборудовании, где систематически зависает при отключении.
Спасибо.
|