您现在的位置是:首页 > 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指令,从站只需编程处理数据缓冲区(取用或准备数据)。

   LADSTL语言形式的NETR/NETW指令如表6-5所列。

    6-5    NETR/NETW指令

NETR/NETW指令

   1) NETR指令

   NETR(网络读)指令初始化一个通信操作,根据指令中对“TBL”(表)的定义,通过指定的“PORT”(端口)从远程设备上采集数据。NETR指令可以从远程站点读取最多16个字节的信息。

   NETR/NETW指令的TBL参数为字节类型,可以是VBMB*VD*LD* ACTBL参数的意义如表6-6所列。

    6-6    NETR/NETW指令的TBL参数

NETR/NETW指令的TBL参数

    表中首字节中各标志位的意义如下。

    D”——完成(操作已完成)。0:未完成;1:完成。

    A”——有效(操作已被排队)。0:无效;1:有效。

    E”——错误。0:无错误;1:错误。错误代码的意义如表6-7所列。

    6-7    TBL参数中错误代码的意义

TBL参数中错误代码的意义

   NETR/NETW指令的PORT参数为字节类型的常数,对于CPU 221CPU 222CPU 224则只能取“O”;对于CPU 224 XPCPU 226可以取“0”或“1”。

   SMB30SMB130分别是S7-200 CPUPort 0Port 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通信:Port0Port1

选择通信端口和指定子程序名称

    6-20    选择通信端口和指定子程序名称

    用户一旦选择了通信口,则向导中所有网络操作都将通过该口通信,即通过向导定义的网络操作,只能一直使用一个口与其他CPU进行通信。向导为子程序定义了一个缺省名(NET_EXE),当然用户也可以修改这个缺省名。

    ③定义网络操作。

    向导的第3步将提示用户设置网络操作的细节。每一个网络操作,都要定义以下信息:

    定义该操作是一个NETR还是NETW;定义应该从远程PLC读取多少个数据字节(NETR)或者应该写到远程PLC多少个数据字节(NETW)。每条网络读写指令最多可以发送或接收14个字节的数据;定义想要通信的远程PLC地址。

    如图6-21所示,如果定义的是NETR(网络读)操作,则还需要进一步定义读取的数据应该存在本地PLC的哪个地址区,有效的操作数可为VBIBQBMBLB;定义应该从远程PLC的哪个地址区读取数据,有效的操作数为VBIBQBMBLB

设定网络读操作细节

    6-21    设定网络读操作细节

    如图6-22所示,如果定义的是NETW(网络写)操作,则还需要进一步定义要写入远程PLC的本地PLC数据地址区,有效的操作数可为VBIBQBMBLB;定义应该写入远程PLC中哪个地址区,有效的操作数为VBIBQBMBLB

设定网络写操作细节

    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指令向导生成的子程序能管理所有的网络读写通信,用户不必再编其他程序进行诸如设置通信口的操作。

调用NETR/NETW参数化子程序

    6-26    调用NETR/NETW参数化子程序