PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 59758|回复: 0

[西门子] 基于西门子软PLC的虚拟SCADA工控系统搭建及S7协议解析

[复制链接]
发表于 2024-3-25 11:55:26 | 显示全部楼层 |阅读模式
↑ 点击上方

“智能制造之家”

关注我们





会员可进入会员下载专区获取相关资料,非会员请按文末规则获取~

写在前面

前面我们分享了西门子、施耐德、三菱、罗克韦尔等工业巨头的主要工控协议及其端口:

西门子、施耐德、三菱、RA:全球主要工控协议及端口解析

也原创了很多工业协议、工业通讯相关的干活文章:

技术解读PROFINET、Ethernet/IP等7种主流工业以太网

最全整理工业通讯上的领域各种总线+协议+规范+接口—数据采集与控制

最详细的工业网络通讯技术与协议总结解读(现场总线、工业以太网、工业无线)

IT、OT 深度融合的当下,无论是OT侧,还是IT侧,各种协议都起到了至关重要的作用,比如前面我们提到的各种工控协议的解读与密码破解:

西门子、施耐德、罗克韦尔:三大工控厂商PLC密码保护突破之旅

S7-1200+SCADA:详解西门子S7协议与数据读写

TIAV17+S7-1200:解析最新西门子S7CommPlus协议

今天我们来聊一聊基于西门子软PLC的虚拟SCADA工控系统搭建及S7协议解析~





2.2 运行西门子软PLC

SIMATIC软PLC是西门子公司开发的基于PC控制的核心组件,它的出现扩展了SIMATIC S7的控制范围。软PLC是一个名副其实的控制中心,它将PLC控制、数据处理、通讯、可视化及工艺集成于一台PC机上。

在虚拟机中安装PLC后,运行如下:



虚拟PLC的运行环境搭建好了之后,下面就可以往虚拟PLC里面写配置和程序了。

2.3 配置虚拟PLC

(1)打开step7软件

创建工程,并进行组态配置



(2)定义变量



(3)编写一个简单的测试程序



(4)下载程序

将程序下载至CPU中,就可以运行程序。



(5)执行程序

程序下载完成后,就可以运行程序。





通过修改值改变运行状态,经验证程序逻辑正确。

2.4 配置虚拟SCADA系统

(1)变量管理



(2)通讯连接设置



(3)创建一个新图形



(4)组态图形



(5)项目激活



2.5 SCADA运行界面



通过点击“启动按钮”和“停止按钮”可以看到阀门运行状态会改变,至此,说明上位机WinCC和虚拟PLC通讯没有任何问题,虚拟PLC能够和硬件PLC一样,实现同样功能。



Header

Parameter

Data

S7Comm Header如下图所示:



我们通过两个表来了解Header的结构:



其中最为重要的就是ROSCTR字段,其定义如下表:



S7comm 协议的 Parameter 部分与 Data 部分,则是根据 Header 中 PDU type 的功能码的不同、协议扩展(Userdata)的内容不同而变得不同。

当PUD类型为JOB和ACK_Data时,Parameter项的第一个字段为Function code,其类型为Unsigned interger,长度为1byte,其详细的功能码如下:



采用S7comm协议进行读写操作时,Parameter结构相同,只是写操作多了Data结构。

当PDU类型是JOB时,Parameter部分的结构如下:



其中一个Item的结构如下



当PDU类型是ACK_DATA时,Parameter部分的结构如下:



Data 部分存储 Item 结构体,其中一个 Item 的结构如下



3.2 抓包分析

通过对虚拟PLC与SCADA系统的通讯进行抓包分析,过滤出func为0x05,即写入操作的数据包:



查看wireshark中的包信息:



PDU类型为0x01(JOB);

Function Code为0x05(Write);

Item中的DB number为1,地址为0x000000;

Data中写入的数据为01。

查看响应数据如下:



PDU类型为 0x03(ACK_DATA);

Function Code为0x05(Write);

Return Code在Data中,为0xff(Success)。

3.3 非法接入实施网络攻击

由于虚拟PLC与SCADA系统未进行授权访问,在未配置工控安全防护设备时,极易受到未授权访问(非法接入)或数据篡改类型的攻击。



在了解到工控系统中某些写入的DB编号和地址后,可通过多种脚本方式轻易对工控环境中的PLC设备或SCADA系统等进行攻击,如通过python脚本连接s7comm协议的设备,进行数据篡改或操控plc的启停等。











会员可进入会员下载专区获取相关资料~



硬核专辑

ERP/PLM/MES/SCADA/PLC/工业软件研究报告

信息化、数字化、智能制造、工业互联网解决方案

自动化、信息化、数字化、工业网络、仿真与虚拟调试入门

WinCC技术 | 工业网络 | MES技术相关| 工业巨头战略布局 | 工业通讯案例

仿真与虚拟调试 | 职业感悟、认知提升 | 自动化控制标准合集



68页PPT详解WMS基础、流程、设计与配置

2022-01-21



西门子PLC官方程序设计规范指南

2022-01-17



智能制造项目-数字化工厂规划与建设完整方案

2022-01-15



150页PPT讲透智能制造八大关键技术(无门槛下载)

2022-01-11



中国智能制造产业图谱与典型场景完整参考|产业链全景图

2022-01-10



西门子:全球工业软件产业发展PPT讲解

2022-01-08



87页超经典智能制造方法论、整体解决方案及实践分享

2022-01-05



81页超硬核先进工业网络技术与实践

2022-01-04



三菱仿真PLC技术与西门子WinCC与实现OPC通讯全解析

2021-12-30



西门子、PTC、施耐德、微软、ABB...:最全物联网PaaS平台大盘点

2021-12-28



欢迎关注"智能制造之家"

免责申明:本公众号所载文章为本公众号原创或根据网络搜索编辑整理,文章版权归原作者所有。因转载众多,无法找到真正来源,如标错来源,或对于文中所使用的图片,资料,下载链接中所包含的软件,资料等,如有侵权,请联系删除~----智能制造之家

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-4-27 15:28 , Processed in 0.050496 second(s), 26 queries .

快速回复 返回顶部 返回列表