Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


LTR-EU-2, LabVIEW, синхрометки

Вы не вошли.

 Поиск | Регистрация | Вход 

Юрий
22.11.2010 05:18:23
#1

Гость

LTR-EU-2, LabVIEW, синхрометки

Есть LTR-EU-2 с 2LTR212. На базе имеющегося примера удалось сделать то, что было необходимо, кроме синхронизации. Как запустить метки Старт, разобраться не удалось. Хотелось бы увидеть в качестве дополнения к соответствующему примеру простой счётчик этих меток (аналогичный программе на Delphi, например).
Вопрос срочный, поэтому убедительная просьба, обратить на него внимание. Заранее спасибо.

22.11.2010 11:45:19
#2

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: LTR-EU-2, LabVIEW, синхрометки

Юрий, смотрели ли Вы примеры к ltrapi?
Пути относительно архива ltr_sources.zip:

LTR_SOURCES//ltrapi//examples//Microsoft Visual C++//LTR-EU-Sync//
LTR_SOURCES//ltrapi//examples//Borland C++ Builder//SynchTest//
LTR_SOURCES//ltrapi//examples//Delphi7//SynchTest//

а также описание ltrapi.pdf

Визуально Вы можете наблюдать генерацию меток в окне статистики ltrserver по данному крейту.

А чтобы реализовать счетчик меток в приложении, необходимо задействовать какой-либо модуль сбора данных, потому что синхрометки считываются не сами по себе, а в потоке отсчетов как служебная информация. Реализация будет зависеть от того, какой именно модуль используется - LTR11, LTR22, LTR212, LTR41 и т.д.

Например, можно запомнить значение поля tmark структуры TLTR после открытия модуля:

if (LTR_OK != LTRxxx_Open(&ltr, ...)) ...
wStartCounterInitial = ltr.tmark >> 16;
wSecondCounterInitial = ltr.tmark & 0xFFFF;

Впоследствии при чтении данных функцией LTRxxx_Recv() поле tmark будет обновляться - оно содержит ПОСЛЕДНИЙ СЧИТАННЫЙ ИЗ МОДУЛЯ номер метки. То есть:

... LTRxxx_Recv(...) ...
wStartCounterLast = ltr.tmark >> 16;
wSecondCounterLast = ltr.tmark & 0xFFFF;

Количество приянтых меток будет равно разности (wLast - wInitial) & 0xFFFF (с точностью до возможного перехода через 0).

Еще раз обращаю Ваше внимание: счетчики обновляются только при чтении каких-либо данных из модуля. Сама по себе переменная типа TLTR обновляться не будет, поскольку все вызовы ltrapi являются синхронными.

А чтобы в полной мере использовать метки, надо передать функции LTR212_Recv() параметр tmark != NULL, указывающий на массив того же размера, что и data, и в полученном массиве каждому отсчету будет соответствовать счетчик меток на момент сбора этого отсчета (старшие 16 бит - старт, младшие 16 бит - секунда). Обычно их не считают, а используют для привязки друг к другу данных, собранных с разных модулей, но можно и сосчитать моменты изменения младших или старших слов элементов массива tmark.

22.11.2010 12:02:48
#3

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: LTR-EU-2, LabVIEW, синхрометки

Пардон, не заметил, что в заголовке упомянуто labview. В готовой labview//'шной надстройке может быть не все импортировано, сейчас коллеги уточнят.

Мой ответ относится к библиотекам под C, C++, Delphi, dotnet (из последнего должно быть сравнительно несложно импортировать функции в labview).

22.11.2010 13:36:35
#4

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,304

Re: LTR-EU-2, LabVIEW, синхрометки

К сожалению, с той библиотекой ltrModulesNet, через которую сейчас работает LabView это сделать напрямую нельзя. Нужны небольшие изменения.
Весь вопрос в том, что подразумевается под словом "срочный" - одно дело, если Вам проект завтра сдавать, другое - Вам нужен пример, например, до конца этой недели. Второй вариант, конечно, более предпочтительный в плане полученного примера.

Юрий
22.11.2010 17:47:11
#5

Гость

Re: LTR-EU-2, LabVIEW, синхрометки

Хотелось бы как можно раньше. Проект на этой неделе нужно уже сдать (мы даже в выходные работали).

Юрий
22.11.2010 17:52:27
#6

Гость

Re: LTR-EU-2, LabVIEW, синхрометки

Мы ещё 8 сентября спрашивали письмом у Владислава про синхрометки в LabVIEW, но ответа не получили.

22.11.2010 17:54:51
#7

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,304

Re: LTR-EU-2, LabVIEW, синхрометки

хорошо, но не уверен, что раньше среды получится. Хотелось бы знать Вашу почту, чтобы сразу выслать пример, как будет готов (можно написать на мою почту)

Юрий
22.11.2010 18:02:22
#8

Гость

Re: LTR-EU-2, LabVIEW, синхрометки

Контактное мыло отправили.

Юрий
23.11.2010 05:56:22
#9

Гость

Re: LTR-EU-2, LabVIEW, синхрометки

Для оперативной проверки работы синхрометок от DIGIN достаточно сухого контакта или нужно подтягивать его на +5В ?

23.11.2010 10:50:27
#10

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: LTR-EU-2, LabVIEW, синхрометки

