Archived

Этот пост заблокирован, редактирование отключено

Программное обеспечениеВопросы по zetFBDСпустя некоторое время перестаёт работать программа

Вопросы по системе программирования контроллеров Z400 и Z401
Исходное сообщение:
novtoxa, 30.10.2015, 09:23
novtoxa
Спустя некоторое время перестаёт работать программа
Написал программу для управления сан-пропускником. Отладил на оборудовании,- всё работает. Перенёс на ноут, приехал на объект и залил в местные контроллеры. При заливке программа попросила обновить ядро контроллеров. Обновление ядра прошло без проблем, как и заливка программы, но через несколько циклов программа перестала работать и все дискретные выходы перешли в положение OFF. Запустил отладку в устройстве и не поверил своим глазам! В отладке программа продолжает стабильно работать а в реале - выходы молчат (все OFF). Добавил тригер на один из выходов, который зажигает лампочку на 220В, в схеме включения которой нет ничего, кроме дискретного выхода, и взвёл этот тригер по старту программы, а вход reset обозначил константой "0". При старте программы лампочка благополучно загорелась, но через несколько циклов благополучно погасла. КАК ТАКОЕ МОЖЕТ БЫТЬ?
Ответы:
mike, 30.10.2015, 10:19
mike
Спустя некоторое время перестаёт работать программа
Добрый день!
Вы дали слишком мало информации.
Спешу вас разочаровать, Деда мороза не бывает, впрочем как и чудес.
надо прочитать http://zentec.ru/dev/docs/d150714/d120213/
особенно обратить внимание на п.6
надо приложить проект
novtoxa, 30.10.2015, 11:07
novtoxa
Спустя некоторое время перестаёт работать программа
Проект приложу позже (сейчас нет возможности), но хочу обратить Ваше внимание на то, что в более ранней прошивке ядра всё работало без сбоев, проблемы начались после перепрошивки ядра контроллера до более новой версии. Может стоит посмотреть последние изменения в прошивке ядра?
Некоторые тезисы из п.6 стали новостью для меня. Жаль, что эта литература не была доступна изначально!
mike, 30.10.2015, 11:40
mike
Спустя некоторое время перестаёт работать программа
Уже как полтора года висит это описание.
В ядро добавились некоторые функции и оно стало больше потреблять ресурсов. Я на всех проектах ставлю базовый таймер 500мс. Этого более чем достаточно. И вовсе не означает, что программа исполняется пол секунды))

http://zentec.ru/dev/soft-2/zetFBD/
это тоже надо прочитать

Aserge, 02.11.2015, 22:21
Aserge
Спустя некоторое время перестаёт работать программа
Присоединяюсь. Аналогично. Не больше 20 циклов и зависает. Таймер установил 800mc. Проект прилагаю.:))
mike, 03.11.2015, 08:09
mike
Спустя некоторое время перестаёт работать программа
[quote author=Aserge link=topic=52.msg430#msg430 date=1446492087]
Присоединяюсь. Аналогично. Не больше 20 циклов и зависает. Таймер установил 800mc. Проект прилагаю.:))
[/quote]

И как же выражается зависание вашего проекта?
Как часто вы замыкаете дискретный вход?
Aserge, 03.11.2015, 19:31
Aserge
Спустя некоторое время перестаёт работать программа
[quote author=mike link=topic=52.msg432#msg432 date=1446527361]
[quote author=Aserge link=topic=52.msg430#msg430 date=1446492087]
Присоединяюсь. Аналогично. Не больше 20 циклов и зависает. Таймер установил 800mc. Проект прилагаю.:))
[/quote]

И как же выражается зависание вашего "проекта"?
Как часто вы замыкаете дискретный вход?
[/quote]

Дискретный вход замыкается 14-15 раз. С увеличением количества логических элементов количество замыканий снижается до 5-7.
Кавычки считаю неуместными - сыну 11 лет. И для него это ПРОЕКТ. И почему-то не работает. Ошибок ведь нет? И на симуляторе нормально работает.
serge197a, 03.11.2015, 23:58
serge197a
Спустя некоторое время перестаёт работать программа
нот -лишний элемент, инвертируйте вход выходного элемента ОUТ1
IF и Запись в ипром не имеют смысла.
mike, 04.11.2015, 11:10
mike
Спустя некоторое время перестаёт работать программа
[quote author=Aserge link=topic=52.msg438#msg438 date=1446568291]
[quote author=mike link=topic=52.msg432#msg432 date=1446527361]
[quote author=Aserge link=topic=52.msg430#msg430 date=1446492087]
Присоединяюсь. Аналогично. Не больше 20 циклов и зависает. Таймер установил 800mc. Проект прилагаю.:))
[/quote]

И как же выражается зависание вашего "проекта"?
Как часто вы замыкаете дискретный вход?
[/quote]

Дискретный вход замыкается 14-15 раз. С увеличением количества логических элементов количество замыканий снижается до 5-7.
Кавычки считаю неуместными - сыну 11 лет. И для него это ПРОЕКТ. И почему-то не работает. Ошибок ведь нет? И на симуляторе нормально работает.
[/quote]
14-15 раз за какое время?
Кавычки были, т.к. ранее не было озвучено, что новичку всего 11 лет.
Сейчас же их уберем, а юному испытателю пламенный привет!
Сто касается вопроса по частоте замыкания входа.
В ПЛК реализована защита от частого срабатывания реле и частой записи в ПЗУ.
подавать импульс на реле можно не чаще раз в 800мс. В противном случае контроллер остановит выполнение программы.
Aserge, 04.11.2015, 12:49
Aserge
Спустя некоторое время перестаёт работать программа
Изначально был обычный d-триггер со срабатыванием по переднему фронту. Запись в EEPROM -по изменению состояния инверсного выхода триггера. Один цифровой вход, два выхода. На входе кнопка, на выходе светодиоды. Частота срабатывания не более 0,5 сек. Зависание от продолжительности и частоты нажатий не зависит. Контроллер "уходил в себя" после 5-7 нажатий кнопки. Выходы устанавливал в 0, на вход не реагировал. Но на программирование откликался без перезагрузки.  Последнее значение базового таймера 1сек.
Пробовал вариант без записи в EEPROM - результат тот же.

Отбросил входы. Набросал генератор с частотой 1 сек. Клацнул релюшкой 19 раз и ушел в себя.
Добавил выход. -7 циклов.
Добавил ещё один выход - 4 цикла.
От частоты и базового таймера зависимости нет.
Выходы использовал 1,2,3.
Почему от количества выходов, а не от частоты срабатываний зависит? На защиту не похоже.
mike, 04.11.2015, 13:36
mike
Спустя некоторое время перестаёт работать программа
Войдите в отладочный режим на живой машине.
Поставьте на поляну переменную Error. Назначьте ей отладочную точку.
Запустите отладку и смотрите, что будет на выходе этой переменной.

Вероятнее всего, вы слишком часто даете команду на изменение состояния релейных выходов.

http://zentec.ru/dev/docs/d150714/d080813/