摘要:
程序: L P##IN0 LAR1 L W [AR1,P#2.0] T #LENGTH L W [AR1,P#4.0] T #DBS L D [AR1,P#6.0] T #DZS//将数据源的ANY指针数据复制下来 L P##IN1 LAR1 L B#16#10 //对应ANY_JI T LB 28 L B [AR1,P#1.0] T LB 29 //对应ANY_JI L W [AR1,P#


程序:
L P##IN0
LAR1
L W [AR1,P#2.0]
T #LENGTH
L W [AR1,P#4.0]
T #DBS
L D [AR1,P#6.0]
T #DZS
//将数据源的ANY指针数据复制下来
L P##IN1
LAR1
L B#16#10 //对应ANY_JI
T LB 28
L B [AR1,P#1.0]
T LB 29 //对应ANY_JI
L W [AR1,P#2.0]
T LW 30 //对应ANY_JI
L W [AR1,P#4.0]
T #DBJI
T LW 32 //对应TANY_JI
L D [AR1,P#6.0]
T #DZJI
T LD 34 //对应ANY_JI
//将存放奇数的DB块的ANY数据进行处理,并编写ANY_JI
L P##IN2
LAR1
L B#16#10
T LB 38 //对应ANY_OU
L B [AR1,P#1.0]
T LB 39 //对应ANY_OU
L W [AR1,P#2.0]
T LW 40 //对应ANY_OU
L W [AR1,P#4.0]
T #DBOU
T LW 42 //对应ANY_OU
L D [AR1,P#6.0]
T #DZOU
T LD 44 //对应ANY_OU
////将存放偶数的DB块的ANY数据进行处理,并编写ANY_OU
L 0
T #ZERO
CALL "FILL"
BVAL :=#ZERO
RET_VAL:=#TEMP12
BLK :=#ANY_JI
CALL "FILL"
BVAL :=#ZERO
RET_VAL:=#TEMP13
BLK :=#ANY_OU
//初始化,清零,调用SFC21
OPN DB [#DBS]
OPN DI [#DBJI]
LAR1 #DZS
LAR2 #DZJI
L #LENGTH
M002: T #LOOP_JI
L DBW [AR1,P#0.0]
SRW 1
A >0
JCN M001
L DBW [AR1,P#0.0]
T DIW [AR2,P#0.0]
+AR2 P#2.0
M001: +AR1 P#2.0
L #LOOP_JI
LOOP M002
//奇数
OPN DB [#DBS]
OPN DI [#DBOU]
LAR1 #DZS
LAR2 #DZOU
L #LENGTH
M004: T #LOOP_OU
L DBW [AR1,P#0.0]
SRW 1
A >0
JC M003
L DBW [AR1,P#0.0]
T DIW [AR2,P#0.0]
+AR2 P#2.0
M003: +AR1 P#2.0
L #LOOP_OU
LOOP M004
//偶数
调用:因为这里采用的是INT数据所以在调用的时候要写:P#DB7.DBX0.0 INT 10

测试效果:
