MotorControlDemo
- Лашкевич Максим
- Сообщения: 342
- Зарегистрирован: 30 дек 2015, 10:38
Re: MotorControlDemo
Потому что снятые на текущем такте токи - это обычно токи с предыдущего такта, так как пока датчики тока измерят ток, пока аналоговый тракт контроллера отработает, пока АЦП, пока программа дойдет до их считывания... Всё условно, конечно.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
-
- Сообщения: 17
- Зарегистрирован: 20 фев 2017, 18:39
Re: MotorControlDemo
Настраиваю регуляторы тока согласно описанию на ПО (п. 6.1.2.).
Заданный ток удержания 1А.
Хотя параметры ПИД-регулятора и влияют на результат, но при всех
настройках осциллограммы токов фаз В и С имеют форму как на картинке:
В чём может быть проблема?
Заданный ток удержания 1А.
Хотя параметры ПИД-регулятора и влияют на результат, но при всех
настройках осциллограммы токов фаз В и С имеют форму как на картинке:
В чём может быть проблема?
- Лашкевич Максим
- Сообщения: 342
- Зарегистрирован: 30 дек 2015, 10:38
Re: MotorControlDemo
Да, есть такой эффект, связан, насколько я помню, с влиянием мёртвого времени при попытке приложить околонулевое напряжение вдоль одной из осей. Попробуйте сменить тип ШИМ на другой. Также попробуйте поменять частоту ШИМ - попробуйте 10кГц, 15кГц, посмотрите как влияет.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Re: MotorControlDemo
Добрый день проект Motor control demo под контроллер 1921ВК035 выполнен полностью на данном микроконтроллере, без участия внешней памяти? Просто на отладочной плате я обратил внимание на DD2 (24LC256)...
- Лашкевич Максим
- Сообщения: 342
- Зарегистрирован: 30 дек 2015, 10:38
Re: MotorControlDemo
Добрый день, в данном микроконтроллере нет встроенной отдельной флеш памяти для сохранения настроек привода. Поэтому для сохранения стоит внешний чип. Можно отключить возможность сохранения параметров в драйвере CANOpen, тогда внешний чип использоваться не будет.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Re: MotorControlDemo
Спасибо! Тогда алгоритм работы такой, если нет внешней памяти- все настройки, например, регуляторов писать "влоб", ввиде констант внутри приекта?
Просто нет возможности использовать внешнюю память
Просто нет возможности использовать внешнюю память
- Лашкевич Максим
- Сообщения: 342
- Зарегистрирован: 30 дек 2015, 10:38
Re: MotorControlDemo
Для того, чтобы задавать Си-кодом "в лоб", все переменные надо удалить из словаря CANOpen, иначе он загрузить им значения по-умолчанию при инициализации. Поэтому лучше, при сохранении CANOpen, менять дефолты параметрам в COODEdit и перегенерить словарь.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.
Re: MotorControlDemo
В продолжение темы по проекту ПО для контроллера 1921ВК035.
Правильно ли я понимаю, что и программу и данные вы размещаете во внутренней флэш памяти программ, откуда они загружаются во внутреннее ОЗУ память программ или программа выполняется из флэш? А во внешней флэш памяти данных храните отредактированные значения параметров, которые потом при загрузке программы и данных из флэщ ПП присваиваются переменным? А дефолтные значения переменных из кудэдита хранятся во внутренней флэш памяти программ?
Если это так, то подскажите пожалуйста как отключить возможность сохранения параметров в драйвере CANOpen, для того, чтобы работать без внешнего чипа флэщ памяти.
И еще, подскажите пожалуйста, как оценить объем занимаемой памяти проектом, чтобы понять впишется ли разработанное ПО в 64 кБ? В файле Debug/*.map есть строчки .debug_frame .... - это оно?
Благодарю.
Правильно ли я понимаю, что и программу и данные вы размещаете во внутренней флэш памяти программ, откуда они загружаются во внутреннее ОЗУ память программ или программа выполняется из флэш? А во внешней флэш памяти данных храните отредактированные значения параметров, которые потом при загрузке программы и данных из флэщ ПП присваиваются переменным? А дефолтные значения переменных из кудэдита хранятся во внутренней флэш памяти программ?
Если это так, то подскажите пожалуйста как отключить возможность сохранения параметров в драйвере CANOpen, для того, чтобы работать без внешнего чипа флэщ памяти.
И еще, подскажите пожалуйста, как оценить объем занимаемой памяти проектом, чтобы понять впишется ли разработанное ПО в 64 кБ? В файле Debug/*.map есть строчки .debug_frame .... - это оно?
Благодарю.
Re: MotorControlDemo
Здравствуйте.Илья! писал(а): ↑30 июл 2020, 01:21В продолжение темы по проекту ПО для контроллера 1921ВК035.
Правильно ли я понимаю, что и программу и данные вы размещаете во внутренней флэш памяти программ, откуда они загружаются во внутреннее ОЗУ память программ или программа выполняется из флэш? А во внешней флэш памяти данных храните отредактированные значения параметров, которые потом при загрузке программы и данных из флэщ ПП присваиваются переменным? А дефолтные значения переменных из кудэдита хранятся во внутренней флэш памяти программ?
Если это так, то подскажите пожалуйста как отключить возможность сохранения параметров в драйвере CANOpen, для того, чтобы работать без внешнего чипа флэщ памяти.
И еще, подскажите пожалуйста, как оценить объем занимаемой памяти проектом, чтобы понять впишется ли разработанное ПО в 64 кБ? В файле Debug/*.map есть строчки .debug_frame .... - это оно?
Благодарю.
Если я правильно понял, вы говорите про проект MotorControlDemo для 035.
Вы всё описали верно:
1. Программа хранится во внутренней Flash, и оттуда же выполняется, так как ОЗУ очень мало для хранения функций. В принципе есть возможность разместить часть функций в RAM и копировать их туда из Flash, но опыт показывает, что смысла в этом особо нет. Программа из Flash выполняется в большинстве случаем так же быстро, как и из RAM. Это связано с архитектурой микроконтроллера.
2. Значения параметров словаря CANopen "по умолчанию" хранятся во внутренней флеш.
3. Значений параметров словаря, которые пользователь изменил и хочет сохранить, хранятся во внешней памяти.
Логика загрузки этих параметров такая: при инициализации, драйвер CANopen считывает значения из внешней памяти. Помимо самих значений хранится ещё и контрольная сумма. Если количество требуемых для словаря значений и их контрольная сумма сходятся, то драйвер записывает в параметры эти загруженные значения. Если нет - либо изменился словарь и количество параметров в словаре теперь не такое, как в памяти, или память пуста и не сходится контрольная сумма - драйвер загружает значения по умолчанию из внутренней Flash.
4. Если вы хотите работать без внешней памяти, то нужно в файле "SM_NET.c" найти в функции "SM_NET_Init" строки для инициализации CANopen драйвера и присвоить переменной " co1_vars.settings.LoadParamsFromUserMemory_ena" значение "0". Тогда значения параметров всегда будут загружаться "по-умолчанию".
Вы также можете подчистить всё, что связано с модулем "UserMemory", если у вас сильно не достаёт памяти под ваш проект. Это файл для работы с I2C памятью на плате MotorControlBoard035. Но на внешнюю память ещё кое-что завязано, например ведение логов аварий. Если у вас внешней памяти нет, то и смысла в этом модуле тоже нет, но придётся повозиться, чтобы аккуратно всё подчистить. Возможно проще будет просто закомментировать содержимое некоторых функций.
5. Что касается размера программы, то он печатается в консоли после окончания сборки:
Развернуть
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.
Re: MotorControlDemo
спасибо за развернутый ответ.
уточните пожалуйста, весь проект Motor Control Demo 035 входит во внутреннюю 64кБ флэш? Или все же вы используете часть внешней памяти для хранения программы?
Благодарю
уточните пожалуйста, весь проект Motor Control Demo 035 входит во внутреннюю 64кБ флэш? Или все же вы используете часть внешней памяти для хранения программы?
Благодарю