一个项目,要求将嵌套数组的某一开关量提取出来归存到一存储区方便处理编辑。这正好是SCL大显身手的好时机,抛砖引玉下。
Static
rod Array[0..25] of "ROW" 0.0 False True True True False
rod[0] "ROW" 0.0 False True True True False
Y Array[1..8] of "Single DATA" 0.0 False True True True False column 纵列
Y[1] "Single DATA" 0.0 False True True True False column 纵列
Y[2] "Single DATA" 284.0 False True True True False column 纵列
Y[3] "Single DATA" 568.0 False True True True False column 纵列
Y[4] "Single DATA" 852.0 False True True True False column 纵列
Y[5] "Single DATA" 1136.0 False True True True False column 纵列
Y[6] "Single DATA" 1420.0 False True True True False column 纵列
Y[7] "Single DATA" 1704.0 False True True True False column 纵列
Y[8] "Single DATA" 1988.0 False True True True False column 纵列
HEAD_X1 DInt 2272.0 0 False True True True False
TAIL_X2 DInt 2276.0 0 False True True True False
Column_Ocuupy Bool 2280.0 false False True True True False 列有料(只要有一个料就为true)
这是嵌套数组的结构,
Occupy Bool 176.0 false False True True True False 有料标志
这是要提取的变量
从嵌套数组中提取变量的实现如下 (存入新建的DB中):
//1组
FOR #i1 := 0 TO 25 DO
FOR #j1 := 1 TO 8 DO
"DB900 FOR HMI".物料占位[#i1 * 8 + (#j1 )] := "物料跟踪1组(0..25)".rod[#i1].Y[#j1].Occupy;
END_FOR;
END_FOR;