PLC功能指令PPT课件_第1页
PLC功能指令PPT课件_第2页
PLC功能指令PPT课件_第3页
PLC功能指令PPT课件_第4页
PLC功能指令PPT课件_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 2梯形图中的指令梯形图中的指令 条件输入指令必须通过触点电路条件输入指令必须通过触点电路连接到左侧母线上。连接到左侧母线上。不需要条件的指令必不需要条件的指令必须须直接连接在左侧母线上。直接连接在左侧母线上。 3能流指示器能流指示器 必须解决开路问题,网络才能成功编译。必须解决开路问题,网络才能成功编译。ENO端的可选能流指示器端的可选能流指示器表示可表示可将其他梯形图元件附加到该位置。将其他梯形图元件附加到该位置。它不影响编译。它不影响编译。 第2页/共136页第1页/共136页4.2 比较指令比较指令比较指令: :是将两个操作数按指定的条件比较,操作数可以是整数,也是将两个操作数按指定的

2、条件比较,操作数可以是整数,也可以可以 是实数是实数. .在在LADLAD中中: :用用带参数和运算符的触点带参数和运算符的触点表示比较指令,当比较结果为表示比较指令,当比较结果为真真时,时,比较指令的比较指令的触点就闭合触点就闭合,否则断开。,否则断开。在在STLSTL中:当比较结果为真时,比较结果将堆栈顶部置中:当比较结果为真时,比较结果将堆栈顶部置1 1。 比较触点可以装入,也可以串、并联。比较触点可以装入,也可以串、并联。 比较指令为比较指令为上、下限控制上、下限控制提供了极大的方便提供了极大的方便, ,如:设置炉膛压力报警如:设置炉膛压力报警信号信号 比较指令如下页表所示比较指令如下

3、页表所示:第3页/共136页第2页/共136页“xxxx”表示比较运算符:表示比较运算符:= = 等于等于 、 小于、小于、大于、大于、= = 小于等于、小于等于、 = = 大于等于、大于等于、不等于不等于“”表示操作数表示操作数IN1IN1,IN2IN2的数据类型及范围:的数据类型及范围: B B(ByteByte):字节比较(无符号整数)。:字节比较(无符号整数)。I I(INTINT)/ W/ W(WordWord):整数比较,(有符号整数):整数比较,(有符号整数)注意:注意:LADLAD中用中用“I I”,STLSTL中用中用“W W”。DWDW(Double WordDouble

4、Word):双字的比较(有符号整数),:双字的比较(有符号整数), 如:如:OD= VD24 MD1OD= VD24 MD1R R(RealReal):实数的比较(有符号的双字浮点数,仅限于:实数的比较(有符号的双字浮点数,仅限于CPU214CPU214以上)以上)S S(StringString): :字符串比较(用来比较两个字符串的字符串比较(用来比较两个字符串的ASCASC码字符是否相等)码字符是否相等)N1N1,N2N2操作数的类型操作数的类型包括:包括:I I,Q Q,M M,SMSM,V V,S S,L L,ACAC,VDVD,LDLD,常数。,常数。 第4页/共136页第3页/共

5、136页1字节、整数、双整数和实数比较指令 比较触点中间的B、I、D、R、S分别表示无符号字节、有符号整数、有符号双整数、有符号实数和字符串比较。满足比较关系式给出的条件时,比较指令对应的触点接通。字符串比较指令的比较条件“x”只有=和。 整数和双整数比较指令比较两个有符号数。IN1在触点的上面,IN2在触点下面。 第5页/共136页第4页/共136页 【例4-1】 用接通延时定时器和比较指令组成占空比可调的脉冲发生器。 M0.2和T33组成脉冲发生器,T33的当前值按锯齿波变化。比较指令用来产生脉冲宽度可调的方波,Q0.0为OFF的时间取决于比较指令第2个操作数的值。 2字符串比较指令 字符

6、串比较指令比较ASCII码字符串相等或不相等。常数字符串应是比较触点上面的参数,或比较指令中的第一个参数。第6页/共136页第5页/共136页例:调整模拟调节电位器例:调整模拟调节电位器0 0,以改变,以改变SMB28SMB28字节数值。当字节数值。当SMB28SMB28数值数值小于或等于小于或等于5050时,时,Q0.0Q0.0输出,其状态指示灯打开;当输出,其状态指示灯打开;当SMB28SMB28数值小数值小于或等于于或等于150150时,时,Q0.1Q0.1输出,状态指示灯打开。输出,状态指示灯打开。LD I0.0LPSAB= SMB28, 150= Q0.1第7页/共136页第6页/共

7、136页例2 2:若VW0 +10000VW0 +10000为真,Q0.2Q0.2有输出。 程序常被用于显示不同的数据类型。还可以比较存储在可编程存中的两个数值(VW0 VW100VW0 VW100)。 整数字比较举例:整数字比较举例:I(INT)/ W(Word):整数比较,(有符号整数)注意:LAD中用“I”,STL中用“W”LD I0.3LPSAW VW0, +10000= Q0.2LPPAR VD6, 5.001E-006= Q0.4LRDAD0N0为正,即从最低位向最高位移位为正,即从最低位向最高位移位第27页/共136页第26页/共136页下图中的下图中的14位移位寄存器由位移位寄

