本發(fā)明涉及一種模擬plc的實(shí)現(xiàn)方法,屬于自動(dòng)控制技術(shù)領(lǐng)域。
背景技術(shù):
plc(programmablelogiccontroller)即可編程邏輯控制器,是一種采用一類(lèi)可編程的存儲(chǔ)器,用于其內(nèi)部存儲(chǔ)程序,執(zhí)行邏輯運(yùn)算、順序控制、定時(shí)、計(jì)數(shù)與算術(shù)操作的面向用戶(hù)的指令,并通過(guò)數(shù)字或模擬式輸入/輸出控制各種類(lèi)型的機(jī)械或生產(chǎn)過(guò)程。模擬plc技術(shù)伴隨計(jì)算機(jī)應(yīng)用技術(shù)的發(fā)展而來(lái),是對(duì)工業(yè)生產(chǎn)系統(tǒng)進(jìn)行分析、診斷和優(yōu)化的有力工具之一。在工業(yè)控制系統(tǒng)領(lǐng)域,由于工業(yè)生產(chǎn)向著高速、大型化及自動(dòng)化方向發(fā)展,大量重大生產(chǎn)設(shè)備或過(guò)程控制設(shè)備的應(yīng)用,成本日益增高,模擬plc技術(shù)可以有效降低開(kāi)發(fā)測(cè)試成本。在安全領(lǐng)域,模擬plc技術(shù)可以誘導(dǎo)攻擊者進(jìn)行攻擊,從而分析攻擊者的攻擊方法和行為。
公開(kāi)號(hào)為cn205301993u的專(zhuān)利申請(qǐng)公開(kāi)了一種可編程邏輯控制器模塊檢測(cè)平臺(tái)。該檢測(cè)平臺(tái)包括第一測(cè)試底板以及與其連接的測(cè)控設(shè)備,第一測(cè)試底板設(shè)有測(cè)試處理器模塊以及多組第一模塊測(cè)試接口,所述第一模塊測(cè)試接口連接待測(cè)試的第一plc模塊。本實(shí)施例的可編程邏輯控制器模塊檢測(cè)平臺(tái)結(jié)合相關(guān)測(cè)試軟件,可以模擬plc工作的環(huán)境檢測(cè)多種plc模塊的性能,并可以同時(shí)檢測(cè)多個(gè)plc模塊.
公開(kāi)號(hào)為cn103645672a的專(zhuān)利申請(qǐng)公開(kāi)了一種plc固件完整性驗(yàn)證裝置及驗(yàn)證方法,所述裝置包括基線建立單元、pc模擬plc截獲單元和驗(yàn)證單元,所述基線建立單元,用于截獲安全固件數(shù)據(jù),并基于md5哈希算法建立32位基線;pc模擬plc截獲單元,用于通過(guò)個(gè)人計(jì)算機(jī)向用于模擬plc的pc傳輸未知安全固件,并對(duì)未知安全固件進(jìn)行截獲,通過(guò)md5哈希算法計(jì)算出32位的固件摘要;驗(yàn)證單元,用于將所述基線與所述固件摘要進(jìn)行比較驗(yàn)證。本發(fā)明用在未知安全固件裝載到plc之前對(duì)其進(jìn)行完整性驗(yàn)證,保證導(dǎo)入plc的固件是完整的。防止不法分子或者同類(lèi)競(jìng)爭(zhēng)對(duì)手對(duì)固件的惡意破壞。
公開(kāi)號(hào)為cn203164674u的專(zhuān)利申請(qǐng)公開(kāi)了一種基于plc運(yùn)動(dòng)控制系統(tǒng)的開(kāi)發(fā)模擬平臺(tái),包括plc控制器、觸摸屏、增量式電機(jī)編碼器、若干個(gè)按鈕開(kāi)關(guān)、若干個(gè)中間繼電器、三個(gè)交流伺服電機(jī)驅(qū)動(dòng)器,觸摸屏通過(guò)串口通信電纜與plc控制器相連接,增量式電機(jī)編碼器、若干個(gè)按鈕開(kāi)關(guān)、若干個(gè)中間繼電器、三個(gè)交流伺服電機(jī)驅(qū)動(dòng)器分別通過(guò)控制電纜與plc控制器相連接,各中間繼電器還與指示燈相連接,增量式電機(jī)編碼器分別與分度盤(pán)、交流伺服電機(jī)驅(qū)動(dòng)器相連接,各交流伺服電機(jī)驅(qū)動(dòng)器對(duì)應(yīng)連接有交流永磁電機(jī),各交流永磁電機(jī)的輸出軸還分別與分度盤(pán)進(jìn)行連接。
公開(kāi)號(hào)為cn102411330a的專(zhuān)利申請(qǐng)公開(kāi)了一種將可編程邏輯控制器程序轉(zhuǎn)換為普通petri網(wǎng)的方法,針對(duì)plc梯形圖程序,將梯形圖觸點(diǎn)和線圈模擬為結(jié)點(diǎn),將導(dǎo)線模擬為有向邊,建立梯形圖程序的plc有向圖模型,定義該有向圖中的路徑,根據(jù)路徑關(guān)系,將plc有向圖轉(zhuǎn)換為petri網(wǎng);本發(fā)明實(shí)現(xiàn)plc梯形圖程序到普通petri網(wǎng)模型的自動(dòng)轉(zhuǎn)換.
綜上所述,現(xiàn)有模擬plc的方法通過(guò)詳細(xì)分析plc的工作原理,以軟件方式實(shí)現(xiàn)plc的各種功能。當(dāng)上位機(jī)主動(dòng)連接模擬plc軟件時(shí),模擬plc軟件做出相應(yīng)的回復(fù),以達(dá)到模擬plc的效果?,F(xiàn)有模擬plc的方法在分析plc的工作原理時(shí)需要詳細(xì)分析出plc上都有哪些輸入輸出區(qū)域及其屬性,當(dāng)上位機(jī)通過(guò)網(wǎng)絡(luò)操作這些區(qū)域時(shí),模擬plc軟件回復(fù)相應(yīng)的報(bào)文。首先,現(xiàn)有模擬plc軟件在啟動(dòng)時(shí),都會(huì)賦予這些區(qū)域一些默認(rèn)值,這些值大多情況下不是真實(shí)plc啟動(dòng)時(shí)的值,需要人為的調(diào)教這些值才能達(dá)到模擬plc的效果。其次,如果真實(shí)plc的程序發(fā)生改變,某些區(qū)域的值必然要改變,需要再次人為調(diào)教。第三,現(xiàn)有模擬plc的方法只能模擬通過(guò)網(wǎng)絡(luò)操作plc輸入輸出區(qū)域,不能模擬上傳、下載plc程序的操作。綜上所述,現(xiàn)有技術(shù)的缺點(diǎn)是:計(jì)算工作量巨大且不容易分析準(zhǔn)確;難以實(shí)現(xiàn)plc程序上傳、下載的操作。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種能夠克服上述技術(shù)問(wèn)題的模擬plc的實(shí)現(xiàn)方法,本發(fā)明的模擬plc的實(shí)現(xiàn)方法的核心技術(shù)構(gòu)思是:使用樣例報(bào)文為基礎(chǔ)模擬plc的方式,通過(guò)分析plc通信行為來(lái)模擬plc。
本發(fā)明的模擬plc的實(shí)現(xiàn)方法是一種以包含真實(shí)plc通信行為的報(bào)文文件為基礎(chǔ)的模擬plc實(shí)現(xiàn)方法,通過(guò)讀取包含真實(shí)plc通信行為的報(bào)文文件來(lái)模仿plc的行為。
本發(fā)明所述模擬plc的實(shí)現(xiàn)方法具體包括以下步驟:
(1)分析plc的通信報(bào)文;
分析plc的通信行為,分析出plc通信行為的關(guān)鍵部分,所述plc通信行為的關(guān)鍵部分是指報(bào)文中依據(jù)上位機(jī)的請(qǐng)求報(bào)文不同而變化的部分。相比于上位機(jī),plc在通信中是被動(dòng)方,需要根據(jù)上位機(jī)的請(qǐng)求給出回應(yīng),因此分析所述plc通信行為的關(guān)鍵部分是非常重要的。
(2)讀取包含真實(shí)plc通信行為的報(bào)文;
在分析了plc的通信報(bào)文以后,使用程序讀取plc通信的樣例報(bào)文文件,所述樣例報(bào)文文件是指模擬plc程序在通信行為上與報(bào)文文件中的報(bào)文表現(xiàn)一致的文件。將所述樣例報(bào)文文件讀取到內(nèi)存中能夠在程序運(yùn)行過(guò)程中快速查找需要使用的部分。當(dāng)plc接受了上位機(jī)的連接請(qǐng)求后,會(huì)使用樣例報(bào)文文件的數(shù)據(jù)回復(fù)給上位機(jī)。
(3)接收上位機(jī)的請(qǐng)求;
當(dāng)模擬plc接收上位機(jī)的請(qǐng)求后,模擬plc程序解析上位機(jī)的請(qǐng)求報(bào)文,根據(jù)上位機(jī)的請(qǐng)求查找樣例報(bào)文文件中的關(guān)鍵部分,然后使用所述樣例報(bào)文中的關(guān)鍵部分組織回復(fù)給上位機(jī)的報(bào)文并將其發(fā)送出去。所述樣例報(bào)文文件中的關(guān)鍵部分是所述步驟(1)中分析出的plc通信行為的關(guān)鍵部分的實(shí)例化即plc通信行為的關(guān)鍵部分在樣例報(bào)文文件中的體現(xiàn)。
本發(fā)明所述模擬plc的實(shí)現(xiàn)方法中所述的樣例報(bào)文文件中的關(guān)鍵部分根據(jù)協(xié)議不同而不同,所述的樣例報(bào)文文件中的關(guān)鍵部分的存儲(chǔ)和查找能夠使用多種方式實(shí)現(xiàn)。所述多種實(shí)現(xiàn)方式包括但不限于以數(shù)組的形式進(jìn)行樣例報(bào)文的關(guān)鍵部分的存儲(chǔ)和查找、以哈希表的形式進(jìn)行樣例報(bào)文的關(guān)鍵部分的存儲(chǔ)和查找、以樹(shù)的形式進(jìn)行樣例報(bào)文的關(guān)鍵部分的存儲(chǔ)和查找。
本發(fā)明所述模擬plc的實(shí)現(xiàn)方法的優(yōu)點(diǎn)是從網(wǎng)絡(luò)通信的角度模擬plc的通信行為,實(shí)現(xiàn)方式簡(jiǎn)單且計(jì)算工作量??;以樣例報(bào)文為基礎(chǔ)模擬plc使模擬程序更加靈活并且能適用多種場(chǎng)景。
附圖說(shuō)明
圖1是本發(fā)明所述方法的讀取樣例報(bào)文文件流程示意圖:
圖2是本發(fā)明所述方法的模擬plc程序回復(fù)上位機(jī)請(qǐng)求流程圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施方式進(jìn)行詳細(xì)描述。如圖1、2所示,本發(fā)明所述模擬plc的實(shí)現(xiàn)方法包括以下步驟:
(1)分析plc的通信報(bào)文;
分析plc的通信行為,分析出plc通信行為的關(guān)鍵部分,例如上位機(jī)對(duì)plc數(shù)據(jù)區(qū)域進(jìn)行的讀操作、寫(xiě)操作,例如對(duì)plc程序的上傳、下載操作。以上傳plc程序?yàn)槔?,首先分析出?qǐng)求上傳plc程序報(bào)文,并找到回復(fù)給所述請(qǐng)求的報(bào)文位置,然后分析出回復(fù)plc程序報(bào)文中的plc程序二進(jìn)制流的部分即所述的plc通信行為的關(guān)鍵部分,所述的plc通信行為的關(guān)鍵部分?jǐn)y帶了plc程序的內(nèi)容。除了所述的plc通信行為的關(guān)鍵部分以外,所述plc程序報(bào)文中還有連接計(jì)數(shù)、報(bào)文長(zhǎng)度的字段,所述plc程序報(bào)文中的連接計(jì)數(shù)、報(bào)文長(zhǎng)度的字段對(duì)模擬plc通信行為沒(méi)有影響,但也是組成報(bào)文的必要部分,通信雙方往往會(huì)在通信過(guò)程中檢查這些字段以驗(yàn)證報(bào)文合法性,所述plc程序報(bào)文中的連接計(jì)數(shù)、報(bào)文長(zhǎng)度的字段稱(chēng)之為非關(guān)鍵部分,在后續(xù)的步驟中使用。
(2)讀取包含真實(shí)plc通信行為的報(bào)文;
根據(jù)所述步驟(1)中分析出的plc通信行為的關(guān)鍵部分解析plc通信的樣例報(bào)文文件,將含有plc通信行為的關(guān)鍵部分的報(bào)文按照上位機(jī)的請(qǐng)求類(lèi)型分別存儲(chǔ)在內(nèi)存中,所述存儲(chǔ)的方法根據(jù)程序使用場(chǎng)景的不同而不同,能夠使用數(shù)組、哈希表、樹(shù)形結(jié)構(gòu)的方式存儲(chǔ)。以上傳plc程序?yàn)槔?,以?qǐng)求上傳plc程序命令為索引,存儲(chǔ)所述步驟(1)中示例分析出的回復(fù)報(bào)文的二進(jìn)制流。
(3)接收上位機(jī)的請(qǐng)求;
當(dāng)模擬plc接收上位機(jī)的請(qǐng)求后,模擬plc程序解析上位機(jī)的請(qǐng)求報(bào)文,根據(jù)上位機(jī)的請(qǐng)求查找內(nèi)存中樣例報(bào)文文件中的關(guān)鍵部分,然后使用所述樣例報(bào)文文件中的關(guān)鍵部分組織回復(fù)給上位機(jī)的報(bào)文并將所述報(bào)文發(fā)送出去,所述組織回復(fù)給上位機(jī)的報(bào)文是指以報(bào)文文件中的關(guān)鍵部分為基礎(chǔ),按照?qǐng)?bào)文的格式填入關(guān)鍵部分和所述步驟(1)中的非關(guān)鍵部分即plc程序報(bào)文中的連接計(jì)數(shù)、報(bào)文長(zhǎng)度的字段。以上傳plc程序?yàn)槔?dāng)接收到上傳plc程序的請(qǐng)求報(bào)文后,查找所述步驟(2)中的二進(jìn)制流,以此為基礎(chǔ)組織回復(fù)報(bào)文并回復(fù)給上位機(jī)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明公開(kāi)的范圍內(nèi),能夠輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。