熱門搜索:
一、前言
手里沒有真正的西門子PLC在設備條件下,PLC本地仿真器可以模擬開關量和簡單模擬量的程序。然而,工業控制安全人員認為沒有真實性PLC在條件下獲取S7通信數據報告時,或想測試第三方上位軟件和西門子PLC通信時,這種本地通信PLC模擬器不稱職。本文分享了一種西門子PLC構建網絡仿真器的方法。
二、建筑方法
這里我們準備了兩臺虛擬機,操作系統都是win7 ** 專業版:1。操作機(準備)Snap7 Client Demo使用192年的工具和組態王軟件.168.11.2IP2.靶機(安裝)step7 v5.5及plcsim v5.4 sp5,采用192.168.11.1IP地址)。
打開靶機SIMATIC Manager軟件,新項目test2,如下圖:
在新建項目test點擊插入新對象并選擇SIMATIC 300站點,如下圖所示:
分別點擊SIMATIC300(1)>如下圖所示:
在HW Config界面下選擇SIMATIC 300,并選擇RACK-300下的Rail,如下圖:
在UR(0)點擊右鍵插入對象PS 307 2A,如下圖:
在UR(0)點擊右鍵插入對象CPU 314C-2PN/DP V3.三、并設置新的子網ip地址為本PC及的IP地址如下圖所示:
啟動虛擬PLC,點擊開始>所有程序>Siemens Auto ** tion>SIMATIC>STEP 7>S7-PLCSIM,如下圖:
進入S7-PLCSIM界面,選擇PLCSIM(TCP/IP),如下圖:
回到HW Config如下圖所示:
待下載完成,PLCSIM會顯示PLC之前設置的地址IP地址如下圖所示:
啟動NetToPLCSIM,點擊bin>NetToPLCSim.exe,如下圖所示:
點擊add,彈出station對話框,在Network IP Address及Plcsim IP Address中選擇IP以前設置的地址ip進入如下圖:
點擊Start Server,PLC#001進入運行狀態,表示PLC成功構建網絡仿真器進入如下圖:
三、攻擊測試
打開操作機Snap7 Client Demo工具,填寫模擬PLC的IP地址如:192.168.11.1,點擊Connect,如下圖:
再在control下點擊stop按鈕即停止PLC如下圖所示:
在靶機中查看模擬PLC的狀態從run變為stop,同時可以用wireshark數據流量如下圖所示:
也可以在python中構建STOP如下圖所示:
四、第三方軟件通信測試
在靶機(192.168.11.1)的仿真PLC建立了這樣一個簡單的圖形代碼,一個簡單的設備啟??刂七壿嫵绦?,%M0.0、%M0.1是指PLC的M寄存器類型,0.0、0.1是M寄存器的兩個偏移地址對應中間變量。Q0.0是PLC的Q寄存器類型,0.0是Q寄存器的偏移地址。在這個控制程序中,%M0.0(變量名為start)對應于監控屏幕上的啟動按鈕,啟動設備,%M0.1(變量名為stop)對應于監控屏幕上的停止按鈕,停止設備。Q0.0(變量名為out),對應PLC將控制信號輸出到設備的輸出。如下圖所示:
將程序下載到模擬中PLC之后,在線監控梯形圖代碼,此時輸出為0,如下
在操作機(192.168.11.2)定義仿真PLC的IP如下圖所示:
監控屏幕的定義如下:
按下start按鈕,圓形顯示變綠,證明我們按鈕發出的指令,模擬PLC收到啟動信號后,將輸出放置為1并模擬PLC輸出結果反饋到監控屏幕上,同時在監控靶機中模擬PLC我們發現了模擬的程序PLC輸出也是1,證明組態王上位機在操作機和靶機中的虛擬機通信成功,如下圖所示
同時,我們可以獲得操作機的組態王(192)。.11.2)與靶機PLC仿真器(192168.11.根據具體操作,1)通訊報文、各種功能碼數據報文。
五、總結
本文研究了西門子PLC網絡控安全人員研究西門子的網絡仿真搭建方法s7協議提供一個便捷、實惠的渠道,*花費大量的資金采購真實的PLC同時也可以做設備PLC工程師提供一種測試第三方上位軟件和西門子通信的方法,較重要的是,這種西門子PLC網絡仿真搭建方法,能勝任多人在局域網中對西門子的能力PLC對于安全研究工作(如培訓平臺),只需啟動更多的靶機和操作機即可。