реклама на сайте
подробности

 
 
> Обмен данными PC - dSpace
maksim_s
сообщение Feb 28 2014, 17:03
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 28-02-14
Пользователь №: 80 764



Здравствуйте. Столкнулся с проблемой обмена данными между PC и dSpace.

К компьютеру подключен датчик по USB3.0, там же запущена C++ программа, которая обрабатывает данные от датчика и пишет результат (2 числа типа double) в dSpace посредством CLib. Проблема в том, что писать нужно очень быстро (любые задержки очень негативно влияют на алгоритм управления) и желательно одновременно. Всё, что предоставляет CLib -- это API в духе ds_write_XX. Измерения показали, что передача одного числа занимает ~0.5ms.

Собственно, вопрос: можно ли посредством CLib копировать с PC на dSpace объёмы памяти больше 8 байт за один вызов?
Можно попытаться уменьшить точность, то есть упаковать 2 числа типа float (этой точности достаточно) в 8 байт памяти, но не понятно как в самой программе на Simulink распаковывать массив float'ов.
Ну и третий вариант -- вместо CLib использовать что-нибудь другое. Альтернатив я не нашёл.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
syoma
сообщение Mar 5 2014, 09:46
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Надо вместо USB использовать что-то другое. У вас получается вроде как Real-time - если задержки критичны. А напрямую к dSpace датчик не подключается?
Go to the top of the page
 
+Quote Post
RHnd
сообщение Mar 6 2014, 07:30
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Действительно, самым разумным выглядит подключение датчика к dSpace. Сейчас у вас между датчиком и dSpace стоит комп с операционной системой не реального времени, правильно?. Вы как бы не шаманили с библиотеками и упаковкой переменных, но в такой съеме рассчитывать на быструю передачу данных и отсутствие задержек не стоит.

Кстати, Матлаб вроде позволяет на лету преобразовывать типы данных и считать, что приходит массив из двух элементов float. Но деталей так с ходу не скажу.
Go to the top of the page
 
+Quote Post
syoma
сообщение Mar 6 2014, 20:30
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Ну в принципе даже с виндой можно добиться какого-то реалтайма - например тот же Матлаб имеет Real-time windows target - у меня вроде на миллисекундах работает. Но неправильное это - USB. Задержки драйверов там огромные. Надо хотябы PCI - тогда будет намного лучше.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Mar 6 2014, 20:36
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Ну те же Mathworks мне неоднократно заявляли, что они не гарантируют ничего для weal-time windows target и не рекомендуют использовать его для частот выше 100Hz. Хотите больше - смотрите на xPC target, там риалтайм в ОС заложен. Хотя у меня тоже Win real-time workshop на килогерце стабильно работал.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 01:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.0173 секунд с 7
ELECTRONIX ©2004-2016