Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Реализовать CANOpen на CAN МК Freescale DSP56F805
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Controller Area Network (CAN)
Страницы: 1, 2
slimjack
А что если узел с одним nodeID будет использовать все 8 PDO на передачу? Какие проблемы тут возникнут?
syoma
Цитата
А что если узел с одним nodeID будет использовать все 8 PDO на передачу? Какие проблемы тут возникнут?

Никаких. Каждый узел может задать до 512 различных PDO на передачу и 512 PDO на прием.
Для них даже свои адреса под коммуникационные параметры выделены. http://www.softing.com/home/en/industrial-...vanchor=3010610
Единственное, что количество одновременно используемых PDO ограничивается возможностями стека. Для каждой реализации это пишется в спецификации. Коммерчесские стеки, обычно, поддерживают до 512шт, как в спецификации CANopen.
http://www.ixxat.com/canopen_stack_en.html
Есть урезанные модификации - http://www.canopenstore.com/pip/microcanopen.html
Бесплатные - еще меньше.
В CANopennode - помоему 8 шт возможно.
Но в любом случае Ваше устройство должно в eds файле указать - сколько конкретно PDO штук оно поддерживает путем указания, какие адреса в области 1400h-1BFFh существуют.
slimjack
Т.е. 512 PDO одного направления - это чисто такая договоренность для конкретизации структуры словаря (ну или способа настройки узлов)?!
Изначально я думал, что возможен такой вариант: допустим, в сети всего два устройства и объявлены 1024 PDO. Одно из устройств является производителем всех этих 1024 PDO, а другое является потребителем этих же 1024 PDO. Т.о. у одного устройства обьявлено 1024 TPDO, а у другого - 1024 RPDO (с теми же идентификаторами).

Попытаюсь еще одним способом выразить как я себе представляю PDO в CANopen. В сети возможно существование 1024 PDO с различными идентификаторами (тут вроде все ясно). Эти PDO периодически возникают в сети и тот кому интересен тот или иной PDO вылавливает его и обрабатывает. А возникают PDO в сети благодаря производителям этих PDO. Т.о. возможно просто 1024 PDO, а какие они Tx или Rx - зависит кто с этим PDO работает: для производителя - это TPDO, а для потребителя - это RPDO. А то, что в CANopen описано 4 PDO на вход и 4 PDO на выход - это всего лишь рекомендации (которые меня сбивают с толку). Может быть 0 на вход и 8 на выход, или 200 на вход и 0 на выход.

Правильно ли я понимаю?
Forger
Цитата(slimjack @ Feb 22 2011, 14:41) *
у одного устройства обьявлено 1024 TPDO, а у другого - 1024 RPDO

Арифметика здесь простая:
В CAN кадре из 11 бит cobID 7 бит идут на идентификатор (0...127), 2 бита - на номер пары PDO (0...3), и 1 бит - направление PDO (RPDO или TPDO).
Всего выходит 10 бит, 2^10 = 1024 PDO (512 RPDO + 512 TPDO).
http://electronix.ru/forum/index.php?act=a...st&id=53581

Цитата(syoma @ Feb 22 2011, 13:44) *
Единственное, что количество одновременно используемых PDO ограничивается возможностями стека.

Это точно! На каждый поддержанный PDO мастер сети должен выделить кусок памяти для обслуживания этого PDO.
Делается это либо статически, или динамически, но однократно при запуске стека.
Т.о. памяти 512x2 PDO кушают довольно много, особенно, если PDO требуют таймера (циклическая передача).
Да и на обслуживание такого массива требуется недюженных ресурсов проца. Такая реализация потянет тока довольно мощном проце.
С другой стороны, процы щас стали намного быстрее (в смысле, микроконтроллеры), дешевле и ОЗУ у них стало уже довольно.
Поэтому может и заработать на обычном дешевом ARM-е, например, на каком-нить Cortex-M3, коих щас навалом.
Но мне все же нравиться идея syoma: использовать PDO для сигнализации свежих данных от узла, а по SDO их забирать у узла. Размер таких данных, в теории, ничем не огораничен.
slimjack
Цитата
1 бит - направление PDO (RPDO или TPDO)

