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 (* 时 间: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 REAL_OUT[01]:=REAL_GroupSet; REAL_OUT[02]:=REAL_GroupSet; REAL_OUT[03]:=REAL_GroupSet; REAL_OUT[04]:=REAL_GroupSet; REAL_OUT[05]:=REAL_GroupSet; REAL_OUT[06]:=REAL_GroupSet; REAL_OUT[07]:=REAL_GroupSet; REAL_OUT[08]:=REAL_GroupSet; REAL_OUT[09]:=REAL_GroupSet; REAL_OUT[10]:=REAL_GroupSet; end_if; (**********一个BOOL型总变量对10个变量赋值,10个变量也可单独赋值*************) if BOOL_GroupSet<>BOOL_GroupSetP then BOOL_OUT[01]:=BOOL_GroupSet; BOOL_OUT[02]:=BOOL_GroupSet; BOOL_OUT[03]:=BOOL_GroupSet; BOOL_OUT[04]:=BOOL_GroupSet; BOOL_OUT[05]:=BOOL_GroupSet; BOOL_OUT[06]:=BOOL_GroupSet; BOOL_OUT[07]:=BOOL_GroupSet; BOOL_OUT[08]:=BOOL_GroupSet; BOOL_OUT[09]:=BOOL_GroupSet; BOOL_OUT[10]:=BOOL_GroupSet; end_if; (**********一个INT型总变量对10个变量赋值,10个变量也可单独赋值*************) if INT_GroupSet<>INT_GroupSetP then INT_OUT[01]:=INT_GroupSet; INT_OUT[02]:=INT_GroupSet; INT_OUT[03]:=INT_GroupSet; INT_OUT[04]:=INT_GroupSet; INT_OUT[05]:=INT_GroupSet; INT_OUT[06]:=INT_GroupSet; INT_OUT[07]:=INT_GroupSet; INT_OUT[08]:=INT_GroupSet; INT_OUT[09]:=INT_GroupSet; INT_OUT[10]:=INT_GroupSet; end_if; case lock of (*0时,均不锁定,1锁定BOOL;2,锁定INT;3,锁定REAL;*) 0: BOOL_GroupSetP:=BOOL_GroupSet; INT_GroupSetP:=INT_GroupSet; REAL_GroupSetP:=REAL_GroupSet; 1: INT_GroupSetP:=INT_GroupSet; REAL_GroupSetP:=REAL_GroupSet; 2: BOOL_GroupSetP:=BOOL_GroupSet; REAL_GroupSetP:=REAL_GroupSet; 3: BOOL_GroupSetP:=BOOL_GroupSet; INT_GroupSetP:=INT_GroupSet; end_case; END_FUNCTION_BLOCK