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