1) Словарь объектов определяет набор объектов, в которых данные могут храниться на узле CANopen. Объекты в словаре объектов могут считываться и записываться с шины CAN с использованием протокола SDO, предоставляя индекс объекта и субиндекс. Они также могут быть прочитаны и записаны из локального приложения на узле CANopen. Можно сказать, что словарь объектов формирует API для доступа к узлу CANopen из других узлов CANopen.
Файл EDS содержит список всех объектов, присутствующих в конкретной модели узла CANopen, включая тип данных, значение по умолчанию, минимальное и максимальное значения и некоторые атрибуты. Это помогает инструментам связываться с узлом CANopen.
2) Конфигурирование выполняется по шине CAN с использованием протокола SDO для записи в словарь объектов узла CANopen.
3) Если вы разрабатываете коммерческий продукт, вы, вероятно, захотите использовать коммерческий стек CANopen для поддержки полного протокола. (Одним из примеров является Kvaser CANopen Stack , который мы поддерживаем, но есть из множества других на выбор)
Если ваша политика лицензирования проектов это позволяет, вы можете использовать один из стеков CANopen с открытым исходным кодом. Мне приходят в голову CANFestival и CANopenNode, но есть и другие.
Но если вам просто нужен минимальный функционал, вы также можете написать минимальный код из спецификации. Конечный автомат NMT, ускоренная передача SDO только для чтения, словарь объектов с несколькими обязательными объектами и жестко закодированными PDO могут даже дать вам стандартный минималистичный узел, соответствующий стандартам.
Следующие объекты являются обязательными в CiA 301
- 0x1000 Тип устройства (только чтение)
- 0x1001 Регистр ошибок (только чтение)
- 0x1017 Время сердцебиения производителя (постоянное)
- 0x1018 Идентификационный объект (только для чтения)
- Кроме того, вам нужны параметры связи и параметры отображения для
каждый PDO, но они могут быть постоянными.
Если вы хотите пойти дальше, вы можете предварительно настроить все другие узлы в сети на автоматический запуск, а затем просто отправить и получить фиксированные PDO, которые другие узлы запрограммированы на распознавание. Это не соответствует стандарту, но может сработать, если вы сделаете быстрый взлом для использования в своей лаборатории.
Однажды я сделал это для прототипа, просто для фиксированного PDO и пульса, затем переключился на коммерческий стек для конечного продукта.