Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Проблемы с программой.

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию Проблемы с программой.

    Здравствуйте, не могу понять где ошибка в проекте. В фб OPERATOR в шаге Step7 находится таймер типа TON, его выходная переменная R2, во время первого цикла таймер отрабатывает как надо, начиная со второго таймер не работает , показывает что выходная переменная R2 постоянно активна, хотя на входе IN переменная меняет свое состояние. В общем таймер как бы не сбрасывается. В шаге Step12 такая же проблема с другим таймером. Программу (очень корявую) прилагаю.
    Вложения Вложения
    • Тип файла: pro ЖА2.pro (49.7 Кб, Просмотров: 9)

  2. #2

    По умолчанию

    Хороший пример привели, я так понимаю таймер сбросить надо, но ведь если таймер типа ton и на входе in переменная из 1 в 0 устанавливается то он сам должен отключиться и выход Q установить в 0. И как тогда его сбросить? В следующем шаге я указывал что выходная переменная таймера должна в 0 установиться, но видимо не так это сделал, толку небыло. Понимаю что туплю в элементарных вещах.

  3. #3
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,033

    По умолчанию

    Artemid
    Заметил, что иногда таймеры некорректно работают, если они объявлены локально, в отличии от таймеров, объявленных глобально.

  4. #4
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,033

    По умолчанию

    Валенок
    Я не утверждаю, что я гуру в КДС. Я сам часто работаю с таймерами, и предпочитаю описывать их глобально. Кроме того, я не практикую FBD и разбираться в чужом коде без комментариев удовольствие то еще.
    Попробую еще раз:
    Насколько я понял, ton2 запускается по наличию BQ3, назначенному на вход №26 ПЛК. Т е. по BQ3=false таймер должен остановиться и сбросить выход в 0 в любом случае, но этого не происходит. Если ton2 успел поставить выход в 1, и к нему больше не было обращения (программа больше не вызывает этот ФБ, работает в другом шаге\месте), то таймер "зависает". С глобальными таймерами такого не происходит. И потом, у топикастера локальные переменные в его ФБ имеют те же имена что и глобальные переменные в конфиге ПЛК, в том числе и BQ3. Тут тоже может сидеть засада.
    Хотелось бы услышать где я ошибаюсь.
    Последний раз редактировалось Sulfur; 20.06.2019 в 21:38.

  5. #5
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,248

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    Валенок
    Я не утверждаю, что я гуру в КДС. Я сам часто работаю с таймерами, и предпочитаю описывать их глобально. Кроме того, я не практикую FBD и разбираться в чужом коде без комментариев удовольствие то еще.
    Попробую еще раз:
    Насколько я понял, ton2 запускается по наличию BQ3, назначенному на вход №26 ПЛК. Т е. по BQ3=false таймер должен остановиться и сбросить выход в 0 в любом случае, но этого не происходит. Если ton2 успел поставить выход в 1, и к нему больше не было обращения (программа больше не вызывает этот ФБ, работает в другом шаге\месте), то таймер "зависает". С глобальными таймерами такого не происходит. И потом, у топикастера локальные переменные в его ФБ имеют те же имена что и глобальные переменные в конфиге ПЛК, в том числе и BQ3. Тут тоже может сидеть засада.
    Хотелось бы услышать где я ошибаюсь.
    а кто мешает таймеры запускть в конце блока, а в шагах(коде) только устанавливать входные аргументы тайиера
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  6. #6

    По умолчанию

    Если в Init пропишите
    ton1(IN:=BQ1, PT:=t#1m);
    ну или смысл в том чтобы таймер не сработал за время выполнения init
    то точно обнулите таймер

    но не уверен что это эстетически правильно

  7. #7
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Не понимаю, зачем ВООБЩЕ использовать ФБ таймеров в программах на SFC
    когда есть переменные контроля времени активности шага типа _timeStep10
    Захват-5.png

    Например, используем для условий перехода по времени между шагами
    простое условие
    Захват-4.png

    сложное условие
    Захват-3.png

    Можно использовать время выполнения шага для вычислений
    Считаем рампу
    Захват-1.png

    Как показывает практика, лучше задать атрибут времени шага(максимальное время) вместо заявленного "необходимо явно объявить, например "_timeStep1: TIME;"
    Захват-2.png
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  8. #8
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    В первоначальной логике TC тон (в шаге 7) висел с QB3. Задержка в шаге от момента подъема QB3.
    Тут либо свой таймер, либо "_timeStep1: TIME;" руками сбрасывать. С атрибутом - не катит
    Сбрасывать ничего не надо, т.к.
    В отличии от атрибута минимальное время шага, который явно влияет на выполнение шага по времени, атрибут максимальное время шага не влияет на выполнение шага, этот атрибут может использоваться для анализа ошибки выполнения программы через переменную SFCError
    SFCError: Эта логическая переменная принимает значение ИСТИНА, когда происходит задержка времени в некотором шаге. Если следом возникнет вторая ошибка, она не будет зафиксирована, если флаг SFCError не был предварительно сброшен. Для уточнения причины ошибки необходимо использовать флаги: SFCErrorStep, SFCErrorPOU, SFCQuitError, SFCErrorAnalyzation.
    Пример: Если в SFC POU некоторый шаг активен дольше чем время, заданное в его атрибутах (см. ниже), устанавливается специальный флаг, доступный через переменную "SFCError" (SFCError принимает значение TRUE в этом случае).
    Это какбы сторожевая собака с ручным анализом зависания
    Т.е. прекратить выполнение шага можно и до и после времени заданного атрибутом макс.время выполнения любыми условиями перехода.
    Последний раз редактировалось petera; 21.06.2019 в 15:01.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  9. #9
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,033

    По умолчанию

    capzap
    Вопрос не ко мне. Мы тут обсуждаем творчество другого товарища.

  10. #10
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,248

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    capzap
    Вопрос не ко мне. Мы тут обсуждаем творчество другого товарища.
    ну это же Вы предлагаете сделать таймеры глобальными. К примеру такое ПОУ как ФБ, предназначается чтоб не писать повторяющийся код для однотипных объктов, один ФБ - множество экземпляров, в этом случае как должны работать глобальные ФБ аля TON? Ну редположим каким то образом обошли эту проблему, не запутаетесь в названиях таймеров, если объектов будет с десяток. Можно дальше продолжать, но смысл в том что не нужно советовать не рациональные решения
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Проблемы с программой конфигуратор Овен ТРМ-138
    от Maxim86 в разделе Сервисное ПО
    Ответов: 1
    Последнее сообщение: 14.02.2019, 13:42
  2. Проблемы с программой
    от pavlog2 в разделе Программируемые реле
    Ответов: 14
    Последнее сообщение: 09.06.2016, 14:36
  3. Что не так с программой
    от Вараксин Роман в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 29.10.2015, 14:35
  4. помогите с программой
    от service в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 25.10.2012, 16:39
  5. помогите с программой
    от Valia в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 22.12.2009, 09:12

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •