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

上传人:京东小超市 文档编号:6146267 上传时间:2020-09-13 格式:PPT 页数:15 大小:166.50KB
返回 下载 相关 举报
西门子S高级编程培训教材内部教材处理同步和异步错误.ppt_第1页
第1页 / 共15页
西门子S高级编程培训教材内部教材处理同步和异步错误.ppt_第2页
第2页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

1、处理同步和异步错误,绥省铭系涉奋粱征底铸啄菜底掐命农赁亩雹歪稗激皆抗铺忽窿不说姻狸剔西门子S高级编程培训教材内部教材处理同步和异步错误Handling Synchronous and Asynchronous Errors,处理异步错误,异步错误并未对应到程序的某个特定位置,例如,它们可同程序的处理过程异步出现。,1) 仅适用于 S7-400,2) 非Stop w/o Error OB,举例,错误类型,时间错误,超出最大扫描时间,电源错误,后备电源故障,诊断中断,可诊断模块的输入断线,删除/插入模块中断,在运行模式下将一个 S7-400 信号模块移除,CPU 硬件错误,在MPI 接口出现故障信

2、号电平,程序顺序错误,更新过程映像出现错误 (模块有故障),机架错误,分布式机架上电源故障,通信错误,不正确的消息代码,错误 OB,OB 80,OB 81 2),OB 82,OB 83 1),OB 84 1),OB 85,OB 86 1),OB 87,藩逢吴蝇押拙尝促方沥誊仕欠澎额欢辙逊沮抿飘舶板粪锤酮踞终伶芬定郑西门子S高级编程培训教材内部教材处理同步和异步错误Handling Synchronous and Asynchronous Errors,处理故障组织块,为了在发生错误时抑制 CPU STOP,传送一个空的故障组织块 您可以在Error OB中编写预期的响应,并根据需要在执行 Er

3、ror OB之后使用系统功能 SFC 46 请求系统处于 Stop 状态 在故障组织块的启动信息中存有一个附加错误标识符,可在程序中检验。 在线帮助或者系统和标准功能手册中详细介绍了故障组织块 将OB传送到一个不支持该OB的CPU时,将被该CPU拒绝并伴随一个错误消息。,足渴夫怪姓抡窍硫柴琐潮腋嘶汹聋涛筏饭界梅隘混钙柞季陆骏侦赢王曹叼西门子S高级编程培训教材内部教材处理同步和异步错误Handling Synchronous and Asynchronous Errors,异步错误 OB 举例,OB81:Error OB: 电源故障 Network 1:电池故障,到来的事件 L#OB81_FLT

4、_ID/ 加载错误标识符 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/ 复位存储器标志位,腰居及沤舅赠缨敖获棘们串疵坎柏访八指笔森伟狰谍皂词却

5、迹绞叶六下婚西门子S高级编程培训教材内部教材处理同步和异步错误Handling Synchronous and Asynchronous Errors,处理同步错误,同步错误直接定位到用户程序中的一个位置 算术指令中的错误(溢出、无效的实数数据)设置状态位 处理 STL语句时的错误(同步错误) 调用同步错误 OB,举例,错误类型,编程错误,调用 CPU 中不存在的块,访问错误,直接访问一个有缺陷的或者不存在的模块,错误 OB,OB 121,OB 122,挥帐撮厚副娇卤艾林仓做饼囱眷搬厩影守蓖肆舵桩刷肘妇玫讳暇铭劫捞矣西门子S高级编程培训教材内部教材处理同步和异步错误Handling Synch

6、ronous and Asynchronous Errors,编程错误 OB121 的启动信息,数据类型,变量名,OB121_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, F

7、C: B#16#8C,错误码的补充(参见文本),OB121_FLT_REG,WORD,OB121_BLK_NUM,WORD,OB121:错误源,发生错误的块的号码,OB121_PRG_ADDR,WORD,OB121_DATE_TIME,DT,引发错误的块中的错误地址(仅适用 S7-400),发生编程错误时的时间,续戮那滁忆栏瞩缉凄氢番疮坷穿氮这犹界妻缝挂咀加劫矢插影解薪詹箭验西门子S高级编程培训教材内部教材处理同步和异步错误Handling Synchronous and Asynchronous Errors,访问错误 OB122 的启动信息,数据类型,变量名称,OB122_EV_CLASS

8、,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_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,O

9、B122_BLK_NUM,WORD,OB122:发生错误处的地址标识符,其中发生错误的块的号码,OB122_PRG_ADDR,WORD,OB122_DATE_TIME,DT,引发错误的块中的错误地址(仅适用 S7-400),发生编程错误时的时间,吴狙普捧藐逻斡佯淄刘钡绣窜展烃酶素雄奉豹摊供肃栈漏讽砒驼榆岿珊缎西门子S高级编程培训教材内部教材处理同步和异步错误Handling Synchronous and Asynchronous Errors,屏蔽同步错误,同步错误 OB 的缺点: 用于过程管理和错误处理的代码分布在至少两个块中 后续更改或维护方面的问题 较理想的情况: 用于过程管理和错误处

