作者 | 主题 |
---|---|
菁 至圣 经验值: 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”。
|