Перейти к содержанию
    

Узел 1 получил ACK от узла 2 и считает что передача прошла успешно а узел 3 отбросил пакет из-за ошибок.

Так в CANe не пройдет. Узел 3 в момент, когда он обнаружит ошибку в пакете, забъет всю шину доминантным Error frame, который увидят и узел 1 и узел 2. Никто тогда пакет не примет и узел 1 ретранслирует весь пакет.

 

Например Plug-and-play слабо реализован.

А зачем он там нужен?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так в CANe не пройдет. Узел 3 в момент, когда он обнаружит ошибку в пакете, забъет всю шину доминантным Error frame, который увидят и узел 1 и узел 2. Никто тогда пакет не примет и узел 1 ретранслирует весь пакет.

Нет в мире совершенства на canbus это правило действует тоже

Local Errors in EOF

Message Doubling

 

А зачем он там нужен?

Для тупых. Запустить конфигуратор для многих является непосильным интеллектуальным усилием. Существенная часть работодателей нанимают персонал по принципу "тупой и еще тупее".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет в мире совершенства на canbus это правило действует тоже

Local Errors in EOF

Message Doubling

Ну и шо? Это наоборот демонстрирует, что CAN - совершенен :biggrin: . В худшем случае одно и то же сообщение передастся дважды.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с CANOpen не работал и полностью реализовывать протокол не хочу. Достаточно одного SDO и карты индексов, субиндексов и мин/макс значений. Есть ли какие средства, которые из EDS преобразуют в заголовочный файл с дефайнами этих индексов субиндексов и мин/макс значений?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Последний мой вопрос не актуален, так как придумал механизм удовлетворяющей моей задаче.

Все SDO пишутся и читаются, всё отлично.

Остался последний вопрос. Я отправляю NMT, но не понимаю как проверить прохождение, так как устройство никак не реагирует на мою посылку. Может я не верно отправляю.

Мой пакет выглядит так:

CAN_ID = 0

RTR = 0

LEN = 8 //
пробовал и LEN = 2

DATA[0] = NMT_MODE //
согласно описанию

DATA[1] = node_id + 1 //
+1 указан в описании

DATA[2...7] = 0

Дальше я это дело отправляю, но как проконтролировать прохождение не понятно , так как в поведении устройства ничего не меняется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...