- •Р оссийский государственный университет нефти и газа
- •Введение.
- •2. Классификация методов измерения деформации.
- •3. Неразрушающие методы и приборы.
- •Система измерительная тензометрическая типа сиит-3
- •Тензорезистор высокотемпературный типа нмт-450
- •Средства анализа и обработки информации
- •Автоматизация процессов управления испытаниями и обработки результатов
- •Программа калибровки
- •Применение управляющих эвм при испытаниях материалов
Автоматизация процессов управления испытаниями и обработки результатов
В зависимости от назначения, типа и условий эксплуатации тензорезисторов и измерительных систем измерительная информация с них может поступать как в аналоговом, так и цифровом виде. Для визуальных наблюдений информация об измеряемых параметрах представляется на цифровых индикаторах либо стрелочных приборах.
В настоящее время в качестве выходных приборов все шире используются экраны дисплеев, на которых измеряемые параметры представляются в виде графиков, диаграмм и таблиц. При этом, как правило, параллельно происходит запись измерительной информации на соответствующий носитель.
Измерительная информация может передаваться через выходные приборы в систему мониторинга объектов для принятия решений.
Программа калибровки
#define STAT 0 x 309 /*Регистр состояния макетной платы*/
#define CNTRL 0 x 30С /*Управляющий регистр макетной платы*/
#define ADC 0 x 308 /* АЦП: адрес и данные*/
#define STRTAD 0x30A /*Регистр запуска преобразования*/
main ( )
{
int nagr 0,5, nagr 30, nagr x, slope,F, velichinasoprotivlenia;
char c=0
output(CNTRL,1); /*Установка второго бита в управляющем*/
/*регистре для разрешения запуска программы*/
/*преобразования*/
output(ADC,1): /*Выбор канала 1*/
cprintf («Ввести величину нагрузки F \ n»);
cprintf («Калибровка 1: задать нагрузку =0,5 \ n»);
cprintf («Через 1 минуту нажмите любую клавишу. \n»);
while (!kbhite()); /*Ждать нажатия клавиши*/
nagr 0,5=get_data() /*Получить значение величины тока для порога ударных нагрузок =0,5*/
cprintf («Ввести величину нагрузки F \ n»);
cprintf («Калибровка 2: задать нагрузку F =30 \ n»);
cprintf («Через 5 минут нажмите любую клавишу. \n»)
while (!kbhit()); /*Ждать нажатия клавиши*/
nagr 30=get_data()
slope=29,5/( nagr 30- nagr 0,5); /*Расчет коэффициента линейной*/
/*зависимости величины сопротивления от величины нагрузки F */
cprintf («Нажмите любую клавишу для отсчета величины сопротивления. \n»);
cprintf («Нажмите е для выхода из программы. \n»);
while(c!=’e’) /*Повторять, пока не нажата клавиша е*/
{
If (kbhit() /*Отсчет величины сопротивления, если нажата*/
/*любая клавиша*/
{
nagr x=get_data();
velichinasoprotivlenia =slope*( nagr x/F); /*Расчет величины сопротивления */
cprintf («Величина сопротивления =мкОм d/n», velichinasoprotivlenia);
c=getch();
}
}
}
get=data()
{
int datum;
outp(STRTAD); /*Запуск преобразования*/
while(!(inp(STAT)&2)); /*Ждать завершения преобразования*/
datum=inp(ADC);
return(datum);
}
output(ADC,1): /*Выбор канала 2*/
cprintf («Ввести величину нагрузки F \ n»);
cprintf («Калибровка 1: задать нагрузку =0,5 \ n»);
cprintf («Через 1 минуту нажмите любую клавишу. \n»);
while (!kbhite()); /*Ждать нажатия клавиши*/
nagr 0,5=get_data() /*Получить значение величины тока для порога ударных нагрузок =0,5*/
cprintf («Ввести величину нагрузки F \ n»);
cprintf («Калибровка 2: задать нагрузку F =30 \ n»);
cprintf («Через 5 минут нажмите любую клавишу. \n»)
while (!kbhit()); /*Ждать нажатия клавиши*/
nagr 30=get_data()
slope=29,5/( nagr 30- nagr 0,5); /*Расчет коэффициента линейной*/
/*зависимости величины сопротивления от величины нагрузки F */
cprintf («Нажмите любую клавишу для отсчета величины сопротивления. \n»);
cprintf («Нажмите е для выхода из программы. \n»);
while(c!=’e’) /*Повторять, пока не нажата клавиша е*/
{
If (kbhit() /*Отсчет величины сопротивления, если нажата*/
/*любая клавиша*/
{
nagr x=get_data();
velichinasoprotivlenia =slope*( nagr x/F); /*Расчет величины сопротивления */
cprintf («Величина сопротивления =мкОм d/n», velichinasoprotivlenia);
c=getch();
}
}
}
get=data()
{
int datum;
outp(STRTAD); /*Запуск преобразования*/
while(!(inp(STAT)&2)); /*Ждать завершения преобразования*/
datum=inp(ADC);
return(datum);
output(ADC,1): /*Выбор канала 3*/
cprintf («Ввести величину нагрузки F \ n»);
cprintf («Калибровка 1: задать нагрузку =0,5 \ n»);
cprintf («Через 1 минуту нажмите любую клавишу. \n»);
while (!kbhite()); /*Ждать нажатия клавиши*/
nagr 0,5=get_data() /*Получить значение величины тока для порога ударных нагрузок =0,5*/
cprintf («Ввести величину нагрузки F \ n»);
cprintf («Калибровка 2: задать нагрузку F =30 \ n»);
cprintf («Через 5 минут нажмите любую клавишу. \n»)
while (!kbhit()); /*Ждать нажатия клавиши*/
nagr 30=get_data()
slope=29,5/( nagr 30- nagr 0,5); /*Расчет коэффициента линейной*/
/*зависимости величины сопротивления от величины нагрузки F */
cprintf («Нажмите любую клавишу для отсчета величины сопротивления. \n»);
cprintf («Нажмите е для выхода из программы. \n»);
while(c!=’e’) /*Повторять, пока не нажата клавиша е*/
{
If (kbhit() /*Отсчет величины сопротивления, если нажата*/
/*любая клавиша*/
{
nagr x=get_data();
velichinasoprotivlenia =slope*( nagr x/F); /*Расчет величины сопротивления */
cprintf («Величина сопротивления =мкОм d/n», velichinasoprotivlenia);
c=getch();
}
}
}
get=data()
{
int datum;
outp(STRTAD); /*Запуск преобразования*/
while(!(inp(STAT)&2)); /*Ждать завершения преобразования*/
datum=inp(ADC);
return(datum);