劉少攀,黃慶學(xué),胡 鷹
(太原科技大學(xué),山西 太原 030024)
·專題綜述·
全液壓矯直機(jī)高速數(shù)據(jù)采集系統(tǒng)的研究與應(yīng)用
劉少攀,黃慶學(xué),胡 鷹
(太原科技大學(xué),山西 太原 030024)
由于第三代全液壓矯直機(jī)的數(shù)據(jù)采集與管理系統(tǒng)中存在有數(shù)據(jù)采集速率低與數(shù)據(jù)丟失等現(xiàn)象,因此不能夠精確地反應(yīng)矯直力的變化情況。在整個(gè)矯直過程要想實(shí)現(xiàn)對(duì)矯直力等高速變化的過程數(shù)據(jù)進(jìn)行采集分析必須對(duì)系統(tǒng)的數(shù)據(jù)采集技術(shù)進(jìn)行優(yōu)化。結(jié)合現(xiàn)有的矯直機(jī)控制系統(tǒng)提出了基于PLC功能模塊的高速數(shù)據(jù)采集方案,將采集的單個(gè)過程數(shù)據(jù)存儲(chǔ)到某一數(shù)據(jù)塊中,然后打包緩存到另一數(shù)據(jù)塊中統(tǒng)一發(fā)送到HMI,避免了單個(gè)數(shù)據(jù)傳送中丟失數(shù)據(jù)的現(xiàn)象,提高了數(shù)據(jù)采集速率。并對(duì)此方案的實(shí)施給出了具體的實(shí)現(xiàn)過程,運(yùn)行結(jié)果證明此方案是可行的。
全液壓矯直機(jī);功能模塊;高速數(shù)據(jù)采集;實(shí)現(xiàn)過程
矯直機(jī)是軋制生產(chǎn)過程中重要的精整設(shè)備,對(duì)矯后板材的平直程度具有十分重要的作用。而最具決定的因素就是矯直輥壓下量(即矯直力)的設(shè)定,矯直力信號(hào)是一個(gè)高速變化的數(shù)據(jù),必須對(duì)其進(jìn)行實(shí)時(shí)數(shù)據(jù)采集才能給出精確的壓下量。在矯直機(jī)數(shù)據(jù)采集管理系統(tǒng)中會(huì)遇到這樣一個(gè)問題,當(dāng)矯直高強(qiáng)度板材時(shí),由于板材咬入矯直機(jī)時(shí)矯直力比較大,矯直機(jī)會(huì)發(fā)生彈跳現(xiàn)象,就會(huì)造成實(shí)際矯直力與預(yù)報(bào)矯直力存在偏差[15]。要想確保良好的矯直效果就須對(duì)矯直力作AGC補(bǔ)償。如果設(shè)矯直速度1 m/s,整個(gè)矯直機(jī)工作輥距為1.6 m,那么板材咬入過程時(shí)間只有1.6 s,板材經(jīng)過工作輥的平均時(shí)間約為300 ms。而現(xiàn)有的西門子PLC采集數(shù)據(jù)速度為500 ms,這樣就會(huì)出現(xiàn)數(shù)據(jù)采集漏數(shù)現(xiàn)象,無法完整反映整個(gè)咬入過程中矯直力變化情況,也就不能準(zhǔn)確做出AGC壓下補(bǔ)償。所以必須對(duì)現(xiàn)有的數(shù)據(jù)采集技術(shù)進(jìn)行優(yōu)化以實(shí)現(xiàn)對(duì)高速變化的過程數(shù)據(jù)采集分析。結(jié)合現(xiàn)有矯直機(jī)控制系統(tǒng),本文在矯直過程中對(duì)過程數(shù)據(jù)的采集采用了一種基于PLC功能模塊的高速數(shù)據(jù)采集方案,避免了矯直過程中存在的數(shù)據(jù)采集速率低及數(shù)據(jù)丟失的現(xiàn)象,提高了板材的矯直速度,同時(shí)也提高了板材的矯直質(zhì)量[1] [2] [3]。
在矯直板材的過程中需要對(duì)高速變化的實(shí)時(shí)過程數(shù)據(jù)進(jìn)行采集分析使現(xiàn)場(chǎng)操作工人能及時(shí)了解矯直過程一些重要數(shù)據(jù)的變化;也可以把采集到的過程數(shù)據(jù)進(jìn)行EXCLE存儲(chǔ),為工藝模型的優(yōu)化及工藝參數(shù)的設(shè)定改進(jìn)提供大量的精確的現(xiàn)場(chǎng)數(shù)據(jù),以更好的滿足生產(chǎn)的需要。通過ipa PDA軟件實(shí)現(xiàn)對(duì)PLC過程數(shù)據(jù)采集,能夠?qū)崿F(xiàn)對(duì)高速變化的過程數(shù)據(jù)采集分析,這種數(shù)據(jù)采集方法在許多中板、高棒生產(chǎn)線上有廣泛的應(yīng)用。如果使用此軟件實(shí)現(xiàn)數(shù)據(jù)采集則需要購買特定的軟硬件,其代價(jià)比較昂貴。為了實(shí)現(xiàn)對(duì)高速變化的數(shù)據(jù)采集,本文設(shè)計(jì)了一種基于PLC功能模塊的高速數(shù)據(jù)采集方案,只需在PLC與Wincc上編寫很少的程序即可,相對(duì)比較經(jīng)濟(jì)簡(jiǎn)單。首先通過底層的各類傳感器把需要采集的信號(hào)送到PLC中,再通過PLC的S7信道將其傳送到監(jiān)控系統(tǒng)畫面中或進(jìn)行EXCEL存儲(chǔ)。
在之前的數(shù)據(jù)采集方案中,PLC把采集到過程值存放在指定的地址中,然后由WinCC訪問對(duì)應(yīng)的地址來獲得該值,并且是單個(gè)值的訪問。這樣數(shù)據(jù)采集速率就取決于WinCC的刷新周期,假設(shè)PLC端的數(shù)據(jù)采集速度50 ms,WinCC中歸檔周期為250 ms,這樣一來在PLC端采集五個(gè)過程數(shù)據(jù)WinCC才讀取到一個(gè)數(shù)據(jù),出現(xiàn)漏數(shù)現(xiàn)象[9]。數(shù)據(jù)采集的頻率就比較低,在進(jìn)行數(shù)據(jù)分析時(shí)不會(huì)達(dá)到預(yù)期的精確度,因此不能滿足高速數(shù)據(jù)采集的要求。
為了實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)數(shù)據(jù)的高速采集,選擇使用S7 PLC中自帶的特殊功能模塊BSEND的方式進(jìn)行數(shù)據(jù)采集。這種數(shù)據(jù)采集方案在已經(jīng)組態(tài)好的S7通信前提下就可以進(jìn)行,不用添加任何的硬件設(shè)備,只需在PLC中編寫必要的程序代碼即可,操作起來比較容易完成。但是當(dāng)WinCC與PLC進(jìn)行大量的過程數(shù)據(jù)傳輸時(shí),在WinCC中需要使用原始數(shù)據(jù)變量及PLC中需要使用大量的數(shù)據(jù)處理模塊(包括數(shù)據(jù)存儲(chǔ)塊,數(shù)據(jù)緩存塊等)。在S7 PLC端還要進(jìn)行程序代碼的編寫及網(wǎng)絡(luò)組態(tài)的設(shè)置,而在WinCC端需要根據(jù)PLC中網(wǎng)絡(luò)組態(tài)的不同的設(shè)置進(jìn)行具體的設(shè)置,以保證PLC與WinCC 能正確的通訊,這樣PLC才能把數(shù)據(jù)集中地發(fā)送給WinCC,能夠滿足PLC的數(shù)據(jù)刷新周期。高速數(shù)據(jù)采集過程的框圖如圖1所示。
圖1 數(shù)據(jù)采集過程框圖Fig.1 Block diagram of data collection process
在這個(gè)數(shù)據(jù)采集過程中主要是將PLC每個(gè)采集周期(實(shí)際生產(chǎn)中采用了50 ms的采集周期)采集到的所有過程值存放在DB13塊中,當(dāng)數(shù)據(jù)個(gè)數(shù)達(dá)到1600時(shí),PLC主動(dòng)調(diào)用功能塊BSEND/BRCV(SFB12/13)將數(shù)據(jù)發(fā)送給WinCC的原始數(shù)據(jù)變量,但WinCC無法直接使用這些字節(jié)數(shù)組變量,需要在接收到的字節(jié)數(shù)據(jù)型的變量后,編寫解碼腳本來處理原始數(shù)據(jù)變量中的數(shù)據(jù),然后再導(dǎo)入到EXCEL表格中。以下就是對(duì)某鋼廠中板生產(chǎn)線上矯直力,矯直速度等16個(gè)高速變化的過程數(shù)據(jù)采集的具體實(shí)施過程。
在SIMATIC Manager中打開S7項(xiàng)目,在硬件組態(tài)中選中CPU站點(diǎn)確定以太網(wǎng)的通信地址。由于不同的CPU通訊設(shè)置有所不同,但是只要在硬件組態(tài)中有PN-IO模塊,多數(shù)通訊設(shè)置都是在此模塊中進(jìn)行的。但有的S7站點(diǎn)的通訊設(shè)置是在CP模塊中進(jìn)行的,無論是采用哪種通訊方式只要具有以太網(wǎng)通訊功能,并且正確設(shè)置了以太網(wǎng)的通訊地址,都能實(shí)現(xiàn)本方案[10]。在本方案中采用的是PN-IO模塊,首先通過選擇此模塊的屬性將PN-IO模塊的IP地址設(shè)為:192.168.1.100,子網(wǎng)掩碼設(shè)為:255.255.255.0,并建立Ethernet(1)的子網(wǎng),編譯保存并下載該硬件組態(tài)。之后打開組態(tài)網(wǎng)絡(luò)看到Ethernet(1)的綠線連接,這表明連接已成功,選中CPU站點(diǎn)并右鍵選擇“插入新連接”,并選擇未指定的。點(diǎn)擊確定之后將本地ID設(shè)置為1,并把伙伴的IP地址設(shè)置為:192.168.1.102.這是與PLC通訊的WinCC的地址。設(shè)置完成后將此S7站下載到PLC中[4]。
打開與S7項(xiàng)目相應(yīng)的WinCC項(xiàng)目,WinCC的IP地址要與S7中的設(shè)置一樣(即設(shè)置為192.168.1.100).在WinCC項(xiàng)目的變量管理器的SIMATIC S7 PROTOCOL SUITE通道下,選中TCP/IP通道中的邏輯連接,并通過單擊右鍵打開連接屬性對(duì)話框并點(diǎn)擊屬性之后打開連接參數(shù)對(duì)話框(如圖2所示)。在此對(duì)話框中將IP地址設(shè)置為192.1698.1.100,這是S7的IP地址,對(duì)應(yīng)的機(jī)架號(hào)和插槽要與S7中的設(shè)置一樣,并在“發(fā)送/接收原始數(shù)據(jù)塊”選項(xiàng)之前打?qū)?,連接資源選擇也要與S7中的設(shè)置相同。接著就是添加原始數(shù)據(jù)變量,在對(duì)應(yīng)的邏輯連接中添加新變量Raw,將其數(shù)據(jù)類型定義為原始數(shù)據(jù)類型,設(shè)置地址屬性如下:勾選原始數(shù)據(jù),并設(shè)置R_ID,此R_ID這正是S7 PLC中的SFB12發(fā)送功能塊的R_ID參數(shù),在原始數(shù)據(jù)類型選項(xiàng)中選中“BEND/BRCV”[6] [8] [12]
圖2 WinCC通信設(shè)置圖Fig.2 WinCC communication set figure
為了能完成高速數(shù)據(jù)采集,首先需要在S7 PLC中定義幾個(gè)數(shù)據(jù)塊用于將采集到的過程數(shù)據(jù)打包,緩存并發(fā)送給WinCC.定義DB11為數(shù)據(jù)發(fā)送塊其大小為100×16×4,即將16個(gè)4字節(jié)的REAL型的實(shí)時(shí)數(shù)據(jù)存夠100次;定義DB13為數(shù)據(jù)接收塊用來存放采集到實(shí)時(shí)過程數(shù)據(jù),其大小為16×4個(gè)字節(jié),即將采集的現(xiàn)場(chǎng)數(shù)據(jù)先暫時(shí)存儲(chǔ)在此數(shù)據(jù)塊中,然后再將其轉(zhuǎn)存入數(shù)據(jù)緩存塊DB17中;定義DB17為數(shù)據(jù)緩存塊,其大小為100×16×4個(gè)字節(jié),主要用于在完成數(shù)據(jù)打包之后,將其整體復(fù)制到DB11中,然后繼續(xù)接受現(xiàn)場(chǎng)實(shí)時(shí)數(shù)據(jù)的存儲(chǔ),這樣就防止了數(shù)據(jù)丟失。接著就是在組織塊OB100中賦初值,使MW406=6400,即是要發(fā)送數(shù)據(jù)塊DB11的總的字節(jié)長(zhǎng)度:MW340是循環(huán)采集數(shù)據(jù)的次數(shù),取值100;即用來實(shí)現(xiàn)對(duì)16個(gè)變量采集100次,使MD480=0,是打包數(shù)據(jù)時(shí)用到的地址指針起始值,多數(shù)都設(shè)置為零,其流程圖如圖3所示[4] [5] [7]。
圖3 數(shù)據(jù)采集流程圖Fig.3 Flow diagram of data collection
最后就是編寫功能塊FC42,也是數(shù)據(jù)實(shí)現(xiàn)高速采集的關(guān)鍵PLC程序,它主要包括數(shù)據(jù)的接收,數(shù)據(jù)的打包,數(shù)據(jù)的轉(zhuǎn)存。這樣把完成數(shù)據(jù)采集的所有功能程序都編寫到一個(gè)功能塊中,需要時(shí)調(diào)用即可完成數(shù)據(jù)的存儲(chǔ)和打包以及發(fā)送給WinCC顯示和存儲(chǔ)。
(1)數(shù)據(jù)接收。將實(shí)際項(xiàng)目工程中要采集的實(shí)時(shí)過程數(shù)據(jù)變量放入數(shù)據(jù)接收塊DB13中。
(2)數(shù)據(jù)打包。將每個(gè)周期采集到的所有實(shí)時(shí)變量存到數(shù)據(jù)緩存塊DB17中進(jìn)行數(shù)據(jù)打包。
(3)數(shù)據(jù)轉(zhuǎn)存。當(dāng)達(dá)到設(shè)定的循環(huán)次數(shù)100后,將緩存塊DB17中的數(shù)據(jù)整塊發(fā)送到數(shù)據(jù)發(fā)送塊DB11中,同時(shí)將WinCC的寫入操作觸發(fā)置1,讓S7將整個(gè)數(shù)據(jù)塊發(fā)送到WinCC中。當(dāng)執(zhí)行完一次發(fā)送操作后,將數(shù)據(jù)打包循環(huán)指針MD480置0,將循環(huán)計(jì)數(shù)值MW340置100,為下一次發(fā)送數(shù)據(jù)塊做準(zhǔn)備
最后編寫數(shù)據(jù)采集-調(diào)用S7-400的數(shù)據(jù)塊發(fā)送功能SFB12的程序[14]。至此,S7-PLC中的組態(tài)及編程已全部完成,將所有的數(shù)據(jù)塊及功能塊編譯并下載到PLC中即可。
由于WinCC接收到的原始數(shù)據(jù)變量中存儲(chǔ)的是PLC打包過來的字節(jié)數(shù)組,要想對(duì)數(shù)據(jù)進(jìn)行處理分析就必須將其轉(zhuǎn)化成浮點(diǎn)數(shù)顯示到WinCC上或存儲(chǔ)到EXCEL中[13]。根據(jù)實(shí)際需要,在C腳本的全局動(dòng)作中要編寫讀取PLC的DB塊的程序并將其轉(zhuǎn)化成浮點(diǎn)數(shù),然后存儲(chǔ)到EXCEL中,其WinCC處理數(shù)據(jù)流程如圖4所示,部分C腳本為[6] [11]:
char szTime[50] = "";
//定義存放時(shí)間的數(shù)組
char FileName[20] = "";
//定義存放文件路徑的數(shù)組
SYSTEMTIME sysTime;
Object* pExcel = NULL;
//excel指針初始化
……
……
GetTagRaw("Raw",a,6400);
//開始讀取數(shù)據(jù),總的字節(jié)數(shù)
for (i=0;i<6400;i++)
{ReadData[i]=a[i]; //讀取數(shù)據(jù)結(jié)束
}
for(j=0;j<1600;j++) //轉(zhuǎn)換數(shù)據(jù),將字節(jié)數(shù)組轉(zhuǎn)換成浮點(diǎn)數(shù)
{
for(i=0;i<4;i++)
{
caijiarray[j].buffer[i] = ReadData[3-i+j*4];
}
pExcel=object_create("Excel.Application"); //打開excel功能
pExcel->Visible = 0;
pExcel->Workbooks->Open("E:sunsun.xls"); //路徑中的斜杠必須是雙斜杠for (i=1;i<=1600;i++)
{pExcel->Worksheets("sheet1")->Cells(i,1+k*2)->Value=szTime; //寫wincc的時(shí)間值到第一列
pExcel->Worksheets("sheet1")->Cells(i,2+k*2)->Value=caijiarray[i-1].REAL_DATA;//caijiarray[i-1].TEST_DATA; //寫wincc的變量實(shí)時(shí)值到第二列
}
……
……
pExcel->ActiveWorkbook-> Save;
pExcel->Workbooks->Close();
pExcel->Quit()。
圖4 數(shù)據(jù)處理流程Fig.4 Procedure of data processing
經(jīng)WinCC處理過的數(shù)據(jù)可以存儲(chǔ)到EXCEL表格中,也可以在線觀測(cè)數(shù)據(jù)的變化趨勢(shì)如圖5所示的輥縫值曲線圖,從圖中可以看到采集到的實(shí)際輥縫值基本接近輥縫設(shè)定值;圖6為大小腔壓力曲線圖,從圖中可以看到各腔的壓力有很小的變化趨勢(shì),基本上成一條直線。給定壓力主要用來減少實(shí)測(cè)輥縫值與預(yù)設(shè)定輥縫值的差值,使其差值在誤差允許的范圍內(nèi)。
圖5 輥縫曲線圖Fig.5 Roll-gap graph
圖6 大小腔壓力曲線圖Fig.6 Pressure-graph of large and small cavity
本文主要討論了高速數(shù)據(jù)采集的原理及實(shí)現(xiàn)方法,充分利用了S7 PLC數(shù)據(jù)采集的快速性能。該數(shù)據(jù)采集方案在全液壓矯直機(jī)上得到了很好的應(yīng)用,有效的解決了先前矯直機(jī)存在的數(shù)據(jù)采集速率低及漏數(shù)的問題。此數(shù)據(jù)采集方案在矯直機(jī)控制系統(tǒng)中一直運(yùn)行良好,證明了其可行性。
[1] 孫江濤.中厚板十一輥熱矯直機(jī)工藝模型數(shù)據(jù)采集與管理系統(tǒng)[D].太原:太原科技大學(xué),2014.
[2] 王效崗.十五輥組合矯直機(jī)關(guān)鍵技術(shù)及理論模型的研究[D].蘭州:蘭州理工大學(xué),2008.
[3] 崔甫.矯直原理與矯直機(jī)械(二版)[M].北京:冶金工業(yè)出版社,2002.
[4] 程偉晶.基于S7-400 PLC的高速數(shù)據(jù)采集系統(tǒng)[J].電氣應(yīng)用,2011,30(4):74-77.
[5] 劉悅音.基于S7-400 PLC及WinCC的的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2008,21(6):77-78.
[6] 西門子(中國)有限公司自動(dòng)化與驅(qū)動(dòng)集團(tuán).深入淺出西門子WinCC V6[M].北京:北京航空航天大學(xué)出版社,2005.
[7] 廖常初.S7-300/400 PLC應(yīng)用技術(shù)[M].北京:北京工業(yè)出版社,2005.
[8] SIMATIC System Software for S7-300/400Systemand[M]. Standard Functions.: 378-379.
[9] 姜麗波,張根寶. WinCC高速數(shù)據(jù)采集應(yīng)用[J]. 電氣傳動(dòng)自動(dòng)化,2006(2).
[10]韓斌.造紙?jiān)O(shè)備控制系統(tǒng)網(wǎng)絡(luò)化研究[D].濟(jì)南:山東輕工業(yè)學(xué)院,2011.
[11]左水利. WinCC V6.0 VBS 腳本在矯直機(jī)上位監(jiān)控系統(tǒng)中的應(yīng)用[J].冶金設(shè)備,2007(6).
[12]王實(shí),劉曉明.深入淺出西門子WinCC V6[M].北京:北京航空航天大學(xué)出版社,2004.
[13]孫志敏,方一鳴. WinCC與PLC采集數(shù)據(jù)間快速交換及顯示的研究及應(yīng)用[J].工業(yè)控制計(jì)算機(jī),2011.
[14]廖常初.PLC編程及應(yīng)用[M]. 北京:機(jī)械工業(yè)出版社,2005.
[15]王酒生.一種中厚板熱矯直機(jī)工藝的自動(dòng)化系統(tǒng)[J].重型機(jī)械,2008(4):21-23.
The research and application of high-speed data acquisition system for full-hydraulic straighter
LIU Shao-pan,HUANG Qing-xue, HU Ying
(Taiyuan University of Science and Technology,Taiyuan 030024,China)
3th full-hydraulic straighter data acquisition and management system has the low data collection and data lost errors, which could not accurately reflecting the condition of straightening force change. The data acquisition technology of system must be optimized to collect and analyze high-speed change data. A high-speed data acquisition system, based on PLC functional module according to the straighter controller system, was put forward in this article. The single process data was stored in some data block, then cached to other data block together and after the whole data block was sent to HMI, avoiding data lost in single data transfer andimproving data acquisition rate. The concrete implementation process was also provided in this article. The running result shows the program is feasible.
full hydraulic straighter;functional module;high-speed data acquisition;implementation process
2015-12-16;
2016-02-01
國家自然科學(xué)基金項(xiàng)目 51404159;山西省回國留學(xué)人員科研資助項(xiàng)目(2013-099)
劉少攀(1985-),男,太原科技大學(xué)碩士研究生。
TG333
A
1001-196X(2016)02-0001-05