Меню
![Главная](https://www.lcard.ru/sites/default/files/Logo.jpg)
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
|
||||
|
работа с входом синхронизации LTR-EU-2Здравствуйте! Есть LTR-EU-2-5 с LTR24-1 на борту. Возможно ли подать на вход SYNC LTR-EU-2-5 синхроимпульсы и программно опрашивать DGIN 1 на наличие высокого уровня? Работаю в Labview. Не смог разобраться по руководству как это реализовать. |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Режим программного опроса состояния входов DIGIN1, DIGIN2 разъёма SYNC возможен на уровне процессора Blackfin (при его самостоятельном программировании). Реализован ли такой опрос в библиотеках верхнего уровня подскажут коллеги. Но, в любом случае, использовать асинхронный программный опрос для целей синхронизации неправильно, поскольку точность по времени синхронизации будет зависима от нестабильного времени реакции операционной системы. Правильней было бы использовать режим вставки меток синхронизации по фронту/спаду на DIGIN1 и DIGIN2 и с программным приёмом меток синхронизации вместе с отсчётами данных. |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Здравствуйте. |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Алексей L Card пишет:
Мне нужна метка "старт" для запуска сбора данных. У меня есть прямоугольный импульс, длительность которого определяет время вывода звукового импульса на звуковую плату. После этого необходимо начать сбор данных. Мне нужно определить фронт этого (прямоугольного) импульса и с этого момента начать сбор данных. Подскажите как это реализовать штатными функциями Labview. |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Это можно сделать, однако потребуется ряд действий в Вашей программе. Необходимо заранее настроить метку и запустить сбор данных, а дальше уже вручную отфильтровать данные до обнаружения нужной метки. Общий алгоритм может выглядеть так: Вначале, пока фронт не обнаружен, после каждого приема нужно пройтись по массиву в поисках изменения счетчика меток (следует учитывать, что после старта счетчики не нулевые, они считаются относительно начала подключения самого крейта, т.к. могут использоваться для привязки отсчетов разных модулей). Пока изменение не найдено данные от LTR24 нужно просто откидывать. Когда изменение найдено, то для той итерации цикла приема, где есть изменение нужно сделать следующее: При всех последующих приемах можно принимать и обрабатывать все данные, аналогично тому как в примере. |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Спасибо! Буду пробовать. Возникнут вопросы напишу. |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Алексей L Card пишет:
Этого не понимаю. Что такое MakeStartMark ? С каким нужным параметром? Я так понял, после функции Open сразу ставить LTR24_Recv с входом tmark??? И как потом удалить этот объект? |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Алексей L Card пишет:
Можно ссылку на руководство, у меня ltr24api, там такого найти не могу. |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2ltrapi.pdf находится в архиве http://www.lcard.ru/download/ltr_sw.zip и описывает общие функции для работы с крейтом и сервером. |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Если брать штатный для LTR24 пример http://www.lcard.ru/download/examples/l … abview.zip, то в нем показана работа с LTR24 и там создается объект типа ltr24api потом Open, работа, в конце Close и его удаление. Работа с LTR24 вся остается без изменения за исключением того, что нужно использовать другой вариант Recv и фильтровать входные данные, как я описывал. Настройка условия генерации меток это настройка самого крейта, для работы нужен уже другой объект, который надо аналогичным образом создать только типа ltrapiApiLabview) для него также сделать Open() (для установки соединения с крейтом, а не модулем), настройку меток, Close(), удаление объекта (аналогично тому как для LTR24, но это уже другая цепочка блоков). Ну и по хорошему только после этого уже делать все для LTR24. |
|||
|
||||
| ||||
|
||||
| ||||
|
||||
| ||||
|
||||
| ||||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Если крейт один, то на CrateSerial можете подать массив из 16 байт с нулевыми элементами. По поводу LTR24_Recv, то лучше использовать метод просто Recv без префикса LTR24_ (методы без префикса LTR24_ аналогичны методам с префиксом, за исключением того, что им не нужен первый параметр hnd, так как сам описатель уже содержится внутри объекта ltr24api). |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Алексей L Card пишет:
У меня в одной программе будут работать два крейта, но метки в данные буду вставлять только на одном из крейтов. При таком варианте какой массив надо подавать на CrateSerial? |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Алексей L Card пишет:
Это равно массиву размером 128 элементов с нулевыми элементами? |
|||
|
||||
| ||||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Вообще CrateSerial это должен быть серийный номер крейта, с которым Вы хотите установить соединение. Тип это элемента насколько я вижу имеет byte[], поэтому я не очень понял как туда подключился U16... Вообще по логике там должна быть строка с серийным номером крейта (аналогично параметру csn в ltr24api.Open). Вариант, принимающий byte[] конечно использовать можно, преобразовав строку вручную, но не слишком выглядит удобно, поэтому если что я добавил вариант Open в котором CrateSerial является строкой, можете воспользоваться им (включил в установщик отсюда https://bitbucket.org/lcard/ltr_cross_s … .30.11.exe - при установке LabView должен быть полностью закрыт) |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Как понять, что метки в данных формируются? С выхода tmark массив я подаю на GRAPH, но там сплошная нулевая линия без скачков. |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Что метки приходят можно посмотреть в программе LtrServer/LtrManager - в них при выделении в параметрах написано кол-во пришедших меток Страрт и Секунда с момента подключения крейта |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Алексей L Card пишет:
Чего-то не понятно. Если индекс больше либо равен нулю - отбрасываем данные, если меньше нуля отбрасываем данные. Так мы все данные отбрасываем. Или я недопонимаю? |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Andy_kam пишет:
Если больше нуля, то отбросить еще кол-во отсчетов, равное этому индексу - то есть возвращаемое неотрицательное значение - это номер элемента в массиве, с которого начинается кадр ("начало кадра найдено на позиции N от начала переданного блока"). А меньше нуля - это "начало кадра не найдено", тогда отбрасывается весь блок. |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2В первом случае Вы откидываете только кол-во слов, равное индексу, во втором все. |
|||
|
||||
|
Re: работа с входом синхронизации LTR-EU-2Алексей L Card пишет:
Индекс, который нужно контролировать находится на выходе "FindFrameStart"? Посмотрите вот скрин как я реализовал поиск индекса изменения счётчика меток через пиковый детектор. Затем отбрасываю часть массива из buffer до индекса метки. Подаю на FindFrameStart. С выхода FindFrameStart индекс всегда ноль показывает. Схема в целом работает но выдаёт сообщение " Невыровненные данные". Посмотрите пожалуйста, что не так. |
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2
Многоканальный телефон:
+7 (495) 785-95-25
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск