Реализация Python CANopen - PullRequest
       91

Реализация Python CANopen

2 голосов
/ 28 октября 2019

Я новичок в CANopen и работаю над тем, чтобы использовать его для взаимодействия между микропроцессором и системой управления батареями. У меня есть пара вопросов.

  1. Являются ли поставляемые производителем словарь объектов, электронная таблица данных и файлы конфигурации устройства для таких вещей, как система управления батареями?

  2. Нужно ли мне создавать какие-либо из этих файлов самостоятельно?

Любая помощь будет принята с благодарностью!

Ответы [ 3 ]

1 голос
/ 28 октября 2019

На основании их документации вам необходимо предоставить файл электронной таблицы данных, глядя в 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

0 голосов
/ 01 ноября 2019

Большинству программного обеспечения CANopen нужны файлы EDS (включая библиотеку canopen для Python). Если у вас нет файла EDS, вы можете создать его самостоятельно, если знаете полную структуру OD устройства. Если рассматриваемое устройство CANopen следует профилю устройства CiA, вы можете предположить, что некоторые записи OD присутствуют. Но нет никакой гарантии, так как некоторые записи OD, упомянутые в профилях устройства, являются необязательными, и могут быть дополнительные записи, которые не упомянуты в профиле устройства, но предоставлены производителем. Итак, как правило, производитель предоставляет файл EDS. Не имеет особого смысла, если производитель задокументирует записи OD, но оставит создание файла EDS для пользователя.

Некоторые устройства CANopen могут иметь свои файлы EDS, встроенные в себя. Ищите записи OD 0x1021 и 0x1022. Последние версии CiA 301 должны упоминать их.

0 голосов
/ 31 октября 2019
  1. Поставляются ли изготовителем словарь объектов, электронная таблица данных и файлы конфигурации устройства для таких вещей, как система управления батареями?
  • Словарь объектов является частью реализации CANopen каждого узла. Это не какой-то физический файл, это просто одна большая таблица адресов абстрактных адресов, наиболее строго стандартизированная.
  • Они не требуются для предоставления электронной таблицы данных (EDS), но я бы ее нашелрыбный, если они не могут предоставить один.
  • Файлы конфигурации устройства (DSF) относятся к конкретной конфигурации узла в сети. Принимая во внимание, что EDS является заводскими настройками по умолчанию. По формату файлов, я думаю, они идентичны.

    DSF обычно не предоставляется, потому что не имеет особого смысла предоставлять конкретную конфигурацию. Скорее всего, что-то, что ваш конкретный ПЛК или что-то другое выплевывает, когда вы хотите сохранить свою конфигурацию на диске.

Нужно ли самому генерировать какие-либо из этих файлов?

Только DSF, если он вам действительно нужен. Если вы пишете программу на Python, я не вижу в этом необходимости.


Я бы также порекомендовал выяснить, зарегистрировал ли производитель идентификатор поставщика с помощью CAN в автоматизации - некоммерческая организация. организация, которая "владеет" стандартом CANopen.

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

На этом же сайте также есть несколько приятныхматериал для чтения о CAN и CANopen.

...