【问题标题】:Implementing Python CANopen实现 Python CANopen
【发布时间】:2019-10-27 21:31:28
【问题描述】:

我是 CANopen 新手,我正在努力使用它来连接微处理器和电池管理系统。我有几个问题。

  1. 对象字典、电子数据表和电池管理系统等设备配置文件是否由制造商提供?

  2. 我必须自己生成这些文件吗?

任何帮助将不胜感激!

【问题讨论】:

    标签: python can-bus canopen


    【解决方案1】:

    根据他们的文档,您需要提供电子数据表文件,查看 git repo (https://github.com/christiansandberg/canopen/tree/3d3d46beae7f6aad65d58b1247eab5ae758fb9e2),很明显您需要 eds 文件:

      # Add some nodes with corresponding Object Dictionaries
        node = canopen.BaseNode402(35, '/home/andre/Code/test/jupiter.eds')
        network.add_node(node)
        # network.add_node(34, '/home/andre/Code/test/jupiter.eds')
        # node = network[34]
    

    对象字典文件一般在创建节点时提供node = network.add_node(6, 'od.eds'),下面可以找到add_node函数定义:

    def add_node(self, node, object_dictionary=None, upload_eds=False):
            """Add a remote node to the network.
            :param node:
                Can be either an integer representing the node ID, a
                :class:`canopen.RemoteNode` or :class:`canopen.LocalNode` object.
            :param object_dictionary:
                Can be either a string for specifying the path to an
                Object Dictionary file or a
                :class:`canopen.ObjectDictionary` object.
            :param bool upload_eds:
                Set ``True`` if EDS file should be uploaded from 0x1021.
            :return:
                The Node object that was added.
            :rtype: canopen.RemoteNode
            """
    

    也许您可以在这里找到所需的数据表:https://compatibility.rockwellautomation.com/pages/search.aspx?crumb=117&q=EDS%20files

    【讨论】:

      【解决方案2】:
      1. 电池管理系统等对象字典、电子数据表和设备配置文件是否由制造商提供?
      • 对象字典是每个节点的 CANopen 实现的一部分。它不是什么物理文件,它只是一个抽象地址的大地址表,最严格的标准化。

      • 他们不是要求提供电子数据表 (EDS),但如果他们不能提供,我会觉得很可疑。

      • 设备配置文件 (DSF) 是指网络中节点的特定配置。而 EDS 是原始出厂默认设置。文件格式方面我认为它们是相同的。

        通常不会提供 DSF,因为提供特定配置没有多大意义。当您希望将配置存储在磁盘上时,更有可能是您的特定 PLC 或其他东西吐出的东西。

      1. 我必须自己生成这些文件吗?

      仅当您确实需要 DSF 时。如果您正在编写 Python 程序,我认为没有必要。


      我还建议找出制造商是否已在 CAN in Automation 中注册了供应商 ID - “拥有” CANopen 标准的非营利组织。

      https://www.can-cia.org/services/canopen-vendor-id/

      同一站点也有一些关于 CAN 和 CANopen 的不错的阅读材料。

      【讨论】:

        【解决方案3】:

        大部分 CANopen 软件都需要 EDS 文件(包括 Python 的 canopen 库)。如果您没有 EDS 文件,您可以自己创建它,前提是您知道设备的完整 OD 结构。如果有问题的 CANopen 设备遵循 CiA 设备配置文件,您可以假设存在一些 OD 条目。但不能保证,因为设备配置文件中提到的一些 OD 条目是可选的,并且可能存在设备配置文件中未提及但由制造商提供的其他条目。因此,通常制造商提供 EDS 文件。如果制造商记录了 OD 条目,但将创建 EDS 文件留给用户,那将没有多大意义。

        某些 CANopen 设备可能会嵌入其 EDS 文件。查找 OD 条目 0x1021 和 0x1022。 CiA 301 的最新版本应提及它们。

        【讨论】:

          猜你喜欢
          • 2023-01-12
          • 1970-01-01
          • 2021-07-22
          • 2010-09-30
          • 1970-01-01
          • 2017-03-30
          • 2017-01-24
          • 1970-01-01
          • 2019-05-15
          相关资源
          最近更新 更多