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

我想实现将一个数组里的每一个数与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

相关推荐

  • 原装usb适配器A2

    各位,原装的USB适配器A2能直接调试6RA80和CU320?有大侠说A2是通过pc的usb口取电的,应该可以。 问题补充:是直接连接,不通过PLC吗? 最佳答案 PC-Adapt…

    SIMATIC S7-1200 2017年5月31日
  • 控制方法的问题

    本人欲做机械臂实现自动打螺丝,但工件尺寸不确定且每次来料位置有较大偏差,可否提供每次来料螺丝孔坐标校正方法,或不同来料位置固定方法,视觉传感器可以矫正么?除了视觉传感器还有别的方法…

    SIMATIC S7-1200 2017年11月1日
  • S7-1200下载硬件配置问题

    用step7 basic下载硬件配置时出现“修改测试功能已激活,拒绝下载硬件配置”,但没找到有什么激活了啊,谁知道是什么问题啊? 最佳答案 按F1键使用帮助功能看看,不行…

    SIMATIC S7-1200 2017年11月18日
  • S71200集成模拟量

    S71200集成的两路模拟量可以接收热电偶信号输入吗? 最佳答案 可以通过转换模块将热电偶信号转换为电压信号即可~~ 提问者对于答案的评价:谢谢 专家置评 已阅,最佳答案正确。

    SIMATIC S7-1200 2017年11月12日
  • 1200选型问题

    有个小项目准备用1200做CPU ,大概30个DO 50个DI ,还要和410进行通讯.我的设想用CPU自带PN口进行通讯,选1214C的CPU(看手…

    SIMATIC S7-1200 2017年6月12日
  • S7-1200的全局DB数据块的简单问题

    创建了一个DB数据块,数据块放了一个数组。我想通过外部输入改变DB数据块的数组中的一个值,不知道怎么改。 图片说明:       最佳答案 …

    2017年7月26日
  • S71200 MODBUS通讯指令问题

    S1200通讯口接多个modbus仪表,多次调用MB_MASTER指令读取仪表参数时是不是每调用一个MB_MASTER指令都需要调用一次MB_COMM_LOAD指令还是只调用一次M…

    SIMATIC S7-1200 2017年8月24日
  • 官网有S7-1200的编程软件下载吗?

    我需要这套软件,好像还有一个中文汉化包,谁能告诉我这个下地址?谢谢了 问题补充:这个要授权吗?是不是跟S7-200一样免费啊? 最佳答案 1、S7-1200 的编程软件&…

    SIMATIC S7-1200 2017年11月19日
  • 怎样的方法才能把这三个CPU放在同一网络进行实验学习呢

    怎样的方法才能把这三个CPU放在同一网络进行实验学习呢1,S7_200 SMART ST20  2, 6ES7 314_…

    SIMATIC S7-1200 2017年6月4日
  • PLC查表程序

    跪求PLC查表例程或程序,即如何编写建立一个表格,然后调用表格里的相应数据的例程,谢谢! 最佳答案 1-定义UDT1(UDT_Cols),定义列结构2-创建DB1(DB_Table…

    2017年10月31日