NOM200 ошибка при циклическом исполнении READ_VAR

Модератор: SaniOK

NOM200 ошибка при циклическом исполнении READ_VAR

Сообщение wolka » 20 мар 2017, 19:24

Т.е. у меня есть 500мсек замозапускающийся циклический таймер, по которому я взвожу стартовые биты вызывающие READ_VAR. Вторым условием вызова является проверка того, что ни одна команда READ_VAR в данный момент не активна. После вызова команды READ_VAR стартовые биты сбрасываюся. Таймаут команды READ_VAR 300мсек.
Пока все вызываемые устройства находятся в сети все работает. Но после того как какое-либо устройство отсутствует (выключено) все остальные запросы READ_VAR возвращаются с ошибкой 16#0001 (timeout).
Стал искать причину и вот что обнаружил.
Пока все устройства включены, ответы на запросы приходят, но счетчик обращений (старший байт 1-го слова) увеличивается с каждым шагом на 2 (иногда на 3), как будто за раз происходит подряд два вызова READ_VAR. Стоит только отключить одно из устройств (все запросы возвращаютс я с ошибкой timeout и счетчик обращений в этом случае увеличивается с каждым шагом на 7 или даже на 12.
Если я увеличиваю период между запросами до 5сек :!: , то отключенное ус-во не влияет на опрос других устройств - ответы от них приходят нормально и счетчик запросов увеличивается на 1 шаг.

Пример кода. Неисправное ус-во 3-е

(* STEP-1 READ *)
IF (mb_strt1 AND NOT mb_active) )
THEN
READ_VAR (ADR := ADDMX('0.0.3{192.168.11.3}\\0.1.1.20'), OBJ := '%MW', NUM := 128, NB := 12, GEST := mb_para1, RECP => mb_data1);
reset (mb_strt1);
END_IF;
(* STEP-2 READ *)
IF(mb_strt2 AND NOT mb_active)
THEN
READ_VAR (ADR := ADDMX('0.0.3{192.168.11.3}\\0.1.1.2'), OBJ := '%MW', NUM := 5051, NB := 12, GEST := mb_para2, RECP => mb_data2);
RESET (mb_strt2);
END_IF;
(* STEP-3 READ *)
IF (mb_strt3 AND NOT mb_active)
THEN
READ_VAR (ADR := ADDMX('0.0.3{192.168.11.3}\\0.1.1.3'), OBJ := '%IW', NUM := 1000, NB := 4, GEST := mb_para3, RECP => mb_data3);
RESET (mb_strt3);
END_IF;

P.S. бит mb_active не активен если ни активна ни одна READ_VAR команда. Это я условие я проверяю отдельно.
P.P.S. Вот еще какой трагическое наблюдение: после этого сбоя даже при остановке всех READ_VAR команд, и даже остановке контроллера комм.модуль NOM200 все равно обращается к внешнему устройству (это видно по LED индикатору канала). Эти обращения не останавливаются ни cancel битом, ни перезапуском контроллера, а только перезаливкой проекта. :x
wolka
 
Сообщений: 46
Зарегистрирован: 01 дек 2016, 20:37
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Re: NOM200 ошибка при циклическом исполнении READ_VAR

Сообщение PLC support » 21 мар 2017, 12:29

Добрый день Wolka,

все запросы от READ_VAR блоков "ставятся в очередь" и обрабатываются последовательно. Как только одного устройства нет, то обработка очереди останавливается, пока не наступит timeout. Попробуй уменьшить timeout.
Так же не совсем понятно использование одинакового сигнала mb_active у всех 3х блоков.
При старте READ_VAR так же необходимо проверять значения битов mb_para1[0].0, mb_para2[0].0, mb_para2[0].0 - при запуске READ_VAR они должны быть 0.
PLC support
 
Сообщений: 86
Зарегистрирован: 29 авг 2013, 16:22
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 1

Re: NOM200 ошибка при циклическом исполнении READ_VAR

Сообщение wolka » 21 мар 2017, 17:58

PLC support писал(а):Так же не совсем понятно использование одинакового сигнала mb_active у всех 3х блоков.
При старте READ_VAR так же необходимо проверять значения битов mb_para1[0].0, mb_para2[0].0, mb_para2[0].0 - при запуске READ_VAR они должны быть 0.
сигнал mb_active это результат проверки активности всех mb_parax[0].0. Если все они 0, то и mb_active =0
Я нашел свою ошибку. У меня timeout команды READ_VAR был меньше чем timeout модуля NOM200 - 0,5сек и 3*1сек соответственно. Как только это исправил, все пошло как по-маслу.
wolka
 
Сообщений: 46
Зарегистрирован: 01 дек 2016, 20:37
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0


Вернуться в Высокоуровневые системы автоматизации - M340, M580, Premium, Quantum и Unity

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1