西门子 S7 系列协议深度科普

西门子 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-TCPWebAPI 串口时代工业以太网时代PROFINETPROFIBUS

摘要

本文系统梳理西门子 S7 PLC 生态中涉及的通信协议,覆盖从早期串口到现代以太网的全协议栈,适用于工业自动化集成与协议开发参考。

1. 概述

西门子 S7 系列 PLC 的通信协议经历了从 串口时代 (PPI/MPI)到 工业以太网时代 (S7 Communication / ISO-on-TCP)再到 现代 Web 化(WebAPI / OPC UA)的演进。不同代际的 PLC(S7-200/300/400/1200/1500)支持的协议差异显著,理解这些协议的层级关系、适用场景和技术细节,是进行 PLC 集成开发的基础。

重要区分 :西门子的协议生态其实分为两条相对独立的链路------

  1. 上位机/工程链路 ("控制器之上"):PG/PC、SCADA、MES、编程器如何访问 PLC 内部的变量、数据块和程序。属于这一类的有 PPI、MPI、S7 Communication、Fetch/Write、WebApi ,以及虚拟化测试用的 Virtual Server / PPI Server / Fetch Write Server
  2. 现场总线/实时 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 常见坑点

  1. TSAP 配置 :S7 通信需要正确配置本地和远程 TSAP(Transport Service Access Point),不同 PLC 型号默认值不同
    • S7-300/400 默认:03.02(机架 0,槽位 2)
    • S7-1200/1500 默认:03.01(机架 0,槽位 1)
  2. PDU 大小协商:连接建立时需要进行 PDU 大小协商,实际传输数据量不能超过协商值
  3. 优化块兼容性:S7-1200/1500 的优化 DB(Optimized DB)无法通过绝对地址访问,需使用符号寻址或 WebApi
  4. PPI 多主站限制:PPI 网络中若存在多个主站,需确保地址不冲突且轮询周期合理
  5. WebApi 安全:生产环境中务必启用 HTTPS 和访问控制,避免未授权访问 PLC
  6. PROFINET 设备名唯一性:同一 PROFINET 网络中设备名(Device Name)必须全局唯一,否则控制器无法正确识别设备
  7. PROFIBUS 终端电阻:DP 总线首末两端必须正确接入终端电阻(ON),中间站需置于 OFF,否则通信不稳定甚至中断
  8. 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 则让控制层与信息层在网络基础设施上走向统一。


相关推荐
DreamLife☼3 天前
Agent开发环境搭建完全指南
python·docker·typescript·node·工业知识点
桔子雨5 天前
轻量,再轻量:当 PicoServer 遇上 SimdPaddleOCR
webapi·picoserver·轻量web框架
厦门德仔12 天前
【YiFeiWebApi】易飞ERP接口开发踩坑实录(避坑指南)
webapi·易飞·开放指南
模拟器连接器曾工1 个月前
M12 T型转接头在PROFINET网络中的分支长度限制与信号完整性实测报告
profinet·t型转接头·t型m12转接头·m12总干线分支器·m12分配器
Triv20252 个月前
Profinet与Modbus协议转换网关HD67602的硬件特性与配置方法
网络·plc·modbus·profinet·工业网关·协议转换
星恒讯工业路由器2 个月前
三大工业以太网协议选型对比
网络·物联网·ethercat·profinet·ethernet/ip·工业以太网协议
桔子雨2 个月前
PicoServer的哲学:不是框架,是胶水
webapi·picoserver
捷米特网关模块通讯3 个月前
ProfiNet 转EtherNet/IP协议转换网关 实现工业模块称重设备联网改造
数据采集·工业自动化·profinet·网关模块·总线协议·称重仪表
HMS工业网络4 个月前
使用电脑快速测试PROFIBUS 设备通讯
网络·网络协议·profibus·主站·设备通讯