Сообщение от
Serg52
Может быть Вам покажется смешным, но я в свои 70, знакомясь с хитростями программирования в среде CodeSys, не в полной мере осознаю понятие "цикл". Цикл контроллера, цикл PLC_PRG,...
Предполагается, что я, присвоив значение начала отсчёта по R_TRIG (в TIME1()?), затем вычту из полученного от TON_1.ET TIME2() значение TIME1() ? А TIME2() я должен запустить по TON_1.Q:=FALSE; ??
А в общем, спасибо за участие и терпение!
Например так, по первому датчику запускаете таймер, по второму запускаете триггер R_TRIG и фиксируете время.
Например, где Q1 выход триггера, а x1 булевая переменная
Код:
IF Q1 AND NOT x1 THEN
// Присвоить время в переменную
x1:=TRUE;
END_IF
И пока вы не сбросите х1, сколько триггер не щёлкнет, переменная не изменится.
Цикл ПЛК, это чтение входов, выполнение всей программы, сначала до конца, присвоение переменных на выходы, и всё по новой.