工控S7Comm协议仿真环境搭建
时间:2020-07-31 作者:安帝科技
S7Comm协议简介
S7Comm(S7 Communication)是西门子专有的协议,是西门子S7通讯协议簇里的一种。
S7协议的TCP/IP实现依赖于面向块的ISO传输服务。S7协议被封装在TPKT和ISO-COTP协议中,这使得PDU(协议数据单元)能够通过TCP传送。
它用于PLC编程,在PLC之间交换数据,从SCADA(监控和数据采集)系统访问PLC数据以及诊断目的。
S7Comm以太网协议基于OSI模型:
OSI layer Protocol 7 Application Layer S7 communication 6 Presentation Layer S7 communication (COTP) 5 Session Layer S7 communication (TPKT) 4 Transport Layer ISO-on-TCP (RFC 1006) 3 Network Layer IP 2 Data Link Layer Ethernet 1 Physical Layer Ethernet
其中,第1-4层会由计算机自己完成(底层驱动程序);
第5层TPKT,应用程数据传输协议,介于TCP和COTP协议之间。这是一个传输服务协议,主要用来在COTP和TCP之间建立桥梁;
第6层COTP,按照维基百科的解释,COTP 是 OSI 7层协议定义的位于TCP之上的协议。COTP 以“Packet”为基本单位来传输数据,这样接收方会得到与发送方具有相同边界的数据;
第7层,S7 communication,这一层和用户数据相关,对PLC数据的读取报文在这里完成;
可能会对TPKT和COPT迷惑,其实在具体的报文中,TPKT的作用是包含用户协议(5~7层)的数据长度(字节数);COTP的作用是定义了数据传输的基本单位(在S7Comm中 PDU TYPE:DT data)。
协议搭建的工具
Win7 64位虚拟机 1套
Win7 32位虚拟机 1套
WINCC7.0 1套
STEP7和WinLC 1套
协议仿真环境搭建过程
▼3.1 环境配置
将两台虚拟机及物理机设置在同一网段WINLC IP:192.168.2.3Wincc 7.0 IP:192.168.2.20
▼3.2 STEP7配置
3.2.1站点及硬件配置
打开STEP7,插入一个SIMATIC PC 站点。配置组态,插槽中分别插入WinLC RTX和IE General,并将IE的IP设置虚拟机的IP192.168.2.3。然后保存编译。
3.2.2程序编写及下载
新建OB1及DB块,并编写一段程序,与上位机通讯时用作监控数据,更直观的判断通讯状态。
▼3.3Wincc
配置3.3.1变量管理
在变量管理中添加S7 TCP/IP,修改连接参数并添加变量。
3.3.2 图形编辑
新建画面,然后添加数据显示和控制等控件,连接对应变量。运行工程实现设备与上位系统TCP/IP仿真通讯。
总结
通过环境的搭建,能很好地仿真TCP/IP协议,并能通过Wireshark抓包工具,完成报文抓取,如图所示。