欢迎添加工控笔记微信公众号和站长微信,交流讨论,共同进步!
正文
概述
通讯-网络读写
PPI协议是专门为S7-200开发的通信协议。S7-200 CPU的通信口(Port0、Port1)支持PPI通信协议,S7-200的一些通信模块也支持PPI协议。Micro/WIN与CPU进行编程通信也通过PPI协议。
S7-200 CPU的PPI网络通信是建立在RS-485网络的硬件基础上,因此其连接属性和需要的网络硬件设备是与其他RS-485网络一致的。
S7-200 CPU之间的PPI网络通信只需要两条简单的指令,它们是网络读(NetR)和网络写(NetW)指令。
在网络读写通信中,只有主站需要调用NetR/NetW指令,从站只需编程处理数据缓冲区(取用或准备数据)。
PPI网络上的所有站点都应当有各自不同的网络地址。否则通信不会正常进行。
可以用两种方法编程实现PPI网络读写通信:
- 使用NetR/NetW指令,编程实现
- 使用Micro/WIN中的Instruction Wizard(指令向导)中的NETR/NETW向导
注意
1.每条网络读写指令最多能够读或者写16个字节的数据;每个CPU内最多只能有8条网络读写指令同时激活,而网络读写指令的数目没有限制。
2.在一个PPI网络中,与一个从站通信的主站的个数并没有限制,但是一个网络中主站的个数不能超过32个。主站既可以读写从站的数据,也可以读写主站的数据。也就是说,S7-200作为PPI主站时,仍然可以作为从站响应其他主站的数据请求。
3.一个主站CPU可以读写网络中任何其他CPU的数据。
4.只有通信主站能够使用网络读写指令。缺省情况下,S7-200 CPU的通信口设置为从站模式。因此在编程时,需要把通信口设置为通信主站模式。
5.由于串行通信的特点,通信数据的接收(或者发送)是不能与PLC程序的扫描周期配合的。所有的通信活动都需要PLC操作系统的管理,网络读写(包括其他类似的通信指令)指令只是告诉操作系统有需要处理的通信任务。因此,网络读写指令采取通信数据缓冲区的方式,在操作系统的通信管理功能与PLC的用户程序之间交换信息。
6.网络读写指令(NetR/NetW)的数据缓冲区类似。数据缓冲区除了状态字节和地址、数据长度之外,剩余的部分就是纯数据字节。能够传送到通信对象,或者从对象接收的仅仅是数据字节,不包括数据个数等信息。远程站(通信对象)的数据缓冲区则是纯数据区域。
7.网络读写指令可以传递V存储区、M存储区、I/Q区的数据。这取决于设定数据地址时,使用间接寻址方式将地址信息写入到缓冲区中的相应位置,地址信息中包括了存储区和数据的类型。
操作
只有在PPI通信中做主站的CPU才需要用NETR/NETW向导编程。
1.在主站编程界面中,工具—指令向导
2.选择“NETR/NETW”
3.选择网络读写指令条数;网络读写指令向导;向导允许用户最多配置24个网络操作,程序会自动调配这些通信操作。
4.定义(主站)通信的端口和子程序名称;从站通信端口以通信电缆连接为准。
5.定义读写定义:
1.定义该网络操作是一个NETR 还是一个 NETW。
2.定义应该从远程PLC读取多少个数据字节(NETR)或者应该写到远程PLC多少个数据字节(NETW);每条网络读写指令最多可以发送或接收 16 个字节的数据
3.定义想要通信的远程PLC地址。
4.如果定义的是NETR(网络读)操作:
定义读取的数据应该存在本地PLC的哪个地址区,有效的操作数为VB,IB,QB, MB,LB
如果定义的是NETW(网络写)操作:
定义要写入远程PLC的本地PLC数据地址区,有效的操作数为VB,IB,QB, MB, LB。
5.如果定义的是NETR(网络读)操作:
定义应该从远程PLC的哪个地址区读取数据,有效的操作数为VB,IB,QB, MB, LB
如果定义的是NETW(网络写)操作:
定义在远程PLC中应该写入哪个地址区,有效的操作数为VB,IB,QB, MB, LB
6.操作此按钮可以删除当前定义的操作
7.操作此按钮可以进入下一步网络操作的定义
下图定义为:将从站地址为“3”的PLC中读取”VB10-VB15”存储到主站PLC的“VB0-VB5”中
6.上一步配置“读取”完成后,点击“下一项操作”编辑“写入”配置
下图定义为:将主站PLC中“VB20-VB25”的数据写入从站地址为“3”的PLC中的“VB30-VB35”中
7.分配数据区地址
8.生成子程序和符号表,配置完成。
9.编写主站程序如下图
10.配置从站程序,在“系统块”中配置PPI通信信息,需要与主站配置的一致。
11.编写从站程序如下图
数据流向
VB2000-VB2005(主站)–VB20-VB25(主站)—-PPI通信—-VB30-VB35(从站)–VB100-VB105(从站)–VB10-VB15—-PPI通信—-VB1000-VB1005(主站)
测试
在主站程序中,向VB2000写入“11”,VB2005写入“12”,经过PPI通信写入从站,再有从站写回到主站的VB1000和VB1005中(参考数据流向)
从站程序监控