西门子PLC模块代理商|六安
S7-200直接寻址和间接寻址
①直接寻址
S7系列PLC的编程指令支持直接寻址与间接寻址两种寻址方式。直接寻址通过直接给出信号进行,它可以用于所有的编程元件(1、Q、M、SM、V、L、S、C、AC、HC等)。
【例3-5】 利用直接寻址的方式,将标志存储器MB10的内容一次性在2上输出的程序如图3-18所示。
图中的MOV_B在S7-200PLC中为字节移动指令,EN为启动条件,IN端为需要移动的数据地址,()UT端为移动目标位置地址,SM0.0为PLC内部的恒"1"信号。
②间接寻址
S7-200的间接寻址方式中,操作数*的是操作对象所存放的地址,而不具体指明操作对象。因此,间接寻址方式需要通过“地址指针”进行。所谓"地址指针"是间接寻址时专门用来存储地址的寄存器。在S7-200PLC中,建立地址指针应注意以下几点。
a.只能用变量V、局部变量L或累加器ACl、AC2、AC3作为地址指针(AC0不可使用)。b.建立地址指针,必须用双字的形式将间接寻址需要的存储器地址移动到地址指针中:在存储器地址前加符号“&.”进行标记,“&.”表明移动的只是地址,而不是该存储器的具体内容。
c.间接寻址时,应在地址指针的加"*"标记,表示该操作数为间接寻址的地址指针。d.允许利用地址指针访问的存储器为I、Q、V、M、S以及定时器T、计数器C的当前值,但模拟量输入/输出AI/AQ、高速计数器HC、特殊标志SM以及局部变量L不能通过地址指针进行访问。
e.S7-200的间接寻址不可以用于二进制位信号、高速计数器HC、局部变量L,如不可以对I0.2、QO.2、HCl、LW2等使用间接寻址。
【例3-6】 以AC1(累加器1)作为地址指针,将变量存储器VB200~VB203中4字节数据(12345678)移动到标志寄存器MB0~MB3中的程序如图3-19所示。
该程序分为4段:
1段利用双字移动指令MOVD(在梯形图中的符号为MOV_DW)将地址VB200移动到地址指针AC1中;
2段利用字移动指令 MOVW,将地址指针 AC1 中地址 VB200 所存储的内容(VB200、VD201中的值1234)移动到MW0;
3段将地址指针中的地址加2(AC1的地址变为VB202);
4段将地址指针AC1中地址 W202中所存储的内容(VB202、VB203中的值5678)移动到MW2。
【例3-7】以LD10(局部变量10)作为指针,将由偏移量存储器VD1004所确定的变量存储器VW中的内容移动到W1900的程序如图3-20所示。
该程序分为3段:
1段利用双字移动指令MOVD(在梯形图中的符号为MOV_DW)将地址VB0移动到地址指针LD10中;
2段将指针中的地址WB0加上偏移量存储器VD1004的内容(LD10的地址变为VB0 偏移量),确定移动目标;
3段将指针LD10中地址“VB0 偏移量”中所存储的内容移动到VW1900.
本例中如果VD1004中的内容为1000,则变量存储器VW1000中的内容将被复制到VW1900 中;若改变VD1004中的内容为1100,则变量存储器W1100中的内容将被复制到VW1900中。
浔之漫智控技术(上海)有限公司专注于西门子等