Форум: Техническая поддержка

Тема: LTR22 - пропуски в калибровочной таблице

Вы не вошли.

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

05.12.2018 16:51:32
#1

Участник
Здесь с 06.06.2014
Сообщений: 37

LTR22 - пропуски в калибровочной таблице

Добрый день! Обнаружил, что в некоторых модулях LTR22 некоторые калибровочные коэффициенты читаются как NAN (содержат 0xFFFFFFFF; см. вложение). Верифицируются ли в Л-Кард калибровочные таблицы после прошивки? Как восстановить?

05.12.2018 18:02:02
#2

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

Re: LTR22 - пропуски в калибровочной таблице

Добрый день. Не совсем понятно, как именно сформированы эти файлы. Они получаются с помощью какой-то Вашей программы?

05.12.2018 19:18:45
#3

Участник
Здесь с 06.06.2014
Сообщений: 37

Re: LTR22 - пропуски в калибровочной таблице

Алексей L Card пишет:

Добрый день. Не совсем понятно, как именно сформированы эти файлы. Они получаются с помощью какой-то Вашей программы?

#include "ltr\include\ltr22api.h"
#include "ltr\include\ltr34api.h"
#include "ltr\include\ltr43api.h"
#pragma comment (lib, "ltr22api.lib")
#pragma comment (lib, "ltr43api.lib")
#pragma comment (lib, "ltr34api.lib")
#include <math.h>
static void _print_float(float x)
{
	if (isfinite(x))
		printf(" %14.6e", x);
	else if (isnan(x))
		printf(" nan/0x%08X", *(UINT32 *)&x);
	else
		printf(" inf/0x%08X", *(UINT32 *)&x);
}
static void _ltr22_info(int slot)
{
	static const int range_mV [LTR22_RANGE_NUMBER] = {1000, 300, 100, 30, 10000, 3000};
	int err = 0;
	TLTR22 module;

	LTR22_Init(&module);
	if (err = LTR22_Open(&module, SADDR_DEFAULT, SPORT_DEFAULT, "", slot))
	{
		printf("Can't open LTR22 @ slot %d: %s\n", slot, LTR22_GetErrorString(err));
		return;
	}
	printf("LTR22 @ slot %d:\n", slot);
	printf("\tName: %s\n", module.ModuleInfo.Description.DeviceName);
	printf("\tSerial = %s\n", module.ModuleInfo.Description.SerialNumber);
	printf("\tRevision = %d\n", module.ModuleInfo.Description.Revision);
	printf("\tComment = %s\n", module.ModuleInfo.Description.Comment);
	printf("\tCalibration (offset scale):\n");
	for(int r=0; r < LTR22_RANGE_NUMBER; ++r)
	{
		for(int fr=0; fr < LTR22_MAX_DISC_FREQ_NUMBER; ++fr)
		{
			printf("\t\t%5dmV %5dHz", range_mV[r], LTR22_DISK_FREQ_ARRAY[fr]);
			for(int ch=0; ch < LTR22_ADC_NUMBERS; ++ch)
			{
				ADC_CHANNEL_CALIBRATION &c = module.ADCCalibration[ch][fr];
				//printf(" %14.6e %14.6e", c.FactoryCalibOffset[r], c.FactoryCalibScale[r]);
				_print_float(c.FactoryCalibOffset[r]);
				_print_float(c.FactoryCalibScale[r]);
			}
			printf("\n");
		}
	}
	LTR22_Close(&module);
}
static void _ltr34_info(int slot)
{
	int err = 0;
	TLTR34 module;

	LTR34_Init(&module);
	if (err = LTR34_Open(&module, SADDR_DEFAULT, SPORT_DEFAULT, "", slot))
	{
		printf("Can't open LTR34 @ slot %d: %s\n", slot, LTR34_GetErrorString(err));
		return;
	}
	printf("LTR34 @ slot %d:\n", slot);
	printf("\tName: %s\n", module.ModuleInfo.Name);
	printf("\tSerial = %s\n", module.ModuleInfo.Serial);
	printf("\tFPGA_Version = %s\n", module.ModuleInfo.FPGA_Version);
	printf("\tCalibrVersion = %s\n", module.ModuleInfo.CalibrVersion);
	LTR34_Close(&module);
}
static void _ltr43_info(int slot)
{
	int err = 0;
	TLTR43 module;

	LTR43_Init(&module);
	if (err = LTR43_Open(&module, SADDR_DEFAULT, SPORT_DEFAULT, "", slot))
	{
		printf("Can't open LTR43 @ slot %d: %s\n", slot, LTR43_GetErrorString(err));
		return;
	}
	printf("LTR43 @ slot %d:\n", slot);
	printf("\tName: %s\n", module.ModuleInfo.Name);
	printf("\tFirmwareVersion: %s\n", module.ModuleInfo.FirmwareVersion);
	printf("\tFirmwareDate: %s\n", module.ModuleInfo.FirmwareDate);
	printf("\tSerial: %s\n\n", module.ModuleInfo.Serial);
	LTR43_Close(&module);
}
int main(int argc, char* argv[])
{
	_ltr22_info(CC_MODULE6);
	_ltr22_info(CC_MODULE7);
	_ltr34_info(CC_MODULE8);
	return 0;
}
07.12.2018 12:17:11
#4

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

Re: LTR22 - пропуски в калибровочной таблице

