网络读写指令向导使用指南

2018年9月30日08:59:29 发表评论 38 阅读

PPI协议是专门为S7-200开发的通信协议。S7-200 CPU的通信口(Port 0、Port 1)均支持PPI通信协议。S7-200 CPU的PPI网络通信是建立在RS-485网络的硬件基础上,因此其连接属性和需要的网络硬件设备与其他RS-485网络一致。

1  网络读写(NETR/NETW)指令介绍

网络读写指令一般用于S7-200 CPU之间的PPI网络通信。PPI通信前要保证PPI网络上的所有站点都应当有各自不同的网络地址,否则通信不会正常进行。另外,网络读写指令进行编程和应用时要注意以下几点:

1)    在程序中可以使用任意条网络读写指令,但是在同一时刻,最多只能有8条网络读写指令被激活;

2)    每条网络读写指令可以从远程站点读取/写入最多16个字节的信息;

3)    使用NETR/NETW指令向导可以编辑最多24条网络读写指令,其核心是使用顺序控制指令,这样在任一时刻只有一条NETR/NETW指令有效;

4)    每个CPU的端口只能配置一个网络读写指令向导。

2  网络读写指令向导组态

2.1 硬件连接

下面通过一个实例(两台S7-200 PLC之间的通信)来介绍如何使用网络读写指令向导。首先,两个S7-200之间的硬件连接需要一根标准DP电缆加两个DP总线插头。两台S7-200的RS485通信端口连接方式,可参考以下图片中的连接方式(如果PLC有两个通信端口,则任意端口都可进行配置,本例中两个PLC均以Port 0口做PPI通信使用),如图1所示。

图1   两台PLC的网络连接

图1   两台PLC的网络连接

2.2 NETR/NETW向导组态过程

2.2.1设定通信站地址

首先,用PC/PPI编程电缆将两台PLC的网络站地址分别设置为2和3,波特率都为9.6Kbps。这时,将编程电缆连接到任一个CPU带可编程插口的DP插头上,查找两台PLC的站地址,如图2所示。

图2   设定两台CPU的网络地址

图2   设定两台CPU的网络地址

 

在本例中,选定通信地址为3的PLC为网络主站,并对其进行向导配置。选定要做为通信主站的CPU地址,点击确认后即可进入该CPU的编程界面。另外,网络读写指令向导会自动将CPU设置成主站模式,不必另行编程设置,只需为主站编写通信程序,从站直接使用通信缓冲区中的数据,或将数据整理到通信区即可。

2.2.2 向导配置步骤

进入到编程画面后,点击工具菜单栏,找到指令向导选项,准备进入网络读/写功能的向导配置模式,如图3所示。

图3 进入指令向导编程界面

图3 进入指令向导编程界面

打开指令向导界面,选择NETR/NETW指令功能,如图4所示。

图4 NETR/NETW指令向导界面

图4 NETR/NETW指令向导界面

选择网络读写指令后,点击下一步,可以定义通信所需网络操作的数目,如图5所示。向导中最多可以使用24个网络读写操作,对于更多的操作,可用网络读写指令编程实现,本例子中将建立两个网络操作。 

图5 网络读写操作数目的确定

图5 网络读写操作数目的确定

接下来,选择要进行通讯主站的PLC端口序号,这里选择PORT 0口作为通讯主站端口,并为即将生成的向导配置子程序命名(可使用默认名,也可自命名)。对于有两个通信端口的CPU既可以选择Port 0也可以选择Port 1,所有网络操作将由定义的通信口完成,如图6所示。

图 6 定义网络端口序号并命名子程序名称

图 6 定义网络端口序号并命名子程序名称

点击下一步,进入到数据交换区域的设定界面,如图7所示。

图7  网络读数据交换组态界面

图7  网络读数据交换组态界面

其中:

1. 代表定义该网络操作是一个网络读(NETR)还是一个网络写(NETW)操作;

2. 代表定义应该从远程PLC读取多少个数据字节(NETR)或者应该写到远程PLC多少个数据字节(NETW),每条网络读写指令最多可以发送或接收16个字节的数据;

3. 代表定义想要通信的远程PLC地址;

4. 代表定义的是网络读(NETR)或网络写(NETW)操作时,定义读取或写入的数据应该存在本地PLC的哪个地址区,并且将被写入和被读取的数据定义在远程PLC中的哪个地址区,有效的操作数为VB、IB、QB、MB、LB;

因为之前已定义了两项网络读/写操作,所以在“下一项操作”中可以配置另外一条网络读/写操作指令,配置内容与上述界面类似,就不再重复介绍。在第一个操作中定义为网络读操作,地址分配如图7所示;下一项操作中将定义为网络写(NETW)操作,具体的地址分配如图8中所示的内容。

图8   网络写操作的配置画面

图8   网络写操作的配置画面

最后需要分配V存储区的建议地址,建议将V存储区起始地址设置的大一些(如图9所示),原则是避免和程序中已经应用到的V存储区地址有重叠。

图9  建议地址区分配

图9  建议地址区分配

完成了上述步骤,即完成了向导的配置过程。在向导配置完成后,会自动生成网络读写指令的子程序及符号表。

2.3 NETR/NETW程序块编程

完成向导配置后,进入程序块编程。编程的内容就是对向导生成的子程序进行调用,最后将程序下载到相应的PLC中,使之生效,如图10所示。

图10  调用向导生成的子程序模块

图10  调用向导生成的子程序模块

其中:

1)    必须用SM0.0来使能NETR/NETW,以保证该指令的正常运行;

2)    Timeout:超时参数。0=不延时;1-32767=表示以秒为单位的超时延时时间。如果通信有问题的时间超出此延时时间,则报错误;

3)    Cycle:周期参数。此参数在每次所有网络读写操作完成时切换其开关量状态;

4)    Error:错误参数。0=无错误,1=有错误。

2.4 通信数据交换

首先,打开主站CPU222的状态表,输入数据的交换地址区,并在执行NETW指令的VB200~VB201区域赋值,然后在通信的界面中选择从站CPU 224XP,并打开它的状态表进行监控,查看它的VB200和VB201是否有值写入,同时在VB100和VB101中写入新数值,然后打开主站CPU222的状态表监控相应的地址区是否接收到数值,由此完成如图11所示的读/写数据交换过程。

图11  主/从站通信数据交换

图11  主/从站通信数据交换

3  通信错误代码

     如果数据区没有接收到数据,那么代表通信不成功,需要查看通信的状态字节来获取错误代码。每项读/写操作的状态字节可以参考指令向导配置成功后在符号表中生成的NET_SYMS标签栏,如图12所示。状态字节对应的V区地址如图13所示(由于分配的V存储区起始地址不同,那么得到的状态字节地址也会不同),例如:第一项NETR操作对应的状态字节地址为VB503。

图12  符号表中生成的NET_SYMS

图12  符号表中生成的NET_SYMS

图13 通信读/写指令状态字节

图13 通信读/写指令状态字节

状态字节中每一位代表的具体含义如图14中红框中标注的内容。

图14  状态字节位含义

图14  状态字节位含义

由上图可以看出错误代码只占据状态字节的低4位,将其转换为十进制数值即代表了错误代码,错误代码的具体说明如图15所示。

图15  通信错误代码说明

图15  通信错误代码说明

weinxin
微信扫一扫西门子PLC 立即报价
1分钟内报价1天内发货1年内质保(为了省去等待时间,请提供准确型号)-享受专属VIP客服服务

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: