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

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

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

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

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

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

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

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

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

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

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

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

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

petrovitch
Сообщения: 64
Зарегистрирован: 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-а для дальнейшей работы двигателя (вероятно без диагностики) ? Или как
сделать так, чтобы и диагностика была и задания на скорость и команды не конфликтовали между собой?

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

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

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

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

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

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

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

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

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

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

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

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

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

Ответить

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

Кто сейчас на конференции

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