问题标签 [canopen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1125 浏览

embedded - CAN总线空闲检测

对于 CAN,帧在遇到 SOF (0) 时开始。但是假设我们的系统刚刚加入了CAN总线。它将如何检测新 CAN 帧的开始?

EOF 是 7 个隐性位加上 3 个 IFS(帧间间隔)位......所以我们可以等待 10 个连续的 1,然后如果之后切换到 0,我们可以将其视为新帧的开始。

但是,如果以前只连接一个节点怎么办?然后,如果我们看到 ACK 位为 1,则 ACK 定界符位为 1,7 个 EOF 帧位为 1。因此,在三个 IFS 位之前,我们只有一个 10 位(隐性)。如果我们的节点在 IFS 位周期开始发送数据,系统会发生什么?

0 投票
1 回答
147 浏览

c++ - 从 canfestival 错误中构建 canopen 示例

我从 canfestival 获得了 canopen 源代码。当我在可视 stdio 上构建它的 win32test 示例时出现错误,我下载和提取的文件中没有任何 lib 文件。任何帮助,将不胜感激。错误:错误C2065:'win32test_obj100C':未声明的标识符错误C2065:'win32test_obj100D':未声明的标识符

0 投票
1 回答
454 浏览

c++ - 多个药膏同时使用 CanFestival 的 CanOpen

我决定使用串口连接我的罐头设备。我想知道我是否可以同时在 master 中使用多个只有一个对象字典的药膏,或者我必须在 master 中为每个对象字典使用一个对象字典?

我会很感激你的回复。

0 投票
1 回答
106 浏览

embedded - CANopen CiA 401 输入极性

我正在尝试实现 CiA 401(I/O)。但我不知道如果对象 6002(输入极性)发生变化,设备应该如何表现。对象 6000(读取输入)中的值是否也应该改变,如果是,也应该发送一个 PDO,尽管物理输入没有任何改变?

0 投票
0 回答
439 浏览

python-3.x - 以太网上的 Python CanOpen 驱动程序

我将开发一个 python 应用程序来管理具有 CanOpen 通信端口的电驱动程序。我打算将 CANopen 用于 Python https://canopen.readthedocs.io/en/stable/index.html 但找不到任何以太网接口模块。我查看了https://python-can.readthedocs.io/en/stable/interfaces.html

可用的接口有:

似乎没有以太网接口。我可以建造谁?

0 投票
2 回答
3721 浏览

can-bus - CANOpen 中的对象字典是什么?

我将在 linux 中使用 CANOpen。在内核中,linux 有 socketcan,我有一些问题需要进一步实施。

1-) 对象字典是什么样子的,它是头文件还是 EDS 文件?

2-) 我需要对 pdo 和 sdo 配置使用对象字典吗?

3-) 我应该实现我的自定义 canopen 库,它只实现了一些协议,还是使用像 canfestival 这样实现几乎所有协议和对象字典的库?

0 投票
2 回答
2051 浏览

can-bus - CANopen、TPDO 和 RPDO 行为?

在此处输入图像描述

假设我有 deviceA(NodeID 1) 和 deviceB(NodeID2)

  • deviceA 是否发送 TxPDO 180+2 和 deviceB 通过 RxPDO 200+2 接收数据
  • deviceA 是否发送 TxPDO 280+2 和 deviceB 通过 RxPDO 300+2 接收数据
  • RxPDO 是否将数据发送到电缆?还是只是eds文件?

PS,照片来自https://en.wikipedia.org/wiki/CANopen

0 投票
1 回答
244 浏览

embedded - Canopen 节点卡在 preop 状态

我在使用 canopen 的 can 总线上有 2 个节点(x 和 y)。使用临时节点“z”,我发送一条 nmt 消息将所有节点置于 preop 状态,然后发送一条命令将 y 置于操作状态。然后我在总线上为节点 y 发送一堆扩展的 id 消息,节点 x 在其字典中不知道这些消息。在发送到 y 期间,节点 x 上的节点监控表明它处于 preop 状态。一切似乎都很好。完成向节点 y 发送数据后,我发送命令将所有节点置于操作状态。节点 x 根据其 nmt 状态代码卡在 preop 状态。调试我发现canopen x中的rx fifo溢出了。在 preop 模式下应该忽略所有这些扩展消息吗?我什至在停止模式下尝试了与卡住 x 相同的结果。这里发生了什么?

0 投票
0 回答
1058 浏览

python - 如何使用 usb2can 接口设置 Python canopen?

我正在尝试使用 Pythoncanopen库和USB2CAN适配器与canopen402 设备进行通信。

到目前为止,我还没有理解定义网络的最基本示例。

脚本在错误上始终崩溃:

“AttributeError:‘Usb2canBus’对象没有属性‘_filters’”

python-can 的文档提到该设备没有实现过滤器usb2can,但似乎暗示它应该仍然可用。

有没有人成功地将 usb2can 适配器与 Python 一起使用?

我找不到任何例子,有人可以指点我吗?

以下是 python canopen 文档中包含的非常基本的示例之一。

这会因上述过滤器错误而失败,我尝试过的大多数其他操作也是如此。

对于此示例,我希望打印网络上的节点列表,可能是一个空列表,因为没有添加任何节点。

相反,我收到了错误:

AttributeError:“Usb2canBus”对象没有属性“_filters”

0 投票
0 回答
1121 浏览

embedded - .eds 到 .dbc 用于 simulink 实现

我在 simulink 中设置了一些需要 .dbc 文件的 CAN 块,但硬件制造商只提供了 .eds 文件。我应该使用什么工具来转换simulink实现的格式