描述
有了系统诊断,模块的操作系统出了错误,就会被分配一个系统内的统一编号(起因)和 发生的时间。这些就会作为纯文本在媒介中显示。
另外,之前的历史错误也会被记录,因为这个错误信息会被自动存储在诊断缓冲区且不需要用户做任何操作。
系统诊断的基本功能包括操作系统和特殊运行的用户程序的所有的错误事件,错误的发生地点,事件,错误代码和附加的相关信息都会储存在诊断缓冲区中。
另外,用户可以使用SFC52 WR_USMSG来写入用户-定义的诊断事件(例如关于用户程序运行的信息),或发送用户定义的诊断消息到已注册的节点(例如监测设备PG,OP,TD)。
诊断缓冲区
诊断缓冲区提供了以下选择:
- 更快的识别故障原因,从而提高实用性。
- 在系统故障发生时,评估停机之前的事件,并找到停机的原因。
诊断缓冲区是一个带有独立诊断条目的循环缓冲区 。在诊断缓冲区中,诊断事件按照发生的顺序显示;第一个条目包含最近的事件。如果缓冲区已满,最早发生的事件就会被新的条目所覆盖。根据CPU的不同,诊断缓冲区的大小或者固定,或者可以在HW Config中通过参数进行设置。
诊断缓冲区中的条目包含
- 错误事件
- 模式改变和 其它对用户重要的操作事件
- 用户定义的诊断事件(通过 SFC52 WR_USMSG)
在STOP模式下, 尽量少的事件进入诊断缓冲区,以便系统停机时,用户能够容易地在缓冲器中找到引起停机的原因。因此, 操作系统保证,只有当事件要求用户做出响应(如需要系统 完全复位或需要更换电池),或必须注册重要信息(如固件更新 或站故障)时,才将事件存储在诊断缓冲器中。
在STOP模式下,用户程序不被执行。因此, 在停机模式下不存在因用户程序引发的诊断缓冲条目。
诊断缓冲区中的条目不包括
- 临时错误事件
- 统计信息或跟踪记录
- 关于数据或服务质量的信息
- 循环OB启动调用
循环发生的错误事件通常仅在第一次发生时被写入,且只有当错误的离去事件被识别后才被再次写入。这确保万一诊断缓冲区溢出时重要的条目不会被轻易地覆盖。通过在线帮助,用户能识别出可能的原因和诊断缓冲区中每个事件的恰当解决办法。
诊断缓冲区的实际评估
可以使用诊断工具来评估诊断缓冲区的条目,例如S7系统诊断或者用户程序。
在运行模式下增加诊断缓冲区到最大条目数
诊断缓冲区的最大条目数取决于CPU类型。在诊断缓冲区点击“Setting”按钮,作如下修改:
- 把默认设置从“按照模块特性的默认设置”更改为“预选择”。
- 在输入域输入最大条目数(比如500)。
- 使能"Save settings for this dialog box" 选项。
- 单击OK保存设置。
图. 01
如果随后点击诊断缓冲区的“更新”按钮,会显示最大条目数。使用“另存为。。。”功能可以保存诊断缓冲区的内容为ASCII文本(如在文件"Diagnostic.txt"中)。
数据缓冲区中的一个例子事件
事件ID | 评论 | 补救办法 |
---|---|---|
16#3583 | 首先参考诊断缓冲区中的信息。但是,也可能是一个CPU硬件错误(OB84)。 |
如果事件只发生一次,检查硬件设置的外部影响(EMC,接地,温度,等等)。 如果事件多次发生,而且外部影响可以被排除,RAM存储器可能被损坏。替换CPU。 |
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc322921.html