CanOpen 紧急消息实现

问题描述 投票:0回答:1

我需要使用紧急消息来向主机发送错误消息。我想使用紧急情况而不是 PDO 消息的原因是我希望它能很快。

我读了一本叫《Embedded Networking with CAN and CANopen》的书,它让我对CanOpen几乎有了很好的了解。我能够在 CO_error() 和 CO_EM_process() 的帮助下发送紧急消息,但我觉得我错过了一些东西,而且我找不到任何实现示例来清楚地了解实现工作流程。我是 CanOpen 的新手,有关库的文档很混乱。有人有任何建议或任何我可以用作示例的源代码吗?

can-bus canopen
1个回答
0
投票

我是你提到的这本书的作者之一,感谢您的阅读! EMCY 对象/消息旨在指示总线上的错误情况,并默认导致从操作(PDO 通信)模式切换到预操作(无 PDO 通信)模式。覆盖错误行为可在对象 1029h“错误行为对象”(如果存在)中进行配置。

您传输错误的 EMCY 消息是完全可行的,但您使用的堆栈是否正确实现了包括对象 1029h 的错误处理,我不能说。如果不是,那么是的,当您以这种方式发送错误时,如果您当前正在操作,则必须将自己切换到预操作状态,或者您也实现 1029h,并执行此对象配置的任何操作。

您可以索取 CiA 301 标准的副本,其中所有内容均在此处进行了指定。 有关 CANopen 中所有重要对象(包括 EMCY)的总体概述,请参阅此处 PDF 格式的海报

© www.soinside.com 2019 - 2024. All rights reserved.