S7COMM协议分析

具体参考这篇文章:[ffffffff0x] 工控协议:S7COMM协议分析(上) - 腾讯云开发者社区-腾讯云

S7协议是西门子特有的一种协议,用于PLC编程,在PLC之间传输数据

它分三个部分,分别是header、parameter、data

header标记该s7包的类型、参数长度、数据长度等

 

他的构成部分:( ROSCTR,它决定了后续参数的结构 )

  • 协议ID,一般是0x32

  • ROSCTR,PDU type,PDU 的类型,一般有以下值:

    • JOB 作业请求。由主设备发送的请求

    • ACK 确认响应,没有数据的简单确认

    • ACK_DATA 确认数据响应,这个一般都是响应JOB的请求;

    • USERDATA:原始协议的扩展,参数字段包含请求/响应 ID(用于编程/调试,读取 SZL,安全功能,时间设置,循环读取…)。

  • Reserved 冗余数据,通常为 0×0000;

  • ...

  • Parameter length 参数总长度

  • Data length,数据长度。如果读取 PLC 内部数据,此处为 0×0000;对于其他功能,则为 Data 部分的数据长度;

在响应数据包中,还有可能存在错误信息,其错误信息结构为:

  • Error class,错误类型:

  • Error code,错误代码;流量包分析

S7Comm 中 Job(作业请求) 和 Ack_Data(确认数据响应) 中的 Parameter 项的第一个字段是 function(功能码),其类型为 Unsigned integer,大小为 1 byte,决定了其余字段的结构、消息的目的。

 

  • 建立通信(Setup communication 0xF0)

    建立通信在每个会话开始时被发送,然后可以交换任何其他消息。它用于协商 ACK 队列的大小和最大 PDU 长度,双方声明它们的支持值。

  • 读取值(Read Var 0x04)

  • 写入值(Write Var 0x05)

    Write Var 中 Parameter 的结构跟读取值(Read Var0x04)一样,但是 Write Var 还需写入值,所以 Write Var 比 Read Var 多了一个 Data 项。

    Data 的结构为:

    • Return code,返回代码

    • Transport size,确定变量的类型和长度:

    • Length,写入值的数据长度;

    • Data,写入的值;

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MUNG东隅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值