Я правильно понимаю, что у Вас только часть модулей с такой проблемой? На скольки модулях из какого количества обнаружена проблема? Если их больше двух, то можете и по остальным выложить файлы. Модули с этой проблемой покупались одновременно и когда?

07.12.2018 12:47:20
#5

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

Re: LTR22 - пропуски в калибровочной таблице

...И поверялись ли эти модули когда-нибудь? - по нашим данным не поверялись.

07.12.2018 14:12:43
#6

Участник
Здесь с 06.06.2014
Сообщений: 37

Re: LTR22 - пропуски в калибровочной таблице

Алексей L Card пишет:

Я правильно понимаю, что у Вас только часть модулей с такой проблемой? На скольки модулях из какого количества обнаружена проблема? Если их больше двух, то можете и по остальным выложить файлы. Модули с этой проблемой покупались одновременно и когда?

Еще один модуль с битыми калибровками: 3D985068.

Итого на данный момент модули с пропусками в калибровочных таблицах: 3D985068 3D985077 3D985078
Без пропусков: 3D776532 3D872007 3D872016 3D985069 3D985098 3D985114
Пока неизвестно: 3D549495 3D872002 3D872006 3D872014 3D872051 3D872061 3D872103 3D985082 3D985103 3R751975 (+ 4шт, номеров под рукой нет)

Проблемные модули вероятнее всего покупались в ноябре 2015 или в октябре 2017 через киевский Холит.

Гарманов Александр пишет:

...И поверялись ли эти модули когда-нибудь? - по нашим данным не поверялись.

Это мне вопрос???

07.12.2018 14:25:38
#7

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

Re: LTR22 - пропуски в калибровочной таблице

Игорь пишет:
Гарманов Александр пишет:

...И поверялись ли эти модули когда-нибудь? - по нашим данным не поверялись.

Это мне вопрос???

Да, теоретически могли поверить в каком-нибудь ЦСМ. А этот вопрос как раз относится к калибровочным коэффициентам. Хотя, я вспомнил, что Вы - в Украине, поэтому я зря задал этот вопрос...

07.12.2018 14:52:43
#8

Участник
Здесь с 06.06.2014
Сообщений: 37

Re: LTR22 - пропуски в калибровочной таблице

Гарманов Александр пишет:

Да, теоретически могли поверить в каком-нибудь ЦСМ. А этот вопрос как раз относится к калибровочным коэффициентам. Хотя, я вспомнил, что Вы - в Украине, поэтому я зря задал этот вопрос...

Мы поверяем систему управления в целом, ибо перед LTR22 там стоят тензоусилители либо источники тока для ICP датчиков. Поскольку реально используется только 4 частоты дискретизации, отсутствие некоторых коэффициентов могло пройти незамеченным.

11.12.2018 20:03:55
#9

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

Re: LTR22 - пропуски в калибровочной таблице

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

Другой вопрос, что пока остается не понятным, как такая проблема возникла...

12.12.2018 12:19:46
#10

Участник
Здесь с 06.06.2014
Сообщений: 37

Re: LTR22 - пропуски в калибровочной таблице

Алексей L Card пишет:

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

Т.е. заполнить пропуски коэффициентами для другой частоты? Можно и так, в крайнем случае. Если оригинальные калибровки сохранились в Л-Кард, то было бы лучше, чтобы утилита сверяла коэффициенты в модуле с заводскими и при необходимости перешивала. Вдруг там еще и малозаметные битовые ошибки бывают? В идеале для каждого модуля – файлик с коэффициентами и номером модуля в названии. Утилита автоматически проверяет и при необходимости патчит все LTR22 в крейте. Информацию о том, какие модули нормальные, а какие пришлось исправлять, выдает в stdout.

Алексей L Card пишет:

Другой вопрос, что пока остается не понятным, как такая проблема возникла...

Вы посмотрели свой софт для прошивки калибровок? После записи коэффициентов выполняется ли их чтение и сверка с тем, что должно быть?

18.12.2018 15:28:52
#11

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

Re: LTR22 - пропуски в калибровочной таблице

Файлы с оригинальными коэффициентами для всех модулей не хранятся, поэтому единственный вариант - это восстановить из записанных (я так понимаю отдать на перекалибровку у Вас нет возможности). Там есть часть частот для которых коэффициенты не отличаются, если нарушение в этой области (как во всех трех модулях, что Вы прислали), то их можно восстановить просто используя коэффициенты от другой частоты из этой же области. Для других частот сложнее, но у Вас такой проблемы нет. Сделал утилиту, которая просматривает коэффициенты всех найденных LTR22 и, если найдены заведомо недействительные, то заменяет их на коэффициенты для частоты из группы с одинаковыми коэффициентами. Если такой частоты нет, то считает коэффициент некорректируемым (выводит сообщение), если такие будут - нужно будет подумать, возможно ли их как-то тоже восстановить по остальным. Утилиту выложил сюда http://www.lcard.ru/download/ltr22_cbr_restore.zip.

25.12.2018 21:05:17
#12

Участник
Здесь с 06.06.2014
Сообщений: 37

Re: LTR22 - пропуски в калибровочной таблице

Алексей L Card пишет:

Утилиту выложил сюда http://www.lcard.ru/download/ltr22_cbr_restore.zip.

Я прогнал утилиту по трем проблемным модулям. Калибровки восстановились. Спасибо за помощь.

Контакты

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

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

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

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

L-CARD в проектах