这可能不是问这个问题的合适论坛,但我需要用结构化文本编写一个菲尼克斯联系人PLC。可编程控制器应与使用CANOpen协议的电动机通信。我拥有的唯一资源是dbc文件。我有点不知道该从哪里开始。如果你有一些建议/建议,我将不胜感激。
发布于 2022-08-19 21:02:22
实现CANopen堆栈可能非常耗时和复杂,但是根据您必须控制的从节点,使用您的软节点可以轻松地工作。
一个好的提示将首先连接电机与CAN查看器,如PCAN视图或其他取决于您的硬件。
第一步是在adress 0x000 DLC:2处发送开始消息,数据01 00启动所有从节点或01电机节点id仅启动电机。这将迫使电机在运行模式下启动,您将能够看到它是否发送了什么。
您可能会看到ID: 700+node id的心跳消息,可能还会看到一些具有当前速度、温度或其他东西的PDO (马达文档应该帮助您更好地理解电机发送和等待的内容)。
在这种情况下,在您的软件中,如果没有心跳或心跳值与0x05不同(表示操作),则必须实现开始消息发送;如果有一个PDO控制命令,则PDO读取,而PDO控制命令为电机提供所需的速度(您应该在电机文档中找到消息)。
可能还有一些其他的需求,如SDO参数化,但值得在此之前尝试以下几个步骤。
请告诉我我可以帮你
https://stackoverflow.com/questions/71832144
复制相似问题