使用指令FieldRead(通过索引变量从数组中读取数值)和FieldWrite(通过索引变量向数组中写数值),可以实现间接寻址。
生成一个名为“数据块1”’的全局数据块,在数据块中生成名为“数组1”的数组Ar-ray[1..5]of Int,其元素的数据类型为Int,元素的下标为1~5。这两条指令没有列入指令列表和高级指令列表。打开程序编辑器,将收藏夹中的空逻辑框插入程序。单击其中红色的“??”,打开下拉式列表框,选中列表框底部的指令FieldWrite或FieldRead。
单击生成的指令框中的“???”,用下拉式列表设置要写入或读取的数据类型为Int(见图4-92)。两条指令的参数MEMBER的实参必须是数组的第一个元素“数据块1”.数组1[1]。指令的输入参数索引值“INDEX”是要读写的数组中的元素的下标,数据类型为DInt(双整数)。参数“VALUE”是要写入数组元素的值或要读取的数组元素的值。
图4-92 间接寻址的程序
将程序下载到CPU,将CPU切换到RUN模式。打开OB1,单击工具栏上的按钮,启动程序状态监视功能。(www.xing528.com)
用右键单击指令FieldWrite的输入参数INDEX的实参MD10,执行出现的快捷菜单中的命令“修改”→“修改值”,用出现的“修改”对话框将MD10的值修改为3。启用数据块1的监视功能(见图4-93),可以看到输入参数VALUE的值25被写入下标为3的数组元素“数据块1”.数组1[3]。修改INDEX的值,VALUE的值将被写入INDEX对应的数组元素。
用上述方法设置指令FieldRead的输入参数INDEX的值为3,输出参数VALUE的实参MW20中是读取的下标为3的数组元素“数据块1”.数组1[3]的值。
图4-93 在线监控的数据块1
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。