Не понял. Допустим, устройство с nodeID 05h посылает в сеть сообщение PDO, например, с номером b0011 (согласно таблицы). Т.о. у устройства с nodeID 05h есть TPDO с идентификатором 185h. Где-то в сети есть устройство с nodeID 06h и оно хочет принять PDO с идентификатором 185h. Но у этого PDO бит направления установлен на передачу. Как быть? Я к тому - зачем нужен этот бит направления? Если для того, чтобы принять сообщение, его придется прогигнорить?

Может я тут глупые вопросы задаю, но хочется до конца все хорошо понимать.
Forger
Цитата(slimjack @ Feb 22 2011, 15:41) *
Не понял. Допустим, устройство с nodeID 05h посылает в сеть сообщение PDO, например, с номером b0011 (согласно таблицы). Т.о. у устройства с nodeID 05h есть TPDO с идентификатором 185h. Где-то в сети есть устройство с nodeID 06h и оно хочет принять PDO с идентификатором 185h. Но у этого PDO бит направления установлен на передачу. Как быть? Я к тому - зачем нужен этот бит направления? Если для того, чтобы принять сообщение, его придется прогигнорить?

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

Нет там никакого бита направления, это я условно написал для случая, если бы нумерация протоколов CANopen шла от нуля.
Таблица - это основа протокола, именно на нее и ориентируйтесь.
syoma
Цитата
Т.е. 512 PDO одного направления - это чисто такая договоренность для конкретизации структуры словаря (ну или способа настройки узлов)?!

Это ограничение CANopen на то количество сообщений, которое может генерить один узел. Ну зачем вам в одном узле больше чем 512 различных сообщений, если в каждое можно по 8 байт данных запихать?
А приведенная таблица - это такая рекомендация, которая в случае простой сети и наличия устройств "из коробки" позволяет одному узлу (мастеру) обмениваться индивидуально данными со 127 узлами. При этом каждый из 127 узлов имеет 4 TPDO, с помощью которых он передает мастеру данные и 4 RPDO, с помощью которых он принимает информацию от мастера. В итоге 128-ой узел - мастер должен иметь 127*4=508 настроенных RPDO и 508TPDO. То есть 508 PDO служат для того, чтобы один мастер передавал информацию 127 узлам, и 508 PDO нужно, чтобы 127 узлов передавали мастеру свою информацию. Ну а оставшиеся 8 PDO - для мастера. Еще раз повторюсь - это только пример.
Цитата
Изначально я думал, что возможен такой вариант: допустим, в сети всего два устройства и объявлены 1024 PDO. Одно из устройств является производителем всех этих 1024 PDO, а другое является потребителем этих же 1024 PDO. Т.о. у одного устройства обьявлено 1024 TPDO, а у другого - 1024 RPDO (с теми же идентификаторами).

Теоретически такой вариант возможен, но практически нет - так как в стандарте CANopen прописаны адреса в словаре только для 512 TPDO или RPDO. Т.е лимит 512TPDO из одного узла.
Цитата
Попытаюсь еще одним способом выразить как я себе представляю PDO в CANopen. В сети возможно существование 1024 PDO с различными идентификаторами (тут вроде все ясно). Эти PDO периодически возникают в сети и тот кому интересен тот или иной PDO вылавливает его и обрабатывает. А возникают PDO в сети благодаря производителям этих PDO. Т.о. возможно просто 1024 PDO, а какие они Tx или Rx - зависит кто с этим PDO работает: для производителя - это TPDO, а для потребителя - это RPDO. А то, что в CANopen описано 4 PDO на вход и 4 PDO на выход - это всего лишь рекомендации (которые меня сбивают с толку). Может быть 0 на вход и 8 на выход, или 200 на вход и 0 на выход.

