(* =============================================================================== Project : PLC_Library Device : - Path : Общие Name : Status_Connect_Counter Type : FUNCTION_BLOCK =============================================================================== *) FUNCTION_BLOCK Status_Connect_Counter (* Статус связи с СВУ по счетчику *) VAR_INPUT Counter: WORD; (* Счетчик, инкрементируемый удаленным устройством (СВУ) *) T_Error: TIME; (* Время отсутствия изменений счетчика для диагностики обрыва связи *) END_VAR VAR_OUTPUT CounterIsChanged: BOOL; (* Флаг: счетчик изменился в текущем цикле *) ERROR_CONNECT: BOOL; (* Флаг ошибки связи: счетчик не менялся дольше T_Error *) END_VAR VAR CounterOld: WORD; TON_SU: TON; END_VAR (*----- IMPLEMENTATION -----*) TON_SU(IN:=(Counter = CounterOld), PT:=T_Error); ERROR_CONNECT:=TON_SU.Q; IF(Counter <> CounterOld) THEN CounterIsChanged:=TRUE; ELSE CounterIsChanged:=FALSE; END_IF CounterOld:=Counter; END_FUNCTION_BLOCK