FUNCTION_BLOCK BS_GroupVavle
VAR_EXTERNAL

END_VAR

VAR_INPUT
LOCK		 :INT:=0;
BOOL_GroupSet:BOOL;
INT_GroupSet:INT;
REAL_GroupSet:REAL;
END_VAR

VAR_OUTPUT
REAL_OUT 	 :ARRAY[0..10] OF REAL;
INT_OUT 	 :ARRAY[0..10] OF INT;
BOOL_OUT 	 :ARRAY[0..10] OF BOOL;
END_VAR

VAR
REAL_GroupSetP :REAL;
BOOL_GroupSetP :BOOL;
INT_GroupSetP :INT;
END_VAR

(*Automatically declared*)
VAR_EXTERNAL
END_VAR
(**  **)
(** {*  **)
(**  **)
(** 时  间:20191008 **)
(** 版  本:1.5 **)
(** 作  者:姚立 **)
(** 名  称:变量批量赋值 **)
(** 说  明:用于变量批量赋值,可选锁定单体变量输入 **)
(** 		LOCK 0均不锁定;1锁定BOOL;2,锁定INT;3,锁定REAL; **)
(** 备  注:支持10组BOOL,10组REAL,10组INT **)
(** 依赖块:无 **)
(**  **)
(** *} **)
(** {**********一个REAL型总变量对10个变量赋值,10个变量也可单独赋值*************} **)
(**  **)
(** if REAL_GroupSet<>REAL_GroupSetP then **)
	(* if - Cond *)
	LD REAL_GroupSet
	NE REAL_GroupSetP
	JMPCN ODK_SKIP_000000000000001_000000000000001

		(* then - Stmts *)

(** 	REAL_OUT[01]:=REAL_GroupSet; **)
		(* assign - Stmt *)
		LD REAL_GroupSet
		ST REAL_OUT[01]

(** 	REAL_OUT[02]:=REAL_GroupSet; **)
		(* assign - Stmt *)
		LD REAL_GroupSet
		ST REAL_OUT[02]

(** 	REAL_OUT[03]:=REAL_GroupSet; **)
		(* assign - Stmt *)
		LD REAL_GroupSet
		ST REAL_OUT[03]

(** 	REAL_OUT[04]:=REAL_GroupSet; **)
		(* assign - Stmt *)
		LD REAL_GroupSet
		ST REAL_OUT[04]

(** 	REAL_OUT[05]:=REAL_GroupSet; **)
		(* assign - Stmt *)
		LD REAL_GroupSet
		ST REAL_OUT[05]

(** 	REAL_OUT[06]:=REAL_GroupSet; **)
		(* assign - Stmt *)
		LD REAL_GroupSet
		ST REAL_OUT[06]

(** 	REAL_OUT[07]:=REAL_GroupSet; **)
		(* assign - Stmt *)
		LD REAL_GroupSet
		ST REAL_OUT[07]

(** 	REAL_OUT[08]:=REAL_GroupSet; **)
		(* assign - Stmt *)
		LD REAL_GroupSet
		ST REAL_OUT[08]

(** 	REAL_OUT[09]:=REAL_GroupSet; **)
		(* assign - Stmt *)
		LD REAL_GroupSet
		ST REAL_OUT[09]

(** 	REAL_OUT[10]:=REAL_GroupSet; **)
		(* assign - Stmt *)
		LD REAL_GroupSet
		ST REAL_OUT[10]

		JMP ODK_END_IF_000000000000001

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

(**  **)
(** 	 **)
(** {**********一个BOOL型总变量对10个变量赋值,10个变量也可单独赋值*************} **)
(**  **)
(** if BOOL_GroupSet<>BOOL_GroupSetP then **)
	(* if - Cond *)
	LD BOOL_GroupSet
	NE BOOL_GroupSetP
	JMPCN ODK_SKIP_000000000000002_000000000000001

		(* then - Stmts *)

(** 	BOOL_OUT[01]:=BOOL_GroupSet; **)
		(* assign - Stmt *)
		LD BOOL_GroupSet
		ST BOOL_OUT[01]

(** 	BOOL_OUT[02]:=BOOL_GroupSet; **)
		(* assign - Stmt *)
		LD BOOL_GroupSet
		ST BOOL_OUT[02]

(** 	BOOL_OUT[03]:=BOOL_GroupSet; **)
		(* assign - Stmt *)
		LD BOOL_GroupSet
		ST BOOL_OUT[03]

(** 	BOOL_OUT[04]:=BOOL_GroupSet; **)
		(* assign - Stmt *)
		LD BOOL_GroupSet
		ST BOOL_OUT[04]

(** 	BOOL_OUT[05]:=BOOL_GroupSet; **)
		(* assign - Stmt *)
		LD BOOL_GroupSet
		ST BOOL_OUT[05]

(** 	BOOL_OUT[06]:=BOOL_GroupSet; **)
		(* assign - Stmt *)
		LD BOOL_GroupSet
		ST BOOL_OUT[06]

(** 	BOOL_OUT[07]:=BOOL_GroupSet; **)
		(* assign - Stmt *)
		LD BOOL_GroupSet
		ST BOOL_OUT[07]

(** 	BOOL_OUT[08]:=BOOL_GroupSet; **)
		(* assign - Stmt *)
		LD BOOL_GroupSet
		ST BOOL_OUT[08]

(** 	BOOL_OUT[09]:=BOOL_GroupSet; **)
		(* assign - Stmt *)
		LD BOOL_GroupSet
		ST BOOL_OUT[09]

(** 	BOOL_OUT[10]:=BOOL_GroupSet; **)
		(* assign - Stmt *)
		LD BOOL_GroupSet
		ST BOOL_OUT[10]

		JMP ODK_END_IF_000000000000002

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

