技术论坛

 SIMATIC S7-1500与TIA博途软件的使用---连载56

返回主题列表
作者 主题

至圣

经验值: 11116
发帖数: 1023
精华帖: 21
楼主    2016-09-06 13:38:04
主题:SIMATIC S7-1500与TIA博途软件的使用---连载56

 

以下内容节选自机械工业出版社出版的西门子自动化技术丛书----《SIMATIC S7- 1500 与 TIA博途软件使用指南》, 作者崔坚。更多更详细的内容请您参考《SIMATIC S7- 1500 与 TIA博途软件使用指南》一书。

 

组织块概述

7.2组织块(OB)

        组织块由操作系统调用,同时执行编写在组织块中的用户程序,组织块最基本的功能就是调用用户程序。组织块可以控制下列操作:

  • 自动化系统的启动特性

  • 循环程序处理

  • 中断响应的程序执行

  • 错误处理

        组织块代表CPU的系统功能,不同类型的组织块完成不同的系统功能。不同类型的S7-1500 CPU支持的组织块数量不同,具体请查看各CPU的技术数据。一个组织块可以编写的最大程序容量也与PLC的型号有关,例如CPU 1511支持的组织块最大为150K,而CPU 1516支持的组织块最大为512K。

        组织块可以设置为优化和非优化两种方式,缺省情况下为优化的。组织块启动后,操作系统在组织块的接口区提供了启动信息,可以在用户程序中进行评估。以OB82为例,非优化存储时系统自动生成了20个字节的临时变量,而对于优化的存储方式,系统提供了4个输入变量供用户使用(具体变量个数与组织块类型有关)。

        当发生诊断事件时,系统调用诊断中断OB82,并将启动信息写入OB82的临时变量(非优化存储)或者输入参数中(优化的存储),这些变量信息可以供用户直接使用。比如当出现模块的诊断事件时,用户可以在临时变量(非优化存储)中读取对应模块的硬件标识符以及部分诊断信息。如果用户需要得到详细的诊断信息,可以调用函数块“RALRM”来接收报警,得到报警通道号、报警类型等详细信息。

        为了减少OB块的响应时间,优化的OB块只有很少的启动信息,因为有些启动信息很少使用。如果需要,可以使用函数“RD_SINFO”将当前执行的组织块中的启动信息读出。例如,在优化的OB82组织块中,需要读取非优化的组织块对应的前12个字节信息,那么首先在DB块中建立两个变量“Start_UP_SI_classic”与“TOP_SI_classic”,用于存储OB块的启动信息,这两个变量的数据类型均为“SI_classic”(对应于非优化组织块的启动信息),如图7-6所示,这里需要注意变量的数据类型。

图7-6 声明启动信息变量

 

        在OB82中调用功能“RD_SINFO”,并将上述两个变量添加到输出参数中,如图7-7所示。

图7-7 调用功能

 

        当发生诊断事件时,通过程序块读取出了非优化存储时对应的临时变量信息,即函数输出参数“TOP_SI”为OB82的启动信息;“Start_UP_SI”为上一次启动OB(例如OB100)中的启动信息。例如,输入模块发生断线诊断事件时,读取的信息如图7-8所示,

图7-8 通过函数RD_SINFO读出的非优化OB块的启动信息

       

        读取出的启动信息代表的含义与S7-300/400的OB82启动信息相应位的基本上是相同的,例如“EV_CLASS”为“16#39”,代表事件到来,“ZI1”表示发生诊断事件的硬件的硬件标识符,“ZI2_3”值为“16#0D33_0000”,表示详细诊断信息,解读时需考虑其为大端存储,即低地址的4位是“16#D”,即“2#1101”,表示模块故障、外部故障、通道错误。其它位的诊断信息参考在线帮助。

        注意:

启动信息不能指示出具体的诊断事件出现的原因,比如事件“断线”。如果需要此类更为详细的诊断信息,可以在诊断OB块中调用接收中断函数“RALRM”。

 

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。