CANOPEN драйвер

Илья!
Сообщения: 114
Зарегистрирован: 09 ноя 2018, 16:55

Re: CANOPEN драйвер

Сообщение Илья! » 26 ноя 2021, 17:19

P.S.
данные параметры пытаюсь редактировать в Юниконе

Аватара пользователя
Лашкевич Максим
Сообщения: 342
Зарегистрирован: 30 дек 2015, 10:38

Re: CANOPEN драйвер

Сообщение Лашкевич Максим » 29 ноя 2021, 14:40

Здравствуйте. При вводе значений в объекты отображения драйвер выполняет необходимые проверки правильности введенных пользователем данных и, если все верно, переконфигурируется для отправки/приема сообщений.
Возможные ошибки в настройке и реакция драйвера:
1. Указан несуществующий индекс - реакция: переменная отображения co_xPDOx_xMapping = 0, PDO приниматься/отправляться не будет.
2. Указан несуществующий подындекс - реакция: переменная отображения co_xPDOx_xMapping = 0, PDO приниматься/отправляться не будет.
3. Указанный объект не "rw" (актуально только для RPDO) - так как при приеме PDO драйвер должен производить распаковку данных в соответсвии с настройку отображения, то все параметры, в которые осуществляется распаковка должны быть доступны для записи, а именно иметь тип "rw". Реакция: переменная отображения co_xPDOx_xMapping = 0, PDO приниматься не будет.
4. Общая длина "смеппированного" PDO превысила 64 бита - реакция: переменная отображения co_xPDOx_xMapping = 0x......FF. Соответствующее PDO приниматься/отправляться не будет.

В Вашем случае, так как переменная отображения "обнуляется", то возможные ошибки -1,2 и 3.

Смотрите "Описание драйвера CANopen v12.pdf" пункт 3.4.1
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

Илья!
Сообщения: 114
Зарегистрирован: 09 ноя 2018, 16:55

Re: CANOPEN драйвер

Сообщение Илья! » 29 ноя 2021, 15:36

Здравствуйте
с документом "Описание драйвера CanOpen v12.pdf" естественно ознакомился.
ошибки 1,2,3 исключены: проверено, индексы и подындексы существуют, параметры, адреса которых пытаюсь ввести в RPDO Mapping имеют статус редактируемые.
но при попытке ввода RPDOx_xMapping с Юникона данная переменная обнуляется
Последний раз редактировалось Илья! 29 ноя 2021, 17:33, всего редактировалось 1 раз.

Аватара пользователя
Лашкевич Максим
Сообщения: 342
Зарегистрирован: 30 дек 2015, 10:38

Re: CANOPEN драйвер

Сообщение Лашкевич Максим » 29 ноя 2021, 17:17

Попробуйте для теста замеппировать один из стандартных редактируемых объектов словаря. Например, в в объект 1600.01 RPDO1-1 Mapping впишите 0x18000400 (402654208 в десятичном формате). В случае успеха 1600.01 RPDO1-1 Mapping должен быть равен 0x18000408 (402654216 в десятичном формате). Сообщите результат эксперимента.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

Илья!
Сообщения: 114
Зарегистрирован: 09 ноя 2018, 16:55

Re: CANOPEN драйвер

Сообщение Илья! » 29 ноя 2021, 17:24

при попытке проинициализировать RPDO Mapping в программном коде
co2_vars.co_RPDO1_1Mapping = 0x51000300; // 1358955264
co2_vars.co_RPDO1_2Mapping = 0x51000300; // 1358955264
co2_vars.co_RPDO1_3Mapping = 0x51000300; // 1358955264
co2_vars.co_RPDO1_4Mapping = 0x51000300; // 1358955264
co_ReInit(&co2_vars);
в Юниконе я наблюдаю следующую картинуИзображение

при записи в одну переменную
co2_vars.co_RPDO1_1Mapping = 0x51000300;
без переинициализации, в переменной RPDO1_1Mapping наблюдаю записываемое значение
Вложения
2021-11-29_171747.jpg
2021-11-29_171747.jpg (97.62 КБ) 4963 просмотра

Илья!
Сообщения: 114
Зарегистрирован: 09 ноя 2018, 16:55

Re: CANOPEN драйвер

Сообщение Илья! » 29 ноя 2021, 17:28

Лашкевич Максим писал(а):
29 ноя 2021, 17:17
Попробуйте для теста замеппировать один из стандартных редактируемых объектов словаря. Например, в в объект 1600.01 RPDO1-1 Mapping впишите 0x18000400 (402654208 в десятичном формате). В случае успеха 1600.01 RPDO1-1 Mapping должен быть равен 0x18000408 (402654216 в десятичном формате). Сообщите результат эксперимента.
выполняя данное действие через Юникон, наблюдаю сброс в 0 переменной RPDO1-1 Mapping, так же как и при вводе в нее других значений, например 0x5100.03

Илья!
Сообщения: 114
Зарегистрирован: 09 ноя 2018, 16:55

Re: CANOPEN драйвер

Сообщение Илья! » 29 ноя 2021, 17:32

P.S.
функция
co_ReInit(&co2_vars);
возвращает 1.

Аватара пользователя
Лашкевич Максим
Сообщения: 342
Зарегистрирован: 30 дек 2015, 10:38

Re: CANOPEN драйвер

Сообщение Лашкевич Максим » 30 ноя 2021, 10:59

Добрый день.

Мы нашли ошибку в драйвере CANopen.
Ошибка исправлена и проект с обновлённой библиотекой загружен на BitBucket.
В ближайшее время мы пересоберём все варианты библиотек и загрузим в раздел "Downloads" на BitBucket.

Большое спасибо за интерес к нашему проекту ;)
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

Аватара пользователя
Disona
Сообщения: 92
Зарегистрирован: 28 ноя 2015, 22:03
Откуда: Москва

Re: CANOPEN драйвер

Сообщение Disona » 30 ноя 2021, 12:47

Илья! писал(а):
29 ноя 2021, 17:32
P.S.
функция
co_ReInit(&co2_vars);
возвращает 1.
Архив с библиотеками CANopen в "Downloads" загружен.
Если вы используете библиотеку только с CAN1 или только с CAN2, то её нужно обновить, взяв из этого архива.
В репозитории проекта "MotorControlDemo" используется библиотека с поддержкой обоих CAN-ов.
С уважением,
Дмитрий Шпак
Telegram: +79773608997
shpak@motorcontrol.ru
Инженер-программист ООО "НПФ Вектор", Москва.

Илья!
Сообщения: 114
Зарегистрирован: 09 ноя 2018, 16:55

Re: CANOPEN драйвер

Сообщение Илья! » 01 дек 2021, 11:49

спасибо. заработало. PDO в Юниконе настраивается
хочу проверить прием/передачу PDO.
скажите пожалуйста, а может ли CAN работать сам на себя, т.е. принимать то, что сам посылает? т.е. если я, например, в CAN2 настрою TPDO1_1Mapping на передачу какого-либо параметра из словаря, и в том же CAN2 настрою RPDO1_1Mapping на прием TPDO1 этого же узла, увижу ли я передаваемый параметр в другом параметре, указанном в RPDO1_1Mapping? Или же надо соединить два разных CANа проводками и в одном CANе настраивать TPDO, а в другом RPDO?

благодарю

Ответить