ppi的通信功能解读课件.ppt
《ppi的通信功能解读课件.ppt》由会员分享,可在线阅读,更多相关《ppi的通信功能解读课件.ppt(96页珍藏版)》请在三一办公上搜索。
1、第4章 S7-200 PLC的通信功能,4.1 PPI通讯4.1.1 概述PPI协议是S7-200 PLC中最基本的一种通信方式,通过S7-200 CPU自身的端口(port0或Port 1)即可完成,是S7-200 CPU默认的通信协议。PPI是一种主-从协议,协议定义了主站和从站,网络中主站向网络中的从站发出请求,从站只能对主站发出的请求做出响应,自己不能发出请求。主站也可以对网络中其他主站的请求做出响应。,S7-200的通信口为RS-485接口,PC/PPI多主站电缆用于计算机与S7-200之间的通信,有RS-232CPPI和USBPPI两种电缆。PPI网络连接示意图如图10-1所示,要
2、求如下:(1)每个网段至多32个网络节点;(2)每个网段最长50米(不用中继器),可通过中继器扩展网络,最多9 个中继器;(3)网络可包含127节点;(4)网络可包含32个主站;(5)网络总长9600米。,图4-1 PPI网络连接示意图,PROFIBUS连接器和电缆将CP通信卡和S7-200通信口连接。不同主/从站之间也可以通过PROFIBUS连接器和电缆进行连接通信。PPI是主/从协议,默认情况下网络中的S7-200 CPU均为从站,其他CPU、SIMATIC编程器或文本显示器(例TD400C等)为主站。 PPI网络包括单主站PPI网络和多主站PPI网络。,图4-2 多主站PPI网络结构图,
3、4.1.2 使用网络读写指令实现PPI通信如果在用户程序中使用了PPI主站模式,一些S7-200 CPU在RUN模式下可以做主站,它们可以用网络读(NETR,Net Read)和网络写(NETW,Net Write)指令读写其他CPU中的数据。S7-200 PLC之间的PPI通信可以使用PROFIBUS网线直接连接CPU上PORT 0或PORT1,然后在CPU内调用网络读写指令即可实现。,1网络读写指令NETR/NETW网络读取(NETR)指令开始一项通讯操作,通过指定的端口(PORT)从远程设备收集数据。网络写入(NETW)指令开始一项通讯操作,通过指定的端口(PORT)向远程设备写入数据。
4、每一个NETR/NETW指令可从/向远程站读取/写入16个字节信息。网络读写指令是通过TBL参数表来指定报文头,TBL参数表如表4-1所示。,表4-1 网络读写指令TBL,错误代码如表4-2所示:,表4-2 错误代码表,2设定通信协议在程序的开始必须设定通信协议。SMB30用于配置通信端口0(Port 0),SMB130用于配置通信端口1(Port 1),此两个特殊寄存器字节的含义如表10-3所示。表10-3中:pp(校验选择)、d(每个字符的数据位)、bbb(自由口波特率)均为自由口通信时才需要设定的参数,在PPI通信时都设置为0即可。mm协议选择,3设定NETW和NETR的TBL参数表,图
5、4-3 网络写指令NETW,图4-4 网络读指令NETR,4通信参数设定,CPU通信端口的设定可以通过STEP 7 Micro/WIN软件的“系统块(System Block)”选项来进行。最高地址(Highest Address波特率地址间隔刷新系数(Gap Update Factor),4.1.3 使用向导实现PPI通信,图4-5 “网络读/写操作”对话框,单击图4-5“下一项操作”按钮,进入第二项“网络读/写操作”对话框单击“下一步”,出现分配存储区对话框接下来,要调用向导生成的子程序来实现数据的传输,主站程序及注释如图10-6所示。,图4-6 主站主程序,4.2 自由口通信,S7-20
6、0 CPU的串行通讯口可由用户程序控制,这种操作模式称为自由口模式。自由口通信是一种基于 RS485硬件基础上,允许应用程序控制 S7-200 CPU 的通信端口,以实现一些自定义通信协议的通信方式。当选择了自由口模式,程序可以使用接收中断、发送中断、发送指令(XMT)和接收指令(RCV)来控制通讯操作。在自由口模式下,通讯协议完全由程序控制。SMB30(用于端口0)和SMB31(如果CPU有两个端口,则用于端口1)用于选择波特率和奇偶校验。S7-200 CPU 处于自由口通信模式时,所有的通信任务和信息定义均需由用户编程实现。只有CPU处于RUN模式时,才能进行自由端口通讯。,4.2.1 自
7、由口模式下的发送和接收指令,S7-200 CPU的自由口通信的数据字节格式必须含有一个起始位、一个停止位,数据位长度为7位或8位,校验位和校验类型(奇、偶校验)可选。S7-200 CPU的自由口通信定义方法为将自由口通信操作数传入特殊寄存器 SMB30(端口0)和 SMB130(端口1)进行端口定义,自由口通信操作数定义如表4-4所示。,自由口通信模式主要使用XMT(发送)和RCV(接收)两条指令及相应的特殊寄存器。XMT 指令利用数据缓冲区指定要发送的字符,用于向指定通信口以字节为单位发送一串数据字符,一次最多发送255个字节。,表4-5 XMT指令的缓冲区格式,RCV指令可以接收一个或多个
8、字符,最多有255个字符,这些字符存储在缓冲区中。RCV 指令的缓冲区格式如表4-6所示。当超界或奇偶校验错时,接收信息功能自动终止。必须为接收信息功能操作定义一个启动条件(x或z)和一个结束条件(y,t或最大字符数)。协议支持使用字符中断控制来接收数据。,表4-6 RCV指令的缓冲区格式,4.2.2 自由口通信举例,1自由口发送实例要求:记录定时中断次数,将计数值转化为ASCII字符串,再通过CPU224XP 的 Port0 发送到计算机串口,计算机接受并利用超级终端显示与 S7-200 CPU 通信的内容。 (1)PLC编程规定缓冲区为 VB100 到 VB114 ,使用数据块进行缓冲区定
9、义,如图4-7所示,16#0D和16#0A用于计算机的超级终端显示需要。,图4-7 组态数据块,主程序如图4-8所示,根据 I 0.3 状态初始化端口1为自由口通信。SBR_0 程序如图4-9所示,定义端口0为自由口,初始化定时中断。,图4-8 自由口通信主程序,图4-9 SBR_0子程序,SBR_1子程序如图4-10所示,用于定义端口0为普通 PPI 从站通信口。 图4-10 SBR_1子程序INT_0 程序如图4-11所示,对定时中断计数并从端口0发送计数值 图4-11 INT_0子程序,图4-10 SBR_1子程序,图4-11 INT_0子程序,(2)超级终端设置超级终端(Hyper T
10、erminal)是 Windows 操作系统提供的通信测试程序,本例用来监测计算机和 S7-200 CPU 之间的串口通信。超级终端组态步骤如下:1)执行 Windows 菜单命令“开始”“附件”“通信”“超级终端”,为要新建的连接输入连接名称。 2)选择连接时要使用的串口。3)设置串口通信参数并保存连接,注意此处设置要与PLC程序中对应。4)使用超级终端接收 S7-200 CPU 发送的信息。,图4-12 超级终端接受显示,2自由口接收实例要求S7-200 CPU 从端口0接收计算机发送的字符串,并在信息接收中断服务程序中把接收到的第一个字节传送到 CPU 输出字节QB0 上显示。(1)PL
11、C编程 主程序如图4-13所示,根据I 0.3 状态初始化端口1为自由口通信。,图4-13 自由口通信主程序,SBR_0子程序如图4-14所示,用于定义端口0为自由口,初始化接收指令。,图4-14 SBR_0 程序,SBR_1子程序如图4-15所示,定义端口0为普通 PPI 从站通信口。INT_0中断子程序如图4-16所示,在 QB0 输出接收到的第一个字节。(2)配置超级终端打开前面建立的超级终端链接,进入属性窗口,点击 “ASCII 码设置” 按钮,在弹出的 ASCII 码设置窗口中,勾选“以换行符作为发送行末尾”和“本地回显键入的字符”两项。,4.3 MODBUS通信Modbus通信协议
12、是Modicon公司提出的一种报文传输协议,它广泛应用于工业控制领域,并已经成为一种通用的行业标准。不同厂商提供的控制设备可通过 Modbus 协议连成通信网络,从而实现集中控制。4.3.1 Modbus报文格式Modbus 地址通常是包含数据类型和偏移量的5个或6个字符值。第一个或前两个字符决定数据类型,最后的四个字符是符合数据类型的一个适当的值。(1)Modbus 主站寻址Modbus主设备指令支持下列Modbus地址:00001至09999是离散输出(线圈);10001至19999是离散输入(触点);30001至39999是输入寄存器(通常是模拟量输入);40001至49999是保持寄存
13、器。,(2)Modbus 从站寻址Modbus 地址与 S7-200 地址对应关系如表4-7所示。,Modbus 通信协议有 ASCII 和 RTU(远程传输单元)两种报文传输模式。(1)ASCII模式 ASCII模式采用LRC(纵向冗余校验)方式进行校验,其报文格式如表4-8所示。,表4-8 ASCII模式的报文格式,(2)RTU模式RTU模式的报文格式如表4-9所示。地址功能码:Modbus功能代码,1个字节;Modbus协议支持的功能码共16条(116),其中西门子Modbus RTU协议库支持最常用的8条,如表4-10所示;信息数据CRC :循环冗余校验,两个字节。,表4-10 西门子
14、Modbus RTU协议库支持最常用的8条功能码,表4-9 RTU模式的报文格式,RTU模式下,报文中的每个8位字节被转化为两个16进制字符,然后以字节为单位进行传输,并采用CRC(循环冗余校验)方式进行校验。目前支持 Modbus 通信的DCS系统和过程仪表大都采用基于串行接口的Modbus RTU模式,西门子提供了针对西门子PLC Modbus RTU通信的协议库。如果要在西门子PLC上实现Modbus ASCII模式通信,可根据相关协议规定利用自由口通信模式自主编程实现。,4.3.2 Modbus通讯协议指令,西门子专门为 Modbus RTU 通信开发了指令库,极大地简化了Modbus
15、 RTU 通信的开发,以便于快速实现相关应用。要使用 Modbus 指令库必须注意以下四点:(1)使用 Modbus 指令库前,需要将其安装到 Step7-Micro/Win中,STEP 7-Micro/WIN 必须为 V3.2 或以上版本。(2)S7-200 CPU 必须是固化程序修订版2.00或最好支持 Modbus 主设备协议库(CPU MLFB 21x-2xx23-0XB0)。(3)由于目前已经推出了针对端口0和端口1的 Modbus RTU 主站指令库 Modbus Master Port0 和 Modbus Master Port1、以及针对端口0的 Modbus RTU 从站指令
16、库,故可利用指令库实现端口0的Modbus RTU 主/从站通信。(4)一旦 CPU 端口被用于 Modbus RTU 主/从站协议通信时,该端口就无法用于任何其它用途,包括与 STEP 7-Micro/WIN 通讯。,1Modbus 主站协议指令西门子Modbus主站协议库包括两条主站协议指令:MBUS_CTRL指令和MBUS_MSG 指令。MBUS_CTRL 指令用于初始化主站通信,MBUS_MSG 指令(或用于端口1的MBUS_MSG_P1)用于启动对Modbus从站的请求并处理应答。1)MBUS_CTRL 指令 MBUS_CTRL指令如图4-17所示。,图4-17 MBUS_CTRL指
17、令块,2)MBUS_MSG 指令MBUS_MSG 指令(或用于端口1的 MBUS_MSG_P1 )用于启动对Modbus从站的请求并处理应答。MBUS_MSG 指令如图4-18所示,图4-18 MBUS_MSG 指令,Count:“计数”参数;“计数”参数指定在该请求中读取或写入的数据元素的数目。根据Modbus协议,“计数”参数与 Modbus 地址存在表4-11对应关系。,表4-11 “计数”参数与 Modbus 地址的对应关系,表4-12 MBUS_MSG指令错误代码含义,2Modbus 从站协议指令西门子 Modbus 从站协议库包括两条从站指令:MBUS_INIT 指令和MBUS_S
18、LAVE 指令。1)MBUS_INIT 指令MBUS_INIT 指令用于启用和初始化或禁止 Modbus 从站通讯。在使用MBUS_SLAVE 指令之前,必须正确执行 MBUS_INIT 指令。指令完成后立即设定 “完成” 位,才能继续执行下一条指令。MBUS_INIT指令如图4-19所示,图4-19 MBUS_INIT指令,表4-13 MBUS_INIT指令错误代码的含义,2)MBUS_SLAVE 指令MBUS_SLAVE 指令被用于为Modbus 主设备发出的请求服务,并且必须在每次扫描时执行,以便允许该指令检查和回答 Modbus 请求。MBUS_SLAVE 指令无输入参数,在每次扫描且
19、 EN 输入开启时执行。,图4-20 MBUS_SLAVE指令,表4-14 MBUS_SLAVE 指令错误代码的含义,返回08项目ppt,4.3.3 编程实例,两台S7-200 CPU224XP进行通信。利用指令库编程前首先应为其分配存储区,否则 Step7-Micro/Win 编译时会报错。执行 Step7 Micro/Win 菜单命令“文件”“库存储区”,打开“库存储区分配”对话框,输入库存储区的起始地址,注意避免该地址和程序中已经采用或准备采用的其它地址重合,点击“建议地址”按钮,系统将自动计算存储区的地址范围。,(1)从站编程根据要求,从站要响应主站报文,故只需编写主程序,如图4-21
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ppi 通信 功能 解读 课件
链接地址:https://www.31ppt.com/p-1481351.html