我们有一个机器人项目,电机控制器使用CANopen进行通信.我需要使用主微控制器与这些电机控制器进行通信.问题是我需要在这个微控制器中开发CANopen层,但我只知道如何在低级别(CAN)发送和接收.
我不太了解CANopen(PDO,SDO,Heartbeat,对象字典等).我试着阅读CiA规范,但它非常复杂.如果有人能指出我正确的方向,或者给我一个很好的教程来编写一个简单的CANopen层,我将不胜感激.
我需要在笔记本电脑上创建一个Java程序来接收/发送CANopen消息.
选择RJ45作为网络的物理介质.我是CANopen和Java通信编程的新手.
请原谅我,如果我似乎不知情.事实是,我已经阅读了很多,但我仍然不知道如何开始.
在阅读了几个CiA规范后,我仍然难以理解CANopen中的PDO映射,过程映像和过程数据交换.
我知道SDO用于预操作状态下的配置设置,并且具有协议开销(因为它可以传输超过8个字节的数据).
在运行状态下,PDO非常适合过程数据的输入和输出.PDO只能传输最多8个字节的数据.
存在11位的COB-ID,其具有功能代码和节点编号.由于节点号使用7位,因此我们最多可以有127个节点(对于CANopen 2.0A网络).
但是有四个TPDO和四个RPDO令我感到困惑.为什么需要多个TPDO和RPDO?在我读取设备配置文件的某个地方可以使用6000h到6FFFh的条目来描述设备参数和设备功能,并且在此范围内可以描述多达8个不同的设备.但是网络中可能有127个节点,那么这8个设备是什么?
我正在开发的设备必须支持CANopen和Modbus(RTU和TCP)通信。是否有任何电子数据表格式(例如EDS或XDD)可用于定义两者?
我尝试使用几个工具(Vector CANeds和ODVA EZ-EDS)来生成一个与两者兼容的简单EDS文件,甚至依靠在文本编辑器中手动编辑文件,但是每个文件的输出看起来都差不多,但是彼此根本不相容。
理想情况下,我想使用CiA XDD格式,因为从我的桌面主应用程序中“反序列化”相对来说比较简单。但是,这似乎完全面向CANopen。
任何人都可以提供的任何信息,提示,技巧或指示,将不胜感激。
我知道.NET Micro Framework支持I²C总线.是否有一些CAN或CANopen库?
如果没有,它是否支持CAN而不使用其他外围设备?我可以自己建立CAN支持吗?
基本了解CANopen网络中PDO映射的概念。它允许以小标题广播实时数据。
它是如何制作的?如何设置我的设备以了解如何发送/接收 PDO?我需要某种软件吗?
你好,我是一名学习canopen的学生。Canopen中COB-ID和CAN标识符有什么关系?我在 CIA 主页上看到 COB-ID 不是 CAN ID,但我不明白。
例如,如果通过 CAN 总线传输 PDO,它将从 CANopen 帧转换为 CAN 帧。CAN标识符不会使用COB-ID的节点ID进行转换吗?此时,COB-ID 根据功能代码而变化,但更容易混淆的是 CAN 标识符每个设备只有一个。
总结我的问题,我想知道 CANopen 在通过 CAN 总线发送消息时如何转换标识符。
我有类似的问题.如何编写简单的CANopen层.我读了答案,但我必须自己编程一个CANopen层我无法获得商业广告.那么有没有写CANopen堆栈的基础知识(或者我不确定差异的层)?我甚至不知道从哪里开始..
如果需要这里有一些信息:
我的主设备是带有QNX的beagle bone black.QNX有一个通用的CAN库我认为但不是CANopen特有的.我的奴隶是一个军事化的无刷电机控制器.我正在用C++写作.我有一个关于我的系统的一般要求的文档.有2个RPDO和4个TPDO,传输是同步的,没有停止模式(因此没有心跳和节点保护)并且所有消息信息都被陈述(大小,格式,相关节点ID等)
我想了解CANopen协议.
目前,我没有任何CAN硬件或CANopen堆栈可供试验.
我想知道如何编写Java程序来简单地解释在RS-232端口接收的CANopen消息.
我将在 linux 中使用 CANOpen。在内核中,linux 有 socketcan,我有一些问题需要进一步实现。
1-) 对象字典的样子,是头文件还是 EDS 文件?
2-) 我需要对 pdo 和 sdo 配置使用对象字典吗?
3-) 我应该实现我的自定义 canopen 库,它只实现一些协议,还是使用像 canfestival 这样实现几乎所有协议和对象字典的库?
canopen ×11
can-bus ×9
bus ×2
embedded ×2
java ×2
.net ×1
automation ×1
c++ ×1
ethercat ×1
industrial ×1
modbus ×1
opc ×1
qnx ×1
serial-port ×1