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

Форум

Вы не вошли.

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

#1 Re: Техническая поддержка » помогите с LTC » 01.07.2022 16:54:02

Добрый день/вечер/ночь!
Не знаю, обратит ли кто-то из поддержки на моё сообщение в столь древней ветке, но надеюсь, что сможет.
Дело в том, что на работе нашел старые модули LCard (LC-010E/012, LC-212F, LC-401, LC-402? LC-014).
Понимаю, что это раритет, но захотелось "поиграться" (жать просто выбросить). Если не затруднит - вышлите
все, что можно, на мыло (s_gashkov@mail.ru). Особенно все, что касается программирования сих монстров.
Желательно на Паскале (Delphi).
Буду очень признателен.

С уважением
С.Гашков

#2 Re: Техническая поддержка » Ошибка -10021 в программе на Delphi c модулем LTR114 » 04.04.2022 13:26:13

СПАСИБО! Проблема решена.
Действительно установка выравнивания на 4 байта сработала.
Для тех, кто получит подобную ошибку как у меня (у меня Delphi 7) поясняю пошагово как исправить ситуацию:
1. При загруженном проекте идем в меню Project/Options
2. Выбираем вкладку Compiler, и на ней устанавливаем (выбираем) Record field alignment значение 4.
3. ПОЛНОСТЬЮ перестраиваем проект: меню Project/Build <имя проекта>.

Еще раз спасибо!

#3 Re: Техническая поддержка » Ошибка -10021 в программе на Delphi c модулем LTR114 » 28.03.2022 11:08:01

Спасибо за оперативный ответ. Сейчас нет доступа к "железу". Буду проверять на следующей неделе.

#4 Re: Техническая поддержка » Ошибка -10021 в программе на Delphi c модулем LTR114 » 25.03.2022 13:14:16

Прошу прощения, в предыдущем сообщении допустил ошибку в коде заполнения таблицы каналов.
В действительности нумерация от "0":
LChTbl[LChQnt]:= LTR114_CreateLChannel(MeasMode, i-1, Range);

#5 Техническая поддержка » Ошибка -10021 в программе на Delphi c модулем LTR114 » 25.03.2022 12:28:49

serg61
Ответов: 4

Подскажите, пожалуйста, как определить источник ошибки -10021 в программе на Delphi c модулем LTR114.
Всю программу приводить не имеет смысла (очень большая + куча дополнительных опций). Опишу основные моменты:
1. В системе используются (помимо дискретных блоков LTR41 и LTR42) измерительные блоки LTR114 и LTR212 (2 шт.).
2. Измерительные модули "работают" в отдельных потоках (один для модулей LTR212 и один для модуля LTR114).
3. При начальной отладке (сначала по отдельности, а затем при совместной работе) показания штатным образом
считывались в программу и отображались в программе. Частота обработки данных в программе невысокая
(1 сек. для LTR212 и 3 сек. для LTR114), поэтому LTR212 опрашивались непрерывно (данные переписывались в буфер,
а оттуда по сигналу таймера выводились для дальнейшей обработки), а для LTR114 данные в потоке получались
с помощью функции LTR114_GetFrame, записывалиь в буфер, затем поток засыпал до срабатывания 3-х секундного таймера.
4 После доделки и некоторой "модернизации", программа работала на прием данных с LTR212 без нареканий, а вот
попытка снова получить данные LTR114 (не отображаемые на начальном этапе отработки) столкнулись с трудностью.
Отладка показала, что ошибка возникает при инициализации модуля (привожу часть программы опуская несущественные
подробности):

  Result:= LTR114_Init(pLTR114);    // Result= LTR_OK

  Result:= LTR114_Open(pLTR114, NetAddr, PortNum, @SerNum[1], ASlotNum);   // Result= LTR_OK

  Result:= LTR114_GetConfig(pLTR114);   // Result= LTR_OK
  with hLTR114 do begin
    Interval:= ...
    SyncMode:= ...
    FreqDivider:= ...
    SpecialFeatures:= ...
    AdcOsr:= 0;
    LChQnt:= 0;
    for i:=1 to 8 do begin
      LChTbl[LChQnt]:= LTR114_CreateLChannel(MeasMode, i, Range);
      Inc(LChQnt);
    end;
  end;


  Result:= LTR114_SetADC(pLTR114);    // А ВОТ ЗДЕСЬ - Result= -10021  !!!

  Result:= LTR114_Calibrate(pLTR114);

Для меня эта ситуация непонятна, связь с работой потока с LTR212 я отмел (весь посторонний код удалил).
Восстановил старую версию программы - она работает, однако при попытке выделить только код для LTR114 что-то
видимо "поломалось" (очень много вспомогательного кода удалял) и опять появилась та же ошибка.

Подскажите, пожалуйста, в каком направлении нужно копать? Как локализовать источник ошибки?

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск