首页 理论教育S7-200 CPU PPI主站通信指令详解

S7-200 CPU PPI主站通信指令详解

【摘要】:PLC的通信包括PLC之间、PLC与上位计算机之间以及PLC与其他智能设备之间的通信。如果在用户程序中指定某个S7-200 CPU为PPI主站模式,则在RUN工作方式下,可以作为主站,它可以用相关的通信指令读写其他PLC中的数据;与此同时,它还可以作为从站响应来自于其他主站的通信请求。在S7-200的PPI主站模式下,网络通信指令有两条:NETR和NETW。

PLC的通信包括PLC之间、PLC与上位计算机之间以及PLC与其他智能设备之间的通信。PLC与计算机可以直接或通过通信处理单元、通信转换器相连构成网络,以实现信息的交换。

1.S7-200的网络通信协议

在进行网络通信时,通信双方必须遵守约定的规程,这些为交换信息而建立的规程称为通信协议。

S7-200系列的PLC主要用于现场控制,在主站和从站之间的通信可以采用3个标准化协议和1个自由口协议:①PPI(Point to Point Interface)协议,也就是点对点接口协议;②MPI(Multi Point Interface)协议,也就是多点接口协议;③PROFIBUS协议,用于分布式I/O设备的高速通信;④用户定义的协议,也就是自由口协议。

其中,PPI协议是SIEMENS公司专为S7-200系列PLC开发的通信协议,是主/从协议,利用PC/PPI电缆,将S7-200系列的PLC与装有STEP 7-Micro/WIN32编程软件的计算机连接起来,组成PC/PPI(单主站)的主/从网络连接。

本节中只介绍PPI协议。

网络中的S7-200 CPU均为从站,其他CPU、编程器或人机界面HMI(如TD200文本显示器)为主站。

如果在用户程序中指定某个S7-200 CPU为PPI主站模式,则在RUN工作方式下,可以作为主站,它可以用相关的通信指令读写其他PLC中的数据;与此同时,它还可以作为从站响应来自于其他主站的通信请求。

对于任何一个从站,PPI不限制与其通信的主站的数量,但是在网络中最多只能有32个主站。

2.通信设备

(1)通信端口

S7-200系列PLC中的CPU226型机有2个RS-485端口,外形为9针D型,分别定义为端口0和端口1,作为CPU的通信端口,通过专用电缆可与计算机或其他智能设备及PLC进行数据交换。

(2)网络连接器

网络连接器用于将多个设备连接到网络中。一种是连接器的两端只是个封闭的D型插头,可用于两台设备间的一对一通信;另一种是在连接器两端的插头上还设有敞开的插孔,可用来连接第三者,实现多设备通信。

(3)PC/PPI电缆

用此电缆连接PLC主机与计算机及其他通信设备,PLC主机侧是RS-485接口,计算机侧是RS-232接口。当数据从RS-232传送到RS-485时,PC/PPI电缆是发送模式,反之是接收模式。

3.通信指令

(1)PPI主站模式设定

在S7-200的特殊继电器SM中,SMB30(SMB130)是用于设定通信端口0(通信端口1)的通信方式。由SMB30(SMB130)的低2位决定通信端口0(通信端口1)的通信协议。只要将SMB30(SMB130)的低2位设置为2#10,就允许该PLC主机为PPI主站模式,可以执行网络读写指令。

(2)PPI主站模式的通信指令

S7-200 CPU提供网络读写指令,用于S7-200 CPU之间的联网通信。网络读写指令只能由在网络中充当主站的CPU执行,或者说只给主站编写读写指令,就可与其他从站通信了;从站CPU不必做通信编程,只需准备通信数据,让主站读写(取送)有效即可。

在S7-200的PPI主站模式下,网络通信指令有两条:NETR和NETW。

1)网络读指令NETR(Net Read)。

网络读指令通过指定的通信口(主站上0口或1口)从其他CPU中指定地址的数据区读取最多16字节的信息,存入本CPU中指定地址的数据区。

在指令(见图1-28)中,网络读指令以功能框形式编程,指令的名称为NETR。当允许输入EN有效时,初始化通信操作,通过指定的端口PORT,从远程设备接收数据,将数据表TBL所指定的远程设备区域中的数据读到本CPU中。TBL和PORT均为字节型,PORT为常数。

978-7-111-59315-7-Chapter01-60.jpg

图1-28 NETR指令

PORT处的常数只能是0或1,如是0,就要将SMB30的低2位设置为2#10;如是1,就要将SMB130的低2位设置为2#10,这里要与通信端口的设置保持一致。

TBL处的字节是数据表的起始字节,可以由用户自己决定,但起始字节定好后,后面的字节就要接连使用,形成列表,每个字节都有自己的任务,见表1-27。NETR指令最多可以从远程设备上接收16字节的信息。

在语句表中,NETR指令的指令格式:NETR TBL,PORT。

2)网络写指令NETW(Net Write)。

1-27 数据表(TBL)格式

978-7-111-59315-7-Chapter01-61.jpg

网络写指令通过指定的通信口(主站上0口或1口),把本CPU中指定地址的数据区内容写到其他CPU中指定地址的数据区内,最多可以写16字节的信息。

在指令(见图1-29)中,网络写指令以功能框形式编程,指令的名称为NETW。当允许输入EN有效时,初始化通信操作,通过指定的端口PORT,将数据表TBL所指定的本CPU区域中的数据发送到远程设备中。TBL和PORT均为字节型,PORT为常数。数据表TBL见表1-27。NETW指令最多可以从远程设备上接收16字节的信息。

978-7-111-59315-7-Chapter01-62.jpg

图1-29 NETW指令

在语句表中,NETW指令的指令格式:NETW TBL,PORT

在一个应用程序中,使用NETR和NETW指令的数量不受限制,但是不能同时激活8条以上的网络读写指令(例如,同时激活6条NETR和3条NETW指令)。

数据表TBL共有23个字节,表头(第一个字节)是状态字节,它反映网络通信指令的执行状态及错误码,各个位的意义如下:

978-7-111-59315-7-Chapter01-63.jpg

D位:操作完成位。0—未完成,1—已经完成。

A位:操作排队有效位。0—无效,1—有效。

E位:错误标志位。0—无错误,1—有错误。

E1、E2、E3、E4为错误编码。如果执行指令后,E位为1,则由E1E2E3E4反映一个错误码。编码及说明见表1-28。

1-28 错误编码

978-7-111-59315-7-Chapter01-64.jpg