西门子S7-300 直接寻址和间接寻址学习看不懂?
寻址的大概意思就是存储器的地址使用。
你首先需要了解西门子PLC的存储器有哪些。
一般用的有M存储区,V存储区,SM特殊存储区等等
他们都是单独的存储区。
还有需要了解位(bit),字节(BYTE),字(WORD),双字(DW)。
最简单的举例说明,Q存储区是PLC输出用的。
它有8个位,分别为Q0.0----Q0.7
这里的Q0.0到Q0.7,这个8个位,就是直接寻址。
间接寻址是需要指针来完成的。
说道间接寻址,还有一个必须要了解,就是“绝对地址”
比如VB0,它就是带表V存储区的,第0个字节,包含VB0.0---VB0.7。
在PLC中,每个地址都对应一个绝对地址。它是不可改变的,是PLC内部设定的。
比如VB0的“绝对地址”就是16#08000000
要使用间接寻址,首先你要建立一个“指针”
指针的意思大概就是把一个地址比如VB0,把它的“绝对地址”用MOV指令传送到比如VD100(指针必须用双字表示,32个位,4个字节,2个字)
&VB0就相当于VB0的绝对地址,VD100就是指针,VD100里面存储的不是VB0的值,而是它的“对绝对值”16#08000000。
如何把数值传送出去呢?
就需要
字节传送指令MOV_B来完成。
*VD100,它表示的就是VB0内部的数值。
这个就是间接寻址。
最后总结一下,我们一般用的都是直接寻址,间接寻址用的不多(反正我基本上不用)
比如起保停程序。
这里的I0.0 I0.1 Q0.0 ,用的都是直接寻址。
希望能帮到你 ^ _ *!