PLC系统学习(一)
第一章 组织块OB及其应用
前言
组织块(OB)是操作系统与用户程序之间的接口。组织块由操作系统进行调用,其功能主要包含有错误处理(OB82)、控制循环中断(OB30)、驱动程序执行、PLC启动特性(OB100)。
一、中断过程及其实现操作
1.中断含义
中断处理用来实现对特殊内部或外部事件的快速反应。CPU检测到中断请求时,立刻响应中断,调用中断源对应的中断程序(OB)。执行完中断程序后,返回被中断的程序。中断源就是I/O模块的硬件中断,软件中断,例如日期中断、延时中断、循环中断和编程错位引起的中断。
2.中断的优先级
执行一个组织块OB的调用可以中断另一个OB的执行。一个OB是否允许另一个OB中断取决于其优先级。OB共有26个优先级,1最低,26最高。最优先级的OB可以中断低优先级的OB. Portal:OB可以创建,但是争端中不可创建(OB81中即不可创建中断)
3.组织块分类
组织块只能由操作系统启动,它由变量申明表和用户编写的控制程序组成
- 启动组织块OB100;启动组织块用于系统初始化,CPU上电或操作模式更改时,在循环程序执行之前,要根据启动的方式执行启动程序OB100~OB102中的一个。可以在启动组织块中进行编程通信的初始化设置。
- 循环执行的组织块OB30~OB38;需要连续执行的程序存在组织块OB1里。OB1中的用户程序执行完毕后,将开始一个新的循环——刷新映像区,然后从OB1的第一条语句重新开始执行。循环扫描时间和系统响应时间就是由这些操作来决定的。系统响应时间包括CPU操作系统总的执行时间和执行所有用户程序的时间。系统响应时间就是当输入信号变化后到输出动作的时间,等于两个扫描周期。
- 定期执行的组织块;定期执行的组织块包括日期时间中断组织块OB10~OB17和循环中断组织块OB30~OB38,可以根据设定的日期时间或时间间隔执行中断程序。通过循环中断,组织块可以每隔一段预定的时间(如100m。)执行一次,如可以在这中调用温度采样控制程序等。通过日期时间中断,一个组织块可以在特定的时间执行,如每天17:00保存温度数据等。
- 事件驱动组织块;延时中断OB20~OB23用于在过程事件出现后延时一定的时间再执行中断程序;硬件中断OB40~OB47用于需要快速响应的过程事件,事件出现时马上中止循环程序,执行对应的中断程序。异步错误中断OB80~OB87和同步错误中断OB121、OB122用于决定在出现错误时系统如何响应。
- 中断组织块;日期时间中断组织块OBIO~OB17、循环中断组织块OB30~OB38、延时中断OB20~OB23、硬件中断组织块OB40~OB47、DVP1中断组织块OB55~OB57以及OB60多处理器中断组织块又可以划分为具备中断功能的组织块。
- 错误组织块;错误组织块包括异步错误中断组织块OB80~OB87、同步错误中断组织块OB121~OB122和多处理器错误中断OB60。
- 背景组织块;背景数据块OB90中可以放置一些对实时性要求不高的程序,以便CPU在最小循环扫描时间还有剩余的情况下执行。
事件源的类型 | 优先级(默认优先级) | 可能的OB编号 | 默认的系统响应 | 支持的OB数量 |
---|
启动 | 1 | 100,>=123 | 忽略 | 100 | 循环程序 | 1 | 1,>=123 | 忽略 | 100 | 时间中断 | 2~24(2) | 10~17,>=123 | 不适用 | 20 | 状态中断 | 2~24(4) | 55 | 忽略 | 1 | 更新中断 | 2~24(4) | 56 | 忽略 | 1 | 制造商或配置文件特定的中断 | 2~24(4) | 57 | 忽略 | 1 | 延时中断 | 2~24(3) | 20~23,>=123 | 不适用 | 20 | 循环中断 | 2~24(8~17,取决于循环时间) | 30~38,>=123 | 不适用 | 20 | 硬件中断 | 2~26(16) | 40~47,>=123 | 忽略 | 50 | 等时同步模式中断 | 16~26(21) | 61~64,>=123 | 忽略 | 20(每个等时同步接口一个) | MC伺服中断 | 17~31(25) | 91 | 不适用 | 1 | MC插补器中断 | 16~30(24) | 92 | 不适用 | 1 | 时间错误 | 22 | 80 | 忽略 | 1 | 超出循环监视时间一次 | stop | 诊断中断 | 2~26(5) | 82 | 忽略 | 1 | 移除/插入模块 | 2~26(6) | 83 | 忽略 | 1 | 机架错误 | 2~26(6) | 86 | 忽略 | 1 | 编程错误(仅限全局错误处理) | 2~26(7) | 121 | STOP | 1 | I/O 访问错误(仅限全局错误处理) | 2~26(7) | 122 | 忽略 | 1 |
延时中断作为精确延时,准确性非常高,不受扫描周期影响,精准性高于定时器。 硬件中断,例如当模拟量数值超过范围报警,此时产生的中断为硬件中断。 在S7-1500中要插入OB80、OB121、OB122,其余可以不插入。 在S7-300中要插入OB80、OB82、OB86、OB87、OB122等。
4.启动组织块及其应用
暖启动(Warm Restart) 启动组织块(Startup)在PLC的工作模式从STOP切换到RUN时执行一次。完成启动组织块扫描后,将执行主程序循坏组织块(如OB1) 清除过程映像数据以及非保持的M/T/C(为存储器、定时器、计数器)。有保持函数的M/T/C/DB将保留原数值。模式开关板由STOP板到RUN位置。 注释:S7-400有暖启动、热启动、冷启动。S7-200/1500仅有暖启动。
二、实操演练
1.程序初始化
插入Startup程序块 编号通常默认设置为100,可修改为大于等于123的数值。
对OB100编译,写入清零程序,对MD23进行清零 注释:该清零程序不可写在OB1中,PLC运行逻辑为上电,运行OB100,循环执行OB1,假使将清零程序写入OB1中,MD23将永远等于0,无法对该点实际数值进行修改。
2.循坏中断
选择循环中断块(OB30~OB38),设定循环时间,可以通过循坏通道方式对数据采集或者进行运算。 循环中断功能可以通过启用中断事件函数(EN_IRT)以及取消中断事件函数(DIS_IRT)来控制启动与停止。 该程序写入在OB1中,在OB1中控制循环中断的启停。 该程序不可写入至OB30,假使停对OB30的扫描,OB30停止运行,再启动OB30将无法启动,因此对于循环中断的启停不能放入OB30程序块。
3.日期中断组织块
事件中断组织块(OB10~OB17),可以由用户指定日期时间及特定的周期产生中断。
表1:"SET_Tint"、"CAN_Tint"、"ACT_Tint"的参数
参数 | 声明 | 数据类型 | 存储区间 | 参数说明 | OB_NR | INPUT | Int | I、Q、M、D、L、常数 | OB的编号 | SDT | INPUT | DT | D、L、常数 | 开始日期和开始时间 | PERIOD | INPUT | Word/td> | I、Q、M、D、L、常数 | 从启动点SDT开始的周期: W#16#0000=一次 W#16#0201=每分钟 W#16#0401=每小时 W#16#1001=每日 W#16#1202=每周 W#16#1401=每月 W#16#1801=每年 W#16#2001=月末 | RET_VAL | OUTPUT | Int | I、Q、M、D、L | 如果出错,则RET_VAL的实际参数将包含错误代码 |
|