Да - абсолютно правильно понимаете.
Цитата
Допустим, устройство с nodeID 05h посылает в сеть сообщение PDO, например, с номером b0011 (согласно таблицы). Т.о. у устройства с nodeID 05h есть TPDO с идентификатором 185h. Где-то в сети есть устройство с nodeID 06h и оно хочет принять PDO с идентификатором 185h. Но у этого PDO бит направления установлен на передачу. Как быть?

Никак. В принимающем узле прописываете RPDO с идентификатором 185h и принимаете нужное PDO. Бит направления - это просто условность.
slimjack
Ну теперь все ясно!
Спасибо за разъяснения всем!
И еще дайте совет. Что нужно приобрести для разработки устройств с CANopen? Какая программа нужна для компьютера (для наладки и диагностики сети), какое железо? Посоветуйте фирму, пожалуйста. Я так понимаю стек покупать не совсем выгодно, потому что дорого и, судя по некоторым отзывам, очень тяжко для контроллера (из-за универсальности платных стеков).
syoma
Смотрите это сообщение: http://electronix.ru/forum/index.php?showt...st&p=790098
У меня железо - USB-to-CAN от IXXAT.
Платный стек стоит от 5000$. Бесплатных - есть 3шт. CanopenNode, CANfestival и бесплатная библиотека от Microchip для PICов.
Ну и тот контроллер, который Вы назвали - помоему совсем CANopen не потянет. или нужно будет извращаться.
GreyM
Цитата(syoma @ Feb 22 2011, 14:44) *
Бесплатные - еще меньше.
В CANopennode - помоему 8 шт возможно.

Это не совсем так. CANopenNode предоставляет 8 шт. по умолчанию (т.е. для них прописано отображение и тому подобное). Однако, в самом стеке (в мануале и в файлах CO_OD .c и .h) оговаривается, что нет никаких принципиальных проблем руками дописать необходимое количество PDO. То же самое относится и к heartbeat'у.
Minti
Цитата(syoma @ Jul 26 2010, 17:45) *
Привет. Если кому интересно.
Короче запустил я этот CANfestival на STM32F103. Заняло это дело 2 месяца подходов к компьютеру и чтения документации и аж 2 дня на перелопачивание драйверов на CAN контроллер и таймер. Исходники могу выложить.

работаю с Atollic TrueStudio. Пока не получается запустить. Было бы полезно сравнить.
Выложите пожалуйста исходники на smalholz[at]stud[.]fh-dortmunde[.]de
Спасибо!

ПС: на этом форуме личные сообщения отключены?
Minti
E-MAIL не правильно написал и кнопку корректировать не нашёл.
Вот правильный e-mail: smalholz[at]stud[.]fh-dortmund[.]de
yanvasiij
Раз уж здесь собрались все знатоки CANopen, то спрошу тут. Скачал либу CANopenNode. Кто нибудь сможет объяснить, почему не пашет редактор словаря объектов: при запуске device.xul выскакивает ошибка, что нехватает каких файлов в директории elements. А после обновления Firefox вообще при запуске пишет "Эта страница использует неподдерживаемую технологию, которая по умолчанию более недоступна в Firefox". Заранее спасибо!
Forger
Цитата(yanvasiij @ Jan 20 2012, 19:42) *
Кто нибудь сможет объяснить, почему не пашет редактор словаря объектов:

Да, забудьте вы про все эти пердо-программки и скачайте нормальный EDS-редактор, например, этот, (бесплатный): CANeds
Далее ручками добавьте в исходники все нужные объекты в соответсвтвии с уже правильно настроенным EDS-файлом.
yanvasiij
Цитата(Forger @ Jan 20 2012, 23:06) *
Да, забудьте вы про все эти пердо-программки и скачайте нормальный EDS-редактор, например, этот, (бесплатный): CANeds
Далее ручками добавьте в исходники все нужные объекты в соответсвтвии с уже правильно настроенным EDS-файлом.


