黑龙江西门子S7-1200PLC代理经销优势价格

西门子S7-200 PLC的寻址方式
指令中如何提供操作数或操作数地址,处理器根据指令中给出的地址信息来寻找物理地址的方式称为寻址方式。S7-200 PLC的寻址方式有立即寻址、直接寻址、间接寻址。
1.立即寻址
指令直接给出操作数,操作数紧跟着操作码,在取出指令的同时也就取出了操作数,立即有操作数可用,这种方式称为立即操作数寻址或立即寻址。立即寻址方式可用来提供常数、设置初始值等,常数值可分为字节、字、双字型等数据。CPU以二进制方式存储所有常数,指令中可用十进制、十六进制、ASCII码或浮点数形式来表示,其书写格式见表2-28。
2.直接寻址
指令直接给出操作数的地址的寻址方式称为直接寻址。直接在指令中使用存储器或寄存器的元件名称和地址编号,根据这个地址可以立即找到该数据。必须注意的是,操作数的地址应符合规定的格式,指令中数据类型应与指令标识符相匹配。
不同数据长度的寻址指令举例如下。
位寻址:AQ5.5
字节寻址:OB= VB33,LB21
字寻址:MOVW AC0,AQW2
双字寻址:MOVD AC1,VD200
3.间接寻址
间接寻址方式是指数据存放在存储器或寄存器中,在指令中只出现所需数据所在单元的内存地址的地址,即指令给出的是存放操作数地址的存储单元的地址,此存储单元地址的地址又称为地址指针,这种间接寻址方式与计算机的间接寻址方式相同。间接寻址在处理内存中地址连续的数据时非常方便,而且可以缩短程序生成的代码的长度,使编程更加灵活。S7-200 CPU以变量存储器(V)、局部存储器(L)或累加器(AC)中的内容值为地址进行间接寻址。可间接寻址的存储器区域有:I、Q、V、M、S、T(仅当前值)、C(仅当前值);不可以对独立的位值或模拟量进行间接寻址。

(1)建立指针。间接寻址前,应先建立指针,指针为双字长,指针中存放存储单元的32位物理地址,以指针中的内容值为地址就可以进行间接寻址。只能使用变量存储器(V)、局部存储器(L)或累加器(AC1、AC2、AC3)作为指针,ACO不能用作间接寻址的指针。建立指针时,将存储器的某个地址移人另一存储器或累加器中作为指针;建立指针后,就可把从指针处取出的数值传送到指令输出操作数指定的位置。例如:执行指令MOVD&VB200,AC1把地址“VB200”送入AC1,建立指针。这里的地址“VB200”要用32位表示,它只是一个直接地址编号,指针中的内容为双字型数据,因而必须使用双字传送指令(MOVD)。指令操作数“&VB200”中的“&”符号,与单元编号组合表示所对应存储器的32位物理地址,而不是存储器中的内容。
(2)用指针间接存取数据。将指针中的内容值作为地址存取数据,使用指针可存取字节、字、双字型的数据,执行指令MOVW*AC1,AC0将指针中的内容值(VB200)作为地址,由于指令MOVW的标识符是“W”,因而指令操作数的数据长度应是字型,把地址VB200、VB201处两个字节的内容(1234)传送到AC0。指针处的值(即1234)为字型数据,如图2-53所示,操作数(AC1)前面的“*”号表示该操作数(AC1)为指针。

图2-53 使用指针间接寻址
(3)修改指针。处理连续存储数据时,可以通过修改指针很容易地存取其他相临的数据,简单的数学运算指令,如加法、减法、自增和自减等指令可以用来修改指针。在S7-200 PLC中,指针中的内容为双字型数据,应使用双字指令来修改指针值。如图2-54所示,用两次自增指令INCD AC1将AC1指针中的值(VB200)修改为VB202后,指针即指向新地址VB202。执行指令MOVW *AC1,AC0就可在变量存储器(V)中连续地存取数据,将VB202、VB203处两个字节的数据(5678)传送到AC0。

图2-54 存取字数据值时指针的修改
修改指针值时,应根据存取的数据长度来进行调整。若对字节进行存取,则指针值加1(或减1);若对字(或对定时器、计数器的当前值)进行存取,则指针值加2(或减2);若对双字进行存取,则指针值加4(或减4)。图2-54中存取的数据长度是字型数据,因而指针值加2。
高速计数器用来累计高速脉冲信号,当高速脉冲信号的频率比CPU扫描速率快时,必须要用高速计数器计数。高速计数器的当前值寄存器为32位,读取高速计数器当前值应以双字(32位)来寻址,高速计数器的当前值为只读值。

高速计数器地址格式为:HC[高速计数器号],如HC1。
CPU 226模块高速计数器的有效地址范围为:HC(0~5)。
累加器是用来暂时存储计算中间值的存储器,也可向子程序传递参数或返回参数。S7-200 CPU提供了4个32位累加器(AC0、AC1、AC2、AC3)。
累加器的地址格式为:AC[累加器号],如AC0。
CPU 226模块累加器的有效地址范围为:AC(0~3)。
累加器是可读写单元,可以按字节、字、双字存取累加器中的数值,由指令标识符决定存取数据的长度。例如,MOV_B指令存取累加器中的字节,DECW指令存取累加器中的字,INCD指令存取累加器中的双字。按字节、字存取时,累加器只存取存储器中数据的低8位、低16位;以双字存取时,则存取存储器的32位。
CPU运算的相关结果存放在模拟量输出映像寄存器(AQ)中,供D/A转换器将1个字长(16位)的数字量转换为模拟量,以驱动外部模拟量控制的设备,模拟量输出映像寄存器(AQ)中的数字量为只写值。
模拟量输出映像寄存器(AQ)的地址格式为:AQW[起始字节地址],如AQW60。
模拟量输出映像寄存器(AQ)的地址必须使用偶数字节地址来表示,如AQW0、AQW2、AQW4等。
CPU 226模块模拟量输出映像寄存器(AQ)的有效地址范围为:AQW(0~62)。
模拟量输入模块将外部输入的模拟信号的模拟量转换成1个字长(16位)的数字量,存放在模拟量输入映像寄存器(AI)中,供CPU运算处理,模拟量输入(AI)的值为只读值。
模拟量输入映像寄存器(AI)的地址格式为:AIW[起始字节地址],如AIW60。
模拟量输入映像寄存器(AI)的地址必须使用偶数字节地址来表示,如AIW0、AIW2、AIW4等。
CPU 226模块模拟量输入映像寄存器(AI)的有效地址的范围为:AIW(0~62)。

黑龙江西门子S7-1200PLC代理经销优势价格