摘 要:通過串口通訊的方式,研究一個(gè)封閉內(nèi)網(wǎng)與危險(xiǎn)外網(wǎng)連接的方法,利用現(xiàn)有條件實(shí)現(xiàn)了封閉內(nèi)網(wǎng)與外界通訊的需求,保證了封閉內(nèi)網(wǎng)計(jì)算機(jī)及網(wǎng)絡(luò)的安全。
關(guān)鍵詞:串口通訊;封閉內(nèi)網(wǎng);安全
DOI:10.16640/j.cnki.37-1222/t.2018.22.107
本鋼二冷軋廠酸軋生產(chǎn)線,生產(chǎn)操作使用的計(jì)算機(jī)及網(wǎng)絡(luò)稱為一級系統(tǒng),一級系統(tǒng)并沒有配備遠(yuǎn)程查看生產(chǎn)畫面、PLC程序等功能,計(jì)算機(jī)是win2000操作系統(tǒng),雖然滿足生產(chǎn)要求,但是整個(gè)系統(tǒng)非常脆弱,極易受到病毒感染,因此一級系統(tǒng)禁止插入U(xiǎn)SB存儲設(shè)備、禁止連接其他內(nèi)部網(wǎng)絡(luò),更是禁止連接外部網(wǎng)絡(luò)。在這樣一個(gè)全封閉的網(wǎng)絡(luò)下很難與外界聯(lián)系。
在夜晚和節(jié)假日期間設(shè)備發(fā)生故障時(shí),負(fù)責(zé)設(shè)備維護(hù)工作的點(diǎn)檢員要快速和盡可能多的掌握生產(chǎn)現(xiàn)場的相關(guān)信息,以利于故障響應(yīng)、排查和處理,而系統(tǒng)本身的脆弱和制度又決定了要放棄通過外網(wǎng)遠(yuǎn)程協(xié)助這樣直接的方式來。有沒有既能保證內(nèi)部系統(tǒng)安全,又能使封閉內(nèi)網(wǎng)與外界進(jìn)行聯(lián)系的方法呢?這就是本文將要描述的一種方式:以串口通訊實(shí)現(xiàn)封閉內(nèi)網(wǎng)與外界通訊的方法。
1 系統(tǒng)的構(gòu)成和安全的實(shí)現(xiàn)
系統(tǒng)由三個(gè)部分組成:服務(wù)端、中轉(zhuǎn)端和客戶端。服務(wù)端是指:運(yùn)行在封閉內(nèi)網(wǎng)某一臺計(jì)算機(jī)上的一個(gè)程序,用來采集數(shù)據(jù)并通過串口向中轉(zhuǎn)端發(fā)送。中轉(zhuǎn)端是指:運(yùn)行在可以聯(lián)網(wǎng)的計(jì)算機(jī)上的一個(gè)程序,用來將服務(wù)端發(fā)送的數(shù)據(jù)通過網(wǎng)絡(luò)轉(zhuǎn)發(fā)到客戶端,同時(shí)也可以將客戶端發(fā)送的指令轉(zhuǎn)發(fā)到服務(wù)端,由于我廠局域網(wǎng)限制,對外網(wǎng)訪問僅限于收發(fā)電子郵件,因此中轉(zhuǎn)端與客戶端的通信是通過電子郵箱中轉(zhuǎn)??蛻舳耸侵福涸谑謾C(jī)或者家用計(jì)算機(jī)中運(yùn)行的程序,用來查看數(shù)據(jù)或者發(fā)送指令,服務(wù)端和中轉(zhuǎn)端是要通過編程實(shí)現(xiàn),而客戶端僅需要下載安裝郵箱管理軟件即可。
由于封閉內(nèi)網(wǎng)與存在風(fēng)險(xiǎn)局域網(wǎng)的兩臺計(jì)算機(jī)是通過串口通訊,它們之間發(fā)送的僅僅是字符數(shù)據(jù),這就實(shí)現(xiàn)了兩個(gè)網(wǎng)絡(luò)物理上的隔離,從而保證了安全,同時(shí)也實(shí)現(xiàn)了數(shù)據(jù)的交換。
2 串口協(xié)議與編程環(huán)境
由于RS-232是計(jì)算機(jī)上普遍存在的串行接口,因此本系統(tǒng)采用的就是RS-232串口通訊,用一條串口數(shù)據(jù)線將服務(wù)端和中轉(zhuǎn)端的兩個(gè)計(jì)算機(jī)連接起來。在串口通訊之前要設(shè)置好相同的參數(shù),因?yàn)楸鞠到y(tǒng)全部用來傳送字符數(shù)據(jù),傳輸速度越快越好,受限于計(jì)算機(jī)硬件,本系統(tǒng)串口設(shè)置的波特率是115200bps,數(shù)據(jù)位是8位,奇偶校驗(yàn)無,停止位為1。本系統(tǒng)中的兩個(gè)程序都是運(yùn)行在Windows環(huán)境中,而基于Windows的開發(fā)工具也很多,比如VB、VC、Delphi等,因?yàn)镈elphi簡單、高效,同時(shí)其包含可視組件類庫VCL,方便程序的開發(fā),本系統(tǒng)采用的是Turbo Delphi。
3 串口通訊程序的編程實(shí)現(xiàn)
Delphi的優(yōu)勢在于其包含的眾多控件,使得用Delphi編制一個(gè)串口通訊和郵件收發(fā)的程序非常容易,這里串口通訊使用一個(gè)第三方控件,串口通訊用到的主要代碼如下:
ComPort1:=TComPort.Create(self);//創(chuàng)建一個(gè)ComPort1對象
ComPort1.Port:='COM1';//設(shè)定COM端口名稱
ComPort1.BaudRate:=br115200;//設(shè)置波特率
ComPort1.DataBits:=dbEight;//設(shè)置數(shù)據(jù)位
Comport1.StopBits:=cport.sbOneStopBit;//設(shè)置停止位
Comport1.Parity.Bits:=prNone;//設(shè)置奇偶校驗(yàn)
ComPort1.Open;//打開端口
//現(xiàn)在就可以向串口發(fā)送數(shù)據(jù)
ComPort1.WriteStr('數(shù)據(jù)');
//在ComPort1RxChar事件讀取字符數(shù)據(jù)
ComPort1.ReadStr(st,Count);
//在使用完端口后關(guān)閉端口
ComPort1.Close;
//程序退出時(shí)釋放資源
ComPort1.Free
服務(wù)端程序不停的讀取串口數(shù)據(jù)以及現(xiàn)場數(shù)據(jù),收到特定指令字符時(shí)或者現(xiàn)場數(shù)據(jù)滿足特定條件后,收集信息并向中轉(zhuǎn)端發(fā)送,中轉(zhuǎn)端接收到完整信息后將信息以一封電子郵件的方式發(fā)送到特定郵箱??蛻舳司褪且粋€(gè)郵件客戶端,在手機(jī)上就可以查看或發(fā)送指令。
4 應(yīng)用實(shí)例
兩種用法,一種是服務(wù)端監(jiān)測關(guān)鍵數(shù)據(jù),當(dāng)條件滿足時(shí)觸發(fā)主動發(fā)送數(shù)據(jù)。另一種是客戶端發(fā)送特定指令,服務(wù)端收到指令后收集并發(fā)送數(shù)據(jù)。例如:故障停機(jī)是我最關(guān)心的事件,因此我編制的程序?qū)④垯C(jī)停機(jī)作為觸發(fā)條件,當(dāng)服務(wù)端監(jiān)測到軋機(jī)停機(jī)超過10分鐘,就會將關(guān)鍵的數(shù)據(jù)轉(zhuǎn)發(fā)出來。當(dāng)我覺得有必要查看一下報(bào)警信息時(shí),我再發(fā)送一條含有特定指令的郵件,等待一分鐘左右,我在手機(jī)中就可以查看到最新的報(bào)警信息,以此做下一步分析。
5 結(jié)論
使用本文所描述的使用串口通訊的方式連接一個(gè)封閉內(nèi)網(wǎng)與危險(xiǎn)外網(wǎng)的方法,既滿足了封閉內(nèi)網(wǎng)與外界通訊的需求,又保證了內(nèi)網(wǎng)計(jì)算機(jī)及網(wǎng)絡(luò)的安全,同時(shí)這也是一個(gè)幾乎零成本的方法,可以用在很多特殊的地方。
參考文獻(xiàn):
[1]鄭彪,汪秉文.串口通信在工業(yè)控制中的應(yīng)用[J].自動化儀表,
2002,23(04):58-59.
[2]羅小平.Delphi精要[M].北京:電子工業(yè)出版社,2004.
[3]黃軍.Delphi串口通信編程[M].北京:人民郵電出版社,2001.
作者簡介:孫吉平(1983-),男,遼寧本溪人,本科,助理工程師,研究方向:自動化。