8、存器由V30.0 V31.5组成,在组成,在I0.3的上升沿,的上升沿,I0.4的值的值从移位寄存器的最低位从移位寄存器的最低位V30.0移入,寄存器中的各位左移一位,最高位移入,寄存器中的各位左移一位,最高位V31.5的值被移到溢出标志位的值被移到溢出标志位SM1.1。 N为为14时,时,I0.4的值从最高位的值从最高位V31.5移移入,寄存器中的各位入,寄存器中的各位右右移一位,从最低位移一位,从最低位V30.0移到溢出标志位移到溢出标志位SM1.1。第28页/共136页第27页/共136页例:例:最低位最低位S_BITS_BIT最高位的计算方法:最高位的计算方法: MSB=MSB=【|N

9、|-1 +(S_BIT|N|-1 +(S_BIT的位号的位号) )】/8/8最高位的字节号:最高位的字节号: MSBMSB的商的商+ + S_BITS_BIT的字节号的字节号最高位的位号:最高位的位号: MSBMSB的余数的余数I0.0I0.3首次移位首次移位该题:该题: S_BIT=V33.4 N=14S_BIT=V33.4 N=14最高位:最高位: MSB=(14-1 +4)/8=17/8=2MSB=(14-1 +4)/8=17/8=2余余1 1最高位的字节号:最高位的字节号:2+33=352+33=35最高位的位号:最高位的位号:1 1故最高位为:故最高位为:V35.1V35.1 移位寄

10、存器的组成:移位寄存器的组成:V33.4V33.4V33.7V33.7 V34.0 V34.0V34.7V34.7,V35.0 V35.0 和和V35.1V35.1 如图所示:如图所示:移位前:移位前:溢出(溢出(SM1.1)I0.3XV33.410101100011001V34.0V34.7V35.0V35.1第29页/共136页第28页/共136页4.5 数据转换指令数据转换指令 1标准转换指令标准转换指令 除了解码、编码指令之外的除了解码、编码指令之外的10条指令属于标准转换指令。输入参数条指令属于标准转换指令。输入参数IN指定的指定的数据转换后保存到输出参数数据转换后保存到输出参数OU

11、T指定的地址。指定的地址。BCD码与整数相互转换的指令码与整数相互转换的指令中中,整数的有效范围为整数的有效范围为09999。 如果如果转换后的数值超出输出的允许范围,溢出标志位转换后的数值超出输出的允许范围,溢出标志位SM1.1被置为被置为ON。 2段码指令段码指令 七段显示器的七段显示器的D0D6段分别对应于段分别对应于段码指令段码指令输出字节的第输出字节的第0位第位第6位,某位,某段应亮时输出字节中对应的位为段应亮时输出字节中对应的位为1,反之为,反之为0。段码指令很少使用。段码指令很少使用。第30页/共136页第29页/共136页3计算程序中的数据转换计算程序中的数据转换下图将下图将1

12、01英寸英寸转换为以转换为以mm为单位的双整数值。为单位的双整数值。第31页/共136页第30页/共136页 4解码指令与编码指令解码指令与编码指令 解码指令解码指令DECO根据输入字节根据输入字节IN的最低的最低4位表示的位号,将输出字位表示的位号,将输出字OUT对应对应的位置为的位置为1,输出字的其他位均为,输出字的其他位均为0。16#0010=2#0000 0000 0001 0000。 编码指令编码指令ENCO将输入字将输入字IN中的最低有效位(为中的最低有效位(为1的位的位)的位编号写入输出)的位编号写入输出字节字节OUT的最低的最低4位。位。16#0014=0000 0000 00

13、01 0100。 存储器填充指令存储器填充指令FILL用输入参数用输入参数IN指定的字值填充从地址指定的字值填充从地址OUT开始的开始的N个个连续的字连续的字。第32页/共136页第31页/共136页4.6 实时时钟指令实时时钟指令 1用编程软件读取与设置实时时钟的日期和时间用编程软件读取与设置实时时钟的日期和时间 用菜单命令用菜单命令“PLC”“实时时钟实时时钟”打开打开“CPU时钟操作对话框时钟操作对话框”。可以。可以读取读取PC、PLC的时钟,修改和下载日期时间。的时钟,修改和下载日期时间。 2读取实时时钟指令读取实时时钟指令READ_RTC 从从CPU的实时时钟读取当前日期和时间的实时

14、时钟读取当前日期和时间,8字节时间缓冲区依次存放年的字节时间缓冲区依次存放年的低低2位、月、日、时、分、秒、位、月、日、时、分、秒、0和星期的代码,和星期的代码,星期日为星期日为1。日期和时间的日期和时间的数据类型为字节型数据类型为字节型BCD码。码。 3设置实时时钟指令设置实时时钟指令SET_RTC将将8字节时间日期值写入字节时间日期值写入CPU的实时时钟。的实时时钟。第33页/共136页第32页/共136页【例例4-2】用实时时钟定时控制设备。用实时时钟定时控制设备。LDSM0.0TODR VB70/小时分钟值在小时分钟值在VW73LDW= VW73, VW78/VW78中是起始时、分值中

15、是起始时、分值AWVW73, VW80/VW80中是结束时、分值中是结束时、分值=Q0.2/在设置的时间范围内,在设置的时间范围内, Q0.2为为1状态状态第34页/共136页第33页/共136页4.7 数学运算指令数学运算指令4.7.1 整数运算指令整数运算指令 1四则运算指令四则运算指令 梯形图梯形图IN1 + IN2 = OUT,IN1IN2 = OUT,IN1 * IN2 = OUT,IN1 / IN2 = OUT 语句表语句表IN1+OUT = OUT,OUTIN1 = OUT,IN1*OUT = OUT,OUT/IN1=OUT 指令影响指令影响SM1.0(零标志)、(零标志)、SM

16、1.1(溢出标志)、(溢出标志)、SM1.2(负数标志)和(负数标志)和SM1.3(除数为(除数为0)。)。MUL将两个将两个16位整数相乘,产生一个位整数相乘,产生一个32位乘积。位乘积。DIV指令将两个指令将两个16位位 整数相除,运算结果的高整数相除,运算结果的高16位为余数,低位为余数,低16位为商。位为商。 第35页/共136页第34页/共136页ADD/SUBADD/SUB指令影响指令影响算术标志位算术标志位SM1.0SM1.0(零标志位),(零标志位),SM1.1SM1.1(溢出标志位)(溢出标志位)和和SM1.2SM1.2(负数标志位)。(负数标志位)。 加、减指令加、减指令整

17、数加法(整数加法(ADD-IADD-I)和减法()和减法(SUB-ISUB-I)指令是:)指令是:EN=1EN=1时,将两个时,将两个1616位符位符号整数相加或相减,并产生一个号整数相加或相减,并产生一个1616位的结果输出到位的结果输出到OUTOUT。双整数加法(双整数加法(ADD-DADD-D)和减法()和减法(SUB-DSUB-D)指令是:)指令是: EN=1EN=1时,将两个时,将两个3232位位符号整数相加或相减,并产生一个符号整数相加或相减,并产生一个3232位结果输出到位结果输出到OUTOUT。 第36页/共136页第35页/共136页说明:说明:1 1、当、当IN1IN1、I

18、N2IN2和和OUTOUT操作数的操作数的地址不同地址不同时,时,在在STLSTL指令中,首先用数据指令中,首先用数据传送指令传送指令将将IN1IN1中的数值送入中的数值送入OUTOUT,然后再执行加、减运,然后再执行加、减运算即:算即:OUT+IN2=OUTOUT+IN2=OUT、 OUT-IN2=OUT OUT-IN2=OUT 例如:右图例如:右图2 2、为了节省内存,在整数加法的梯形图指令中:、为了节省内存,在整数加法的梯形图指令中: 可以直接指定可以直接指定IN1=OUTIN1=OUT(即二者设置为同一地址)就可不用数据传送指令(即二者设置为同一地址)就可不用数据传送指令 则则STL中

19、用一条指令中用一条指令(+I IN2+I IN2,OUTOUT)即可即可 同理:在整数减法的梯形图指令中,可以直接指定同理:在整数减法的梯形图指令中,可以直接指定IN1=OUTIN1=OUT(即二者设置即二者设置 为同一地址)为同一地址),则,则STLSTL中用一条指令(中用一条指令(-I IN2-I IN2,OUTOUT)即可)即可注意:注意:该原则适用于所有的算术运算指令该原则适用于所有的算术运算指令 加(乘)法指令还可以指定加(乘)法指令还可以指定IN2=OUTIN2=OUT,同样,同样 STLSTL中只要(中只要(+I IN1+I IN1,OUTOUT)即可)即可 但减(除)法指令中若

