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

(整期优先)网络出版时间:2017-12-22
/ 2

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

黄立华

广西南南铝加工有限公司530031

摘要:本文结合西门子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.2PPI协议模型

PPI通信协议的模型以OSI模型为基础,将其中的物理层、数据链路层和应用层构成现场总线通信的三层模型,如表1所示。

其中PPI的应用层是通信模型的最高层,负责进行应用数据的读写操作。应用层是在数据链路层之上的,接收数据链路层上传的数据,用来更新本站点的相关数据。当应用层需要发送数据时,它只要将发送数据的目的站点、数据类型和数据本身等信息下载给数据链路层,由数据链路层去实现数据的发送。

PPI的数据链路层是位于通信模型的第2层,它介于物理层与应用层之间。一方面,它要执行应用层的数据发送任务,生成数据和控制帧,并将这些帧下载给物理层,通过物理层实现帧的发送;另一方面,数据链路层还要接收物理层的帧,根据帧进行校验等操作,若是数据帧,则将其中的数据从帧中读出,上传给应用层。

一次数据写出操作的步骤包括:首先由本站(主站)向从站发出写入请求,从站作出正确接收的响应(短应答),本站接到此响应则发出写入请求确认控制帧,从站进行写入请求确认的应答[2],如图1所示。

图1PPI通信的数据链路

1.3PPI高级协议

PPI通信协议不是基于连接的,每次通信时建立临时连接,通信结束后即断开。在一般的PPI通信协议基础上,西门子还制订了PPI高级协议。在应用中,选择“PPI高级协议”允许网络设备在设备之间建立逻辑连接。建立了逻辑连接的站点在通信时,直接进行发送和应答,只需要一次帧的发送和接收,不像一般的PPI通信需要两次。

如果在用户程序中启用PPI主设备模式,S7-200CPU可在处于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-200PLC通过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。

5)如果在配置NETW,指定以下内容:数据存储在本地PLC中的位置。有效操作数有VB、IB、QB、MB、LB;向远程PLC写入数据的位置。有效操作数有VB、IB、QB、MB、LB。

本例中,第一项操作为NETR指令,读取字节数为1,远程站地址为6,数据传输为VB307(本地)、VB200(远程);当进入第二项NETW指令,读取字节数为1,远程站地址为6,数据传输为VB207(本地)、VB300(远程)。

(4)分配v存储区

对于用户配置的每一项网络操作,要求有12个字节的V存储区。用户指定可放置配置的V存储区起始地址。向导会自动建议一个地址,且可以编辑该地址。本例中,采用建议地址VBO~VBl8即可。

(5)生成程序代码

要在程序中使用网络通信,需要在主程序块中调用执行子程序(NET—EXE)。每次扫描周期时,使用SM0.0调用该子程序,这样会启动配置网络操作执行。从站的子程序相对简单,主要是在开机时清空V区数据,并将输入、输出与V区数据进行映射。

结语

本文通过对西门子尚未公布的PPI协议进行深入分析,了解了通信协议的相关技术细节。通过相关监控及通信程序,能够实现远程计算机对西门子PLC的读写和控制。该技术在具体实践中的应用能够有效的降低成本费用,节约内存资源的消耗,因此相关工作者今后还应加强该技术的研究,能够的将其应用于PLC的远程监控。

参考文献

[1]张治军.通信协议在在网络中的配置研究[J].科技资讯.2014(33).

[2]蔡锦达,倪建辉,郭锐,王挺.PPI协议与西门子S7-200PLC的通讯[J].工业控制计算机.2016(04).

[3]庄家森,焦小澄.基于PPI通讯协议的监控模块的设计与实现[J].现代电子技术.2015(16).

作者简介

黄立华,男,广西南宁人,助理工程师,大专,从事电气维护调试。