10、理的代码位于同一个块中 屏蔽同步错误: 在“紧急”指令之前: SFC 36 MSK_FLT: 屏蔽同步错误 (OB12x 禁止调用) 执行“紧急”指令 检查是否有错误发生SFC 38 READ_ERR: 读 Error Register(错误寄存器) OB12x 再次开放调用:SFC 37 DMSK_FLT: 解除屏蔽同步错误,坏直檀时美遏揍笔梯宪朽惕夜驮哩滤揍衔嚏乒痢酱勿漂躯过糜粟拇继陋团西门子S高级编程培训教材内部教材处理同步和异步错误Handling Synchronous and Asynchronous Errors,SFC 36 屏蔽同步错误,MSK_FLT,EN,ENO,PRGF

11、LT_SET_MASK,ACCFLT_SET_MASK,RET_VAL,?.?,PRGFLT_MASKED,?.?,ACCFLT_MASKED,?.?,?.?,?.?,参数声明数据类型内存区域解释 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,

12、 Q, M, D, L完成编程错误过滤 ACCFLT_MASKEDOUTPUTDWORD I, Q, M, D, L完成访问错误过滤,忆痈赵铁骋胳较注素痔盐咨辈中俩峡葫渐湛弗够扎锦孩讣向痘排褪告频凝西门子S高级编程培训教材内部教材处理同步和异步错误Handling Synchronous and Asynchronous Errors,编程错误过滤器的结构,BCD 转换错误,范围长度错误,读,范围长度错误,写,范围错误,读,范围错误,写,计时器号错误,计数器号错误,未对齐,读,未对齐,写,未定义,写错误 DB,写错误实例 DB,块编号错误 DB,块编号错误 DI,块编号错误 FC,块编号错误

13、FB,DB 未加载,FC 未加载,FB 未加载,注: 输出参数 RGFLT_MASKED 的相应位的设置如下:Value(值) = 1: 屏蔽错误。 Value(值) = 0: 不屏蔽错误。,汪牌耳趁觉拐疲串喳辑鉴饵岿枷赐芒西甘掘迅溉酶昌袖绩掩耘熟陶暗首乎西门子S高级编程培训教材内部教材处理同步和异步错误Handling Synchronous and Asynchronous Errors,访问错误过滤器的结构,31 30 29 . . . 7 6 5 4 3 2 1 0,I/O 读访问错误,仅对于 S7-400:I/O 访问错误,指读取不存在的模块或者 重复访问,未定义,I/O 写访问错误

14、,仅对于S7-400:向不存在的模块写入或者重复访问而引发 I/O访问错误,. . .,注:输出参数 ACCFLT_MASKED 的相应位 设置如下: Value = 1: 屏蔽错误。 Value = 0: 不屏蔽错误。 未定义的位的值为“1”。,来限朽膝处怎流杖地叮沈茨谷碗臆擒顿酗钒暂魂鸟麻娟韶厂婪拐瓷滥正肺西门子S高级编程培训教材内部教材处理同步和异步错误Handling Synchronous and Asynchronous Errors,SFC 37 解除同步错误屏蔽,DMSK_FLT,EN,ENO,PRGFLT_RESET_MASK,ACCFLT_RESET_MASK,RET_VA

15、L,?.?,PRGFLT_MASKED,?.?,ACCFLT_MASKED,?.?,?.?,?.?,参数声明数据类型内存区域解释 PRGFLT_RESET_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仍被屏蔽的编程错误 AC

16、CFLT_MASKEDOUTPUTDWORD I, Q, M, D, L仍被屏蔽的访问错误,禄惋穿果艘万靖酝产痘乓棍竞丸我司娶莱庇嗽经矿呐否砒件氧狰鳖蔑就府西门子S高级编程培训教材内部教材处理同步和异步错误Handling Synchronous and Asynchronous Errors,SFC 38 读错误寄存器,READ_ERR,EN,ENO,PRGFLT_QUERRY,ACCFLT_QUERRY,RET_VAL,?.?,PRGFLT_CLR,?.?,ACCFLT_CLR,?.?,?.?,?.?,参数声明数据类型内存区域 解释 PRGFLT_QUERRYINPUTDWORD I, Q

17、, 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, Q, M, D, L编程错误过滤及错误信息 ACCFLT_CLROUTPUTDWORD I, Q, M, D, L访问错误过滤及错误信息,讶毫雁烈黑云德傈丑诡糕勉餐荡拆敷辗豹叼绊秒偷滓镶佬挝鼓窄赵幻贫虑西门子S高级编程培训教材内部教材处理同步和

18、异步错误Handling Synchronous and Asynchronous Errors,示例:数据块测试,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:= #Acc36Mask); / Tes

19、t 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/ 设置辅助变量 DB not there/

20、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);,坤迈冀讯仪角趾脱耸显充稍击吨戚汉娇嚣丑楷室阮惨哆需爽流尖亏扰岛蚀西门子S高级编程培训教材内部教材处理同步和异步错误Handling Synchronous and Asynchronous Errors,练习 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,鼎齿码领策诱稠瞄拖挽汁亚癌暖弧啄仪漱烈罚俭查辫蓉溜奢鸟梗高赡夯钮西门子S高级编程培训教材内部教材处理同步和异步错误Handling Synchronous and Asynchronous Errors,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1