20、指定但减(除)法指令中若指定IN2=OUTIN2=OUT则则STLSTL中除减法指令外还要添加中除减法指令外还要添加“取反和取反和加加1 1”操作操作 另外:还有实数加(另外:还有实数加(+R+R)、减()、减(-R-R) 指令指令 LD I0.0MOVW +13,VW0+I +17,VW0第37页/共136页第36页/共136页 【例【例4-3】设计程序】设计程序,用模拟电位器用模拟电位器设置设置定时器定时器T37的预设值为的预设值为520s。 SMB28中中电位器的位置电位器的位置对应的数字对应的数字N为为0255。时间设定值为。时间设定值为150N/255+50。用累加器来存放操作数和运

21、算的中间结果比较方便。用累加器来存放操作数和运算的中间结果比较方便。2递增与递减指令递增与递减指令梯形图中梯形图中IN + 1 = OUT,语句表中,语句表中OUT+1=OUT第38页/共136页第37页/共136页4.7.2 浮点数函数运算指令浮点数函数运算指令 1三角函数指令三角函数指令 输入值是以弧度为单位的浮点数,角度值乘以输入值是以弧度为单位的浮点数,角度值乘以/180转换为弧度值。转换为弧度值。 2自然对数和自然指数指令自然对数和自然指数指令 3平方根指令将正实数开平方平方根指令将正实数开平方第39页/共136页第38页/共136页4.8 逻辑运算指令逻辑运算指令 1取反取反指令指

22、令 取反取反指令将二进制数逐位取反,各位由指令将二进制数逐位取反,各位由0变为变为1,由,由1变为变为0。第40页/共136页第39页/共136页 2逻辑运算指令逻辑运算指令 字节、字、双字字节、字、双字“与与”运算时运算时,如果两个操作数的同一位均为如果两个操作数的同一位均为1,运算结,运算结果果的的对应位为对应位为1,否则为,否则为0。“或或”运算时如果两个操作数的同一位均为运算时如果两个操作数的同一位均为0,运算结果的对应位为运算结果的对应位为0,否则为,否则为1。“异或异或”(Exclusive Or)运算时如果两)运算时如果两个操作数的同一位不同,运算结果的对应位为个操作数的同一位不

23、同,运算结果的对应位为1,否则为,否则为0。第41页/共136页第40页/共136页 3逻辑运算指令逻辑运算指令应用举例应用举例 用字节逻辑用字节逻辑“或或”运算将运算将QB0的第的第24位置为位置为1,其余各位保持不变,其余各位保持不变。 QB0的某一位与的某一位与1作作“或或”运算,运算结果为运算,运算结果为1,与,与0作作“或或”运算,运算运算,运算结果不变。结果不变。16#1C的的第第24位位为为1。 IW2的低的低12位位用来用来读取读取3位拨码开关的位拨码开关的BCD码,码,IW2的高的高4位另作他用。位另作他用。 16#0FFF的最高的最高4位二进制数为位二进制数为0,低,低12

