基于PC机的温度检测系统设计Word文档格式.docx
- 文档编号:18801533
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:22
- 大小:437KB
基于PC机的温度检测系统设计Word文档格式.docx
《基于PC机的温度检测系统设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于PC机的温度检测系统设计Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
2.温度检测系统方案设计
基于PC机的温度检测系统实用数据采集卡改造传统的测温仪,使其具有更强大的功能系统框架如图所示,仪器系统通过前段感温装置的传感元件,将被测对象的温度转换为电压或电流等模拟信号,经信号调理电路进行功率放大滤波等处理后,变换为可被数据卡采集的标准电压信号由接线端子通过电缆线传入数据采集卡。
在数据采集卡被将模拟信号转换为数字信号,并在数据采集指令下将其送入计算机总线,在PC机内利用已经安装的程序软件对采集的数据进行各种所需的处理。
其系统框图如图1:
图1
3.硬件系统设计
3.1温度传感器PT100
①传感器原理:
PT100是铂热电阻,它的阻值跟温度的变化成正比。
PT100的阻值与温度变化关系为:
当PT100温度为0℃时,它的阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。
它的工业原理:
当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成匀速增长的。
PT100温度传感器是一种用白金做成的电阻式温度检测器,属于正电阻系数,其电阻和温度变化的关系如下:
R=R0(1+αT)
α=0.00392R0为100Ω(在零度的电阻值)
T为摄氏度
V0=2.55mA*100(1+0.00392)=0.225+T/1000.
PT100铂电阻温度传感器有三条引线,可用A,B,C(红黑白)来代表。
三根线之间有以下规律:
A与B或C之间的阻值常温下在110欧姆左右,B与C之间为0欧姆。
B与C在内部是直通的,原则上B与C没什么区别,
仪表上接传感器的固定端子有三个:
A线接在仪表传感器的一个固定的端子,BC接在另外两个。
BC的位置是可以互换的,但都要接。
三个导线的长度,规格必须相同。
②传感器技术指标
我们选择的是STT-C系列铂电阻温度传感器,STT-C系列温度传感器的测温探头部分由标准连接件,螺纹过程连接和测温保护管三部分构成。
采用标准连接件可以很方便将信号线与传感器连接与拆卸,产品非常适合为便携仪器仪表配套,方便现场维护与安装。
STT-CABCDMEPTS
C连接器类别
1=C1圆形连接器
2=C2矩形连接器
A传感器类型,双支加D
1=Pt1005=Pt50010=Pt1000
B直径D(mm)
2=2.03=3.04=4.05=5.0
6=6.08=8.0指定
C插入深度EL(mm)
30=3040=4050=50
100=100200=200指定
D不锈钢保护管材质
1=sus3214=sus3046=sus316指定
M螺纹规格M(详见附录二)
图2
5=M5X0.88=M8X1.2510=M10X1.512=M12X1.5
16=M16X1.5指定
E引线结构
线制
2=两线
3=三线
4=四线
P精度
A=A级B=B级1/3B=1/3B级
T温度范围(℃)
1=-200~1002=-50~1003=-50~2004=-50~250指定
S特殊要求
0=无2=可弯曲铠装结构3=特氟龙涂层防腐4=特氟龙包覆防腐指定
图3
3.2温度变送器
①温度变送器的工作原理:
是采用热电偶、热电阻作为测温元件,从测温元件输出信号送到变送器,经过稳压滤波、运算放大、非线性校正、和恒流及反向保护等电路处理以后,转换成与温度成线性关系的电流或电压信号输出。
②技术参数:
我们选用的事智能隔离变送器STWB系列,它以单片机为核心,配合传感器信号调理和高精度数据转换等低功耗设计,采用先进的隔离解决方案,实现智能化变送功能:
输入信号和量程自由选择,非线性校正,测量自校准,数字滤波,零点迁移,量纲转换,RS485通讯等。
特性:
——隔离工作方式,输入、输出、电源三方完全隔离
——采用智能化设计,具有环境温度自动补偿、零点自动校准,线性化处理,
数字滤波,量纲转换,模拟变送输出及RS485通讯等功能
——可与多种工业热电偶,热电阻,变阻器等直接配用
——电压,电流输入量程可选
——高精度16位A/D转换器
——输出最大电流限制,电源反接保护功能
——35mm标准导轨安装
——可通过编程器或计算机232通讯口进行功能设置
输入:
热电偶:
E,J,K,S,T,B,N(均含冷端补偿功能)
热电阻:
PT1000,PT100,Cu100,Cu50,BA1,BA2,G53等
图4
电压量程:
±
100mV,0~1V,0~5V,1~5V,0~10V
电流量程:
0~10mA,4~20mA
输出:
电流输出:
0~10mA,0~20mA,4~20mA,负载能力为450Ω
电压输出:
0~5V,0~10V,负载能力≥100kΩ
通讯:
通讯地址0~99可设定,通讯速率4800,9600,19200可选
技术指标:
工作电源:
24VDC±
10%纹波:
0.02%FS
功率:
<
2W隔离电压:
1000VDC或交流峰值
误差:
0.1%0.2%0.5%FS质量:
130克
工作温度:
0~50℃湿度:
≤90%RH
选型代码:
STWB-IXRFSPS
I智能隔离型X输入信号见表1R量程见表2F输出1见表3S输出2见表3
P精度:
5=0.5%2=0.2%1=0.1%S特殊要求:
0=无9=12V指定
图5
3.3数据采集卡
数据采集(DAQ),是指从传感器和其它待测设备等模拟和数字被测单元中自动采非电量或者电量信号,送到上位机中进行分析,处理。
数据采集系统是结合基于计算机或者其他专用测试平台的测量软硬件产品来实现灵活的、用户自定义的测量系统。
数据采集卡,即实现数据采集(DAQ)功能的计算机扩展卡,可以通过USB、PXI、PCI、PCIExpress、火线(1394)、PCMCIA、ISA、CompactFlash、485、232、以太网、各种无线网络等总线接入个人计算机。
我们此次设计用的研华1710数据采集卡。
如图6,连接方式如图7.
PCI-1710/1710HG是一款PCI总线的多功能数据采集卡。
其先进的电路设
计使得它具有更高的质量和更多的功能。
这其中包含五种最常用的测量和控制功
能:
12位A/D转换、D/A转换、数字量输入、数字量输出及计数器/定时器功能。
图7
图6
电缆采用PCL-10168型,是两端针型接口的68芯SCSI-II电缆,用于连接板卡与ADAM-3968接线端子板。
如图8
接线端子板采用ADAM-3968型,是DIN导轨安装的68芯SCSI-II接线端子板,用于各种输入输出信号线的连接。
如图9
图9
图8
图10
接线端子板管脚图(如图11)
图11
3.4温度检测系统的标定
①标定时电压与温度的对应值(如表4):
电压(V)
2.05
5.35
温度(℃)
表4
100
②根据图表数据拟合的线性关系:
y=30.303x-62.121(见图12)
图12
4.软件设计
4.1关键代码
DEVFEATURESm_DevFeatures;
//structurefordevicefeatures//初始化,各变量的定义
PT_AIConfigm_ptAIConfig;
//structureforAIConfigtable
PT_AIVoltageInm_ptAIVoltageIn;
//structureforAIVoltageIntable
PT_DeviceGetFeaturesm_ptDevFeatures;
floatm_high;
floatm_low;
floatm_k;
floatm_b;
m_usDevice=0;
//赋初值
m_usSubDevice=0;
//Deviceindex
m_usChannel=0;
//inputchannel
m_usGain=0;
//gainindex
m_sNumOfDevices=0;
m_sNumOfSubdevices=0;
//numberofinstalleddevices
m_usScanTime=1000;
//scantime
m_dwStartTime=0;
//starttime
m_dwElapseTime=0;
//elapsetime
m_usOverrunCount=0;
//overruncount
m_fVoltage=0.0f;
m_uiTimer=0;
m_high=0.0f;
m_low=0.0f;
m_k=0.0f;
m_b=0.0f;
//------------------------------------------------------------
//InitializeInputRangeListCombobox,itneedstogetdevicefeaturesforgainlist关于数据采集与通道建立
//first:
OpenDevice
if(m_sNumOfSubdevices==0)
{
m_ErrCode=DRV_DeviceOpen(m_DeviceList[m_usDevice].dwDeviceNum,//根据设备句柄打开设备,建立连接
(LONGfar*)&
m_lDriverHandle);
}
else
m_ErrCode=DRV_DeviceOpen(
m_SubDeviceList[m_usSubDevice].dwDeviceNum,
if(m_ErrCode!
=SUCCESS)
strcpy(m_szErrMsg,"
Deviceopenerror!
"
);
//通道连接不成功,显示Deviceopenerror!
//MessageBox((LPCSTR)m_szErrMsg,"
DriverMessage"
MB_OK);
//second:
getdevicefeatures
m_ptDevFeatures.buffer=(LPDEVFEATURES)&
m_DevFeatures;
m_ptDevFeatures.size=sizeof(DEVFEATURES);
if((m_ErrCode=DRV_DeviceGetFeatures(m_lDriverHandle,
(LPT_DeviceGetFeatures)&
m_ptDevFeatures))!
DRV_GetErrorMessage(m_ErrCode,(LPSTR)m_szErrMsg);
MessageBox((LPCSTR)m_szErrMsg,"
DRV_DeviceClose((LONGfar*)&
//third:
initializeInputRangeListComboboxwithdevicefeatures
if(m_DevFeatures.usNumGain!
=0)
pComboBox=(CComboBox*)this->
GetDlgItem(IDC_INPRANGE);
pComboBox->
EnableWindow(TRUE);
ResetContent();
for(i=0;
i<
(int)m_DevFeatures.usNumGain;
i++)
pComboBox->
AddString((LPSTR)m_DevFeatures.glGainList[i].szGainStr);
SetCurSel(0);
EnableWindow(FALSE);
//fourth:
closedevice
}
voidCChildView:
:
OnSetting()
{
//TODO:
Addyourcommandhandlercodehere
CSettingDlg*pDlg=newCSettingDlg(this);
//定义Setting对话框的类名
if(pDlg->
DoModal()==IDOK)
memcpy(&
m_DeviceList,&
pDlg->
m_DeviceList,sizeof(m_DeviceList));
m_SubDeviceList,&
m_SubDeviceList,sizeof(m_SubDeviceList));
m_usDevice=pDlg->
m_usDevice;
m_usSubDevice=pDlg->
m_usSubDevice;
m_usChannel=pDlg->
m_usChannel;
m_usGain=pDlg->
m_usGain;
m_sNumOfDevices=pDlg->
m_sNumOfDevices;
m_sNumOfSubdevices=pDlg->
m_sNumOfSubdevices;
m_high=pDlg->
m_high;
//数据交换
m_low=pDlg->
m_low;
m_k=pDlg->
m_k;
m_b=pDlg->
m_b;
deletepDlg;
voidCSettingDlg:
DoDataExchange(CDataExchange*pDX)
CDialog:
DoDataExchange(pDX);
//将对话框中控件ID号与程序变量关联起来
//{{AFX_DATA_MAP(CSettingDlg)
DDX_Text(pDX,IDC_ECHANNEL,m_usChannel);
DDV_MinMaxInt(pDX,m_usChannel,0,100);
DDX_Text(pDX,IDC_K,m_k);
DDX_Text(pDX,IDC_B,m_b);
DDX_Text(pDX,IDC_High,m_high);
DDX_Text(pDX,IDC_Low,m_low);
//}}AFX_DATA_MAP
OnPaint()
RECTrect;
floattemperature=m_k*m_fVoltage+m_b;
CPaintDCdc(this);
//devicecontextforpainting
Addyourmessagehandlercodehere
if(m_bRun)
GetClientRect(&
rect);
PT_DioWriteBitm_ptDioWriteBit;
m_ptDioWriteBit.port=0;
//指定输出通道为通道0
m_ptDioWriteBit.bit=0;
//指定输出位为第0位
if(m_bTimerOverrun==FALSE)
{
sprintf(m_szBuffer,"
data=%10.6f\ntemperatureis%10.6f"
m_fVoltage,temperature);
//正常状态下输出
}
else
TimerOverrun!
data=%10.6f"
m_fVoltage);
dc.DrawText(m_szBuffer,&
rect,DT_CENTER);
//输出格式定义,文本水平居中
if((temperature>
m_high)||(temperature<
m_low))//报警条件,温度高于上限或低于下限
unsignedlongoldColor=dc.SetTextColor(RGB(255,0,0));
//报警,更改画笔颜色,全红
dc.DrawText(m_szBuffer,&
m_ptDioWriteBit.state=1;
//报警时端口输出高电平,将灯点亮
dc.SetTextColor(oldColor);
//恢复上一步状态,为下次判断和报警做准备
DRV_DioWriteBit(m_lDriverHandle,(LPT_DioWriteBit)&
m_ptDioWriteBit);
//按指定通道号和位号输出指定状态,按初始化值为在通道0的第0位输出高电平
}
else//未超限
m_ptDioWriteBit.state=0;
//端口输出低电平,灯灭
定义通道,菜单栏各项ID,并与变量一一对应
4.2程序流程图(如图13)
N
Y
通道不正常:
是否确定开始运行系统,m_bRun=1?
参数保存,按
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 PC 温度 检测 系统 设计