FUNCTION "LampDemo" : Void { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_OUTPUT Lamp : Bool; END_VAR VAR_IN_OUT In : Array[*] of Bool; END_VAR VAR_TEMP ArrayUp : DInt; ArrayLower : DInt; ForIdex1 : Int; Count1 : Int; Mad : Int; END_VAR BEGIN REGION 读取数组长度 #ArrayUp:= UPPER_BOUND(ARR := #In, DIM := 1); #ArrayLower:= LOWER_BOUND(ARR := #In, DIM := 1); END_REGION //计数初始化 #Count1 := 0; REGION 判断数组"ON"的个数 FOR #ForIdex1 := #ArrayLower TO #ArrayUp DO IF #In[#ForIdex1] THEN #Count1 := #Count1 + 1; ; END_IF; ; END_FOR; IF #Count1<>0 THEN #Mad := #Count1 MOD 2; #Lamp := #Mad.%X0; ELSE #Lamp := FALSE; END_IF; END_REGION END_FUNCTION