24、位为位为1。与与IW2作作“与与”运算后,运算后, VW2的低的低12位与位与IW2的低的低12位的值相同,位的值相同,VW2的高的高4位为位为0。第42页/共136页第41页/共136页 表只对字型数据存储,表的格式例如表4.21所示。 4.9 表操作指令第43页/共136页第42页/共136页1表存数指令 ATT,表存数指令。 该指令在梯形图中有2个数据输入端:DATA为数值输入,指出将被存储的字型数据或其地址;TBL表格的首地址,用以指明被访问的表格。当使能输入有效时,将输入字型数据添加到指定的表格中。 表存数特点: 表存数时,新存的数据添加在表中最后一个数据的后面。每向表中存一个数据,

25、实际填表数EC会自动加1。第44页/共136页第43页/共136页表表4.22指令指令ATT执行结果执行结果 返回本节返回本节第45页/共136页第44页/共136页2表取数指令 A. FIFO,先进先出指令 指令格式:FIFOTBL, DATA例:FIFOVW100, AC0如果仍是对表4.21存取,则指令执行情况如表4.23所示。当使能输入有效时,从TBL指明的表中移出第一个字型数据并将其输出到DATA所指定的字单元。FIFO表取数特点:取数时,移出的数据总是最先进入表中的数据。每次从表中移出一个数据,剩余数据依次上移一个字单元位置,同时实际填表数EC会自动减1。第46页/共136页第45

26、页/共136页表表4.23指令指令FIFO执行结果执行结果 第47页/共136页第46页/共136页B. LIFO,后进先出指令 当使能输入有效时,从TBL指明的表中移出最后一个字型数据并将其输出到DATA所指定的字单元。LIFO表取数特点:取数时,移出的数据是最后进入表中的数据。每次从表中取出一个数据,剩余数据位置保持不变,实际填表数EC会自动减1。指令格式:LIFOTBL, DATA例:LIFOVW100, AC0如果仍是对表4.21存取,则指令执行情况如表4.24所示。第48页/共136页第47页/共136页表表4.24指令指令LIFO执行结果执行结果返回本节返回本节第49页/共136页

27、第48页/共136页3 表查找指令 FND?,表查找指令。通过表查找指令可以从字型数表中找出符合条件的数据所在的表中数据编号,编号范围为099。在梯形图中有4个数据输入端:TBL表格的首地址,用以指明被访问的表格;PTN是用来描述查表条件时进行比较的数据;CMD是比较运算符“?”的编码,它是一个14的数值,分别代表=、运算符;INDX用来指定表中符合查找条件的数据的地址。第50页/共136页第49页/共136页表表4.25表查找指令执行结果表查找指令执行结果返回本节返回本节第51页/共136页第50页/共136页4 填充指令指令格式:FILLFILLIN, OUT, NIN, OUT, N(填

28、充指令)例:FILLFILL10, VW100, 1210, VW100, 12本条指令的执行结果是:将数据1010填充到从VW100VW100到VW122VW122共1212个字存储单元FILL, 存储器填充指令。使能输入有效时,用字型输入数据IN填充从输出OUT所指的单元开始的N个字存储单元。填充指令只对字型数据进行处理,N值为字节型,可取从1255的整数。指令的执行不影响的特殊存储器位。使能流输出ENO断开的出错条件:SM4.3(运行时间);0006(间接寻址);0091(操作数超界)。第52页/共136页第51页/共136页4.10 中断程序与中断指令中断功能是用中断程序及时处理中断事

29、件,中断事件与用户程序的执行时序无关,中断功能是用中断程序及时处理中断事件,中断事件与用户程序的执行时序无关, 不能事先预测中断事件何时发生。不能事先预测中断事件何时发生。特点:特点:中断程序由用户编写;但不是由用户程序调用,而是在中断事件发生时由操作系统调用;中断程序由用户编写;但不是由用户程序调用,而是在中断事件发生时由操作系统调用;中断程序应尽可能短,中断程序应尽可能短,目的:实现对中断事件的快速响应目的:实现对中断事件的快速响应(若过长会导致程序的扫描周期就难以判断,可能会引发其它事件)(若过长会导致程序的扫描周期就难以判断,可能会引发其它事件)系统中需要由用户程序把中断程序与中断事件

30、连接起来并且开放系统中断后才能进入系统中需要由用户程序把中断程序与中断事件连接起来并且开放系统中断后才能进入等待中断事件触发中断程序执行的状态;可用指令取消中断程序与中断事件的连接或等待中断事件触发中断程序执行的状态;可用指令取消中断程序与中断事件的连接或禁止全部中断。这需要相应的中断指令来完成。禁止全部中断。这需要相应的中断指令来完成。为了便于识别,系统给每个中断源都分配一个编号,称为为了便于识别,系统给每个中断源都分配一个编号,称为中断事件号中断事件号。S7-200S7-200系列可编程控制器最多有系列可编程控制器最多有3434个中断源,分为三大类:个中断源,分为三大类: 通信中断、输入通