Скачал CANeds, не пойму как создать именно файл с расширением eds. Он может сделать xdd, а при попытке сохранить как eds пишет "electronic datasheet could not be saved". И еще, если кому не трудно не могли бы дать ссылку на какое нить готовое устройство с доступным eds, чтобы я мог его открыть и "покурить". Теории то у меня до фига, а вот с готовыми примерами туговато.
Forger
Цитата(yanvasiij @ Jan 21 2012, 21:53) *
Скачал CANeds, не пойму как создать именно файл с расширением eds. Он может сделать xdd, а при попытке сохранить как eds пишет "electronic datasheet could not be saved".

Странно, я специально только что попробовал в CANeds 3.6 SP1 создать и сохранить новый EDS файл. Все сохраняет...
Короче, ищите баги в своем компе и руках ))
Цитата
И еще, если кому не трудно не могли бы дать ссылку на какое нить готовое устройство с доступным eds, чтобы я мог его открыть и "покурить". Теории то у меня до фига, а вот с готовыми примерами туговато.

Поиск в сети рулит! Буквально за минуту я нашел вот эти:
http://www.frenzel-berg.de/index.php?id=33&L=1
http://www.bihl-wiedemann.de/englisch/down/downldeds.htm#esd
http://akb.lenze.de/AKB-englisch/resource..../EDS044_V21.zip
yanvasiij
Цитата(Forger @ Jan 22 2012, 00:14) *
Странно, я специально только что попробовал в CANeds 3.6 SP1 создать и сохранить новый EDS файл. Все сохраняет...
Короче, ищите баги в своем компе и руках ))

Поиск в сети рулит! Буквально за минуту я нашел вот эти:
http://www.frenzel-berg.de/index.php?id=33&L=1
http://www.bihl-wiedemann.de/englisch/down/downldeds.htm#esd
http://akb.lenze.de/AKB-englisch/resource..../EDS044_V21.zip


Спасибо! Не понимаю как вам это удалось, я скоко не гуглил ничего не вышло, прорва книг и ни одного eds файла )
yanvasiij
Блин, да че такое?! Уже все весь мануал изрыл. Создаю пустой файл, с расширением xdd сохраняет, а когда пытаюсь сохранить как eds пишет ошибка
Forger
Цитата(yanvasiij @ Jan 23 2012, 15:59) *
Блин, да че такое?! Уже все весь мануал изрыл. Создаю пустой файл, с расширением xdd сохраняет, а когда пытаюсь сохранить как eds пишет ошибка

Ну, думайте.... пробуйте на другом компе, на другой ОС.
У меня на работе - WinXP x32, дома - Win7 x64, так на обеих машинах все отлично создает, сохраняет и открывает.
Никаких проблем.
yanvasiij
Могут ли ошибки в проекте быть причиной не сохнранения EDS файла? Когда я нажимаю проверить вылазит 3 ошибки. Сдела все по видопримеру с сайта Vector, вылезло 3 ошибки, как xdd опять же сохранил, а в eds отказывается.
Forger
Цитата(yanvasiij @ Jan 24 2012, 10:53) *
Могут ли ошибки в проекте быть причиной не сохнранения EDS файла?

Нет, не влияет - щас проверил.
Говорю ж, проверьте работу CANeds на другом компе.
yanvasiij
Проверил уже на трех машинах, нигде сохранить не получается. На пиратской 32 разрядной XP на ноуте, потом на лиценцзионной 64 разрядной ХP и наконец на 32рзарядной семерке. А какая у вас версия CANeds? а то у меня 3.6.57 SP1, может послденяя версия кривая...
Forger
Цитата(yanvasiij @ Jan 24 2012, 11:12) *
Проверил уже на трех машинах, нигде сохранить не получается. На пиратской 32 разрядной XP на ноуте, потом на лиценцзионной 64 разрядной ХP и наконец на 32рзарядной семерке. А какая у вас версия CANeds? а то у меня 3.6.57 SP1, может послденяя версия кривая...

