在PLC编程时,字节或多字节的变量一般支持绝对地址寻址(比如,IW0、MD4等)。要想正确寻址,则必须要搞清楚寻址的规则。目前常见的规则有两种:字节寻址和字寻址。下图清晰地表达了两种规则的编号情况:
注:n是字节编号。
上图中,字节、字、双字都是长度单位,并不是变量类型,比如:一个实数变量的长度是4字节,要占用2个字或者1个双字的连续存储空间。一个整型变量的长度是2字节,要占用1个字的连续存储空间。
在字节寻址的情况下,以第一个字节编号为变量的地址编号,例如,MB1,MW1,MD1起始地址相同,长度不同。
字节寻址的优点:便于寻址,后缀数字即是首地址。
字节寻址的缺点:同一编号类型(比如W、或者D,下同)内存地址间存在重叠的可能,使用时需要自行空出相应区域。比如两个实数长度为4个字节,如果没有注意变量的长度,分别分配了MD0(占用MB0-MB3)、MD2(占用MB2-MB5)的地址,则他们存在两个字节的重叠(MB2、MB3),当我们修改一个变量时,另外一个变量就会跟着变化。如果分配了MD0、MD4的地址,则不存在问题。
在字寻址的情况下,字节、字、双字等分别编号,例如ID1的首地址与W2、IB4相同。存在倍数换算。
字寻址的优点:同一编号类型内存地址互相独立,互不影响,可以放心使用。上面两个实数的例子里,在这儿就不存在问题,因为,MD0占用MB0-MB3、MD2占用MB4-MB7。
字寻址的缺点:使用的时候,不同编号类型内存地址需要进行换算。如果同时用到MW、MD,就要考虑他们之间是否可能重叠了。
CODESYS系的PLC、日系PLC、施耐德、MODBUS、通讯等是字寻址。而西门子是典型的字节寻址。
2023年10月25日