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

Тема: Чтение прошедшего времени с таймера TON

  1. #1

    Question Чтение прошедшего времени с таймера TON

    Здравствуйте. Возможно ли с таймера считать сколько времени прошло (в идеале, сколько времени осталось)? Задача: как то вывести на экран сколько времени осталось до конца таймера.

  2. #2

    По умолчанию

    Цитата Сообщение от asu.optim-toledo Посмотреть сообщение
    Здравствуйте. Возможно ли с таймера считать сколько времени прошло (в идеале, сколько времени осталось)? Задача: как то вывести на экран сколько времени осталось до конца таймера.
    wCoolDownTimeLeft := DWORD_TO_WORD((60000*WORD_TO_DWORD(wCoolDownTime) - TIME_TO_DWORD(fbCoolDownTimer.ET))/1000);

    Из уставки таймера вычитаешь сколько уже прошло, получаешь сколько осталось. Предварительно все перевести в одни единицы (миллисекунды)

  3. #3

    По умолчанию

    Цитата Сообщение от Задумкин Сергей Посмотреть сообщение
    wCoolDownTimeLeft := DWORD_TO_WORD((60000*WORD_TO_DWORD(wCoolDownTime) - TIME_TO_DWORD(fbCoolDownTimer.ET))/1000);

    Из уставки таймера вычитаешь сколько уже прошло, получаешь сколько осталось. Предварительно все перевести в одни единицы (миллисекунды)
    А в FBD это можно сделать? у меня тут для чтения только уставка доступна.

    Screenshot 2024-10-04 160652.png

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

    По умолчанию

    Если имеется в виду Лоджик, то нельзя. Надо свой таймер писать - если достаточно секунд, то на FBD, если нужны миллисекунды - тогда ST

  5. #5

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    Если имеется в виду Лоджик, то нельзя. Надо свой таймер писать - если достаточно секунд, то на FBD, если нужны миллисекунды - тогда ST
    Понял, спасибо.

  6. #6

    По умолчанию

    Цитата Сообщение от asu.optim-toledo Посмотреть сообщение
    Понял, спасибо.
    Тут есть готовые таймеры на ST с выходом ET в сек. и мс, считывайте сколько насчитал таймер или PT - время таймера= сколько осталось
    И не только таймеры, а разные примеры
    https://owen.ru/forum/showthread.php...=9&p=429067#81
    Последний раз редактировалось kondor3000; 04.10.2024 в 17:19.

  7. #7

    По умолчанию

    На FBD если для визуализации достаточно отсчётов в 1 секунду

    Countdown.png
    Вложения Вложения
    Последний раз редактировалось FPavel; 04.10.2024 в 19:54.

  8. #8

    По умолчанию

    Спасибо всем ответившим! Уже нашел пример таймера на ST на канале ОВЕНа. Отдельное спасибо kondor3000 за ссылки, пригодятся.

  9. #9

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Тут есть готовые таймеры на ST с выходом ET в сек. и мс, считывайте сколько насчитал таймер или PT - время таймера= сколько осталось
    И не только таймеры, а разные примеры
    https://owen.ru/forum/showthread.php...=9&p=429067#81
    В продолжение темы таймеров на ST...

    Для отсчёта времени в предлагаемых таймерах используется запоминание времени начала отсчёта и вычитание этого значения из текущего времени.

    Возникает вопрос - как поведёт себя таймер при переполнении 32 разрядной переменной, т.е. когда Get_Time() вернёт значение меньшее, чем значение начала отсчёта?

    Вопрос по причине необходимости сделать энергонезависимый таймер для многостадийной установки - при включении питания будет время стадии инициализации, потом может добавится время ожидания запроса работы и только после этого нужно досчитать остаток времени стадии, прерванной отключением электричества.
    Т.е. придётся вручную нарисовать на ST таймер TON с подстановкой в него уже пройденного времени, основываясь на Get_Time.

    Что будет при переполнении 32 разрядной переменной после 49d17h02m47s295ms? Будет сбой работы таймера или разность текущего и стартового времени будет корректной?

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

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    В продолжение темы таймеров на ST...

    Для отсчёта времени в предлагаемых таймерах используется запоминание времени начала отсчёта и вычитание этого значения из текущего времени.

    Возникает вопрос - как поведёт себя таймер при переполнении 32 разрядной переменной, т.е. когда Get_Time() вернёт значение меньшее, чем значение начала отсчёта?

    Вопрос по причине необходимости сделать энергонезависимый таймер для многостадийной установки - при включении питания будет время стадии инициализации, потом может добавится время ожидания запроса работы и только после этого нужно досчитать остаток времени стадии, прерванной отключением электричества.
    Т.е. придётся вручную нарисовать на ST таймер TON с подстановкой в него уже пройденного времени, основываясь на Get_Time.

    Что будет при переполнении 32 разрядной переменной после 49d17h02m47s295ms? Будет сбой работы таймера или разность текущего и стартового времени будет корректной?
    Разность будет корректной если пауза не превысит 49d17h02m47s295ms
    Безымянный.png
    Последний раз редактировалось Dimensy; 07.10.2024 в 20:09.

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

Похожие темы

  1. Ответов: 2
    Последнее сообщение: 01.12.2023, 22:40
  2. ПР200 Увеличение времени работы таймера
    от Stas/// в разделе Программируемые реле
    Ответов: 9
    Последнее сообщение: 05.05.2023, 08:33
  3. Чтение времени
    от sialiv в разделе СПК2xx (архив)
    Ответов: 1
    Последнее сообщение: 16.02.2019, 10:40
  4. Ответов: 4
    Последнее сообщение: 04.08.2016, 10:46
  5. Ответов: 1
    Последнее сообщение: 05.03.2013, 06:13

Ваши права

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