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


метки времени в крейте LTR-EU-2-5

Вы не вошли.

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

Андрей Пат
01.12.2015 16:06:55
#1

Гость

метки времени в крейте LTR-EU-2-5

Здравствуйте. Пишу прогр. для сбора данных с двух модулей LTR114 LTR212 , установленных в крейт LTR-EU-2-5. В основе программы Ваши тестовые примеры на Дельфи. Запустил на программирование и запись данных LTR114. Все работает корректно и без сбоев. Необходимо организовать синхронизацию от сторонних систем сбора. Начал с получения секундных меток. В прогр. сбора изменил адрес получаемого массива с ddata на tdata

res := LTR114_ProcessDataTherm(pltr114, @data(0), @ddata(0), @tdata(0), @size, @tcnt, ltr_correction_mode, LTR114_PROCF_VALUE)     

            adcSizeOut:=size;
            for i:=0 to adcSizeOut-1 do         //перекачка в буфер вывода
              begin
                adcDataOut(i):=tdata(i);        //tdata(i)- массив меток времени
              end;

Запускаю генерацию самих меток времени от крейта по нажатию кнопки

LTR_Init(@hltr);
hltr.cc := CC_CONTROL;    //используем управляющий канал
res := LTR_Open(@hltr);

    j:=5;
   i:=LTR_StartSecondMark(@hltr, j) ;// j=5  метка формируется крейтом

res := LTR_Close(@hltr);

При непрерывном выводе массива adcDataOut(i) на экран выводятся нули, нигде в буфере нет информации
Подскажите где ошибка? Крейт №3Т211881 2015г.

01.12.2015 16:55:36
#2

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

Re: метки времени в крейте LTR-EU-2-5

Здравствуйте.
Для начала, Вы можете проверить, запустились ли метки или нет, посмотрев в программе LTR Manager (или LTR Server - если используете его) - там есть счетчик принятых меток. После StartSecondMark() он должен увеличиваться раз в секунду если все нормально.

По поводу же приема меток, по крайней мере в примере на сайте насколько я вижу tdata это данные от термометра (который опционально может подключатся к соответствующему входу LTR114) и используются только если термометр разрешен. Метки же времени принимаются вместе с "сырыми" отсчетами в LTR114_Recv() - в массив time и не используются при ProcessData(). Правда в примере этот массив локальный в функции, а вам соответственно надо будет сделать его в классе. Для привязки меток времени к уже обработанным данным нужно учитывать, что для LTR114 каждому слову АЦП соответствует 2 "сырых слова" от модуля, соответственно в простейшем случае, если не разрешен термометр, то вам нужно отбросить каждое второе слово из массива time. Если разрешен еще и термометр, то ему соответствует дополнительное одно "сырое" слово в конце каждого кадра, т.е. если у Вас например 3 канала и термометр, то первому отсчету соответствует time(0), второму time(2), третьему time(4), отсчету термометра time(6), а первому отсчету из второго кадра - time(7), далее time(9) и т.д.

Также обратите внимание, что каждый отсчет time несет информацию как о количестве секундных меток, так и меток "СТАРТ" (один счетчик в старшей половине, другой в младшей, как описано в ltrapi.pdf)

Андрей Пат
02.12.2015 10:06:39
#3

Гость

Re: метки времени в крейте LTR-EU-2-5

Здравствуйте. Спасибо за помощь. Простите за мою невнимательность (в вопрос ошибочно скопировал фрагмент с LTR114_ProcessDataTherm), я конечно же принимаю данные не с термометра и использую функцию LTR114_ProcessData, а не LTR114_ProcessDataTherm   
То есть в функции LTR114_ProcessData() нет указателя на массив меток? Это мой глюк

Я использую LTR server  и в информационном окне нет увеличения счетчиков меток старт и секунды. То есть где то глюк в моей проге, которая дает команды на инициацию меток старт и секунда. Запускал Вашу EUPRO_SYNCH.dpr, но она у меня  не идет.

Верна ли последовательность вызова функций для запуска меток?--

     LTR_Init(@hltr);
     hltr.cc := CC_CONTROL;    //используем управляющий канал
     res := LTR_Open(@hltr);
     i:=LTR_StartSecondMark(@hltr, 5) ;// 5- метка формируется крейтом
     res := LTR_Close(@hltr);

02.12.2015 11:49:29
#4

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

Re: метки времени в крейте LTR-EU-2-5

Вроде похоже на правду.
А можете пройти по шагам и посмотреть результаты выполнения функций LTR_Open и LTR_StartSecondMark - точно ли они возвращают LTR_OK(0) и точно ли выполняются?

