-
Циклическое время
В описании библиотеки PID_Regulators сказано, что при использовании сторонних измерителей циклическое время надо вычислять самостоятельно. Для этог надо завести переменную PV_TIME типа WORD, в которую прибавлять время, равное периоду вызова POU (в 1/100 с). При переполнении (> 65535) переменную обнулять.
Кто-нибудь пробовал реализовать эту процедуру? Поделитесь пожалуйста опытом.
-
Пользователь
x:WORD;
tmr:TON;
tmr(in:=not tmr.q,pt:=t#100ms);
if tmr.q then
x:=x+100;
end_if
-
Спасибо. Но мне кажется, что в примере переменная х будет увеличиваться каждый раз на 1 с, а не на 100 мс.
-
Это как же на 1 сек. Где в коде 1 секунда?
-
Переменная х хранит время в единицах, равных 1/100 секунды. Если добавить 100 единиц, то ... Кроме того будет ли х корректно обнуляться при переполнении?
-
Пользователь
1) Да, нужно x:=x+10 - ошибся
2) Обнулять не надо - для переменной типа word перенос при переполненнии будет выполнен корректно
-
Спасибо. Вроде работает.
Вопрос такой. Будет ли циклическое время правильным, если ПЛК не смог прочитать очередные измерения. В это случае он вроде-бы использует предыдущие прочитанные.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума