CANOPEN драйвер

!klyaksa
Сообщения: 3
Зарегистрирован: 06 авг 2018, 11:17

Re: CANOPEN драйвер

Сообщение !klyaksa » 07 авг 2018, 09:55

Спасибо за Ваш ответ!
Пытаюсь в юникон загрузить свою осциллограмму.
Юникон посылает запрос 23 51 51 00 01 00 00 00, после этого я загружаю блок данных.
Но юникон их не воспринимает и посылает запрос 23 51 51 00 01 00 00 00 снова.
Не могли бы Вы еще пояснить, если это возможно, как юникон принимает блок данных?

Аватара пользователя
motorcontrol
Site Admin
Сообщения: 12
Зарегистрирован: 25 ноя 2015, 14:55

Re: CANOPEN драйвер

Сообщение motorcontrol » 07 авг 2018, 12:06

Добрый день! Функция цифрового осциллографа в Юниконе представляет собой дискретный автомат, описание которого отберет целый день.
Далее будут использоваться название модулей и файлов на основе проекта (MotorControlDemo)
Если кратко, то Юникон для функции цифрового осциллографирования взаимодействует с модулем dlog (в словаре это индексы от 5150h-5151h). Для взаимодействия с этими объектами Юникон использует SDO сервис, а для загрузки осциллограмм либо блочную передачу, либо SDO сервис (в зависимости от настроек и доступности блочной передачи на контроллере). Таким образом, для корректной работы функции цифрового осциллографа в Юниконе на контроллере необходимо обеспечить следующее:
  • работу драйвера CANOpen (как минимум SDO сервис + блочная передача, для ускоренной загрузки осциллограмм)
  • функционал модуля dlog (см. файл V_data_log.c)
  • функционал колбэк функции callback_dlog (см. файл CANOpenUDfuncs.c). Также необходимо чтобы данная колбэк функция была назначена объекту 5151h (dlog.next_value_var) - делается через программу CoodEdit
  • помимо описанного, для быстрой загрузки осциллограмм через блочную передачу, необходимо обеспечить функционал интерфейса блочной передачи (см. файл CANBlockTransferInterface.c)
Из Вашего текста не совсем понятно, как именно Вы пытаетесь загрузить осциллограмму, так как если делать это на основе проекта MotorControlDemo, то там все должно работать из коробки и от пользователя не требуется никаких дополнительных действий, кроме как в программе Юникон добавить нужную переменную в соответствующий канал осциллографа.

!klyaksa
Сообщения: 3
Зарегистрирован: 06 авг 2018, 11:17

Re: CANOPEN драйвер

Сообщение !klyaksa » 07 авг 2018, 12:32

Спасибо за ответ.
Немного ввела вас в заблуждение. Я пытаюсь разобраться в работе блочной передачи. Юникон посылает запрос (SDOtx): 23 51 51 00 01 00 00 00, на что я ему отвечаю (SDOrx): 60 51 51 00 00 00 00 00 и сразу же начинаю передавать данные:
ID:00000781 Rx data: FF 00 00 00 01 00 02 00
ID:00000781 Rx data: 03 00 04 00 05 00 06 00
ID:00000781 Rx data: 07 00 08 00 09 00 0A 00
ID:00000781 Rx data: 0B 00 0C 00 0D 00 0E 00
ID:00000781 Rx data: 0F 00 10 00 11 00 12 00
ID:00000781 Rx data: 13 00 14 00 15 00 16 00
и т.д.
На что от Юникона опять приходит запрос 23 51 51 00 01 00 00 00, то есть, как я понимаю, происходит какая-то ошибка при приеме данных.
Хотелось бы разобраться, что это за ошибка.

Аватара пользователя
motorcontrol
Site Admin
Сообщения: 12
Зарегистрирован: 25 ноя 2015, 14:55

Re: CANOPEN драйвер

Сообщение motorcontrol » 07 авг 2018, 13:33

Прием блока данных в Юниконе вернет ошибку в следующих случаях:
  • не сошлась контрольная сумма полученная в блоке данных с контрольной суммой рассчитанной по принятым данным;
  • истек таймаут на прием очередного сообщения блока данных (между соседними CAN посылками одного блока данных допускается временной промежуток не более 200мс);
  • конкретно для осциллографа - размер принятого блока не равен 256 (для цифрового осциллографа размер блока данных строго определен и всегда равен 256).
Также проверьте наличие терминальных резисторов 120 Ом на концах линии. При их отсутствии на линии может быть большое число помех, что препятствует передаче большого блока данных.

Rine
Сообщения: 29
Зарегистрирован: 28 апр 2017, 09:25

Re: CANOPEN драйвер

Сообщение Rine » 04 июн 2019, 18:22

Добрый день! Я использую контроллер Нииэт, в нем есть библиотека canopen, мне нужен режим v/f. Те с Юникона я настраиваю необходимую мне характеристику v/f, дальше отключаю Юникон и подключаю другое устройство, отправляю только задание скорости по sdo.
Но еще есть сообщения Heartbeat сервиса, они мне не нужны и я их не обрабатываю, что мне делать с ними?
И в штатной конфигурации отправляется ли что-нибудь по pdo и NMT?
Мне нужно менять только скорость, надо как-то конфигурировать штатные настройки can?

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

Re: CANOPEN драйвер

Сообщение Лашкевич Максим » 05 июн 2019, 12:24

Добрый день. Cообщения Heartbeat просто сообщают, какие устройства есть в сети. С ними делать ничего не нужно, можно их не обрабатывать. Но вообще по ним можно детектировать пропажу связи - наверное, Вашему верхнему уровеню, который шлет SDO, было бы полезно знать, есть ли вообще в сети тот, кому он шлет сообщения. Но в простейшем случае можно ничего не делать, и просто слать SDO со скоростью, да.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

Rine
Сообщения: 29
Зарегистрирован: 28 апр 2017, 09:25

Re: CANOPEN драйвер

Сообщение Rine » 05 июн 2019, 15:14

Мне нужно еще отправлять сигналы пуска и стопа.
пуск 2502.01 бит 0
стоп 2502.02 бит 1
сброс 2502.03 бит 2.
Я так понимаю такая форма, но стоп работает если только туда писать единицу в 0 бит(хотя в словаре стоит 1 бит) и сброс также 0(в словаре 2 бит)

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

Re: CANOPEN драйвер

Сообщение Лашкевич Максим » 06 июн 2019, 10:49

Номер бита, указанный в кодедите, это номер бита в переменной на Си внутри программы. В словаре объектов это битовые переменные, которые могут быть 0 и 1. Так что да, правильно, нужно просто слать единичку в соответствующий объект для тех или иных действий. Для этого и сделано несколько разных объектов, а не одно "слово управления" - чтобы не считать номера битиков, а просто слать 1.
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

Rine
Сообщения: 29
Зарегистрирован: 28 апр 2017, 09:25

Re: CANOPEN драйвер

Сообщение Rine » 06 июн 2019, 11:23

Те нужно писать в 0 бит состояние. Но возник вопрос как читать, допустим активировал пуск, но читаю всегда 0, хотя пишу единицу туда

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

Re: CANOPEN драйвер

Сообщение Лашкевич Максим » 07 июн 2019, 13:36

Это команды, а не состояние. Почитайте ПО. Для мониторинга текущего состояния есть другая переменная - drv_status_code [510Bh.02h].
С уважением,
Лашкевич Максим.
skype: maxlashk
Инженер-программист ООО "НПФ Вектор", Москва.

Ответить