本發(fā)明涉及一種工業(yè)過(guò)程控制的快速數(shù)據(jù)存儲(chǔ)方法,可緩解計(jì)算機(jī)控制系統(tǒng)壓力,增加數(shù)據(jù)吞吐速度,屬于控制技術(shù)領(lǐng)域。
背景技術(shù):
隨著國(guó)家兩化融合(即信息化和工業(yè)化的高層次的深度結(jié)合)的發(fā)展,計(jì)算機(jī)過(guò)程控制的發(fā)展勢(shì)在必行,在工業(yè)過(guò)程控制中,生產(chǎn)控制數(shù)據(jù)和生產(chǎn)實(shí)績(jī)數(shù)據(jù)的控制和存儲(chǔ)管理尤為關(guān)鍵。目前鋼鐵行業(yè)的過(guò)程計(jì)算機(jī)控制系統(tǒng)都是選擇將數(shù)據(jù)存儲(chǔ)到實(shí)時(shí)數(shù)據(jù)庫(kù)中,在現(xiàn)代化快節(jié)奏的生產(chǎn)過(guò)程中,在數(shù)據(jù)交互量大、響應(yīng)速度要求很高的情況下,這種數(shù)據(jù)存儲(chǔ)方法會(huì)造成系統(tǒng)壓力增大、負(fù)荷增高、響應(yīng)速度減慢,嚴(yán)重時(shí)還會(huì)導(dǎo)致過(guò)程計(jì)算機(jī)控制程序的崩潰,影響工業(yè)生產(chǎn)的正常進(jìn)行,制約生產(chǎn)的穩(wěn)定。因此,有必要開(kāi)發(fā)一種更加安全、高效、合理的數(shù)據(jù)存儲(chǔ)方法,保證過(guò)程計(jì)算機(jī)系統(tǒng)應(yīng)用程序的正常運(yùn)行。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于針對(duì)現(xiàn)有技術(shù)之弊端,提供一種工業(yè)過(guò)程控制的快速數(shù)據(jù)存儲(chǔ)方法,以緩解計(jì)算機(jī)控制系統(tǒng)的壓力,增加數(shù)據(jù)的吞吐速度,確保工業(yè)生產(chǎn)的正常進(jìn)行。
本發(fā)明所述問(wèn)題是以下述技術(shù)方案實(shí)現(xiàn)的:
一種工業(yè)過(guò)程控制的快速數(shù)據(jù)存儲(chǔ)方法,所述方法根據(jù)交互量的大小和對(duì)響應(yīng)速度要求的高低將數(shù)據(jù)分為兩類(lèi),對(duì)于交互量大和響應(yīng)速度要求高的一類(lèi)數(shù)據(jù),通過(guò)建立對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu),開(kāi)辟對(duì)應(yīng)的內(nèi)存空間和建立共享內(nèi)存映射文件,在內(nèi)存區(qū)域和內(nèi)存映射文件中進(jìn)行即時(shí)操作;對(duì)于另一類(lèi)數(shù)據(jù),則直接即時(shí)寫(xiě)入數(shù)據(jù)庫(kù)中。
上述工業(yè)過(guò)程控制的快速數(shù)據(jù)存儲(chǔ)方法,所述方法包括以下步驟:
a.篩選數(shù)據(jù),開(kāi)辟內(nèi)存空間;
①將交互量和響應(yīng)速度要求超過(guò)設(shè)定的閾值的數(shù)據(jù)篩選出來(lái)歸為類(lèi)a,其它數(shù)據(jù)歸為類(lèi)b;
②建立與所篩選數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu);
③開(kāi)辟與所篩選數(shù)據(jù)對(duì)應(yīng)的內(nèi)存空間;
b.建立a類(lèi)數(shù)據(jù)的共享內(nèi)存映射文件;
①確定a類(lèi)數(shù)據(jù)中每塊的最大容量;
②建立a類(lèi)數(shù)據(jù)的共享內(nèi)存映射文件,每個(gè)文件的大小不小于對(duì)應(yīng)數(shù)據(jù)塊的最大容量;
c.將開(kāi)辟的內(nèi)存空間與共享內(nèi)存映射文件進(jìn)行映射關(guān)聯(lián);
①確定內(nèi)存空間中的各數(shù)據(jù)結(jié)構(gòu)類(lèi)型及大小;
②確定共享內(nèi)存映射文件已存在;
③內(nèi)存空間與共享內(nèi)存映射文件進(jìn)行映射關(guān)聯(lián);
d.選擇數(shù)據(jù)存儲(chǔ)方式和時(shí)機(jī),對(duì)兩類(lèi)數(shù)據(jù)進(jìn)行存儲(chǔ);
①確定數(shù)據(jù)類(lèi)型,即確定待存儲(chǔ)的數(shù)據(jù)是a類(lèi)數(shù)據(jù)還是b類(lèi)數(shù)據(jù);
②為a類(lèi)數(shù)據(jù)和b類(lèi)數(shù)據(jù)分別選擇存儲(chǔ)方式和時(shí)機(jī):a類(lèi)數(shù)據(jù)即時(shí)存儲(chǔ)在共享內(nèi)存和共享內(nèi)存映射文件中;b類(lèi)數(shù)據(jù)直接存儲(chǔ)到數(shù)據(jù)庫(kù)中。
上述工業(yè)過(guò)程控制的快速數(shù)據(jù)存儲(chǔ)方法,a類(lèi)數(shù)據(jù)存儲(chǔ)到共享內(nèi)存和共享內(nèi)存映射文件中后,計(jì)算機(jī)控制系統(tǒng)實(shí)時(shí)檢測(cè)自身的負(fù)荷狀態(tài),若系統(tǒng)處于非滿(mǎn)負(fù)荷狀態(tài),則將存儲(chǔ)的a類(lèi)數(shù)據(jù)轉(zhuǎn)存到數(shù)據(jù)庫(kù)中。
上述工業(yè)過(guò)程控制的快速數(shù)據(jù)存儲(chǔ)方法,篩選數(shù)據(jù)時(shí),數(shù)據(jù)的交互量和響應(yīng)速度要求的閾值由過(guò)程控制實(shí)績(jī)數(shù)據(jù)的存儲(chǔ)需要和過(guò)程控制系統(tǒng)中對(duì)于實(shí)時(shí)控制數(shù)據(jù)的使用要求確定,也可以根據(jù)工廠(chǎng)的工藝生產(chǎn)人員的要求進(jìn)行確定。
本發(fā)明將一些交互量大和響應(yīng)速度要求高的數(shù)據(jù)直接寫(xiě)入內(nèi)存空間和共享內(nèi)存映射文件中,待系統(tǒng)不繁忙時(shí),再將數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)。由于內(nèi)存響應(yīng)速度要遠(yuǎn)高于硬盤(pán)的i/o速度,這樣既能保證數(shù)據(jù)的響應(yīng)速度,又能緩解計(jì)算機(jī)控制系統(tǒng)的壓力,從而確保了工業(yè)生產(chǎn)的正常進(jìn)行。
附圖說(shuō)明
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳述。
圖1為本發(fā)明數(shù)據(jù)存儲(chǔ)方法的流程圖;
圖2為本發(fā)明數(shù)據(jù)存儲(chǔ)系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施方式
本發(fā)明提供了一種工業(yè)過(guò)程控制的快速數(shù)據(jù)存儲(chǔ)方法,該方法將各種控制數(shù)據(jù)進(jìn)行分類(lèi)和分時(shí)存儲(chǔ),對(duì)于交互量大和響應(yīng)速度要求高的數(shù)據(jù),在內(nèi)存區(qū)域和內(nèi)存映射文件中進(jìn)行即時(shí)操作,保證數(shù)據(jù)存儲(chǔ)的安全和高效,而對(duì)于其它數(shù)據(jù),直接即時(shí)將數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)中,這樣能很大程度上緩解系統(tǒng)的壓力,增加數(shù)據(jù)的吞吐速度。
本發(fā)明包含如下步驟:
①篩選數(shù)據(jù),開(kāi)辟內(nèi)存空間;
1.1將交互量大、響應(yīng)速度要求高的數(shù)據(jù)分為類(lèi)a,其它數(shù)據(jù)分為類(lèi)b;
1.2建立所篩選數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu);
1.3開(kāi)辟對(duì)應(yīng)的內(nèi)存空間;
②建立a類(lèi)數(shù)據(jù)共享內(nèi)存映射文件;
2.1確定a類(lèi)數(shù)據(jù)中每塊的最大容量;
2.2建立a類(lèi)數(shù)據(jù)的共享內(nèi)存映射文件,每個(gè)文件大小不小于對(duì)應(yīng)數(shù)據(jù)塊的最大容量;
③將開(kāi)辟的內(nèi)存空間與共享內(nèi)存映射文件進(jìn)行映射關(guān)聯(lián);
3.1確定內(nèi)存空間中的各數(shù)據(jù)結(jié)構(gòu)類(lèi)型及大??;
3.2確定共享內(nèi)存映射文件已存在;
3.3內(nèi)存空間與共享內(nèi)存映射文件進(jìn)行映射關(guān)聯(lián),保證數(shù)據(jù)的同步;
④選擇數(shù)據(jù)存儲(chǔ)方式和時(shí)機(jī);
4.1確定數(shù)據(jù)類(lèi)型(a\b);
4.2為a、b類(lèi)數(shù)據(jù)分別選擇存儲(chǔ)方式和時(shí)機(jī):a類(lèi)數(shù)據(jù)(選定此類(lèi)數(shù)據(jù)存儲(chǔ)方式為m1,時(shí)機(jī)為t1)即時(shí)存儲(chǔ)在共享內(nèi)存和共享內(nèi)存映射文件中,待系統(tǒng)不繁忙時(shí),再將數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)中;b類(lèi)數(shù)據(jù)(選定此類(lèi)數(shù)據(jù)存儲(chǔ)方式為m2,時(shí)機(jī)為t2)直接存儲(chǔ)到數(shù)據(jù)庫(kù)中。
圖1是本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)存儲(chǔ)方法流程圖。
如圖1所示,詳細(xì)的存儲(chǔ)步驟如下:
步驟101、計(jì)算機(jī)進(jìn)行過(guò)程控制開(kāi)始操作;
步驟102和步驟103、根據(jù)具體生產(chǎn)工藝要求,對(duì)于生產(chǎn)過(guò)程控制中的數(shù)據(jù)進(jìn)行分析判斷,確定數(shù)據(jù)類(lèi)型;
若是交互量大、響應(yīng)要求高的數(shù)據(jù)定為a類(lèi),進(jìn)入104步驟;否則,定為b類(lèi),進(jìn)入步驟115;
步驟104、進(jìn)入此步后,將數(shù)據(jù)存儲(chǔ)方式設(shè)定為m1,存儲(chǔ)時(shí)機(jī)設(shè)定為t1;根據(jù)設(shè)定好的類(lèi)型和時(shí)機(jī),進(jìn)入步驟105,在內(nèi)存中開(kāi)辟相應(yīng)內(nèi)存數(shù)據(jù)空間;進(jìn)入步驟106,確定此類(lèi)控制數(shù)據(jù)的最大緩存容量;進(jìn)入107步,對(duì)共享內(nèi)存映射文件大小進(jìn)行檢查確認(rèn),確認(rèn)通過(guò)后進(jìn)入步驟108,否則,需要返回步驟106,重新確定最大容量,重新進(jìn)行共享內(nèi)存映射文件大小的檢查;
步驟108、確認(rèn)共享內(nèi)存映射文件是否已經(jīng)存在,如果是第一次創(chuàng)建共享內(nèi)存,則會(huì)直接進(jìn)入步驟109,進(jìn)行創(chuàng)建;如果控制系統(tǒng)已經(jīng)運(yùn)行,則文件已經(jīng)創(chuàng)建,此步跳過(guò),直接進(jìn)入步驟110;
步驟110、建立內(nèi)存空間與共享內(nèi)存映射文件的映射關(guān)系,保持兩者數(shù)據(jù)的同步,這樣當(dāng)程序關(guān)閉后,將最近設(shè)定的狀態(tài)安全及時(shí)地保存在共享內(nèi)存映射文件中,便于再次恢復(fù);
步驟111、過(guò)程控制計(jì)算機(jī)應(yīng)用程序進(jìn)行數(shù)據(jù)存儲(chǔ)時(shí),進(jìn)入步驟112,首先將數(shù)據(jù)寫(xiě)入內(nèi)存空間和共享內(nèi)存映射文件中;然后進(jìn)入步驟113,如果系統(tǒng)沒(méi)有滿(mǎn)負(fù)荷(負(fù)荷狀態(tài)可以預(yù)先進(jìn)行設(shè)定),否則回到步驟112,進(jìn)行等待,直到系統(tǒng)負(fù)荷降下來(lái),進(jìn)入步驟117,將工藝所需要的各種數(shù)據(jù)保存到傳統(tǒng)數(shù)據(jù)庫(kù)表中;
步驟115、如果數(shù)據(jù)類(lèi)型被判定為b類(lèi),那么直接進(jìn)行數(shù)據(jù)保存,即進(jìn)入步驟116,建立對(duì)應(yīng)數(shù)據(jù)結(jié)構(gòu),連接數(shù)據(jù)庫(kù),將數(shù)據(jù)保存到傳統(tǒng)數(shù)據(jù)庫(kù)表中;
步驟118、數(shù)據(jù)存儲(chǔ)結(jié)束。
本發(fā)明提供的快速數(shù)據(jù)存儲(chǔ)方法,能夠很好地解決工業(yè)過(guò)程控制計(jì)算機(jī)系統(tǒng)對(duì)于交互量大、響應(yīng)速度要求高的數(shù)據(jù)的處理難題,利用本發(fā)明,可以有效避免數(shù)據(jù)卡死、丟失等現(xiàn)象,保證數(shù)據(jù)安全高效存儲(chǔ),降低過(guò)程控制計(jì)算機(jī)系統(tǒng)的壓力,進(jìn)而保證工業(yè)生產(chǎn)過(guò)程的安全穩(wěn)定。需要說(shuō)明的是,以上描述的具體實(shí)施例僅僅用于解釋本發(fā)明,并不用于限定本發(fā)明,本領(lǐng)域技術(shù)人員在不脫離本發(fā)明內(nèi)容的基礎(chǔ)上,還可以對(duì)實(shí)施例進(jìn)行各種改進(jìn)。因此,本發(fā)明的保護(hù)范圍應(yīng)當(dāng)由權(quán)利要求書(shū)的內(nèi)容確定。