plc寻址,在编什么程序时会用到?怎么更好地理解它?

冯璟嵩


你这个问题问的不够严谨。

说一点我个人关于寻址的看法吧,PLC中的寻址应该说可以分为直接寻址和间接寻址。

直接寻址就是对最长见的变量存储区中的位,字节,字等变量的直接读取和引用,此时这个地址是一个非常明确准确的地址。而间接寻址,就像是一个存储空间中装着一个指示牌,这个指示牌是指向CPU知道的一个明确准确的地址的,或者说指示牌是指向一个直接寻址时候的地址的。

说起来是有点绕的,还是看一个图片吧:

这个图片是西门子200PLC编程时候,使用到直接寻址和间接寻址的情况,西门子300PLC中间接寻址还存在16位/32位存储器的间接寻址以及64位指针的寻址,更加不好说清楚,所以这里还是以西门子200的来说,说起来比较简单一点!

这个图片中把MB0的内容传送到VB0,这MB0和VB0都是PLC中具体的存储区域,对这些预设的存储区域地址的直接读写,就可以称为直接寻址!

而&MB0其实就相当于创建了一个间接寻址用的指针,并且把这个指针装在VD4中,这样VD4中的内容不是MB0中的值,而是MB0在CPU寻址时候的机器码地址,监控的时候是一串16进制的数据,我之前写过一些关于西门子200指针的文章和问答,有兴趣可以去看一下。

VD4中不是装着MB0中的值,而是装着一个指向某个地址的指针,如果想知道指针指向的地址中的值到底是多少,那么就可以用*VD4去把MB0中的值给取出来。--这两段话就是间接寻址的大概意思了,间接寻址就引入一个指针的概念,存放的是指针指向的地址而非内容!

以上简单的说了直接寻址和间接寻址的不同,那么引入间接寻址在什么时候会用到呢?

也简单的说一下,间接寻址其实主要是利用了指针,如果程序中想办法将指针的值+1,那么指向的地址也就自动增加了,这样如果和循环指令配合使用,循环多少次就可以将一段连续的地址通过指针的变化,而将对应的地址全部快速的读取出来。--这应该是使用指针的一个最明显且常用的优点。


就说这么多了,其实这些问题,我在之前的问答和文章也都有例说过,谢谢!


控制研究控


随时可以用到啊,比如你接了一个按钮,用的输入点位,程序内部常开,常闭,就是按位寻址。我想你问得应该说按字节、字、双字寻址吧。也随时可用到,当然简单的启保停电路用不到,比较复杂一点儿的程序就用到了。


分享到:


相關文章: