Jump to content

    

Recommended Posts

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

Edited by laker

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
9 hours ago, laker said:

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

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

Share this post


Link to post
Share on other sites
13 часов назад, Andrew_Q сказал:

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

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

Share this post


Link to post
Share on other sites

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

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

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

Edited by Eddy_Em

Share this post


Link to post
Share on other sites
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, который написан на Питоне.

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

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.