張 輝, 何子逸, 尹 釗, 顏海成
(北京科技大學能源與環境工程學院,北京100083)
顯微熔點儀[1]是高溫環境觀察物質熔化過程的重要工具,在藥物純度分析[2]、物質熔點測定[3]等方面應用廣泛。目前,熔點儀大多通過手動調節旋鈕控制加熱盤輸出功率,受人為因素影響顯著,測試結果重復性較差;溫度控制儀表僅有簡單的溫控功能,比例、積分、微分(Proportional Integral Derivative,PID)參數[4]固定,加熱溫度、加熱功率、散熱條件[5]發生改變時,溫控曲線振蕩幅度難以控制,常常導致溫度超過物質熔化區間段,觀測時間周期短;操作者觀察物質熔化過程、記錄溫度數據同時進行,操作繁雜,影響觀測精度。利用嵌入式監控系統(Monitor and Control Generated System,MCGS)觸摸終端可以將人工操作與儀表溫度控制功能分離,兩者獨立進行模塊化設計,通過串口Modbus-RTU通信[6]完成數據交換。操作者可以專注觀察物質狀態的改變和觸發數據記錄按鈕,觸摸終端實時記錄并保存中間數據。
顯微熔點儀控制系統如圖1所示,包括MST103AS1-PWM-NNN溫控儀表、S-250-36直流電源、SSR-10DD固態繼電器、Pt100溫度傳感器和加熱盤。

圖1 顯微熔點儀控制系統圖
常規溫控儀表僅具有溫度控制功能,為實現鍵控特性,專門研發了該型儀表,對芯片的通用輸入、輸出(General Purpose Input/Output,GPIO)引腳重新進行了定義,如圖1中5、6引腳,當按鈕按下再彈起時,5、6之間產生脈沖信號,此時對應的時間與溫度會記錄在芯片輸入寄存器(第3區寄存器)中,實驗完畢后由程序讀出。3、4引腳為RS-485串行通信接口[7],分別與觸摸屏COM2串口的7、8引腳相連。數據通信采用半雙工方式,即當觸摸屏向儀表發送數據時,儀表只能等待接收;儀表向觸摸屏發送數據時,觸摸屏只能接收,兩者不能同時進行發送與接收數據操作。
加熱盤內部發熱元件電阻為10Ω,最大電流為4 A,功率可達130 W。測溫傳感器精度可達0.1℃,Pt100為電阻式傳感器,連接線的粗細與長短會影響測量值的準確度。儀表內部利用開爾文雙臂電橋接法,減小接觸電阻,連接方式為三線制,如圖1所示,將11、12端子短接后連到Pt100的一端,端子10連接至另一端。內部0x00保持寄存器(第4區寄存器)的值選擇Pt1b,與外部傳感器類型相匹配。
儀表輸出通過固態繼電器控制加熱盤電流的有無,當7、8引腳電壓低于3 V時,固態繼電器的1、2端子斷開,切斷電流,加熱盤停止供電;反之,當兩引腳電壓介于3~32 V時,固態繼電器的1、2端子閉合,導通電流,加熱盤開始工作。由于固態繼電器的開關時間很短,如同脈沖一樣,可以將供電電流分為很小的份數,用于溫度的精細調節。0x14保持寄存器對應的控制周期參數Ct選擇1,表示最小開關周期為1 s。0x15輸出類型OP參數選擇SSr,對應固態繼電器。為提高控溫精度,可將0x12回差Hy參數設為0.2℃,溫度達到設定值后,其波動范圍不會超過設定值的±0.2℃。
MCGS采用Modicon串口驅動構件[8]與支持Modbus-RTU標準協議的各類PLC[9]、儀表[10]和控制器[11]進行通信,通過不同的功能碼訪問儀表內部不同區域的寄存器。MST103A-S1-PWM-NNN溫控儀表主要包括輸入、輸出兩種類型寄存器,如圖2所示。儀表的功能參數全部存儲在輸出寄存器中,中間測試的數據結果存儲在輸入寄存器中。在Modicon驅動中,輸出寄存器為第4區寄存器,輸入寄存器為第3區寄存器。
以MCGS腳本命令為例說明訪問輸出寄存器0x13地址數據的指令編寫過程,腳本語句為:

