发布于 2011-07-30 08:39:24
18楼
英雄:还有一种思路,就是要不停打开相应的数据块去读取相应的数据进行比较,这样也是可以的,我没有测试过,但感觉思路是对的,逻辑上也是可行的,好处就是节省了一些临时存储器,缺点就是每次比较新的数据都要重新打开数据块!英雄:你测试一下试试看!还是一样DB11、DB12、DB13都是REAL类型100个数据。我希望能帮助你解决问题!代码如下:
//╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬初始化DB13╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬
L 0
T LW 100
CALL "FILL" //SFC21
BVAL :=LW100
RET_VAL:=LW100
BLK :=P#DB13.DBX 0.0 REAL 100
//╬╬╬╬╬比较DB11、DB12对应的地址,相同的数据按顺序写到DB13╬╬╬╬╬╬
LAR1 P#0.0 //初始化地址指针1
LAR2 P#0.0 //初始化地址指针2
L 100
NEXT: T LW 100
OPN DB 11
L DBD [AR1,P#0.0] //读取DB11当前的数据存
T LD 102 //储在临时存储器 LD20
OPN DB 12
L DBD [AR1,P#0.0] //读取DB12当前的数据存
T LD 106 //储在临时存储器 LD24
L LD 102 //比较DB11、DB12对应的
L LD 106 //地址里面的数据
==R
JCN M001
OPN DB 13
L LD 102
T DBD [AR2,P#0.0] //相同的数据按顺序写到DB13
+AR2 P#4.0
M001: +AR1 P#4.0
L LW 100
LOOP NEXT
//╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”