Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 25

Тема: ПЛК выдает задержку в 3 раза длиннее установочной

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

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

    По умолчанию ПЛК выдает задержку в 3 раза длиннее установочной

    Здравствуйте. Подскажите, пожалуйста как настроить правильный таймер времени на ПЛК.

    Блок
    myTON(IN:=knop_13,PT:=t#5s);
    на ПЛК выдает задержку примерно 15 сек.
    myTON(IN:=knop_13,PT:=t#1s);
    на ПЛК выдает задержку около 3 сек.
    ... и т.д. Если задавать в ms, то те же проблемы: 5000 ms в реальной работе дают задержку 15 сек.

    Спасибо.

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

    По умолчанию

    Программа в плк состоит из одной этой строчки или все же имеется какой то обвес
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  3. #3

    По умолчанию

    В данном случае практически из одной. Сейчас тестовый режим подключения нового оборудования.

    if knop_26 then
    myTON(IN:=knop_26,PT:=t#5s);
    if myTON.Q then
    d_N3:= true;
    end_if
    end_if

  4. #4

    По умолчанию

    Цитата Сообщение от klad_Fe2O3 Посмотреть сообщение
    В данном случае практически из одной. Сейчас тестовый режим подключения нового оборудования.

    if knop_26 then
    myTON(IN:=knop_26,PT:=t#5s);
    if myTON.Q then
    d_N3:= true;
    end_if
    end_if
    При включении кнопки knop_26 из исходного состояния (предположим, что только что залили программу и запустили контроллер), включается таймер myTON. При выключении knop_26 таймер продолжит отсчитывать время до 5 секунд, сработает его выход, но d_N3 не включится, т.к. первый if knop_26 не срабатывает. При следующем включении knop_26 и досчитанном таймере включается d_N3. Таймер по knop_26 не будет ни сбрасываться, ни включаться по новой, т.к. для сброса таймера требуется задний фронт knop_26, а его myTON не видит из-за if knop_26 then.

  5. #5

    По умолчанию

    Цитата Сообщение от Nomad Посмотреть сообщение
    При включении кнопки knop_26 из исходного состояния (предположим, что только что залили программу и запустили контроллер), включается таймер myTON. При выключении knop_26 таймер продолжит отсчитывать время до 5 секунд, сработает его выход, но d_N3 не включится, т.к. первый if knop_26 не срабатывает. При следующем включении knop_26 и досчитанном таймере включается d_N3. Таймер по knop_26 не будет ни сбрасываться, ни включаться по новой, т.к. для сброса таймера требуется задний фронт knop_26, а его myTON не видит из-за if knop_26 then.
    Вы описали процесс, если knop_26 была бы клавишей. Но задержка в три раза по времени была именно на переключателе. После одинарного включения ничего больше не нажималось и ожидалась реакция реле. Реле срабатывало только через 15 сек, а не через 5, как установлено в TON.

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

    По умолчанию

    Цитата Сообщение от klad_Fe2O3 Посмотреть сообщение
    Реле срабатывало только через 15 сек, а не через 5, как установлено в TON.
    О каком реле идёт речь, случайно среда разработки не овенлоджик и проверяете не в эмуляции ли?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  7. #7

    По умолчанию

    Цитата Сообщение от Nomad Посмотреть сообщение
    При включении кнопки knop_26 из исходного состояния (предположим, что только что залили программу и запустили контроллер), включается таймер myTON. При выключении knop_26 таймер продолжит отсчитывать время до 5 секунд, сработает его выход, но d_N3 не включится, т.к. первый if knop_26 не срабатывает. При следующем включении knop_26 и досчитанном таймере включается d_N3. Таймер по knop_26 не будет ни сбрасываться, ни включаться по новой, т.к. для сброса таймера требуется задний фронт knop_26, а его myTON не видит из-за if knop_26 then.
    Проверил, таймер считает, ну как считает, у него есть время запуска и текущее... Он находится в ступоре и выход при выключенном входе у него не включается, так как он не обрабатывается в данном коде ТС.
    Однако при повторном поступлении входа время запуска, текущее и время работы таймера говорят ему, что "о брат, пора включить твой выход... ты почему спишь".

  8. #8

    По умолчанию

    Цитата Сообщение от klad_Fe2O3 Посмотреть сообщение
    В данном случае практически из одной. Сейчас тестовый режим подключения нового оборудования.

    if knop_26 then
    myTON(IN:=knop_26,PT:=t#5s);
    if myTON.Q then
    d_N3:= true;
    end_if
    end_if
    Вернемся к началу...
    myTON(IN:=knop_26,PT:=t#5s); надо вообще наружу вынести, зачем это внутри условия, непонятно, т.к. IN:=knop_26 это тоже само по себе условие. Тем более время таймера если больше не меняется, то зачем его в условие пихать.

    Помню я в case такое запихал, но у меня таймеры переназначались по времени работы, и тоже начался какой то мрак...

    Код:
    myTON(IN:=knop_26,PT:=t#5s);
    d_N3:= knop_26 and myTON.Q;
    Посмотрел, как ведет себя ваш код в эмуляторе... Это тот еще мрак.
    1. Нажимаем кнопку knop_26 и отпускаем... В момент нажатия таймер начинает отсчет, в момент отпускания таймер остается взведен, что логично, но отсчет в переменных уже не ведется (хотя таймер считает), так как находимся вне условия IF.
    2. Проходит хоть час, хоть два... Ничего не произойдет, пока снова не нажмем knop_26 и тогда попадем в 2 условия и загорится выход...
    3. Все, таймер больше не сбросить, так как вне условия IF код myTON(IN:=knop_26,PT:=t#5s) не выполняется ни при каких условиях...

    Вы сами намудрили с кодом и поэтому так и вышло... Это похоже не 3 секунды (или 15), а вы просто задолбались ждать исполнения багованого кода, повторно нажали кнопку и о чудо, выхода включились...

    Вот с виртуальной визуализацией тоже все норм...
    121212121.png
    Последний раз редактировалось МихаилГл; 13.12.2023 в 05:59.

  9. #9

    По умолчанию

    Желательно не вставлять таймер внутрь условий

  10. #10

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    Желательно не вставлять таймер внутрь условий
    Согласен с вами.

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

Похожие темы

  1. Ответов: 20
    Последнее сообщение: 13.07.2023, 21:58
  2. расчет считает два раза...
    от kjum4n в разделе Master SCADA 3
    Ответов: 8
    Последнее сообщение: 25.03.2022, 16:52
  3. Как сделать задержку на действие
    от Fipol в разделе Среда программирования OWEN Logic
    Ответов: 3
    Последнее сообщение: 14.11.2020, 07:50
  4. ПР110 - 3 раза мигнуть выходами после подачи питания
    от Inductor в разделе Программируемые реле
    Ответов: 8
    Последнее сообщение: 24.03.2015, 09:10
  5. Как сделать временную задержку на ST?
    от Starikov Alexander в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 09.02.2010, 13:22

Ваши права

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