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

Вопросы по CanOpen

Добрый день, я являюсь новичком в работе с can, но возникла необходимость связаться с этим протоколом. Описываю задачу: нужно реализовать блок управления бесколлекторным электродвигателем (с датчиками холла) с защитой от перегрузок (скорее всего придётся обойтись его математической моделью). Так вот, основной задачей данного проекта является наблюдение показаний датчиков Холла, и нужно видеть (контролировать) ток на обмотках двигателя, данный список параметров до конца мне не известен, возможно он расширится, но минимум такой. Так вот, как я понимаю, чтобы отслеживать данные параметры в режиме реального времени (даже пусть это математическая модель), мне нужно реализовать стек протоколов CanOpen,  речи о сети не идёт, нужно только наладить CanOpen связь между ПК и микроконтроллером stm32f103c8t6. Я поковырялся на различных форумах, сайтах, и нашёл информацию про 2 библиотеки под данное семейство микроконтроллеров - это CanOpenNode и CanFestival. Данные библиотеки реализованы, как я прочитал, с использованием стандартов ds-301, ds-302 и ds-305, а для реализации устройств CANopen для приводов  нужен стандарт ds-402 ( возможно я несу полную околесицу ), который не указан ни в  CanOpenNode, ни в CanFestival. Я правильно понимаю, что для выполнения моей задачи библиотека должа содержать стандарт ds-402  или можно обойтись без этого стандарта (ds-402), а реализовать "сеть" на основе имеющихся библиотек. Если всё же это так (библиотека должна содержать стандарт ds-402), то подскажите есть ли такая библиотека в бесплатном доступе? А если ответ будет " можно реализовать на основе имеющихся библиотек", то какую лучше выбрать с точки зрения простоты реализации?

Изменено пользователем laker

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


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

Для Вашего контроллера я бы рекомендовал CanFestival. CanOpenNode нужен если ужиматься. Использовал оба, портируются легко. Но для CanFestival редактор словаря, на мой взгляд, интереснее. А DS-402, судя по описанной Вами задаче, Вам не нужен.

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


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

9 hours ago, laker said:

Добрый день, я являюсь новичком в работе с can, но возникла необходимость связаться с этим протоколом. Описываю задачу: нужно реализовать блок управления бесколлекторным электродвигателем (с датчиками холла) с защитой от перегрузок (скорее всего придётся обойтись его математической моделью). Так вот, основной задачей данного проекта является наблюдение показаний датчиков Холла, и нужно видеть (контролировать) ток на обмотках двигателя, данный список параметров до конца мне не известен, возможно он расширится, но минимум такой.

Из описания ваших потребностей не видно необходимости в CANopen. Даже необходимости в CAN не видно. 
Такое делают на USB.
Будет многократно проще , и не надо будет никаких словарей и прочей протокольной атрибутики. 

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


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

13 часов назад, Andrew_Q сказал:

 я бы рекомендовал CanFestival.

Простите за глупый вопрос, а с CanFestival можно работать на  языке программирования Си или он только для python, просто в инструкции к установке было сказано установить python.

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


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

Python Вам понадобится, чтобы сформировать, а затем модифицировать словарь объектов. А сама целевая программа вся на C.

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


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

Почитайте внимательно протоколы! Скажем, когда мне притащили пусироботовский драйвер ШД, я тоже поначалу испугался, что придется всяких монстров вроде CanFestival окучивать (а для начала - написать прослойку для своего преобразователя CAN<>USB).

Но все оказалось гораздо проще: "полноценного" CanOpen там и отродясь нет, все элементарно решилось своими силами

А еще у нас 6-метровый телескоп крутят двигатели, управляемые приводами CanOpen. Но на нижнем уровне тоже никто не парился с этими "фестивалями": мы просто нужным образом PDO настроили и работали через них.

Изменено пользователем Eddy_Em

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


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

On 5/24/2020 at 11:32 PM, laker said:

Так вот, основной задачей данного проекта является наблюдение показаний датчиков Холла, и нужно видеть (контролировать) ток на обмотках двигателя, данный список параметров до конца мне не известен, возможно он расширится, но минимум такой. Так вот, как я понимаю, чтобы отслеживать данные параметры в режиме реального времени (даже пусть это математическая модель), мне нужно реализовать стек протоколов CanOpen,  речи о сети не идёт, нужно только наладить CanOpen связь между ПК и микроконтроллером stm32f103c8t6.

Да, если датчик у вас свой, то я тоже не вижу смысла в CANopen. Только если вы собираетесь использовать уже готовый датчик с CANopen внутри, тогда вам нужно реализовывать этот протокол.

Нарисуйте блок-схему, так будет понятней.

20 hours ago, laker said:

Простите за глупый вопрос, а с CanFestival можно работать на  языке программирования Си или он только для python, просто в инструкции к установке было сказано установить python.

Сам CanFestival сделан полностью на Си. Но вам нужно будет создать специальный .с и .h файл словаря для вашего устройства, описывающий ваши переменные. Этот файл формируется из программы - редактора словаря objdictedit, который написан на Питоне.

Небольшой изврат, но так оно работает.

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


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

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

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

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

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

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

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

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

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

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