- {{item.name}}
串口通信故障诊断
- 0
- 14
串口通信故障诊断
如果串口通讯发生故障,为了能快速定位发生的所有错误, 可以通过以下常用方法诊断通信模块的故障:
通过模块的指示灯进行诊断;
通过功能块的 STATUS 输出进行诊断;
通过模块的诊断缓冲区进行诊断;
模块指示灯
CP340/341/440/441 模块都有数据交换的指示灯:Txd和Rxd。
- Txd(绿色):模块通过接口向外发送数据;
- Rxd(绿色):模块通过接口接收外部发来的数据;
故障指示灯各模块不相同,详细如下。
CP340/341模块的故障指示灯
组报警 SF 灯(红色常亮):组报警 LED SF 始终会在通电后亮起,在初始化后熄灭。 如果已为 CP340/341 生成了参数化数据,则 SF LED 会在重新参数化期间再次短暂亮起。
如果发生以下哪种情况,组报警 LED SF 都将亮起:
- 硬件故障;
- 固件错误;
- 参数分配出错或者不存在参数分配;
- 断路(模块和通讯伙伴之间的接收电缆断开)。
CP440/441模块的故障指示灯
组错误显示:
- INTF(红色):内部错误;
- EXTF(红色):外部错误。
接口故障显示:
- FAULT(红色):接口错误。
CP440 故障指示灯的错误消息,如图 1 所示。
图1 CP440 故障指示灯的错误消息
CP441 故障指示灯的错误消息,如图 2 所示。
图2 CP441 故障指示灯的错误消息
通信功能块的 STATUS 诊断信息
CP 340/CP341/CP440 通讯功能块的 STATUS 信息
FB 的 STATUS 输出:
- 功能块(CP340:P_SEND 和 P_RCV;CP341:P_SND_RK 和 P_RCV_RK;CP440:SEND_440 和 RECV_440)均有一个用于错误诊断的 STATUS 输出,读取功能块的 STATUS 输出就可以明了有关通讯期间发生的错误的信息, 可以在用户程序中解释 STATUS 输出。
- 模块还会将位于 STATUS 输出上的诊断事件输入至模块的诊断缓冲区。
注意:功能块的 STATUS、ERROR、DONE 和 NDR 等状态仅保持一个扫描周期,然后清零,需要客户编程读出判断。
STATUS 参数的结构,如图 3 所示:
图3 STATUS 参数的结构
CP340 功能块的 STATUS 事件类别和事件编号链接。
CP341 功能块的 STATUS 事件类别和事件编号链接。
CP440 功能块的 STATUS 事件类别和事件编号链接。
CP 441 通讯功能块的 STATUS 信息
SFB 的 STATUS 输出:
- 系统功能块(SFB12/SFB13)都有一个用于错误诊断的 STATUS 输出。 读取系统功能块的 STATUS 输出,就可以了解有关在 CP 441 和分配的 CPU 之间进行通讯时发生的错误的常规信息, 可以在用户程序中解释 STATUS 参数。
SFB12 的错误信息,如图 4 所示。
图4 SFB12 的错误信息
SFB13 的错误信息,如图 5 所示。
图5 SFB13 的错误信息
通信模块的诊断缓冲区
通讯模块有自己的诊断缓冲区,模块的所有诊断事件都按事件发生的顺序输入诊断缓冲区。
在诊断缓冲区中会显示以下内容:
- 模块的工作状态;
- 模块上的硬件/固件错误;
- 初始化和参数错误;
- 执行 CPU 请求期间出现的错误;
- 数据传输错误(接收和发送错误)。
模块的诊断缓冲区特点:
- 是环形缓冲,诊断缓冲区已满后,在其中生成新条目的同时会删除最老的条目,这样,最新条目始终在最顶部;
- 最多可容纳诊断条目(CP340/341:9个;CP440:10个;CP441:64个);
- 关闭电源或重新分配模块的参数,诊断缓冲区中的内容丢失。
剩余80%未阅读,请登录查看大全章节内容
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
{{item.nickName}}