朱佳奇,張佳仁
(上海市質量監督檢驗技術研究院,上海 201114)
在熱工溫度計量中,需要使用數字多用表進行傳感器的電信號采集,常用的數字多用表有HP34401A、HP34401、HP34420A、HP34420、KEITHLEY2000、KEITHLEY2001 等諸多型號。自動化計量的執行過程中,需要進行多次初始化設置和讀取操作,可靠正確地實現遠程設置是實現自動化檢定校準的關鍵所在。目前數字儀表都支持SCPI 協議,如上位機給連接儀表發送"*IDN?",儀表會自動地返回設備型號等諸多字符串信息,用戶可以根據返回信息判斷設備類型[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]。
數字多用表的初始化分為兩種情況:RS232 接口和GPIB 接口。具體選用何種硬件接口需要在軟件ini 配置文件中加以修改和存儲,這樣下次上電時可以自動采用正確設置參數。熱工計量主要對熱電阻傳感器的電阻值和熱電偶傳感器的毫伏值進行采集。定義此函數為InitDevice(),初始化函數主要完成數字多用表的遠程控制,硬件復位,設置電阻或電壓的測量模式等操作,正確的初始化操作是數字多用表準確測量的前提。
電阻檔初始化順序為:首先遠程復位數字多用表,清除寄存器緩存數據,設置為遠程操作模式,電阻檔采集方式,并設置相應的濾波系數[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");
電阻檔初始化順序為:首先遠程初始化,清除寄存器緩存數據,再做采集設置。_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");
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");
圖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);
熱電阻計量檢定過程中需要依據規程不斷地采集標準傳感器和被檢傳感器的模擬輸出值:工業熱電阻采集是將標準熱電阻與被檢熱電阻在同一恒溫環境中的電阻測量值進行比較;工業貴金屬和工業廉金屬熱電偶是將標準熱電偶和被檢熱電偶在檢定爐中的小毫伏信號值進行比較,需要注意的是熱電偶需要進行冷端補償處理,包括:零點補償和室溫補償兩種常用方式,零點補償是將熱電偶冷端放置在零度的冰水混合物中,以確保熱電偶的輸出特性以零點為起點,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 協議發送至后端上位機或者采集儀表進行后續計算處理。
依照論文所述的儀器類型判斷、設置初始化、循環讀取和設備關閉操作步驟,設計開發出的數字多用表遠程控制上位機軟件,可以實現遠程的自動化控制,替代人工低效的本地操作,大大提升了溫度計量過程中數據多用表采集數據的讀取效率。