“設備0”對應觸摸屏COM2串口下地址為XX的儀表,與儀表參數0x1D輸出寄存器的內容保持一致,此處XX設定為01。同一個串口可以連接多臺儀表,但每臺儀表的地址不能相同,以免通信時發生數據碰撞。當地址不同時,在MCGS程序中命名為“設備1”“設備2”…“設備n”加以區分。
“6”表示執行后續在雙引號中的read指令。
“Read(4,20,WUB=Ctrl_19)”指令中4表示訪問第4區寄存器,即存儲參數的寄存器;圖2中“Ctrl”參數存儲在輸出寄存器的0x13(十進制為19)地址處,由于寄存器在儀表中以00為起始地址,所以該參數對應從1開始的序號為20;WUB表示寄存器數據的類型,即Word Unsigned Byte,占用2個字節,為無符號整形數據,對應MCGS中的開關型數據;Ctrl_19為MCGS環境定義的變量名稱。整條指令表示將儀表第4區第20個寄存器的數據以無符號整形格式取出,然后放于開關型變量Ctrl_19中。

圖2 莫迪康指令解析圖
同理,輸入寄存器為第3區寄存器,操作者通過按
鈕記錄的時間與溫度值存儲在輸入寄存器中。
!SetDevice(設備0,6,"Read(3,1,WUB=Read_PV_00)")表示將第3區第1個寄存器的值以無符號整形格式取出,放于開關型變量Read_PV_00中。
MCGS組態軟件[12]是嵌入式觸摸屏自身具有的一種組態操作系統[13],可以運行在PC機或筆記本電腦中。其優勢在于能夠快速與智能儀表建立通信,將儀表寄存器內容與組態軟件定義的變量進行關聯。溫控儀表主要通過PID參數對加熱盤溫度進行調節,用戶需要通過界面調整各個參數的值。
儀表參數很多,僅將必要參數列出,如圖3所示,以控制方式CtrL為例,該參數的值存儲在輸出寄存器0x13地址處,可以取0、1、2或3,對應的顯示值分別為onoF、Pid、tunE、MAnu,用戶看到的是顯示值,而在寄存器中存儲的是數字值。為在數字值與顯示值之間轉換,設計了“20_儀表參數”用戶窗口,作為人機交互界面。當前值下方的虛線框表示輸入框,點擊該輸入框時,程序會執行Click事件連接腳本,將Input_Ctrl變量置1,Flag_19變量置1。“onoF”、“Pid”、“tunE”、“MAnu”、“確定”5個按鈕的可見度屬性為Input_Ctrl=1,說明當Input_Ctrl變量為1時這5個按鈕就會顯示出來。用戶一旦點擊了輸入框,這5個按鈕會顯示在界面上,供用戶選擇,如果按下了“onoF”按鈕,運行腳本:

圖3 溫控儀表參數設置人機交互程序框圖

Flag_19是參數序號跟蹤變量,用于識別不同的參數,當用戶點擊輸入框時,此值賦1,用該變量記下用戶選擇的參數,此處定義的字符型變量Ctrl_Str_19被賦給“onoF”字符值,而輸入框與字符型變量Ctrl_Str_19相關聯,所以在輸入框中會顯示“onoF”。同理,點擊其他3個參數值按鈕時,輸入框會顯示對應的參數顯示值。當點擊“確定”按鈕時,Input_Ctrl變量賦0,5個按鈕隱藏,同時,Flag_19變量賦0,不再跟蹤參數序號。
當用戶點擊“讀儀表值”按鈕時,發送如下通信指令:

將儀表的Ctrl參數讀入開關型變量Ctrl_19中,根據該變量的數字值對字符型變量Ctrl_Str_19賦值,與參數顯示值一一對應。輸入框與字符型變量Ctrl_Str_19相關聯,點擊完“讀儀表值”按鈕后,輸入框內顯示的是儀表參數對應的顯示值。這個過程實現了參數數字值向顯示值的轉換。
當點擊“W_Ctrl”按鈕時,將輸入框中用戶選擇的字符轉化為數字。例如:

