西门子S7协议及报文格式详解

一、简介

S7Comm(S7 Communication)是西门子专有的协议,是西门子S7通讯协议簇里的一种。
S7通信协议是西门子S7系列PLC内部集成的一种通信协议,是S7系列PLC的精髓所在。 它是一种运行在传输层之上的(会话层/表示层/应用层)、经过特殊优化的通信协议,其信息传输可以基于MPI网络、PROFIBUS网络或者以太网
S7在TCP连接上后还需要进行两次握手

S7协议的TCP/IP实现依赖于面向块的ISO传输服务。S7协议被封装在TPKT和ISO-COTP协议中,这使得PDU(协议数据单元)能够通过TCP传送。

可以下载Wireshark抓包工具进行抓包看详细的发送报文格式

二、第一次握手

当PDU类型为0x0E(CR Connect Request连接请求)的时候报文格式为

TPKT协议结构
 TPKT协议结构
COTP连接包的结构
COTP连接包的结构

第一次握手发送返回字节格式

第一次握手格式
支持的PUD类型
在这里插入图片描述
参数代码TPDU-Size
在这里插入图片描述

三、第二次握手

当PDU类型为0xF0(DT Data,数据传输)的时候报文格式为

COTP功能包的格式
COTP功能包的格式
S7Comm协议结构
 S7Comm协议结构

第二次握手发送返回字节格式

第二次握手
ROSCTR类型
ROSCTR类型

四、数据读取/写入报文格式

数据读取/写入报文发送返回字节格式

报文格式

S7协议的地址(偏移量)是按照位来运算的,因此需要地址值乘以8。 地址的三个字节范围为0x000000~0x08FFFF
比如M30000,实际地址就是30000*8=240000,然后转化为3个字节。 240000=0x03A980,对应三个字节【03 A9
80】 比如DB21234.40000 其中DB号21234为0x52F2,DB编号对应两个字节【52 F2】
偏移量(地址)40000乘以8就是320000,也就是0x04E200,对应三个字节【04 E2 00】

故障代码

功能码
功能码
区域类型
区域类型

SyntaxID类型

SyntaxID描述

PLC区域类型块

Merker: [M]任意标记变量或标志寄存器驻留在这里。

Data Block: [DB] DB区域是存储设备不同功能所需数据的最常见位置,这些数据块编号为地址的一部分。

Input: [I]数字和模拟输入模块值,映射到存储器。

Output: [Q]类似的存储器映射输出。

Counter: PLC程序使用的不同计数器的[C]值。

Timer: PLC程序使用的不同定时器的[T]值。

西门子不通区域地址类型以及范围
在这里插入图片描述

在这里插入图片描述

参考博客
西门子通讯协议解析博客1
西门子通讯协议解析博客2
西门子通讯协议解析博客3

  • 12
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
西门子s7协议异常报文指在使用S7协议通信过程中,出现了一些异常情况,通常表现为错误的报文或数据无法传送等问题。这些异常情况可能会影响到PLC控制器的正常运行,需要及时进行排查和处理。 常见的异常报文有以下几种: 1. 指令读取错误:当执行一个读取指令时,如果读取的数据不存在或者已经被别的程序占用,就会出现指令读取错误的异常报文。 2. 写入错误:当执行一个写入指令时,如果写入的数据格式不正确或者写入的地址不存在,就会出现写入错误的异常报文。 3. 数据传输错误:在数据传输过程中,如果发生了丢包、超时或者网络延迟等问题,就会导致数据传输错误的异常报文。 4. 端口错误:当使用S7协议进行通信时,如果对端口的配置出现问题,就会导致无法建立连接,从而出现端口错误的异常报文。 对于出现异常报文的情况,我们需要根据具体问题进行排查和处理。首先可以检查PLC控制器和通信设备的硬件连接是否正常,其次可以确认通信协议和参数是否正确配置,再次可以检查通信使用的软件是否符合要求或者有异常情况。如果以上方法都无法解决问题,就需要联系设备厂商或者专业技术人员进行处理。 总之,西门子s7协议异常报文是在PLC控制系统中比较常见的问题,对于我们日常的工作和生产都会产生一定的影响。因此,我们应该积极学习和掌握相关知识,及时处理异常情况,保障生产安全和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值