您现在的位置是:首页 > PLC技术 > PLC技术
S7-200 PLC通信的网络NETR/NETW指令
来源:艾特贸易2017-06-05
简介S7-200 CPU 之间的 PPI 网络通信只需要两条简单的指令,它们是 NETR (网络读)和 NETW (网络写)指令。在网络读写通信中,只有主站需要调用 NETR/NETW 指令,从站只需编程处理数据缓冲区
S7-200 CPU之间的PPI网络通信只需要两条简单的指令,它们是NETR(网络读)和NETW(网络写)指令。在网络读写通信中,只有主站需要调用NETR/NETW指令,从站只需编程处理数据缓冲区(取用或准备数据)。
LAD及STL语言形式的NETR/NETW指令如表6-5所列。
表6-5 NETR/NETW指令
1) NETR指令
NETR(网络读)指令初始化一个通信操作,根据指令中对“TBL”(表)的定义,通过指定的“PORT”(端口)从远程设备上采集数据。NETR指令可以从远程站点读取最多16个字节的信息。
NETR/NETW指令的TBL参数为字节类型,可以是VB、MB、*VD、*LD或* AC,TBL参数的意义如表6-6所列。
表6-6 NETR/NETW指令的TBL参数
表中首字节中各标志位的意义如下。
“D”——完成(操作已完成)。0:未完成;1:完成。
“A”——有效(操作已被排队)。0:无效;1:有效。
“E”——错误。0:无错误;1:错误。错误代码的意义如表6-7所列。
表6-7 TBL参数中错误代码的意义
NETR/NETW指令的PORT参数为字节类型的常数,对于CPU 221、CPU 222和CPU 224则只能取“O”;对于CPU 224 XP和CPU 226可以取“0”或“1”。
SMB30和SMB130分别是S7-200 CPU的Port 0和Port 1通信方式控制字,可设置自由端口通信的通信方式,并提供自由端口或者系统所支持的协议之间的选择。
注意:S7-200系统规定,在程序中可以使用任意多条网络读写指令,但是在同一时间,最多只能有8条网络读写指令被激活。例如,在所给的S7-200 CPU中,可以有4条网络读指令和4条网络写指令,或者2条网络读指令和6条网络写指令在同一时间被激活。
2) NETR/NETW指令向导
可以使用STEP 7-Micro/WIN软件中的“网络读写向导”来生成网络读写程序,且只有在PPI通信中作为主站的CPU才需要用NETR/NETW向导编程。在STEP 7-Micro/WIN中的命令菜单中选择“工具”一“指令向导”可打开指令向导窗口(如图6-18所示),然后选择“NETR/NETW”可启动“网络读写向导”。
图6-18 指令向导窗口
在使用向导时必须先对项目进行编译,在随后弹出的对话框中选择“是”,确认编译。如果已有的程序中存在错误,或者有尚未编完的指令,编译不能通过。如果当前项目中已经存在一个NETR/NETW的配置,则必须选择是编辑已经存在的NETR/NETW的配置.还是创建一个新的配置。
指令向导分为以下几个步骤。
①定义用户所需网络操作的数目。
如图6-19所示,向导的第1步提示用户选择所需网络读/写操作的数目。用户最多只能配置24个网络操作,程序会自动调配这些通信操作。
图6-19 选择网络读/写指令条数
②定义通信口和子程序名。
如图6-20所示,向导的第2步将提示用户选择应用哪个通信口进行PPI通信:Port0或Port1。
图6-20 选择通信端口和指定子程序名称
用户一旦选择了通信口,则向导中所有网络操作都将通过该口通信,即通过向导定义的网络操作,只能一直使用一个口与其他CPU进行通信。向导为子程序定义了一个缺省名(NET_EXE),当然用户也可以修改这个缺省名。
③定义网络操作。
向导的第3步将提示用户设置网络操作的细节。每一个网络操作,都要定义以下信息:
定义该操作是一个NETR还是NETW;定义应该从远程PLC读取多少个数据字节(NETR)或者应该写到远程PLC多少个数据字节(NETW)。每条网络读写指令最多可以发送或接收14个字节的数据;定义想要通信的远程PLC地址。
如图6-21所示,如果定义的是NETR(网络读)操作,则还需要进一步定义读取的数据应该存在本地PLC的哪个地址区,有效的操作数可为VB、IB、QB、MB、LB;定义应该从远程PLC的哪个地址区读取数据,有效的操作数为VB、IB、QB、MB、LB。
图6-21 设定网络读操作细节
如图6-22所示,如果定义的是NETW(网络写)操作,则还需要进一步定义要写入远程PLC的本地PLC数据地址区,有效的操作数可为VB、IB、QB、MB、LB;定义应该写入远程PLC中哪个地址区,有效的操作数为VB、IB、QB、MB、LB。
图6-22 设定网络写操作细节
单击“删除操作”按钮,可以删除当前定义的操作;单击“下一项操作”按钮,可以进入下一步网络操作的定义。
④分配V存储区地址。
如图6-23所示,向导的第4步将提示用户分配V存储区地址。配置的每一个网络操作需要12字节的V区地址空间,上例中配置了两个网络操作,因此占用了25个字节的V区地址空间。向导自动为用户提供了建议地址,用户也可以自己定义V区地址空间的起始地址。
图6-23 分配数据区地址
注意:要保证用户程序中已经占用的地址、网络操作中读写区所占用的地址以及此处向导所占用的V区地址空间不能重复使用,否则将导致程序不能正常工作。
⑤生成子程序及符号表。
如图6-24所示,向导的第5步将提示用户生成子程序和符号表。图中显示了NETR/NETW向导将要生成的子程序、全局符号表。
图6-24 生成子程序和符号表
单击“完成”按钮,然后在弹出的确认对话框中单击“是”按钮,则在当前项目中生成子程序及全局符号表,如图6-25所示。
图6-25 网络读写子程序
⑥调用子程序。
如图6-26所示,要实现网络读写功能,需要在程序中调用向导生成的NETR/NETW参数化子程序。NETR/NETW指令向导生成的子程序能管理所有的网络读写通信,用户不必再编其他程序进行诸如设置通信口的操作。
图6-26 调用NETR/NETW参数化子程序