首先判斷與輸入框關聯的字符型變量Ctrl_Str_19的內容是不是“onoF”,如果是,則將對應的開關型變量Ctrl_19賦為數字值0;同理,如果用戶選擇了不同的字符型參數值,點擊按鈕后都要轉化為相應的數字值。最后,通過!SetDevice(設備0,6,"Write(4,20,WUB=Ctrl_19)")通信腳本指令將開關型變量Ctrl_19存儲的數字值寫入儀表第4區地址為20的寄存器中,完成參數的修改過程。
圖4 為實驗參數設置程序圖。

圖4 實驗參數設置程序圖
在主程序窗口中,通過“儀表參數”“實驗參數”和“數據結果”3個按鈕分別調用相應的子窗口,例如,點擊“實驗參數”按鈕,執行腳本指令:

表示在主窗口的(20,20)位置顯示寬為256,高為232像素的“21_實驗參數”子窗口。子窗口形象地繪制了加熱盤的升溫過程,采用2個控溫平臺,第1個稱為預熱溫度,其設定值低于物質熔點2~3℃;第2個稱為目標溫度,其設定值高于物質熔點3~5℃,保證物質熔化的過熱度;中間過渡直線對應升溫斜率,斜率越小,觀測溫度與實際溫度越接近,滯后效應越小,得到的溫度越準確。傳統熔點儀[14]需要用戶反復切換溫控面板的控制鍵設定參數值,專業性強,操作時間長,不利于一般用戶的使用。MCGS人機交互界面配有面板輸入鍵盤[15],簡單快捷,僅需觸摸即可更改。例如,要更改預熱溫度參數,只需點擊上方的輸入框,會彈出面板鍵盤,輸入要設定的數值,該數值保存在與輸入框相關聯的數值型變量Rdy_Value_37中,再點擊“確定”按鈕,Rdy_Value_37數值型變量乘以10轉化為儀表參數存儲的值,由于儀表參數對應開關型變量,再將Num_Temp進行類型轉化,賦值給開關型變量Rdy_37,通過!SetDevice(設備0,6,"Write(4,38,WUB=Rdy_37)")將Rdy_37的內容寫入第4區地址為38的輸出寄存器中,完成預熱溫度參數的修改。同理,升溫斜率、目標溫度都可以通過這種方式來完成。
“21_實驗參數”子窗口在顯示時,會執行啟動腳本,啟動腳本的內容是分別讀取預熱溫度、升溫斜率和目標溫度的值。例如,!SetDevice(設備0,6,"Read(4,32,
WUB=Set_31)")通信指令將第4區地址為32的輸出寄存器的值讀入開關型變量SET_31中,再除以10得到小數值,賦給數值型變量SET_Value_31,該變量與目標溫度上方的輸入框相關聯,只要“21_實驗參數”子窗口一啟動,腳本即刻執行,完成儀表寄存器數據的讀取操作。
在主程序窗口點擊“數據結果”按鈕,執行腳本程序“!OpenSubWnd(22_數據結果,60,60,356,282,0)”,彈出“22_數據結果”子窗口,該窗口以表格形式顯示用戶觀察物質熔化過程中通過按鈕記錄的中間時間及其對應溫度,每個格子與相應的字符型變量關聯。例如,第1行第2列與Read_Time_First_Str_02字符型變量關聯,由于這些中間數據存儲在輸入寄存器,該類寄存器僅支持讀取操作,不能進行寫入,因此,在MCGS上層界面中可以直接定義字符型變量與之關聯。子窗口顯示時運行啟動腳本,如圖5所示。

