PPI通信Word文件下载.docx
- 文档编号:19895276
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:31
- 大小:1.03MB
PPI通信Word文件下载.docx
《PPI通信Word文件下载.docx》由会员分享,可在线阅读,更多相关《PPI通信Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。
主站得到令牌后可以向从站发出请求和指令,从站则对主站请求进行响应,从站设备并不启动消息,而是一直等到主站设备发送请求或轮询时才作出响应。
使用PPI可以建立最多包括32个主站的多主站网络,主站靠一个PPI协议管理的共享连接来与从站通信,PPI并不限制与任意一个从站通信的主站数量,但是在一个网络中,主站的个数不能超过32。
当网络上不止一个主站时,令牌传递前,首先检测下一个主站的站号,为便于令牌的传递,不要将主站的站号设置得过高。
当一个新的主站添加到网络中来的时候,一般将会经过至少2个完整的令牌传递后才会建立网络拓扑,接收令牌。
对于PPI网络来说,暂时没有接收令牌的主站同样可以响应其他主站的请求。
(1)主站设备
主站设备,简称主设备或主站。
包括:
带有STEP7STEP7-Micro/WIN的编程设备;
HMI设备(触摸面板、文本显示或操作员面板)。
(2)从站设备
从站设备,简称从设备或从站。
S7-200CPU、扩展机架(例如EM277)。
如果在用户程序中使能PPI主站模式,S7-200CPU在运行模式下可以作主站。
在使能PPI主站模式之后,可以使用“网络读取”(NETR)或“网络写入”(NETW)从其他S7-200CPU读取数据或向S7-200CPU写入数据。
S7-200用作PPI主站时,它仍然可以作为从站响应其它主站的请求。
(3)PPI高级协议
“PPI高级协议”允许网络设备建立一个设备与设备之间的逻辑连接。
对于PPI高级协议,每个设备的连接个数是有限制的。
所有的S7-200CPU都支持PPI和PPI高级协议,而EM277模块仅仅支持PPI高级协议。
在PPI高级协议下,S7-200CPU和EM277所支持的连接个数如表2.1所列。
表2-1
模块
波特率(bps)
连接数
S7-200CPU
Port0
9.6k、19.2k或187.5k
4
Port1
EM277
9.6K到12M
6(每个模块)
(4)PPI网络传输方式及响应时间
PPI是一种基于字符的异步协议。
通过RS232或USB接口进行数据传输,数据传输速率在1.2kbps至115.2kbps之间。
网络响应时间标志着网络的性能,令牌环网的响应时间包括每个主站的令牌占有时间和整个网络的令牌循环时间,可以通过式1-1和式1-2进行估算:
thold=(128+n)×
b×
1/p(1-1)
trot=thold×
m(1-2)
其中thold——令牌占有时间,单位为s;
trot——令牌循环时间,单位为s;
n——字符数;
b——每个字符的位数,默认为11位;
p——波特率,单位为bps;
m——主站数。
例如,一个PPI网络中有5个主站,每个主站均发送10个字符,波特率为9600bps,则每个主站的令牌占有时间为:
thold=(128+10)×
11×
1/9600=0.158125s=158.125ms
整个网络的令牌循环时间为:
trot=158.125×
5=790.625ms
(5)服务
PPI通信协议支持以下网络服务:
·
PG/OP通信S7-200是可与S7-300或S7-400进行通信的所有HMI设备的从站设备。
S7通信S7-200是S7-300或S7-400的X_PUT和X_GET指令的从站设备。
OPC通信PPI支持OPC,这使其它任何OPC客户机均可访问S7中的数据。
2.2PPI网络组态形式
PPI基于Profibus标准(IEC61158和EN50170),采用总线型拓扑,可以为PPI建立单主站、多主站等多种网络组态形式。
(1)单主站PPI网络
单主站PPI网络通常由带有STEP7-Micro/WIN的PG/PC或作为主站设备的HMI设备(面板)、作为从站设备的一个或多个S7-200CPU等组件组成。
单主站PPI网络原理如图2.1所示。
图2.1单主站PPI网络原理
(2)多主站PPI网络
可以组态一个包含多个主站设备的PPI网络,这些设备可以作为从站设备与一个或多个S7-200进行通信。
每个主站(编程设备/PC或面板)均可以与网络中的每个从站交换数据。
多主站PPI网络原理如图2.2所示。
图2.2多主站PPI网络原理
(3)复杂PPI网络
在复杂PPI网络中,还可以对S7-200进行编程以进行对等通信。
对等通信表示通信伙伴都具有同等权限,既可以提供服务,也可以使用服务。
复杂PPI网络原理如图2.3所示。
(4)带有S7-300或S7-400的PPI网络
可以将S7-300或S7-400连接至PPI网络,网络波特率可以达到187.5kbps。
S7-300/400用X_GET和X_PUT指令与S7-200CPU通信。
如果S7-200CPU处于主站模式,那么S7-300/400将无法与之通信。
若要与S7CPU通信,则最好在配置STEP7-Micro/WIN使用PPI协议时,使能多主站,并选中PPI高级选框。
如果使用的电缆是PPI多主站电缆,那么多主网络和PPI高级选框便可以忽略。
带有S7-300或S7-400的PPI网络原理图如图2-4所示。
图2.3复杂PPI网络原理(对等通信)
图2.4带有S7-300或S7-400的PPI网络原理
2.3PPI网络组件
(1)S7-200CPU的通信口
S7-200CPU的PPI网络通信是建立在RS-485网络的硬件基础上,因此其连接属性和需要的网络硬件设备是与其他RS-485网络一致的。
S7-200CPU上的通信口是与RS-485兼容的9针D型连接器,符合欧洲标准EN50170中的Profibus标准,其引脚分配如表2.2所列。
表2.2S7-200CPU通信口的引脚分配
引脚号
Profibus引脚名
Port0/Port1
1
屏蔽
外壳接地
2
24V返回
逻辑地
3
RS-485信号B
4
发送申请
RTS(TTL)
5
5V返回
6
+5V
+5V,100Ω串联电阻
7
+24V
8
RS-485信号A
9
未用
10位协议选择(输入)
连接器外壳
屏蔽
(2)Profibus总线连接器
PPI网络使用Profibus总线连接器,西门子公司提供两种Profibus总线连接器:
一种标准Profibus总线连接器(如图2.5a所示,订货号6ES7972-0BA50-0XA0)和一种带编程接口的Profibus总线连接器(如图2.5b所示,订货号6ES7972-0BB50-0XA0),后者允许在不影响现有网络连接的情况下,再连接一个编程站或者一个HMI设备到网络中。
带编程接口的Profibus总线连接器将S7-200的所有信号(包括电源引脚)传到编程接口。
这种连接器对于那些从S7-200取电源的设备(例如TD200)尤为有用。
两种连接器都有两组螺钉连接端子,可以用来连接输入连接电缆和输出连接电缆。
两种连接器也都有网络偏置和终端匹配的选择开关,如图2.5c所示。
该开关在ON位置时则接通内部的网络偏置和终端电阻,在OFF位置时则断开内部的网络偏置和终端电阻。
连接网络两端节点设备的总线连接器应将开关放在ON位置,以减少信号的反射。
图2.5西门子Profibus总线连接器
2.4PPI网络连接
(1)基本连接原则
连接电缆必须安装合适的浪涌抑制器,这样可以避免雷击浪涌。
应避免将低压信号线和通信电缆与交流导线和高能量、快速开关的直流导线布置在同一线槽中。
要成对使用导线,用中性线或公共线与电源线或信号线配对。
具有不同参考电位的互联设备有可能导致不希望的电流流过连接电缆。
这种不希望的电流有可能导致通信错误或者设备损坏。
要确保用通信电缆连接在一起的所有设备具有相同的参考电位,或者彼此隔离,来避免产生这种不希望的电流。
(2)通信距离、通信速率及电缆选择
如表2.3所列,网段的最大长度取决于两个因素:
隔离(使用RS-485中继器)和波特率。
表2.3网络电缆的最大长度
波特率
非隔离CPU端口1
有中继器的CPU端口或者EM277
9.6~187.5k
50m
1000m
500k
不支持
400m
1~1.5M
200m
3~12M
100m
一般情况下,当接地点直接的距离很远时,有可能具有不同的地电位:
即使距离较近,大型机械的负载电流也能导致地电位不同。
当连接具有不同地电位的设备时需要隔离。
如果不使用隔离端口或者中继器,允许的最长距离为50m。
测量该距离时,从网段的第一个节点开始,到网段的最后一个节点。
2.5S7-200的NETR/NETW指令
S7-200CPU之间的PPI网络通信只需要两条简单的指令,他们是NETR(网络读)和NETW(网络写)指令。
在网络写通信中,只有主站需要调用NETR/NETW指令,从站只需编程处理数据缓冲区(取用或准备数据)。
LAD及STL语言形式的NETR/NETW指令如表2.4所列
表2.4NETR/NETW指令
NETR
NETW
LAD
STL
NETRTBL,PORT
NETWTBL,PORT
2.5.1NEYR/NETW指令
NETR(网络读)指令初始化一个读的通信操作,根据指令对“TBL”(表)的定义,通过指定的“PORT”(端口)从远程设备的通信缓冲区读数据。
NETR指令最多可以从远程站点读取16个字节的信息。
NETW(网络写)指令初始化一个写的通信操作,根据指令中对“TBL”(表)的定义通过指定的“PORT”(端口)向远程设备的通信缓冲区写数据。
NETW指令最多可以向远程站点写入16个字节的信息。
NETR/NETW指令的TBL参数为字节类型,可以是VB,MB,*VD,*LD或*AC,TBL参数的意义如表2.5所示。
表2.5NETR/NETW指令的TBL参数
字节
偏移量
字节参数
7
6
5
3~0
D
A
E
错误代码
接收/发送数据的字节数(1~16个字节)
1
远程站地址
接收/发送数据区(数据字节0)
2
3
指向远程站的数据指针(I、Q、M或V)
8
接收/发送数据区(数据字节1)
…
22
接收/发送数据区(数据字节15)
表中首字节中各标志位的意义如下:
“D”——完成(操作已完成)。
0:
未完成;
1:
完成。
“A”——有效(操作已被排队)。
无效;
有效。
“E”——错误。
无错误;
错误。
错误代码的意义如表2.6所列。
表2.6TBL参数中错误代码的意义
错误代码
意义
0000
无错误
0001
时间溢出错,远程站点不响应
0010
接收错误:
奇偶校验错,响应时帧或校验和错误
0011
离线错误:
相同的站地址或无效的硬件引发冲突
0100
队列溢出错:
激活了超过8个NETR/NETW方框
0101
违反通信协议:
没有在SMB30或SMB130中允许PPI,就试图执行NETR/NETW指令
0110
非法参数:
NETR/NETW表中包含非法或无效的值
0111
没有资源:
远程站点正在忙中(上装或下装程序在处理中)
1000
第7层错误:
违反应用协议
1001
信息错误:
错误的数据地址或不正确的数据长度
1010~1111
未用:
(为将来的使用保留)
NETR/NETW指令的PORT参数为字节类型的常数,对于CPU221、CPU222和CPU224则只能取“0”;
对于CPU224XP和CPU226可以取“0”或“1”。
S7-200CPU使用特殊寄存器SMB30(对Port0)和SMB130(对Port1)定义通信口的通信方式,SMB30和SMB130各位的意义如表2.7所列。
表2.7SMB30和SMB130各位的意义
Port0
Port1
意义描述
SMB30
SMB130
自由口通信方式控制字
76543210
p
d
b
m
SM30.1、SM30.0
(mm)
SM130.1、SM130.0
协议选择
00:
点到点接口协议(PPI/从站模式)
01:
自由口协议
10:
PPI/主站模式
11:
保留(缺省是PPI/从站模式)
意义描述
注意:
当选择mm=10时,PLC将成为网络的一个主站,可以执行NETR和NETW指令。
在PPI模式下忽略2~7位。
SM30.4、SM30.3、SM30.2(bbb)
SM130.4、SM130.3、SM130.2
(bbb)
自由口波特率(bps)
000:
38,400
001:
19,200
010:
9,600
011:
4,800
100:
2,400
101:
1,200
110:
115,200
111:
57,600
SM30.5(d)
SM130.5
(d)
每个字节的数据位
8位/字符
7位/字符
SM30.7、SM30.6(pp)
SM130.7、SM130.6(pp)
校验选择
不校验
偶校验
奇校验
S7-200系统规定,在程序中可以使用任意多条网络读写指令,但是在同一时间最多只能有8条网络读写指令被激活。
例如,在所给的S7-200CPU中,可以有4条网络读指令和4条网络写指令,或者2条网络读指令和6条网络写指令在同一时间被激活。
2.5.2NETR/NETW指令向导
可以使用STEP7-Micro/WIN软件中的“网络读写向导”来生成网络读写程序,且只有在PPI通信中作为主站的CPU才需要用NETR/NETW向导编程。
在STEP7-Micro/WIN中的命令菜单中选择“工具”→“指令向导”可打开指令向导窗口(如图2.11所示),然后选择“NETR/NETW”可启动“网络读写向导”。
图2.11指令向导窗口
在使用向导时必须先对项目进行编译,在随后弹出的对话框中选择“是”,确认编译。
如果已有的程序中存在错误,或者有尚未编完的指令,编译不能通过。
如果当前项目中已经存在一个NETR/NETW的配置,则必须选择是编辑已经存在的NETR/NETW的配置,还是创建一个新的配置。
指令向导分为以下几个步骤:
1.定义用户所需网络操作的条目
如图2.12所示,向导的第1步提示用户选择所需网络读/写操作的条目。
用户最多只能配置24个网络操作,程序会自动调配这些通信操作。
图2.12选择网络读写指令条数
2.定义通信口和子程序名
如图2.13所示,向导的第2步将提示用户选择应用哪个通信口进行PPI通信:
Port0或Port1。
图2.13选择通信端口,指定子程序名称
用户一旦选择了通信口,则向导中所有网络操作都将通过该口通信,即通过向导定义的网络操作,只能一直使用一个口与其它CPU进行通信。
向导为子程序定义了一个缺省名(NET_EXE),当然用户也可以修改这个缺省名。
3.定义网络操作
向导的第3步将提示用户设置网络操作的细节。
每一个网络操作,都要定义以下信息:
①定义该网络操作是一个NETR还是一个NETW。
②定义应该从远程PLC读取多少个数据字节(NETR)或者应该向远程PLC写入多少个数据字节(NETW)。
每条网络读写指令最多可以发送或接收14个字节的数据。
③定义想要通信的远程PLC地址。
如图2.14所示,如果定义的是NETR(网络读)操作,则还需要进一步定义读取的数据应该存在本地PLC的哪个地址区(本地PLC的接收数据缓冲区),有效的操作数可为VB、IB、QB、MB、LB;
定义应该从远程PLC的哪个地址区(远程PLC的发送数据缓冲区)读取数据,有效的操作数为VB、IB、QB、MB、LB。
图2.14设定网络读操作细节
如图2.15所示,如果定义的是NETW(网络写)操作,则还需要进一步定义要发送的数据位于本地PLC的哪个地址区(本地PLC的数据发送缓冲区),有效的操作数可为VB、IB、QB、MB、LB;
定义应该写入远程PLC的哪个地址区(远程PLC的接收数据缓冲区),有效的操作数为VB、IB、QB、MB、LB。
图2.15设定网络写操作细节
在图2.14和图2.15中,单击“删除操作”按钮,可以删除当前定义的操作;
单击“下一项操作”按钮,可以进入下一步网络操作的定义。
4.分配V存储区地址
如图2.16所示,向导的第4步将提示用户分配V存储区地址。
配置的每一个网络操作需要12字节的V区地址空间,上例中配置了两个网络操作,因此占用了25个字节的V区地址空间。
向导自动为用户提供了建议地址,用户也可以自己定义V区地址空间的起始地址。
图2.16分配数据区地址
要保证用户程序中已经占用的地址、网络操作中读写区所占用的地址以及此处向导所占用的V区地址空间不能重复使用,否则将导致程序不能正常工作。
5.生成子程序及符号表
如图2.17所示,向导的第5步将提示用户生成子程序和符号表。
图中显示了NETR/NETW向导将要生成的子程序、全局符号表。
图2.17生成子程序和符号表
单击“完成”按钮,然后在弹出的确认对话框中单击“是”按钮,则在当前项目中生成一个网络读写子程序及一个全局符号表,如图2.18所示。
图2.18网络读写子程序
6.调用子程序
要实现网络读写功能,需要在程序中调用向导生成的NETR/NETW参数化子程序,调用规范如图2.19所示。
图2.19调用子程序后生成下面的程序
(必须用SM0.0来使能NETR/NETW,以保证它的正常运行;
超时:
0=不延时;
1~36767=以秒为单位的超时延时时间。
如果通信有问题的时间超出此延时时间,则报错误;
M0.0:
周期参数,此参数在每次所有网络操作完成时切换其开关量状态
M0.1此处是错误参数,0=无错误;
1=错误)
NETR/NETW指令向导生成的子程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PPI 通信