IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Простая программа работает в эмуляторе но не работает на ПЛК, Странное поведение счетчиков.
Oak
сообщение 17.01.2019 - 11:50
Сообщение #1


Читатель
*

Группа: Пользователи
Сообщений: 4
Регистрация: 17.01.2019
Пользователь №: 11110



Столкнулся с различным поведением счетчиков при работе в симуляторе и в контроллере.
Делаю простую проверочную программку - как в приложенной картинке.
Ожидается, что счетчики С1 и С2 будут приращиваться дважды по переднему фронту М5 при С4 равном 2 и 4.

С5 и С3 - контрольные счетчики, для отслеживания отработки веток.

В эмуляторе так и работает.

В контроллере в верхнюю ветку входит при с4 =2 и 4 - срабатывает счетчик С5, но двойного приращения не происходит. (С3 тоже срабатывает). вторая картинка

Как это объяснить? Какие правила нарушаю и как правильно сделать, чтобы в контроллере работало.

GX developer 8.98 и контроллер FX3G.

Сообщение отредактировал Oak - 17.01.2019 - 11:52
Прикрепленные файлы
Прикрепленный файл  ________.jpg ( 41.9 килобайт ) Кол-во скачиваний: 20
Прикрепленный файл  __________.jpg ( 39.49 килобайт ) Кол-во скачиваний: 12
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
m_by
сообщение 18.01.2019 - 09:30
Сообщение #2


Гигант мысли
****

Группа: Пользователи
Сообщений: 252
Регистрация: 15.11.2007
Пользователь №: 6407



... а нет ошибок, при проверке программы типа "double coil error" ?
Используйте вместо (C1) -> [inc C1], должно отработать корректно.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Oak
сообщение 18.01.2019 - 18:42
Сообщение #3


Читатель
*

Группа: Пользователи
Сообщений: 4
Регистрация: 17.01.2019
Пользователь №: 11110



Цитата(m_by @ 18.01.2019 - 08:30) *
... а нет ошибок, при проверке программы типа "double coil error" ?
Используйте вместо (C1) -> [inc C1], должно отработать корректно.

Спасибо заработало.

Почитал про эту ошибку - с выходами понятно почему нельзя и будет работать последний - считывание выхода происходит после выполнения программы.
А почему счетчик нельзя дважды прирастить койлами, а инком можно?
в чем отличие операции и какое физическое объяснение.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
m_by
сообщение 18.01.2019 - 23:26
Сообщение #4


Гигант мысли
****

Группа: Пользователи
Сообщений: 252
Регистрация: 15.11.2007
Пользователь №: 6407



по (С1) не знаю почему так, может в мануале есть ...
могу предположить что обрабатывается как и выход, после выполнения программы, раз одинаково выглядит синтаксис
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Sergei Troizky
сообщение 24.01.2019 - 04:30
Сообщение #5


Гигант мысли
****

Группа: Пользователи
Сообщений: 377
Регистрация: 30.12.2004
Пользователь №: 108



Инструкцией INC текущее значение счетчика изменить можно, но выходной контакт не включится, если при этом достигнуто значение уставки, а включится только при следующем счетном событии.

Счетным событием является изменение входного условия счетчика с ложного на истинное.
В приведенном фрагменте, при втором проходе счетчика изменения M5 нет, поэтому он не считает.
Чтобы посчитал во второй раз, он должен быть прежде прочитан с ложным условием.
Вставьте это перед вторым счетом.

А вообще, повторение счетчика в тексте программы считается плохим стилем.

По поводу расхождения с симулятором ничего не скажу.
Возможно, баг симулятора.


--------------------
Делать надо сразу хорошо. Плохо само получится.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
paul-th
сообщение 6.02.2019 - 16:57
Сообщение #6


Писатель
**

Группа: Пользователи
Сообщений: 55
Регистрация: 15.11.2008
Пользователь №: 8998



Повторное использование выходов в простой программе запрещено с любыми обозначениями типа (Y,M,C,S,P). Много раз проверено.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Sergei Troizky
сообщение 6.02.2019 - 17:35
Сообщение #7


Гигант мысли
****

Группа: Пользователи
Сообщений: 377
Регистрация: 30.12.2004
Пользователь №: 108



Цитата(paul-th @ 6.02.2019 - 16:57) *
Повторное использование выходов в простой программе запрещено с любыми обозначениями типа (Y,M,C,S,P). Много раз проверено.

Слишком безапеляционно. И что такое "простая" программа?
На самом деле, не запрещено, а лишь не рекомендуется.
Иногда, это весьма эффективная техника, но, требующая хорошего понимания работы программы и хорошего комментирования.


--------------------
Делать надо сразу хорошо. Плохо само получится.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 28.03.2024 - 18:12