
西门子 S7 系列协议深度科普
文章目录
- [**西门子 S7 系列协议深度科普**](#西门子 S7 系列协议深度科普)
-
- 摘要
- [1. 概述](#1. 概述)
- [2. 协议分层架构](#2. 协议分层架构)
- [3. 现场总线层协议(PROFINET & PROFIBUS)](#3. 现场总线层协议(PROFINET & PROFIBUS))
-
- [3.0 现场总线在自动化金字塔中的位置](#3.0 现场总线在自动化金字塔中的位置)
- [3.1 PROFINET(PN)](#3.1 PROFINET(PN))
- [3.2 PROFIBUS DP(DP)](#3.2 PROFIBUS DP(DP))
- [3.3 PROFINET vs PROFIBUS DP 对比](#3.3 PROFINET vs PROFIBUS DP 对比)
- [4. 串口现场层协议](#4. 串口现场层协议)
-
- [4.1 PPI(Point-to-Point Interface)](#4.1 PPI(Point-to-Point Interface))
- [4.2 PPI OverTcp](#4.2 PPI OverTcp)
- [4.3 MPI(Multi-Point Interface)](#4.3 MPI(Multi-Point Interface))
- [5. 以太网控制层协议](#5. 以太网控制层协议)
-
- [5.1 S7 Communication(S7 协议)](#5.1 S7 Communication(S7 协议))
- [5.2 S7-PLUS](#5.2 S7-PLUS)
- [6. 信息管理层协议](#6. 信息管理层协议)
-
- [6.1 SIE Fetch/Write](#6.1 SIE Fetch/Write)
- [6.2 SIE WebApi](#6.2 SIE WebApi)
- [7. 网关/服务器层协议](#7. 网关/服务器层协议)
-
- [7.1 S7 Virtual Server](#7.1 S7 Virtual Server)
- [7.2 S7 PPI Server](#7.2 S7 PPI Server)
- [7.3 SIE Fetch Write Server](#7.3 SIE Fetch Write Server)
- [8. PLC 系列与协议支持矩阵](#8. PLC 系列与协议支持矩阵)
- [9. 协议技术对比](#9. 协议技术对比)
- [10. 协议演进时间线](#10. 协议演进时间线)
- [11. 应用场景与选型建议](#11. 应用场景与选型建议)
-
- [11.1 场景决策树](#11.1 场景决策树)
- [11.2 具体建议](#11.2 具体建议)
- [12. 开发注意事项](#12. 开发注意事项)
-
- [12.1 常见坑点](#12.1 常见坑点)
- [12.2 端口速查](#12.2 端口速查)
- [13. 总结](#13. 总结)
关键字: 工业知识点、 ISO-on-TCP、 WebAPI 、 串口时代、 工业以太网时代 、 PROFINET 、 PROFIBUS
摘要
本文系统梳理西门子 S7 PLC 生态中涉及的通信协议,覆盖从早期串口到现代以太网的全协议栈,适用于工业自动化集成与协议开发参考。
1. 概述
西门子 S7 系列 PLC 的通信协议经历了从 串口时代 (PPI/MPI)到 工业以太网时代 (S7 Communication / ISO-on-TCP)再到 现代 Web 化(WebAPI / OPC UA)的演进。不同代际的 PLC(S7-200/300/400/1200/1500)支持的协议差异显著,理解这些协议的层级关系、适用场景和技术细节,是进行 PLC 集成开发的基础。
重要区分 :西门子的协议生态其实分为两条相对独立的链路------
- 上位机/工程链路 ("控制器之上"):PG/PC、SCADA、MES、编程器如何访问 PLC 内部的变量、数据块和程序。属于这一类的有 PPI、MPI、S7 Communication、Fetch/Write、WebApi ,以及虚拟化测试用的 Virtual Server / PPI Server / Fetch Write Server。
- 现场总线/实时 I/O 链路 ("控制器之下"):PLC 如何与现场设备(远程 IO 站、伺服、变频器、传感器、执行器)进行实时循环数据交换。属于这一类的有 PROFINET(PN) 和 PROFIBUS DP(DP)。
本文同时覆盖这两条链路,以便形成完整的协议地图。
#mermaid-svg-C4Y22OxtINMdtEs5{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-C4Y22OxtINMdtEs5 .error-icon{fill:#552222;}#mermaid-svg-C4Y22OxtINMdtEs5 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-C4Y22OxtINMdtEs5 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-C4Y22OxtINMdtEs5 .marker.cross{stroke:#333333;}#mermaid-svg-C4Y22OxtINMdtEs5 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-C4Y22OxtINMdtEs5 p{margin:0;}#mermaid-svg-C4Y22OxtINMdtEs5 .edge{stroke-width:3;}#mermaid-svg-C4Y22OxtINMdtEs5 .section--1 rect,#mermaid-svg-C4Y22OxtINMdtEs5 .section--1 path,#mermaid-svg-C4Y22OxtINMdtEs5 .section--1 circle,#mermaid-svg-C4Y22OxtINMdtEs5 .section--1 polygon,#mermaid-svg-C4Y22OxtINMdtEs5 .section--1 path{fill:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .section--1 text{fill:#ffffff;}#mermaid-svg-C4Y22OxtINMdtEs5 .node-icon--1{font-size:40px;color:#ffffff;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-edge--1{stroke:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-depth--1{stroke-width:17;}#mermaid-svg-C4Y22OxtINMdtEs5 .section--1 line{stroke:hsl(60, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled circle,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:lightgray;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:#efefef;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-0 rect,#mermaid-svg-C4Y22OxtINMdtEs5 .section-0 path,#mermaid-svg-C4Y22OxtINMdtEs5 .section-0 circle,#mermaid-svg-C4Y22OxtINMdtEs5 .section-0 polygon,#mermaid-svg-C4Y22OxtINMdtEs5 .section-0 path{fill:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-C4Y22OxtINMdtEs5 .section-0 text{fill:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .node-icon-0{font-size:40px;color:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-edge-0{stroke:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-depth-0{stroke-width:14;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-0 line{stroke:hsl(240, 100%, 83.5294117647%);stroke-width:3;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled circle,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:lightgray;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:#efefef;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-1 rect,#mermaid-svg-C4Y22OxtINMdtEs5 .section-1 path,#mermaid-svg-C4Y22OxtINMdtEs5 .section-1 circle,#mermaid-svg-C4Y22OxtINMdtEs5 .section-1 polygon,#mermaid-svg-C4Y22OxtINMdtEs5 .section-1 path{fill:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .section-1 text{fill:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .node-icon-1{font-size:40px;color:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-edge-1{stroke:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-depth-1{stroke-width:11;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-1 line{stroke:hsl(260, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled circle,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:lightgray;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:#efefef;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-2 rect,#mermaid-svg-C4Y22OxtINMdtEs5 .section-2 path,#mermaid-svg-C4Y22OxtINMdtEs5 .section-2 circle,#mermaid-svg-C4Y22OxtINMdtEs5 .section-2 polygon,#mermaid-svg-C4Y22OxtINMdtEs5 .section-2 path{fill:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .section-2 text{fill:#ffffff;}#mermaid-svg-C4Y22OxtINMdtEs5 .node-icon-2{font-size:40px;color:#ffffff;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-edge-2{stroke:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-depth-2{stroke-width:8;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-2 line{stroke:hsl(90, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled circle,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:lightgray;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:#efefef;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-3 rect,#mermaid-svg-C4Y22OxtINMdtEs5 .section-3 path,#mermaid-svg-C4Y22OxtINMdtEs5 .section-3 circle,#mermaid-svg-C4Y22OxtINMdtEs5 .section-3 polygon,#mermaid-svg-C4Y22OxtINMdtEs5 .section-3 path{fill:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .section-3 text{fill:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .node-icon-3{font-size:40px;color:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-edge-3{stroke:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-depth-3{stroke-width:5;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-3 line{stroke:hsl(120, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled circle,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:lightgray;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:#efefef;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-4 rect,#mermaid-svg-C4Y22OxtINMdtEs5 .section-4 path,#mermaid-svg-C4Y22OxtINMdtEs5 .section-4 circle,#mermaid-svg-C4Y22OxtINMdtEs5 .section-4 polygon,#mermaid-svg-C4Y22OxtINMdtEs5 .section-4 path{fill:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .section-4 text{fill:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .node-icon-4{font-size:40px;color:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-edge-4{stroke:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-depth-4{stroke-width:2;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-4 line{stroke:hsl(150, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled circle,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:lightgray;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:#efefef;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-5 rect,#mermaid-svg-C4Y22OxtINMdtEs5 .section-5 path,#mermaid-svg-C4Y22OxtINMdtEs5 .section-5 circle,#mermaid-svg-C4Y22OxtINMdtEs5 .section-5 polygon,#mermaid-svg-C4Y22OxtINMdtEs5 .section-5 path{fill:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .section-5 text{fill:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .node-icon-5{font-size:40px;color:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-edge-5{stroke:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-depth-5{stroke-width:-1;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-5 line{stroke:hsl(180, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled circle,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:lightgray;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:#efefef;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-6 rect,#mermaid-svg-C4Y22OxtINMdtEs5 .section-6 path,#mermaid-svg-C4Y22OxtINMdtEs5 .section-6 circle,#mermaid-svg-C4Y22OxtINMdtEs5 .section-6 polygon,#mermaid-svg-C4Y22OxtINMdtEs5 .section-6 path{fill:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .section-6 text{fill:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .node-icon-6{font-size:40px;color:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-edge-6{stroke:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-depth-6{stroke-width:-4;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-6 line{stroke:hsl(210, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled circle,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:lightgray;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:#efefef;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-7 rect,#mermaid-svg-C4Y22OxtINMdtEs5 .section-7 path,#mermaid-svg-C4Y22OxtINMdtEs5 .section-7 circle,#mermaid-svg-C4Y22OxtINMdtEs5 .section-7 polygon,#mermaid-svg-C4Y22OxtINMdtEs5 .section-7 path{fill:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .section-7 text{fill:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .node-icon-7{font-size:40px;color:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-edge-7{stroke:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-depth-7{stroke-width:-7;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-7 line{stroke:hsl(270, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled circle,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:lightgray;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:#efefef;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-8 rect,#mermaid-svg-C4Y22OxtINMdtEs5 .section-8 path,#mermaid-svg-C4Y22OxtINMdtEs5 .section-8 circle,#mermaid-svg-C4Y22OxtINMdtEs5 .section-8 polygon,#mermaid-svg-C4Y22OxtINMdtEs5 .section-8 path{fill:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .section-8 text{fill:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .node-icon-8{font-size:40px;color:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-edge-8{stroke:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-depth-8{stroke-width:-10;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-8 line{stroke:hsl(330, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled circle,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:lightgray;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:#efefef;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-9 rect,#mermaid-svg-C4Y22OxtINMdtEs5 .section-9 path,#mermaid-svg-C4Y22OxtINMdtEs5 .section-9 circle,#mermaid-svg-C4Y22OxtINMdtEs5 .section-9 polygon,#mermaid-svg-C4Y22OxtINMdtEs5 .section-9 path{fill:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .section-9 text{fill:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .node-icon-9{font-size:40px;color:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-edge-9{stroke:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-depth-9{stroke-width:-13;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-9 line{stroke:hsl(0, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled circle,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:lightgray;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:#efefef;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-10 rect,#mermaid-svg-C4Y22OxtINMdtEs5 .section-10 path,#mermaid-svg-C4Y22OxtINMdtEs5 .section-10 circle,#mermaid-svg-C4Y22OxtINMdtEs5 .section-10 polygon,#mermaid-svg-C4Y22OxtINMdtEs5 .section-10 path{fill:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .section-10 text{fill:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .node-icon-10{font-size:40px;color:black;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-edge-10{stroke:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .edge-depth-10{stroke-width:-16;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-10 line{stroke:hsl(30, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled circle,#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:lightgray;}#mermaid-svg-C4Y22OxtINMdtEs5 .disabled text{fill:#efefef;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-root rect,#mermaid-svg-C4Y22OxtINMdtEs5 .section-root path,#mermaid-svg-C4Y22OxtINMdtEs5 .section-root circle,#mermaid-svg-C4Y22OxtINMdtEs5 .section-root polygon{fill:hsl(240, 100%, 46.2745098039%);}#mermaid-svg-C4Y22OxtINMdtEs5 .section-root text{fill:#ffffff;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-root span{color:#ffffff;}#mermaid-svg-C4Y22OxtINMdtEs5 .section-2 span{color:#ffffff;}#mermaid-svg-C4Y22OxtINMdtEs5 .icon-container{height:100%;display:flex;justify-content:center;align-items:center;}#mermaid-svg-C4Y22OxtINMdtEs5 .edge{fill:none;}#mermaid-svg-C4Y22OxtINMdtEs5 .mindmap-node-label{dy:1em;alignment-baseline:middle;text-anchor:middle;dominant-baseline:middle;text-align:center;}#mermaid-svg-C4Y22OxtINMdtEs5 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 西门子 S7
通信协议族
现场总线层
PROFINET
PROFIBUS DP
串口现场层
PPI
PPI OverTcp
MPI
以太网控制层
S7 Communication
S7-PLUS
ISO-on-TCP
TCP/IP Raw
信息管理层
Fetch/Write
SIE WebApi
网关服务层
S7 Virtual Server
S7 PPI Server
SIE Fetch Write Server
2. 协议分层架构
西门子通信协议可按 OSI 参考模型进行分层映射。上图为"上位机链路"的映射;现场总线链路(PROFINET / PROFIBUS DP)的映射见第 3 章。
#mermaid-svg-FMszuGG8qfin9HU4{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-FMszuGG8qfin9HU4 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-FMszuGG8qfin9HU4 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-FMszuGG8qfin9HU4 .error-icon{fill:#552222;}#mermaid-svg-FMszuGG8qfin9HU4 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-FMszuGG8qfin9HU4 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-FMszuGG8qfin9HU4 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-FMszuGG8qfin9HU4 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-FMszuGG8qfin9HU4 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-FMszuGG8qfin9HU4 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-FMszuGG8qfin9HU4 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-FMszuGG8qfin9HU4 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-FMszuGG8qfin9HU4 .marker.cross{stroke:#333333;}#mermaid-svg-FMszuGG8qfin9HU4 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-FMszuGG8qfin9HU4 p{margin:0;}#mermaid-svg-FMszuGG8qfin9HU4 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-FMszuGG8qfin9HU4 .cluster-label text{fill:#333;}#mermaid-svg-FMszuGG8qfin9HU4 .cluster-label span{color:#333;}#mermaid-svg-FMszuGG8qfin9HU4 .cluster-label span p{background-color:transparent;}#mermaid-svg-FMszuGG8qfin9HU4 .label text,#mermaid-svg-FMszuGG8qfin9HU4 span{fill:#333;color:#333;}#mermaid-svg-FMszuGG8qfin9HU4 .node rect,#mermaid-svg-FMszuGG8qfin9HU4 .node circle,#mermaid-svg-FMszuGG8qfin9HU4 .node ellipse,#mermaid-svg-FMszuGG8qfin9HU4 .node polygon,#mermaid-svg-FMszuGG8qfin9HU4 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-FMszuGG8qfin9HU4 .rough-node .label text,#mermaid-svg-FMszuGG8qfin9HU4 .node .label text,#mermaid-svg-FMszuGG8qfin9HU4 .image-shape .label,#mermaid-svg-FMszuGG8qfin9HU4 .icon-shape .label{text-anchor:middle;}#mermaid-svg-FMszuGG8qfin9HU4 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-FMszuGG8qfin9HU4 .rough-node .label,#mermaid-svg-FMszuGG8qfin9HU4 .node .label,#mermaid-svg-FMszuGG8qfin9HU4 .image-shape .label,#mermaid-svg-FMszuGG8qfin9HU4 .icon-shape .label{text-align:center;}#mermaid-svg-FMszuGG8qfin9HU4 .node.clickable{cursor:pointer;}#mermaid-svg-FMszuGG8qfin9HU4 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-FMszuGG8qfin9HU4 .arrowheadPath{fill:#333333;}#mermaid-svg-FMszuGG8qfin9HU4 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-FMszuGG8qfin9HU4 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-FMszuGG8qfin9HU4 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-FMszuGG8qfin9HU4 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-FMszuGG8qfin9HU4 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-FMszuGG8qfin9HU4 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-FMszuGG8qfin9HU4 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-FMszuGG8qfin9HU4 .cluster text{fill:#333;}#mermaid-svg-FMszuGG8qfin9HU4 .cluster span{color:#333;}#mermaid-svg-FMszuGG8qfin9HU4 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-FMszuGG8qfin9HU4 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-FMszuGG8qfin9HU4 rect.text{fill:none;stroke-width:0;}#mermaid-svg-FMszuGG8qfin9HU4 .icon-shape,#mermaid-svg-FMszuGG8qfin9HU4 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-FMszuGG8qfin9HU4 .icon-shape p,#mermaid-svg-FMszuGG8qfin9HU4 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-FMszuGG8qfin9HU4 .icon-shape .label rect,#mermaid-svg-FMszuGG8qfin9HU4 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-FMszuGG8qfin9HU4 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-FMszuGG8qfin9HU4 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-FMszuGG8qfin9HU4 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 物理层 (Layer 1)
数据链路层 (Layer 2)
网络层 (Layer 3)
传输层 (Layer 4)
表示层/会话层 (L5-L6)
应用层 (Layer 7)
SIE WebApi
Fetch/Write
S7 Communication
S7-PLUS
PG/OP Communication
PROFINET IO
应用服务
PROFIBUS DP
DP-V0/V1/V2
S7 Protocol
TASP / TSAP
HTTP/REST
PROFINET
RT / IRT
TCP Port 102
TCP Port 80/443
ISO Transport
RFC 1006
UDP
PROFINET RT 帧
IP
PROFINET RT
直通 L2,跳过 IP
Ethernet
IEEE 802.3
PROFIBUS
RS-485
PROFINET
EtherType 0x8892
RJ-45 / 光纤
RS-485
3. 现场总线层协议(PROFINET & PROFIBUS)
这一层是西门子自动化金字塔的实时 I/O 主干,解决"PLC 如何控制现场设备"的问题。它与前面讲的"上位机如何访问 PLC"是完全不同的两件事,但在很多集成项目中两者会同时出现。
3.0 现场总线在自动化金字塔中的位置
#mermaid-svg-DbUtifV2ISw7RZME{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-DbUtifV2ISw7RZME .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-DbUtifV2ISw7RZME .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-DbUtifV2ISw7RZME .error-icon{fill:#552222;}#mermaid-svg-DbUtifV2ISw7RZME .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-DbUtifV2ISw7RZME .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-DbUtifV2ISw7RZME .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-DbUtifV2ISw7RZME .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-DbUtifV2ISw7RZME .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-DbUtifV2ISw7RZME .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-DbUtifV2ISw7RZME .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-DbUtifV2ISw7RZME .marker{fill:#333333;stroke:#333333;}#mermaid-svg-DbUtifV2ISw7RZME .marker.cross{stroke:#333333;}#mermaid-svg-DbUtifV2ISw7RZME svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-DbUtifV2ISw7RZME p{margin:0;}#mermaid-svg-DbUtifV2ISw7RZME .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-DbUtifV2ISw7RZME .cluster-label text{fill:#333;}#mermaid-svg-DbUtifV2ISw7RZME .cluster-label span{color:#333;}#mermaid-svg-DbUtifV2ISw7RZME .cluster-label span p{background-color:transparent;}#mermaid-svg-DbUtifV2ISw7RZME .label text,#mermaid-svg-DbUtifV2ISw7RZME span{fill:#333;color:#333;}#mermaid-svg-DbUtifV2ISw7RZME .node rect,#mermaid-svg-DbUtifV2ISw7RZME .node circle,#mermaid-svg-DbUtifV2ISw7RZME .node ellipse,#mermaid-svg-DbUtifV2ISw7RZME .node polygon,#mermaid-svg-DbUtifV2ISw7RZME .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-DbUtifV2ISw7RZME .rough-node .label text,#mermaid-svg-DbUtifV2ISw7RZME .node .label text,#mermaid-svg-DbUtifV2ISw7RZME .image-shape .label,#mermaid-svg-DbUtifV2ISw7RZME .icon-shape .label{text-anchor:middle;}#mermaid-svg-DbUtifV2ISw7RZME .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-DbUtifV2ISw7RZME .rough-node .label,#mermaid-svg-DbUtifV2ISw7RZME .node .label,#mermaid-svg-DbUtifV2ISw7RZME .image-shape .label,#mermaid-svg-DbUtifV2ISw7RZME .icon-shape .label{text-align:center;}#mermaid-svg-DbUtifV2ISw7RZME .node.clickable{cursor:pointer;}#mermaid-svg-DbUtifV2ISw7RZME .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-DbUtifV2ISw7RZME .arrowheadPath{fill:#333333;}#mermaid-svg-DbUtifV2ISw7RZME .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-DbUtifV2ISw7RZME .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-DbUtifV2ISw7RZME .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-DbUtifV2ISw7RZME .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-DbUtifV2ISw7RZME .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-DbUtifV2ISw7RZME .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-DbUtifV2ISw7RZME .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-DbUtifV2ISw7RZME .cluster text{fill:#333;}#mermaid-svg-DbUtifV2ISw7RZME .cluster span{color:#333;}#mermaid-svg-DbUtifV2ISw7RZME div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-DbUtifV2ISw7RZME .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-DbUtifV2ISw7RZME rect.text{fill:none;stroke-width:0;}#mermaid-svg-DbUtifV2ISw7RZME .icon-shape,#mermaid-svg-DbUtifV2ISw7RZME .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-DbUtifV2ISw7RZME .icon-shape p,#mermaid-svg-DbUtifV2ISw7RZME .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-DbUtifV2ISw7RZME .icon-shape .label rect,#mermaid-svg-DbUtifV2ISw7RZME .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-DbUtifV2ISw7RZME .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-DbUtifV2ISw7RZME .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-DbUtifV2ISw7RZME :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 现场设备层
现场总线层 (实时 I/O 链路)
PLC 控制器
控制层 (上位机链路)
信息管理层
企业层 (ERP)
ERP / MES 系统
SCADA / HMI
WebApi / OPC UA
S7 Communication
Fetch/Write
PPI/MPI
S7-300/400/1200/1500
PROFINET
PROFIBUS DP
远程 IO 站
ET 200
伺服 / 变频器
G120 / S120
传感器 / 执行器
3.1 PROFINET(PN)
| 属性 | 说明 |
|---|---|
| 全称 | Process Field Network(工业以太网标准) |
| 标准 | IEC 61158 / IEC 61784-2(开放标准,非西门子私有) |
| 物理层 | 标准以太网(RJ-45 铜缆 / 光纤) |
| 速率 | 100 Mbit/s(标准)、1 Gbit/s(PROFINET 2.x) |
| 组织 | 由 PROFIBUS & PROFINET International(PI)管理 |
| 特点 | 实时性分级、与 IT 网络兼容、灵活拓扑 |
PROFINET 是西门子与 PI 组织联合推动的开放工业以太网标准,是现代西门子自动化系统的实时通信主干。它直接跑在标准以太网之上,天然支持与 IT 网络融合,并针对不同实时性需求提供了三个通信等级。
PROFINET 的三个通信等级:
| 等级 | 全称 | 循环周期 | 典型应用 |
|---|---|---|---|
| NRT | Non-Real-Time | >100 ms | 参数配置、诊断、Web 服务 |
| RT | Real-Time | 1--10 ms | 标准 I/O 循环数据 |
| IRT | Isochronous Real-Time | <1 ms(抖动 <1 μs) | 运动控制、高精度同步 |
#mermaid-svg-8gX2GXWM6sSrDypQ{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-8gX2GXWM6sSrDypQ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-8gX2GXWM6sSrDypQ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-8gX2GXWM6sSrDypQ .error-icon{fill:#552222;}#mermaid-svg-8gX2GXWM6sSrDypQ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-8gX2GXWM6sSrDypQ .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-8gX2GXWM6sSrDypQ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-8gX2GXWM6sSrDypQ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-8gX2GXWM6sSrDypQ .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-8gX2GXWM6sSrDypQ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-8gX2GXWM6sSrDypQ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-8gX2GXWM6sSrDypQ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-8gX2GXWM6sSrDypQ .marker.cross{stroke:#333333;}#mermaid-svg-8gX2GXWM6sSrDypQ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-8gX2GXWM6sSrDypQ p{margin:0;}#mermaid-svg-8gX2GXWM6sSrDypQ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-8gX2GXWM6sSrDypQ .cluster-label text{fill:#333;}#mermaid-svg-8gX2GXWM6sSrDypQ .cluster-label span{color:#333;}#mermaid-svg-8gX2GXWM6sSrDypQ .cluster-label span p{background-color:transparent;}#mermaid-svg-8gX2GXWM6sSrDypQ .label text,#mermaid-svg-8gX2GXWM6sSrDypQ span{fill:#333;color:#333;}#mermaid-svg-8gX2GXWM6sSrDypQ .node rect,#mermaid-svg-8gX2GXWM6sSrDypQ .node circle,#mermaid-svg-8gX2GXWM6sSrDypQ .node ellipse,#mermaid-svg-8gX2GXWM6sSrDypQ .node polygon,#mermaid-svg-8gX2GXWM6sSrDypQ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-8gX2GXWM6sSrDypQ .rough-node .label text,#mermaid-svg-8gX2GXWM6sSrDypQ .node .label text,#mermaid-svg-8gX2GXWM6sSrDypQ .image-shape .label,#mermaid-svg-8gX2GXWM6sSrDypQ .icon-shape .label{text-anchor:middle;}#mermaid-svg-8gX2GXWM6sSrDypQ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-8gX2GXWM6sSrDypQ .rough-node .label,#mermaid-svg-8gX2GXWM6sSrDypQ .node .label,#mermaid-svg-8gX2GXWM6sSrDypQ .image-shape .label,#mermaid-svg-8gX2GXWM6sSrDypQ .icon-shape .label{text-align:center;}#mermaid-svg-8gX2GXWM6sSrDypQ .node.clickable{cursor:pointer;}#mermaid-svg-8gX2GXWM6sSrDypQ .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-8gX2GXWM6sSrDypQ .arrowheadPath{fill:#333333;}#mermaid-svg-8gX2GXWM6sSrDypQ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-8gX2GXWM6sSrDypQ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-8gX2GXWM6sSrDypQ .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-8gX2GXWM6sSrDypQ .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-8gX2GXWM6sSrDypQ .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-8gX2GXWM6sSrDypQ .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-8gX2GXWM6sSrDypQ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-8gX2GXWM6sSrDypQ .cluster text{fill:#333;}#mermaid-svg-8gX2GXWM6sSrDypQ .cluster span{color:#333;}#mermaid-svg-8gX2GXWM6sSrDypQ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-8gX2GXWM6sSrDypQ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-8gX2GXWM6sSrDypQ rect.text{fill:none;stroke-width:0;}#mermaid-svg-8gX2GXWM6sSrDypQ .icon-shape,#mermaid-svg-8gX2GXWM6sSrDypQ .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-8gX2GXWM6sSrDypQ .icon-shape p,#mermaid-svg-8gX2GXWM6sSrDypQ .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-8gX2GXWM6sSrDypQ .icon-shape .label rect,#mermaid-svg-8gX2GXWM6sSrDypQ .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-8gX2GXWM6sSrDypQ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-8gX2GXWM6sSrDypQ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-8gX2GXWM6sSrDypQ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} PROFINET 实时性等级
实时性递增
实时性递增
非实时 NRT
TCP/UDP/IP
配置与诊断
实时 RT
跳过 IP 层
EtherType 0x8892
等时同步 IRT
硬件时间片
专用 ASIC
PROFINET 关键组件:
- IO Controller(控制器):通常由 S7 PLC 担任,发起循环数据交换
- IO Device(设备):如 ET 200 远程 IO、G120 变频器、S120 伺服
- IO Supervisor(监视器):PG/PC 编程器,用于工程组态和诊断
#mermaid-svg-N6FgOnd2AZftwk8d{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-N6FgOnd2AZftwk8d .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-N6FgOnd2AZftwk8d .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-N6FgOnd2AZftwk8d .error-icon{fill:#552222;}#mermaid-svg-N6FgOnd2AZftwk8d .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-N6FgOnd2AZftwk8d .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-N6FgOnd2AZftwk8d .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-N6FgOnd2AZftwk8d .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-N6FgOnd2AZftwk8d .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-N6FgOnd2AZftwk8d .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-N6FgOnd2AZftwk8d .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-N6FgOnd2AZftwk8d .marker{fill:#333333;stroke:#333333;}#mermaid-svg-N6FgOnd2AZftwk8d .marker.cross{stroke:#333333;}#mermaid-svg-N6FgOnd2AZftwk8d svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-N6FgOnd2AZftwk8d p{margin:0;}#mermaid-svg-N6FgOnd2AZftwk8d .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-N6FgOnd2AZftwk8d .cluster-label text{fill:#333;}#mermaid-svg-N6FgOnd2AZftwk8d .cluster-label span{color:#333;}#mermaid-svg-N6FgOnd2AZftwk8d .cluster-label span p{background-color:transparent;}#mermaid-svg-N6FgOnd2AZftwk8d .label text,#mermaid-svg-N6FgOnd2AZftwk8d span{fill:#333;color:#333;}#mermaid-svg-N6FgOnd2AZftwk8d .node rect,#mermaid-svg-N6FgOnd2AZftwk8d .node circle,#mermaid-svg-N6FgOnd2AZftwk8d .node ellipse,#mermaid-svg-N6FgOnd2AZftwk8d .node polygon,#mermaid-svg-N6FgOnd2AZftwk8d .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-N6FgOnd2AZftwk8d .rough-node .label text,#mermaid-svg-N6FgOnd2AZftwk8d .node .label text,#mermaid-svg-N6FgOnd2AZftwk8d .image-shape .label,#mermaid-svg-N6FgOnd2AZftwk8d .icon-shape .label{text-anchor:middle;}#mermaid-svg-N6FgOnd2AZftwk8d .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-N6FgOnd2AZftwk8d .rough-node .label,#mermaid-svg-N6FgOnd2AZftwk8d .node .label,#mermaid-svg-N6FgOnd2AZftwk8d .image-shape .label,#mermaid-svg-N6FgOnd2AZftwk8d .icon-shape .label{text-align:center;}#mermaid-svg-N6FgOnd2AZftwk8d .node.clickable{cursor:pointer;}#mermaid-svg-N6FgOnd2AZftwk8d .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-N6FgOnd2AZftwk8d .arrowheadPath{fill:#333333;}#mermaid-svg-N6FgOnd2AZftwk8d .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-N6FgOnd2AZftwk8d .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-N6FgOnd2AZftwk8d .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-N6FgOnd2AZftwk8d .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-N6FgOnd2AZftwk8d .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-N6FgOnd2AZftwk8d .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-N6FgOnd2AZftwk8d .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-N6FgOnd2AZftwk8d .cluster text{fill:#333;}#mermaid-svg-N6FgOnd2AZftwk8d .cluster span{color:#333;}#mermaid-svg-N6FgOnd2AZftwk8d div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-N6FgOnd2AZftwk8d .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-N6FgOnd2AZftwk8d rect.text{fill:none;stroke-width:0;}#mermaid-svg-N6FgOnd2AZftwk8d .icon-shape,#mermaid-svg-N6FgOnd2AZftwk8d .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-N6FgOnd2AZftwk8d .icon-shape p,#mermaid-svg-N6FgOnd2AZftwk8d .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-N6FgOnd2AZftwk8d .icon-shape .label rect,#mermaid-svg-N6FgOnd2AZftwk8d .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-N6FgOnd2AZftwk8d .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-N6FgOnd2AZftwk8d .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-N6FgOnd2AZftwk8d :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 循环数据 RT/IRT
循环数据 RT/IRT
循环数据 RT/IRT
组态/诊断 NRT
S7-1500
IO Controller
ET 200SP
IO Device
G120 变频器
IO Device
S120 伺服
IO Device
PG/PC 编程器
IO Supervisor
PROFINET 设备命名:
#mermaid-svg-5yIapSPe4BoFx6hU{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-5yIapSPe4BoFx6hU .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-5yIapSPe4BoFx6hU .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-5yIapSPe4BoFx6hU .error-icon{fill:#552222;}#mermaid-svg-5yIapSPe4BoFx6hU .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-5yIapSPe4BoFx6hU .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-5yIapSPe4BoFx6hU .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-5yIapSPe4BoFx6hU .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-5yIapSPe4BoFx6hU .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-5yIapSPe4BoFx6hU .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-5yIapSPe4BoFx6hU .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-5yIapSPe4BoFx6hU .marker{fill:#333333;stroke:#333333;}#mermaid-svg-5yIapSPe4BoFx6hU .marker.cross{stroke:#333333;}#mermaid-svg-5yIapSPe4BoFx6hU svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-5yIapSPe4BoFx6hU p{margin:0;}#mermaid-svg-5yIapSPe4BoFx6hU .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-5yIapSPe4BoFx6hU .cluster-label text{fill:#333;}#mermaid-svg-5yIapSPe4BoFx6hU .cluster-label span{color:#333;}#mermaid-svg-5yIapSPe4BoFx6hU .cluster-label span p{background-color:transparent;}#mermaid-svg-5yIapSPe4BoFx6hU .label text,#mermaid-svg-5yIapSPe4BoFx6hU span{fill:#333;color:#333;}#mermaid-svg-5yIapSPe4BoFx6hU .node rect,#mermaid-svg-5yIapSPe4BoFx6hU .node circle,#mermaid-svg-5yIapSPe4BoFx6hU .node ellipse,#mermaid-svg-5yIapSPe4BoFx6hU .node polygon,#mermaid-svg-5yIapSPe4BoFx6hU .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-5yIapSPe4BoFx6hU .rough-node .label text,#mermaid-svg-5yIapSPe4BoFx6hU .node .label text,#mermaid-svg-5yIapSPe4BoFx6hU .image-shape .label,#mermaid-svg-5yIapSPe4BoFx6hU .icon-shape .label{text-anchor:middle;}#mermaid-svg-5yIapSPe4BoFx6hU .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-5yIapSPe4BoFx6hU .rough-node .label,#mermaid-svg-5yIapSPe4BoFx6hU .node .label,#mermaid-svg-5yIapSPe4BoFx6hU .image-shape .label,#mermaid-svg-5yIapSPe4BoFx6hU .icon-shape .label{text-align:center;}#mermaid-svg-5yIapSPe4BoFx6hU .node.clickable{cursor:pointer;}#mermaid-svg-5yIapSPe4BoFx6hU .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-5yIapSPe4BoFx6hU .arrowheadPath{fill:#333333;}#mermaid-svg-5yIapSPe4BoFx6hU .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-5yIapSPe4BoFx6hU .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-5yIapSPe4BoFx6hU .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-5yIapSPe4BoFx6hU .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-5yIapSPe4BoFx6hU .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-5yIapSPe4BoFx6hU .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-5yIapSPe4BoFx6hU .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-5yIapSPe4BoFx6hU .cluster text{fill:#333;}#mermaid-svg-5yIapSPe4BoFx6hU .cluster span{color:#333;}#mermaid-svg-5yIapSPe4BoFx6hU div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-5yIapSPe4BoFx6hU .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-5yIapSPe4BoFx6hU rect.text{fill:none;stroke-width:0;}#mermaid-svg-5yIapSPe4BoFx6hU .icon-shape,#mermaid-svg-5yIapSPe4BoFx6hU .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-5yIapSPe4BoFx6hU .icon-shape p,#mermaid-svg-5yIapSPe4BoFx6hU .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-5yIapSPe4BoFx6hU .icon-shape .label rect,#mermaid-svg-5yIapSPe4BoFx6hU .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-5yIapSPe4BoFx6hU .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-5yIapSPe4BoFx6hU .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-5yIapSPe4BoFx6hU :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} PROFINET 设备寻址
映射
绑定
设备名
device-1
形如 et200sp-1
IP 地址
由控制器分配
MAC 地址
物理地址
PROFINET 设备以**设备名(Device Name)**而非 IP 作为逻辑标识,控制器通过 DCP(Discovery and Configuration Protocol)发现设备并分配 IP,这比手动配 IP 更便于工程维护。
3.2 PROFIBUS DP(DP)
| 属性 | 说明 |
|---|---|
| 全称 | Decentralized Periphery(分布式外设) |
| 标准 | IEC 61158 / EN 50170(开放标准) |
| 物理层 | RS-485(铜缆)/ 光纤 |
| 速率 | 9.6 kbps -- 12 Mbps |
| 拓扑 | 总线型,最多 126 站(每段 32 站) |
| 主从 | 主站 + 从站,令牌传递 |
| 特点 | 传统现场总线之王,稳定可靠 |
PROFIBUS DP 是 1990 年代兴起的经典现场总线标准,至今仍在大量存量工厂中广泛运行。它采用主从 + 令牌传递机制,主站(通常是 PLC 的 DP 口或 CP 模块)周期性轮询从站(ET 200、变频器等)。
DP 协议版本演进:
| 版本 | 新增能力 |
|---|---|
| DP-V0 | 基本循环数据交换(读/写 I/O) |
| DP-V1 | 非循环数据交换(参数化、诊断、报警) |
| DP-V2 | 等时同步、时钟同步、从站间通信 |
#mermaid-svg-lpjTDxihfo7ykNa2{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-lpjTDxihfo7ykNa2 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-lpjTDxihfo7ykNa2 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-lpjTDxihfo7ykNa2 .error-icon{fill:#552222;}#mermaid-svg-lpjTDxihfo7ykNa2 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-lpjTDxihfo7ykNa2 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-lpjTDxihfo7ykNa2 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-lpjTDxihfo7ykNa2 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-lpjTDxihfo7ykNa2 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-lpjTDxihfo7ykNa2 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-lpjTDxihfo7ykNa2 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-lpjTDxihfo7ykNa2 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-lpjTDxihfo7ykNa2 .marker.cross{stroke:#333333;}#mermaid-svg-lpjTDxihfo7ykNa2 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-lpjTDxihfo7ykNa2 p{margin:0;}#mermaid-svg-lpjTDxihfo7ykNa2 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-lpjTDxihfo7ykNa2 .cluster-label text{fill:#333;}#mermaid-svg-lpjTDxihfo7ykNa2 .cluster-label span{color:#333;}#mermaid-svg-lpjTDxihfo7ykNa2 .cluster-label span p{background-color:transparent;}#mermaid-svg-lpjTDxihfo7ykNa2 .label text,#mermaid-svg-lpjTDxihfo7ykNa2 span{fill:#333;color:#333;}#mermaid-svg-lpjTDxihfo7ykNa2 .node rect,#mermaid-svg-lpjTDxihfo7ykNa2 .node circle,#mermaid-svg-lpjTDxihfo7ykNa2 .node ellipse,#mermaid-svg-lpjTDxihfo7ykNa2 .node polygon,#mermaid-svg-lpjTDxihfo7ykNa2 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-lpjTDxihfo7ykNa2 .rough-node .label text,#mermaid-svg-lpjTDxihfo7ykNa2 .node .label text,#mermaid-svg-lpjTDxihfo7ykNa2 .image-shape .label,#mermaid-svg-lpjTDxihfo7ykNa2 .icon-shape .label{text-anchor:middle;}#mermaid-svg-lpjTDxihfo7ykNa2 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-lpjTDxihfo7ykNa2 .rough-node .label,#mermaid-svg-lpjTDxihfo7ykNa2 .node .label,#mermaid-svg-lpjTDxihfo7ykNa2 .image-shape .label,#mermaid-svg-lpjTDxihfo7ykNa2 .icon-shape .label{text-align:center;}#mermaid-svg-lpjTDxihfo7ykNa2 .node.clickable{cursor:pointer;}#mermaid-svg-lpjTDxihfo7ykNa2 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-lpjTDxihfo7ykNa2 .arrowheadPath{fill:#333333;}#mermaid-svg-lpjTDxihfo7ykNa2 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-lpjTDxihfo7ykNa2 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-lpjTDxihfo7ykNa2 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-lpjTDxihfo7ykNa2 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-lpjTDxihfo7ykNa2 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-lpjTDxihfo7ykNa2 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-lpjTDxihfo7ykNa2 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-lpjTDxihfo7ykNa2 .cluster text{fill:#333;}#mermaid-svg-lpjTDxihfo7ykNa2 .cluster span{color:#333;}#mermaid-svg-lpjTDxihfo7ykNa2 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-lpjTDxihfo7ykNa2 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-lpjTDxihfo7ykNa2 rect.text{fill:none;stroke-width:0;}#mermaid-svg-lpjTDxihfo7ykNa2 .icon-shape,#mermaid-svg-lpjTDxihfo7ykNa2 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-lpjTDxihfo7ykNa2 .icon-shape p,#mermaid-svg-lpjTDxihfo7ykNa2 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-lpjTDxihfo7ykNa2 .icon-shape .label rect,#mermaid-svg-lpjTDxihfo7ykNa2 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-lpjTDxihfo7ykNa2 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-lpjTDxihfo7ykNa2 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-lpjTDxihfo7ykNa2 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} RS-485 总线
DP 主站
S7-300 内置 DP 口
或 CP 342-5
ET 200M
从站
ET 200S
从站
MM 变频器
从站
S7-200 + EM277
从站
3.3 PROFINET vs PROFIBUS DP 对比
| 维度 | PROFINET | PROFIBUS DP |
|---|---|---|
| 物理层 | 标准以太网(RJ-45/光纤) | RS-485 / 光纤 |
| 速率 | 100 Mbps / 1 Gbps | 最高 12 Mbps |
| 拓扑 | 星型/树型/环型/线型(灵活) | 严格总线型 |
| 实时性 | RT / IRT(<1ms) | 等时同步(DP-V2) |
| 与 IT 集成 | 天然兼容 TCP/IP | 需网关(PROFIBUS-to-PROFINET) |
| 节点数量 | 理论上无上限 | 每段 32 站,最多 126 站 |
| 年代 | 2000s 至今(主流方向) | 1990s(存量市场为主) |
| 接线 | 标准网线,成本低 | 专用紫色电缆,成本高 |
| 诊断能力 | 丰富(Web/SNMP/LLDP) | 有限 |
#mermaid-svg-e48D3kwTGTeaJXEE{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-e48D3kwTGTeaJXEE .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-e48D3kwTGTeaJXEE .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-e48D3kwTGTeaJXEE .error-icon{fill:#552222;}#mermaid-svg-e48D3kwTGTeaJXEE .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-e48D3kwTGTeaJXEE .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-e48D3kwTGTeaJXEE .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-e48D3kwTGTeaJXEE .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-e48D3kwTGTeaJXEE .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-e48D3kwTGTeaJXEE .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-e48D3kwTGTeaJXEE .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-e48D3kwTGTeaJXEE .marker{fill:#333333;stroke:#333333;}#mermaid-svg-e48D3kwTGTeaJXEE .marker.cross{stroke:#333333;}#mermaid-svg-e48D3kwTGTeaJXEE svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-e48D3kwTGTeaJXEE p{margin:0;}#mermaid-svg-e48D3kwTGTeaJXEE .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-e48D3kwTGTeaJXEE .cluster-label text{fill:#333;}#mermaid-svg-e48D3kwTGTeaJXEE .cluster-label span{color:#333;}#mermaid-svg-e48D3kwTGTeaJXEE .cluster-label span p{background-color:transparent;}#mermaid-svg-e48D3kwTGTeaJXEE .label text,#mermaid-svg-e48D3kwTGTeaJXEE span{fill:#333;color:#333;}#mermaid-svg-e48D3kwTGTeaJXEE .node rect,#mermaid-svg-e48D3kwTGTeaJXEE .node circle,#mermaid-svg-e48D3kwTGTeaJXEE .node ellipse,#mermaid-svg-e48D3kwTGTeaJXEE .node polygon,#mermaid-svg-e48D3kwTGTeaJXEE .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-e48D3kwTGTeaJXEE .rough-node .label text,#mermaid-svg-e48D3kwTGTeaJXEE .node .label text,#mermaid-svg-e48D3kwTGTeaJXEE .image-shape .label,#mermaid-svg-e48D3kwTGTeaJXEE .icon-shape .label{text-anchor:middle;}#mermaid-svg-e48D3kwTGTeaJXEE .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-e48D3kwTGTeaJXEE .rough-node .label,#mermaid-svg-e48D3kwTGTeaJXEE .node .label,#mermaid-svg-e48D3kwTGTeaJXEE .image-shape .label,#mermaid-svg-e48D3kwTGTeaJXEE .icon-shape .label{text-align:center;}#mermaid-svg-e48D3kwTGTeaJXEE .node.clickable{cursor:pointer;}#mermaid-svg-e48D3kwTGTeaJXEE .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-e48D3kwTGTeaJXEE .arrowheadPath{fill:#333333;}#mermaid-svg-e48D3kwTGTeaJXEE .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-e48D3kwTGTeaJXEE .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-e48D3kwTGTeaJXEE .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-e48D3kwTGTeaJXEE .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-e48D3kwTGTeaJXEE .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-e48D3kwTGTeaJXEE .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-e48D3kwTGTeaJXEE .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-e48D3kwTGTeaJXEE .cluster text{fill:#333;}#mermaid-svg-e48D3kwTGTeaJXEE .cluster span{color:#333;}#mermaid-svg-e48D3kwTGTeaJXEE div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-e48D3kwTGTeaJXEE .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-e48D3kwTGTeaJXEE rect.text{fill:none;stroke-width:0;}#mermaid-svg-e48D3kwTGTeaJXEE .icon-shape,#mermaid-svg-e48D3kwTGTeaJXEE .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-e48D3kwTGTeaJXEE .icon-shape p,#mermaid-svg-e48D3kwTGTeaJXEE .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-e48D3kwTGTeaJXEE .icon-shape .label rect,#mermaid-svg-e48D3kwTGTeaJXEE .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-e48D3kwTGTeaJXEE .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-e48D3kwTGTeaJXEE .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-e48D3kwTGTeaJXEE :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 过渡策略
DP
PN
存量 PROFIBUS DP
老设备
PN/DP 网关
IE/PB Link
新 PROFINET
网络
工程实践 :新项目普遍直接采用 PROFINET;存量 PROFIBUS DP 工厂在升级时,常通过 IE/PB Link 网关把 DP 网段接入 PROFINET 主干,实现平滑过渡,而非一次性替换所有设备。
4. 串口现场层协议
4.1 PPI(Point-to-Point Interface)
| 属性 | 说明 |
|---|---|
| 全称 | Point-to-Point Interface |
| 物理层 | RS-485,187.5 kbit/s |
| 应用对象 | S7-200 / S7-200 SMART |
| 拓扑 | 主从式,单主站或多主站 |
| 特点 | 西门子专为 S7-200 设计的轻量级协议,基于 RS-485 电气标准 |
PPI 是西门子 S7-200 系列的核心通信协议。它基于 RS-485 物理层,采用主从轮询机制。在单主站模式下,一个上位机(PG/PC)通过 PPI 电缆与 PLC 通信;在多主站模式下,多个主站设备可以共享总线。
数据帧结构:
+--------+--------+--------+--------+--------+--------+--------+
| SD | DA | SA | FC | DATA | FCS | ED |
| (1B) | (1B) | (1B) | (1B) | (nB) | (1B) | (1B) |
+--------+--------+--------+--------+--------+--------+--------+
SD=Start Delimiter (0x10 或 0x68)
DA=Destination Address
SA=Source Address
FC=Function Code
FCS=Frame Check Sequence
ED=End Delimiter (0x16)
4.2 PPI OverTcp
| 属性 | 说明 |
|---|---|
| 本质 | PPI 协议的 TCP 透传封装 |
| 用途 | 通过以太网网关/串口服务器远程访问 PPI 设备 |
| 典型场景 | S7-200 通过串口服务器接入以太网 |
| 端口 | 通常为 102 或其他自定义端口 |
PPI OverTcp 并非西门子官方原生协议,而是第三方设备(如串口服务器、协议网关)将 PPI 报文封装在 TCP 载荷中进行传输的方案。它使得仅有 RS-485 PPI 接口的 S7-200 可以通过以太网进行远程通信。
S7-200 PLC 串口服务器/网关 上位机 S7-200 PLC 串口服务器/网关 上位机 #mermaid-svg-R9ObgmIKd5kRWbWv{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-R9ObgmIKd5kRWbWv .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-R9ObgmIKd5kRWbWv .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-R9ObgmIKd5kRWbWv .error-icon{fill:#552222;}#mermaid-svg-R9ObgmIKd5kRWbWv .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-R9ObgmIKd5kRWbWv .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-R9ObgmIKd5kRWbWv .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-R9ObgmIKd5kRWbWv .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-R9ObgmIKd5kRWbWv .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-R9ObgmIKd5kRWbWv .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-R9ObgmIKd5kRWbWv .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-R9ObgmIKd5kRWbWv .marker{fill:#333333;stroke:#333333;}#mermaid-svg-R9ObgmIKd5kRWbWv .marker.cross{stroke:#333333;}#mermaid-svg-R9ObgmIKd5kRWbWv svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-R9ObgmIKd5kRWbWv p{margin:0;}#mermaid-svg-R9ObgmIKd5kRWbWv .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-R9ObgmIKd5kRWbWv text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-R9ObgmIKd5kRWbWv .actor-line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-R9ObgmIKd5kRWbWv .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaid-svg-R9ObgmIKd5kRWbWv .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-R9ObgmIKd5kRWbWv .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-R9ObgmIKd5kRWbWv #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-R9ObgmIKd5kRWbWv .sequenceNumber{fill:white;}#mermaid-svg-R9ObgmIKd5kRWbWv #sequencenumber{fill:#333;}#mermaid-svg-R9ObgmIKd5kRWbWv #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-R9ObgmIKd5kRWbWv .messageText{fill:#333;stroke:none;}#mermaid-svg-R9ObgmIKd5kRWbWv .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-R9ObgmIKd5kRWbWv .labelText,#mermaid-svg-R9ObgmIKd5kRWbWv .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-R9ObgmIKd5kRWbWv .loopText,#mermaid-svg-R9ObgmIKd5kRWbWv .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-R9ObgmIKd5kRWbWv .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-R9ObgmIKd5kRWbWv .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-R9ObgmIKd5kRWbWv .noteText,#mermaid-svg-R9ObgmIKd5kRWbWv .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-R9ObgmIKd5kRWbWv .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-R9ObgmIKd5kRWbWv .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-R9ObgmIKd5kRWbWv .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-R9ObgmIKd5kRWbWv .actorPopupMenu{position:absolute;}#mermaid-svg-R9ObgmIKd5kRWbWv .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-R9ObgmIKd5kRWbWv .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-R9ObgmIKd5kRWbWv .actor-man circle,#mermaid-svg-R9ObgmIKd5kRWbWv line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-R9ObgmIKd5kRWbWv :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} TCP 连接建立 PPI 报文封装在 TCP 载荷中 解封为 RS-485 PPI 帧 PPI 响应 TCP 封装响应
4.3 MPI(Multi-Point Interface)
| 属性 | 说明 |
|---|---|
| 全称 | Multi-Point Interface |
| 物理层 | RS-485,187.5 kbit/s(默认),最高 12 Mbit/s |
| 应用对象 | S7-300 / S7-400 / 早期 S7-200 |
| 拓扑 | 总线型,最多 32 个节点 |
| 特点 | 支持 PG/OP 通信、S7 通信、全局数据通信 |
MPI 是比 PPI 更强大的串口协议,主要用于 S7-300/400 系列。它不仅仅是点对点接口,而是真正的多点总线。MPI 网络支持:
- PG/OP 通信:编程器/操作面板与 PLC 的通信
- S7 基本通信(S7 Basic Communication):PLC 之间的数据交换
- 全局数据(Global Data):周期性广播式数据交换
MPI 网络中每个节点需要唯一的 MPI 地址(0-31)。地址 0 通常保留给编程器。
#mermaid-svg-OcGQzQb9DecYdjxb{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-OcGQzQb9DecYdjxb .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-OcGQzQb9DecYdjxb .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-OcGQzQb9DecYdjxb .error-icon{fill:#552222;}#mermaid-svg-OcGQzQb9DecYdjxb .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-OcGQzQb9DecYdjxb .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-OcGQzQb9DecYdjxb .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-OcGQzQb9DecYdjxb .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-OcGQzQb9DecYdjxb .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-OcGQzQb9DecYdjxb .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-OcGQzQb9DecYdjxb .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-OcGQzQb9DecYdjxb .marker{fill:#333333;stroke:#333333;}#mermaid-svg-OcGQzQb9DecYdjxb .marker.cross{stroke:#333333;}#mermaid-svg-OcGQzQb9DecYdjxb svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-OcGQzQb9DecYdjxb p{margin:0;}#mermaid-svg-OcGQzQb9DecYdjxb .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-OcGQzQb9DecYdjxb .cluster-label text{fill:#333;}#mermaid-svg-OcGQzQb9DecYdjxb .cluster-label span{color:#333;}#mermaid-svg-OcGQzQb9DecYdjxb .cluster-label span p{background-color:transparent;}#mermaid-svg-OcGQzQb9DecYdjxb .label text,#mermaid-svg-OcGQzQb9DecYdjxb span{fill:#333;color:#333;}#mermaid-svg-OcGQzQb9DecYdjxb .node rect,#mermaid-svg-OcGQzQb9DecYdjxb .node circle,#mermaid-svg-OcGQzQb9DecYdjxb .node ellipse,#mermaid-svg-OcGQzQb9DecYdjxb .node polygon,#mermaid-svg-OcGQzQb9DecYdjxb .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-OcGQzQb9DecYdjxb .rough-node .label text,#mermaid-svg-OcGQzQb9DecYdjxb .node .label text,#mermaid-svg-OcGQzQb9DecYdjxb .image-shape .label,#mermaid-svg-OcGQzQb9DecYdjxb .icon-shape .label{text-anchor:middle;}#mermaid-svg-OcGQzQb9DecYdjxb .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-OcGQzQb9DecYdjxb .rough-node .label,#mermaid-svg-OcGQzQb9DecYdjxb .node .label,#mermaid-svg-OcGQzQb9DecYdjxb .image-shape .label,#mermaid-svg-OcGQzQb9DecYdjxb .icon-shape .label{text-align:center;}#mermaid-svg-OcGQzQb9DecYdjxb .node.clickable{cursor:pointer;}#mermaid-svg-OcGQzQb9DecYdjxb .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-OcGQzQb9DecYdjxb .arrowheadPath{fill:#333333;}#mermaid-svg-OcGQzQb9DecYdjxb .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-OcGQzQb9DecYdjxb .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-OcGQzQb9DecYdjxb .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-OcGQzQb9DecYdjxb .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-OcGQzQb9DecYdjxb .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-OcGQzQb9DecYdjxb .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-OcGQzQb9DecYdjxb .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-OcGQzQb9DecYdjxb .cluster text{fill:#333;}#mermaid-svg-OcGQzQb9DecYdjxb .cluster span{color:#333;}#mermaid-svg-OcGQzQb9DecYdjxb div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-OcGQzQb9DecYdjxb .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-OcGQzQb9DecYdjxb rect.text{fill:none;stroke-width:0;}#mermaid-svg-OcGQzQb9DecYdjxb .icon-shape,#mermaid-svg-OcGQzQb9DecYdjxb .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-OcGQzQb9DecYdjxb .icon-shape p,#mermaid-svg-OcGQzQb9DecYdjxb .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-OcGQzQb9DecYdjxb .icon-shape .label rect,#mermaid-svg-OcGQzQb9DecYdjxb .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-OcGQzQb9DecYdjxb .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-OcGQzQb9DecYdjxb .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-OcGQzQb9DecYdjxb :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} MPI 网络
RS-485
编程器
MPI=0
操作面板
MPI=1
S7-300
MPI=2
S7-300
MPI=3
S7-400
MPI=4
5. 以太网控制层协议
5.1 S7 Communication(S7 协议)
| 属性 | 说明 |
|---|---|
| 基于 | ISO-on-TCP(RFC 1006)或原生 TCP |
| 默认端口 | TCP 102 |
| 应用对象 | S7-300/400/1200/1500 |
| OSI 层级 | 应用层协议 |
S7 Communication 是西门子最核心的以太网通信协议,通常被称为 "S7 协议"。它承载在 ISO-on-TCP(RFC 1006)之上,使用 TCP 102 端口。
协议栈:
#mermaid-svg-DfD69IVltlrRpy7u{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-DfD69IVltlrRpy7u .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-DfD69IVltlrRpy7u .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-DfD69IVltlrRpy7u .error-icon{fill:#552222;}#mermaid-svg-DfD69IVltlrRpy7u .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-DfD69IVltlrRpy7u .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-DfD69IVltlrRpy7u .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-DfD69IVltlrRpy7u .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-DfD69IVltlrRpy7u .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-DfD69IVltlrRpy7u .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-DfD69IVltlrRpy7u .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-DfD69IVltlrRpy7u .marker{fill:#333333;stroke:#333333;}#mermaid-svg-DfD69IVltlrRpy7u .marker.cross{stroke:#333333;}#mermaid-svg-DfD69IVltlrRpy7u svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-DfD69IVltlrRpy7u p{margin:0;}#mermaid-svg-DfD69IVltlrRpy7u .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-DfD69IVltlrRpy7u .cluster-label text{fill:#333;}#mermaid-svg-DfD69IVltlrRpy7u .cluster-label span{color:#333;}#mermaid-svg-DfD69IVltlrRpy7u .cluster-label span p{background-color:transparent;}#mermaid-svg-DfD69IVltlrRpy7u .label text,#mermaid-svg-DfD69IVltlrRpy7u span{fill:#333;color:#333;}#mermaid-svg-DfD69IVltlrRpy7u .node rect,#mermaid-svg-DfD69IVltlrRpy7u .node circle,#mermaid-svg-DfD69IVltlrRpy7u .node ellipse,#mermaid-svg-DfD69IVltlrRpy7u .node polygon,#mermaid-svg-DfD69IVltlrRpy7u .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-DfD69IVltlrRpy7u .rough-node .label text,#mermaid-svg-DfD69IVltlrRpy7u .node .label text,#mermaid-svg-DfD69IVltlrRpy7u .image-shape .label,#mermaid-svg-DfD69IVltlrRpy7u .icon-shape .label{text-anchor:middle;}#mermaid-svg-DfD69IVltlrRpy7u .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-DfD69IVltlrRpy7u .rough-node .label,#mermaid-svg-DfD69IVltlrRpy7u .node .label,#mermaid-svg-DfD69IVltlrRpy7u .image-shape .label,#mermaid-svg-DfD69IVltlrRpy7u .icon-shape .label{text-align:center;}#mermaid-svg-DfD69IVltlrRpy7u .node.clickable{cursor:pointer;}#mermaid-svg-DfD69IVltlrRpy7u .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-DfD69IVltlrRpy7u .arrowheadPath{fill:#333333;}#mermaid-svg-DfD69IVltlrRpy7u .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-DfD69IVltlrRpy7u .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-DfD69IVltlrRpy7u .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-DfD69IVltlrRpy7u .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-DfD69IVltlrRpy7u .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-DfD69IVltlrRpy7u .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-DfD69IVltlrRpy7u .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-DfD69IVltlrRpy7u .cluster text{fill:#333;}#mermaid-svg-DfD69IVltlrRpy7u .cluster span{color:#333;}#mermaid-svg-DfD69IVltlrRpy7u div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-DfD69IVltlrRpy7u .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-DfD69IVltlrRpy7u rect.text{fill:none;stroke-width:0;}#mermaid-svg-DfD69IVltlrRpy7u .icon-shape,#mermaid-svg-DfD69IVltlrRpy7u .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-DfD69IVltlrRpy7u .icon-shape p,#mermaid-svg-DfD69IVltlrRpy7u .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-DfD69IVltlrRpy7u .icon-shape .label rect,#mermaid-svg-DfD69IVltlrRpy7u .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-DfD69IVltlrRpy7u .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-DfD69IVltlrRpy7u .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-DfD69IVltlrRpy7u :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} S7 Communication
应用层协议
ISO Transport
ISO 8073 Class 0
TCP
RFC 793
IP
Ethernet
S7 协议 PDU 结构:
TPKT Header (4B) + COTP Header (3-5B) + S7 Header (10-12B) + S7 Parameter + S7 Data
TPKT Header:
+--------+--------+--------+--------+
| vrs | reserve| length |
| 0x03 | 0x00 | (Big Endian) |
+--------+--------+--------+--------+
COTP Header (Connection Oriented Transport Protocol):
+--------+--------+--------+
| length | PDU type | ... |
+--------+--------+--------+
S7 Header:
+--------+--------+--------+--------+
| 0x32 | type | reserve| req_id |
+--------+--------+--------+--------+
| param_len | data_len |
+--------+--------+--------+--------+
| error_code (optional) |
+--------+--------+--------+--------+
S7 协议功能码:
| 功能码 | 含义 | 说明 |
|---|---|---|
| 0x04 | Read | 读取数据块/寄存器 |
| 0x05 | Write | 写入数据块/寄存器 |
| 0x1A | Request Download | 请求下载程序 |
| 0x1B | Download Block | 下载程序块 |
| 0x1C | Download Ended | 下载结束 |
| 0x1D | Start Upload | 开始上传 |
| 0x1E | Upload | 上传程序块 |
| 0x1F | End Upload | 上传结束 |
| 0x28 | PLC Control | 启动/停止/复位 PLC |
| 0x29 | PLC Stop | 停止 PLC |
5.2 S7-PLUS
| 属性 | 说明 |
|---|---|
| 本质 | S7 Communication 的扩展/增强版本 |
| 面向对象 | S7-1500 高级功能 |
| 新增能力 | 更大 PDU、优化数据传输、安全通信 |
S7-PLUS 并非一个独立协议,而是指 S7-1500 系列在标准 S7 通信基础上的增强能力集合:
- 更大 PDU 尺寸:S7-1500 支持最大 64KB 的 PDU,相比 S7-300/400 的 240-480 字节大幅提升
- 优化块访问:针对 S7-1500 的优化 DB(Optimized DB)提供更快的数据访问
- 通信负载优化:支持更高效的批量数据传输
#mermaid-svg-mJbRuYbeSX69nlil{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-mJbRuYbeSX69nlil .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-mJbRuYbeSX69nlil .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-mJbRuYbeSX69nlil .error-icon{fill:#552222;}#mermaid-svg-mJbRuYbeSX69nlil .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-mJbRuYbeSX69nlil .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-mJbRuYbeSX69nlil .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-mJbRuYbeSX69nlil .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-mJbRuYbeSX69nlil .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-mJbRuYbeSX69nlil .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-mJbRuYbeSX69nlil .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-mJbRuYbeSX69nlil .marker{fill:#333333;stroke:#333333;}#mermaid-svg-mJbRuYbeSX69nlil .marker.cross{stroke:#333333;}#mermaid-svg-mJbRuYbeSX69nlil svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-mJbRuYbeSX69nlil p{margin:0;}#mermaid-svg-mJbRuYbeSX69nlil .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-mJbRuYbeSX69nlil .cluster-label text{fill:#333;}#mermaid-svg-mJbRuYbeSX69nlil .cluster-label span{color:#333;}#mermaid-svg-mJbRuYbeSX69nlil .cluster-label span p{background-color:transparent;}#mermaid-svg-mJbRuYbeSX69nlil .label text,#mermaid-svg-mJbRuYbeSX69nlil span{fill:#333;color:#333;}#mermaid-svg-mJbRuYbeSX69nlil .node rect,#mermaid-svg-mJbRuYbeSX69nlil .node circle,#mermaid-svg-mJbRuYbeSX69nlil .node ellipse,#mermaid-svg-mJbRuYbeSX69nlil .node polygon,#mermaid-svg-mJbRuYbeSX69nlil .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-mJbRuYbeSX69nlil .rough-node .label text,#mermaid-svg-mJbRuYbeSX69nlil .node .label text,#mermaid-svg-mJbRuYbeSX69nlil .image-shape .label,#mermaid-svg-mJbRuYbeSX69nlil .icon-shape .label{text-anchor:middle;}#mermaid-svg-mJbRuYbeSX69nlil .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-mJbRuYbeSX69nlil .rough-node .label,#mermaid-svg-mJbRuYbeSX69nlil .node .label,#mermaid-svg-mJbRuYbeSX69nlil .image-shape .label,#mermaid-svg-mJbRuYbeSX69nlil .icon-shape .label{text-align:center;}#mermaid-svg-mJbRuYbeSX69nlil .node.clickable{cursor:pointer;}#mermaid-svg-mJbRuYbeSX69nlil .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-mJbRuYbeSX69nlil .arrowheadPath{fill:#333333;}#mermaid-svg-mJbRuYbeSX69nlil .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-mJbRuYbeSX69nlil .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-mJbRuYbeSX69nlil .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-mJbRuYbeSX69nlil .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-mJbRuYbeSX69nlil .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-mJbRuYbeSX69nlil .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-mJbRuYbeSX69nlil .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-mJbRuYbeSX69nlil .cluster text{fill:#333;}#mermaid-svg-mJbRuYbeSX69nlil .cluster span{color:#333;}#mermaid-svg-mJbRuYbeSX69nlil div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-mJbRuYbeSX69nlil .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-mJbRuYbeSX69nlil rect.text{fill:none;stroke-width:0;}#mermaid-svg-mJbRuYbeSX69nlil .icon-shape,#mermaid-svg-mJbRuYbeSX69nlil .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-mJbRuYbeSX69nlil .icon-shape p,#mermaid-svg-mJbRuYbeSX69nlil .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-mJbRuYbeSX69nlil .icon-shape .label rect,#mermaid-svg-mJbRuYbeSX69nlil .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-mJbRuYbeSX69nlil .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-mJbRuYbeSX69nlil .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-mJbRuYbeSX69nlil :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} S7-1500
S7-1200
S7-300/400
演进
演进
S7 Protocol
PDU ≤ 480B
S7 Protocol
PDU ≤ 4KB
S7-PLUS
PDU ≤ 64KB
6. 信息管理层协议
6.1 SIE Fetch/Write
| 属性 | 说明 |
|---|---|
| 全称 | Siemens Fetch / Write Protocol |
| 基于 | ISO-on-TCP 或原生 TCP |
| 默认端口 | TCP 102(与 S7 协议共享端口) |
| 应用对象 | S7-300/400(带以太网 CP)/ S7-1500 |
| 特点 | 面向第三方系统的标准化数据交换接口 |
Fetch/Write 是西门子提供的一种第三方系统访问接口,允许非西门子设备(如 PC、SCADA、MES 系统)直接读写 PLC 内存区域。与 S7 协议相比,Fetch/Write 更简单直接:
- Fetch:从 PLC 读取数据
- Write:向 PLC 写入数据
Fetch/Write 与 S7 协议的区别:
| 特性 | S7 Communication | Fetch/Write |
|---|---|---|
| 协议复杂度 | 高(需会话管理) | 低(无状态请求) |
| 功能范围 | 完整(读/写/控制/诊断) | 仅读/写 |
| 认证机制 | 会话建立 | 简单访问权限 |
| 适用场景 | 西门子生态内部 | 第三方系统集成 |
| 编程复杂度 | 中等 | 低 |
S7-300 + CP343 第三方系统 S7-300 + CP343 第三方系统 #mermaid-svg-rpPLYKiUr1l5C63u{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-rpPLYKiUr1l5C63u .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-rpPLYKiUr1l5C63u .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-rpPLYKiUr1l5C63u .error-icon{fill:#552222;}#mermaid-svg-rpPLYKiUr1l5C63u .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-rpPLYKiUr1l5C63u .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-rpPLYKiUr1l5C63u .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-rpPLYKiUr1l5C63u .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-rpPLYKiUr1l5C63u .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-rpPLYKiUr1l5C63u .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-rpPLYKiUr1l5C63u .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-rpPLYKiUr1l5C63u .marker{fill:#333333;stroke:#333333;}#mermaid-svg-rpPLYKiUr1l5C63u .marker.cross{stroke:#333333;}#mermaid-svg-rpPLYKiUr1l5C63u svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-rpPLYKiUr1l5C63u p{margin:0;}#mermaid-svg-rpPLYKiUr1l5C63u .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-rpPLYKiUr1l5C63u text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-rpPLYKiUr1l5C63u .actor-line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-rpPLYKiUr1l5C63u .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaid-svg-rpPLYKiUr1l5C63u .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-rpPLYKiUr1l5C63u .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-rpPLYKiUr1l5C63u #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-rpPLYKiUr1l5C63u .sequenceNumber{fill:white;}#mermaid-svg-rpPLYKiUr1l5C63u #sequencenumber{fill:#333;}#mermaid-svg-rpPLYKiUr1l5C63u #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-rpPLYKiUr1l5C63u .messageText{fill:#333;stroke:none;}#mermaid-svg-rpPLYKiUr1l5C63u .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-rpPLYKiUr1l5C63u .labelText,#mermaid-svg-rpPLYKiUr1l5C63u .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-rpPLYKiUr1l5C63u .loopText,#mermaid-svg-rpPLYKiUr1l5C63u .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-rpPLYKiUr1l5C63u .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-rpPLYKiUr1l5C63u .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-rpPLYKiUr1l5C63u .noteText,#mermaid-svg-rpPLYKiUr1l5C63u .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-rpPLYKiUr1l5C63u .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-rpPLYKiUr1l5C63u .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-rpPLYKiUr1l5C63u .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-rpPLYKiUr1l5C63u .actorPopupMenu{position:absolute;}#mermaid-svg-rpPLYKiUr1l5C63u .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-rpPLYKiUr1l5C63u .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-rpPLYKiUr1l5C63u .actor-man circle,#mermaid-svg-rpPLYKiUr1l5C63u line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-rpPLYKiUr1l5C63u :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Fetch/Write 无状态通信 FETCH Request (DB Area, Offset, Length) FETCH Response (Data) WRITE Request (DB Area, Offset, Data) WRITE Response (Status)
内存寻址格式:
Fetch/Write 使用绝对地址寻址:
DBX.DBW10 → DB1 的字 10
MB100 → 位存储区字节 100
IW64 → 输入字 64
QW32 → 输出字 32
6.2 SIE WebApi
| 属性 | 说明 |
|---|---|
| 全称 | Siemens Web API |
| 基于 | HTTP/REST + JSON |
| 默认端口 | 80 / 443(HTTPS) |
| 应用对象 | S7-1200 FW 4.0+ / S7-1500 |
| 特点 | 现代 RESTful 接口,Web 原生 |
SIE WebApi 是西门子为新一代 PLC(S7-1200/1500)提供的 HTTP REST API,允许通过标准 Web 技术(HTTP/JSON)访问 PLC 数据。这是西门子向 IT/OT 融合迈出的重要一步。
核心功能:
- 读取/写入 PLC 变量(支持符号寻址)
- 读取/写入数据块
- 调用 PLC 函数块(FB/FC)
- 读取诊断信息
- 读取 PLC 状态(RUN/STOP/ERROR)
#mermaid-svg-MCSDTqfW4VNw2trM{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-MCSDTqfW4VNw2trM .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-MCSDTqfW4VNw2trM .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-MCSDTqfW4VNw2trM .error-icon{fill:#552222;}#mermaid-svg-MCSDTqfW4VNw2trM .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-MCSDTqfW4VNw2trM .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-MCSDTqfW4VNw2trM .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-MCSDTqfW4VNw2trM .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-MCSDTqfW4VNw2trM .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-MCSDTqfW4VNw2trM .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-MCSDTqfW4VNw2trM .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-MCSDTqfW4VNw2trM .marker{fill:#333333;stroke:#333333;}#mermaid-svg-MCSDTqfW4VNw2trM .marker.cross{stroke:#333333;}#mermaid-svg-MCSDTqfW4VNw2trM svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-MCSDTqfW4VNw2trM p{margin:0;}#mermaid-svg-MCSDTqfW4VNw2trM .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-MCSDTqfW4VNw2trM .cluster-label text{fill:#333;}#mermaid-svg-MCSDTqfW4VNw2trM .cluster-label span{color:#333;}#mermaid-svg-MCSDTqfW4VNw2trM .cluster-label span p{background-color:transparent;}#mermaid-svg-MCSDTqfW4VNw2trM .label text,#mermaid-svg-MCSDTqfW4VNw2trM span{fill:#333;color:#333;}#mermaid-svg-MCSDTqfW4VNw2trM .node rect,#mermaid-svg-MCSDTqfW4VNw2trM .node circle,#mermaid-svg-MCSDTqfW4VNw2trM .node ellipse,#mermaid-svg-MCSDTqfW4VNw2trM .node polygon,#mermaid-svg-MCSDTqfW4VNw2trM .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-MCSDTqfW4VNw2trM .rough-node .label text,#mermaid-svg-MCSDTqfW4VNw2trM .node .label text,#mermaid-svg-MCSDTqfW4VNw2trM .image-shape .label,#mermaid-svg-MCSDTqfW4VNw2trM .icon-shape .label{text-anchor:middle;}#mermaid-svg-MCSDTqfW4VNw2trM .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-MCSDTqfW4VNw2trM .rough-node .label,#mermaid-svg-MCSDTqfW4VNw2trM .node .label,#mermaid-svg-MCSDTqfW4VNw2trM .image-shape .label,#mermaid-svg-MCSDTqfW4VNw2trM .icon-shape .label{text-align:center;}#mermaid-svg-MCSDTqfW4VNw2trM .node.clickable{cursor:pointer;}#mermaid-svg-MCSDTqfW4VNw2trM .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-MCSDTqfW4VNw2trM .arrowheadPath{fill:#333333;}#mermaid-svg-MCSDTqfW4VNw2trM .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-MCSDTqfW4VNw2trM .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-MCSDTqfW4VNw2trM .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-MCSDTqfW4VNw2trM .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-MCSDTqfW4VNw2trM .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-MCSDTqfW4VNw2trM .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-MCSDTqfW4VNw2trM .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-MCSDTqfW4VNw2trM .cluster text{fill:#333;}#mermaid-svg-MCSDTqfW4VNw2trM .cluster span{color:#333;}#mermaid-svg-MCSDTqfW4VNw2trM div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-MCSDTqfW4VNw2trM .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-MCSDTqfW4VNw2trM rect.text{fill:none;stroke-width:0;}#mermaid-svg-MCSDTqfW4VNw2trM .icon-shape,#mermaid-svg-MCSDTqfW4VNw2trM .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-MCSDTqfW4VNw2trM .icon-shape p,#mermaid-svg-MCSDTqfW4VNw2trM .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-MCSDTqfW4VNw2trM .icon-shape .label rect,#mermaid-svg-MCSDTqfW4VNw2trM .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-MCSDTqfW4VNw2trM .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-MCSDTqfW4VNw2trM .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-MCSDTqfW4VNw2trM :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} WebApi 方式
Web Browser
HTTP/REST
S7-1500
内置 Web Server
Mobile App
Python/JS Script
传统方式
OPC Client
OPC Server
S7 Protocol
S7-1500
WebApi 请求示例:
http
GET /api/plc/variable?path="MyDB".Temperature HTTP/1.1
Host: 192.168.1.10
Accept: application/json
Response:
{
"value": 23.5,
"dataType": "Real",
"quality": "GOOD",
"timestamp": "2024-01-15T08:30:00Z"
}
7. 网关/服务器层协议
7.1 S7 Virtual Server
| 属性 | 说明 |
|---|---|
| 本质 | 软件实现的 S7 协议服务器 |
| 功能 | 在 PC/服务器端模拟 S7 PLC 的行为 |
| 用途 | 测试、仿真、协议逆向分析 |
| 典型应用 | HMI/SCADA 开发测试、协议学习 |
S7 Virtual Server 是一种软件模拟器,在标准计算机上运行,对外表现为一个真实的 S7 PLC。它接受 S7 协议的连接请求,响应读/写/控制命令,但底层数据来自软件模拟而非真实硬件。
#mermaid-svg-ykoWwTqtu0frzHzn{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-ykoWwTqtu0frzHzn .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-ykoWwTqtu0frzHzn .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-ykoWwTqtu0frzHzn .error-icon{fill:#552222;}#mermaid-svg-ykoWwTqtu0frzHzn .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-ykoWwTqtu0frzHzn .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-ykoWwTqtu0frzHzn .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ykoWwTqtu0frzHzn .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ykoWwTqtu0frzHzn .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-ykoWwTqtu0frzHzn .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ykoWwTqtu0frzHzn .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ykoWwTqtu0frzHzn .marker{fill:#333333;stroke:#333333;}#mermaid-svg-ykoWwTqtu0frzHzn .marker.cross{stroke:#333333;}#mermaid-svg-ykoWwTqtu0frzHzn svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-ykoWwTqtu0frzHzn p{margin:0;}#mermaid-svg-ykoWwTqtu0frzHzn .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-ykoWwTqtu0frzHzn .cluster-label text{fill:#333;}#mermaid-svg-ykoWwTqtu0frzHzn .cluster-label span{color:#333;}#mermaid-svg-ykoWwTqtu0frzHzn .cluster-label span p{background-color:transparent;}#mermaid-svg-ykoWwTqtu0frzHzn .label text,#mermaid-svg-ykoWwTqtu0frzHzn span{fill:#333;color:#333;}#mermaid-svg-ykoWwTqtu0frzHzn .node rect,#mermaid-svg-ykoWwTqtu0frzHzn .node circle,#mermaid-svg-ykoWwTqtu0frzHzn .node ellipse,#mermaid-svg-ykoWwTqtu0frzHzn .node polygon,#mermaid-svg-ykoWwTqtu0frzHzn .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-ykoWwTqtu0frzHzn .rough-node .label text,#mermaid-svg-ykoWwTqtu0frzHzn .node .label text,#mermaid-svg-ykoWwTqtu0frzHzn .image-shape .label,#mermaid-svg-ykoWwTqtu0frzHzn .icon-shape .label{text-anchor:middle;}#mermaid-svg-ykoWwTqtu0frzHzn .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-ykoWwTqtu0frzHzn .rough-node .label,#mermaid-svg-ykoWwTqtu0frzHzn .node .label,#mermaid-svg-ykoWwTqtu0frzHzn .image-shape .label,#mermaid-svg-ykoWwTqtu0frzHzn .icon-shape .label{text-align:center;}#mermaid-svg-ykoWwTqtu0frzHzn .node.clickable{cursor:pointer;}#mermaid-svg-ykoWwTqtu0frzHzn .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-ykoWwTqtu0frzHzn .arrowheadPath{fill:#333333;}#mermaid-svg-ykoWwTqtu0frzHzn .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-ykoWwTqtu0frzHzn .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-ykoWwTqtu0frzHzn .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ykoWwTqtu0frzHzn .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-ykoWwTqtu0frzHzn .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ykoWwTqtu0frzHzn .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-ykoWwTqtu0frzHzn .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-ykoWwTqtu0frzHzn .cluster text{fill:#333;}#mermaid-svg-ykoWwTqtu0frzHzn .cluster span{color:#333;}#mermaid-svg-ykoWwTqtu0frzHzn div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-ykoWwTqtu0frzHzn .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-ykoWwTqtu0frzHzn rect.text{fill:none;stroke-width:0;}#mermaid-svg-ykoWwTqtu0frzHzn .icon-shape,#mermaid-svg-ykoWwTqtu0frzHzn .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ykoWwTqtu0frzHzn .icon-shape p,#mermaid-svg-ykoWwTqtu0frzHzn .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-ykoWwTqtu0frzHzn .icon-shape .label rect,#mermaid-svg-ykoWwTqtu0frzHzn .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ykoWwTqtu0frzHzn .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-ykoWwTqtu0frzHzn .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-ykoWwTqtu0frzHzn :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 虚拟化层
测试环境
S7 Protocol
S7 Protocol
WinCC / 组态王
SCADA 系统
S7 Virtual Server
运行于 PC
7.2 S7 PPI Server
| 属性 | 说明 |
|---|---|
| 本质 | PPI 协议的软件服务器端实现 |
| 功能 | 在 PC 端模拟 S7-200 的 PPI 从站 |
| 用途 | 模拟 S7-200 设备、协议测试 |
| 连接方式 | 通过串口或串口服务器 |
S7 PPI Server 是 PPI 协议的虚拟化实现,允许在没有真实 S7-200 PLC 的情况下进行 PPI 通信测试。
7.3 SIE Fetch Write Server
| 属性 | 说明 |
|---|---|
| 本质 | Fetch/Write 协议的软件服务器端 |
| 功能 | 在 PC/服务器端提供 Fetch/Write 服务端点 |
| 用途 | 数据采集网关、协议转换 |
| 典型场景 | 将非西门子设备数据以 Fetch/Write 格式暴露 |
Fetch Write Server 是一个中间层服务,它将底层设备数据封装为 Fetch/Write 协议格式,使得上层西门子生态的 HMI/SCADA 系统可以通过标准 Fetch/Write 接口访问数据。
#mermaid-svg-MAHfD4GFpYAZLsVT{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-MAHfD4GFpYAZLsVT .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-MAHfD4GFpYAZLsVT .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-MAHfD4GFpYAZLsVT .error-icon{fill:#552222;}#mermaid-svg-MAHfD4GFpYAZLsVT .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-MAHfD4GFpYAZLsVT .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-MAHfD4GFpYAZLsVT .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-MAHfD4GFpYAZLsVT .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-MAHfD4GFpYAZLsVT .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-MAHfD4GFpYAZLsVT .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-MAHfD4GFpYAZLsVT .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-MAHfD4GFpYAZLsVT .marker{fill:#333333;stroke:#333333;}#mermaid-svg-MAHfD4GFpYAZLsVT .marker.cross{stroke:#333333;}#mermaid-svg-MAHfD4GFpYAZLsVT svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-MAHfD4GFpYAZLsVT p{margin:0;}#mermaid-svg-MAHfD4GFpYAZLsVT .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-MAHfD4GFpYAZLsVT .cluster-label text{fill:#333;}#mermaid-svg-MAHfD4GFpYAZLsVT .cluster-label span{color:#333;}#mermaid-svg-MAHfD4GFpYAZLsVT .cluster-label span p{background-color:transparent;}#mermaid-svg-MAHfD4GFpYAZLsVT .label text,#mermaid-svg-MAHfD4GFpYAZLsVT span{fill:#333;color:#333;}#mermaid-svg-MAHfD4GFpYAZLsVT .node rect,#mermaid-svg-MAHfD4GFpYAZLsVT .node circle,#mermaid-svg-MAHfD4GFpYAZLsVT .node ellipse,#mermaid-svg-MAHfD4GFpYAZLsVT .node polygon,#mermaid-svg-MAHfD4GFpYAZLsVT .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-MAHfD4GFpYAZLsVT .rough-node .label text,#mermaid-svg-MAHfD4GFpYAZLsVT .node .label text,#mermaid-svg-MAHfD4GFpYAZLsVT .image-shape .label,#mermaid-svg-MAHfD4GFpYAZLsVT .icon-shape .label{text-anchor:middle;}#mermaid-svg-MAHfD4GFpYAZLsVT .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-MAHfD4GFpYAZLsVT .rough-node .label,#mermaid-svg-MAHfD4GFpYAZLsVT .node .label,#mermaid-svg-MAHfD4GFpYAZLsVT .image-shape .label,#mermaid-svg-MAHfD4GFpYAZLsVT .icon-shape .label{text-align:center;}#mermaid-svg-MAHfD4GFpYAZLsVT .node.clickable{cursor:pointer;}#mermaid-svg-MAHfD4GFpYAZLsVT .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-MAHfD4GFpYAZLsVT .arrowheadPath{fill:#333333;}#mermaid-svg-MAHfD4GFpYAZLsVT .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-MAHfD4GFpYAZLsVT .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-MAHfD4GFpYAZLsVT .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-MAHfD4GFpYAZLsVT .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-MAHfD4GFpYAZLsVT .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-MAHfD4GFpYAZLsVT .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-MAHfD4GFpYAZLsVT .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-MAHfD4GFpYAZLsVT .cluster text{fill:#333;}#mermaid-svg-MAHfD4GFpYAZLsVT .cluster span{color:#333;}#mermaid-svg-MAHfD4GFpYAZLsVT div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-MAHfD4GFpYAZLsVT .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-MAHfD4GFpYAZLsVT rect.text{fill:none;stroke-width:0;}#mermaid-svg-MAHfD4GFpYAZLsVT .icon-shape,#mermaid-svg-MAHfD4GFpYAZLsVT .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-MAHfD4GFpYAZLsVT .icon-shape p,#mermaid-svg-MAHfD4GFpYAZLsVT .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-MAHfD4GFpYAZLsVT .icon-shape .label rect,#mermaid-svg-MAHfD4GFpYAZLsVT .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-MAHfD4GFpYAZLsVT .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-MAHfD4GFpYAZLsVT .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-MAHfD4GFpYAZLsVT :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 底层设备
网关层
上层系统
Fetch/Write
Fetch/Write
Modbus
OPC UA
Custom
WinCC
第三方 SCADA
SIE Fetch Write Server
Modbus 设备
OPC UA 设备
自定义设备
8. PLC 系列与协议支持矩阵
#mermaid-svg-8AqgAlylnsxoHhtC{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-8AqgAlylnsxoHhtC .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-8AqgAlylnsxoHhtC .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-8AqgAlylnsxoHhtC .error-icon{fill:#552222;}#mermaid-svg-8AqgAlylnsxoHhtC .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-8AqgAlylnsxoHhtC .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-8AqgAlylnsxoHhtC .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-8AqgAlylnsxoHhtC .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-8AqgAlylnsxoHhtC .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-8AqgAlylnsxoHhtC .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-8AqgAlylnsxoHhtC .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-8AqgAlylnsxoHhtC .marker{fill:#333333;stroke:#333333;}#mermaid-svg-8AqgAlylnsxoHhtC .marker.cross{stroke:#333333;}#mermaid-svg-8AqgAlylnsxoHhtC svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-8AqgAlylnsxoHhtC p{margin:0;}#mermaid-svg-8AqgAlylnsxoHhtC .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-8AqgAlylnsxoHhtC .cluster-label text{fill:#333;}#mermaid-svg-8AqgAlylnsxoHhtC .cluster-label span{color:#333;}#mermaid-svg-8AqgAlylnsxoHhtC .cluster-label span p{background-color:transparent;}#mermaid-svg-8AqgAlylnsxoHhtC .label text,#mermaid-svg-8AqgAlylnsxoHhtC span{fill:#333;color:#333;}#mermaid-svg-8AqgAlylnsxoHhtC .node rect,#mermaid-svg-8AqgAlylnsxoHhtC .node circle,#mermaid-svg-8AqgAlylnsxoHhtC .node ellipse,#mermaid-svg-8AqgAlylnsxoHhtC .node polygon,#mermaid-svg-8AqgAlylnsxoHhtC .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-8AqgAlylnsxoHhtC .rough-node .label text,#mermaid-svg-8AqgAlylnsxoHhtC .node .label text,#mermaid-svg-8AqgAlylnsxoHhtC .image-shape .label,#mermaid-svg-8AqgAlylnsxoHhtC .icon-shape .label{text-anchor:middle;}#mermaid-svg-8AqgAlylnsxoHhtC .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-8AqgAlylnsxoHhtC .rough-node .label,#mermaid-svg-8AqgAlylnsxoHhtC .node .label,#mermaid-svg-8AqgAlylnsxoHhtC .image-shape .label,#mermaid-svg-8AqgAlylnsxoHhtC .icon-shape .label{text-align:center;}#mermaid-svg-8AqgAlylnsxoHhtC .node.clickable{cursor:pointer;}#mermaid-svg-8AqgAlylnsxoHhtC .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-8AqgAlylnsxoHhtC .arrowheadPath{fill:#333333;}#mermaid-svg-8AqgAlylnsxoHhtC .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-8AqgAlylnsxoHhtC .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-8AqgAlylnsxoHhtC .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-8AqgAlylnsxoHhtC .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-8AqgAlylnsxoHhtC .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-8AqgAlylnsxoHhtC .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-8AqgAlylnsxoHhtC .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-8AqgAlylnsxoHhtC .cluster text{fill:#333;}#mermaid-svg-8AqgAlylnsxoHhtC .cluster span{color:#333;}#mermaid-svg-8AqgAlylnsxoHhtC div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-8AqgAlylnsxoHhtC .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-8AqgAlylnsxoHhtC rect.text{fill:none;stroke-width:0;}#mermaid-svg-8AqgAlylnsxoHhtC .icon-shape,#mermaid-svg-8AqgAlylnsxoHhtC .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-8AqgAlylnsxoHhtC .icon-shape p,#mermaid-svg-8AqgAlylnsxoHhtC .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-8AqgAlylnsxoHhtC .icon-shape .label rect,#mermaid-svg-8AqgAlylnsxoHhtC .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-8AqgAlylnsxoHhtC .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-8AqgAlylnsxoHhtC .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-8AqgAlylnsxoHhtC :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} S7-1200/1500 系列
S7-300/400 系列
S7-200 系列
PPI
PPI / 以太网
S7 协议
MPI
以太网 CP
以太网 CP
DP 口
PN 口
MPI
以太网 CP
以太网 CP
DP 口
PN 口
原生以太网
原生以太网
PN 口
原生以太网
原生以太网
原生以太网
原生以太网
PN 口
S7-200
S7-200 SMART
S7-300
S7-400
S7-1200
S7-1500
PPI 协议
S7 Communication
MPI 协议
Fetch/Write
PROFIBUS DP
PROFINET
SIE WebApi
S7-PLUS 增强
详细支持矩阵:
| 协议 | S7-200 | S7-200 SMART | S7-300 | S7-400 | S7-1200 | S7-1500 |
|---|---|---|---|---|---|---|
| PPI | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| MPI | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ |
| S7 Communication | ❌ | ⚠️ | ✅ | ✅ | ✅ | ✅ |
| S7-PLUS | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Fetch/Write | ❌ | ❌ | ✅¹ | ✅¹ | ⚠️ | ✅ |
| WebApi | ❌ | ❌ | ❌ | ❌ | ✅² | ✅ |
| PROFINET | ❌ | ❌ | ✅³ | ✅³ | ✅ | ✅ |
| PROFIBUS DP | ⚠️⁴ | ❌ | ✅⁵ | ✅⁵ | ⚠️⁶ | ⚠️⁶ |
¹ 需配置以太网通信处理器(CP)
² S7-1200 FW 4.0 及以上版本支持
³ S7-300/400 需带 PN 口的 CPU 型号(如 315-2PN/DP)
⁴ S7-200 需加装 EM277 模块作为 DP 从站
⁵ S7-300/400 需带 DP 口的 CPU 型号(如 315-2DP)
⁶ S7-1200/1500 需加装 CM1242-5 / CM1542-5 通信模块
⚠️ 部分支持或有限支持
9. 协议技术对比
#mermaid-svg-8gmSK9diY3fgrKnF{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-8gmSK9diY3fgrKnF .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-8gmSK9diY3fgrKnF .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-8gmSK9diY3fgrKnF .error-icon{fill:#552222;}#mermaid-svg-8gmSK9diY3fgrKnF .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-8gmSK9diY3fgrKnF .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-8gmSK9diY3fgrKnF .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-8gmSK9diY3fgrKnF .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-8gmSK9diY3fgrKnF .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-8gmSK9diY3fgrKnF .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-8gmSK9diY3fgrKnF .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-8gmSK9diY3fgrKnF .marker{fill:#333333;stroke:#333333;}#mermaid-svg-8gmSK9diY3fgrKnF .marker.cross{stroke:#333333;}#mermaid-svg-8gmSK9diY3fgrKnF svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-8gmSK9diY3fgrKnF p{margin:0;}#mermaid-svg-8gmSK9diY3fgrKnF .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-8gmSK9diY3fgrKnF .cluster-label text{fill:#333;}#mermaid-svg-8gmSK9diY3fgrKnF .cluster-label span{color:#333;}#mermaid-svg-8gmSK9diY3fgrKnF .cluster-label span p{background-color:transparent;}#mermaid-svg-8gmSK9diY3fgrKnF .label text,#mermaid-svg-8gmSK9diY3fgrKnF span{fill:#333;color:#333;}#mermaid-svg-8gmSK9diY3fgrKnF .node rect,#mermaid-svg-8gmSK9diY3fgrKnF .node circle,#mermaid-svg-8gmSK9diY3fgrKnF .node ellipse,#mermaid-svg-8gmSK9diY3fgrKnF .node polygon,#mermaid-svg-8gmSK9diY3fgrKnF .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-8gmSK9diY3fgrKnF .rough-node .label text,#mermaid-svg-8gmSK9diY3fgrKnF .node .label text,#mermaid-svg-8gmSK9diY3fgrKnF .image-shape .label,#mermaid-svg-8gmSK9diY3fgrKnF .icon-shape .label{text-anchor:middle;}#mermaid-svg-8gmSK9diY3fgrKnF .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-8gmSK9diY3fgrKnF .rough-node .label,#mermaid-svg-8gmSK9diY3fgrKnF .node .label,#mermaid-svg-8gmSK9diY3fgrKnF .image-shape .label,#mermaid-svg-8gmSK9diY3fgrKnF .icon-shape .label{text-align:center;}#mermaid-svg-8gmSK9diY3fgrKnF .node.clickable{cursor:pointer;}#mermaid-svg-8gmSK9diY3fgrKnF .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-8gmSK9diY3fgrKnF .arrowheadPath{fill:#333333;}#mermaid-svg-8gmSK9diY3fgrKnF .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-8gmSK9diY3fgrKnF .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-8gmSK9diY3fgrKnF .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-8gmSK9diY3fgrKnF .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-8gmSK9diY3fgrKnF .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-8gmSK9diY3fgrKnF .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-8gmSK9diY3fgrKnF .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-8gmSK9diY3fgrKnF .cluster text{fill:#333;}#mermaid-svg-8gmSK9diY3fgrKnF .cluster span{color:#333;}#mermaid-svg-8gmSK9diY3fgrKnF div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-8gmSK9diY3fgrKnF .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-8gmSK9diY3fgrKnF rect.text{fill:none;stroke-width:0;}#mermaid-svg-8gmSK9diY3fgrKnF .icon-shape,#mermaid-svg-8gmSK9diY3fgrKnF .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-8gmSK9diY3fgrKnF .icon-shape p,#mermaid-svg-8gmSK9diY3fgrKnF .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-8gmSK9diY3fgrKnF .icon-shape .label rect,#mermaid-svg-8gmSK9diY3fgrKnF .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-8gmSK9diY3fgrKnF .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-8gmSK9diY3fgrKnF .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-8gmSK9diY3fgrKnF :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 性能对比
演进
演进
并行
PPI
187.5 kbps
~30ms 响应
MPI
12 Mbps
~10ms 响应
S7 Ethernet
100/1000 Mbps
~1-5ms 响应
WebApi
100/1000 Mbps
~5-20ms 响应
| 维度 | PPI | MPI | S7 Communication | Fetch/Write | WebApi |
|---|---|---|---|---|---|
| 传输速率 | 187.5 kbps | 12 Mbps | 100/1000 Mbps | 100/1000 Mbps | 100/1000 Mbps |
| 传输介质 | RS-485 | RS-485 | Ethernet | Ethernet | Ethernet |
| 网络拓扑 | 总线 | 总线 | 星型/环型 | 星型 | 星型 |
| 最大节点 | 32 | 32 | 理论无上限 | 理论无上限 | 理论无上限 |
| 实时性 | 低 | 中 | 高 | 高 | 中 |
| 协议复杂度 | 低 | 中 | 高 | 中 | 低 |
| 第三方兼容 | 差 | 差 | 中 | 好 | 好 |
| 安全机制 | 无 | 无 | 可选 | 简单 | HTTPS/TLS |
| 符号寻址 | 不支持 | 不支持 | 部分支持 | 不支持 | 支持 |
10. 协议演进时间线
#mermaid-svg-t2UfqXvzPxHAHMLN{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-t2UfqXvzPxHAHMLN .error-icon{fill:#552222;}#mermaid-svg-t2UfqXvzPxHAHMLN .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-t2UfqXvzPxHAHMLN .marker{fill:#333333;stroke:#333333;}#mermaid-svg-t2UfqXvzPxHAHMLN .marker.cross{stroke:#333333;}#mermaid-svg-t2UfqXvzPxHAHMLN svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-t2UfqXvzPxHAHMLN p{margin:0;}#mermaid-svg-t2UfqXvzPxHAHMLN .edge{stroke-width:3;}#mermaid-svg-t2UfqXvzPxHAHMLN .section--1 rect,#mermaid-svg-t2UfqXvzPxHAHMLN .section--1 path,#mermaid-svg-t2UfqXvzPxHAHMLN .section--1 circle,#mermaid-svg-t2UfqXvzPxHAHMLN .section--1 path{fill:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .section--1 text{fill:#ffffff;}#mermaid-svg-t2UfqXvzPxHAHMLN .node-icon--1{font-size:40px;color:#ffffff;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-edge--1{stroke:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-depth--1{stroke-width:17;}#mermaid-svg-t2UfqXvzPxHAHMLN .section--1 line{stroke:hsl(60, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-t2UfqXvzPxHAHMLN .lineWrapper line{stroke:#ffffff;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled circle,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:lightgray;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:#efefef;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-0 rect,#mermaid-svg-t2UfqXvzPxHAHMLN .section-0 path,#mermaid-svg-t2UfqXvzPxHAHMLN .section-0 circle,#mermaid-svg-t2UfqXvzPxHAHMLN .section-0 path{fill:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-t2UfqXvzPxHAHMLN .section-0 text{fill:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .node-icon-0{font-size:40px;color:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-edge-0{stroke:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-depth-0{stroke-width:14;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-0 line{stroke:hsl(240, 100%, 83.5294117647%);stroke-width:3;}#mermaid-svg-t2UfqXvzPxHAHMLN .lineWrapper line{stroke:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled circle,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:lightgray;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:#efefef;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-1 rect,#mermaid-svg-t2UfqXvzPxHAHMLN .section-1 path,#mermaid-svg-t2UfqXvzPxHAHMLN .section-1 circle,#mermaid-svg-t2UfqXvzPxHAHMLN .section-1 path{fill:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .section-1 text{fill:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .node-icon-1{font-size:40px;color:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-edge-1{stroke:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-depth-1{stroke-width:11;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-1 line{stroke:hsl(260, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-t2UfqXvzPxHAHMLN .lineWrapper line{stroke:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled circle,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:lightgray;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:#efefef;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-2 rect,#mermaid-svg-t2UfqXvzPxHAHMLN .section-2 path,#mermaid-svg-t2UfqXvzPxHAHMLN .section-2 circle,#mermaid-svg-t2UfqXvzPxHAHMLN .section-2 path{fill:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .section-2 text{fill:#ffffff;}#mermaid-svg-t2UfqXvzPxHAHMLN .node-icon-2{font-size:40px;color:#ffffff;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-edge-2{stroke:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-depth-2{stroke-width:8;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-2 line{stroke:hsl(90, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-t2UfqXvzPxHAHMLN .lineWrapper line{stroke:#ffffff;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled circle,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:lightgray;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:#efefef;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-3 rect,#mermaid-svg-t2UfqXvzPxHAHMLN .section-3 path,#mermaid-svg-t2UfqXvzPxHAHMLN .section-3 circle,#mermaid-svg-t2UfqXvzPxHAHMLN .section-3 path{fill:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .section-3 text{fill:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .node-icon-3{font-size:40px;color:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-edge-3{stroke:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-depth-3{stroke-width:5;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-3 line{stroke:hsl(120, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-t2UfqXvzPxHAHMLN .lineWrapper line{stroke:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled circle,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:lightgray;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:#efefef;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-4 rect,#mermaid-svg-t2UfqXvzPxHAHMLN .section-4 path,#mermaid-svg-t2UfqXvzPxHAHMLN .section-4 circle,#mermaid-svg-t2UfqXvzPxHAHMLN .section-4 path{fill:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .section-4 text{fill:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .node-icon-4{font-size:40px;color:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-edge-4{stroke:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-depth-4{stroke-width:2;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-4 line{stroke:hsl(150, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-t2UfqXvzPxHAHMLN .lineWrapper line{stroke:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled circle,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:lightgray;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:#efefef;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-5 rect,#mermaid-svg-t2UfqXvzPxHAHMLN .section-5 path,#mermaid-svg-t2UfqXvzPxHAHMLN .section-5 circle,#mermaid-svg-t2UfqXvzPxHAHMLN .section-5 path{fill:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .section-5 text{fill:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .node-icon-5{font-size:40px;color:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-edge-5{stroke:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-depth-5{stroke-width:-1;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-5 line{stroke:hsl(180, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-t2UfqXvzPxHAHMLN .lineWrapper line{stroke:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled circle,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:lightgray;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:#efefef;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-6 rect,#mermaid-svg-t2UfqXvzPxHAHMLN .section-6 path,#mermaid-svg-t2UfqXvzPxHAHMLN .section-6 circle,#mermaid-svg-t2UfqXvzPxHAHMLN .section-6 path{fill:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .section-6 text{fill:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .node-icon-6{font-size:40px;color:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-edge-6{stroke:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-depth-6{stroke-width:-4;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-6 line{stroke:hsl(210, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-t2UfqXvzPxHAHMLN .lineWrapper line{stroke:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled circle,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:lightgray;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:#efefef;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-7 rect,#mermaid-svg-t2UfqXvzPxHAHMLN .section-7 path,#mermaid-svg-t2UfqXvzPxHAHMLN .section-7 circle,#mermaid-svg-t2UfqXvzPxHAHMLN .section-7 path{fill:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .section-7 text{fill:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .node-icon-7{font-size:40px;color:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-edge-7{stroke:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-depth-7{stroke-width:-7;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-7 line{stroke:hsl(270, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-t2UfqXvzPxHAHMLN .lineWrapper line{stroke:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled circle,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:lightgray;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:#efefef;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-8 rect,#mermaid-svg-t2UfqXvzPxHAHMLN .section-8 path,#mermaid-svg-t2UfqXvzPxHAHMLN .section-8 circle,#mermaid-svg-t2UfqXvzPxHAHMLN .section-8 path{fill:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .section-8 text{fill:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .node-icon-8{font-size:40px;color:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-edge-8{stroke:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-depth-8{stroke-width:-10;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-8 line{stroke:hsl(330, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-t2UfqXvzPxHAHMLN .lineWrapper line{stroke:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled circle,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:lightgray;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:#efefef;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-9 rect,#mermaid-svg-t2UfqXvzPxHAHMLN .section-9 path,#mermaid-svg-t2UfqXvzPxHAHMLN .section-9 circle,#mermaid-svg-t2UfqXvzPxHAHMLN .section-9 path{fill:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .section-9 text{fill:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .node-icon-9{font-size:40px;color:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-edge-9{stroke:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-depth-9{stroke-width:-13;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-9 line{stroke:hsl(0, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-t2UfqXvzPxHAHMLN .lineWrapper line{stroke:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled circle,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:lightgray;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:#efefef;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-10 rect,#mermaid-svg-t2UfqXvzPxHAHMLN .section-10 path,#mermaid-svg-t2UfqXvzPxHAHMLN .section-10 circle,#mermaid-svg-t2UfqXvzPxHAHMLN .section-10 path{fill:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .section-10 text{fill:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .node-icon-10{font-size:40px;color:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-edge-10{stroke:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .edge-depth-10{stroke-width:-16;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-10 line{stroke:hsl(30, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-t2UfqXvzPxHAHMLN .lineWrapper line{stroke:black;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled circle,#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:lightgray;}#mermaid-svg-t2UfqXvzPxHAHMLN .disabled text{fill:#efefef;}#mermaid-svg-t2UfqXvzPxHAHMLN .section-root rect,#mermaid-svg-t2UfqXvzPxHAHMLN .section-root path,#mermaid-svg-t2UfqXvzPxHAHMLN .section-root circle{fill:hsl(240, 100%, 46.2745098039%);}#mermaid-svg-t2UfqXvzPxHAHMLN .section-root text{fill:#ffffff;}#mermaid-svg-t2UfqXvzPxHAHMLN .icon-container{height:100%;display:flex;justify-content:center;align-items:center;}#mermaid-svg-t2UfqXvzPxHAHMLN .edge{fill:none;}#mermaid-svg-t2UfqXvzPxHAHMLN .eventWrapper{filter:brightness(120%);}#mermaid-svg-t2UfqXvzPxHAHMLN :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 1989 PROFIBUS DP 标准发布 经典现场总线兴起 1990s S7-300/400 发布 MPI 协议标准化 PROFIBUS 大规模应用 1998 S7-200 发布 PPI 协议成为入门级标准 2001 PROFINET 标准发布 工业以太网时代开启 2000s 以太网 CP 模块普及 S7 Communication 成熟 Fetch/Write 协议标准化 2004 S7-200 SMART 发布 保留 PPI + 新增以太网 2010s TIA Portal 推出 统一工程环境 2012 S7-1200 发布 原生以太网支持 Web Server 内置 内置 PROFINET 口 2013 S7-1500 发布 S7-PLUS 增强通信 更大 PDU / 更高性能 2014+ WebApi 逐步完善 IT/OT 融合趋势 OPC UA 整合 PROFINET 全面取代 PROFIBUS 西门子 S7 协议演进史
11. 应用场景与选型建议
11.1 场景决策树
#mermaid-svg-tEAeEM462HfgF7YX{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-tEAeEM462HfgF7YX .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-tEAeEM462HfgF7YX .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-tEAeEM462HfgF7YX .error-icon{fill:#552222;}#mermaid-svg-tEAeEM462HfgF7YX .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-tEAeEM462HfgF7YX .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-tEAeEM462HfgF7YX .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-tEAeEM462HfgF7YX .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-tEAeEM462HfgF7YX .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-tEAeEM462HfgF7YX .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-tEAeEM462HfgF7YX .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-tEAeEM462HfgF7YX .marker{fill:#333333;stroke:#333333;}#mermaid-svg-tEAeEM462HfgF7YX .marker.cross{stroke:#333333;}#mermaid-svg-tEAeEM462HfgF7YX svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-tEAeEM462HfgF7YX p{margin:0;}#mermaid-svg-tEAeEM462HfgF7YX .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-tEAeEM462HfgF7YX .cluster-label text{fill:#333;}#mermaid-svg-tEAeEM462HfgF7YX .cluster-label span{color:#333;}#mermaid-svg-tEAeEM462HfgF7YX .cluster-label span p{background-color:transparent;}#mermaid-svg-tEAeEM462HfgF7YX .label text,#mermaid-svg-tEAeEM462HfgF7YX span{fill:#333;color:#333;}#mermaid-svg-tEAeEM462HfgF7YX .node rect,#mermaid-svg-tEAeEM462HfgF7YX .node circle,#mermaid-svg-tEAeEM462HfgF7YX .node ellipse,#mermaid-svg-tEAeEM462HfgF7YX .node polygon,#mermaid-svg-tEAeEM462HfgF7YX .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-tEAeEM462HfgF7YX .rough-node .label text,#mermaid-svg-tEAeEM462HfgF7YX .node .label text,#mermaid-svg-tEAeEM462HfgF7YX .image-shape .label,#mermaid-svg-tEAeEM462HfgF7YX .icon-shape .label{text-anchor:middle;}#mermaid-svg-tEAeEM462HfgF7YX .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-tEAeEM462HfgF7YX .rough-node .label,#mermaid-svg-tEAeEM462HfgF7YX .node .label,#mermaid-svg-tEAeEM462HfgF7YX .image-shape .label,#mermaid-svg-tEAeEM462HfgF7YX .icon-shape .label{text-align:center;}#mermaid-svg-tEAeEM462HfgF7YX .node.clickable{cursor:pointer;}#mermaid-svg-tEAeEM462HfgF7YX .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-tEAeEM462HfgF7YX .arrowheadPath{fill:#333333;}#mermaid-svg-tEAeEM462HfgF7YX .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-tEAeEM462HfgF7YX .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-tEAeEM462HfgF7YX .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tEAeEM462HfgF7YX .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-tEAeEM462HfgF7YX .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tEAeEM462HfgF7YX .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-tEAeEM462HfgF7YX .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-tEAeEM462HfgF7YX .cluster text{fill:#333;}#mermaid-svg-tEAeEM462HfgF7YX .cluster span{color:#333;}#mermaid-svg-tEAeEM462HfgF7YX div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-tEAeEM462HfgF7YX .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-tEAeEM462HfgF7YX rect.text{fill:none;stroke-width:0;}#mermaid-svg-tEAeEM462HfgF7YX .icon-shape,#mermaid-svg-tEAeEM462HfgF7YX .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tEAeEM462HfgF7YX .icon-shape p,#mermaid-svg-tEAeEM462HfgF7YX .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-tEAeEM462HfgF7YX .icon-shape .label rect,#mermaid-svg-tEAeEM462HfgF7YX .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tEAeEM462HfgF7YX .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-tEAeEM462HfgF7YX .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-tEAeEM462HfgF7YX :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} S7-200/SMART
S7-300/400
S7-1200/1500
有 CP
无 CP
西门子生态
第三方系统
Web/移动
是
否
是
否
开始选型
目标 PLC 型号?
PPI 或以太网 S7
有无以太网 CP?
以太网优先
S7 / Fetch/Write
MPI
集成方式?
S7 Communication
需要 REST?
WebApi
Fetch/Write
有串口服务器?
PPI OverTcp
原生 PPI
11.2 具体建议
| 场景 | 推荐协议 | 理由 |
|---|---|---|
| S7-200 编程调试 | PPI | 原生支持,成本最低 |
| S7-200 远程监控 | PPI OverTcp | 通过网关扩展距离 |
| S7-300/400 与 HMI | S7 Communication | 西门子生态最佳兼容 |
| 第三方 MES 对接 S7-300 | Fetch/Write | 协议简单,开发成本低 |
| Web 可视化 S7-1200 | WebApi | 原生 HTTP/JSON,无需中间件 |
| 跨平台数据采集 S7-1500 | WebApi / OPC UA | 现代标准,安全可扩展 |
| 协议学习/逆向分析 | Virtual Server | 无硬件风险,可控环境 |
| 多协议网关开发 | Fetch Write Server | 统一接口封装 |
| 新建项目连接远程 IO/伺服 | PROFINET | 主流方向,布线简单,实时性好 |
| 存量 DP 工厂平滑升级 | PN/DP 网关(IE/PB Link) | 保护既有投资,逐步过渡 |
| 高速运动控制/同步 | PROFINET IRT | 等时同步,抖动 <1μs |
12. 开发注意事项
12.1 常见坑点
- TSAP 配置 :S7 通信需要正确配置本地和远程 TSAP(Transport Service Access Point),不同 PLC 型号默认值不同
- S7-300/400 默认:
03.02(机架 0,槽位 2) - S7-1200/1500 默认:
03.01(机架 0,槽位 1)
- S7-300/400 默认:
- PDU 大小协商:连接建立时需要进行 PDU 大小协商,实际传输数据量不能超过协商值
- 优化块兼容性:S7-1200/1500 的优化 DB(Optimized DB)无法通过绝对地址访问,需使用符号寻址或 WebApi
- PPI 多主站限制:PPI 网络中若存在多个主站,需确保地址不冲突且轮询周期合理
- WebApi 安全:生产环境中务必启用 HTTPS 和访问控制,避免未授权访问 PLC
- PROFINET 设备名唯一性:同一 PROFINET 网络中设备名(Device Name)必须全局唯一,否则控制器无法正确识别设备
- PROFIBUS 终端电阻:DP 总线首末两端必须正确接入终端电阻(ON),中间站需置于 OFF,否则通信不稳定甚至中断
- DP 波特率一致性:PROFIBUS 网络中所有站点(主站与从站)的波特率必须一致,且与电缆长度匹配(12 Mbps 时最长 100m)
12.2 端口速查
| 协议 | 端口 | 传输层 |
|---|---|---|
| S7 Communication | TCP 102 | ISO-on-TCP |
| Fetch/Write | TCP 102 | ISO-on-TCP |
| WebApi HTTP | TCP 80 | HTTP |
| WebApi HTTPS | TCP 443 | HTTPS |
| OPC UA | TCP 4840 | Binary / HTTPS |
注 :PROFINET 与 PROFIBUS DP 不使用传统 TCP 端口。PROFINET 实时帧直接承载于以太网二层(EtherType
0x8892),非实时通信(NRT)则走标准 UDP/TCP;PROFIBUS DP 基于 RS-485 物理层,无端口概念。
13. 总结
西门子 S7 协议族是一个层次分明、代际演进的通信体系,完整包含两条链路:
上位机/工程链路(访问 PLC 内部数据):
- PPI/MPI 代表了工业控制的串口时代,简单可靠但受限于物理层性能
- S7 Communication 是西门子生态的核心协议,功能完整但实现复杂
- Fetch/Write 是第三方集成的友好接口,平衡了功能与易用性
- WebApi 代表了 IT/OT 融合的方向,让 PLC 数据访问像调用 REST API 一样简单
- Virtual Server / PPI Server 等软件层协议降低了开发与测试的硬件门槛
现场总线/实时 I/O 链路(连接 PLC 与现场设备):
- PROFIBUS DP 是经典现场总线之王,存量工厂仍在广泛运行
- PROFINET 是当前主流方向,以工业以太网承载 RT/IRT 实时通信,正在全面取代 PROFIBUS
理解这些协议的适用场景和技术边界,是进行西门子 PLC 集成开发的基础。新一代 S7-1200/1500 配合 WebApi 正在降低工业通信的门槛,S7-PLUS 为高性能场景提供更强大的底层支撑,而 PROFINET 则让控制层与信息层在网络基础设施上走向统一。
