您当前的位置:五五电子网电子知识plc技术PLC入门siemens PLC寻址方法 正文
siemens PLC寻址方法

siemens PLC寻址方法

点击数:7348 次   录入时间:03-04 12:01:16   整理:http://www.55dianzi.com   PLC入门
FONT-SIZE: 10.5pt; mso-spacerun: 'yes'">存储器间接寻址指针,是作为指定的存储区域的确切数值单元来运用的。也就是说,指针不包含区域标识,它只是指明了一个数值。因此,要在 [MD100]前加上区域标识如: MDBIQL等,还要加上存储区尺寸大小如:XBWD等。在加存储区域和大小标识时,要考虑累加器加载指令L不能对位地址操作,因此,只能指定非位的地址。

为了对比下面的寄存器寻址方式,我们这里,修改为:L MD[MD100]。并假定MD100=8Hex,同时我们也假定MD1=85000018Hex

当把MD100这个双字作为一个双字指针运用时,其存储值的0-18bit将会按照双字指针的结构Byte.bit来重新“翻译”,“翻译”的结果才是指针指向的地址,因而MD100中的8Hex=1000B=1.0,所以下面的语句:

L MD[MD100]

LAR1

经过“翻译”就是:

L MD1

LAR1

前面我们已经假定了MD1=85000018,同样道理,MD1作为指针使用时,对0-18bit应该经过Byte.bit结构的“翻译”,由于是传送给AR地址寄存器,还要对24-31bit进行区域寻址“翻译”。这样,我们得出LAR1中最终的值=DIX3.0。就是说,我们在地址寄存器AR1中存储了一个指针,它指向DIX3.0

-----------------------------

L MD100

LAR1

这段语句,是直接把MD100的值传送给AR,当然也要经过“翻译”,结果AR1=1.0。就是说,我们在地址寄存器AR1中存储了一个指针,它指向1.0,这是由MD100直接赋值的。

似乎,两段语句,只是赋值给AR1的结果不同而已,其实不然。我们事先假定的值是考虑到对比的关系,特意指定的。如果MD100=CHex的呢?

对于前一段,由于CHex=1100,其0-3bit为非0,程序将立即出错,无法执行。(因为没有MD1.4这种地址!!)

后一段AR1的值经过翻译以后,等于1.4,程序能正常执行。


本文关键字:siemens  PLC入门plc技术 - PLC入门