31、信中断、输入/ /输出中断和时基中断输出中断和时基中断中断事件:又称中断源中断事件:又称中断源 即发出中断请求的事件即发出中断请求的事件 参看教材:参看教材:P109P1092 2、中断事件与中断指令、中断事件与中断指令第53页/共136页第52页/共136页 在中断事件发生时由操作系统立即调用中断程序。中断程序是用户编写在中断事件发生时由操作系统立即调用中断程序。中断程序是用户编写的。中断程序不能再被中断,中断程序越短越好。的。中断程序不能再被中断,中断程序越短越好。 中断事件号见表。中断事件号见表。4.10.2 中断指令中断指令 1中断允许指令与中断禁止指令中断允许指令与中断禁止指令 中断

32、允许指令中断允许指令ENI允许处理所有被连接的中断事件。允许处理所有被连接的中断事件。 禁止中断指令禁止中断指令DISI禁止处理所有中断事件。进入禁止处理所有中断事件。进入RUN模式时自动禁止中模式时自动禁止中断断,可以通过执行开中断指令,允许所有中断事件;执行全局关中断指令,可以通过执行开中断指令,允许所有中断事件;执行全局关中断指令会禁止处理中断即使之不能被激活,但是允许现用中断事件将继续排队等会禁止处理中断即使之不能被激活,但是允许现用中断事件将继续排队等候。候。第54页/共136页第53页/共136页取消某中断事件(取消某中断事件(EVNTEVNT)与所有中断程序之间的连)与所有中断程

33、序之间的连接,并禁用该中断事件。接,并禁用该中断事件。注意:注意:一个中断事件只能连接一个中断程序,一个中断事件只能连接一个中断程序,但多个中断事件可以调用一个中断程序。但多个中断事件可以调用一个中断程序。将中断事件(将中断事件(EVNTEVNT)与中断程序号码()与中断程序号码(INTINT)相连接,并启)相连接,并启用这个用这个单一单一中断事件。中断事件。中断事件由中断事件号指定;中断事件由中断事件号指定;中断程序由中断程序号指定。中断程序由中断程序号指定。局部性不同不同CPU EVNT取值范围:取值范围: 2中断连接指令与中断分离指令第55页/共136页第54页/共136页中断程序:是用

34、户为处理中断事件而事先编制的程序是用户为处理中断事件而事先编制的程序编写时可以用中断程序入口点处的中断程序标号来识别每个中断程序编写时可以用中断程序入口点处的中断程序标号来识别每个中断程序中断程序必须由以下三部分组成:中断程序必须由以下三部分组成:即中断程序的名称,他在建立中断程序时生成即中断程序的名称,他在建立中断程序时生成中断程序指令是中断程序的实际有效部分,对中断事件的中断程序指令是中断程序的实际有效部分,对中断事件的处理就处理就是由它们来完成的,在中断程序中可调用一个嵌套子程序是由它们来完成的,在中断程序中可调用一个嵌套子程序用来退出中断程序并安全返回主程序。该指令位于中用来退出中断程

35、序并安全返回主程序。该指令位于中断程序断程序的结尾,必须要写的(但若用编程软件时程序会自动的结尾,必须要写的(但若用编程软件时程序会自动添加)添加)中断程序标号:中断程序标号:中断程序指令:中断程序指令:无条件返回指令:无条件返回指令: RETI但在中断程序内部可使用:中断程序有条件返回指令(但在中断程序内部可使用:中断程序有条件返回指令(CRETI)来退出中断程序)来退出中断程序第56页/共136页第55页/共136页3中断程序的执行中断程序的执行 CPU自动调用中断程序需要满足下列条件:自动调用中断程序需要满足下列条件: 1)执行了全局中断允许指令)执行了全局中断允许指令ENI。 2)执行

36、了中断事件对应的)执行了中断事件对应的ATCH指令。指令。 3)出现对应的中断事件。)出现对应的中断事件。 4中断优先级与中断队列溢出中断优先级与中断队列溢出 中断优先级分组:通信(最高优先级)、中断优先级分组:通信(最高优先级)、I/O中断和定时中断。中断和定时中断。在优先级在优先级范围内,范围内,CPU按照先来先服务的原则处理中断按照先来先服务的原则处理中断。4.10.3 中断程序举例中断程序举例 1通信端口中断通信端口中断 在自由端口模式,接收消息完成、发送消息完成和接收一个字符均可以产在自由端口模式,接收消息完成、发送消息完成和接收一个字符均可以产生中断事件。生中断事件。 2I/O中断

37、中断 I/O中断包括中断包括I0.0I0.3的上升沿、下降沿中断;高速计数器的当前值等于的上升沿、下降沿中断;高速计数器的当前值等于设定值、计数方向改变和计数器外部复位中断。设定值、计数方向改变和计数器外部复位中断。第57页/共136页第56页/共136页 【例例4-9】在在I0.0的上升沿通过中断使的上升沿通过中断使Q0.0立即置位。在立即置位。在I0.1的下降沿通过的下降沿通过中断使中断使Q0.0立即复位。立即复位。/主程序主程序 OB1LD SM0.1 / 第一次扫描时第一次扫描时ATCH INT_0, 0 / I0.0上升沿时执行上升沿时执行0号中断程序号中断程序ATCH INT_1,

38、 3 / I0.1下降沿时执行下降沿时执行1号中断程序号中断程序ENI / 允许全局中断允许全局中断LD SM5.0/如果检测到如果检测到 I/O 错误错误DTCH 0/禁用禁用I0.0的上升沿中断的上升沿中断DTCH 3/禁用禁用I0.1的下降沿中断的下降沿中断 /中断程序中断程序0(INT_0)LD SM0.0 / 该位总是为该位总是为ONSIQ0.0, 1/ 使使Q0.0立即置位立即置位TODR VB10/读实时时钟读实时时钟/中断程序中断程序1(INT_1)LD SM0.0 / 该位总是为该位总是为ONRIQ0.0, 1/ 使使Q0.0立即复位立即复位TODR VB20/读实时时钟读实

39、时时钟第58页/共136页第57页/共136页中断程序举例:中断程序举例:编写由编写由I0.1I0.1的上升沿产生的中断事件的初始化程序的上升沿产生的中断事件的初始化程序LD SM0.1 /LD SM0.1 /首次扫描时,首次扫描时,ATCH INT_0ATCH INT_0,2 /2 /将将INT_0 INT_0 和和EVNT2EVNT2连接连接ENI /ENI /并全局启用中断并全局启用中断LD SM5.0 /LD SM5.0 /如果检测到如果检测到I/OI/O错误,错误,DTCH 2 /DTCH 2 /禁用用于禁用用于I0.1I0.1的上升沿中断的上升沿中断LD M5.0 / LD M5.

40、0 / 当当M5.0=1M5.0=1时时DISI /DISI /禁用所有的中断禁用所有的中断RUNRUN模式下关闭所有中断模式下关闭所有中断 ATCHATCH和和 DTCH: DTCH: 连接或断开某一个具体的中断连接或断开某一个具体的中断(而(而ENIENI和和DISIDISI是全局变量,将所有中断都打开或关断)是全局变量,将所有中断都打开或关断)改错题!改错题!第59页/共136页第58页/共136页 3定时中断定时中断 定时中断定时中断0、1的周期为的周期为1255ms,分别写入,分别写入SMB34和和SMB35。每当定时。每当定时时间到时,执行相应的定时中断程序。时间到时,执行相应的定

41、时中断程序。 【例例4-10】用定时中断用定时中断0实现周期为实现周期为2s的高精度定时。的高精度定时。/ 主程序主程序 OB1LD SM0.1 / 第一次扫描时第一次扫描时MOVB 0, VB10 / 将中断次数计数器清将中断次数计数器清0MOVB 250, SMB34 / 设置定时中断设置定时中断0的中断时间间隔为的中断时间间隔为250msATCH INT_0, 10 / 指定产生定时中断指定产生定时中断0时执行时执行0号中断程序号中断程序ENI / 允许全局中断允许全局中断 / 中断程序中断程序INT_0, 每隔每隔250ms中断一次中断一次LD SM0.0 / 该位总是为该位总是为ON

