亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于安全通信的監(jiān)控組態(tài)軟件PLC數據驅動系統的實現

        2019-08-17 06:48:46王毅璇封成玉
        網絡安全與數據管理 2019年8期
        關鍵詞:系統

        王毅璇,封成玉,王 皓

        (華北計算機系統工程研究所,北京 100083)

        0 引言

        工業(yè)控制系統已廣泛應用于國家能源領域及民生領域,隨著信息技術和網絡技術的發(fā)展以及“工業(yè)4.0”的深入,工控系統網絡安全事件不斷發(fā)生,其安全問題已經影響到生產安全、工業(yè)穩(wěn)定以及國家的戰(zhàn)略安全[1-3]。作為工業(yè)控制系統監(jiān)控層級的上位機專用軟件,監(jiān)控組態(tài)軟件(Supervisory Control and Data Acquisition,SCADA)用于數據采集與過程控制[4],其可靠性和穩(wěn)定性對于工控系統安全至關重要。本文介紹的監(jiān)控組態(tài)軟件,用于國產基于可信計算[5]的密碼機制的PLC(增加了密碼模塊硬件,分配專屬公鑰和私鑰,支持冗余),采用跨平臺、分布式C/S架構設計,具備雙機雙網熱備冗余機制,可運行于國產計算機和Linux操作系統上,支持Windows操作系統,實現了開發(fā)及運行環(huán)境的雙國產化,安全可控。

        PLC數據驅動系統位于監(jiān)控組態(tài)軟件的底層,即網絡層,是上位機監(jiān)控組態(tài)軟件與PLC的通信接口,作為監(jiān)控組態(tài)軟件的內部數據源,要求安全可靠且常年不間斷連續(xù)運行,具有高度的穩(wěn)定性、擴展性和強大的數據采集能力。系統基于國產可信PLC和密碼設備,通過采用安全認證、建立安全通道及采用基于密碼機制的數據傳輸方法,實現了通信過程的強安全、高可信,符合內生安全的主動防御工控安全體系架構的設計思想。本文針對系統的實現,首先對系統進行功能分析,然后進行了系統總體設計,最后對系統與PLC通信的實現方式、方法進行較為詳細的闡述。

        1 系統功能分析

        PLC數據驅動系統主要實現上位機監(jiān)控組態(tài)軟件與PLC的數據交互,采用以太網有線的方式與PLC進行數據通信,通過PLC實現對現場設備的實時運行數據的采集,并按上層應用的組態(tài)邏輯,下發(fā)指令數據到PLC,以實現對設備運行的調節(jié)和控制。系統分為上傳、下行輸出兩個部分。上傳部分負責從PLC中采集加密的源數據,并進行數據解密和協議解析;下行輸出部分負責對上位機下發(fā)到PLC的數據進行協議封包、數據加密并輸出到PLC。

        系統從PLC中采集的數據分為四類:模擬量輸入(遙測,即AI)、數字量輸入(遙信,即DI)、模擬量輸出(遙調,即AO)和數字量輸出(遙控,即DO),同時支持多個PLC和批量數據的采集。成批采集的數據中包括實時值和時間戳。采用組態(tài)設定的周期向PLC請求數據,周期設定的范圍為50 ms~1 s。協議解析功能封裝為動態(tài)執(zhí)行庫,采用自定義協議,同時可支持Modbus協議、OPC協議等通信協議的解析。采用插件式設計思想,每種協議采用獨立的庫,靈活可擴展。經系統解析后的采集數據放置于內存的緩沖區(qū),并與上一周期的數據緩沖區(qū)中的數據進行比較,如有變化則將變更的數據集放入軟件共享內存的數據處理隊列中,由軟件數據處理分系統進行處理。

        監(jiān)控組態(tài)軟件將需要下發(fā)的遙調、遙控等控制指令數據放入軟件內存中的發(fā)送隊列,數據驅動系統從發(fā)送隊列中取出指令數據加密后將其發(fā)送到對應的PLC,由PLC進行解密處理,然后按PLC中下裝的控制邏輯實現對被控設備的調控。系統具備PLC狀態(tài)診斷功能,即周期檢測冗余PLC的主從狀態(tài),采集的數據和下發(fā)的指令數據僅針對主PLC。另外狀態(tài)診斷功能以周期發(fā)心跳的形式與軟件的任務管理進程通信,將當前進程的運行狀態(tài)發(fā)送給軟件任務管理系統,并監(jiān)控對應的PLC通信接口工作狀態(tài),在發(fā)生故障時發(fā)出報警,并將與PLC通信過程的調試記錄、通信速率、傳輸字節(jié)數等信息記錄在軟件日志文件中。

        2 系統總體設計

        PLC數據驅動系統利用基于可信算法的密碼機制與密碼設備實現與PLC通信的安全可信。在整個PLC控制系統的人員、上位機、下位機分別增加三種安全相關物理設備:人員密鑰、設備密鑰、嵌入式加密芯片,其中密鑰信息作為各自身份的唯一識別,即私鑰。通過權限管理軟件,配置系統內部的權限對應關系:不同操作人員的權限、上下位機之間的對應關系等,并生成到白名單文件中。系統拓撲結構如圖1所示。

        圖1 系統拓撲結構

        2.1 模塊設計

        系統主要包含三個子模塊:組態(tài)模塊、上位機密鑰服務模塊和通信主模塊。組態(tài)模塊用于PLC配置,為管理界面的動態(tài)鏈接庫,在軟件中是一個獨立的調用模塊,通過顯示的管理界面,可以對控制系統中的PLC進行配置和設定,為通信模塊提供必要的參數信息;上位機密鑰服務模塊作為獨立運行的進程,以庫的形式封裝基于可信計算方法的校驗、加解密等服務的接口,供通信模塊和組態(tài)模塊調用;通信主模塊在與PLC建立安全通道后,從歷史主站周期向PLC請求數據,接收PLC傳來的數據,并將下發(fā)的操作指令數據寫入目標PLC,實現與PLC通信相關的業(yè)務邏輯功能。

        2.2 功能設計

        監(jiān)控組態(tài)軟件與PLC通信流程如圖2所示。監(jiān)控組態(tài)軟件在通過安全性校驗并登錄后,根據白名單,將用戶密鑰和上位機密鑰進行相互身份鑒別的校驗,校驗通過后調用PLC數據驅動系統進程。進程運行后,根據IP地址取出PLC對應的密鑰標示值,與PLC做上下位機驗簽的安全校驗,校驗通過后給PLC下發(fā)登錄請求包,在登錄成功后建立與PLC通信的安全通道,開始收發(fā)數據包。下發(fā)數據包在進行數據加密后被發(fā)送到PLC。校驗運算及數據包加解密是通過調用上位機密鑰服務進程完成的,該進程封裝了基于可信計算的密鑰校驗算法,由軟件啟動。下位機PLC的安全密鑰服務程序被下裝到PLC中CPU單獨的核中獨立運行,完成驗簽、加解密功能,實現了運行與監(jiān)控相隔離。

        圖2 監(jiān)控組態(tài)軟件與PLC通信流程

        基于安全的冗余機制,系統中只有歷史主站可以與PLC主站通信,軟件下發(fā)的控制指令數據只能通過歷史主站下發(fā)到PLC主站,下發(fā)的數據由操作員站或者歷史站具有下發(fā)權限(同時具備與下發(fā)匹配的用戶權限和人員私鑰)的人員進行操作產生。上傳的數據首先由軟件歷史主站調用上位機密鑰服務模塊的解密接口返回源數據,然后將源數據轉換為熟數據后,通過軟件的站間數據通信系統進行內存實時數據的同步操作,實現數據在歷史主站、從站及操作員站間的同步。

        系統進程根據組態(tài)模塊對下位機PLC的配置設定情況及監(jiān)控組態(tài)軟件中變量定義模塊輸出的采集變量表,以不同的周期采集對應PLC的數據,數據驅動系統對上傳的數據進行解密和協議解析,根據相應PLC的采集變量表,找到數據值對應的監(jiān)控軟件中變量點的全局ID號,將下位機原始數據進行加工,轉換為軟件熟數據,放入軟件內存中的數據緩沖區(qū)。

        PLC數據驅動系統的工作模式分為主從兩種,與PLC進行通信在系統主模式下進行,采用TCP方式,系統通信模塊為客戶方,PLC為監(jiān)聽方。通信模塊采用線程的方式與多PLC進行連接,多PLC采用主從模式,僅每對PLC中的主站與系統通信模塊連接。系統根據每對PLC的運算周期,周期向PLC的主站發(fā)送數據請求,PLC的運算周期通過單獨的邏輯組態(tài)軟件進行配置,每個PLC的運算周期可配置成不同,單位為ms。PLC主站每50 ms檢查是否有新的數據請求,一旦收到請求,立即將本PLC的所有上傳數據封裝為數據包,調用下位機密鑰服務的加密接口進行數據加密后進行回發(fā)。一個回發(fā)數據包最大可以是10 KB,可上傳本PLC中的所有上傳數據,一旦發(fā)生一個包無法承載所有數據的情況,則PLC自動采用分包方式,將數據拆分后分批上傳給系統通信主模塊,每個分包發(fā)送間隔為10 ms。

        上位機如有操作指令需要下發(fā),無論是在操作員站還是歷史從站,下發(fā)指令數據包只會傳到歷史主站,由歷史主站調用上位機密鑰服務的加密接口進行數據加密后,再下發(fā)到對應的PLC。下發(fā)也采用請求方式,請求包中包含對應的內存地址和待寫入的數值。周期發(fā)送請求命令以接收PLC數據,采用事件的方式處理下發(fā)的數據,任務調度模式如圖3所示。

        圖3 任務調度模式

        3 PLC通信設計

        3.1 通信安全通道的建立

        PLC數據驅動系統在登錄成功后,進行通信前需要與PLC建立安全通道。系統建立安全通道的流程如圖4所示,主要步驟如下:

        (1)調用上位機密鑰服務進程PCUkeySrv的接口,進行初始化并建立與其的連接。

        (2)從PCUkeySrv進程獲取一個源隨機數。

        (3)調用運行在PLC嵌入式軟件中的下位機密鑰服務程序PLCUkeySrv的接口,進行初始化,建立與其的連接,并發(fā)送源隨機數。

        (4)從PLCUkeySrv進程獲取對隨機數進行加密后的返回數據。

        (5)將返回數據發(fā)送給上位機PCUkeySrv進程,通過調用設置會話密鑰及配置參數的接口,獲取返回參數。

        (6)將返回參數發(fā)送給下位機PLCUkeySrv進程,獲得原始數據,并調用設置會話密鑰的操作,計算出與上位機密鑰進程計算相一致的會話密鑰。系統通過比對返回數據和源隨機數,如一致,即可建立安全通道,進行下一步。

        (7)調用上位機密鑰服務進程PCUkeySrv的接口,對發(fā)送數據進行加密。

        圖4 建立安全通道流程

        (8)將加密后的發(fā)送數據發(fā)送給PLC,PLC調用下位機服務進程PLCUkeySrv對數據進行解密。

        (9)PLC將加密后的上傳數據發(fā)送給系統,系統調用上位機服務進程PCUkeySrv對數據進行解密。

        PLC數據驅動系統如果在任一步調用上位機密鑰服務接口時出現錯誤,則斷開連接。PLC如果在任一步調用下位機密鑰服務接口時出現錯誤,則發(fā)送錯誤碼。為保證通信的實時性,通信建立時,數據傳輸采用基于一次性密鑰(OTP)理念的流密碼的密碼機制,即每次通信而建立安全通道所產生的會話密鑰都是隨機產生的。

        會話秘鑰即雙方通信的密碼,由上位機的唯一識別號和下位機的唯一識別號根據固定的算法生成,即達到了每一條鏈路具有自己的通信密碼。PLC收到請求后,先檢查對方的IP是否在白名單中,然后讀取自身的加密芯片的設備號,再結合發(fā)送請求的設備號和密碼進行核對。若匹配則發(fā)送下裝應答,不匹配則返回拒絕應答。軟件需一次連接多個PLC,所以在軟件組態(tài)中配置的所有PLC都在白名單里設置匹配關系,否則在線連接時會遇到不匹配的問題。在上位機密碼設備與操作系統的適配工作完成后,將以上位機設備的私鑰作為各自唯一識別碼,并且在建立連接時先通過加隨機碼的“挑戰(zhàn)-響應”機制進行相互身份的鑒別。

        與PLC通信正常啟動后,系統主要工作過程有:讀取組態(tài)模塊生成的配置文件,獲取需要通信的PLC個數、IP地址及采樣周期;每個PLC采用一個獨立線程,登錄成功后,周期發(fā)送數據請求包,按同步通信方式處理,一問一答;事件響應軟件的下發(fā)數據請求,如果有輸出請求包,則插入內存中數據處理隊列優(yōu)先處理,下發(fā)前進行數據加密;診斷PLC的狀態(tài),并設置狀態(tài)點;數字量輸出量清零保護;系統將各種錯誤或故障信息寫入軟件日志文件中。

        3.2 數據上傳

        從PLC請求讀出的數據,在進行數據解密后,與緩沖區(qū)存儲的上一個周期的舊數據進行比較,若有變化,則調用無狀態(tài)數據包接口函數發(fā)送給軟件數據處理子進程進行后續(xù)處理。本機存儲的舊數據存放在模擬量輸入(AI)、數字量輸入(DI)、模擬量輸出(AO)、數字量輸出(DO)四個Map表的數據結構中,如圖5所示。

        圖5 本地數據存儲結構

        AI/DI點變化的判斷原則:AI點數據與前值比較,值占2 B,DI點與前值比較,值占用1 B。本驅動系統啟動時的主站,或者由從站切換為主站后,發(fā)送全部點位的數據包,若與一個PLC連接中斷,新建立連接以后,也發(fā)送數據包,否則僅發(fā)送變更數據集。

        對于有變化的模擬量點,需先進行高低字節(jié)交換,再進行量程轉換,轉換成浮點數后,調用打包函數發(fā)送給軟件數據處理系統進程。

        在進行量程轉換時,對量程極大或極小時進行溢出處理。對于有變化的數字量點,無需轉換,直接調用打包函數發(fā)送給軟件數據存儲進程。如診斷某個PLC故障,則此PLC的所有模擬量輸入和數字量輸入點設為壞點。從PLC周期請求的數據,系統為每個PLC分配AI、DI數據共享內存,并按組態(tài)的輸入ID號順序排列。

        3.3 通信方式與數據包格式

        通信主模塊與PLC的通信采用問答形式同步通信,如圖6所示。

        圖6 PLC通信方式

        通信數據包格式如表1所示,幀頭占24 B、CRC占4 B,數據區(qū)的長度可變。為提高性能,系統僅對數據區(qū)的數據進行加密,幀頭部分不進行加密。

        表1 請求/應答幀消息格式

        3.4 數據下發(fā)

        下發(fā)到PLC的模擬量和數字量數據,系統調用軟件中變量定義模塊的模擬量或數字量輸出函數傳送到歷史主站上,由歷史主站上的軟件站間通信程序將數據解包按協議封包后,由系統進行數據加密,送到對應PLC。

        輸出的模擬量需要先進行量程轉換,即將浮點轉換為2 B的short,再進行高低字節(jié)交換,然后將值進行加密后發(fā)送至PLC。PLC對下發(fā)的數據進行解密后實現控制邏輯。

        3.5 主從模式管理

        通信的主從模式與上位機歷史站的主從狀態(tài)保持一致,系統向軟件任務管理系統周期發(fā)送心跳。通信的主從模式的切換時間由軟件中狀態(tài)診斷子系統決定,通信模塊每秒讀取任務主從狀態(tài),根據變化決定處理方式按主站模式還是從站模式。

        3.6 PLC狀態(tài)管理

        通信主模塊判斷所有PLC的正常通信狀態(tài),如有變化則發(fā)送系統狀態(tài)包給軟件數據處理子系統進程。根據PLC對數據站周期請求數據的應答判斷PLC的狀態(tài),診斷PLC故障的時間通過讀取配置文件而獲得,通信主模塊在收到通信應答后將狀態(tài)包數據中的故障值修改為正常值。

        3.7 變更管理

        系統與PLC連接時,支持在線變更端口、IP、采樣周期。當組態(tài)發(fā)生變化時,在存盤后向通信主模塊發(fā)送消息,告知發(fā)生變化的情況,并將對應的PLC線程自動關閉重啟。

        3.8 數字量輸出保護

        為防止控制系統對設備運行的控制產生誤操作,實現PLC控制的安全性,對控制現場設備的遙控量,即對數字量輸出點進行保護。

        系統記錄下發(fā)的所有數字量點,下發(fā)的數字量點會定時清零,默認的清零時間可通過配置文件設定,系統通過讀配置文件獲取。按配置的時間將數字量量值置0發(fā)送給PLC,并記錄在日志文件中。

        系統每秒遍歷檢測所有的數字量輸出點,如果數值為1則清零,計數器加1,如果累計到了10則將0值重新打包,加密后發(fā)送給PLC,實現自動清零功能。如果在10 s內收到從軟件發(fā)送1或0數據的請求,或者PLC主從切換時,則該數字量輸出點的計數重新開始,即從零開始累計,到10 s后自動清零。

        4 結論

        本文主要介紹了基于國產可信PLC、支持跨平臺的上位機監(jiān)控軟件中與PLC通信的數據驅動系統的實現方法。對系統在Windows和國產Linux平臺上進行了長時段的運行驗證,結果表明,單PLC 1 s大約能處理8萬個模擬量,1 s內可處理20個響應包,響應時間滿足要求,且最多可支持64個PLC之間的并發(fā)處理。整個通信過程表現出較強的安全性、實時性和可靠性,滿足設計要求。

        猜你喜歡
        系統
        Smartflower POP 一體式光伏系統
        WJ-700無人機系統
        ZC系列無人機遙感系統
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統
        基于UG的發(fā)射箱自動化虛擬裝配系統開發(fā)
        半沸制皂系統(下)
        FAO系統特有功能分析及互聯互通探討
        連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        一德系統 德行天下
        PLC在多段調速系統中的應用
        国产黄色污一区二区三区| 内射少妇36p九色| 午夜性刺激免费视频| 视频精品亚洲一区二区| 精品国产中文字幕久久久| 久久99免费精品国产| 99精品国产在热久久无毒不卡| 94久久国产乱子伦精品免费| 亚洲午夜成人片| 麻豆av毛片在线观看| 亚洲国产精品无码aaa片| 国产va免费精品高清在线| 99久久国产亚洲综合精品| 蜜桃视频一区二区三区| 精品无码久久久久久久久水蜜桃| 纯爱无遮挡h肉动漫在线播放 | 亚洲av鲁丝一区二区三区黄| 国模私拍福利一区二区| 五月天亚洲av优女天堂| 国语对白福利在线观看| 亚洲爆乳精品无码一区二区| 国产熟女亚洲精品麻豆| 亚洲av色精品国产一区二区三区| 在线观看人成视频免费| 亚洲日韩精品欧美一区二区一 | 亚洲人成在线播放网站| 国产在线不卡一区二区三区| 亚洲成人av一区二区三区| 大陆少妇一区二区三区| 国产偷国产偷精品高清尤物| 免费观看国产精品| 日韩女同一区在线观看| 国产乱人伦av在线麻豆a| 青青久在线视频免费观看| 无码吃奶揉捏奶头高潮视频| 99久久精品一区二区国产| 少妇粉嫩小泬喷水视频www| 亚洲a∨天堂男人无码| 亚洲大胆美女人体一二三区| 十八禁视频网站在线观看| 伊人久久成人成综合网222|