Для подключения контакта относительно цепи GND нужно включить резистор-подтяжку (1-10 кОм) на линию DIGIN относительно цепи +3.3V (находится на том же разъёме SYNC). Но можно включить резистор-подтяжку и относительно внешнего источника +3.3...+5 В. А можно просто на внутренний запуск или режим секундной метки настроить для проверки генерации меток.

23.11.2010 11:02:13
#11

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: LTR-EU-2, LabVIEW, синхрометки

При подключении просто контакта, естественно, эффект дребезга никто не отменял. Но для проверки сойдёт...

23.11.2010 11:24:34
#12

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: LTR-EU-2, LabVIEW, синхрометки

Юрий, пока коллеги помогают Вам дополнить интерфейс dotnet-labview, Вы можете опробовать работу с синхрометками на простом примере на языке C (например, к примеру LTR-EU-Sync добавить запуск АЦП, сбор данных и анализ принятых синхрометок).
Прочувствовав логику процесса, Вы потом сможете легко перенести его в labview.
(На самом деле, как я понял Алексея, все неудобство связано с тем, что в labview трудно работать со структурами...)

Юрий
23.11.2010 13:14:51
#13

Гость

Re: LTR-EU-2, LabVIEW, синхрометки

Внутренний запуск мы на делфийском примере уже проверяли (его по нашей как раз просьбе делал Арсений), так что логика там понятна. В конечном итоге будет использоваться внешний синхросигнал, так что потребуется его простая имитация.

23.11.2010 13:51:37
#14

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: LTR-EU-2, LabVIEW, синхрометки

Как подсоединить, Вам уже написали. Можно кнопку с резистором (не забывая про возможный дребезг), лучше - какой-то логический выход.

LTR_Config() и соответствующая стуктура для использования DIGIN вообще не требуются - источник меток указывается прямо в параметре mode функций LTR_StartSecondMark(), LTR_MakeStartMark()

24.11.2010 12:50:45
#15

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,304

Re: LTR-EU-2, LabVIEW, синхрометки

Отправил письмо с примером.

Юрий
24.11.2010 15:57:28
#16

Гость

Re: LTR-EU-2, LabVIEW, синхрометки

Письмо получил, спасибо!

Юрий
24.11.2010 16:11:45
#17

Гость

Re: LTR-EU-2, LabVIEW, синхрометки

Ещё один практический вопрос возник: не существует ли программного эмулятора крейта для проверки работы программы?

24.11.2010 23:58:55
#18

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,304

Re: LTR-EU-2, LabVIEW, синхрометки

Насколько я занаю - нет. Эмулятор - вещь, конечно, хорошая, но по сложности задача создания полноценного эмулятора, думаю, даже превышала бы сложность создания самого крейта

Юрий
29.11.2010 06:44:26
#19

Гость

Re: LTR-EU-2, LabVIEW, синхрометки

Я правильно понимаю, что для работы счётчика в ltr212_last_mark.vi нужно совместить его с ltr_eu_sync?

29.11.2010 12:25:15
#20

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,304

Re: LTR-EU-2, LabVIEW, синхрометки

Ну в конечной программе скорее всего - да. Для проверки их можно и просто запустить параллельно. ltr_eu_sync по запуску запускаяет секундные метки и настраивает метку старта, а по нажатию стоп останавливает генерацию секундных меток. ltr212_last_mark принимает данные, вместе с данными обновляется и счетчик меток и он выводится.

29.11.2010 13:44:56
#21

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: LTR-EU-2, LabVIEW, синхрометки

Иными словами, ГЕНЕРАТОР меток управляется независимо (кстати, кроме контроллера EU это может быть, например, модуль LTR41-43 со своими собственными командами).
Синхрометки СТАРТ и СЕКУНДА глобальны для крейта, (крейт-контроллер вставляет их в общий поток данных), и при чтении собранных данных из любого модуля можно эти метки увидеть.

Юрий
29.11.2010 16:19:08
#22

Гость

Re: LTR-EU-2, LabVIEW, синхрометки

Спасибо за уточнение. Ещё один вопрос по стартовым меткам от Digin1: мы соединили 2 входа на 2 х крейтах (единая синхронизация) и подключили нормально разомкнутую кнопку для быстрой проверки, при этом счётчик стартовых меток нечто считает даже без нажатия кнопки. Это наводки или что-то некорректно?

29.11.2010 16:39:32
#23

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: LTR-EU-2, LabVIEW, синхрометки

Юрий, представьте себе: к быстродействующему цифровому входу подключили многометровую антенну. Эта система просто обязана ловить все быстрые помехи окружающей обстановки. Используйте экранированный провод (экран должен быть соединён с цепью GND) и резисторную подтяжку - тогда эффект антенны исчезнет.

29.11.2010 16:46:38
#24

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: LTR-EU-2, LabVIEW, синхрометки

Надеюсь, что оба крейта Вы заземлили в одну точку.

Юрий
29.11.2010 17:02:13
#25

Гость

Re: LTR-EU-2, LabVIEW, синхрометки

В одну точку. Проводки до кнопки не слишком длинные (~30см). А если вообще ничего к разъёму не подключать, то такого эффекта не должно быть?