Да. Мы используем Ваш драйвер, но верхний уровень свой.
UniCON
Re: UniCON
Re: UniCON
Отдельной проверки "на пустоту" памяти нет. Драйвер CANopen проходится по EEPROM, предполагая, что параметры в ней хранятся в том же порядке и количестве, что и в текущем словаре объектов. Если это будет не так, то не сойдётся контрольная сумма при проверке сохранённых данных. С этой точки зрения пустая пользовательская память неотличима от набора параметров от другого словаря.
Если параметры загрузить из EEPROM не удаётся, то драйвер загружает параметры "по умолчанию", которые являются неотъемлемой частью исполняемой программы и прошиваются вместе с ней в Основную флеш память.
Поэтому в принципе, если бы было сделано так, как предлагаете вы - если при запуске программы память пустая, то залить в неё то текущие значения - это было бы то же самое, что ничего не делать. В параметры попадут дефолтные значения.
Сейчас проконсультируюсь с коллегами.Илья! писал(а): физ линия CAN, протокол CanOpen
Да. Мы используем Ваш драйвер, но верхний уровень свой.
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.
Re: UniCON
Я так понял, что при прошивке чистого контроллера пользовательская флэш остается пустой до первого сохранения параметров. Соответственно параметры загрузить из нее не удастся и драйвер загрузит параметры по умолчанию (а при этом они прописываются в пользовательскую флэш?). И так будет происходить постоянно до выполнения процедуры Сохранить параметры? И при этом будет еще генериться ошибка драйвера о невозможности восстановить параметры? Если я все так понял, то отключив данную ошибку, я могу работать с системой, в которой установлены параметры по умолчанию. Так?
Благодарю
Re: UniCON
Да, всё верно.Илья! писал(а): ↑06 май 2022, 18:02
Я так понял, что при прошивке чистого контроллера пользовательская флэш остается пустой до первого сохранения параметров. Соответственно параметры загрузить из нее не удастся и драйвер загрузит параметры по умолчанию. И так будет происходить постоянно до выполнения процедуры Сохранить параметры? И при этом будет еще генериться ошибка драйвера о невозможности восстановить параметры? Если я все так понял, то отключив данную ошибку, я могу работать с системой, в которой установлены параметры по умолчанию. Так?
Благодарю
Если вам нужно сохранить параметры только для того, чтобы не мешала ошибка, то лучше просто эту ошибку убрать из модуля защит (SM_Prot).
Я посмотрел описание драйвера - вам нужен пункт "4.5.3 Функции сохранения и загрузки параметров".
Эти функции объявлены в заголовочном файле "CANopen_drv.h" и вы можете вызывать их в любом месте своей программы. Ну, то есть, в фоновом цикле. В прерывании этого делать нельзя, потому что выполнение функций занимает много времени.
Там также приведён пример того, как надо вызвать функции, чтобы сохранить/загрузить/установить по умолчанию значения всех параметров.
Я думаю, для вас наилучшим вариантом будет такой:
1. Создать в словаре объектов какой-нибудь RW-параметр, который вы будете использовать для управления записью значений параметров. Например - если записать в этот параметр "1", то нужно сохранить значения в EEPROM. Если записать "2" - нужно загрузить из EEPROM. Если записать "3" - нужно загрузить в параметры значения по умолчанию.
2. Внутри программы реализовать вызов функций "co_ODexpositor_instaurationDefault" / "co_ODexpositor_paramConservation" / "co_ODexpositor_paramInstauration" в зависимости от значения упомянутого параметра.
То есть, примерно так:
Развернуть
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.
Re: UniCON
Скажите пожалуйста, уточню, при первой прошивке контроллера драйвер загрузит значения по умолчанию и в пользовательскую флэш?Disona писал(а): ↑06 май 2022, 18:21Да, всё верно.Илья! писал(а): ↑06 май 2022, 18:02
Я так понял, что при прошивке чистого контроллера пользовательская флэш остается пустой до первого сохранения параметров. Соответственно параметры загрузить из нее не удастся и драйвер загрузит параметры по умолчанию. И так будет происходить постоянно до выполнения процедуры Сохранить параметры? И при этом будет еще генериться ошибка драйвера о невозможности восстановить параметры? Если я все так понял, то отключив данную ошибку, я могу работать с системой, в которой установлены параметры по умолчанию. Так?
Благодарю
Если вам нужно сохранить параметры только для того, чтобы не мешала ошибка, то лучше просто эту ошибку убрать из модуля защит (SM_Prot).
И при последующем сбросе питания параметры будут уже загружены из пользовательской флэш и ошибка генериться не будет? Или же без нажатия Сохранить параметры пользовательская флэш будет всегда пустой?
Благодарю
Re: UniCON
Нет, не так.
Если память пустая, то он загрузит в параметры словаря значения по умолчанию, но в EEPROM их самостоятельно не сохранит.
Драйвер не запишет в EEPROM значения, пока вы не нажмёте "Сохранить параметры" или не вызовете функцию "co_ODexpositor_paramIConservation();"
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.
-
- Сообщения: 7
- Зарегистрирован: 10 июн 2020, 21:21
Re: UniCON
Добрый день.
У меня затруднение с подключением UniCON к отладочной плате с 1921ВК035.
Выбираю модуль связи USB RS, задаю нужный COM порт.
При этом становится статус: работа и Ожидание устройств в сети...
Счетчик пакетов в статусной строке снизу увеличивается (Rx: ), но список устройств пустой. Далее я посмотрел формат heartbeat-посылок сторонней программой. Он с виду корректный: DLC=1, ID=0x700, data[0]=0x05, период 1 секунда, скорость передачи 57600 Кбит/с.
Но в UniCON узел не виден. Пробовал запускать разные версии из bitbucket.
Прошу помочь советом.
У меня затруднение с подключением UniCON к отладочной плате с 1921ВК035.
Выбираю модуль связи USB RS, задаю нужный COM порт.
При этом становится статус: работа и Ожидание устройств в сети...
Счетчик пакетов в статусной строке снизу увеличивается (Rx: ), но список устройств пустой. Далее я посмотрел формат heartbeat-посылок сторонней программой. Он с виду корректный: DLC=1, ID=0x700, data[0]=0x05, период 1 секунда, скорость передачи 57600 Кбит/с.
Но в UniCON узел не виден. Пробовал запускать разные версии из bitbucket.
Прошу помочь советом.
Re: UniCON
Здравствуйте.Алексей Федоров! писал(а): ↑23 май 2022, 14:27Добрый день.
У меня затруднение с подключением UniCON к отладочной плате с 1921ВК035.
Выбираю модуль связи USB RS, задаю нужный COM порт.
Подскажите, пожалуйста, где вы брали программу, которую прошили в контроллер? С репозитория последний коммит?
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.
-
- Сообщения: 7
- Зарегистрирован: 10 июн 2020, 21:21
Re: UniCON
Здравствуйте.
Да, проект MotorControlDemo_035 последний коммит
Да, проект MotorControlDemo_035 последний коммит
Re: UniCON
Сейчас у себя проверим, как он работает.Алексей Федоров! писал(а): ↑23 май 2022, 14:59Здравствуйте.
Да, проект MotorControlDemo_035 последний коммит
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.