FUNCTION_BLOCK BS_FEC
VAR_EXTERNAL

END_VAR

VAR_INPUT
RUN   		 : BOOL ;		(* PID鍔熻兘鍧楀惎鐢� *)
SET   		 : REAL ;		(* 璋冭妭鐩爣鍊� *)
FB 	  		 : REAL ;		(* 璋冭妭鐩爣鍊肩殑鍙嶉鍊� *)
Dead_Band    : REAL :=10.0 ;	(* 姝诲尯 *)	
Delay		 : TIME :=t#300s;(* 寤舵椂鏃堕棿 *)

END_VAR

VAR_OUTPUT
DevC		 : BOOL ;		(* 璁惧寮€鍏虫帶鍒� *)
END_VAR

VAR
ton1 		 : TON  ;
ton2 		 : TON  ;
END_VAR

(*Automatically declared*)
VAR_EXTERNAL
END_VAR
(** {*  **)
(**  **)
(** 时  间:20200220 **)
(** 版  本:1.0 **)
(** 作  者:潘平 **)
(** 名  称:设备开关值控程序 **)
(** 说  明:用于设备开关的值控程序 **)
(** 备  注:适用于风机联动环境值等控制 **)
(** 依赖块:无 **)
(**  **)
(** 	输入变量 **)
(** 	RUN   		 : BOOL ;		 PID功能块启用  **)
(** 	SET   		 : REAL ;		 调节目标值  **)
(** 	FB 	  		 : REAL ;		 调节目标值的反馈值 **)
(** 	Dead_Band    : REAL ;	 	 死区,默认10	 **)
(** 	Delay		 : TIME ; 		 延时时间,默认300S **)
(** 	输出变量  **)
(** 	DevC       	 : BOOL ;		 设备控制输出 **)
(**  **)
(** *} **)
(**  **)
(** {*  **)
(** 	      FB>SET DevC:=1 **)
(** 	      FB-(SET-D)<0  DevC:=0 **)
(**  **)
(** *} **)
(** ton1(pt:=Delay); **)
	(* call - Stmt *)
	CAL ton1 (
		pt := Delay
	)

(** ton2(pt:=Delay); **)
	(* call - Stmt *)
	CAL ton2 (
		pt := Delay
	)

(**  **)
(** if RUN =1 then **)
	(* if - Cond *)
	LD RUN
	EQ 1
	JMPCN ODK_SKIP_000000000000001_000000000000001

		(* then - Stmts *)

(** 	if FB-SET>=0.0 then **)
		(* if - Cond *)
		LD FB
		SUB SET
		GE 0.0
		JMPCN ODK_SKIP_000000000000002_000000000000001

			(* then - Stmts *)

(** 		DevC:=1; **)
			(* assign - Stmt *)
			LD 1
			ST DevC

(** 		ton1.in:=1; **)
			(* assign - Stmt *)
			LD 1
			ST ton1.in

			JMP ODK_END_IF_000000000000002

(** 		else **)
		(* else *) 
		ODK_SKIP_000000000000002_000000000000001:

			(* else - Stmts *)

(** 		ton1.in:=0; **)
			(* assign - Stmt *)
			LD 0
			ST ton1.in

(** 	end_if; **)
		(* if - End *) 
		ODK_END_IF_000000000000002:

(** 	if ton1.q=1 then **)
		(* if - Cond *)
		LD ton1.q
		EQ 1
		JMPCN ODK_SKIP_000000000000003_000000000000001

			(* then - Stmts *)

(** 		DevC:=1; **)
			(* assign - Stmt *)
			LD 1
			ST DevC

			JMP ODK_END_IF_000000000000003

(** 	end_if; **)
		(* if - End *) 
		ODK_SKIP_000000000000003_000000000000001:
		ODK_END_IF_000000000000003:

(** 	if FB-(SET-Dead_Band)<0.0 then **)
		(* if - Cond *)
		LD FB
		SUB ( SET
			SUB Dead_Band
		)
		LT 0.0
		JMPCN ODK_SKIP_000000000000004_000000000000001

			(* then - Stmts *)

(** 		ton2.in:=1; **)
			(* assign - Stmt *)
			LD 1
			ST ton2.in

			JMP ODK_END_IF_000000000000004

(** 		else **)
		(* else *) 
		ODK_SKIP_000000000000004_000000000000001:

			(* else - Stmts *)

(** 		ton2.in:=0; **)
			(* assign - Stmt *)
			LD 0
			ST ton2.in

(**     end_if; **)
		(* if - End *) 
		ODK_END_IF_000000000000004:

(** 	if ton2.q=1 then **)
		(* if - Cond *)
		LD ton2.q
		EQ 1
		JMPCN ODK_SKIP_000000000000005_000000000000001

			(* then - Stmts *)

(** 		DevC:=0; **)
			(* assign - Stmt *)
			LD 0
			ST DevC

			JMP ODK_END_IF_000000000000005

(** 	end_if; **)
		(* if - End *) 
		ODK_SKIP_000000000000005_000000000000001:
		ODK_END_IF_000000000000005:

		JMP ODK_END_IF_000000000000001

(** end_if; **)
	(* if - End *) 
	ODK_SKIP_000000000000001_000000000000001:
	ODK_END_IF_000000000000001:

(**  **)
(**  **)
(**  **)
(**  **)
(**  **)
(**  **)

END_FUNCTION_BLOCK