第6章STEP7结构化程序设计(2)精品PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“Input”选项卡中 , 设置在Il24.0的上升沿和Il24.1 的下降沿来产生中
断。下面是用STL编写的OB1的程序。 Network 1:在 Il24.2 的上升沿激活硬件中断
硬件中断OB的缺省(默认)优先级为16~23, 用户可以设置参数改变优
先级。 也可用 SFC39~SFC42 来禁止、延迟和再次激活硬件中断。
3.应用实例 例6 用I0.0的上升沿作为硬件中断触发脉冲, 使用硬件中断OB40, 当来一次I0.0 的上升沿, 就使 MW0自动加1。
首先在硬件组态中设置中断触发信号。如上所述, 并不是所有的信 号模块都具有中断功能。此例中, 需要一个数字量输入模块。图6-39所 示为硬件组态, 其右视图硬件目录的“DI-300”中, 有此版本软件支持的 所有SM321。单击一个模块后, 右下角处将出现这个模块的基本信息。 然后插入CPU 313C-2DP和一块具有中断功能的数字量输入模板 ( 如 SM321, 订货号6ES7 321-7BH01-0AB0) 。双击模块, 选择“Inputs”选 项, 同时激活“Hardware interrupt”和“Trigger for Hardware Interrupt”选项, 图6-40所示为设置数字量输入模块的中断。
在STEP7中生成名为 “OB40 例程”的项目。选用 CPU313C-2DP,
在硬件组态工具中打开 CPU 属性的组态窗口, 由 “Interrupts ”选项卡
可知,在硬件中断中, 只能使用OB40。双击机架中CPU 313C-2DP 内
的集成I/O “DIl6/DO16” 所在的行 (见图6-43), 在打开的对话框的
(二) 硬件中断组织块(QB40~OB47) 1.概述 延时中断组织块 OB20~OB23 在过程事件出现后延时一定的时间
再执行中断程序。硬件中断组织块OB40~OB47 用于需要快速响应的 过程事件,事件出现时马上中止循环程序,执行对应的中断程序。即 硬件中断组织块用于快速响应信号模块 (SM, 即输入 / 输出模块 ) 、通 信处理模块 (CP) 和功能模块(FM)的信号变化。当具有中断能力的信 号模块(并非所有的信号模块都具有中断能力)将中断信号传送到 CPU时, 或者当功能模块产生一个中断信号时, 将触发硬件中断。硬件 中断被SM、CP或FM等模块触发后, 操作系统将自动识别是哪一个槽 的模块和模块中哪一个通道产生的硬件中断。硬件中断OB执行完后, 将发送通道确认信号。
②如果正在处理某一中断信号时,同一模块中其它通道产生了中断 事件, 新的中断不会被立即触发, 但是不会丢失。在当前己激活的硬件 中断执行完后, 再处理被暂存的中断。
③如果有硬件中断被触发, 并且它的中断模块OB已被其它模块中的 硬件中断激活, 新的中断请求将被记录, 空闲后再执行该中断。
2.应用方法 首先可以在 STEP 7 中查看可支持的硬件中断组织块。具体方法
是: 在 STEP 7 的硬件组态窗口中 , 双击项目中机架上CPU 所在的行, 打开 CPU 属性对话框, 点击 “Interrupts”选项页, 可以看到CPU支持 的硬件中断块, 如图6-38所示。在此也可以为硬件中断OB选择优先级。
通过STEP 7 进行参数赋值, 可以为能够触发硬件中断的每一个
图6-41所示为硬件中断程序OB40。在Network2 中利用局部变量 OB40_MDL_ADDR和 OB40_POINT_ADDR, 在MW10和MD12中得到 输入模块的起始地址和产生的中断号。
本例共使用了2个OB40的局部变量OB40_MDL_ADDR和 OB40_POINT_ADDR,用于观察中断是由哪个模块的哪个通道产生的。 利用变量表监控程序的运行,如图6-42所示。MW0当前值为000D, 它 自动加1已经是13了,表示已经中断了13 次;MW10为0000,表示这 个硬件中断由起始字节地址为0的模块产生;MD12为3, 表示由第3个 通道(第4位)产生,即 I0.3 的上升沿产生的硬件中断。当然也可使 用这个模块的其他通道,但必须在图6-40所示的组态时激活这些通道。
信号模板指定参数。对于可分配参数的信号模板(DI 、DO 、AI 、
AO ),可以用STEP 7的硬件组态功能 CONFIGURATION工具来设定
信号模块哪一个通道在什么条件下产生硬件中断, 将执行哪个硬件中断
OB, OB4O 被默认用于执行所有的硬件中断;对于CP 模板和FM模板,
利用相应的组态软件在对话框中设置相应的参数来启动硬件中断OB。
说明:也可以用例3 的方法 , 用 SFC39 “DIS_IRT”和 SFC40 “EN_IRT”来取消和激活中断。在此, 我们只设置中断模块,并在 OB40中编程即可完成功能,如下例所示。
例7 CPU313C-2DP 集成的16 点数字量输入 Il24.0~Il25.7 可以逐 点设置中断特性。通过OB40对应的硬件中断, 在 Il24.0 的上升沿将 CPU313C-2DP 集成的数字量输出 Q124.0 置位, 在 Il24.1 的下降沿将 Q124.0 复位。此ቤተ መጻሕፍቲ ባይዱ要求在 Il24.2 的上升沿时激活OB40对应的硬件中 断, 在 Il24.3 的下降沿禁止OB40 对应的硬件中断。
如果在处理硬件中断的同时, 又出现了其他硬件中断事件, 新的中断 按以下方法识别和处理:
①如果正在处理某一中断事件, 又出现了同一模块同一通道产生的完 全相同的中断事件, 新的中断事件将丢失, 即不处理它。图 6-37中,若 在数字量模块输入信号的第一个上升沿时触发中断, 由于正在用OB40 处理中断, 第2个和第3个上升沿产生的中断信号将丢失。
各CPU可以使用的硬件中断OB的个数与CPU 的型号有关, S7-300 的型号有关,S7-300的CPU (不包括 CPU 318) 只能使用OB40。表6-28 所示描述了OB40
只有用户程序中有相应的组织块, 才能执行硬件中断。否则操作系 统会向诊断缓冲区中输入错误信息, 并执行异步错误处理组织块OB80。