(**  **)
(**  **)
(** {**********一个INT型总变量对10个变量赋值,10个变量也可单独赋值*************} **)
(**  **)
(** if INT_GroupSet<>INT_GroupSetP then **)
	(* if - Cond *)
	LD INT_GroupSet
	NE INT_GroupSetP
	JMPCN ODK_SKIP_000000000000003_000000000000001

		(* then - Stmts *)

(** 	INT_OUT[01]:=INT_GroupSet; **)
		(* assign - Stmt *)
		LD INT_GroupSet
		ST INT_OUT[01]

(** 	INT_OUT[02]:=INT_GroupSet; **)
		(* assign - Stmt *)
		LD INT_GroupSet
		ST INT_OUT[02]

(** 	INT_OUT[03]:=INT_GroupSet; **)
		(* assign - Stmt *)
		LD INT_GroupSet
		ST INT_OUT[03]

(** 	INT_OUT[04]:=INT_GroupSet; **)
		(* assign - Stmt *)
		LD INT_GroupSet
		ST INT_OUT[04]

(** 	INT_OUT[05]:=INT_GroupSet; **)
		(* assign - Stmt *)
		LD INT_GroupSet
		ST INT_OUT[05]

(** 	INT_OUT[06]:=INT_GroupSet; **)
		(* assign - Stmt *)
		LD INT_GroupSet
		ST INT_OUT[06]

(** 	INT_OUT[07]:=INT_GroupSet; **)
		(* assign - Stmt *)
		LD INT_GroupSet
		ST INT_OUT[07]

(** 	INT_OUT[08]:=INT_GroupSet; **)
		(* assign - Stmt *)
		LD INT_GroupSet
		ST INT_OUT[08]

(** 	INT_OUT[09]:=INT_GroupSet; **)
		(* assign - Stmt *)
		LD INT_GroupSet
		ST INT_OUT[09]

(** 	INT_OUT[10]:=INT_GroupSet; **)
		(* assign - Stmt *)
		LD INT_GroupSet
		ST INT_OUT[10]

		JMP ODK_END_IF_000000000000003

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

(**  **)
(** case lock of **)
(** {*0时,均不锁定,1锁定BOOL;2,锁定INT;3,锁定REAL;*} **)
(** 0: **)
	(* case - Elm *) 
	ODK_SKIP_000000000000004_000000000000000:

	(* case - Cond *)
	LD lock
	EQ 0
	JMPC ODK_CASE_000000000000004_000000000000001

	JMP ODK_SKIP_000000000000004_000000000000001

	(* case - Stmts *) 
	ODK_CASE_000000000000004_000000000000001:

(** 	BOOL_GroupSetP:=BOOL_GroupSet; **)
		(* assign - Stmt *)
		LD BOOL_GroupSet
		ST BOOL_GroupSetP

(** 	INT_GroupSetP:=INT_GroupSet; **)
		(* assign - Stmt *)
		LD INT_GroupSet
		ST INT_GroupSetP

(** 	REAL_GroupSetP:=REAL_GroupSet; **)
		(* assign - Stmt *)
		LD REAL_GroupSet
		ST REAL_GroupSetP

		JMP ODK_END_CASE_000000000000004

(** 1:  **)
	(* case - Elm *) 
	ODK_SKIP_000000000000004_000000000000001:

	(* case - Cond *)
	LD lock
	EQ 1
	JMPC ODK_CASE_000000000000004_000000000000002

	JMP ODK_SKIP_000000000000004_000000000000002

	(* case - Stmts *) 
	ODK_CASE_000000000000004_000000000000002:

(** 	INT_GroupSetP:=INT_GroupSet; **)
		(* assign - Stmt *)
		LD INT_GroupSet
		ST INT_GroupSetP

(** 	REAL_GroupSetP:=REAL_GroupSet; **)
		(* assign - Stmt *)
		LD REAL_GroupSet
		ST REAL_GroupSetP

		JMP ODK_END_CASE_000000000000004

(** 2:  **)
	(* case - Elm *) 
	ODK_SKIP_000000000000004_000000000000002:

	(* case - Cond *)
	LD lock
	EQ 2
	JMPC ODK_CASE_000000000000004_000000000000003

	JMP ODK_SKIP_000000000000004_000000000000003

	(* case - Stmts *) 
	ODK_CASE_000000000000004_000000000000003:

(** 	BOOL_GroupSetP:=BOOL_GroupSet; **)
		(* assign - Stmt *)
		LD BOOL_GroupSet
		ST BOOL_GroupSetP

(** 	REAL_GroupSetP:=REAL_GroupSet; **)
		(* assign - Stmt *)
		LD REAL_GroupSet
		ST REAL_GroupSetP

		JMP ODK_END_CASE_000000000000004

(** 3:  **)
	(* case - Elm *) 
	ODK_SKIP_000000000000004_000000000000003:

	(* case - Cond *)
	LD lock
	EQ 3
	JMPC ODK_CASE_000000000000004_000000000000004

	JMP ODK_SKIP_000000000000004_000000000000004

	(* case - Stmts *) 
	ODK_CASE_000000000000004_000000000000004:

(** 	BOOL_GroupSetP:=BOOL_GroupSet; **)
		(* assign - Stmt *)
		LD BOOL_GroupSet
		ST BOOL_GroupSetP

(** 	INT_GroupSetP:=INT_GroupSet; **)
		(* assign - Stmt *)
		LD INT_GroupSet
		ST INT_GroupSetP

		JMP ODK_END_CASE_000000000000004

(** end_case; **)
	(* case - End *) 
	ODK_SKIP_000000000000004_000000000000004:
	ODK_END_CASE_000000000000004:

(**  **)

END_FUNCTION_BLOCK