достаточно больной вопрос, ну или мере мне так показалось.

вот мой вариант, предлагаю обсудить. указать на недостатки.

для начала нам понадобится таймер, напишем свой
таймер.png

что здесь происходит -
стандартный счетчик CTN1 считает импульсы (условные тики) со входа "+" они проходят не него только если он не досчитал до уставки, все следующие блокируются.
уставка задается на входе "N" и изменить ее мы можем только в тот момент когда счетчик у нас не считает.

понадобится некий генератор который будет выдавать нам импульс
соберем на паре наших счетчиков
шим.png

снова объясню -
первый счетчик получает количество тиков соответствующих времени молчания выхода и импульсы (опять наши условные тики)
досчитав до конца переводит выход макроса в 1 (true, правду, высокий уровень)
и тем самым через блок "И" разрешает прохождение импульсов на второй счетчик, который помимо этого получает количество тиков соответствующих времени импульса
после окончания счета второго счетчика он сбрасывает себя и первый счетчик
первый счетчик отключает свой выход и тем самым переводит выход макроса в 0 (false, ложь, низкий уровень)

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

здесь мы берем "условную" длину периода делим ее на 100 и умножаем на "условную" длину импульса (в процентах от длины периода) получаем время импульса в наших тиках
вычитаем из длинны периода время импульса и получаем длину молчания

так как стандартный ПИД регулятор выдает значение от 0 до 100, немного изменим это значение увеличив его в двое и отняв сотню,
мы переведем его выходной сигнал в диапазон от -100 до 100. принимать его будем на наш вход длина импульса поэтому переименуем его в "Pwr"
для подсчета длины импульса знак нам не нужен воспользуемся стандартным блоком [fABS]
шим3.png

теперь получая данные с ПИД регулятора мы будем вычислять процентное отклонение от "50" в ту или иную сторону и на основании этого задавать длительность импульса
осталось определить в какую сторону отклонение для этого сравним входной сигнал с "0" и в зависимости от этого разрешим подачу импульсов на нужный выход
шим4.png

может получится что длина импульса будет слишком короткой и выходные реле будет колбасить, что им не на пользу.
давайте зададим минимальное время импульса и если расчетный импульс будет менее этой уставки просто его проигнорируем
КЗР.png

макрос для управления клапанами (приводами, задвижками) КЗР - готов
рассмотрим его применение
в проекте набросаем достаточно простую схему опрос датчика pt1000, ПИД регулятор, ввод коэффициентов в ПИД, наш макрос и пару выходов
остался вопрос, где брать наш "Условный тик"? на рисунке представлены только два варианта (каждый сможет придумать что-то свое). а я расскажу про эти.
прож.png

вариант в синем треугольнике самый быстрый, но есть нюанс.
предположим что полный цикл ПР занимает 1мсек, то период (или в нашем случаем время полного хода) в 10 секунд нужно будет задавать уже числом 10000, а при импульсе в 10% длительность его составит 1 секунду, что опять снизит ресурс реле.

второй вариант тоже не самый лучший, но я предпочёл-бы его. выставляя время полного хода задвижки в секундах и минимальное время импульса 2-3 сек.

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