// 时钟信号切换记录心跳值
IF #i_ClockTrige THEN
//第一次记录值
#s_First_Record := #i_HeartBeat;
ELSE
//第二次记录值
#s_Second_Record := #i_HeartBeat;
END_IF;
//心跳超时判断
#s_Timer(IN:=#s_First_Record = #s_Second_Record AND #io_ReconCount < #i_ReconTimes AND NOT #s_Timer.Q,
PT:=#i_TImeOutPeriod);
//心跳超时重连计
#F_TRIG_Instance(CLK:=#s_Timer.IN);
IF #F_TRIG_Instance.Q THEN
#io_ReconCount := #io_ReconCount + 1;
END_IF;
//心跳超时报警
IF #io_ReconCount >= #i_ReconTimes THEN
#s_TimeOutAlarm := TRUE;
END_IF;
//手动复位或重连后自动复位报警
IF #i_Reset OR #s_First_Record <> #s_Second_Record THEN
#s_TimeOutAlarm := FALSE;
#io_ReconCount := 0;
END_IF;
//报警汇总输出
#o_Total_Alarm := #s_TimeOutAlarm;
//映射输出
#o_TimeOutAlarm:= #s_TimeOutAlarm;