Как настроить отображение PDO?

Я в основном понимаю концепцию отображения PDO в сетях CANopen. Это позволяет транслировать данные в реальном времени с небольшим заголовком.

как это сделано? Как мне настроить мои устройства, чтобы знать, как отправлять / получать PDO? Нужно ли какое-то программное обеспечение для этого?

1 ответ

Решение

Много ответов на ваши вопросы зависят от конкретных устройств, которые вы используете, но в целом...

Нужно ли какое-то программное обеспечение для этого?

Вам не нужно специализированное программное обеспечение для настройки устройства CANopen. Они могут быть настроены через CANbus с использованием SDO. Ключ USB-шины USB более чем достаточен, хотя создание SDO вручную затруднительно. Существуют компании, которые предоставляют программное обеспечение для настройки любого устройства CANopen, например Vector. Часто производители предоставляют специализированный графический интерфейс для настройки своих устройств, например, AMC DriveWare. Если таковой имеется, вы, вероятно, должны его использовать.

Как это сделано?

PDO (объекты данных процесса), в отличие от SDO (объекты данных службы), не включают метаданные о содержимом сообщения, и TPDO могут передаваться без специального запроса от ведущего. Это позволяет PDO использовать шину более эффективно. Хитрость заключается в том, что содержимое сообщений PDO должно быть согласовано заранее. Это соглашение указывается с использованием записей параметров связи PDO и параметров отображения PDO ваших объектов. Словарь объектов. Как они могут быть настроены или могут ли они быть настроены вообще, зависит от устройства. Чаще всего PDO могут быть настроены во время выполнения в предоперационном режиме через SDO. Хотя это может быть (и, скорее всего, будет) ненужным, если для вашего устройства достаточно настроек по умолчанию.

Содержимое PDO настраивается через соответствующие "Параметры отображения" в Словаре объектов устройств. Параметры отображения TPDO начинаются с индекса 0x1A00. TPDO0 соответствует 0x1A00, TPDO1 - 0x1A01 и т. Д. Отображения содержатся в подиндексах и кодируются как 32-разрядные целые числа без знака. Формат - это сначала 16-битный индекс, затем 8-битный субиндекс и, наконец, размер в битах используемого параметра. Зернистость размера зависит от устройства. Некоторые могут обеспечить только гранулярность уровня байтов. Например, если бы в словаре объектов была переменная REAL32 в 0x2000,0x02, которую вы хотели отправить в качестве единственного параметра TPDO0, вы бы установили 0x1A00,0x01 в 0x20000220. RPDO настроены таким же образом, их индексы начинаются с 0x1600.

Следующей частью головоломки являются параметры связи. Обычно RPDO не нужно настраивать таким образом. TPDO действительно нуждаются в настройке. Индексы начинаются с 0x1800 и соответствуют TPDO так же, как индексы параметров отображения.

COBID        (0x01) UNSIGNED32 Arbitration/COB-ID PDO will use.
XMIT_TYPE    (0x02) UNSIGNED8 When PDO is transmitted
INHIBIT_TIME (0x03) UNSIGNED16 Minimum time between PDO messages (useconds)
EVENT_TIME   (0x05) UNSIGNED16 Timeout for sending (mseconds)

Макет сообщения PDO принимает связанный TPDOnCOMPARAM,COBID для идентификатора арбитража и добавляет каждый из сопоставленных параметров из TPDOnMAPPARAMS. Для TPDO это делается внутри устройства и отправляется. Для RPDO мастер делает это, отправляет PDO, а устройство декодирует сообщение, записывая каждый параметр в свой словарь объектов.

Как мне настроить мои устройства, чтобы знать, как отправлять / получать PDO?

Набор соединений по умолчанию включает в себя четыре TPDO (передаваемых с узла) и четыре RPDO (получаемых узлом). Можно указать больше (до 512 каждый) в зависимости от вашего устройства.

PDO передаются / принимаются только тогда, когда узел CANopen переведен в "рабочий режим". Для этого вам нужно отправить команду запуска NMT (Network ManagemenT) (Code Specifier = 1). Использование 0 для идентификатора узла указывает широковещательное сообщение, на которое будут отвечать все узлы. NMT-сообщения: имеют COB-ID 0, имеют полезную нагрузку 2 байта

NMT Message Format (CAN-bus payload):
+--------------------------+
| Code Specifier | Node ID |
+----------------+---------+
|       ff       |    ff   |
+----------------+---------+
Другие вопросы по тегам