S7-300/400指令有:装入与传送指令、比较指令、算术运算指令、字逻辑运算指令、移位指令、逻辑控制指令、程序控制指令、主控指令等。
1.装入与传送指令(不能用于梯形图编程)
装入传送指令实现了各种数据存储区的数据交换,其凭借累加器来完成。装入指令标识符:L,传送指令标识符:T。
s7-300PLC有2个32位的累加器,当执行装入指令(L)时,首先将累加器1中原有的数据移入累加器2中,累加器2中的原有内容被覆盖,然后将数据装入累加器1中;当执行传送指令(T)时,将累加器1中的数据写入目标存储区中,而累加器1中的数据保持不变。
L指令加载数,累加器值如下图显示:
s7-400PLC有4个32位累加器,当执行装入指令(L)时,首先将累加器3的移入累加器4,累加器2的移入累加器3,累加器1的移入累加器2,然后将数据装入累加器1中;当执行传送指令(T)时,将累加器1中的数据写入目标存储区中,而累加器1中的数据保持不变。
L、T指令使用示例如下图:
L、T指令使用示例如下:
L IB0 //将IB0字节的数装入累加器1 T QB0 //将累加器1的数送入QB0字节中这段代码实现了将IB第0字节的数据实时反应到QB第0字节上,即IB0.0为1,QB0.0也为1,仿真器输出如下:
2. 状态字与累加器1之间的装入与传送指令
L STW(将状态字装入累加器1):将状态字装入累加器1中,指令的执行与状态位无关,而且对状态字没有任何影响。
T STW(将累加器1的内容传送到状态字):使用T STW指令可以将累加器1的位0~8传送到状态字的相应位,指令的执行与状态位无关。
3.LAR1 将操作数的内容装入地址寄存器AR1
4.TAR1 将地址寄存器1的内容传送到操作数
5.TAR2 将地址寄存器2的内容传送到操作数(操作数可以是累加器1、存储双字(MD)、本地数据双字(LD)、数据双字(DBD)、背景数据双字(DID))
6.CAR 交换地址寄存器1和地址寄存器2的内容,使用CAR指令可以 交换地址寄存器AR1和地址寄存器AR2的内容,指令不需要指定操作数。指令的执行与状态位无关,并且对状态字没有任何影响。
7.LC(定时器/计数器装载)指令
使用LC指令可以在累加器1的内容保存到累加器2中之前,将指定定时器字中当前时间值和时基以BCD码(0~999)格式装入到累加器1中,或将指定计数器的当前计数值以BCD码(0~999)格式装入到累加器1中。指令格式为: LC<定时器/计数器>
LC T3 //将定时器3的当前定时值和时基以BCD码格式装入累加器1低字 LC C10 //将计数器C10的计数值以BCD码格式装入累加器1低字
注:上述1~7中的指令只有STL形式的,LAD没有相关的指令表示
8.MOVE指令
该指令为功能框形式的传送指令,能够复制字节、字或双字数据对象。应用中IN和OUT端操作数可以是常数、I、Q、M、D、L等类型,但是在宽度上必须匹配。