问题标签 [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 回答
231 浏览

python - 没有收到 sdo 回复

我正在使用 python 创建一个虚拟的 canopen 从站,以与现有的主站通信。运行我的脚本时,我不断收到此错误“没有收到 sdo 响应”。据我所知,我需要一个 sdo 服务器来向主服务器发送响应,是否可以创建一个虚拟 sdo 服务器来完成这项工作?否则,有没有人知道如何解决这个问题?

0 投票
2 回答
154 浏览

can-bus - 所有 CANopen 索引都必须至少有一个子索引吗?

我对 CANopen 协议相当陌生,并为模拟读数创建从设备。

我的问题与访问 SDO 层上的一些索引有关。在官方文档 CIA 301 和 CIA 404 中,在所有索引中,子索引 0x00 定义了该索引下有多少条目。但是一些变量,如 nodeID 或网络波特率是单一的并且有单独的索引(例如:0x3000、0x3001)。这两个示例除了它们自己之外没有任何其他数据。

我需要在子索引 0x00 下访问它们还是子索引必须是 0x01?

0 投票
0 回答
258 浏览

embedded - 将 CANopen 设备连接到 ubuntu

我正在尝试将 CANopen 电机驱动程序连接到 Ubuntu 以控制驱动程序。我使用了CANopenNode包,然后连接了两个驱动程序,并在总线的两端连接了两个 120 欧姆电阻,我使用 Nvidia AGX Xavier 作为控制器,我确保使用正确的引脚,但是当我使用当我初始化第一个节点(驱动程序)时弹出这个错误的包:

我在包裹上打开了一个问题,但我想问是否有人可以帮助我。

0 投票
1 回答
100 浏览

yocto - 在 yocto 中安装 CANopen 包

我尝试使用以下命令在 yocto 中安装 CANopen。但是 CANOpen 没有安装。

在我添加的 local.conf 文件中

如何安装 canopen 包?

还考虑任何输入。

0 投票
2 回答
85 浏览

canopen - CANOpen 多客户端 单服务器 SDO 通信

因为 SDO 通信用于点对点通信。CANOpen 服务器有没有办法同时与两个不同的客户端为同一个对象进行通信?

例如:节点 1(服务器):ID-5,OD:6023h,长度:100 字节节点 2(客户端):ID-10 节点 3(客户端):ID-11

Node-2 和 Node-3 可以同时从 Node-1 上传 6023h 吗?

如果不是,这是对 CANOpen 协议的限制吗?

0 投票
0 回答
30 浏览

python - 可以在 IMOT233S 上打开 - 代码 0x08000020,数据无法传输或存储到应用程序

我目前正在使用 IMOT233S 电机,我正在尝试通过 CAN OPEN 与它交谈。我刚刚在 Linux 上用我的计算机测试了我的代码并且它工作正常,所以我决定在我的 Raspberry 4 上测试它(因为我的目标是让它在 raspberry pi 上工作)。

但我在 rapsberry pi 4 上收到以下错误:

所以我认为问题出在 RPI 上,所以我用我的电脑再次尝试,现在我的电脑上出现了同样的错误。

这是我正在执行的代码canopen_test.py

0 投票
1 回答
93 浏览

can-bus - Canopen 使用 LSS 自动寻址,如何构建系统

我是 Canopen 的新手,需要构建一个具有以下特征的系统:

  • 1个canopen Master(也是网关)
  • 多个canopen从节点,由同一设备的多个实例组成(具有唯一的SN,根据LSS的要求)

我想将此设备设计为在将其连接到总线之前不需要任何预配置,并且还允许以前连接到另一个 canopen 总线(因此具有以前的节点 ID)的设备无缝连接到新总线(因此它们的节点 ID 在重新启动后不应保留)。在了解了 Canopen 和 LSS 服务后,我认为一个好的解决方案是:

  • 该设备没有持久的节点 ID,并且在每次启动时需要由主设备通过 LSS 对其进行寻址
  • master 将通过 LSS 服务定期扫描和寻址新节点(允许设备热插拔)
  • 如果由于任何原因主节点重新启动,它可以通过简单的节点扫描重新检测所有已寻址的节点(所有地址的 SDO 信息上传)

现在我的问题:

  1. 我不清楚启动时如何拥有“无效的 canopen 节点 ID”(在此处引用:https ://www.can-cia.org/can-knowledge/canopen/cia305/ ),如果它没有初始节点 ID(因此只回复 LSS 寻址服务)它应该在总线上完全静默,甚至在通电时不发送启动消息(不兼容 canopen),直到它被 LSS 服务寻址,但如果我给它任何默认的初始节点 ID,当多个节点同时通电时会导致冲突(这将是每次系统启动时的正常行为,包括主设备在内的所有设备都将同时通电) ,像这样“未寻址”和无声的canopen设备是否有效,并且仍然符合canopen标准?如何处理这种情况?
  2. 我读到节点 ID 0 表示广播,所以这意味着我的主人只需一个命令(节点 ID 0 上的 SDO 上传信息)就可以要求所有(寻址的)节点信息(通过 SDO 上传)?还是不允许,我应该查询总线上的所有127个地址来重新映射网络?

谢谢

0 投票
1 回答
47 浏览

can-bus - CanOpen:是否有“紧急对象”“制造商特定错误字段”的通信配置文件?

我需要读取紧急对象的字节 3-7 中的数据。

下图,字节 2 是通信配置文件中可用的标准化 CanOpen 错误寄存器0x1001h(我能够阅读此内容)。我需要“制造商特定错误字段”(byte3-7)中的信息。

在此处输入图像描述 在此处输入图像描述


以下图片来自制造商数据表:

在此处输入图像描述

我尝试阅读通信配置文件0x1002h0x1003h但信息不存在。

(是的,我可以使用 can 解析器读取原始值 0x80+NID,但我想知道它是否可以通过 CanOpen 通信配置文件获得)

0 投票
0 回答
9 浏览

canopen - 无法在 can 协议中读取 Txpdo 响应

我从 sdo 读取当前值,但我没有通过 tpdo 得到任何响应。我只收到 tpdo enable 的响应。所以请提供详细信息以阅读 tpdo 的响应。

0 投票
0 回答
40 浏览

python - Python CAN接收数据(pdo映射)

我目前正在使用 Python 制作 CAN 跟踪器。连接以及从 CAN 接收的数据工作。我现在的问题是:如何更改 PDO 映射并通过 CAN 停止和启动传输,就像它与 CANopen 一样?