秦繼文,廖 平,姚亞夫
(中南大學機電工程學院,湖南長沙 410083)
隨著現(xiàn)代工業(yè)技術(shù)的發(fā)展,對鋁箔的質(zhì)量要求越來越高,而衡量鋁箔質(zhì)量主要有2個指標,即板厚與板形,其中板厚偏差是最為基本也是最為核心的技術(shù)指標之一[1]。對于板厚控制,傳統(tǒng)軋制過程中鋁箔在線厚度大多使用單片機系統(tǒng)或PLC來測量,但前者存在集成度不高、穩(wěn)定性不好等問題,而后者成本較高。根據(jù)現(xiàn)場軋機具體情況選用了基于ARM內(nèi)核的STM32芯片設(shè)計了厚度在線檢測系統(tǒng),且增加了以太網(wǎng)通信模塊實現(xiàn)了與主控站間的高速通信,使主控系統(tǒng)對板厚的實時監(jiān)控成為可能。同時提出一種改進的PID控制算法用于板厚自動控制策略中,最后討論了在佛山某鋁業(yè)公司1 450 mm冷軋機上的實際使用效果。
鋁箔厚度控制系統(tǒng)為閉環(huán)系統(tǒng),鋁箔經(jīng)過工作輥軋制后在出口處先經(jīng)過板形儀然后由安裝在板形儀之后的厚度探測器檢測帶材厚度,最后由收卷機將鋁箔卷起。板厚的測量采用非接觸式的X射線測厚儀,X射線穿透物質(zhì)時的衰減規(guī)律是X射線測厚理論基礎(chǔ)[2]。探測器X射線管發(fā)射出的X射線經(jīng)過鋁箔后,射線強度會被削弱,其射線強度I與鋁箔厚度d之間的關(guān)系可用式(1)表示:
式中:I0為X射線入射時的信號強度;μ為鋁箔對X射線的衰減系數(shù)。
故通過檢測透過鋁箔衰減后射入X射線檢測器的射線強度,即可計算出鋁箔的在線厚度。
檢測器可將X射線轉(zhuǎn)換成可見光至紫外線的波長范圍內(nèi)的信號,通過光電倍增管將微弱的光信號轉(zhuǎn)換為電壓信號[3]。測厚電路如圖1所示,在鋁箔厚度為1 mm時的電壓信號只有200 mV左右,而STM32微控制器的A/D采樣范圍為0~3.6 V,因此需要使用前置放大電路對輸入的電壓信號進行放大,使之與A/D的采樣范圍相匹配,以提高測量精度。這里選用高靈敏度、高輸入阻抗的放大器OP07,它由傳統(tǒng)的三運算放大器發(fā)展而成,具有體積小、功耗低、噪聲小等特點。信號先經(jīng)過由OP07放大器構(gòu)成的電壓跟隨器,考慮到其中會有一些空氣中的雜波信號,增加1個低通濾波電路濾掉雜波,保留有用信號。然后送到STM32微控制器的12位ADC輸入通道進行電壓采樣,采樣后的數(shù)據(jù)在微處理器內(nèi)部經(jīng)過處理和轉(zhuǎn)換得到被測鋁箔的厚度值。
圖1 厚度測量放大濾波電路
圖2 DM9161A網(wǎng)卡接口電路
由于主控部分由工控機完成,包括控制量的計算、參數(shù)設(shè)定和界面組態(tài),因此需將STM32中測量得到的鋁箔在線厚度值實時地傳送到工控機中,為滿足數(shù)據(jù)傳輸過程的可靠性和實時性要求,選擇基于TCP/IP協(xié)議的以太網(wǎng)通信。通信電路如圖2所示,STM32具體型號為STM32F107VCT6,它內(nèi)部集成了高性能以太網(wǎng)模塊,該模塊支持簡化的獨立于介質(zhì)的媒體接入接口(RMII),可連接到外部物理層(PHY)網(wǎng)絡(luò)接口芯片,這里選擇10 Mbit/s、100 Mbit/s自適應(yīng)以太網(wǎng)物理層的、低功耗、高集成度的收發(fā)芯片DM9161A。然后與網(wǎng)口HR911105A相連,該網(wǎng)口內(nèi)部集成有網(wǎng)絡(luò)變壓器,具備自動翻轉(zhuǎn)功能,可自動識別收發(fā)信號并自動去適應(yīng)。
冷軋機的板厚控制通過液壓裝置調(diào)整軋輥輥縫大小實現(xiàn),通過位置閉環(huán)進行控制[5]。由于被控對象特性比較復雜,如果參數(shù)調(diào)整不當,將會導致系統(tǒng)不停振蕩。故壓力閉環(huán)控制采用改進的PID調(diào)節(jié)算法,具體實現(xiàn)方法為預先設(shè)定3條控制規(guī)則,根據(jù)當前的厚度偏差Ten(k)及偏差的變化率ΔTen(k)的大小決定是否需要更改比例系數(shù)Kp、積分時間Ti及修改的方式。
常規(guī)PID控制器的算法為[6]:
式中:p(k)為第k次采樣時刻的輸出;Ten(k)為第k次采樣時刻的厚度偏差值;Ten(k-1)為第k-1次采樣時刻的厚度偏差值;Kp為比例系數(shù);Ti為積分時間;Td為微分時間;T為采樣周期。
現(xiàn)在設(shè)計3條控制規(guī)則:
(1)若|Ten(k)|<ε1,且|ΔTen(k)|< ε2,則 Kp(n)=Kp(n -1),Ti=Ti(n -1);
(2)若|Ten(k)|≥ε1,且|ΔTen(k)|≥ε2,則 Kp(n)= λ1[Kp(n-1)-1],Ti=λ2[Τi(n-1)+1];
(3)若|ΔTen(k)|<ε3,且 ΔTen(k)·ΔTen(k-1)≥0,則 Kp(n)=λ1[Kp(n-1)+1],Ti=λ2[Ti(n-1)-1]。
規(guī)則1表示如果偏差和偏差變化率都在允許范圍內(nèi),則保持原控制參數(shù)不變。規(guī)則2表示如果偏差和偏差變化率太大,則應(yīng)減少比例積分作用。規(guī)則3表示如果為單調(diào)過程,且偏差變化率太慢,則應(yīng)加強比例積分作用。其中ε1、ε2、ε3是經(jīng)驗指標,通過測試調(diào)整得到;λ1、λ2是加權(quán)因子,可在線修正。控制器原理圖如圖3所示。
圖3 改進PID控制原理圖
系統(tǒng)軟件用Visual C++6.0基于微軟基礎(chǔ)類庫(MFC)方式開發(fā),采用多線程技術(shù)編程,根據(jù)不同的任務(wù)將程序分為幾個不同的工作線程:
(1)界面工作線程。主要用來配置軋機系統(tǒng)工作參數(shù),主要包括鋁箔合金號、鋁箔入口厚度、鋁箔出口設(shè)定厚度、開卷張力、開卷速度、包角輥包角等重要參數(shù)。同時也作為人機交互的接口,通過自主編寫的ActiveX實時趨勢曲線控件來實時顯示鋁箔的在線厚度。
(2)鋁箔厚度自動控制工作線程。這是系統(tǒng)最核心的部分,按照上一節(jié)中提出的控制策略,運用改進后的PID控制算法來進行鋁箔軋制過程中在線板厚的閉環(huán)實時控制。
(3)以太網(wǎng)通信工作線程。此工作線程為以太網(wǎng)客戶端程序,采用基于TCP(面向連接)的Socket編程,Windows Sockets是Microsoft Windows的網(wǎng)絡(luò)程序設(shè)計接口,以動態(tài)鏈接庫的形式提供。
具體程序流程如下:
(1)通過調(diào)用 Windows庫函數(shù) socket(AF_INET,SOCK_STREAM,0)來創(chuàng)建套接字:sockClient。第1個參數(shù)指定地址族,對于TCP/IP協(xié)議的Socket,它只能是AF_INET(也可寫成PF_INET);因為程序采用的是基于TCP協(xié)議的網(wǎng)絡(luò)程序,所以第2個參數(shù)用SOCK_STREAM指定Socket類型為流式套接字;最后一個參數(shù)為0,則該socket函數(shù)會根據(jù)地址格式和Socket類型自動選擇合適的協(xié)議;
(2)向服務(wù)器端(STM32)發(fā)出連接請求。對于客戶端來說,它不需要綁定,可以直接連接服務(wù)器端。需先定義一個地址結(jié)構(gòu)體(SOCKADDR_IN)變量:addrServer,并對其成員變量賦值,填寫服務(wù)器端(STM32)的IP地址和端口,因為在STM32測厚系統(tǒng)中已將DM9161A網(wǎng)卡芯片IP地址設(shè)置為192.168.1.6,并綁定在23號端口上等待客戶的請求到達,所以這里addServer地址結(jié)構(gòu)體的IP地址和端口號分別為192.168.1.6和23,然后通過調(diào)用庫函數(shù) connect(sockClient,(SOCKADDR*)&addrServer,sizeof(SOCKADDR))與服務(wù)器端建立連接;
(3)與服務(wù)器端(STM32)進行通訊。當連接建立以后,就可以通過調(diào)用庫函數(shù) recv(sockClient,recvBuf,100,0)來接收服務(wù)器端(STM32)發(fā)送的鋁箔厚度數(shù)據(jù),其中recvBuf是1個指向緩沖區(qū)的指針,用來保存接收的數(shù)據(jù),100是緩沖區(qū)的長度;
(4)關(guān)閉Socket。當需要停止通信時只需調(diào)用closesocket(sockClient)即可關(guān)閉套接字,釋放為此套接字分配的資源。
鋁箔厚度的測量采用STM32F107VCT6內(nèi)部自帶的A/D轉(zhuǎn)換模塊,是1個12位的逐次逼近型模數(shù)轉(zhuǎn)換器,程序中的A/D轉(zhuǎn)換以連續(xù)模式執(zhí)行。ADC的結(jié)果可以左對齊或者右對齊的方式存儲在16位數(shù)據(jù)寄存器中。ADC的結(jié)果是12位二進制數(shù),最小轉(zhuǎn)換結(jié)果為0x0000,最大為0x0FFF,所以用1個16位的變量來保存測量結(jié)果。
STM32測厚系統(tǒng)與主控制器工業(yè)PC機基于TCP/IP協(xié)議的以太網(wǎng)通信中,STM32作為服務(wù)器端向(客戶端)工業(yè)PC機發(fā)送經(jīng)A/D轉(zhuǎn)換后的鋁箔厚度數(shù)據(jù)。在下位機端采用LwIP協(xié)議棧來實現(xiàn)。LwIP協(xié)議棧是一套用于嵌入式系統(tǒng)的開源輕量級TCP/IP協(xié)議,具有移植性強、資源占用率低的優(yōu)點[7],LwIP實現(xiàn)的重點在于保持TCP協(xié)議主要功能的基礎(chǔ)上減少對RAM的占用,一般它只需要幾百字節(jié)的RAM和40K左右的ROM就可以運行,這使得LwIP協(xié)議棧非常適合在相對低端的嵌入式系統(tǒng)中使用。程序中應(yīng)用程序的編寫采用基于回調(diào)函數(shù)編程的方式,此時只需移植內(nèi)核核心[8]。
主要工作包括:
(1)完成協(xié)議棧內(nèi)部使用的所有變量類型的定義,內(nèi)核使用自定義的數(shù)據(jù)類型,可以保證協(xié)議棧的平臺無關(guān)性;
(2)另外需根據(jù)編譯器特性定義結(jié)構(gòu)體封裝宏,禁止編譯器的地址自動對齊,這樣可避免數(shù)據(jù)字段在結(jié)構(gòu)體中的偏移量發(fā)生不可預知的改變;
(3)協(xié)議棧內(nèi)核參數(shù)的配置,完成幾個關(guān)鍵宏定義,由于未移植操作系統(tǒng)需將NO_SYS宏定義為1,另外有內(nèi)存堆大小及允許TCP協(xié)議使用的最大緩沖區(qū)長度的定義,分別定義為10 K和1 K字節(jié);
(4)最后是網(wǎng)卡驅(qū)動的編寫,LwIP源碼中ethernetif.c文件提供了1個框架形式,以偽代碼方式給出,只需根據(jù)DM9161A的網(wǎng)卡特性完善幾個函數(shù)即可。主要包括3個函數(shù),low_level_init為網(wǎng)卡初始化函數(shù)、完成網(wǎng)卡復位及MAC地址的設(shè)置等;low_level_output為網(wǎng)卡數(shù)據(jù)包發(fā)送函數(shù),將網(wǎng)卡發(fā)送緩沖區(qū)中的數(shù)據(jù)以pbuf包的格式發(fā)送到網(wǎng)絡(luò)回路中;low_level_input為網(wǎng)卡數(shù)據(jù)包接收函數(shù),將網(wǎng)卡接收緩沖區(qū)的數(shù)據(jù)讀取出來,并封裝為pbuf包格式遞交協(xié)議棧內(nèi)核處理。
LwIP移植好后就可在用戶程序部分寫以太網(wǎng)服務(wù)器端程序。首先調(diào)用內(nèi)核函數(shù)lwip_init初始化協(xié)議棧,并通過內(nèi)核函數(shù) netif_add 把網(wǎng)關(guān)地址192.168.1.1,服務(wù)器 IP 地址 192.168.1.6及子網(wǎng)掩碼 255.255.255.0 等參數(shù)注冊到網(wǎng)絡(luò)接口dm9161a_netif結(jié)構(gòu)體,并將該網(wǎng)絡(luò)接口添加到協(xié)議棧的網(wǎng)絡(luò)接口鏈表中,再通過netif_set_up函數(shù)使能網(wǎng)卡,這樣網(wǎng)卡就可以用了。然后就可以建立TCP服務(wù)器了,步驟如下:
(1)調(diào)用協(xié)議棧內(nèi)核函數(shù)tcp_new新建1個TCP控制塊;
(2)調(diào)用內(nèi)核函數(shù)tcp_bind給創(chuàng)建的TCP控制塊分配IP地址192.168.1.6和端口號23,即將此控制塊與 DM9161A 網(wǎng)卡的23號端口綁定;
(3)調(diào)用內(nèi)核函數(shù)tcp_listen使TCP控制塊處于數(shù)據(jù)監(jiān)聽狀態(tài);
(4)調(diào)用內(nèi)核函數(shù)tcp_accept指定有連接到達(即收到客戶端連接請求)的響應(yīng)函數(shù),在此響應(yīng)函數(shù)中可通過tcp_recv配置接收到網(wǎng)絡(luò)數(shù)據(jù)包的回調(diào)函數(shù)到LwIP協(xié)議棧。在STM32與PC機通信過程中,可以在此回調(diào)函數(shù)中不斷調(diào)用tcp_write將所測的鋁箔厚度值傳給PC機,然后由客戶端程序去處理數(shù)據(jù)。
下位機整個程序流程包括外設(shè)及系統(tǒng)時鐘初始化、配置系統(tǒng)滴答定時器、A/D轉(zhuǎn)換模塊初始化、STM32以太網(wǎng)模塊初始化、協(xié)議棧初始化、DM9161A網(wǎng)卡初始化并使能、建立TCP服務(wù)器、進入循環(huán)、采集并發(fā)送鋁箔厚度值。
板厚控制系統(tǒng)投入使用之后,在板厚控制上發(fā)揮出了較大的作用,圖4顯示了冷軋機在入口厚度為500 μm,出口厚度設(shè)定值為320 μm,鋁箔帶材寬度為995 mm時的控制效果。圖中縱坐標為相對厚差值,即厚度偏差與出口預設(shè)厚度的比值,用百分數(shù)表示;橫坐標為鋁箔寬度值,隨著軋制的進行,實時趨勢曲線從右往左不斷移動,曲線最右邊的1點即為當前時刻的相對厚差。從圖中可以看出,采用了這套厚度控制系統(tǒng)后,在入口厚度為500 μm、出口厚度為320 μm時,相對厚差基本都能控制在±2%以內(nèi),即絕對厚差范圍為±6.4 μm,達到了預期的鋁箔厚度控制目標,結(jié)果表明該系統(tǒng)和所提出的控制策略能夠滿足實際生產(chǎn)的需求。
圖4 鋁箔相對厚差實時趨勢曲線
通過有機結(jié)合傳感器與測試技術(shù)、計算機測控技術(shù)、單片機技術(shù)及模擬電子技術(shù)構(gòu)建了板厚控制系統(tǒng),并在改進的鋁箔厚度控制策略的基礎(chǔ)上,采用多線程技術(shù)編寫了系統(tǒng)控制軟件,PC機與下位機STM32采用客戶機/服務(wù)器模式的以太網(wǎng)通信,STM32服務(wù)器端利用LwIP協(xié)議棧實現(xiàn)網(wǎng)絡(luò)通訊。在佛山某鋁業(yè)公司的生產(chǎn)現(xiàn)場經(jīng)過一個多月的試運行,驗證了該系統(tǒng)不僅能達到預期的控制精度,而且以太網(wǎng)通信的應(yīng)用很好地保證了系統(tǒng)的實時性。目前系統(tǒng)已投入實際生產(chǎn),當出口厚度為0.15~0.35 mm時,鋁箔厚度絕對偏差在±8 μm內(nèi)的比例已達到98%以上。
[1]張磊,李謀渭,劉鴻飛.基于IoWorks的軟邏輯實時控制系統(tǒng).儀器儀表學報,2009,30(2):391 -395.
[2]徐衛(wèi)國.X射線測厚儀在雙機架可逆式冷軋機中的應(yīng)用.儀表技術(shù)與傳感器,2007(12):30-31.
[3]靳其兵,江晶.薄膜X射線測厚儀.儀表技術(shù)與傳感器,2007(5):18-19.
[4]王君,張殿華,李建平,等.中厚板軋機液壓輥縫控制系統(tǒng)研究及其PLC 實現(xiàn).東北大學學報(自然科學版),2001,22(4):435 -438.
[5]谷德昊.單機架四輥鋁帶冷軋機自動厚度控制系統(tǒng)的研究:[學位論文].沈陽:東北大學,2008.
[6]楊德剛,姜磊,賈文杰.數(shù)字PID與其算法改進的研析.中國科技信息,2010(14):102-104.
[7]徐鑫,曹奇英.基于LwIP協(xié)議棧的UDP協(xié)議分析與優(yōu)化.計算機應(yīng)用與軟件,2011,28(3):246 -249.
[8]張齊,勞熾元.輕量級協(xié)議棧LwIP的分析與改進.計算機工程與設(shè)計,2010,31(10):2169 -2171.