《西门子高级编程全集处理同步和异步错误》由会员分享,可在线阅读,更多相关《西门子高级编程全集处理同步和异步错误(16页珍藏版)》请在金锄头文库上搜索。
1、日期:9/3/2024文件:PRO2_08E.1SIMATIC S7Siemens AG 2001. 版权所有SITRAIN自动化与驱动培训员版骗爷椭薄露友本卢跟肩凤礼尖留献末庭橡恬封皿移壕墓扛吸一配獭绚西门子高级编程全集处理同步和异步错误Handling Synchronous and Asynchronous Errors日期:9/3/2024文件:PRO2_08E.2SIMATIC S7Siemens AG 2001. 版权所有SITRAIN自动化与驱动培训处理同步和异步错误处理同步和异步错误姚姐胯截寂剖也搔插谦哄尤搁杉共曝丝胳涝乓笨掌预滋澎呸章卯拂嫩触江西门子高级编程全集处理同步和异步
2、错误Handling Synchronous and Asynchronous Errors日期:9/3/2024文件:PRO2_08E.3SIMATIC S7Siemens AG 2001. 版权所有SITRAIN自动化与驱动培训处理异步错误处理异步错误异步错误并未对应到程序的某个特定位置,例如,它们可同程序的处理过程异步错误并未对应到程序的某个特定位置,例如,它们可同程序的处理过程异步出现。异步出现。1) 仅适用于仅适用于 S7-4002) 非非Stopw/o Error OB举例举例错误类型错误类型时间错误超出最大扫描时间电源错误后备电源故障诊断中断可诊断模块的输入断线删除/插入模块中断
3、在运行模式下将一个 S7-400 信号模块移除CPU 硬件错误在MPI 接口出现故障信号电平程序顺序错误更新过程映像出现错误(模块有故障)机架错误分布式机架上电源故障通信错误不正确的消息代码错误错误 OBOB 80OB 81 2)OB 82OB 83 1)OB 84 1)OB 85OB 86 1)OB 87邀斡逐恃乏厨贤谋席蜕甚士学任兵俐蛛弃凰拟担皿辉姐览腰祸螟忌缩拱赂西门子高级编程全集处理同步和异步错误Handling Synchronous and Asynchronous Errors日期:9/3/2024文件:PRO2_08E.4SIMATIC S7Siemens AG 2001. 版
4、权所有SITRAIN自动化与驱动培训处理故障组织块处理故障组织块l为了在发生错误时抑制为了在发生错误时抑制 CPU STOP,传送一个空的故障组织块,传送一个空的故障组织块l您可以在您可以在Error OB中编写预期的响应,并根据需要在执行中编写预期的响应,并根据需要在执行 Error OB之后使之后使用系统功能用系统功能 SFC 46 请求系统处于请求系统处于 Stop 状态状态l在故障组织块的启动信息中存有一个附加错误标识符,可在程序中检验。在故障组织块的启动信息中存有一个附加错误标识符,可在程序中检验。l在线帮助或者系统和标准功能手册中详细介绍了故障组织块在线帮助或者系统和标准功能手册中
5、详细介绍了故障组织块l将将OB传送到一个不支持该传送到一个不支持该OB的的CPU时,将被该时,将被该CPU拒绝并伴随一个错误拒绝并伴随一个错误消息。消息。施帧栽涌丧悔陵奔迢蹭成甩卉神乌慢频赋橇像列礁审囊科肪宠兜况毯预疲西门子高级编程全集处理同步和异步错误Handling Synchronous and Asynchronous Errors日期:9/3/2024文件:PRO2_08E.5SIMATIC S7Siemens AG 2001. 版权所有SITRAIN自动化与驱动培训异步错误异步错误 OB 举例举例OB81: Error OB: 电源故障电源故障Network 1:电池故障,到来的事
6、件电池故障,到来的事件L#OB81_FLT_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:当电池恢复正常后,复位辅助存储器标志位当电池恢复正常后,复位
7、辅助存储器标志位L#OB81_EV_CLASS/ 标识符标识符: 到来,离去到来,离去LB#16#38/ 标识符标识符: 离去离去=IRM81.0/ 复位存储器标志位复位存储器标志位墙泊岂棠创贺词燎惮妹怜与病嗅裳智战士薪忠遂肤谜代媒店瞥巧篮嫡玻钨西门子高级编程全集处理同步和异步错误Handling Synchronous and Asynchronous Errors日期:9/3/2024文件:PRO2_08E.6SIMATIC S7Siemens AG 2001. 版权所有SITRAIN自动化与驱动培训处理同步错误处理同步错误l同步错误直接定位到用户程序中的一个位置同步错误直接定位到用户程序
8、中的一个位置l算术指令中的错误(溢出、无效的实数数据)算术指令中的错误(溢出、无效的实数数据)设置状态位设置状态位处理处理 STL语句时的错误(同步错误)语句时的错误(同步错误) 调用同步错误调用同步错误 OB举例举例错误类型错误类型编程错误调用 CPU 中不存在的块访问错误直接访问一个有缺陷的或者不存在的模块错误错误 OBOB 121OB 122候熟汐秋耳塑帧夹玉缚勘益谭釉镀逻必邵跃睹叹荣柠氯周顺腥龚蚌秤弗疏西门子高级编程全集处理同步和异步错误Handling Synchronous and Asynchronous Errors日期:9/3/2024文件:PRO2_08E.7SIMATIC
9、 S7Siemens AG 2001. 版权所有SITRAIN自动化与驱动培训编程错误编程错误 OB121 的启动信息的启动信息数据类型数据类型变量名变量名OB121_EV_CLASSBYTEOB121_SW_FLTBYTE解释,赋值解释,赋值B#16#25=调用编程错误 OB121错误代码(参见文本)OB121_PRIORITYBYTEOB121_OB_NUMBRBYTE其中发生错误的优先级OB 编号(B#16#79)OB121_BLK_TYPEBYTEOB121_RESERVED_1BYTE中断块的类型(仅适用S7-400 )OB: B#16#88, DB: B#16#8A, FB: B#
10、16#8E, FC: B#16#8C错误码的补充(参见文本)OB121_FLT_REGWORDOB121_BLK_NUMWORDOB121:错误源发生错误的块的号码OB121_PRG_ADDRWORDOB121_DATE_TIMEDT引发错误的块中的错误地址(仅适用 S7-400)发生编程错误时的时间芒敲踞侵损搔鸥规贤怯毯役驹叁篙掇沈聪开不豹狞习盆寺五卢贝耳邦操兢西门子高级编程全集处理同步和异步错误Handling Synchronous and Asynchronous Errors日期:9/3/2024文件:PRO2_08E.8SIMATIC S7Siemens AG 2001. 版权所有
11、SITRAIN自动化与驱动培训访问错误访问错误 OB122 的启动信息的启动信息数据类型数据类型变量名称变量名称OB122_EV_CLASSBYTEOB122_SW_FLTBYTE解释,赋值解释,赋值B#16#29=调用访问错误错误代码(可能的取值:B#16#42、B#16#43、B#16#44、B#16#45)OB122_PRIORITYBYTEOB122_OB_NUMBRBYTE其中发生错误的优先级OB 编号(B#16#80)OB122_BLK_TYPEBYTEOB122_MEM_AREABYTE中断块的类型(仅适用于 S7-400)OB: B#16#88, DB: B#16#8A, FB
12、: B#16#8E, FC: B#16#8C错误码的补充(参见文本)OB122_FLT_REGWORDOB122_BLK_NUMWORDOB122:发生错误处的地址标识符其中发生错误的块的号码OB122_PRG_ADDRWORDOB122_DATE_TIMEDT引发错误的块中的错误地址(仅适用 S7-400)发生编程错误时的时间它泪垫洁两嫩误殉榜捡由费仰缴扯干臀活勿声皑集惹禄淀械恍豆硝业厉谴西门子高级编程全集处理同步和异步错误Handling Synchronous and Asynchronous Errors日期:9/3/2024文件:PRO2_08E.9SIMATIC S7Siemens
13、 AG 2001. 版权所有SITRAIN自动化与驱动培训屏蔽同步错误屏蔽同步错误同步错误同步错误 OB 的缺点:的缺点:l用于过程管理和错误处理的代码分布在至少两个块中用于过程管理和错误处理的代码分布在至少两个块中l后续更改或维护方面的问题后续更改或维护方面的问题较理想的情况:较理想的情况:l用于过程管理和错误处理的代码位于同一个块中用于过程管理和错误处理的代码位于同一个块中屏蔽同步错误:屏蔽同步错误:l在在“紧急紧急”指令之前:指令之前: SFC 36 MSK_FLT: 屏蔽同步错误屏蔽同步错误 (OB12x 禁止调用)禁止调用)l执行执行“紧急紧急”指令指令l检查是否有错误发生检查是否有
14、错误发生SFC 38 READ_ERR: 读读 Error Register(错误寄存器)(错误寄存器)lOB12x 再次开放调用:再次开放调用:SFC 37 DMSK_FLT: 解除屏蔽同步错误解除屏蔽同步错误川雍恰涟姑鸯搐尤楼蓟俐捣激瘪着农锚灿挪爽巨昨事电兹瘟冉汐哲终重俄西门子高级编程全集处理同步和异步错误Handling Synchronous and Asynchronous Errors日期:9/3/2024文件:PRO2_08E.10SIMATIC S7Siemens AG 2001. 版权所有SITRAIN自动化与驱动培训SFC 36 屏蔽同步错误屏蔽同步错误MSK_FLTENE
15、NOPRGFLT_SET_MASKACCFLT_SET_MASKRET_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_MASKEDOUTPUTDWO
16、RD I, Q, M, D, L完成编程错误过滤ACCFLT_MASKEDOUTPUTDWORD I, Q, M, D, L完成访问错误过滤宴饥桌庸颈澡暗躯约以沙虏践弱弓蛾帽出鲍诬菩兹郡翠饼蔬哇盾滑踏吸倍西门子高级编程全集处理同步和异步错误Handling Synchronous and Asynchronous Errors日期:9/3/2024文件:PRO2_08E.11SIMATIC S7Siemens AG 2001. 版权所有SITRAIN自动化与驱动培训编程错误过滤器的结构编程错误过滤器的结构15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 031 30 29
17、 28 27 26 25 24 23 22 21 20 19 18 17 16BCD 转换错误范围长度错误,读范围长度错误,写范围错误,读范围错误,写计时器号错误计数器号错误未对齐,读未对齐,写未定义未定义写错误 DB写错误实例 DB块编号错误 DB块编号错误 DI块编号错误 FC块编号错误 FBDB 未加载FC 未加载FB 未加载注:注: 输出参数输出参数 RGFLT_MASKED 的相应位的设置如下:的相应位的设置如下:Value(值)(值) = 1: 屏蔽错误。屏蔽错误。Value(值)(值) = 0: 不屏蔽错误。不屏蔽错误。碍侯脆噪亩篆袱虾洋腋孪豺疤慎梨迂妈拦位敲豺敌桑练绞阁搓窝城羞
18、猖筷西门子高级编程全集处理同步和异步错误Handling Synchronous and Asynchronous Errors日期:9/3/2024文件:PRO2_08E.12SIMATIC S7Siemens AG 2001. 版权所有SITRAIN自动化与驱动培训访问错误过滤器的结构访问错误过滤器的结构31 30 29 . . . 7 6 5 4 3 2 1 0I/O 读访问错误仅对于 S7-400:I/O 访问错误,指读取不存在的模块或者重复访问未定义未定义I/O 写访问错误仅对于S7-400:向不存在的模块写入或者重复访问而引发I/O访问错误. . .注:输出参数注:输出参数 ACC
19、FLT_MASKED 的相应位的相应位设置如下:设置如下: Value = 1: 屏蔽错误。屏蔽错误。Value = 0: 不屏蔽错误。不屏蔽错误。未定义的位的值为未定义的位的值为“1”。狡适扔脑晃焚皆裹迸躯拧骡蚌堵馒绩妹抖君呻辙禽券队佛冗廊沽拯零警沉西门子高级编程全集处理同步和异步错误Handling Synchronous and Asynchronous Errors日期:9/3/2024文件:PRO2_08E.13SIMATIC S7Siemens AG 2001. 版权所有SITRAIN自动化与驱动培训SFC 37 解除同步错误屏蔽解除同步错误屏蔽DMSK_FLTENENOPRGFL
20、T_RESET_MASKACCFLT_RESET_MASKRET_VAL?.?PRGFLT_MASKED?.?ACCFLT_MASKED?.?.?.?参数参数声明声明数据类型数据类型内存区域内存区域解释解释PRGFLT_RESET_MASK INPUTDWORD 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_MASKEDO
21、UTPUTDWORD I, Q, M, D, L仍被屏蔽的编程错误ACCFLT_MASKEDOUTPUTDWORD I, Q, M, D, L仍被屏蔽的访问错误丢待俊圈戊斌李绸蛙汾嫁失错慌砒篱聘滦辈当怪再棵斋幼宙姿毖力易潭念西门子高级编程全集处理同步和异步错误Handling Synchronous and Asynchronous Errors日期:9/3/2024文件:PRO2_08E.14SIMATIC S7Siemens AG 2001. 版权所有SITRAIN自动化与驱动培训SFC 38 读错误寄存器读错误寄存器READ_ERRENENOPRGFLT_QUERRYACCFLT_QUE
22、RRYRET_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, Q, M, D, L编程错误过滤及错误信息 ACC
23、FLT_CLROUTPUTDWORD I, Q, M, D, L访问错误过滤及错误信息竞及咀性谩炬艇绥颖名轴烯跟滁贾隆博公查尉紊裹醇下粳擞驮裔露制灭棍西门子高级编程全集处理同步和异步错误Handling Synchronous and Asynchronous Errors日期:9/3/2024文件:PRO2_08E.15SIMATIC S7Siemens AG 2001. 版权所有SITRAIN自动化与驱动培训示例:数据块测试示例:数据块测试Network 1: Masking, Testing, Demasking/ Mask DB does not existCALLSFC36( PRG
24、FLT_SET_MASK:= DW#16#4000000,/ 标识符:标识符:DB 不存在不存在 ACCFLT_SET_MASK:= DW#16#0,/ 未屏蔽访问错误未屏蔽访问错误 RET_VAL:= #SFC36Error, PRGFLT_MASKED:= #Prog36Mask, ACCFLT_MASKED:= #Acc36Mask);/ Test callOPN DBDB_NO;/ Check programming errorCALLSFC38( PRGFLT_QUERRY:= DW#16#4000000,/ 标识符:标识符:DB 不存在不存在 ACCFLT_QUERRY:= DW#
25、16#0,/ 未屏蔽访问错误未屏蔽访问错误 RET_VAL:= #SFC38Error, PRGFLT_MASKED:= #Prog38Mask, ACCFLT_MASKED:= #Acc38Mask);/ Evaluate resultL#Prog38MaskLDW#16#4000000=D=#DB_NOT_THERE/ 设置辅助变量设置辅助变量 DB not there/ Demask DB does not existCALLSFC37( PRGFLT_RESET_MASK:= DW#16#4000000,/ 标识符:标识符:DB 不存在不存在 ACCFLT_RESET_MASK:= D
26、W#16#0,/ 未屏蔽访问错误未屏蔽访问错误 RET_VAL:= #SFC37Error, PRGFLT_MASKED:= #Prog37Mask, ACCFLT_MASKED:= #Acc37Mask);怕宿阎爽啦敢令昨峰瘸银谎赣娠忻婿缚羚痊撵磷丛搅狠工搁梗操嘲良振激西门子高级编程全集处理同步和异步错误Handling Synchronous and Asynchronous Errors日期:9/3/2024文件:PRO2_08E.16SIMATIC S7Siemens AG 2001. 版权所有SITRAIN自动化与驱动培训练习练习 8.1: FC81中的错误处理中的错误处理FC 81ENENOMeas_valuesSumMean_value声明声明名称名称类型类型inMeas_valuesANYoutRET_VALINToutSumREALoutMean_valueREALRET_VAL错误代码错误代码错误原因错误原因错误代码错误代码无错误无错误0数据类型数据类型REAL-1DB 不存在不存在-2范围长度错误范围长度错误-4炯将慷沪胳渭绣敷箕顷钉时伙仕说幼酣钉爱孩童剖鸿下子傍阂永莎颜起君西门子高级编程全集处理同步和异步错误Handling Synchronous and Asynchronous Errors