数字多用表远程控制技术在温度计量中的研究与应用
2019-08-05朱佳奇张佳仁
朱佳奇,张佳仁
(上海市质量监督检验技术研究院,上海 201114)
在热工温度计量中,需要使用数字多用表进行传感器的电信号采集,常用的数字多用表有HP34401A、HP34401、HP34420A、HP34420、KEITHLEY2000、KEITHLEY2001 等诸多型号。自动化计量的执行过程中,需要进行多次初始化设置和读取操作,可靠正确地实现远程设置是实现自动化检定校准的关键所在。目前数字仪表都支持SCPI 协议,如上位机给连接仪表发送"*IDN?",仪表会自动地返回设备型号等诸多字符串信息,用户可以根据返回信息判断设备类型[1]。
1 仪表类型
测试仪表类型可以定义函数TestDevice(),GPIB 设置相应的地址以后,举例如下:
if (Profile.KE2000_TYPE == "HP34401A"
{ _
sp.WriteLine("*IDN?");//询问设备信息
string ret=_sp.ReadTo(" ");//将字符串读取至换行结尾处,需要注意的是串口发送和接收缓存区默认都为1024 个字节,数字多用表所返回的字符串都是以回车换行符结尾的,以此方式判断接收字符串的结束更加方便,针对上述提及的数字多用表的不同类型,可以根据型号针对性识别,如HP34401 只需要识别34401 字符串,就可判断设备已经正确连接。
if (true == ret.Contains("34401"))
{
return true;
}
return false;
} ....
SCPI 仪表协议的常见远程控制流程都是先给连接仪表发送字符串"*IDN?",如果仪表连接正常会返回相关信息字符串,如果未返回字符串,则可能是由于仪表未上电、通讯地址设置错误、通讯线缆(GPIB488 和232)连接错误等原因造成的。因为温度计量所使用的数字多用表一般分为3 个等级六位半如34401、七位半如KEITHLEY2001、八位半KEITHLEY2002,仪表默认的串口波特率一般为9600-8-n-1[2]。
2 初始化
数字多用表的初始化分为两种情况:RS232 接口和GPIB 接口。具体选用何种硬件接口需要在软件ini 配置文件中加以修改和存储,这样下次上电时可以自动采用正确设置参数。热工计量主要对热电阻传感器的电阻值和热电偶传感器的毫伏值进行采集。定义此函数为InitDevice(),初始化函数主要完成数字多用表的远程控制,硬件复位,设置电阻或电压的测量模式等操作,正确的初始化操作是数字多用表准确测量的前提。
2.1 344XX仪表
电阻档初始化顺序为:首先远程复位数字多用表,清除寄存器缓存数据,设置为远程操作模式,电阻档采集方式,并设置相应的滤波系数[3]。
_sp.WriteLine("*RST"); //远程硬件复位
_sp.WriteLine("*CLS"); //清除缓冲数据
_sp.WriteLine(":SYST:REM");//设置远程控制
_sp.WriteLine(":SENS:FUNC'FRES'"); //电阻测量
_sp.WriteLine("CONF:FRES 1000, MIN");
_sp.WriteLine("SAMP:COUN 3"); //滤波个数
_sp.WriteLine("FRES:NPLC 10");//滤波系数
_sp.WriteLine("TRIG:SOUR IMM");//触发模式
_sp.WriteLine("INIT");
_sp.WriteLine("*OPC");
电压档初始化顺序为:首先远程复位数字多用表,清除寄存器缓存数据,设置为远程操作模式,直流电压档采集方式,并设置相应的滤波系数,进行初始化。
_sp.WriteLine("*RST");//远程硬件复位
_sp.WriteLine("*CLS");//远程硬件复位
_sp.WriteLine(":SYST:REM");//远程硬件复位
_sp.WriteLine(":SENS:FUNC 'VOLT:DC'");//电压
_sp.WriteLine("CONF:VOLT:DC 0.1, MIN");
_sp.WriteLine("SAMP:COUN 3");
_sp.WriteLine("VOLT:DC:NPLC 10");//滤波系数
_sp.WriteLine("TRIG:SOUR IMM");
_sp.WriteLine("INIT");
_sp.WriteLine("*OPC");
2.2 KEITHLEY仪表
电阻档初始化顺序为:首先远程初始化,清除寄存器缓存数据,再做采集设置。_sp.WriteLine("*RST");//远程硬件复位_sp.WriteLine("*CLS"); //清除缓冲数据_sp.WriteLine(":SYSTem:RWLock");//设置本地
电压档初始化顺序为:首先设置采集模式为直流电压档,并设置好滤波系数值。
_sp.WriteLine(":SENSe:FUNCtion'VOLTage:DC'";
_sp.WriteLine(":SENSe:VOLTage:DC:NPLCycles1");//滤波系数
_sp.WriteLine(":SENSe:VOLTage:DC:DIGits MAXimum");// 电压位数精度
_sp.WriteLine(":SENSe:VOLTage:DC:AVERage:STATe ON");
2.3 GPIB
GPIB 接口也称作488 接口,其优越的EMC 性能使其大量的应用在仪表自动化计量领域,GPIB 接口需要针对每一个连接设备设置对应的ID 地址值[4]。
电阻档初始化顺序为:设置仪表电阻档,开启平均滤波。
GPIB.IBWRT(1,":SENSe:FUNCtion'FRESistance'");
GPIB.IBWRT(1,":SENSe:FRESistance:NPLCycles1");//滤波系数
GPIB.IBWRT(1, ":SENSe:FRESistance:DIGitsMAXimum");
GPIB.IBWRT(1,":SENSe:FRESistance:AVERage:STATe ON");
电压档初始化顺序为:设置仪表直流电压档,开启平均滤波。
GPIB.IBWRT(1,":SENSe:FUNCtion'VOLTage:DC'");
GPIB.IBWRT(1,":SENSe:VOLTage:DC:NPLCycles 1");
GPIB.IBWRT(1,":SENSe:VOLTage:DC:DIGitsMAXimum");
GPIB.IBWRT(1,":SENSe:VOLTage:DC:AVERage:STATe ON");
3 数值读取
3.1 上位机
图1 为数字多用表远程控制界面图,数字多用表在完
图1 数字多用表远程控制界面Fig.1 Digital multimeter remote control interface
成初始化以后,需要不断地读取所连接传感器的测量值。如果是344XX 和KEITHLEY 仪表系列串口仪表,一般就循环发送":READ?"进行读取,而如果是GPIB 接口仪表,则循环发送":fetch?"进行读取[5,6]。
仪表收到读取命令会返回相应的测量字符串内容,上位机需要针对字符串中数据的格式进行解析转换,具体的操作如下所示:
string ret = _sp.ReadTo(" ");
int x = ret.IndexOf("VDC");//VDC 字符串判断
string val = ret.Substring(0, 15);//字符串截取操作
float f = 0;
string val = ret.Substring(0, 15); //设置远程控制
float.TryParse(val, out f);
return f;
需要注意的是完成数字多用表的读取操作以后,需要关闭远程测量功能,以便用户本地手动操作。RS232 串口仪表发送如下命令实现关闭:_sp.WriteLine("*RST");//远程硬件复位_sp.WriteLine("*CLS");//清除缓冲数据_sp.WriteLine("SYST:LOC");//设置本地控制
而GPIB 仪表需要发送如下命令:GPIB.IBGTL(1);
3.2 热工计量应用
热电阻计量检定过程中需要依据规程不断地采集标准传感器和被检传感器的模拟输出值:工业热电阻采集是将标准热电阻与被检热电阻在同一恒温环境中的电阻测量值进行比较;工业贵金属和工业廉金属热电偶是将标准热电偶和被检热电偶在检定炉中的小毫伏信号值进行比较,需要注意的是热电偶需要进行冷端补偿处理,包括:零点补偿和室温补偿两种常用方式,零点补偿是将热电偶冷端放置在零度的冰水混合物中,以确保热电偶的输出特性以零点为起点,mV 与温度的函数关系似90 温标算法,而室温补偿多采用Pt100 温度传感器测量室温值,根据被检热电偶的类型将上述室温值换算成mV 值,在将此mV 值加上在室温环境下数字多用表测量的mV以达到零点补偿的效果。
数字多用表设置成四线制方式测量热电阻的实时电阻值,标准热电阻一般为四线制输出,工业热电阻一般为三线制或两线制输出。四线制的测量比较简单,因为测量电路自身就消除了导线电阻对结果的影响,对于二线制热电阻是无法消除导线的阻值影响。因此,两线制电阻只能用于低精度要求的工况测温环境。三线制热电阻测量时需要结合辅助设备进行换向测量处理,需要注意的是就三线制热电阻自身而言,只有A 端和B 端的导线阻值相等才能从测量原理上消除导线的测量影响。
在热工传感器计量的过程中,必须有低热电势转换开关的配合,低热电势转换开关的外接通道都具有4 个接线端子A、A、B、B,前面板上依次标注标准、被测1、被测2、被测3、被测4、被测5 ... 冷端补偿,后面板上直连数字多用表的4 根测量线。开关内部具有两个直流电机配合切换开关的顺时针旋转。目前,低热电势转换开关可以同时实现本地和远端控制,根据本地触发或者远程命令控制的内容,旋转至要测量通道位置,以实现数字多用表的自动通道切换。依据检定规程的要求,多通道的测量顺序依次为标准、被测1、被测2、被测3、被测4、被测5、被测6、被测5、被测4、被测3、被测2、被测1、标准。数字多用表对电阻和电压的测量值,后续通过SCPI 协议发送至后端上位机或者采集仪表进行后续计算处理。
4 结论
依照论文所述的仪器类型判断、设置初始化、循环读取和设备关闭操作步骤,设计开发出的数字多用表远程控制上位机软件,可以实现远程的自动化控制,替代人工低效的本地操作,大大提升了温度计量过程中数据多用表采集数据的读取效率。