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

Canopen SDO протокол

Проблема состоит в том, что я не сильно разбираюсь в работе CAN.

CAN сеть изначально была сконфигурирована при помощи "Elmo Compuser studio" состояла из 2ух контроллеров elmo falcon и IXXATовского контролера.

Возникла необходимость управлять управлять этими контроллерами через TMS320F28335.

Передачу сообщений я реализовал через SDO протокол, то есть я просто отправляю по CAN шине необходимые SDO сообщения, без всяческого предварительного конфигурирования CAN.

Пока сеть состояла только из одного сервера - "elmo falcon" и одного клиента - "TMS320F28335" проблем небыло пакеты и отправлялись и принимались на ура.

Непонятная мне проблема возникла при подключении второго сервера управляющие сообщения по прежнему успешно доходят до адресатов ( это видно по работе двигателя) а вот ответ получить не получается :( (CAN сеть в обоих случаях замкнута с обеих концов терминаторами).

Помогите пожалуйста разобраться с этой проблемой ( может кто сталкивался с чем то подобным, или понял что я упустил из виду из моих путаных обьяснений)

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


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

Как сконфигурирована сеть в случае когда не работает ?

Проверьте на всякий случай node id всех устройств в конфигурации когда нет ответа

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


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

Как сконфигурирована сеть в случае когда не работает ?

Проверьте на всякий случай node id всех устройств в конфигурации когда нет ответа

Когда сеть работает - она состоит из одного сервера с ID 1 и одного клиента без ID так как он ему не нужен.

когда в сеть добавляется второй сервер с ID 2 принять SDO сообщение у меня не получается.

ID разные, и сообщения доходят до адресатов (это видно по тому что начинают вращаться подключенные к контроллерам двигатели).

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


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

Когда сеть работает - она состоит из одного сервера с ID 1 и одного клиента без ID так как он ему не нужен.

когда в сеть добавляется второй сервер с ID 2 принять SDO сообщение у меня не получается.

ID разные, и сообщения доходят до адресатов (это видно по тому что начинают вращаться подключенные к контроллерам двигатели).

1) Подавайте разные команды разным серверам, убедитесь что каждый сервер воспринимает только свои команды. Проверьте работу с одним сервером в конфигурации когда подключены оба. Для обоих сервером проверьте какой COB-ID передает клиент и получает от сервера в ответ.

2) Запустите сеть с двумя серверами, подайте им команды потом отключите один из серверов и удостоверьтесь что вы получаете от него ответ.

3) Проверьте в серверах состояние объекта 1200h - 127Fh: Server SDO Parameter. Вдруг ваши серверы по умолчанию используют неправильный COB-ID.

4) В клиенте отключите любые виды фильтрации и выводите на печать дамп всех пакетов (как принимаемых так и отправляемых). Но проще использовать анализатор.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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