圖5 實驗數據采集程序圖
從第3區第3個寄存器開始,依次讀取到第12個寄存器,并將讀取到的值放入對應的開關型數據Read_Time_First_02、Read_Time_Secibd_03和Read_Time_Third_04等變量中。采用!StrFormat函數將開關型變量按指定格式格式化為字符串,再賦給相應字符型變量,完成通信后的數據格式轉換功能。用戶一旦完成實驗測試,點擊“數據結果”按鈕便可查詢實驗測得的值。
溫度控制過程中,儀表的控溫精度與加熱電流、溫度傳感器和環境溫度等因素有關,相同條件下,控溫PID參數可以進行優化。例如,當目標溫度為200℃時,通過自整定可以計算出此條件下對應的參數值,如果目標溫度改變為400℃,需要重新自整定。顯微熔點儀一般用于精準測定已知物質的熔點,其溫度范圍通常已知,此時可按熔點為基準進行自整定。MST103A-S1-PWM-NNN型儀表的控溫精度由比例參數TP、積分時間TI和微分時間TD3個參數決定,如圖6所示。

圖6 自整定過程溫度曲線圖
該圖是儀表目標溫度為170℃時自整定過程溫度變化曲線,點A前面的振蕩區間為升溫和降溫試探過程,升溫段用于計算加熱功率對目標溫度的貢獻,降溫段用于考察環境溫度對目標溫度的貢獻。
曲線經過一個周期振蕩后開始進行參數計算過程,到達A點后,記錄峰值對應時間,當曲線降至C點時,記錄谷值對應時間,峰值與谷值對應時間差為積分時間TI,相當于振蕩周期的一半,此處為38 s;當曲線從A點下降經過設定溫度時,記錄溫度值為設定值170℃對應的時間,即B點,曲線經過波谷C點后再次上升到設定值D點,2個時間差的1/8為微分時間TD,BD時間差為73 s,再除以8取整為9 s,即微分時間TD為8 s;從C點開始到達D點,其升溫斜率[16]的倒數為比例帶Pb,即每升高1℃所用的時間,此處計算為12.3 s/℃。這樣,經過上述計算過程,獲得完整的PID參數,將其寫入輸出寄存器對應的0x17(It)、0x18(Dt)和0x16(Pb)地址中,用于后續儀表對用戶設定預熱溫度的控制。
圖7 是測定熔點為164.5~166.5℃磺胺時的升溫曲線圖,預熱溫度為161℃,升溫斜率為0.5℃/min,目標溫度為167℃。

圖7 熔點測試過程升溫曲線圖
由圖7可見,當升溫曲線到達預熱溫度161℃時,會上沖1.1℃,到達A點,但仍然低于磺胺的熔點范圍,不影響操作者觀察物質熔化過程。曲線下降至最低溫度B點(160.8℃)后開始按0.5℃/min速率升溫,在這個過程中,操作者可以專心關注物質的熔化過程,當認為物質熔化時,可以點按手中的按鈕,此時對應的時間和溫度會存入輸入寄存器相應的地址,每點按一次,便有一組數據依次存入,直至磺胺完全熔化。當曲線升至167℃時,停在該溫度不再繼續升溫,等待用戶下一步指令,保證了測定過程的安全。可見,升溫曲線保持了較好的線性關系,從161℃升至167℃時耗時693 s,計算得到平均升溫速率為0.521℃/min,與設定值0.5℃/min非常接近。
利用具有可視化操作界面的MCGS組態軟件與具有RS-485串口通信功能的溫控儀表,開發了一套控溫與觀察相對獨立的顯微熔點儀控制系統。主要特點如下。
(1)建立與智能儀表通信的人機交互界面系統,操作者可以讀取和修改儀表不同區域地址處的寄存器內容,對于不同參數通過識別序號甄別,通過按鈕選擇不同參數值,操作更加便捷;
(2)通過設置中間預熱平臺,將溫度過沖限制在較小范圍內,保證后續固定的升溫速率,溫度曲線以階梯漸近式接近目標溫度,為操作者準確觀察物質熔化過程和測定熔化溫度提供了穩定重復的升溫曲線,省略了人工調整旋鈕的步驟。
后續將結合適于不同目標溫度的PID參數開發智能型高精度控制算法。