长沙工控帮教育科技有限公司整理 Copy
11 用于处理同步出错的SFC
11.1 屏蔽同步出错
引言
同步出错是编程和访问出错。使用不正确的地址区域、编号或不正确的地址进行编 程将导致此类出错的发生。屏蔽这些同步出错意味着:
• 屏蔽掉的同步出错不会触发出错OB调用,且不会导致所编程的备选处理。
• CPU将在出错寄存器中“记录”被屏蔽掉的已发生出错。
通过调用SFC36 “MSK_FLT”执行屏蔽。
取消屏蔽出错意味着取消先前设置的屏蔽,并清除当前优先级的事件状态寄存器中 的相应位。使用如下操作取消屏蔽:
• 调用SFC37 “DMSK_FLT”
• 在完成当前优先级时取消屏蔽。
如果一个出错在取消屏蔽后又发生,则操作系统将启动相应的出错OB。可以编程 OB121实现对编程出错的响应处理,编程OB122实现对访问出错的响应处理。
可以使用SFC38 “READ_ERR”读出被屏蔽掉的已发生出错。
注意:注意:对于S7-300 (CPU 318除外),无论是否屏蔽出错,出错都将进入诊断 缓冲区,CPU的组出错LED都将亮起。
出错的常规处理
如果用户程序中出现编程和访问出错,可以不同方式做出响应:
• 可以对出现出错时操作系统调用的相应出错OB进行编程。
• 可以针对每个优先级单独禁用出错OB调用。这种情况下,当特定优先级中发生 此类出错时,CPU将不切换到STOP模式。CPU将出错输入到出错寄存器中。
但是,从此条目中无法识别出错的发生时间或频率。
长沙工控帮教育科技有限公司整理
Error masked?
Synchronous error
NO YES
The reaction to an error is programmed in the OB.
An error is entered in the error register.
Error OB call (the CPU changes to STOP if the error OB is not
programmed).
Error OB call (the CPU does not change to STOP if an error occurs).
disabled
过滤器
同步出错被分配给特殊的位模式(被称为出错过滤器(屏蔽))。此出错过滤器也在 SFC 36、37和38的输入和输出参数中。
同步出错分为可以使用两种出错过滤器屏蔽的编程出错和访问出错。这些出错过滤 器的图解如下。
长沙工控帮教育科技有限公司整理
编程出错过滤器
下图展示了编程出错的出错过滤器的位模式。编程出错的出错过滤器位于参数 PRGFLT_...中。
请参考“编程出错的可能出错原因低位字”或“编程出错的可能出错原因高位字”
DB not loaded x
3 24
FC not loaded
FB not loaded x x
x x
x
SFC not loaded
SFB not loaded Low
word
High word
Legend: not relevant
Bit number
BCD conversion error
Area length error when writing Area length error when reading
Area error when reading
Timer number error Counter number error
Area error when writing
Alignment error when reading Alignment error when writing
Bit number
Write error data block
Block number error DB
Write error instance data block
Block number error DI
Block number error FB Block number error FC
注意
编程出错过滤器的高位字中的29 (“未加载SFC”)和31 (“未加载SFB”)位仅适用于 S7-400和CPU 318。
长沙工控帮教育科技有限公司整理
不相关位
下图显示了除CPU 417和CPU 417H外所有CPU的访问出错的出错过滤器的位 模式。访问出错的出错过滤器在参数ACCFLT_...中。有关访问出错的解释,
请参考表格“除CPU 318外所有CPU 31x的可能出错原因”或“所有CPU 41x和 CPU 318的可能出错原因”。
I/O access error when reading I/O access error when writing Low
word
High word
Legend: not relevant
Bit number
Bit number x x
长沙工控帮教育科技有限公司整理
Low word
7 0 Bit number
I/O access error reading X
Legend: X not relevant
I/O access error writing
不相关位CPU 41x和CPU 318 在上图中,x表示...
• ...输入参数 用于SFC36、37、38 = “0”
• ...输出参数 用于SFC36、37 = “0”
对于SFC38 = “0”
长沙工控帮教育科技有限公司整理
CPU 31x (不是CPU 318)的实例
下图显示了除CPU 417和CPU 417H外所有CPU的访问出错的出错过滤器的位 模式。
masked errors 0
23 1 Bit number
1
masked errors Legend: x not relevant
not masked masked 0
1
With the S7-300 bits that are not relevant are set, with the S7-400 they are reset.
CPU 417和CPU 417H的实例
下图说明CPU 417中和CPU 417H中用于访问出错的出错过滤器的低位字节及所有已 屏蔽的出错是如何显示的。
• 作为SFC36的输入参数
• 作为SFC36的输出参数
长沙工控帮教育科技有限公司整理
Input parameter
7 0 Bit number
masked errors 0
masked errors
Legend: X
not masked masked 0
1
not relevant (reset)
编程出错低位字
写入时区域出错 2525 ...当使用间接跨区域寻址时,为地址指定了不正确的区域标
出错 事件标识符 (W#16#...)
发生出错...
未加载FC 253C ...调用的功能未加载。
SFC不存在 253D ...调用的系统功能不存在。
未加载FB 253E ...要调用的功能块未加载。
SFB不存在 253F ...调用的系统/标准功能块不 存在。
访问出错
下表列出了分配给所有CPU的访问出错的出错过滤器的出错。同时列出了可能的出 错原因
出错 事件标识符(W#16#...) 发生出错...
读取时的I/O 访问出错
2942 ...未将任何信号模块分配给 I/O区域中的地址。
或
...未在所选模块监视狗时间 内确认对此I/O区域的访问(超时)。
写入时的I/O 访问出错
2943 ...未将任何信号模块分配给 I/O区域中的地址。
或
...未在所选模块监视狗时间 内确认对此I/O区域的访问(超时)。