Jump to content

    
Sign in to follow this  
zuuuuk

CANopen формирование 11 bit ID

Recommended Posts

Добрый день.

 

Помогите разобраться со стандартом CANopen.

 

Я понимаю как заполнить словарь со стороны приложения.

и как сформировать индекс и суб индекс.

 

но я не понимаю на каком основании стек CANopen должен сформировать 11bit ID для отправки PDo или SDO.

Поможите разобраться..

Share this post


Link to post
Share on other sites

Смортите 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 должны быть настраиваемые. Они конфигурируются при настройке сети в первый раз.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this