中断技术在处理复杂和特殊的控制任务时是必需的,它属plc的高级应用技术。中断是由设备或其他非预期的急需处理的事件引起的,它使系统暂时中断现在正在执行的程序,而转到中断服务程序去处理这些事件,处理完毕后再返回原程序执行。中断事件的发生具有随饥性,中断在可编程序控制器的实时处理、高速处理、通信和网络中非常重要。
|
一、中断源 |
(一)中断源及种类 中断源,即中断事件发出中断请求的来源。S7-200可编程序控制器具有较多可达34个中断源,每个中断源都分配一个编号用以识别,称为中断事件号。这些中断源大致分为三大类:通信中断、输入输出中断和时基中断。 (二)中断**级 中断**级由高到低依次是:通信中断、输入输出中断、时基中断。每种中断中的不同中断事件又有不同的**权。 图1 中断事件及**级 图2 中断事件及**级 |
二、中断调用
|
即调用中断程序,使系统对特殊的内部或外部事件作出响应。系统响应中断时自动保存逻辑堆栈、累加器和某些特殊标志存储器位,即保护现场。中断处理完成时,又自动恢复这些单元原来的状态,即恢复现场。
|
三、中断程序 |
中断程序必须由三部分构成:中断程序标号、中断程序指令和无条件返回指令。 程序实例: 控制要求:程序实现的功能是调用I0.1输入点的上升沿中断,若发现I/O错误,则禁止本中断,用外部条件可以禁止全局中断。 图3 程序实例 |
四、通信 |
通信指令包括: |
转换指令是指对操作数的类型进行转换,包括数据的类型转换、码的类型转换以及数据和码之间的类型转换。
|
一、数据类型转换 |
(一)字节与整数 1、字节到整数 BTI,字节转换为整数指令。使能输入有效时,将字节输入数据IN转换成整数类型,并将送到OUT输出。字节型是无符号的,所以没有符号扩展。 指令格式: BTI IN, OUT 例: BTI VB0, AC0 2、整数到字节 ITB,整数转换字节指令。使能输入有效时,将整数输入数据IN转换成字节类型,并将送到OUT输出。输入数据**出字节范围(0~255)则产生溢出。 指令格式: ITB IN, OUT 例: ITB AC0, VB10 (二)整数与双整数 1、双整数到整数 DTI,双整数转换为整数指令。使能输入有效时,将双整数输入数据IN转换成整数类型,并将送到OUT输出。输入数据**出整数范围则产生溢出。 指令格式: DTI IN, OUT 例: DTI AC0, VW20 2、整数到双整数 ITD,整数转换为双整数指令。使能输入有效时,将整数输入数据IN转换成双整数类型(符号进行扩展),并将送到OUT输出。 指令格式:ITD IN, OUT 例:ITD VW0, AC0 (三)双整数与实数 1、实数到双整数 图1 实数到双整数 2、双整数到实数 DTR,双整数转换实数指令。使能输入有效时,将双整数输入数据IN转换成实型,并将送到OUT输出。 指令格式: DTR IN, OUT 例: DTR AC0, VD100 图2 双整数到实数 图3 双整数到实数 (四)整数与BCD码 1、BCD码到整数 BCDI,BCD码转换为整数指令。使能输入有效时,将BCD码输入数据IN转换成整数类型,并将送到OUT输出。输入数据IN的范围为0~9999。 指令格式:BCDI OUT 例:BCDI AC0 图4 BCD码到整数 2、整数到BCD码 IBCD,整数转换为BCD码指令。使能输入有效时,将整数输入数据IN转换成BCD码类型,并将送到OUT输出。输入数据IN的范围为0~9999。 指令格式:IBCD OUT 例:IBCD AC0 图5 整数到BCD码 (五)程序实例 模拟量控制程序中的数据类型转换。将模拟量输入端采样值由整数转换为双整数,然后由双整数转换为实数,再除以一个比例因子得到plc可以处理的范围内的值。 图6 程序实例 |
二、编码和译码 |
1、编码 ENCO,编码指令。使能输入有效时,将字型输入数据IN的较低有效位(值为1的位)的位号输出到OUT所*的字节单元的低4位。即用半个字节来对一个字型数据16位中的1位有效位进行编码。 指令格式: ENCO IN, OUT 例: ENCO AC0, VB0 以本指令为例,指令执行情况如表所示。 图7 编码指令执行结果 2、译码 DECO,译码指令。使能输入有效时,将字节型输入数据IN的低4位所表示的位号对OUT所*的字单元的对应位置1,其他位置0。即对半个字节的编码进行译码来选择一个字型数据16位中的1位。 指令格式: DECO IN, OUT 例: DECO VB0, AC0 图8 译码指令执行结果 |
三、七段码 |
SEG,七段码指令 使能输入有效时,将字节型输入数据IN的低4位有效数字产生相应的七段码,并将其输出到OUT所*的字节单元。 |
四、字符串转换 |
1、指令种类 2、指令介绍 下面仅以ASCII码转换16进制指令为例说明字符串与其他数据类型之间的转换。 ATH,ASCII码转换16进制指令: 指令盒中有3个操作数:IN,开始字符的字节地址,字节类型;LEN,字符串的长度,字节类型,较大长度为255;OUT,输出目的开始字节,字节类型。使能输入有效 时,把从IN开始的长度为LEN的ASCII码转换为16进制数,并将结果送到OUT开始的字节进行输出。 3、程序实例 以上面的指令为例,条指令的执行结果如表所示,程序如图所示。 图9 指令ATH执行结果 图10 程序实例 |