MrNobody ну почему НЕТ сразу ? вы на модуль заводите либо 220В либо через трансформаторы напряжения более высокое напряжение.
Вторую схему подключения смотрите внимательнее...
Единственное, это необходимость трансформаторов тока, если он выше 5А. в РЭ должно быть указано.
Вопрос по подсчету времени работы/не работы с переходом через сутки. В какую сторону копать ?
capzap просто считать полное время, когда было отключено/включено понятно, эта же функция может считать время во сколько ?
хотите сказать, что такой код не посчитает работу вплоть до 49 суток?Код:VAR flag : BOOL; oldFlag : BOOL; foo : DWORD; bar : DWORD; tik : TIME; END_VAR IF flag AND NOT oldFlag THEN foo := TIME_TO_DWORD(TIME()); ELSIF flag THEN bar:=TIME_TO_DWORD(TIME())-foo; tik:=DWORD_TO_TIME(bar); END_IF; oldFlag:=flag;
Ограничение в 49 суток намекает на излишнюю точность. Проще и надёжнее считать секунды или даже минуты:Код:VAR sectrig: R_TRIG; running: BOOL; END_VAR VAR RETAIN uptime: DWORD := 0; END_VAR sectrig(CLK := TIME_TO_DWORD(TIME()) MOD 1000 > 500); uptime := uptime + BOOL_TO_DWORD(sectrig.Q AND running);
речь шла о перескоке через полночь (может это какой то проект для золушки ), поэтому посчитав время с типом данных TIME и по окончанию события получить с помощью бибки syslibtime текущее время, можно получить дату окончания и с помощью разности узнать начало события в реальных часах