Странно. У меня такая же версия, самая свежая.
Я создаю новый файл, накидываю туда объекты и все норм. сохраняется.
Открываю старый файл (из старой версии CANeds), редактирую, сохраняю. Все ОК.
Может, проблема с файлом, который вы создаете? Выложите его тут, я у себя проверю.
Единственная особенность: файлы с русскими буквами в названии после сохранения меняют имя,
т.е. старый файл остается нетронутым, а просто создается новый файл с именем из иероглифов.
Лечится просто переименованиеме нового файла в нормальное имя.
yanvasiij
выкладываю xdd файл, иначе никак )
Нажмите для просмотра прикрепленного файла
Forger
Цитата(yanvasiij @ Jan 24 2012, 15:36) *
выкладываю xdd файл, иначе никак )
Нажмите для просмотра прикрепленного файла


Проверил ваш файл - все ОК:

Код
Load c:\1234.xdd ...
Compare read EDS with database...
End of comparison.


Checking EDS...
Loading Checker...
Use database 'C:\PROGRA~1\VECTOR~1.6SP\CANchkEDS\v301.codb'
Use database 'C:\PROGRA~1\VECTOR~1.6SP\CANchkEDS\v302.codb'
CANchkEDS 2.2.70
VSemChecker running...
Error 200: XML-Scheme error in Line 154 Schema validation: Empty content not valid for content model: '(supportedBaudRate,)'

Error 200: XML-Scheme error in Line 0 XML schema validation: 1 errors detected

2 errors detected!
Leaving Checker...
Checking done.


C:\1234.eds saved.

Вот он: Нажмите для просмотра прикрепленного файла

А если открыть полученный 1234.eds и выполнить проверку, то вот что пишет:

Код
Checking EDS...
Loading Checker...
Use database 'C:\PROGRA~1\VECTOR~1.6SP\CANchkEDS\v301.codb'
Use database 'C:\PROGRA~1\VECTOR~1.6SP\CANchkEDS\v302.codb'
CANchkEDS 2.2.70
error 26: Entry "FileVersion" in section [FileInfo] not found.
error 26: Entry "FileRevision" in section [FileInfo] not found.
error 26: Entry "Description" in section [FileInfo] not found.
error 26: Entry "CreatedBy" in section [FileInfo] not found.
error 26: Entry "ModifiedBy" in section [FileInfo] not found.
error 26: Entry "VendorName" in section [DeviceInfo] not found.
error 26: Entry "VendorNumber" in section [DeviceInfo] not found.
error 26: Entry "ProductName" in section [DeviceInfo] not found.
8 errors detected!
Leaving Checker...
Checking done.



yanvasiij
Проблема решена! Собака порылась в названиях директорий. CANeds не может сохранить eds файл, если путь к директории содержит русские названия. Понял, когда увидел, где вы сохранили свой файл и вспомнил про то что Вы говорили: файлы с русскими буквами в названии после сохранения меняют имя sm.gif. Спасибо!
yanvasiij
Теперь у меня вопрос по самому протоколу. PDO, которые конкретный узел может принимать хранятся в объектном словаре в записях с индексами 1400h – 15FFh. Я не пойму за что отвечают записи под индексами 1600h – 17FFh (Receive PDO Mapping). По тому описанию, что я читал там хранится индекс записи объектного словаря, которая должен отображаться. аналогично не совсем опнятно с отправляемыми PDO: параметры отправляемых PDO хранятя в записях с индексами 1800h – 19FFh Transmit PDO Parameters . А что хранится в записях Transmit PDO Mapping (1A00h – 1BFFh)?
Forger
Цитата(yanvasiij @ Jan 25 2012, 13:59) *
Теперь у меня вопрос по самому протоколу. PDO...

