西门子S高级编程培训教材内部教材处理同步和异步错误教程文件

上传人:yuzo****123 文档编号:140097793 上传时间:2020-07-26 格式:PPT 页数:15 大小:328KB
返回 下载 相关 举报
西门子S高级编程培训教材内部教材处理同步和异步错误教程文件_第1页
第1页 / 共15页
西门子S高级编程培训教材内部教材处理同步和异步错误教程文件_第2页
第2页 / 共15页
西门子S高级编程培训教材内部教材处理同步和异步错误教程文件_第3页
第3页 / 共15页
西门子S高级编程培训教材内部教材处理同步和异步错误教程文件_第4页
第4页 / 共15页
西门子S高级编程培训教材内部教材处理同步和异步错误教程文件_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《西门子S高级编程培训教材内部教材处理同步和异步错误教程文件》由会员分享,可在线阅读,更多相关《西门子S高级编程培训教材内部教材处理同步和异步错误教程文件(15页珍藏版)》请在金锄头文库上搜索。

1、处理同步和异步错误,处理异步错误,异步错误并未对应到程序的某个特定位置,例如,它们可同程序的处理过程异步出现。,1) 仅适用于 S7-400,2) 非Stop w/o Error OB,举例,错误类型,时间错误,超出最大扫描时间,电源错误,后备电源故障,诊断中断,可诊断模块的输入断线,删除/插入模块中断,在运行模式下将一个 S7-400 信号模块移除,CPU 硬件错误,在MPI 接口出现故障信号电平,程序顺序错误,更新过程映像出现错误 (模块有故障),机架错误,分布式机架上电源故障,通信错误,不正确的消息代码,错误 OB,OB 80,OB 81 2),OB 82,OB 83 1),OB 84

2、1),OB 85,OB 86 1),OB 87,处理故障组织块,为了在发生错误时抑制 CPU STOP,传送一个空的故障组织块 您可以在Error OB中编写预期的响应,并根据需要在执行 Error OB之后使用系统功能 SFC 46 请求系统处于 Stop 状态 在故障组织块的启动信息中存有一个附加错误标识符,可在程序中检验。 在线帮助或者系统和标准功能手册中详细介绍了故障组织块 将OB传送到一个不支持该OB的CPU时,将被该CPU拒绝并伴随一个错误消息。,异步错误 OB 举例,OB81:Error OB: 电源故障 Network 1:电池故障,到来的事件 L#OB81_FLT_ID/ 加

3、载错误标识符 LB#16#22/ 标识符: CR 中的电池故障 =I =M81.1/ 设置存储器标志位 L#OB81_EV_CLASS/ 标识符: 到来,离去 LB#16#39/ 标识符: 到来事件 =I =M81.2/ 存储器标志位到来事件 AM81.1/ 电池故障和 AM81.2/ 到来事件 SM81.0/ 将存储器标志位设为错误显示/ Network 2:当电池恢复正常后,复位辅助存储器标志位 L#OB81_EV_CLASS/ 标识符: 到来,离去 LB#16#38/ 标识符: 离去 =I RM81.0/ 复位存储器标志位,编程错误 OB121 的启动信息,数据类型,变量名,OB121_

4、EV_CLASS,BYTE,OB121_SW_FLT,BYTE,解释,赋值,B#16#25=调用编程错误 OB121,错误代码(参见文本),OB121_PRIORITY,BYTE,OB121_OB_NUMBR,BYTE,其中发生错误的优先级,OB 编号(B#16#79),OB121_BLK_TYPE,BYTE,OB121_RESERVED_1,BYTE,中断块的类型(仅适用S7-400 ) OB: B#16#88, DB: B#16#8A, FB: B#16#8E, FC: B#16#8C,错误码的补充(参见文本),OB121_FLT_REG,WORD,OB121_BLK_NUM,WORD,O

5、B121:错误源,发生错误的块的号码,OB121_PRG_ADDR,WORD,OB121_DATE_TIME,DT,引发错误的块中的错误地址(仅适用 S7-400),发生编程错误时的时间,访问错误 OB122 的启动信息,数据类型,变量名称,OB122_EV_CLASS,BYTE,OB122_SW_FLT,BYTE,解释,赋值,B#16#29=调用访问错误,错误代码(可能的取值:B#16#42、B#16#43、 B#16#44、B#16#45),OB122_PRIORITY,BYTE,OB122_OB_NUMBR,BYTE,其中发生错误的优先级,OB 编号(B#16#80),OB122_BLK

6、_TYPE,BYTE,OB122_MEM_AREA,BYTE,中断块的类型(仅适用于 S7-400) OB: B#16#88, DB: B#16#8A, FB: B#16#8E, FC: B#16#8C,错误码的补充(参见文本),OB122_FLT_REG,WORD,OB122_BLK_NUM,WORD,OB122:发生错误处的地址标识符,其中发生错误的块的号码,OB122_PRG_ADDR,WORD,OB122_DATE_TIME,DT,引发错误的块中的错误地址(仅适用 S7-400),发生编程错误时的时间,屏蔽同步错误,同步错误 OB 的缺点: 用于过程管理和错误处理的代码分布在至少两个块

7、中 后续更改或维护方面的问题 较理想的情况: 用于过程管理和错误处理的代码位于同一个块中 屏蔽同步错误: 在“紧急”指令之前: SFC 36 MSK_FLT: 屏蔽同步错误 (OB12x 禁止调用) 执行“紧急”指令 检查是否有错误发生SFC 38 READ_ERR: 读 Error Register(错误寄存器) OB12x 再次开放调用:SFC 37 DMSK_FLT: 解除屏蔽同步错误,SFC 36 屏蔽同步错误,MSK_FLT,EN,ENO,PRGFLT_SET_MASK,ACCFLT_SET_MASK,RET_VAL,?.?,PRGFLT_MASKED,?.?,ACCFLT_MASK

