西门子S7-200 PLC指令简介及实例分析 下载本文

(1)掌握移位寄存器指令的应用方法

(2)用移位寄存器指令实现天塔之光控制系统 (3)掌握PLC的编程技巧和程序调试的方法 2. 控制要求

如图5-15所示的天塔的灯光,可以用PLC控制灯光的闪耀移位及时序的变化等。控制要求如下:按起动按钮,L12→L11→L10→L8→L1→L1、L2、L9→L1、L5、L8→L1、L4、L7→L1、L3、L6→L1→L2、L3、L4、L5→L6、L7、L8、L9→L1、L2、L6→L1、L3、L7→L1、L4、L8→L1、L5、L9→L1→L2、L3、L4、L5→L6、L7、L8、L9→L12→L11→L10 ……循环下去,直至按下停止按钮。

3. I/O分配

输入 输出

起动按钮:I0.0 L1:Q0.0 L4 Q0.3 L7:Q0.6 L10 Q1.1

停止按钮:I0.1 L2:Q0.1 L5 Q0.4 L8:Q0.7 L11 Q1.2

L3:Q0.2 L6 Q0.5 L9:Q1.0

L12 Q1.3

4. 程序设计

分析:根据灯光闪亮移位,分为19步,因此可以指定一个19位的移位寄存器(M10.1~M10.7,M11.0~M11.7,M12.0~M12.3),移位寄存器的每一位对应一步。而对于输出,如:L1(Q0.0)分别在“5、6、7、8、9、10、13、14、15、16、17”步时被点亮,即其对应的移位寄存器位“M10.5、M10.6、M10.7、M11.0、M11.1、M11.2、M11.5、M11.6、M12.0、M12.1”置位为1时,Q0.0置位为1,所以需要将这些位所对应的常开触点并联后输出Q0.0,以此类推其它的输出。参考程序如图5-16所示。

5-16天塔之光控制梯形图

图5-16 天塔之光控制梯形图(续)

5. 输入、调试程序并运行程序

6. 思考题

如果控制要求改为L12→L11→L10→L8→L1→L2、L3、L4、L5→L6、L7、L8、L9,循环如何修改程序。输入程序,调试观察现象。

5.2 算术运算、逻辑运算指令

算术运算指令包括加、减、乘、除运算和数学函数变换,逻辑运算包括逻辑与或非指令等。

5.2.1 算术运算指令

1. 整数与双整数加减法指令

整数加法(ADD-I)和减法(SUB-I)指令是:使能输入有效时,将两个16位符号整数相加或相减,并产生一个16位的结果输出到OUT。

双整数加法(ADD-D)和减法(SUB-D)指令是:使能输入有效时,将两个32位符号整数相加或相减,并产生一个32位结果输出到OUT。

整数与双整数加减法指令格式如表5-14所示。

表5-14 整数与双整数加减法指令格式

LAD MOVW IN1,OUT -I IN2,0UT IN1-IN2=OUT MOVD IN1,OUT +D IN2,0UT IN1+IN2=OUT STL 功能 MOVW IN1,OUT +I IN2,0UT IN1+IN2=OUT MOVD IN1,OUT +D IN2,0UT IN1-IN2=OUT IN1/IN2:VW, IW, QW, MW, SW, SMW, T, C, IN1/IN2: VD, ID, QD, MD, SMD, SD, LD, AC, HC, 操作数及数据类型 AC, LW, AIW, 常量, *VD, *LD, *AC AC, *VD, *LD, *AC IN/OUT数据类型:整数 ENO=0的错误条件 常量, *VD, *LD, *AC *LD, *AC IN/OUT数据类型:双整数 OUT:VW, IW, QW, MW, SW, SMW, T, C, LW, OUT:VD, ID, QD, MD, SMD, SD, LD, AC, *VD, 0006 间接地址, SM4.3 运行时间, SM1.1 溢出 说明: (1)当IN1、IN2和OUT操作数的地址不同时,在STL指令中,首先用数据传送指令将IN1中的数值送入OUT,然后再执行加、减运算即:OUT+IN2=OUT、OUT-IN2=OUT。为了节省内存,在整数加法的梯形图指令中,可以指定IN1或IN2=OUT,这样,可以不用数据传送指令。如指定INI=OUT,则语句表指令为:+I IN2,OUT;如指定IN2=OUT,则语句表指令为:+I IN1,OUT。在整数减法的梯形图指令中,可以指定IN1=OUT,则语句表指令为:-I IN2,OUT。这个原则适用于所有的算术运算指令,且乘法和加法对应,减法和除法对应。

(2)整数与双整数加减法指令影响算术标志位SM1.0(零标志位),SM1.1(溢出标志位)和SM1.2(负数标志位)。

【例5-11】求5000加400的和,5000在数据存储器VW200中,结果放入AC0。程序如图5-17所示。

LD I0.0

MOVW VW200, AC0 //VW200→AC0

+I +400, AC0 //VW200+400=AC0

图5-17 例5-11题图

2. 整数乘除法指令

整数乘法指令(MUL-I)是:使能输入有效时,将两个16位符号整数相乘,并产生一个16位积,从OUT指定的存储单元输出。

整数除法指令(DIV-I)是:使能输入有效时,将两个16位符号整数相除,并产生一个16位商,从OUT指定的存储单元输出,不保留余数。如果输出结果大于一个字,则溢出位SM1.1置位为1。

双整数乘法指令(MUL-D):使能输入有效时,将两个32位符号整数相乘,并产生一个32位乘积,从OUT指定的存储单元输出。

双整数除法指令(DIV-D):使能输入有效时,将两个32位整数相除,并产生一个32位商,从OUT指定的存储单元输出,不保留余数。

整数乘法产生双整数指令(MUL):使能输入有效时,将两个16位整数相乘,得出一个32位乘积,从OUT指定的存储单元输出。

整数除法产生双整数指令(DIV):使能输入有效时,将两个16位整数相除,得出一个32位结果,从OUT指定的存储单元输出。其中高16位放余数,低16位放商。

整数乘除法指令格式如表5-15所示。

整数双整数乘除法指令操作数及数据类型和加减运算的相同。 整数乘法除法产生双整数指令的操作数:IN1/IN2:VW, IW, QW, MW, SW, SMW, T, C, LW, AC, AIW, 常量, *VD, *LD, *AC。数据类型:整数。

OUT:VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC 。数据类型:双整数。 使ENO = 0的错误条件:0006(间接地址),SM1.1(溢出),SM1.3(除数为0)。 对标志位的影响:SM1.0(零标志位),SM1.1(溢出),SM1.2(负数),SM1.3(被0除)。

表5-15 整数乘除法指令格式

LAD STL 功能 MOVW IN1,OUT MOVW IN1,OUT MOVD IN1,OUT MOVD IN1,OUT MOVW IN1,OUT MOVW IN1,OUT *I IN2,0UT IN1*IN2=OUT /I IN2,0UT *D IN2,0UT /D IN2,0UT MUL IN2,OUT IN1/IN2=OUT IN1*IN2=OUT IN1/IN2=OUT IN1*IN2=OUT DIV IN2,OUT IN1/IN2=OUT 【例5-12】乘除法指令应用举例,程序如图5-18所示。

LD I0.0 MUL AC1 VD100 DIV VW10 VD200