Как получить выдержку, не зависящую от цикла сканирования PMP20?

Проверено экспертом Опубликовано: 30.04.2026 Обновлено: 12.06.2026 558 просмотров Помогло 76%

Для этого есть точные таймеры ET и команда STR: они отсчитывают время с шагом 1 мс независимо от периода сканирования и умеют вызывать прерывание по достижении уставки.

Как это выглядит:

  • STR ET0 K3000 — запуск отсчёта 3000 мс. Таймер 32-битный, диапазон от 0 до 2 147 483 647.
  • DMOV ET0 D0 — мгновенное чтение текущего значения, на него не влияет цикл сканирования.
  • STOP ET0 — немедленная остановка отсчёта с обновлением значения.
  • RST ET0 — сброс.

Номера точных таймеров только чётные: ET0, ET2, ET4 и далее. При выполнении STR таймер сбрасывается перед началом отсчёта.

Каждому таймеру соответствует своя метка прерывания: ET0 — I3000, ET2 — I3001, ET4 — I3002, ET6 — I3003, ET8 — I3004, ET10 — I3005, ET12 — I3006 и далее по порядку. Подпрограмма пишется после FEND и заканчивается IRET, а повторный запуск STR прямо в подпрограмме даёт стабильный периодический процесс — так формируют импульс с временем включения 500 мс и периодом 1000 мс.

Типовая задача под точный таймер — дозирование: время открытия клапана 3000 мс, и разброс в один цикл сканирования уже даёт брак по массе. Обычный таймер такую точность не обеспечивает.

Перед распределением ресурсов проверьте таблицу конфликтов: точные таймеры делят аппаратные ресурсы с высокоскоростными счётчиками и импульсными выходами, и пару из одной строки одновременно использовать нельзя.

Прикреплённая документация

Георгий Жуков Георгий Жуков Ведущий инженер

Этот ответ был полезен?

Не нашли ответ?

Инженер сервисной службы ответит на почту. Вопросы, которые повторяются, мы публикуем в базе знаний — без ваших контактов.

Вопрос из раздела Как получить выдержку, не зависящую от цикла сканирования PMP20?