西门子PLC的网络仿真搭建方法探讨
一、前言
手里没有真正的西门子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对于安全研究工作(如培训平台),只需启动更多的靶机和操作机即可。