42、INCBVB10/ 中断次数计数器加中断次数计数器加1LDB=8, VB10 / 如果中断了如果中断了8次(次(2s)MOVB 0, VB10 / 将中断次数计数器清将中断次数计数器清0INCB QB0 / 每每2s将将QB0加加1 第60页/共136页第59页/共136页 4. 定时器定时器T32/T96中断中断 【例例4-11】使用使用T32中断控制中断控制8位节日彩灯,每位节日彩灯,每2.5s左移一位。左移一位。1ms定时器定时器T32定时时间的中断事件号为定时时间的中断事件号为21,最长定时时间为,最长定时时间为32.767s。/主程序主程序 OB1LD SM0.1 /第一次扫描时第一

43、次扫描时MOVB 16#F, QB0/设置彩灯的初始状态,最低设置彩灯的初始状态,最低4位的灯被点亮位的灯被点亮ATCH INT_0, 21 /指定指定T32定时时间到时执行中断程序定时时间到时执行中断程序INT_0ENI /允许全局中断允许全局中断LDNM0.0/T32和和M0.0组成脉冲发生器组成脉冲发生器TONT32, 2500/T32 的预设值为的预设值为2500msLD T32=M0.0/中断程序中断程序INT_0LD SM0.0 RLB QB0, 1/彩灯左移彩灯左移1位位第61页/共136页第60页/共136页编程完成采样工作,要求每编程完成采样工作,要求每10ms10ms采样一

44、次采样一次定时中断0的时间间隔寄存器第62页/共136页第61页/共136页4.11 高速计数器与高速脉冲输出指令普通计数器指令的计数速度受扫描周期的影响,它是按照顺序扫描方式工作,普通计数器指令的计数速度受扫描周期的影响,它是按照顺序扫描方式工作,在每在每个扫描周期中对计数脉冲个扫描周期中对计数脉冲只能只能进行一次计数累加,故外部输入信号的速率通进行一次计数累加,故外部输入信号的速率通常较低常较低而对比而对比CPUCPU扫描频率高的脉冲输入,扫描频率高的脉冲输入,信号就会产生丢失信号就会产生丢失,就不能满足控制要求了。就不能满足控制要求了。为此,为此,SIMATIC S7-200SIMATI

45、C S7-200系列系列PLCPLC设计了高速计数功能(设计了高速计数功能(HSCHSC),其计数自动进行不受扫),其计数自动进行不受扫描周期的影响,最高计数频率取决于描周期的影响,最高计数频率取决于CPUCPU的类型,的类型,CPU22xCPU22x系列最高计数频率为系列最高计数频率为30KHz30KHz,用于累计比用于累计比CPUCPU扫描速率高得多的脉冲输入扫描速率高得多的脉冲输入, ,利用产生中断事件,执行中断程序,完成利用产生中断事件,执行中断程序,完成预定的操作。预定的操作。高速计数器在定位控制领域中有重要的应用价值。用高速计数器可实现高速运动的精高速计数器在定位控制领域中有重要的

46、应用价值。用高速计数器可实现高速运动的精确控制。确控制。SIMATIC S7-200 CPU22xSIMATIC S7-200 CPU22x系列系列PLCPLC还设有高速脉冲输出,输出频率可达还设有高速脉冲输出,输出频率可达20KHz20KHz,用于,用于PTOPTO(输出一个频率可调,占空比为(输出一个频率可调,占空比为50%50%的脉冲)和的脉冲)和PWMPWM(输出占空比可调的脉冲),高速(输出占空比可调的脉冲),高速脉冲输出的功能可用于对电动机进行速度控制、脉冲输出的功能可用于对电动机进行速度控制、位置控制及控制变频器使电机调速。位置控制及控制变频器使电机调速。使用高速计数器功能,需使

47、用高速计数器指令来完成执行工作使用高速计数器功能,需使用高速计数器指令来完成执行工作第63页/共136页第62页/共136页高速计数器指令及有关特殊存储器:高速计数器指令及有关特殊存储器:HDEF:HDEF:为指定的高速计数器(为指定的高速计数器(HSCHSC)设置工作模式)设置工作模式(MODE)(MODE)。每个。每个HSCHSC只只能用一条能用一条HDEFHDEF可可 用用SM0.1SM0.1在第一个扫描调用包含在第一个扫描调用包含HDEFHDEF指令的子程序来定义指令的子程序来定义HSC.HSC.HSC: HSC: 用来启动用来启动( (即激活即激活) )编号为编号为N N的的HSC.

48、HSC.高速计数器指令有两条:高速计数器指令有两条: 定义高速计数器指令定义高速计数器指令HDEF和执行高速计数器指令和执行高速计数器指令HSC第64页/共136页第63页/共136页主机型号主机型号CPU221CPU221CPU222CPU222CPU224CPU224CPU226CPU226可用可用HSCHSC数量数量4 44 46 66 6HSCHSC编号范围编号范围HC0,HC3,HC0,HC3,HC4,HC5HC4,HC5HC0,HC3HC0,HC3HC4,HC5HC4,HC5HC0HC0HC5HC5HC0HC0HC5HC5各主机的高速计数器数量及其编号各主机的高速计数器数量及其编号

49、1、高速计数器地址编号、高速计数器地址编号两条高速计数器指令的操作数都需指明高速计数器编号,告知两条高速计数器指令的操作数都需指明高速计数器编号,告知CPUCPU那个高速计数器那个高速计数器需要执行计数操作。编号需要执行计数操作。编号0 05 5,不同,不同CPUCPU其数量不同。使用时,每个高速计数器都其数量不同。使用时,每个高速计数器都有地址编号有地址编号n n(HC nHC n或非正式程序中有时也用或非正式程序中有时也用HSC nHSC n)不同型号不同型号PLCPLC,高速计数器,高速计数器HSCHSC数量不同,同种型号的数量不同,同种型号的PLCPLC的的HSCHSC地址编号也不同,

50、但每地址编号也不同,但每个个HSCHSC都有都有1 1个状态字节、个状态字节、1 1个设置参数用的控制字节、个设置参数用的控制字节、1 1个个3232位的当前值寄存器和位的当前值寄存器和1 1个个3232位的设定值(预置值)寄存器,当前值与设定值都是有符号的整数。同普通计数器位的设定值(预置值)寄存器,当前值与设定值都是有符号的整数。同普通计数器在选定计数器之后应将设定值装入下表所示的特殊继电器中,并可从下表的特殊继电在选定计数器之后应将设定值装入下表所示的特殊继电器中,并可从下表的特殊继电器中读取当前值执行比较指令等操作。器中读取当前值执行比较指令等操作。第65页/共136页第64页/共13

51、6页2 2、高速计数器的工作模式、高速计数器的工作模式在定义在定义HSCHSC的的HDEFHDEF指令时需确定指令时需确定HSCHSC的工作模式。选择的工作模式。选择HSCHSC的工作模式时的工作模式时需先了需先了解解HSCHSC的输入点和确定的输入点和确定HSCHSC工作模式的控制字节,然后合理选择合适的工作模式的控制字节,然后合理选择合适的HSCHSC及其及其工作模式,最后在工作模式,最后在HSCHSC工作时利用状态字监视其工作状态工作时利用状态字监视其工作状态(1 1)高速计数器占用输入端子)高速计数器占用输入端子每个高速计数器对其工作模式的时钟、方向控制、复位、起动都有专用的每个高速计

52、数器对其工作模式的时钟、方向控制、复位、起动都有专用的输入点,其对应关系如下表所示:输入点,其对应关系如下表所示:注意:同一个输入端不能用于两种不同的功能,即表中所用的输入点,若注意:同一个输入端不能用于两种不同的功能,即表中所用的输入点,若 不使用高速计数器,可作为一般得数字量输入点,或作为输入不使用高速计数器,可作为一般得数字量输入点,或作为输入/ /输出输出 中断的输入点。只有在使用中断的输入点。只有在使用HSCHSC时,才分配给相应的时,才分配给相应的HSCHSC第66页/共136页第65页/共136页HSC的特殊寄存器高速计数器编高速计数器编号号状态字节状态字节控制字节控制字节当前值

53、双当前值双字字预设值双预设值双字字HSC0SMB36SMB37SMD38SMD42HSC1SMB46SMB47SMD48SMD52HSC2SMB56SMB57SMD58SMD62HSC3SMB136SMB137SMD138SMD142HSC4SMB146SMB147SMD148SMD152HSC5SMB156SMB157SMD158SMD162SMBxx6SMBxx7SMDxx8SMDxx2高速计数器都有一个高速计数器都有一个3232位当前值寄存器和一个位当前值寄存器和一个3232位预置值寄存器,位预置值寄存器,当前值和预设值均为带符号的整数值。要设置高速计数器当前值和预设值均为带符号的整数值

54、。要设置高速计数器的新当前值和新预置值,必须设置控制字节的新当前值和新预置值,必须设置控制字节第67页/共136页第66页/共136页(2)(2)高速计数器控制字节高速计数器控制字节 SMBxx7SMBxx7计计数数方方向向控控制制S7-200PLCS7-200PLC,系统默认的系统默认的复位输入和复位输入和启动输入均启动输入均为高电平有为高电平有效,正交计效,正交计数为数为4倍频。倍频。若想改变系若想改变系统默认值则统默认值则需设置左表需设置左表中的特殊继中的特殊继电器的第电器的第0、1、2位位每个每个HSCHSC都对应一个特殊继电器的控制字节都对应一个特殊继电器的控制字节SMBSMB,通过

55、对控制字节指定位进行编程,通过对控制字节指定位进行编程,确定确定HSCHSC的工作方式。的工作方式。系统执行系统执行HSC之前首先要检查与每个之前首先要检查与每个HSC相关的控制字节,相关的控制字节,在控制字节中设置了复位输入和启动输入信号的有效电平,正交计数的计数倍频,在控制字节中设置了复位输入和启动输入信号的有效电平,正交计数的计数倍频,是否允许更新当前值等是否允许更新当前值等第68页/共136页第67页/共136页(3)高速计数器高速计数器 1212种工作模式种工作模式6 6个个HSCHSC所具有的功能不完全相同,最多可能有所具有的功能不完全相同,最多可能有1212种(种(HSC1HSC

56、1)分四种类型:)分四种类型:模式模式0 0模式模式2 2采用单路脉冲输入的内部方向控制加采用单路脉冲输入的内部方向控制加/ /减计数;减计数;模式模式3 3模式模式5 5采用单路脉冲输入的外部方向控制加采用单路脉冲输入的外部方向控制加/ /减计数;减计数;模式模式6 6模式模式8 8采用两路脉冲输入的加采用两路脉冲输入的加/ /减计数;减计数;模式模式9 9模式模式1111采用两路脉冲输入的双相正交计数。采用两路脉冲输入的双相正交计数。第69页/共136页第68页/共136页1高速计数器的计数方式 (1)单路脉冲输入的内部方向控制加/减计数:即只有一个脉冲输入端,通过高速计数器的控制字节的第

57、3位来控制做加计数或者减计数。该位为1,加计数;该位为0,减计数。 第70页/共136页第69页/共136页 (2)单路脉冲输入的外部方向控制加/减计数:即有一个脉冲输入端,有一个方向控制端,方向输入信号等于1时,加计数;方向输入信号等于0时,减计数。如图所示为外部方向控制的单路加/减计数。该计数方式可调用当前值等预设值中断和外部输入方向改变的中断。第71页/共136页第70页/共136页(3)两路脉冲输入的单相加/减计数。即有两个脉冲输入端,一个是加计数脉冲,一个是减计数脉冲,计数值为两个输入端脉冲的代数和,如下图所示。该计数方式可调用当前值等预设值中断和外部输入方向改变的中断。第72页/共

58、136页第71页/共136页(4)两路脉冲输入的双相正交计数。即有两个脉冲输入端,输入的两路脉冲A 相、B相,相位互差90(正交),A 相超前B相90时,加计数;A 相滞后B相90时,减计数。在这种计数方式下,可选择1x模式(单倍频,一个时钟脉冲计一个数)和4x模式(四倍频,一个时钟脉冲计四个数)。第73页/共136页第72页/共136页双相正交计数1x模式 第74页/共136页第73页/共136页双相正交计数4x模式 第75页/共136页第74页/共136页4 4、高速计数器状态字节(、高速计数器状态字节(SMBxx6SMBxx6字节)字节)为了监视为了监视HSCHSC的工作状态,执行有的工

59、作状态,执行有HSCHSC引起的中断事件,每个高速计数引起的中断事件,每个高速计数器在特殊继电器区器在特殊继电器区SMBSMB安排一个状态字。如图:安排一个状态字。如图:状态位表示当前计数方向以及当前值是否大于或等于预置值。状态位表示当前计数方向以及当前值是否大于或等于预置值。状态位状态位SMBXX6.0SMBXX6.0 SMBXX6.4SMBXX6.4SMBXX6.5SMBXX6.5SMBXX6.6SMBXX6.6SMBXX6.7SMBXX6.7功能功能描述描述不使用不使用当前计数方向当前计数方向: 0: 0: 减法计数减法计数 1: 1: 加法计数加法计数当前值当前值= =预预设设值状态位

60、值状态位 0: 0: 未达到未达到 1: =1: =当前值当前值 预预设设值状态位值状态位 0: = 0: = 1: =第76页/共136页第75页/共136页高速计数器完成计数主要依靠高速计数器完成计数主要依靠中断中断,当状态字中的当前计数方向位与当前值等于设定,当状态字中的当前计数方向位与当前值等于设定值位发生变化,会引起值位发生变化,会引起HSC中断事件,另外中断事件,另外HSC工作模式中的外部信号复位也能引起工作模式中的外部信号复位也能引起中断事件。通常在执行完中断事件。通常在执行完HSC指令后,会编写指令后,会编写HSC中断程序来完成某些操作功能。所中断程序来完成某些操作功能。所有有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论