Андрей Пат
02.12.2015 15:57:25
#5

Гость

Re: метки времени в крейте LTR-EU-2-5

Добрый вечер.
Включил обращение к LTR_StartSecondMark() в кусок программы инициации крейта поиска модулей и пр. и добавил перебор значения i. Прога пробегает все i   и ни разу не выходит на beep, то есть LTR_OK возвращается =0 при любом i
  for i:=0 to 32767 do
    begin
     res:=LTR_StartSecondMark(@hltr, i) ;
      if (res <> LTR_OK) then
        beep;
    end;
   LTR_Close(@hltr);

Проверил правильность входа функции в библиотеку ltrapi.dll, все норм.
У меня есть два варианта ltrapi.dll с размерами 130560 байт и 61952 байта. проверил с обоими, результат неизменен.

02.12.2015 20:34:54
#6

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

Re: метки времени в крейте LTR-EU-2-5

Использовать ltrdll лучше из установщика последней версии с сайта: http://www.lcard.ru/download/ltrdll.exe.

Я выложил пример управления секундными метками и метками старт сюда на Delhpi: https://bitbucket.org/lcard/ltr_cross_s … delphi.zip. На всякий случай там и собранная версия. Тогда проверьте, работает ли у Вас он. Для сборки он использует файлы .pas из pascal2 в указанном установщике.

Андрей Пат
03.12.2015 09:20:40
#7

Гость

Re: метки времени в крейте LTR-EU-2-5

Спасибо, буду проверять.

Андрей Пат
03.12.2015 11:41:13
#8

Гость

Re: метки времени в крейте LTR-EU-2-5

Добрый день. Переустановил библиотеку http://www.lcard.ru/download/ltrdll.exe, прописал пути к файлам *.pas. Запустил Вашу тестовую прогу https://bitbucket.org/lcard/ltr_cross_s … delphi.zip  - В проге пришлось поставить LTR_FillSerial  за LTR_Open, так как выдавала ошибку (-9)
//  LTR_FillSerial(hsrv, LTR_CSN_SERVER_CONTROL);
  err:=LTR_Open(hsrv);
  LTR_FillSerial(hsrv, LTR_CSN_SERVER_CONTROL);
Результат не изменился, метки ltrserver  не фиксирует, хоть и видно, что запрос в него идет при нажатии кнопок.
Я в трансе. Даже не знаю что еще можно попробовать?!

03.12.2015 12:17:56
#9

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

Re: метки времени в крейте LTR-EU-2-5

Судя по

Андрей Пат пишет:

В проге пришлось поставить LTR_FillSerial  за LTR_Open, так как выдавала ошибку (-9)
//  LTR_FillSerial(hsrv, LTR_CSN_SERVER_CONTROL);

у Вас видимо какая-то очень старая версия программы LTR Server. Попробуйте поставить либо последнюю версию (http://lcard.ru/download/ltrserver_setup.exe), либо (что может даже более предпочтительно) попробуйте перейти на использование ltrd (http://lcard.ru/download/ltrd-setup.exe) с LTR Manager (http://lcard.ru/download/ltrmanager_setup.exe). Что это и в чем различия между ними можно посмотреть тут http://lcard.ru/download/ltr_soft_getting_started.pdf.

Андрей Пат
03.12.2015 14:37:27
#10

Гость

Re: метки времени в крейте LTR-EU-2-5

Огромное спасибо. Переустановил  LTR Server последнюю версию (http://lcard.ru/download/ltrserver_setup.exe), ваша программа заработала. Уффф... Оборудование покупалось у Вас осенью и поскольку на прилагаемых дисках были и старые версии, то поставил ее. Очень сложно сразу разобраться в обилии прилагаемого ПО.

03.12.2015 14:52:48
#11

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

Re: метки времени в крейте LTR-EU-2-5

Отлично. Да, лучше по возможности использовать версии с сайта, так как на сайте выложены всегда последние версии. Для доступа к ПО только для интересующего модуля можно зайти на страницу модуля (например http://www.lcard.ru/products/ltr/ltr114) и далее выбрать справа вверху "программное обеспечение". Кроме того часть вопросов о ПО я попробовал описать в приведенном в предыдущем сообщении документе.

Андрей Пат
03.12.2015 17:28:06
#12

Гость

Re: метки времени в крейте LTR-EU-2-5

Еще раз спасибо за помощь. Всего наилучшего smile

03.12.2015 18:23:26
#13

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

Re: метки времени в крейте LTR-EU-2-5

Спасибо! Вам тоже удачи;)