一、前言
在手上沒有真實(shí)的西門子PLC設(shè)備情況的情況下,PLC本地仿真器可以為我們進(jìn)行開關(guān)量和簡(jiǎn)單模擬量的程序仿真。但工控安全人員想在沒有真實(shí)PLC的條件下獲取S7通訊數(shù)據(jù)報(bào)文的時(shí)候,或者想測(cè)試第三方上位軟件與西門子PLC通訊的時(shí)候,這種本地的PLC仿真器就無(wú)法勝任了,本文分享一種西門子PLC的網(wǎng)絡(luò)仿真器搭建方法。
二、搭建方法
這里我們準(zhǔn)備兩個(gè)虛擬機(jī),操作系統(tǒng)都為win7 64位專業(yè)版:1、操作機(jī)(準(zhǔn)備Snap7 Client Demo工具及組態(tài)王軟件,采用192.168.11.2IP地址)2、靶機(jī)(安裝了step7 v5.5及plcsim v5.4 sp5,采用192.168.11.1IP地址)。
在靶機(jī)中打開SIMATIC Manager軟件,新建項(xiàng)目test2,如下圖:
在新建項(xiàng)目test2點(diǎn)擊插入新對(duì)象,并選擇SIMATIC 300站點(diǎn),如下圖:
分別點(diǎn)擊SIMATIC300(1)>硬件,進(jìn)入硬件配置界面,如下圖:
在HW Config界面下選擇SIMATIC 300,并選擇RACK-300下的Rail,如下圖:
在UR(0)對(duì)話框中的序號(hào)槽1中點(diǎn)擊右鍵分別插入對(duì)象PS 307 2A,如下圖:
在UR(0)對(duì)話框中的序號(hào)槽2中點(diǎn)擊右鍵分別插入對(duì)象CPU 314C-2PN/DP V3.3,,并新建子網(wǎng)設(shè)置ip地址為本PC級(jí)的IP地址,如下圖:
啟動(dòng)虛擬PLC,點(diǎn)擊開始>所有程序>Siemens Automation>SIMATIC>STEP 7>S7-PLCSIM,如下圖:
進(jìn)入S7-PLCSIM界面,選擇PLCSIM(TCP/IP),如下圖:
回到HW Config對(duì)話框,選擇下載到模塊,如下圖:
待下載完成,PLCSIM會(huì)顯示PLC的地址為之前設(shè)置的IP地址,如下圖:
啟動(dòng)NetToPLCSIM,點(diǎn)擊bin>NetToPLCSim.exe,進(jìn)入如下圖:
點(diǎn)擊add,彈出station對(duì)話框,在Network IP Address及Plcsim IP Address中選擇IP地址為之前設(shè)置的ip地址,進(jìn)入如下圖:
點(diǎn)擊Start Server,PLC#001進(jìn)入運(yùn)行狀態(tài),表示PLC網(wǎng)絡(luò)仿真器搭建成功進(jìn)入如下圖:
三、攻擊測(cè)試
在操作機(jī)中打開Snap7 Client Demo工具,填寫仿真PLC的IP地址如:192.168.11.1,點(diǎn)擊Connect,如下圖:
再在control下點(diǎn)擊stop按鈕即停止PLC的命令,如下圖:
查看靶機(jī)中仿真PLC的狀態(tài)從run變?yōu)閟top,同時(shí)可以用wireshark抓取其數(shù)據(jù)流量如下圖:
也可以在python中構(gòu)建STOP包進(jìn)行測(cè)試,如下圖:
四、第三方上位軟件通訊測(cè)試
在靶機(jī)(192.168.11.1)的仿真PLC建立了這樣一段簡(jiǎn)單圖形圖代碼,一個(gè)簡(jiǎn)單的設(shè)備啟??刂七壿嫵绦颍?M0.0、%M0.1是指PLC的M類型的寄存器,0.0、0.1是M寄存器的某兩個(gè)偏移地址,對(duì)應(yīng)中間變量。%Q0.0是PLC的Q類型的寄存器,0.0是Q寄存器的某個(gè)偏移地址。在這個(gè)控制程序中,%M0.0(變量名為start)對(duì)應(yīng)是監(jiān)控畫面上的啟動(dòng)按鈕,進(jìn)行對(duì)設(shè)備的啟動(dòng)操作,%M0.1(變量名為stop)對(duì)應(yīng)是監(jiān)控畫面上的停止按鈕,進(jìn)行對(duì)設(shè)備的停止操作。%Q0.0(變量名為out),對(duì)應(yīng)PLC的輸出,即將控制信號(hào)輸出給設(shè)備。如下圖:
程序下載到仿真PLC后,對(duì)梯形圖代碼進(jìn)行在線監(jiān)控,這時(shí)輸出為0,如下
在操作機(jī)(192.168.11.2)中定義仿真PLC的IP地址及寄存器的地址,如下圖:
定義監(jiān)控畫面如下:
按下start按鈕,圓形顯示變?yōu)榫G色,證明我們按鈕發(fā)出的指令,仿真PLC收到啟動(dòng)信號(hào),將輸出置為1,并將仿真PLC輸出的結(jié)果反饋到監(jiān)控畫面,同時(shí)我們監(jiān)控靶機(jī)中仿真PLC的程序,我們發(fā)現(xiàn)仿真PLC輸出也是為1,證明操作機(jī)中組態(tài)王上位機(jī)與靶機(jī)中的虛擬機(jī)通訊成功,如下圖
同時(shí)我們可以獲取操作機(jī)的組態(tài)王(192。168.11.2)與靶機(jī)PLC仿真器(192168.11.1)的通訊報(bào)文,各類功能碼的數(shù)據(jù)報(bào)文,根據(jù)具體的操作。
五、總結(jié)
本文通過研究西門子PLC的網(wǎng)絡(luò)仿真搭建方法,為工控安全人員研究西門子s7協(xié)議提供一個(gè)便捷、實(shí)惠的渠道,無(wú)需花費(fèi)大量的資金采購(gòu)真實(shí)的PLC設(shè)備,同時(shí)也可為PLC工程師提供一種測(cè)試第三方上位軟件與西門子通訊的方法,更為重要的是,這種西門子PLC的網(wǎng)絡(luò)仿真搭建方法,可以勝任多人在局域網(wǎng)絡(luò)中對(duì)西門子PLC的安全研究工作(例如實(shí)訓(xùn)平臺(tái)),只需啟動(dòng)更多的靶機(jī)和操作機(jī)即可。
審核編輯:劉清
-
plc
+關(guān)注
關(guān)注
5037文章
13921瀏覽量
474764 -
仿真器
+關(guān)注
關(guān)注
14文章
1037瀏覽量
85428 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
966瀏覽量
29377
原文標(biāo)題:西門子PLC的網(wǎng)絡(luò)仿真搭建方法探討
文章出處:【微信號(hào):西北工匠PLC學(xué)習(xí)基地,微信公眾號(hào):西北工匠PLC學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何破解三菱PLC與西門子PLC的通訊難題

工業(yè)智能網(wǎng)關(guān)可以采集西門子PLC嗎
ABB機(jī)器人與西門子PLC通訊案例
PLC邊緣計(jì)算網(wǎng)關(guān)采集西門子PLC數(shù)據(jù)過程
西門子PLC S7-1500系列介紹

評(píng)論