zuuuuk 0 5 июня, 2015 Опубликовано 5 июня, 2015 · Жалоба Добрый день. Помогите разобраться со стандартом CANopen. Я понимаю как заполнить словарь со стороны приложения. и как сформировать индекс и суб индекс. но я не понимаю на каком основании стек CANopen должен сформировать 11bit ID для отправки PDo или SDO. Поможите разобраться.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 8 июня, 2015 Опубликовано 8 июня, 2015 · Жалоба Смортите http://www.canopensolutions.com/english/ab...redefined.shtml По SDO все просто: ID с 0x580 по 0x67F зарезервированы под SDO. При этом ID txSDO получается 0x580+Node Id, а rxSDO - 0x600+Node Id. Node ID может быть от 1 до 127. Т.е. например, если узел имеет присвоенный Node ID = 3, то по умолчанию этот узел должен "слушать" SDO сообщения с идентификатором 0x603, и посылать SDO сообщения с идентификатором 0x583. С PDO еще проще - зарезервированный пул идентификаторов для них - от 0x180 до 0x57F - ровно половина от всего 11-битного пространства. При этом ID для конкретного PDO прописывается в словаре по индексам [18xx] для txPDO и [14xx] для rxPDO, где xx - чисто номер PDO от 1 и до 512. ID находится в субиндексе 1 этих индексов. Т.е. например у нас есть txPDO под номером 4. Залазим в словарь по индексу 1804 и субиндексу 1 и оттуда читаем идентификатор - вот его и нужно брать. Для простоты заполнения по умолчанию в эти индексы записывается так называемый predefined connection set. Т.е при назначению узлу нового Node ID первые 4-е txPDO получают идентификаторы 0x180+NodeID, 280+NodeID, 380+Node ID и 480+NodeID. А rxPDO соответственно 0x200+NodeID, 300+NodeID, 400+Node ID и 500+NodeID Например при NodeID = 3 Индекс 0x1800 Субиндекс 1 должен получить значение 0x183 - это идентификатор первого PDO, которое данный узел посылает. a индекс 0x1400 Субиндекс 1 должен получить значение 0x203 - это идентификатор первого PDO, которое данный узел принимает. Т.е. если узел примет сообщение с идентификатором 0x203 - он подумает, что пришло PDO 1. В любом случае идентификторы PDO должны быть настраиваемые. Они конфигурируются при настройке сети в первый раз. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться