Спасибо большое petera, однако при симуляции макроса меня беспокоит следующее:Снимок6.PNG
Когда введены значения Th и TI, то все нормально:Снимок7.PNG
Спасибо большое petera, однако при симуляции макроса меня беспокоит следующее:Снимок6.PNG
Когда введены значения Th и TI, то все нормально:Снимок7.PNG
Последний раз редактировалось Pvalp; 18.10.2019 в 13:51.
Это ошибка макроса TON_0.1s. У него, если время задано =0, на выходе 1 даже без сигнала на входе I1
Нужно добавить в макрос логику
Захват-2.png
И будет ОК
Захват-1.png
Я такими TON_s (основанными на блинкерах и счетчиках) не пользуюсь
У меня есть свой макрос TON с индикацией времени, вот здесь он используется https://owen.ru/forum/showthread.php...l=1#post316458
Последний раз редактировалось petera; 18.10.2019 в 14:45.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
В серьезных проектах, где время цикла больше 1мс, такие таймеры
Захват-4.png
работать будут некорректно
По этому я использую другой принцип
Захват-3.png
Здесь идет подсчет циклов выполнения программы
Для работы этих таймеров нужен макрос подсчета времени цикла, и количества циклов от включения питания ПР
Захват-5.png
Уставка (PT)задается целым числом в мс, на выходе ET время прошедшее от старта(прямой счет), выходе (PT- ET) оставшееся время, эти времена тоже в мс, дискретность равна времени цикла.
Абсолютная погрешность вычисления интервалов времени не более половины времени цикла во всем допустимом диапазоне уставки в мс от Тц до 4294967295/Tц
Таймер имеет вход паузы. Любое количество пауз не вносят дополнительных погрешностей в отсчет времени.
Работает таймер так
Переменные на входе
dT - время цикла в мс(целое)
x_Clc - номер текущего цикла.
1. Уставка в мс переводится в количество циклов PT_Clc
Захват-6.png
здесь деление выполняется с округлением, по этому погрешность вычисления интервалов времени не более половины времени цикла
2. В момент старта запоминаем номер текущего цикла в переменную Start_Clc
Захват-7.png
3. В процессе работы вычисляется сколько циклов прошло от старта ET_Clc = x_Clc - Start_Clc
Захват-8.png
4. И сравниваем уставку PT_Clc с прошедшим количеством циклов ET_Clc
Захват-9.png
Последний раз редактировалось petera; 18.10.2019 в 15:43.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Совсем не об этом.
Смотрите рисунок, блинк с временами включено и выключено по 0,001с т.е. 1 мс
А если время цикла будет 7мс? Что будет на выходе этого блинка? Я думаю, что будут импульсы длительностью в один цикл, т.е. не 1 мс, а 7!
Таким образом не выходе счетчика CTN1 будет импульс не через(0,001+0,001) * 50 =0,1с, а через (0,007+0,007) * 50 =0,7с
И при уставке (I2) например 10, насчитает таймер не 10с, а 70!
Класс - погрешность 700%
ЗЫ.
А может при времени цикла > 1мс блин вообще перестанет работать!
Последний раз редактировалось petera; 18.10.2019 в 19:52.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Когда-то обсуждали этот момент, нужно вспомнить подробности, там часть таймеров работает по прерыванию, и отрабатывает с заданной выдержкой, но учитывая что это не микроконтроллер и есть еще фильтры, реле на выходе и реакция исполнительного механизма, считать единицы мс смысла особого нет.
Пока сделал еще один, обновленный пример, по работе с таймерами и генераторами с экрана прибора, через Write_to_FB:
С уважением, Ревака Юрий.
Инженер группы технической поддержки компании "ОВЕН"
e-mail: yu.revaka@owen.ru
Шаблон описания ошибки ПР или OL http://ftp-ow.owen.ru/softupdate/OWE...s/Shablon.docx
Видео уроки по ПР200 и OWEN Logic http://edu.owen.ru/series/pr200_rev/
Другие видеоролики по тематике ПР https://www.youtube.com/channel/UCj4...H5H3d_t6iDlQOQ