西门子S7-300/400 PLC累加器装载、传送编程

1.s7-300/400的累加器装载、传送
在s7-300/400中,数据的装载、传送与移动可以使用不同的指令来实现。装载、传送在梯形图中也只能以指令表的形式进行显示。
(1)数据装载
s7-300/400的数据装载可以使用专用的装载指令l(load)来执行装载操作,一般情况下是直接将指定的数据移动到累加器l中,累加器1原有的内容自动移动到累加器2中。
装载数据的实际长度决定于指令中所指定的数据源,如:使用指令l mb**时,数据长度为l字节;使用指令l mw**时,数据长度为2字节(字):使用指令lmd**时,数据长度为4字节(双字)。
当装载数据的长度为1字节或2字节(字)时,数据被存储在累加器l的低字节或低字上,累加器l的高字节或高字位自动填入0。
s7-300/400的装载操作可以使用直接数据,如:
l +15:装载十进制常数i5:
l 1# 5366:装载双字长常数5366:
l b#16# a7:装载1字节十六进制数a7;
l w#16# fd32:装载2字节十六进制数fd32;
l dw#16# fd32 a453:装载4字节十六进制数fd32 a453;
l 2# 0011 1110—1100一1111:装载2字节二进制数0011 1110 1100 1111;
l 2.5378 e +12:装载32位浮点数2.5378 e +12;
l 、xyzw':装载ascii字符xyzw;
l tod#12:30:3.02:装载时间值12时30分3.02秒;
l d#2006-11-25:装载日期值2006年11月25日:
l c#50:装载计数器值50;
l t# 1m20s:装载定时器值1分20秒:
l s5t#20s:装载s5格式的定时器值20秒;
l p# m5.6:装载二进制位地址m5.6。
也可以使用直接寻址的地址,如:
l ibo:装载输入字节ibo:
l iwo:装载输入字iwo;
l ido:装载输入双字ido;
l t5:装载定时器t5的当前时间值;
lc t5:以bcd格式装载定时器t5的当前时间值;
l c5:装载计数器c5的当前计数值;
lc c5:以bcd格式装载计数器c5的当前计数值。
还可以使用间接寻址,如:
l ib[ld10]:装载由ld10确定的输入字节ib;
l iw[ar1,p#8.0】:装载由地址寄存器ar1与指针p#8.0确定的输入字iw。
有关间接寻址的内容可以参见第8章。
(2)数据传送
s7-300/400的数据传送可以使用专用的传送指令t(transfer)来执行传送操作,可以直接将累加器1的内容移动到指定的位置,累加器l的内容保持不变。
传送数据的实际长度同样决定于指令中所指定的目标存储器的数据长度,可以为1字节,2字节(字)、4字节(双字)数据。
当数据长度为1字节或2字节(字)时,累加器1的低字节或低字被传送。
当数据传送的目标为直接输出pq时,plc的输出映像内容被同时修改。
s7-300/400的传送操作可以使用直接寻址的地址,如:
t mbo:累加器l的低字节内容传送到标志字节mbo;
t qwo:累加器1的低16位内容传送到输出字qwo;
t dbd20:累加器l的32位内容传送到数据块的d20。
也可以使用间接寻址,如:
t qb[ld10]:累加器1的低字节内容传送到由ld10确定的输出字节qb;
t mw[ar1,p# 8.0】:累加器l的低16位内容传送到由地址寄存器ar1与指针p#8.0确定的标志字mw。
有关间接寻址的内容可以参见第8章。
2.s7-300/400的地址寄存器的装载、传送
在s7-300/400中,装载也可以对地址寄存器进行。但是,地址寄存器的装载,应以地址寄存器ar1、ar2作为移动的目标位置;地址寄存器的传送,应以地址寄存器ar1、ar2作为源数据。因此,相应的装载指令为lar1、lar2;传送指令为tar1、tar2。应注意使用的指令与累加器装载、传送之间的区别,如:
larl ld10:将局部变量ld10装入地址寄存器arl;
larl:将累加器l的内容装入地址寄存器arl;
larl p# m2.0:将二进制地址指针m2.0装入地址寄存器arl;
larl p# 2.0:将二进制地址指针2.0装入地址寄存器arl;
tar1:将地址寄存器ar1的内容传送到累加器1;
tarl ld10:将地址寄存器ar1的内容传送到ld10;
car:交换寄存器ar1、ar2的内容。
3.s7-300/400的数据移动
s7-300/400的数据移动通过指令move实现,格式与s7-200相似,如图10-4.3所示。
源数据或目标存储位置可以是常数、存储器地址、间接寻址存储器等:字长可以是字节b、字w、双字d、浮点数r等。程序中的源数据与目标存储位置的字长必须相同。