数组的索引可以用一个变量吗?

我想实现将一个数组里的每一个数与db1.b里的数进行比较,怎么在数组的索引里加入变量? 如果不能的话有什么别的方法可以实现吗?

问题补充:
回答中给出程序框架的朋友能不能再告诉我下  所要读取的数组的地址该怎么写?

图片说明:

数组的索引可以用一个变量吗?   

最佳答案

这个问题我前两天刚好解决了。
第一、首先建立两个DB块,例如编号为80,81。然后在每个DB中创建变量,并在DB属性设置取消优化的块访问。这样你就能看到每个变量在块中的地址了;
第二、建立一个FC(SCL)功能块,书写代码;

通过SCL语言使用循环+比较+PEEK_WORD(提取区域字)指令就可以实现。
具体用法:
WHILE  #执行次数<#比较字数 AND #结果=0 DO  //书写循环程序
    #"temp1 WORD":=PEEK_WORD(area:=16#84,//读取DB80中地址为 PEEK1读地址 的数据至
               dbNumber:=80,                                   // temp1 WORD
               byteOffset:=#PEEK1读地址);
#"temp2 WORD":=PEEK_WORD(area:=16#84,//读取DB81中地址为 PEEK2读地址 的数据至
               dbNumber:=81,                                  // temp2 WORD
               byteOffset:=#PEEK2读地址);   
#PEEK1读地址:=#PEEK1读地址+2;                  //将DB80比对的地址转向下一个数据地址
#PEEK2读地址:=#PEEK2读地址+2;                  //将DB81比对的地址转向下一个数据地址
IF #"temp1 WORD"<>#"temp2 WORD" THEN    //比较本次比较的两个数据
    #结果:=1;
END_IF;

END_WHILE;
备注:如果想实现两个数组在同一个DB中,只需将DB号和偏移地址进行相应修改即可。

不知是否还有疑问点?

提问者对于答案的评价:
谢谢  问题已解决

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc189610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年7月30日 上午11:16
下一篇 2017年7月30日 上午11:16

相关推荐