А вот тут без знаний основ CANopen (а то, что вы описали - одна из основ CANopen) мои объяснения вряд ли помогут ((
Потому как за моим ответом неизбежно полезут другие вопросы...
Тут уже только сомостоятельно.
Ищите рускоязычные переводы CANopen, изучайте.
Тогда все само-собой проясниться.

p.s. В таких случаях говорят RTFM biggrin.gif

yanvasiij
Проблема как раз таки в непонимании TFMа. Просто скажите правильно ли я понял: Допустим в записи объектного словаря под индексом 2000h хранится некоторая переменная подлежащая отображению в PDO. Для передачи я выбираю TPDO1 и по индексу 1800h по соответствующим субиндексам записываю необходимые параметры: COB ID, пусть будет 181, тип передачи пусть будет асинхронный 255, остальное по нулям. Чтобы указать что именно отображать в PDO, я по индексу 1A00h (Transmit PDO Mapping) субиндексу 01 прописывю 0x20000020 (32 битное число). Это для передачи. Для приема я так понял аналогично, толко индексы другие и параметр Receive PDO Mapping указывает на запись в объектном словаре куда будут записываться входящие PDO. Isn't it? Если нет то продолжу RTFM
Forger
Цитата(yanvasiij @ Jan 25 2012, 16:38) *
Просто скажите правильно ли я понял...

Правильно sm.gif
spectral1989
здравствуйте! ковыряю CanFestival. подскажите пожалста как запустить редактор объектов(objdictgen.py)? Вроде все по мануалу делаю: Visual Studio 2005 установил, Cygwin установил, MinGW установил. Нужно что-то сконфигурировать видимо? пытаюсь запустить из командной строки - он ругается, что файл gnosis.xml.pickle отсутствует

такой вопрос еще, возможно ли запустить CanOpen в режиме, когда один и тот же процессор является и master, и slave? т.е. один микроконтроллер имеет 2 can интерфейса.
spectral1989
с gnosis.xml.pickle разобрался, установил либу. но генератор все равно не запускается. как его вызывать правильно? я пишу так: python c:/VOLODYA/CanFestival2/objdictgen/objdictgen.py Node.od Node.c

node.od is not a valid file.

подскажите что делать?
spectral1989
продвинулся еще чуток. файл objdictgen.py преобразует xml файл node.od в сишный node.c, а чтобы редактировать node.od видимо необходимо запустить objdictedit.py, но он тоже не запускается. выдает ошибку:
Цитата
import wx
import error: no module named wx

возможно вопрос глупый, но для меня решение не очевидно. подскажите пожалста как все таки запустить редактор объектов?
в мануале сказано:
Цитата
double click on objdictedit.py

но это не помогает)

разобрался!
нужно было еще одну либу установить, wxpython называется.
Maks455
Здравствуйте.
2 недели назад начал изучать CANopen. Удалось успешно портировать библиотеку CANopennode под STM32.
устройство генерирует heart, реагирует на NMT.
Но вот больше у меня ничег сделать не получается.
Можете предоставить пару примеров как, например, отправлять SDO сообщения, принимать?
Буду очень благодарен за готовый проект c применением CANopennode.
Спасибо.
syoma
Если устройство реагирует на NMT и шлет Heartbeat, то я бы сперва попробовал побомбить его SDO из любой CANopen конфигурационной проги. По крайней мере в CANfestival - когда он у меня запустился, сразу заработал и SDO сервер. Я думаю в CANopennode тоже может так получиться.
Надеюсь CAN адаптер для PC у Вас есть?(типа IXXAT или Vector). Тогда советую установить демку CANwizard - http://canwizard.de/en/demoversion-download Она хоть под лифты заточена, но имеет в своем составе нормальный SDO клиент и позволяет просканировать сеть и залазить в объектные словари любых устройств. Просто запустите ее и попытайтесь просканировать сеть.
Кстати, никто больше не знает бесплатных конфигурационных прог для CANopen?
Maks455
В том то и дело, что есть только CAN анализатор, и две платы c stm32 и CAN. Нужно запустить между ними обмен информацией.
Достать CANopen возможности нет.
syoma
Какой CAN анализатор?
Maks455
Microchip CAN BUS Analyzer.
syoma
Цитата(Maks455 @ Nov 8 2012, 14:20) *
Microchip CAN BUS Analyzer.


Мда. Печально отлаживать протокол, не имея хотя бы одной железяки, которая его 100%-но поддерживает.
Просто SDO обмен с контроллера на контроллер - это сложновато сразу с ходу. Тогда лучше попробуйте PDO настроить хотя-бы.
spectral1989
Цитата
Печально отлаживать протокол, не имея хотя бы одной железяки, которая его 100%-но поддерживает.

нормальноsm.gif разобраться можно
Цитата
2 недели назад начал изучать CANopen. Удалось успешно портировать библиотеку CANopennode под STM32.
устройство генерирует heart, реагирует на NMT.
Но вот больше у меня ничег сделать не получается.

если у вас работает heart beat - вы без проблем можете запустить синхронные ПДО, почитайте про механизм генерации.
Цитата
как, например, отправлять SDO сообщения, принимать?

с помощью СДО клиента/сервера. смотрите соответствующие записи в объектном словаре. если не понимаете что такое объектный словарь - нужно прежде всего разобраться с ним, четко понять цели его создания и тогда 75% вопросов отпадет.

UPD
скачайте доку на свой стандарт, или в крайнем случае есть более-менее переведенный DS301, поищите в интернете. и попробуйте вникнуть в суть написанного.
EvgeniyR
Цитата(syoma @ Jul 26 2010, 18:45) *
Привет. Если кому интересно.
Короче запустил я этот CANfestival на STM32F103. Заняло это дело 2 месяца подходов к компьютеру и чтения документации и аж 2 дня на перелопачивание драйверов на CAN контроллер и таймер. Исходники могу выложить.
Аж сам удивился, но буквально при первой компиляции эта штука запустилась и начала генерить heartbit и даже реагировать на NMT команды.
На следующий день запустил PDO обмен - тоже работает без проблем. Несмотря на приличную навороченность (стек занял 20кБ места в МК) стек пока выглядит довольно стабильно. Работает все - и SDO и PDO и NMT сервисы (на слэйве).
Вчера даже получилость прикрутить к нему запись параметров во FLASH, а-ля EEPROM. Правда не все скопом, а для заданных объектов при записи.
2 Штуки мне очень понравились по сравнению с CanOpenNode.
1. Во-первых тут есть редактор eds файлов (правда хитро устанавливается, но вполне сносно) который позволяет создать профиль своего устройства и затем по этой информации генерирует .с и .h файлы для стека и сам .eds файл. Работает очень не плохо. Созданные файлы просто копируются в проэкт и перекомпилируются, а eds файл скармливается программе - монитору CANopen шины. О ней дальше внизу.
2. Во-вторых CANfestival имеет намного более развитые возможности. Например программа пользователя общается со стеком только через глобальные переменные, которые являются объектами словаря. При приходе нового PDO переменные сами собой обновляются. При изменении переменной программой - нужно только выполнить функцию послыки PDO и CANfestival сам определит, какая переменная в какой PDO пойдет и нужно ли его слать. Даже по таймеру все работает.
В общем я доволен пока.
Кстати насчет программы. Есть такой сайт: http://www.canwizard.de Там можно скачать одноименную программу.
Она хоть и предназначена для лифтов, но достаточна полезна и для простых CANopen сетей. Она позволяет подключаться к CANopen сети, искать узлы, читать eds файлы, генерить NMT и LSS команды, общаться с любыми узлами по SDO протоколу и т.д. Даже софт по сети обновлять может. Правда лог файлы она не ведет. Единственное ограничение, что бесплатная версия может работать толька максимум с тремя узлами. Поддерживает она Vector, Ixxat, Peak адаптеры.

Добрый день, если можно вышлите исходники на Rogovskiy@outlook.com. Заранее благодарен.
syoma
Я исходники вроде ж здесь выкладывал.
VAlex999
Добрый вечер.
Тема прошлая, но всё же может у кого осталась программка CANwizard, на официальном сайте так понимаю уже недоступно скачать, поиск то же результатов не дал. Надеюсь на этот форум. rolleyes.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.