, ET=> ); TON_STABLE(IN:= , PT:= INT_TO_TIME(STABLE_TIME)*1000, Q=> , ET=> ); //RANGE计算 SV_SUB_WARNING_RANGE:=SV-WARNING_RANGE; SV_ADD_WARNING_RANGE:=SV+WARNING_RANGE; SV_DIV_WARNING_RANGE:=SV*(100-WARNING_RANGE)/100; SV_MUL_WARNING_RANGE:=SV*(100+WARNING_RANGE)/100; SV_SUB_ALARM_RANGE:=SV-ALARM_RANGE; SV_ADD_ALARM_RANGE:=SV+ALARM_RANGE; SV_DIV_ALARM_RANGE:=SV*(100-ALARM_RANGE)/100; SV_MUL_ALARM_RANGE:=SV*(100+ALARM_RANGE)/100; //RANGE判断 TON_WARNING_P( IN:= TOL_P AND (PV<=SV_DIV_WARNING_RANGE OR PV>=SV_MUL_WARNING_RANGE)AND NOT RST, PT:= T#200MS, Q=> STU_WARNING_P, ET=> ); TON_WARNING_V( IN:= TOL_V AND (PV<=SV_SUB_WARNING_RANGE OR PV>=SV_ADD_WARNING_RANGE)AND NOT RST , PT:= T#200MS, Q=> STU_WARNING_V, ET=> ); TON_ALARM_P( IN:= TOL_P AND (PV<=SV_DIV_ALARM_RANGE OR PV>=SV_MUL_ALARM_RANGE)AND NOT RST, PT:= T#200MS, Q=> STU_ALARM_P, ET=> ); TON_ALARM_V( IN:= TOL_V AND (PV<=SV_SUB_ALARM_RANGE OR PV>=SV_ADD_ALARM_RANGE)AND NOT RST, PT:= T#200MS, Q=> STU_ALARM_V, ET=> ); IF ENABLE THEN //TIME MODE IF STEP_TYPE = 'Time' THEN TON_DELAY_TIME_PT:=DELAY_TIME; STU_WARNING:=(STU_WARNING_V OR STU_WARNING_P) AND TON_DELAY_TIME.Q; IF (STU_ALARM_V OR STU_ALARM_P) AND TON_DELAY_TIME.Q THEN STU_ALARM:=TRUE; END_IF END_IF; //Stable MODE IF STEP_TYPE = 'Stable' THEN IF TON_WARNING_P.IN OR TON_WARNING_V.IN THEN STABLE_DONE:=FALSE; TON_STABLE.IN:=FALSE; ELSE TON_STABLE.IN:=TRUE; END_IF; IF TON_STABLE.Q THEN STABLE_DONE:=TRUE; END_IF END_IF END_IF; ]]>