Можно читать значения, но они будут статические, если необходимо в динамике, то по аналогии с вышеприведенным макросом можно вывести.
Вид для печати
Пробовал через Read FB, действительно читает только статику (задание) и то если прикрепить преобразование to fload на переменную, на прямую интовскую переменную не читает, может кто делал такой макрос под себя?
К Юрию: Чтение из таймера его уставки не имеет никакой практической применимости. Похоже это недостаток или ошибка, хотелось бы видеть чтением из таймера текущее время, как видим его в симуляторе.
Вот попробовал создать макрос "BLINK с обратным отсчетом" на базе "TON энергонезависимый с обратным отсчётом времени" созданного "Сергей0308", хотелось бы услышать замечания, пожелания и мысли по оптимизации данного макроса.
У Вас, при построении BLINK на двух таймерах TON, используются два лишних элемента
Вложение 45199
Фрагмент обведенный рамкой полностью эквивалентен
Ну и с учетом этого внутри "изобретенного макроса" будут аналогичные лишние элементы, которых даже больше - четыре лишних
Вложение 45200
Должно остаться
Вложение 45201
Спасибо большое petera, однако при симуляции макроса меня беспокоит следующее:Вложение 45209
Когда введены значения Th и TI, то все нормально:Вложение 45211
Это ошибка макроса TON_0.1s. У него, если время задано =0, на выходе 1 даже без сигнала на входе I1
Нужно добавить в макрос логику
Вложение 45212
И будет ОК
Вложение 45213
Я такими TON_s (основанными на блинкерах и счетчиках) не пользуюсь
У меня есть свой макрос TON с индикацией времени, вот здесь он используется https://owen.ru/forum/showthread.php...l=1#post316458
В серьезных проектах, где время цикла больше 1мс, такие таймеры
Вложение 45219
работать будут некорректно
По этому я использую другой принцип
Вложение 45217
Здесь идет подсчет циклов выполнения программы
Для работы этих таймеров нужен макрос подсчета времени цикла, и количества циклов от включения питания ПР
Вложение 45218
Уставка (PT)задается целым числом в мс, на выходе ET время прошедшее от старта(прямой счет), выходе (PT- ET) оставшееся время, эти времена тоже в мс, дискретность равна времени цикла.
Абсолютная погрешность вычисления интервалов времени не более половины времени цикла во всем допустимом диапазоне уставки в мс от Тц до 4294967295/Tц
Таймер имеет вход паузы. Любое количество пауз не вносят дополнительных погрешностей в отсчет времени.
Работает таймер так
Переменные на входе
dT - время цикла в мс(целое)
x_Clc - номер текущего цикла.
1. Уставка в мс переводится в количество циклов PT_Clc
Вложение 45220
здесь деление выполняется с округлением, по этому погрешность вычисления интервалов времени не более половины времени цикла
2. В момент старта запоминаем номер текущего цикла в переменную Start_Clc
Вложение 45221
3. В процессе работы вычисляется сколько циклов прошло от старта ET_Clc = x_Clc - Start_Clc
Вложение 45222
4. И сравниваем уставку PT_Clc с прошедшим количеством циклов ET_Clc
Вложение 45223