Столкнулся с различным поведением счетчиков при работе в симуляторе и в контроллере.
Делаю простую проверочную программку - как в приложенной картинке.
Ожидается, что счетчики С1 и С2 будут приращиваться дважды по переднему фронту М5 при С4 равном 2 и 4.
С5 и С3 - контрольные счетчики, для отслеживания отработки веток.
В эмуляторе так и работает.
В контроллере в верхнюю ветку входит при с4 =2 и 4 - срабатывает счетчик С5, но двойного приращения не происходит. (С3 тоже срабатывает). вторая картинка
Как это объяснить? Какие правила нарушаю и как правильно сделать, чтобы в контроллере работало.
GX developer 8.98 и контроллер FX3G.
... а нет ошибок, при проверке программы типа "double coil error" ?
Используйте вместо (C1) -> [inc C1], должно отработать корректно.
по (С1) не знаю почему так, может в мануале есть ...
могу предположить что обрабатывается как и выход, после выполнения программы, раз одинаково выглядит синтаксис
Инструкцией INC текущее значение счетчика изменить можно, но выходной контакт не включится, если при этом достигнуто значение уставки, а включится только при следующем счетном событии.
Счетным событием является изменение входного условия счетчика с ложного на истинное.
В приведенном фрагменте, при втором проходе счетчика изменения M5 нет, поэтому он не считает.
Чтобы посчитал во второй раз, он должен быть прежде прочитан с ложным условием.
Вставьте это перед вторым счетом.
А вообще, повторение счетчика в тексте программы считается плохим стилем.
По поводу расхождения с симулятором ничего не скажу.
Возможно, баг симулятора.
Повторное использование выходов в простой программе запрещено с любыми обозначениями типа (Y,M,C,S,P). Много раз проверено.
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)