8、ED,?.?,?.?,?.?,参数声明数据类型内存区域解释 PRGFLT_SET_MASKINPUTDWORD I, Q, M, D, L, Const.新(附加的)编程错误过滤器 ACCFLT_SET_MASKINPUTBYTE I, Q, M, D, L, Const.新附加访问故障过滤器 RET_VALOUTPUTINT I, Q, M, D, LSFC 返回值,001:新过滤器同已有的过器滤重叠 PRGFLT_MASKEDOUTPUTDWORD I, Q, M, D, L完成编程错误过滤 ACCFLT_MASKEDOUTPUTDWORD I, Q, M, D, L完成访问错误过滤,编程

9、错误过滤器的结构,BCD 转换错误,范围长度错误,读,范围长度错误,写,范围错误,读,范围错误,写,计时器号错误,计数器号错误,未对齐,读,未对齐,写,未定义,写错误 DB,写错误实例 DB,块编号错误 DB,块编号错误 DI,块编号错误 FC,块编号错误 FB,DB 未加载,FC 未加载,FB 未加载,注: 输出参数 RGFLT_MASKED 的相应位的设置如下:Value(值) = 1: 屏蔽错误。 Value(值) = 0: 不屏蔽错误。,访问错误过滤器的结构,31 30 29 . . . 7 6 5 4 3 2 1 0,I/O 读访问错误,仅对于 S7-400:I/O 访问错误,指读取

10、不存在的模块或者 重复访问,未定义,I/O 写访问错误,仅对于S7-400:向不存在的模块写入或者重复访问而引发 I/O访问错误,. . .,注:输出参数 ACCFLT_MASKED 的相应位 设置如下: Value = 1: 屏蔽错误。 Value = 0: 不屏蔽错误。 未定义的位的值为“1”。,SFC 37 解除同步错误屏蔽,DMSK_FLT,EN,ENO,PRGFLT_RESET_MASK,ACCFLT_RESET_MASK,RET_VAL,?.?,PRGFLT_MASKED,?.?,ACCFLT_MASKED,?.?,?.?,?.?,参数声明数据类型内存区域解释 PRGFLT_RES

11、ET_MASKINPUTDWORD I, Q, M, D, L, Const.编程错误过滤器复位 ACCFLT_RESET_MASKINPUTBYTE I, Q, M, D, L, Const.访问错误过滤器复位 RET_VALOUTPUTINT I, Q, M, D, LSFC返回值,W#16#0001:新的过滤器中包含已存贮的 过滤未设置的位 PRGFLT_MASKEDOUTPUTDWORD I, Q, M, D, L仍被屏蔽的编程错误 ACCFLT_MASKEDOUTPUTDWORD I, Q, M, D, L仍被屏蔽的访问错误,SFC 38 读错误寄存器,READ_ERR,EN,ENO

12、,PRGFLT_QUERRY,ACCFLT_QUERRY,RET_VAL,?.?,PRGFLT_CLR,?.?,ACCFLT_CLR,?.?,?.?,?.?,参数声明数据类型内存区域 解释 PRGFLT_QUERRYINPUTDWORD I, Q, M, D, L, Const.编程错误过滤检查 ACCFLT_QUERRYINPUTBYTE I, Q, M, D, L, Const.访问错误过滤检查 RET_VALOUTPUTINT I, Q, M, D, LSFC返回值,W#16#0001:检查过滤结果中包含了未设置的 位(在存贮的过滤器中) PRGFLT_CLROUTPUTDWORD I,

13、 Q, M, D, L编程错误过滤及错误信息 ACCFLT_CLROUTPUTDWORD I, Q, M, D, L访问错误过滤及错误信息,示例:数据块测试,Network 1: Masking, Testing, Demasking / Mask DB does not exist CALLSFC36( PRGFLT_SET_MASK:= DW#16#4000000,/ 标识符:DB 不存在 ACCFLT_SET_MASK:= DW#16#0,/ 未屏蔽访问错误 RET_VAL:= #SFC36Error, PRGFLT_MASKED:= #Prog36Mask, ACCFLT_MASKED

14、:= #Acc36Mask); / Test call OPN DBDB_NO; / Check programming error CALLSFC38( PRGFLT_QUERRY:= DW#16#4000000,/ 标识符:DB 不存在 ACCFLT_QUERRY:= DW#16#0,/ 未屏蔽访问错误 RET_VAL:= #SFC38Error, PRGFLT_MASKED:= #Prog38Mask, ACCFLT_MASKED:= #Acc38Mask); / Evaluate result L#Prog38Mask LDW#16#4000000=D =#DB_NOT_THERE/

15、设置辅助变量 DB not there/ Demask DB does not exist CALLSFC37( PRGFLT_RESET_MASK:= DW#16#4000000,/ 标识符:DB 不存在 ACCFLT_RESET_MASK:= DW#16#0,/ 未屏蔽访问错误 RET_VAL:= #SFC37Error, PRGFLT_MASKED:= #Prog37Mask, ACCFLT_MASKED:= #Acc37Mask);,练习 8.1: FC81中的错误处理,FC 81,EN,ENO,Meas_values,Sum,Mean_value,声明名称类型 inMeas_valuesANY outRET_VALINT outSumREAL outMean_valueREAL,RET_VAL,错误代码,错误原因错误代码 无错误0 数据类型REAL-1 DB 不存在-2 范围长度错误-4,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号