对于那些过程复杂、控制参数较多的工业控制系统来说,这一点尤为重要。西门子plc S7-300的寻址方法为在plc自动控制系统设计建设中实现上述功能提供了一种简单可行的途径。西门子plc S7-300编程语言的基本单元是一个语句,语句的组成是一条指令。每条指令有两部分:一部分是操作码,另一部分是操作数。操作码指示指令的功能是什么,操作数指示操作码需要数据的位置。所谓的寻址是找到操作数的过程。
西门子plc S7-300 CPU有三种类型的寻址:
1.立即寻址
在指令中,如果操作码后面的操作数是操作码所需的特定数据,则指令的寻址模式称为立即寻址, 例如:在转移指令中:MOV IN OUT——操作码" MOV”的表示指令的功能将IN中的数据传输到OUT,其中IN——源操作数,OUT——目标操作数。 如果指令是:MOVD 1204 VD400 功能:将十进制数1204传送到VD200,其中12004是源操作数。由于此操作数的值已在指令中,因此您无需再次查找。这个操作数是即时的。该寻址模式是立即寻址模式。指令中未给出目标操作数的值。仅给出要传输的地址VD400。该操作数的寻址模式是直接寻址。
2.直接寻址
在指令中,如果操作码后面的操作数以操作数的地址形式出现,则指令的寻址模式称为直接寻址, 如:MOVD VD400 VD500 功能:将VD400中的双字数据传输到VD500
3.间接寻址
在指令中,如果操作码后面的操作数在操作数的地址处显示为地址,则指令的寻址模式称为间接寻址。 如:MOVD 1204 * VD400 * VD400是指存储12.4地址的地址。 如果VB0存储在VD400中,则VD0的地址为1204,该指令的功能是:将十进制数1204传送到VD0地址。
西门子S7-300plc间接寻址方法
1.区域内间接寻址
当它为0时,指针的最高位(位31)为0。以下是该地区间接寻址的例子: L P#4.0; //将间接寻址的指针加载到累加器1中 LAR1;//将累加器1的内容发送给AR1, AR1中的M [AR1,P#2.3]; //P#4.0加上偏移P#2.3,在M6.3上运行 =Q [AR1,P#0.2] ;//逻辑运算的结果发送到Q4.2,P#4.0 + P#0.2=P#4.2 L MW [AR1,P#19.0] ;//将MW26加载到累加器1中,它等于AR1中的地址值P#4.0加上逗号后的地址偏移量。
2.区域之间的间接寻址
当x=1时,指针的最高位(位31)是区域之间的间接寻址,以下是区域之间间接寻址的示例: L P#M 6.0 //将M6.0的双字地址加载到累加器1中 LAR1 //将累加器1的内容发送给AR1 L W [AR1,P#20.0] //将MW26的内容传送到累加器1 对应于P#M6.0的二进制数是2#1000 0011 0000 0000 0000 0000 0011 0000.由于地址指针P#M6.0已经包含区域信息(rrr=2#011表示M区域),第三个说明“LW [AR1,P#50.0]”不需要再次使用地址标识符M,当使用地址指针读取或写入字,字或双字时,指针中小数点右边的位号必须为0,否则将发生错误。