Показано с 1 по 10 из 10

Тема: Таймер TON в режиме эмуляции

  1. #1

    По умолчанию Таймер TON в режиме эмуляции

    Добрый день!
    Необходим генератор импульсов каждую секунду. Использовал таймер TON для реализации. На текущий момент на руках контроллера нет (ПЛК110-60).
    При одновременном запуске таймера в режиме эмуляции и таймера на ПК (пробовал и с таймером на телефоне) через время (примерно 30 секунд) таймер TON успевает накопить погрешность (отстает).
    Подскажите, пожалуйста, это связано с режимом эмуляции или я что-то не так делаю?
    Изображения Изображения
    • Тип файла: png TON.PNG (3.5 Кб, Просмотров: 11)

  2. #2

    По умолчанию

    Цитата Сообщение от IIkIIkIIk Посмотреть сообщение
    Добрый день!
    Необходим генератор импульсов каждую секунду. Использовал таймер TON для реализации. На текущий момент на руках контроллера нет (ПЛК110-60).
    При одновременном запуске таймера в режиме эмуляции и таймера на ПК (пробовал и с таймером на телефоне) через время (примерно 30 секунд) таймер TON успевает накопить погрешность (отстает).
    Подскажите, пожалуйста, это связано с режимом эмуляции или я что-то не так делаю?
    В эмуляции время цикла ПЛК около 64 мс, что значительно отличается от цикла живого ПЛК (1-5-10 мс), так что в эмуляции время отличается.
    Кстати TON не лучший вариант, если нужно точное время, используйте расчёт времени через функцию Time();
    а ещё лучше брать время из самого ПЛК через биб-ку, там есть возможность корректировки времени.
    Последний раз редактировалось kondor3000; 27.02.2024 в 11:02.

  3. #3

    По умолчанию

    Спасибо большое!

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

    По умолчанию

    Самый простой вариант - это BLINK из библиотеки util.lib

    Код:
    BLINK1(ENABLE:=en , TIMELOW:=t#1s , TIMEHIGH:=t#1s );
    Q := BLINK1.OUT XOR flag;
    flag := BLINK1.OUT;

  5. #5

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    Самый простой вариант - это BLINK из библиотеки util.lib

    Код:
    BLINK1(ENABLE:=en , TIMELOW:=t#1s , TIMEHIGH:=t#1s );
    Q := BLINK1.OUT XOR flag;
    flag := BLINK1.OUT;
    Думаете, лучше выбрать BLINK? Он точнее?

  6. #6

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    В эмуляции время цикла ПЛК около 64 мс, что значительно отличается от цикла живого ПЛК (1-5-10 мс), так что в эмуляции время отличается.
    Кстати TON не лучший вариант, если нужно точное время, используйте расчёт времени через функцию Time();
    а ещё лучше брать время из самого ПЛК через биб-ку, там есть возможность корректировки времени.
    Задача у этого TONa следующая. Есть аналоговый расходомер. Нужно каждую секунду прибавлять накопленный объем. Подойдет ли тут TON?

  7. #7

    По умолчанию

    Цитата Сообщение от IIkIIkIIk Посмотреть сообщение
    Задача у этого TONa следующая. Есть аналоговый расходомер. Нужно каждую секунду прибавлять накопленный объем. Подойдет ли тут TON?
    При использовании TON Вы потратите целый цикл на его сброс, а BLINK будет просто переключаться. При этом, если он переключится не вовремя, то на каждом следующем цикле будет стараться синхронизироваться с внутренним таймером. Остается ловить либо фронт, либо спад (при th=0.5s и tl=0.5s) - будет точнее!!

  8. #8

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    создайте отдельную задачу, с требуемым временем и накапливайте объем, будет точнее чем программные тики
    В конфигурации задач создал циклическую задачу с именем NewTask c периодом 1 сек. Подскажите, пожалуйста, как использовать эту задачу в коде? Бегло пробежал по руководству - не нашел.

  9. #9

    По умолчанию

    Цитата Сообщение от EFrol Посмотреть сообщение
    При использовании TON Вы потратите целый цикл на его сброс, а BLINK будет просто переключаться. При этом, если он переключится не вовремя, то на каждом следующем цикле будет стараться синхронизироваться с внутренним таймером. Остается ловить либо фронт, либо спад (при th=0.5s и tl=0.5s) - будет точнее!!
    Спасибо за уточнения)

  10. #10

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    создайте отдельную задачу, с требуемым временем и накапливайте объем, будет точнее чем программные тики
    Разобрался, как использовать. Спасибо!

Похожие темы

  1. Ответов: 3
    Последнее сообщение: 07.09.2017, 08:24
  2. Ответов: 2
    Последнее сообщение: 12.05.2014, 10:07
  3. Ответов: 16
    Последнее сообщение: 26.03.2013, 10:06
  4. Ответов: 8
    Последнее сообщение: 21.03.2013, 19:15
  5. Ответов: 1
    Последнее сообщение: 16.02.2009, 15:09

Метки этой темы

Ваши права

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