Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

32-разрядные микроконтроллеры разработки АО "НИИЭТ"

Модераторы: dav, bkolbov, Alis, pip, _sva_, dav, bkolbov, Alis, pip, _sva_, dav, bkolbov, Alis, pip, _sva_

petrovitch
Сообщения: 72
Зарегистрирован: 15 фев 2017, 19:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch » 23 сен 2019, 13:32

Ещё у меня вопросы.
1. Подскажите место в программе, где идёт замыкание по скорости (задане вычитается текущей скоростью)?

2. Где в программе происходит поворот вектора поля статора, как я понимаю по методу - принудительный поворот.?

Аватара пользователя
Лашкевич
Сообщения: 198
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Contact:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение Лашкевич » 23 сен 2019, 13:38

Все эти вопросы описаны в документе "Описание структуры ПО MotorControlDemo_v23.pdf "

В частности, в разделе 5.1 говорится про модуль SM_Ctrl, который реализует различные структуры управления. Что такое "принудительный поворот" я не понял, но, думаю, все вопросы отпадут после изучения документа и соответствующего сишного файла.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/

petrovitch
Сообщения: 72
Зарегистрирован: 15 фев 2017, 19:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch » 07 окт 2019, 14:04

Ранее Вы мне ответили следующее:
По поводу того, что параметры привода должны быть определены "жестко" и принимать задание по SPI, и управлять двумя двигателями - вообще никак не влияет на использование юникона. Можно отключить работу с пользовательской флеш-памятью в CANOpenUDfuncs.c (сделав пустыми co_UserMemoryRead и co_UserMemoryWrite), драйвер CANopen будет во все параметры грузить при запуске контроллера дефолты, которые заданы в COODEdit. А можно отключить даже и это, обнулив co2_vars.settings.LoadParamsFromUserMemory_ena = 0;
И два двигателя тоже никакой проблемы нет... В общем, мое мнение, вы больше сил потратите на запуск и инициализацию пустого проекта, чем вернете юникон, даже пусть с отключенной загрузкой параметров и другим приёмом задания.
В продолжение разговора на эту тему.
Получилось запустить от UniCon-а по структуре 3 двигатель.
1. Вставил код для приёма по SPI заданий на скорость двигателя. В какую переменную мне записывать принятую скорость (считаем, что
с разрядностью всё согласую)? .. также команду на пуск/останов?

2. как избежать конфликтов с приходящими от UniCon-а командами и заданиями? ... или всё само собой будет работать, если не трогать UniCon?

3. Как "отлучить" настроенный с UniCon-ом проект от самого UniCon-а для дальнейшей работы двигателя (вероятно без диагностики) ? Или как
сделать так, чтобы и диагностика была и задания на скорость и команды не конфликтовали между собой?

Аватара пользователя
Лашкевич
Сообщения: 198
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Contact:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение Лашкевич » 07 окт 2019, 14:14

Программный код открыт. Посмотрите, пожалуйста, как сделано управление от аппаратных кнопок (StartButton) в файле SM_CmdLogic.c. Добавьте туда свои команды. Задание скорости можно писать прямо в переменную refs.speed_ref. Сделайте какой-то выключатель у своего драйвера, чтобы он переставал присваивать в эту переменную, если требуется задавать скорость через юникон.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/

petrovitch
Сообщения: 72
Зарегистрирован: 15 фев 2017, 19:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch » 07 окт 2019, 15:29

Сделайте какой-то выключатель у своего драйвера, чтобы он переставал присваивать в эту переменную, если требуется задавать скорость через юникон.
Вы имеете ввиду командой по SPI запрещать присваивать значения в переменную refs.speed_ref?
Я могу при работе по SPI производить разъединение с UniCon?

... а когда снова произведу соединение UniCon прочитает актуальное значение скорости?

Аватара пользователя
Лашкевич
Сообщения: 198
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Contact:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение Лашкевич » 07 окт 2019, 15:47

Юникон показывает текущее значение переменной refs.speed_ref. Если юниконом вписать новое и нажать энтер, то драйвер кенопен присвоит в эту переменную новое значение, одни раз как примет посылку от юникона. Но это значение refs.speed_ref переприсвоится на другое в вашем драйвере SPI, так как, я полагаю, по нему постоянно шлется какое-то другое задание. Поэтому, если хочется оставить управление от юникона, надо иметь опцию по отключению работы драйвера SPI. Или, может быть, если прекратить посылать по нему данные, он закончит и присваивать? Тогда ничего и не нужно мудрить.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/

petrovitch
Сообщения: 72
Зарегистрирован: 15 фев 2017, 19:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch » 12 дек 2019, 19:53

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

В частности речь идёт о вкладке АЦП.
Изменил значения каналов АЦП, приведя их в соответствие сос своей схемой.
При этом параметр напряжения ЗПТ настроен по коэффициенту и показывает вполне себе реальную картину:
значения постоянно меняются вокруг моих 24В питания.
А вот значения токов не меняются даже при изменении коэффициента.

В этой связи вопросы. Как UniCon должен "узнать" о моих корректировках каналов АЦП и как
определяется соответствие отображаемого значения с UniCon и каналу АЦП? Может я где-то
не всё поправил?

Аватара пользователя
Лашкевич
Сообщения: 198
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Contact:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение Лашкевич » 12 дек 2019, 20:12

Юникон не знает об АЦП и каналах, это просто отображалка Сишных переменных. Откройте файл словаря объектов cood2.c, поиском по файлу найдите интересующие параметры (ток и его коэффициент), посмотрите, какие Сишные переменные им соответствуют. Посмотрите, как завязаны эти переменные в коде программы (в файле V_adc.c), отладьте через житаг если на глаз ошибку не видно.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/

petrovitch
Сообщения: 72
Зарегистрирован: 15 фев 2017, 19:07

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение petrovitch » 17 дек 2019, 17:13

Настраивая датчики тока, получил в UniCon вот такие показатели
усиления и смещений:
currents.jpg
currents.jpg (61.85 КБ) 495 просмотров
Не мой взгляд странные настройки при совершенно одинаковой
схемотехнике по каждому шунту. Допустимо ли это?

Аватара пользователя
Лашкевич
Сообщения: 198
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Contact:

Re: Проект MotorControlDemo для микроконтроллеров серии 1921ВК01

Сообщение Лашкевич » 17 дек 2019, 17:49

Ну знак минуса скорее всего внутри ПО сидит, там для какой-то и версий железа он был в дефайне прописан, проверьте код. Можно в софте минус убрать, тогда в параметрах получатся одного знака все коэффициенты.
А по поводу смещений - да, так как данном микроконтроллере физически разные модули АЦП внутри (12 штук), каждый со своим уникальным смещением и усилением, нужно для каждого канала настраивать всё персонально. Однако ошибка не должна быть больше порядка 1%. Т.е. для большинства реальных задач привода можно задать одинаковые смещения и усиления и всё будет нормально работать.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/

Ответить

Вернуться в «32-разрядные микроконтроллеры»

Пользователи онлайн

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей