Плата поддерживает асинхронный обмен SDO, а также периодическую запись в частотный преобразователь четырех объектов данных RPDO и периодическое чтение из частотного преобразователя четырех объектов данных TPDO.
В качестве способа обнаружения ошибок работы устройств в сети CAN используется контрольное тактирование (протокол Heartbeat).
Для высокоприоритетных сообщений об ошибках (срочных сообщений) используются объекты Emergency.
Идентификатор CAN-сообщения (COB ID)
CAN-сообщение содержит идентификатор сообщения (COB ID). COB ID для соответствующих типов сообщений приведены в таблице.
COB ID сообщений
Тип сообщения | COB ID (hex) |
---|---|
NMT | 0x000 |
SYNC | 0x080 |
EMCY | 0x80+NodeID |
SDO Send | 0x600+NodeID |
SDO Receive | 0x580+NodeID |
RPDO1 | 0x200+NodeID |
RPDO2 | 0x300+NodeID |
RPDO3 | 0x400+NodeID |
RPDO4 | 0x500+NodeID |
TPDO1 | 0x180+NodeID |
TPDO2 | 0x280+NodeID |
TPDO3 | 0x380+NodeID |
TPDO4 | 0x480+NodeID |
![]() NodeID – адрес (номер)
устройства в сети CAN |
Доступ к параметрам через SDO
Параметры ПЧВ отображаются в объектах CANopen с использованием индекса (index) и субиндекса (subindex) объектного словаря CANopen.
При этом, индекс включает в себя номер группы параметров ПЧВ, а субиндекс – номер конкретного параметра ПЧВ:
Index = 0x2000 + номер группы параметров | ||
Subindex = 1+ номер параметра | ||
![]() |
Пример
У параметра F01.05 номер группы параметров: 01, номер параметра: 05.
Следовательно, доступ к параметру F01.05 осуществляется через объект:
index = 0х2001 subindex = 0х06.
Для записи параметров в энергонезависимую память используются объекты в соответствии с таблицей.
Индексы и субиндексы для групп параметров ПЧВ при записи в энергонезависимую память
Группа параметров ПЧВ | Index | Subindex |
---|---|---|
F00 – F15 | 0х20f0 – 0х20ff соответственно | Subindex = 1+ номер параметра |
F16 – F31 | 0х20a0 – 0х20af соответственно |
Чтение и запись параметров через SDO
Команда чтения параметра через SDO
Поле | Данные | Описание |
---|---|---|
ID | 0x600 + NodeID | Идентификатор, содержащий адрес устройства (NodeID) |
RTR | 0 | |
Data0 | 0x40 | Команда на чтение |
Data1 | Index, младший байт | |
Data2 | Index, старший байт | |
Data3 | Subindex | |
Data4 – Data7 | Резерв |
Ответ на команду чтения
Поле | Данные | Описание |
---|---|---|
ID | 0x580 + NodeID | Идентификатор, содержащий адрес устройства (NodeID) |
RTR | 0 | |
Data0 | 0x43 0x4b 0x4f 0x80 | 0x43 – успешно, 4 байта данных 0x4b – успешно, 2 байта данных 0x4f – успешно, 1 байт данных 0x80 – ошибка чтения |
Data1 | Index, младший байт | |
Data2 | Index, старший байт | |
Data3 | Subindex | |
Data4 – Data7 | Данные или код ошибки (Data4 – младший байт, Data7 – старший байт) | Коды ошибок – см. таблицу |
Команда записи параметра через SDO
Поле | Данные | Описание |
---|---|---|
ID | 0x600 + NodeID | Идентификатор, содержащий адрес устройства (NodeID) |
RTR | 0 | |
Data0 | 0x23 0x2b 0x2f | 0x23 – запись 32 бита 0x2b – запись 16 бит 0x2f – запись 8 бит |
Data1 | Index, младший байт | |
Data2 | Index, старший байт | |
Data3 | Subindex | |
Data4 – Data7 | Данные (Data4 – младший байт, Data7 – старший байт) |
Ответ на команду записи
Поле | Данные | Описание |
---|---|---|
ID | 0x580 + NodeID | Идентификатор, содержащий адрес устройства (NodeID) |
RTR | 0 | |
Data0 | 0x60 0x80 | 0x60 – успешно 0x80 – ошибка |
Data1 | Index, младший байт | |
Data2 | Index, старший байт | |
Data3 | Subindex | |
Data4 – Data7 | В случае ошибки записи – код ошибки (Data4 – младший байт, Data7 – старший байт) Если запись успешна – 0 (нет ошибок) | Коды ошибок – см. таблицу |
Коды ошибок
Код (hex) | Описание |
---|---|
0х05040000 | Превышен таймаут |
0х05040001 | Неверная команда SDO |
0х06010002 | Запись в объект, доступный только для чтения |
0х06020000 | Объект не найден |
0х06040041 | Объект невозможно назначить в PDO |
0х06040042 | Длина PDO превышает допустимую |
0х06070010 | Несуществующий тип данных |
0х06090011 | Subindex не существует |
0х06090030 | Значение вне допустимого диапазона |
0х08000000 | Неизвестная ошибка |
0х08000020 | Невозможно изменить данные в текущем состоянии |
Примеры чтения и записи параметров ПЧВ через SDO приведены ниже.
Пример
Чтение параметра ПЧВ F02.02 (адрес 0х0202):
Идентификатор | RTR | Данные (hex) |
---|---|---|
0x602 | 0 | 40 02 20 03 00 00 00 00 |
Ответ ПЧВ:
Идентификатор | RTR | Данные (hex) |
---|---|---|
0x582 | 0 | 4b 02 20 03 00 00 00 00 |
Пример
Запись значения 3 в параметр ПЧВ F02.02 (адрес 0х0202):
Идентификатор | RTR | Данные (hex) |
---|---|---|
0x602 | 0 | 2b 02 20 03 03 00 00 00 |
Пример
Чтение параметра ПЧВ C00.26 с адресом 0x211A (номинальное напряжение ПЧВ):
Идентификатор | RTR | Данные (hex) |
---|---|---|
0x602 | 0 | 40 21 20 1b 00 00 00 00 |
Ответ ПЧВ:
Идентификатор | RTR | Данные (hex) |
---|---|---|
0x582 | 0 | 4b 21 20 1b dc 00 |
Пример
Чтение коммуникационных переменных (на примере адреса 0x3006):
Идентификатор | RTR | Данные (hex) |
---|---|---|
0x602 | 0 | 40 30 20 07 00 00 00 00 |
Ответ ПЧВ:
Идентификатор | RTR | Данные (hex) |
---|---|---|
0x582 | 0 | 4b 30 20 07 00 00 |
Пример
Запись коммуникационных переменных (на примере адреса 0x3006, значение 100):
Идентификатор | RTR | Данные (hex) |
---|---|---|
0x602 | 0 | 2b 30 20 07 64 00 |
Ответ ПЧВ:
Идентификатор | RTR | Данные (hex) |
---|---|---|
0x582 | 0 | 60 30 20 07 |