西门子授权总代理商
西门子PLC组织块与中断处理方法有哪些
1.中断过程
中断处理用来实现对特殊内部事件或外部事件的快速响应。如果没有中断,CPU循环执行组织块0B1。因为除背景组织块0B90以外,0B1的中断优先级*低,CPU检测到中断源的中断请求时,操作系统在执行完当前程序的当前指令(即断点处)后,立即响应中断。CPU暂停正在执行的程序,调用中断源对应的中断组织块(OB)来处理。执行完中断组织块后,返回被中断的程序的断点处继续执行原来的程序。
有中断事件发生时,如果没有下载对应的组织块,CPU将会进入STOP模式。生成和下载一个空的组织块,出现对应的中断事件时,CPU也不会进入STOP模式。
PLC的中断源可能来自UO模块的硬件中断,或者来自CPU模块内部的软件中断,例如时间中断、延时中断、循环中断和编程错误引起的中断。
一个OB的执行被另一个OB中断时,操作系统对现场进行保护。被中断的OB的局部数据压入L堆栈(局部数据堆栈),被中断的断点处的现场信息保存在I堆栈(中断堆栈)和B堆栈(块堆栈)中。中断程序不是由逻辑块调用,而是在中断事件发生时由操作系统调用。因为不能预知系统何时调用中断程序,中断程序不能改写其他程序中可能正在使用的存储器,中断程序应尽可能地使用局部变量。
编写中断程序时应遵循“越短越好”的格言,以减少中断程序的执行时间,减少对其他事件处理的延迟,否则可能引起主程序控制的设备操作异常。
2.组织块的分类
组织块只能由操作系统启动,它由变量声明表和用户编写的控制程序组成。
(1)启动组织块
启动组织块用于系统初始化,CPU上电或操作模式切换到RUN时,S7-300执行OB100,S7-400根据组态的启动方式执行OB100~OB102中的一个。
(2)循环执行的OB1
需要循环执行的程序存放在OB1中,执行完后又开始新的循环。(3)定期执行的组织块
定期执行的组织块包括时间中断组织块 OB10~OB17和循环中断组织块OB30~OB38,可以根据设定的日期时间或时间间隔执行中断程序。
(4)事件驱动的组织块
延时中断组织块 OB20~OB23在过程事件出现后延时一定的时间再执行中断程序硬件中断组织块OB40~OB47用于需要快速响应的过程事件,事件出现时马上中止当前正在执行的程序,执行对应的中断程序。异步错误中断组织块OB80~0B87和同步错误中断组织块OB121、OB122用来决定在出现错误时系统如何响应。
3.中断的优先级
中断的优先级也就是组织块的优先级,如果在执行中断程序(组织块)时,又检测到一个中断请求,CPU将比较两个中断源的中断优先级。如果优先级相同,按照产生中断请求的先后次序进行处理。如果后者的优先级比正在执行的OB的优先级高,将中止当前正在处理的OB,改为执行较高优先级的OB。这种处理方式称为中断程序的嵌套调用。
下面是优先级的顺序(后面的比前面的优先)背景循环、主程序扫描循环、时间中断、时间延时中断、循环中断、硬件中断、多处理器中断、I/O冗余错误、异步故障(OB80~87)、启动和CPU 冗余,背景循环的优先级*低。
S7-300的组织块的优先级是固定的,可以用STEP7修改S7-400CPU下述组织块的优先级OB10~OB47(优先级2~23),OB70~0B72(优先级25或28,只适用于H系列CPU),以及在RUN模式下的OB80~OB88(见附表B-1)。通常情况下组织块的编号越大(OB90除外),优先级越高。具有相同优先级的OB按启动它们的事件出现的先后顺序处理。被同步错误启动的OB121和OB122的优先级与错误出现时正在执行的OB的优先级相同。
生成逻辑块0B、FB和FC时,生成临时局部变量数据,CPU的局部数据区按优先级划分。可以在S7-400的CPU模块属性对话框的“存储器”选项卡中,改变每个优先级的局部数据区的大小。将优先级赋值为0,或分配小于20B的局部数据给某一个优先级,可以取消相应的中断0B。
4.对中断的控制
时间中断和延时中断有专用的允许处理中断(或称激活、使能中断)和禁止中断的系统功能(SFC)。
SFC39“DIS_INT”用来禁止中断和异步错误处理,可以禁止所有的中断,有选择地禁止某些优先级范围的中断,或者只禁止指定的某个中断。
SFC40“EN_INT”用来激活(使能)新的中断和异步错误处理,激活中断是指允许处理中断,做好了在中断事件出现时执行对应的组织块的准备。可以全部允许或有选择地允许。
SFC41“DIS_AIRT”延迟处理比当前优先级更高的中断和异步错误,直到用SFC42允许处理中断或当前的OB执行完毕。SFC42“EN_AIRT”用来允许立即处理被SFC41暂时禁止的中断和异步错误,SFC42和SFC41配对使用。
6ES7135-6GB00-0BA1 | 2AO, I, 标准型, 适用A0或A1型基座单元 |
6ES7135-6FB00-0BA1 | 2AO, U, 标准型, 适用A0或A1型基座单元 |
6ES7135-6HD00-0BA1 | 4AO, U/I, 标准型,适用A0或A1型基座单元 |
6ES7135-6HB00-0DA1 | 2AO, U/I, 高速型,适用A0或A1型基座单元 |
6ES7135-6HB00-0CA1 | 2AO, U/I, 高性能型,适用A0或A1型基座单元 |
6ES7137-6AA00-0BA0 | 支持ASCII, 3964R, USS, Modbus,适用A0型基座单元 |
6ES7137-6BD00-0BA0 | IO-LINK主站模块, CM 4×IO-LINK,适用A0型基座单元 |
6ES7138-6AA01-0BA0 | TM Count 1×24 V, 高速计数模块,适用A0型基座单元 |
6ES7138-6BA01-0BA0 | TM POSINPUT 1, 计数及位置检测模块,支持SSI**值编码器, 适用A0型基座单元 |
6ES7138-6CG00-0BA0 | TM TIMER DIDQ 10×24V, 高速计数,时间戳, PWM, 过采样, 适用A0型基座单元 |
6ES7138-6DB00-0BB1 | TM PULSE 2×24V, PWM, 脉冲输出,适用B1型基座单元 |
6ES7193-6BP00-0BA0 | BU15-P16+A0+2B, 类型A0 |
6ES7193-6BP00-0DA0 | BU15-P16+A0+2D, 类型A0,用于形成新的负载组 |
6ES7193-6BP20-0BA0 | BU15-P16+A10+2B, 类型A0, 带有10个辅助端子 |
6ES7193-6BP20-0DA0 | BU15-P16+A10+2D, 类型A0, 带有10个辅助端子, 用于形成新的负载组 |
6ES7193-6BP00-0BA1 | BU15-P16+A0+2B/T, 类型A1, 带有温度测量 |
6ES7193-6BP00-0DA1 | BU15-P16+A0+2D/T, 类型A1, 带有温度测量, 用于形成新的负载组 |
6ES7193-6BP40-0BA1 | BU15-P16+A0+12B/T, 类型A1, 带有温度测量, 带有2×5个辅助端子 |
6ES7193-6BP40-0DA1 | BU15-P16+A0+12D/T, 类型A1, 带有温度测量, 带有2×5个辅助端子,形成新负载组 |
组态数字量输入
单击“系统块”(System Block) (页 121) 对话框的“数字量输入”(Digital Inputs)节点组态数字
量输入滤波器和脉冲捕捉位。
数字量输入滤波器
通过设置输入延时,您可以过滤数字量输入信号。 该延迟帮助过滤输入接线上可能对输
入状态造成不良改动的噪音。 输入状态改变时,输入必须在时延期限内保持在新状态,
才能被认为有效。 滤波器会消除噪音脉冲,并强制输入线在数据被接受之前稳定下来。
使用 S7-200 SMART CPU,用户可以为其所有数字量输入点选择一个输入延迟。 可用输
入点数取决于 CPU 型号 (页 18)。
前十四个输入点(I0.0 到 I0.7 以及 I1.0 到 I1.5)支持延迟时间选项的扩展设置(可在 0.2
ms 至 12.8 ms 范围内的七个设置中任选其一,或在 0.2 μs 至 12.8 μs 范围内的七个设置
中任选其一)。 其余输入点(I1.6 及以上)仅支持输入延迟选项的限定设置(6.4 ms、
12.8 ms 或者滤)。
例如,CPU SR20 的所有十二个输入点均支持输入延迟设置的扩展列表。 对于 CPU
ST40,输入延迟选项的扩展列表适用于其前十四个输入点,其余十个输入点则仅支持限
定列表。
所有输入点的默认滤波时间均为 6.4 ms。
要设置输入延迟,请按以下步骤操作:
1. 从一个或多个输入旁的下拉列表中选择延迟时间。
2. 单击“确定”(OK) 按钮,输入选项。
警告
更改数字量输入通道的滤波时间存在的风险
如果数字量输入通道的滤波时间更改自以前的设置,则新的“0”电平输入值可能需要保
持长达 12.8 ms 的累积时间,滤波器才会完全响应新输入。 在此期间,可能不
会检测到持续时间少于 12.8 ms 的短“0”脉冲事件或对其计数。
滤波时间的这种更改会引发意外的机械或过程操作,这可能会导致人员死亡、重伤和
/或设备损坏。
为了确保新的滤波时间立即生效,必须关闭 CPU 电源后再开启。
脉冲捕捉位
S7-200 SMART CPU 为数字量输入点提供脉冲捕捉功能。 通过脉冲捕捉功能可以捕捉高
电平脉冲或低电平脉冲。此类脉冲出现的时间极短,CPU 在扫描周期开始读取数字量输
入时,可能无法始终看到此类脉冲。
当为某一输入点启用脉冲捕捉时,输入状态的改变被锁定,并保持至下一次输入循环更
新。 这样可确保延续时间很短的脉冲被捕捉,并保持至 S7-200 SMART CPU 读取输
入。
可根据 CPU 型号 (页 18)单独启用前十四个数字量输入点(I0.0 至 I0.7 以及 I1.0 至
I1.5)的脉冲捕捉操作。
如果组态中包含 SB DT04,则可启用此信号板上提供的两个附加数字量输入点的脉冲捕
捉操作。
下图显示 S7-200 SMART CPU(脉冲捕捉启用和未启用)的基本操作状况: