当前位置:文档之家› 关于西门子PLC的PPI通信协议的研究

关于西门子PLC的PPI通信协议的研究

关于西门子PLC的PPI通信协议的研究

摘要:本文结合西门子PLC的PPI通信协议的相关理论,主要研究了PPI协议的

通信过程、通信协议模型,并对PLC网络通信模式的构建进行了实例分析。

关键词:西门子PLC;PPI通信协议;通信程序

前言

PPI通信协议是一种特殊的通信协议,其协议本身是不公开的,只有西门子

S7-200的设备支持它。但掌握它也很重要,有时s7-200系列的设备之间只能通过PPI协议通信,例如上位机STEP7-Micro/WIN与S7-200PLC之间的基本通信;有

时只要通过一根电缆就可以实现S7-200PLC之间的简单通信,非常适用。但由于PPI通信协议不是公开的协议,因此一般现场设备是不支持的,限制了其作为标

准现场总线的应用,由此还需对协议内容、功能实现进行研究和分析。

1西门子PLC的PPI通信协议概述

1.1通信过程

在PPI网上,计算机与PLC通信,是采用主从方式,通信总是由计算机发起,PLC予以响应。具体过程如下:

1)计算机按通信任务,用一定格式,向PLC发送通信命令。

2)PLC收到命令后,进行命令校验,如校验后正确无误,则向计算机返回数

据E5H或F9H,作出初步应答。

3)计算机收到初步应答后,再向PLC发送SD(开始定界字符,为10H)、

DA(目标地址,即PLC地址02H)、SA(源地址,即计算机地址00H)、FC(功

能码,取5CH)、FCS(SA、DA、FC和的256余数,为5EH)、ED(结束分界符)确认命令。

如按以上设定的计算机及PLC地址,则发送10、02、00、5C、5E及16,6个字节的十六进制数据,以确认所发命令。

4)PLC收到此确认后,执行计算机所发送的通信命令,并向计算机返回相应

数据。

需要注意的是:如为读命令,情况将如上所述。但如为写或控制命令,PLC

收到后,经校验,如无误,一方面向计算机发送数据E5H,作出初步应答;另一

方面不需计算机确认,也将执行所发命令。但当收到计算机确认信息命令后,会

返回有关执行情况的信息代码[1]。

1.2 PPI协议模型

PPI通信协议的模型以OSI模型为基础,将其中的物理层、数据链路层和应用

层构成现场总线通信的三层模型,如表1所示。

其中PPI的应用层是通信模型的最高层,负责进行应用数据的读写操作。应用层是在数

据链路层之上的,接收数据链路层上传的数据,用来更新本站点的相关数据。当应用层需要

发送数据时,它只要将发送数据的目的站点、数据类型和数据本身等信息下载给数据链路层,由数据链路层去实现数据的发送。

PPI的数据链路层是位于通信模型的第2层,它介于物理层与应用层之间。一方面,它要

执行应用层的数据发送任务,生成数据和控制帧,并将这些帧下载给物理层,通过物理层实

现帧的发送;另一方面,数据链路层还要接收物理层的帧,根据帧进行校验等操作,若是数

据帧,则将其中的数据从帧中读出,上传给应用层。

一次数据写出操作的步骤包括:首先由本站(主站)向从站发出写入请求,从站作出正确接

收的响应(短应答),本站接到此响应则发出写入请求确认控制帧,从站进行写入请求确认的

应答[2],如图1所示。

图1PPI通信的数据链路

1.3 PPI高级协议

PPI通信协议不是基于连接的,每次通信时建立临时连接,通信结束后即断开。在一般的PPI通信协议基础上,西门子还制订了PPI高级协议。在应用中,选择“PPI高级协议”允许网

络设备在设备之间建立逻辑连接。建立了逻辑连接的站点在通信时,直接进行发送和应答,

只需要一次帧的发送和接收,不像一般的PPI通信需要两次。

如果在用户程序中启用PPI主设备模式,S7-200 CPU可在处于RUN(运行)模式时用作主设备。启用PPI主设备模式后,可以使用“网络读取”(NETR)或“网络写入”(NETW)从其他S7-

200CPU读取数据或向S7-200CPU写入数据。S7-200用作PPI主设备时,作为从属设备也可以

应答来自其他主设备的请求。用户可以使用PPI通信协议与所有的S7-200CPU通信。西门子

S7-200的PLC扩展模块EM277是用于PROFIBUS通信的,也支持PPI通信。将EM277用于

PPI通信,必须使用“PPI高级协议”[3]。

2PLC网络通信模式构建实例分析——两台S7-200通过PPI通信

2.1操作步骤

两台S7-200 PLC通过PPI进行连接与通信,如图2所示,要求将主站的I0.0~I1.7的状态

映射到从站的Q0.0~Q1.7,同时将从站的I0.0~I1.7的状态映射到主站的Q0.0~Q1.7。

具体操作步骤为:

1)进行硬件接线(按照图2所示连接)。

2)NETR与NETW指令介绍。在PPI通信模式中,NETR与NETW是最常见的两个指令,

如图3所示。

网络读指令开始一项通信操作,是通过指定的端口从远程设备搜集数据并形成一个表TBL;网络写指令开始一项通信操作,是通过指定的端口向远程设备写一个表TBL中的数据。

2.2NETR/NETW指令向导完成相关任务

(1)指定用户需要的网络操作数目

用户使用NETR/NETW指令向导,可以简化网络操作配置。向导将询问初始化选项,并

根据用户选择生成完整的配置。向导允许配置多达24项独立的网络操作,并生成代码协调

这些操作。本例中,选择2项网络读/写操作。

(2)指定端口号和子程序名称

如果项目可能已经包含一个NETR/NETW向导配置,则所有以前建立的配置均被自动载

入向导。向导会提示用户完成以下两个步骤之一:

1)选择编辑现有配置,方法是单击“下一步”。

2)选择从项目中删除现有配置,方法是选择“删除”复选框,并单击

完成”。如果不存在以前的配置,向导就会询问以下信息:PLC必须被设为PPI,主站模式才能进行通信;用户要指定通信将通过哪一个PLC端口进行。

向导建立一个用于执行具体网络操作的参数化子程序。向导还为子程序指定一个默认名称。

本例中新建一个配置,选择PLC端口0进行通信,可执行子程序名采用默认名称

NET_EXE。

(3)指定网络操作

对于每项网络操作,用户需要提供下列信息:

1)指定操作是NETR还是NETW。

2)指定从远程PLC(NETR)读取的数据字节数或向远程P;C(NETW)写入的数据字节数。

3)指定用户希望用于通信的远程PLC网络地址。

4)如果在配置NETR,指定以下内容:数据存储在本地PLC中的位置。有效操作数有VB、IB、QB、MB、LB;从远程PLC读取数据的位置。有效操作数有VB、IB、QB、MB、LB。

相关主题