要搞明白楼主的问题,必须明确下面几个概念:
1、在PLC中,任何软性的内容,都是用数字来表达的。数据是数字,指令是数字,地址也是数字。这三个基本元素都是数字,所以,一切都是数字。用数字指令操作数字地址中的数字数据进行数学运算,然后将处理后的数字结果存入数字地址中,这就是PLC反反复复不停在干的事情。
由此可知,当你在PLC中看到一个数字值,那么这个数字有可能是数据,有可能是地址,甚至有可能是指令。
2、关于指针。指针是神马?其实我们可以把指针理解成一个windows快捷方式。快捷方式本身是一个数据内容(如楼主范例中的AC1),快捷方式所指向的地址则是另一个数据内容(如VB200),快捷方式所指向的地址中的内容则又是另外一回事(如楼主范例中的3106)。所以指针除开本身之外,其属性通常具备两重含义。一重是关于其所指向的地址的描述,另一重就是他所指向的地址中的对象内容。
MOVD &VB100,VD1000 //为VB100建立指针。VD1000成为首字节为VB100的某个数据的指针。
3、经过上面两点解释,楼主该明白了吧。
第一步AC1里面的值(134217928)是VB200这个地址本身的数学表达形式,这就是传说中的门牌号。
第二步AC1里面的值(3106),是VW200这个地址当中所保存的数据内容。
第一个MOV指令是将VB200的地址值(16#80000C8=134217928)传递给AC1,使AC1的内容=134217928,第二个MOV指令是将AC1内容为地址的存储器(即VW200)的内容(3106)传递给VW300.故运行完毕后,VW300=3106.
该程序是在运行监视下的截图,故能在2个MOV传递指令的输入与输出端显示出对应的数值。
还要说明的是:从存储器的数据表中知:VB200=12 VB201=34 为什么VW200=3106?
解: ∵ VB200=12 =16#0C、VB201=34=16#22,
∴VW200=16#C22 = 3106
即VW200的原数据=10进制数3106.