S7-1200间接寻址指令的应用精华  

[ 2011/3/14 10:32:48 | Author: 廖老师 ]

   S7-1200的间接寻址需要通过数据块中的数组来实现。指令FieldRead通过索引(又称为下标)变量从数组中读取数值,指令FieldWrite 通过索引变量向数组中写数值,使用这两条指令可以实现间接寻址。
   索引变量是间接寻址中的地址指针,它的值是要读写的数组元素的索引值。地址指针就像收音机调台的指针,改变指针的位置,指针指向不同电台。改变地址指针中的索引值,指针“指向”数组不同的元素。间接寻址的优点是可以在程序处理期间,通过改变指针的值动态地修改指令中的地址。
   首先生成一个名为“数据块1”的全局数据块DB2,在数据块中生成名为“数组1”的数组Array[1..10] of Int,其元素的数据类型为Int。
   这两条指令没有列入指令列表和高级指令列表,编程时将收藏夹中的空逻辑框插入程序,点击其中红色的“??”,打开下拉式列表框,可以看到列表框底部的指令FieldWrite或FieldRead。点击生成的指令框中的“???”,用列表设置要写入或读取的数据类型为Int(见下图)。两条指令的参数MEMBER的实参必须是数组的第一个元素“数据块1”.数组1[1]。
   指令的输入参数索引值“INDEX”是要读写的数组中的元素的下标,数据类型为DINT(双整数)。参数“VALUE”是要写入数组元素的值或要读取的数组元素的值。
   下图中的FieldWrite指令将常数25写入数组1中的元素“数组1[3]”。FieldRead指令读取数组元素“数组1[3]”的值,将它保存到MW20。改变INDEX的值,可以读写别的数组元素的值。


回复:S7-1200间接寻址指令的应用

[ 2016/4/11 23:29:28 | Author: (匿名游客) ]

说的挺好的哦

回复:S7-1200间接寻址指令的应用

[ 2015/9/24 9:24:50 | Author: (匿名游客) ]
引用 (匿名游客) 的评论楼下老兄说的&取地址,其实原来v5.5里面可以用P#,但是现在portal中看帮助文件说,P#仍然在S7-1500/300/400上保留,但S7-120……

我在Portal V13中试过,确实不能用P#直接寻址了,提示错误。用符号就没问题。

回复:S7-1200间接寻址指令的应用

[ 2015/9/10 15:14:19 | Author: (匿名游客) ]

楼下老兄说的&取地址,其实原来v5.5里面可以用P#,但是现在portal中看帮助文件说,P#仍然在S7-1500/300/400上保留,但S7-1200好像阉割了这个功能。

我看了文档,发现S7-1200没办法传递地址,不知道是否理解正确,求教

回复:S7-1200间接寻址指令的应用

[ 2014/5/25 21:59:41 | Author: (匿名游客) ]
那个第一次来的,不是你没看懂,而是他根本就没说明白。S7-1200是西门子的新一代小型PLC,编程软件改进不小,但是硬件设计一塌糊涂。编程软件虽然相比于STEP7进步不小,但是德国人常常把简单事情复杂化的毛病照样继续存在,这个间接寻址功能就是一例。S7-200(美国人开发的)中用一个&符号就解决了,这里搞这么复杂!

回复:S7-1200间接寻址指令的应用

[ 2011/11/9 10:04:44 | Author: 高低温循环装置(游客) ]
第一次来到贵blog.太专业了.没看懂.呵呵
 

中华工控网 | 联系我们 | 工控论坛首页 | 工控博客首页 | 博客注册 | 博客登陆

工控博客管理联系邮箱:工控博客服务邮箱

中华工控网 © Copyright 2013. All rights reserved.