抖音粉丝群1
『7x24小时有问必答』

本文是Snap7软件包系列教程的第2篇,我们来介绍下S7协议,包括如下几个主题:
1、S7协议简介

2、S7协议命令简介

3、S7协议通信的角色与模式
1.png
1、S7协议简介
S7协议是西门子S7系列PLC通信的核心协议,它是一种位于传输层之上的通信协议,其物理层/数据链路层可以是MPI总线、PROFIBUS总线或者工业以太网。
本教程要介绍的Snap7软件包支持基于工业以太网的S7通信协议,其网络参考模型如下图所示:

2.png
从上图可以看出,S7协议的下层是传输层的RFC1006协议,也就是ISO-On-TCP协议。这个协议在之前的文章中有介绍,请参考文章:ISO传输协议、ISOONTCP协议和TCP协议有什么不同?

ISO-On-TCP协议依赖TCP协议,其下层依赖是网络层的IP协议。

S7协议的报文采用封装的形式逐层向下传递。首先在S7报文的前面加上TPKT和COTP报头变成ISO-On-TCP协议报文,然后再添加TCP/IP的报头变成TCP/IP报文,如此层层向下传递最后经过物理层发送到网络中。

3.png
(图片来源 : Snap7手册)

网络中接收数据的设备,以相反的顺序依次去掉相应层的报文头,就得到了S7协议的报文。

S7协议的基本传输单位称为:过程数据单元(process data unit,PDU)。每个过程数据单元(PDU)都包括一条命令或者对命令的回复。可以说S7协议是一种命令型的协议,每条命令包括如下几个部分:

报文头(header);
参数(parameters);
参数数据(parameter data);
数据块(data block);
报文头和参数是必须有的,参数数据和数据块根据命令的不同而可选。

比如说:将"数据写入到DB100的起始地址偏移量为4的地方"就是一个命令,在这个命令中:写入、数据、DB100、偏移量4都是该命令的组成部分。

2、S7协议命令简介

S7协议的命令有很多,主要包括如下几个类型:

数据读写命令;
块访问命令;
块操作命令;
系统信息命令;
PLC控制命令;
管理命令;
日期时间命令;
安全命令;
数据读写命令可以对存储器(I、Q、M、C、T)的数据进行读写访问;

块访问命令可以访问PLC中块(Block)的详细信息;

块操作命令可以对块进行上传、下载、删除等操作;

系统信息命令可以获取系统相关的信息,比如:系统状态列表、CPU信息、序列号等等;

PLC控制命令可以让CPU执行热启动、冷启动、停机、获取CPU状态等等;

管理命令可以创建与CPU的连接、取消连接、设置通信的参数等;

日期时间命令可以读写CPU的日期时间值;

安全命令可以获取CPU的安全等级、发送用于连接的密码、清除当前会话的密码等;

3、S7协议通信的角色与模式

在S7通信中,有三种角色:客户端/服务器/伙伴。有两种通信模式:客户端/服务器(Client/Server)模式和伙伴/伙伴(Partner/Partner)模式。

在客户端/服务器模式中,必须由客户端发起询问(query),然后服务器才能应答(reply),服务器端不能主动发起询问请求;

在伙伴/伙伴模式中,通信的双方之间都可以主动发起询问,也都可以对伙伴的询问进行应答;

我们经常使用的模式是客户端/服务器模式。

这种模式下,我们通常把PLC作为服务器,而把编程电脑、工控机、触摸屏等作为客户端,比如下面这张图:

4.png
(图片来源 : Snap7手册)

PLC也可以作为另一个PLC的客户端,这就是我们常说的S7单边通信,如下图所示:
5.png
(图片来源 : Snap7手册)

在客户端/服务器模式中,所有的配置都在客户端,服务器不需要任何配置。
在伙伴/伙伴通信模式下,主动与另一方建立连接的称为主动方(Active Partner),而另一方就称为被动方(Passive Partner)。一旦建立连接后,通信双方都可以发送或接收数据,如下图所示:
6.png
在伙伴/伙伴通信模式下,双方都需要进行配置。
好了,关于S7通信协议就先介绍这么多。
最近开通了微信视频号,以视频的方式分享工控小知识,欢迎扫描下方的二维码体验:
7.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码