本發明涉及軋鋼加熱爐領域,尤其涉及一種采集加熱爐DCS數據的方法及系統。
背景技術:
加熱爐大量用于軋鋼生產線中,是鋼材生產整個流程中不可或缺的工藝之一。
加熱爐生產過程中,大量的儀表數據需要記錄。包括溫度數據和介質消耗數據。當前記錄這些數據的方式主要如下:
方式一:操作工手工記錄。操作工定期記錄溫度數據以及介質消耗數據。
方式二:上級系統采用OPC-DA與加熱爐DCS通訊,采集數據。
上述加熱爐數據采集方式有如下缺點:
方式一會大大增加操作工負擔,且記錄頻率不能太高,無法用于數據分析,基本已經被淘汰。
方式二是當前主流的通訊方式,但是OPC是基于微軟的OLE(現在的Active X)、COM(部件對象模型)和DCOM(分布式部件對象模型)技術,要運行在Windows平臺上。且一般來說OPC服務器比較昂貴。
技術實現要素:
本發明要解決的技術問題在于針對現有技術中的缺陷,提供一種采集加熱爐DCS數據的方法及系統。
本發明解決其技術問題所采用的技術方案是:一種采集加熱爐DCS數據的方法,包括以下步驟:
1)讀取采集點配置信息。
讀取采集點配置信息,其包括多個采集點的配置信息,其中每個采集點配置信息的配置項包括:采集點編號(必須唯一)、采集點地址、采集點數據類型、采集點說明以及是否啟用讀取;
2)設定每批采集點的數量N,將所有采集點分為一批或者多批,拼接一組或者多組命令字符串對分批后的采集點進行采集,
上述拼接命令字符串的方式如下:
一組字符串的樣式是:
G<seq>△<parameter>[CR][LF]
其中,
G:表示發送申請命令;
<seq>:是一個兩位長度的字符串,表示順序號,從00-99循環,每次拼接字符串必須和上一次不同;
[CR][LF]:是回車換號符,表示終結符;
△:是空格;
<parameter>:是命令參數;
其中命令參數的格式如下:
FG△<num>△<tag1>△<tag2>…△<tagn>
FG:兩個字符,固定,表示數據采集;
<num>:數字,表示數據點個數;
<tag1>~<tagn>:表示數據點地址;
3)命令字符串發送與接收,
建立Socket連接,通過TCP連接的Client端口連接DCS的指定端口;
連接建立后,將上述一組或者多組命令字符串分別發送給TCP的Server端;每發送一組字符串就在原建立的連接等待回復,待收到回復后再發送下一個字符串;將所有的命令字符串發送完成,會收到一組或者多組回復字符串;
關閉Socket連接。
4)解析收到的回復字符串,
解析收到的回復字符串,每組字符串的解析規則如下:
截取第2位到第3位,解析為整形數字,其含義是順序號;
從第8位開始,順序找到第一個空格,截取第8位到此空格前一位,解析為整形數字,其含義是采集點個數;
根據采集點的個數,從空格之后的第一位開始取20個長度的字符串,然后空一位,接著再取20個長度的字符串,直至取得采集點個數的字符串;
這20個長度字符串解析方式如下:
若前三位取值為INT時,后16位去除首尾空格后解析為整形數字;
若前三位取值為FLT時,后16位去除首尾空格后解析為單精度浮點型數字;
5)保存采集數據
對第4)步解析的數據與第2)步命令字符串按順序號進行映射,可得到一組數據,包括采集點編號,采集點數據類型,數據值;將它們保存到數據供其他應用程序使用。數據庫中可以額外加入時間,數據說明等字段。
按上述方案,所述步驟2)中如果拼接的命令字符傳長度大于或等于684字符,則N自減1,再次讀取配置與拼接,直至拼接的命令字符傳長度小于684字符。
一種采集加熱爐DCS數據的系統,包括:
1)采集點配置信息讀取模塊,用于讀取采集點配置信息,包括多個采集點的配置信息;其中每個采集點配置信息的配置項包括:采集點編號(必須唯一)、采集點地址、采集點數據類型、采集點說明以及是否啟用讀取;
2)命令字符串拼接模塊,用于將所有采集點分為一批或者多批,拼接一組或者多組命令字符串對分批后的采集點進行采集,其中每批采集點的數量為N;
上述拼接的命令字符串的格式如下:
一組字符串的樣式是:
G<seq>△<parameter>[CR][LF]
其中,
G:表示發送申請命令;
<seq>:是一個兩位長度的字符串,表示順序號,從00-99循環,每次拼接字符串必須和上一次不同;
[CR][LF]:是回車換號符,表示終結符;
△:是空格;
<parameter>:是命令參數;
其中命令參數的格式如下:
FG△<num>△<tag1>△<tag2>…△<tagn>
FG:兩個字符,固定,表示數據采集;
<num>:數字,表示數據點個數;
<tag1>~<tagn>:表示數據點地址;
3)通訊模塊,用于命令字符串發送與回復字符串接收;
具體方法如下:
建立Socket連接,通過TCP連接的Client端口連接DCS的指定端口;
連接建立后,將上述一組或者多組命令字符串分別發送給TCP的Server端;每發送一組字符串就在原建立的連接等待回復,待收到回復后再發送下一個字符串;將所有的命令字符串發送完成,會收到一組或者多組回復字符串;
關閉Socket連接;
4)解析模塊,用于解析收到的回復字符串;
解析收到的回復字符串,每組字符串的解析規則如下:
截取第2位到第3位,解析為整形數字,其含義是順序號;
從第8位開始,順序找到第一個空格,截取第8位到此空格前一位,解析為整形數字,其含義是采集點個數;
根據采集點的個數,從空格之后的第一位開始取20個長度的字符串,然后空一位,接著再取20個長度的字符串,直至取得采集點個數的字符串;
這20個長度字符串解析方式如下:
若前三位取值為INT時,后16位去除首尾空格后解析為整形數字;
若前三位取值為FLT時,后16位去除首尾空格后解析為單精度浮點型數字;
5)保存模塊,用于保存采集數據;
對解析模塊解析的數據與命令字符串拼接模塊中的命令字符串按順序號進行映射按順序進行映射,可得到一組數據,包括采集點編號,采集點數據類型,數據值;將它們保存到數據供其他應用程序使用。數據庫中可以額外加入時間,數據說明等字段。
按上述方案,所述命令字符串拼接模塊中如果拼接的命令字符傳長度大于或等于684字符,則N自減1,再次讀取配置與拼接,直至拼接的命令字符傳長度小于684字符。
本發明產生的有益效果是:本發明通過配置,全自動化采集所需要的數據,采集頻率高。基于此方法的系統可用運行在Windows和各類Linux平臺。且此方法簡便易行、適用性高、可靠性高,能夠用于加熱爐數據采集。
附圖說明
下面將結合附圖及實施例對本發明作進一步說明,附圖中:
圖1是本發明實施例的方法流程圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,并不用于限定本發明。
如圖1所示,一種采集加熱爐DCS數據的方法及系統,其所述的步驟包括如下:
第一步,讀取采集點配置信息。
系統讀取采集點配置信息,其包括多個采集點的配置,其中每個采集點的配置項包括:
采集點編號(必須唯一)
采集點地址
采集點數據類型
采集點說明
是否啟用讀取
配置信息來源于文件,或者數據庫,或者其他方式。
第二步,拼接命令字符串
由于DCS系統的限制,對所有采集點分為一批或者多批進行采集,為此需要拼接一組或者多組命令字符串。
拼接一組命令字符串的方式如下:
設定一批采集點數量N=20
從配置信息中按順序取出N條狀態為啟用讀取的采集點配置,不足N條則按照剩余實際條數取。
此時對取出的采集點數據進行拼接命令字符串。
如果命令字符傳長度大于或等于684字符,則N自減1,再次讀取配置與拼接。將會得道一個命令字符串。
上述拼接命令字符串的方式如下:
字符串的樣式是:
G<seq>△<parameter>[CR][LF]
上述字符串樣式中:
G:表示發送申請命令。
<seq>:是一個兩位長度的字符串,表示順序號,從00-99循環,每次拼接字符串必須和上一次不同。
[CR][LF]:是回車換號符,表示終結符。
△:是空格
<parameter>:是命令參數。
其中命令參數的格式如下:
FG△<num>△<tag1>△<tag2>…△<tagn>
FG:兩個字符,固定,表示數據采集。
<num>:數字,表示數據點個數。
<tag1>~<tagn>:表示數據點地址。
上述過程循環,將會得到一組或者多組命令字符串。
此時,建立一個列表,列表中項目為被拼接到字符串中的采集點編號,并且按照先后順序排序。
第三步,數據通訊
建立Socket連接,系統作為TCP連接的Client端口,連接DCS的指定端口。
連接建立后,將上述一組或者多組命令字符串分別發送給TCP的Server端。每發送一組字符串就在原建立的連接等待回復。待收到回復后再發送下一個字符串。將所有的命令字符串發送完成,會收到一組或者多組回復字符串。
關閉Socket連接。
第四步,解析字符串
針對收到的回復字符串,每組字符串的解析規則如下:
截取第2位到第3位,解析為整形數字,其含義是順序號。
從第8位開始,順序找到第一個空格,截取第8位到此空格前一位,解析為整形數字,其含義是采集點個數。
根據采集點的個數,從空格之后的第一位開始取20個長度,然后空一位,接著再取20個長度,
這20個長度字符串解析方式如下:
前三位取值為INT時,后16位去除首尾空格后解析為整形數字。
前三位取值為FLT時,后16位去除首尾空格后解析為單精度浮點型數字。
第五步,保存
第四步解析的數據與第二步命令字符串按順序號進行映射,可得到一組數據,包括采集點編號,采集點數據類型,數據值。此時將它們保存到數據供其他應用程序使用。數據庫中可以額外加入時間,數據說明等字段。
根據上述方法,我們可以編程得到一種采集加熱爐DCS數據的系統,包括:
1)采集點配置信息讀取模塊,用于讀取采集點配置信息,包括多個采集點的配置信息;其中每個采集點配置信息的配置項包括:采集點編號(必須唯一)、采集點地址、采集點數據類型、采集點說明以及是否啟用讀取;
2)命令字符串拼接模塊,用于將所有采集點分為一批或者多批,拼接一組或者多組命令字符串對分批后的采集點進行采集,其中每批采集點的數量為N;
上述拼接的命令字符串的格式如下:
一組字符串的樣式是:
G<seq>△<parameter>[CR][LF]
其中,
G:表示發送申請命令;
<seq>:是一個兩位長度的字符串,表示順序號,從00-99循環,每次拼接字符串必須和上一次不同;
[CR][LF]:是回車換號符,表示終結符;
△:是空格;
<parameter>:是命令參數;
其中命令參數的格式如下:
FG△<num>△<tag1>△<tag2>…△<tagn>
FG:兩個字符,固定,表示數據采集;
<num>:數字,表示數據點個數;
<tag1>~<tagn>:表示數據點地址;
3)通訊模塊,用于命令字符串發送與回復字符串接收;
具體方法如下:
建立Socket連接,通過TCP連接的Client端口連接DCS的指定端口;
連接建立后,將上述一組或者多組命令字符串分別發送給TCP的Server端;每發送一組字符串就在原建立的連接等待回復,待收到回復后再發送下一個字符串;將所有的命令字符串發送完成,會收到一組或者多組回復字符串;
關閉Socket連接;
4)解析模塊,用于解析收到的回復字符串;
解析收到的回復字符串,每組字符串的解析規則如下:
截取第2位到第3位,解析為整形數字,其含義是順序號;
從第8位開始,順序找到第一個空格,截取第8位到此空格前一位,解析為整形數字,其含義是采集點個數;
根據采集點的個數,從空格之后的第一位開始取20個長度的字符串,然后空一位,接著再取20個長度的字符串,直至取得采集點個數的字符串;
這20個長度字符串解析方式如下:
若前三位取值為INT時,后16位去除首尾空格后解析為整形數字;
若前三位取值為FLT時,后16位去除首尾空格后解析為單精度浮點型數字;
5)保存模塊,用于保存采集數據;
對解析模塊解析的數據與命令字符串拼接模塊中的命令字符串按順序號進行映射按順序進行映射,可得到一組數據,包括采集點編號,采集點數據類型,數據值;將它們保存到數據供其他應用程序使用。數據庫中可以額外加入時間,數據說明等字段。
上述方法與系統的一個應用實例:
在中國某廠加熱爐數據采集系統中,配置文件采用CSV文件,內容如下(中間有省略):
1,TI_1F101.PV,System.Single,PH段爐溫1區爐溫,1
2,TI_1F102.PV,System.Single,PH段爐溫2區爐溫,1
3,TIC1F111.PV,System.Single,NOF段1區爐溫,1
…
87,FI_1S001.SUM,System.Single,能源介質蒸汽總管蒸汽累計量,1
88,FI_1A001.SUM,System.Single,能源介質壓縮空氣總管空氣累計量,1
第1列為序號,第2列為采集點,第3列為數據類型,第4列為數據說明,第5列為是否讀取(其中1表示讀取,0表示不讀取)
讀取之后,得到88組數據,其中88組數據啟用讀取。
第二步:拼接命令字符串
取前20組數據,按照如下規則拼接字符串:
G<seq>△<parameter>[CR][LF]
上述字符串樣式中:
<seq>:表示順序號,從00-99循環,每次拼接字符串必須和上一次不同。
[CR][LF]:是回車換號符,表示終結符。
△:是空格
<parameter>:是命令參數。
其中命令參數的格式如下:
FG△<num>△<tag1>△<tag2>…△<tagn>
FG:兩個字符,固定,表示數據采集。
<num>:數字,表示數據點個數。
<tag1>~<tagn>:表示數據點地址。
拼接后字符串效果如下:
檢測字符串長度,此時小于684,此組字符串拼接完成。
檢測下一組,直到拼接完成。
第三步:通訊
建立連接,作為TCP連接的Client端口,連接DCS的指定端口。
將上述一組字符串分別發送給TCP的Server端。每發送一個字符串就在原建立的連接等待回復。待收到回復后再發送下一個字符串。將所有的命令字符串發送完成,會收到一組回復字符串。
第四步:解析
收到的其中一組樣例如下:
取第2位到第3位,表示順序號是35。
從第8位開始,順序找到第一個空格,在第10位。取第8位到空格所在位置的前一位(第9位),表示采集點個數是20。
根據采集點的個數,從空格之后的第一位開始取20個長度,字符串為FLT 652.036,
按照如下規則解析:
前三位取值為INT時,后16位去除首位空格后解析為整形數字。
前三位取值為FLT時,后16位去除首位空格后解析為單精度浮點型數字。
可以此時是單精度浮點型數字,值是652.036。
空格后繼續取值解析。
第五部:存表
收到的值根據序號對應可得:
1,FLT,652.036,16-06-20 08:10:56:632
2,FLT,764.247,16-06-20 08:10:56:632
…
88,FLT,2757593.91,16-06-20 08:11:32
存入數據庫。
應當理解的是,對本領域普通技術人員來說,可以根據上述說明加以改進或變換,而所有這些改進和變換都應屬于本發明所附權利要求的保護范圍。