组织块 组织块概述 启动组织块 组织块的启动信息 练习4.1: 在OB100中确定启动类型 中断循环程序 被中断的 OB 块的数据保存 日期时间中断OB10(1) 日时钟 OB (OB10 在 S7-314) 允许你在某一特定日期或特定间隔, 中断正在循环的 OB 而去执行中断程序。你可以对此 OB 编程使其 按下列间隔运行: Once(一次): 只在特定日期和时间执行一次。 Every minute(每分钟): 从某一特定日期和时间开始,每分钟执行一次。 Hourly(每小时): 从某一特定日期和时间开始,每小时执行一次。 Daily(每天): 从某一特定日期和时间开始,每天执行一次。 Weekly(每周): 从某一特定日期和时间开始,每周执行一次。 Monthly(每月): 从某一特定日期和时间开始,每月执行一次。 Annually(每年): 从某一特定日期和时间开始,每年执行一次。 日期时间中断OB10(2) 练习4.2: 设置系统时间 练习4.3: 编写日期时间中断程序 练习4.4: 利用时间中断实现定时检测 循环中断 (OB35) 练习4.5: 利用循环中断产生闪烁信号 延时中断 (OB20) 硬件中断 (OB40) 诊断中断,异步错误中断(OB81...87) 异步错误组织块 同步错误 错误类型 使用错误组织块 为避免发生某错误时CPU进入停机状态,可以在CPU中建立一个相应的空错误组织块。 可以在错误OB块中编程实现所希望的响应,如果需要,在执行完规定指令后,调用系统功能SFC 46申请停机。 在错误组织块的启动信息中包含有错误的特征,可以在程序中使用。 关于错误组织块的详细描述参见在线帮助或系统和标准功能手册。 当CPU不支持某些错误OB时,相关的错误信息就不会记录在OB块中。 错误组织块应用举例 错误处理OB块中的附加信息 控制中断组织块的系统功能块 练习4.6: 模拟量模块的诊断中断 为被中断的程序 当系统检测到一个OB块中断时,则被中断块的累加器和寄存器上 存储数据 的当前信息将被作为一个中断堆栈存储起来(I 堆栈)。 如果新的OB块调用FB和FC, 则每一个块的处理数据将被存储 在块堆栈中(B堆栈)。 当新的OB块执行结束后, 操作系统将把I堆栈中的信息重新装载 并在中断发生处继续执行被中断的块。 注意 如果CPU转换到STOP状态(可能是由于程序中的错误), 你可以 使用模块信息选项来检查I堆栈和B堆栈。这将有助于你确定模 式转换的 原因。 为了使用日时钟中断(OB10), 你必须执行下列任务: - 通过定义它执行的起始时刻(日期和/或时间)和间隔时间, 对OB10进行 配置。这可以通过S7组态工具配置CPU的日时钟的中断参数或者在程序 中调用SFC28(SET_TINT)来实现。 - 激活OB10。这可以通过S7组态工具在CPU的日时钟中断参数块中选择 激活项,或者在程序中调用SFC30(ACT_TINT)来实现。 - 在OB10中编辑你想执行的日时钟中断程序, 并将OB块装载到CPU中 作为你程序的一部分。 要求 设置S7 CPU的正确系统时间。 步骤 1. 选择菜单功能 PLC - Set Date and Time (SIMATIC管理器或程序编辑器)。2. 在对话框中输入正确的日期和时间。 目的 编写一个组织块(OB10),从特定的日期和时间开始,然后每隔一 分钟重复执行一次。(这个程序中不要求使用OB1)控制要求如下: -如果温度传感器传送出一个小于或者等于13000的值, 则加热器 Q4.7将打开,直到传感器的值达到或者超出14000。 -当模拟值达到14000时,则加热器将关闭。 步骤 1.按照上述的过程控制要求在“My Project”项目的硬件站“My Station”中编 写程序编写一个OB10块。将OB10存盘并装载 到CPU中。 2.打开硬件站“My Station” 。选择CPU,然后再选择日时钟 中断菜单。 3.将OB10配置为激活状态,并每隔1分钟执行一次。 4.将配置存盘并装载到CPU中(在STOP状态下)。 要求 假如要使用 3 Hz的闪烁频率信号。而闪烁频率存储器中又不能提供该频率。所以利用循环中断在M35.0中设置闪烁频率。 说明 在“My Project”项目的硬件站“My Station”中编写程序。 延时中断 当某一事件发生后,延时中断组织块(OB20)可以经过一段规定的延时后执行。 OB20 只能通过调用系统功能SFC32而激活,同时还可设置延时时间。 SFC 32 ? OB_NR = 延时中断组织块的号码? DTIME = 延时时间 (1 到 60000ms)? SIGN = 启动延时中断组织块时用户自定义的信号? RET_VAL = 错误代码,如果执行延时中断组织块时出现错误则返回一个 错误代码(利用在线帮助可了解错误代码的含义)。 说明 除了SFC32外,下列SFC也可用于处理延时中断:? SFC33 (CAN_DINT) = 取消延时中断? SFC34 (QRY_DINT) = 查询延时中断组织块 S7-400 在S7-400 PLC 中有4个不同的延时中断组织块 (OB20 到 23) 。 错误类型 上图列出了在SIMATIC S7中可能产生的各种错误。每一个错误都是一个诊断事件,将在CPU中触发一个诊断中断,此时错误被记录在诊断缓冲区中,当没有编程相应的错误处理组织块时,将导致CPU停机。 同步错误 同步错误与程序执行有关,可以跟踪到某一具体指令的位置。由同步错误所触发的错误处理组织块将作为程序的一部分来执行,与错误出现时正在执行的块具有相同的优先级。 错误OB 利用错误组织块,用户可以定义当错误发生时,CPU所做的响应。如果在CPU中没有相应的错误组织块,当错误出现时将导致停机。 使用启动信息 请注意使用错误组织块的规则。操作系统将启动信息以临时变量的形式存储在错误组织块的变量声明表中。启动信息包括块调用的原因等内容。例如,OB81的启动信息如下: 变量 OB81_FLT_ID的意义如下: B#16#21: 至少有一个中央机架的备用电池失效(BATTF) B#16#22: 中央机架的缓冲区掉电(BAF) B#16#23: 中央机架的 24-V供电故障 B#16#31: 至少有一个扩展机架的备用电池失效 B#16#32: 一个扩展机架的缓冲区掉电 B#16#33: 扩展机架的 24-V供电故障 任务 当电池失效时,在操作面板上显示错误信息;更换电池后,错误显示自动结束。 程序说明 当发生电源故障时,例如电池失效,操作系统将调用一次错误组织块OB81。当故障排除后,OB81将再次被调用。在OB81中,用户程序考察变量OB81_FLT_ID以判断电池是否失效。当电池失效时,该变量的值为22H,通过比较指令,使M81.1为1。 错误显示在电池失效时(事件到来)被启动,当故障排除
16.组织块.ppt
下载此电子书资料需要扣除0点,