ppi的通信功能.

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• S7-200 CPU 处于自由口通信模式时,所有的通信任务和 信息定义均需由用户编程实现。
• 只有CPU处于RUN模式时,才能进行自由端口通讯。
4.2.1 自由口模式下的发送和接收指令
• S7-200 CPU的自由口通信的数据字节格式必须含有一个起始位、一 个停止位,数据位长度为7位或8位,校验位和校验类型(奇、偶校验) 可选。S7-200 CPU的自由口通信定义方法为将自由口通信操作数传 入特殊寄存器 SMB30(端口0)和 SMB130(端口1)进行端口定义, 自由口通信操作数定义如表4-4所示。
一个网段
一个网段
一个网段
50米
最多1000米 50米
图4-1 PPI网络连接示意图
• S7-200的通信口为RS-485接口,PC/PPI多主站电缆用于计算 机与S7-200之间的通信,有RS-232C/PPI和USB/PPI两种 电缆。
• PPI网络连接示意图如图10-1所示,要求如下: (1)每个网段至多32个网络节点; (2)每个网段最长50米(不用中继器),可通过中继器扩展网 络,最多9 个中继器; (3)网络可包含127节点; (4)网络可包含32个主站; (5)网络总长9600米。
(2)Modbus 从站寻址
• Modbus 地址与 S7-200 地址对应关系如表4-7所 示。
000001 000002 000003
… 000127 000128 010001 010002 010003
… 010127 010128 030001 030002 030003
… 030032 040001 040002 040003
图4-2 多主站PPI网络结构图
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内调用网络读写指令即可实现。
3
多个保持寄存器。功能3返回V存储器的内容。保持寄存器在Modbus下
是字类型,在一个请求中最多可读120个字。
4
读单个/多个输入寄存器,返回模拟输入值。
5
写单个线圈(实际输出)。功能5将实际输出点设置为指定值。该输出
点不是被强制,用户程序可以重写由Modbus的请求而写入的值。
6
写单个保持寄存器。功能6写一个单个保持寄存器的值到S7-200的V存
• S7-200 CPU的串行通讯口可由用户程序控制,这种操作 模式称为自由口模式。自由口通信是一种基于 RS485硬 件基础上,允许应用程序控制 S7-200 CPU 的通信端口, 以实现一些自定义通信协议的通信方式。
• 当选择了自由口模式,程序可以使用接收中断、发送中断、 发送指令(XMT)和接收指令(RCV)来控制通讯操作。在 自由口模式下,通讯协议完全由程序控制。SMB30(用 于端口0)和SMB31(如果CPU有两个端口,则用于端口 1)用于选择波特率和奇偶校验。
第一个或前两个字符决定数据类型,最后的四个字符是符合数 据类型的一个适当的值。 (1)Modbus 主站寻址 Modbus主设备指令支持下列Modbus地址: 00001至09999是离散输出(线圈); 10001至19999是离散输入(触点); 30001至39999是输入寄存器(通常是模拟量输入); 40001至49999是保持寄存器。
图4-14 SBR_0 程序
• SBR_1子程序如图4-15所 示,定义端口0为普通 PPI 从站通信口。
• INT_0中断子程序如图416所示,在 QB0 输出接 收到的第一个字节。
(2)配置超级终端
• 打开前面建立的超级终端 链接,进入属性窗口,点 击 “ASCII 码设置” 按钮, 在弹出的 ASCII 码设置窗 口中,勾选“以换行符作 为发送行末尾”和“本地 回显键入的字符”两项。
• 信息数据
• CRC :循环冗余校验, 两个字节。
表4-10 西门子Modbus RTU协议库支持最常用的8条功能码
功能码 描述
1
读取单个/多个线圈的实际输出状态。功能1返回任意数量输出点的接通
/断开状态(Q)。
2
读取单个/多个线圈的实际输入状态。功能2返回任意数量的输入点的接
通/断开状态(I)。
10
保留
2.设定通信协议
• 在程序的开始必须设定通信协议。SMB30用于配置 通信端口0(Port 0),SMB130用于配置通信端口 1(Port 1),此两个特殊寄存器字节的含义如表10-3 所示。
• 表10-3中:pp(校验选择)、d(每个字符的数据 位)、bbb(自由口波特率)均为自由口通信时才 需要设定的参数,在PPI通信时都设置为0即可。
• mm协议选择
3.设定NETW和NETR的TBL参数表
图4-3 网络写指令NETW
图4-4 网络读指令NETR
4.通信参数设定
• CPU通信端口的设定可以通过STEP 7 Micro/WIN软件的“系统块(System Block)” 选项来进行。
• 最高地址(Highest Address • 波特率 • 地址间隔刷新系数(Gap Update Factor)
• PROFIBUS连接器和电缆将CP通信卡和S7-200 通信口连接。
• 不同主/从站之间也可以通过PROFIBUS连接器和 电缆进行连接通信。
• PPI是主/从协议,默认情况下网络中的S7-200 CPU均为从站,其他CPU、SIMATIC编程器或文 本显示器(例TD400C等)为主站。
• PPI网络包括单主站PPI网络和多主站PPI网络。
• RCV 指令的缓冲区格式如 表4-6所示。当超界或奇偶 校验错时,接收信息功能 自动终止。必须为接收信 息功能操作定义一个启动 条件(x或z)和一个结束 条件(y,t或最大字符数)。
• 协议支持使用字符中断控 制来接收数据。
表4-6 RCV指令的缓冲区格式
4.2.2 自由口通信举例
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是一种主-从协议,协议定义了主站和从站, 网络中主站向网络中的从站发出请求,从站只能 对主站发出的请求做出响应,自己不能发出请求。 主站也可以对网络中其他主站的请求做出响应。
3
离线错误:相同的站地址或无效的硬件引发冲突
4
队列溢出错误:激活超过8个的NETR/TREW指令
5
通信协议错误:没有使用PPI协议(SMB30)而调用NETR/NETW指令
6
非法参数:NETR/NETW表中包含非法或无效的值
7
没有资源:远程站点正在忙中(上装或下载程序)
8
第7层错误:违反应用协议
9
信息错误:错误的数据地址或数据长度
• 图4-10 SBR_1子程 序
• INT_0 程序如图4-11 所示,对定时中断计 数并从端口0发送计数 值
• 图4-11 INT_0子程序
图4-10 SBR_1子程序 图4-11 INT_0子程序
(2)超级终端设置
超级终端(Hyper Terminal) 是 Windows 操作系统提供 的通信测试程序,本例用来 监测计算机和 S7-200 CPU 之间的串口通信。
要求:记录定时中断次数,将计数值 转化为ASCII字符串,再通过 CPU224XP 的 Port0 发送到计算 机串口,计算机接受并利用超级终 端显示与 S7-200 CPU 通信的内容。
(1)PLC编程
规定缓冲区为 VB100 到 VB114 ,使 用数据块进行缓冲区定义,如图47所示,16#0D和16#0A用于计算 机的超级终端显示需要。
(1)ASCII模式 ASCII模式采用LRC(纵向冗余校验)方式进行 校验,其报文格式如表4-8所示。Байду номын сангаас
表4-8 ASCII模式的报文格式
表4-9 RTU模式的报文格式
(2)RTU模式
• RTU模式的报文格式如表 4-9所示。
• 地址
• 功能码:Modbus功能代 码,1个字节;Modbus协 议支持的功能码共16条 (1~16),其中西门子 Modbus RTU协议库支持 最常用的8条,如表4-10 所示;
2.自由口接收实例
要求S7-200 CPU 从端 口0接收计算机发送的 字符串,并在信息接 收中断服务程序中把 接收到的第一个字节 传送到 CPU 输出字节 QB0 上显示。
(1)PLC编程
主程序如图4-13所示, 根据I 0.3 状态初始化 端口1为自由口通信。
图4-13 自由口通信主程序
• SBR_0子程序如 图4-14所示,用 于定义端口0为 自由口,初始化 接收指令。
超级终端组态步骤如下: 1)执行 Windows 菜单命令
“开始”>“附件”>“通 信”>“超级终端”,为要新 建的连接输入连接名称。 2)选择连接时要使用的串口。 3)设置串口通信参数并保存连 接,注意此处设置要与PLC 程序中对应。 4)使用超级终端接收 S7-200 CPU 发送的信息。
图4-12 超级终端接受显示
• 1.网络读写指令 NETR/NETW
• 网络读取(NETR)指令 开始一项通讯操作,通过 指定的端口(PORT)从 远程设备收集数据。网络 写入(NETW)指令开始 一项通讯操作,通过指定 的端口(PORT)向远程 设备写入数据。
• 每一个NETR/NETW指令 可从/向远程站读取/写入 16个字节信息。网络读写 指令是通过TBL参数表来 指定报文头,TBL参数表 如表4-1所示。
图4-7 组态数据块
• 主程序如图4-8所 示,根据 I 0.3 状 态初始化端口1为 自由口通信。
• SBR_0 程序如图 4-9所示,定义端 口0为自由口,初 始化定时中断。
图4-8 自由口通信主程序
图4-9 SBR_0子程序
• SBR_1子程序如图410所示,用于定义端 口0为普通 PPI 从站 通信口。
4.3 MODBUS通信
• Modbus通信协议是Modicon公司提出的一种报文传输协议, 它广泛应用于工业控制领域,并已经成为一种通用的行业标准。 不同厂商提供的控制设备可通过 Modbus 协议连成通信网络, 从而实现集中控制。
4.3.1 Modbus报文格式 • Modbus 地址通常是包含数据类型和偏移量的5个或6个字符值。
• 自由口通信模式主要使用XMT(发送)和RCV(接收)两条 指令及相应的特殊寄存器。
• XMT 指令利用数据缓冲区指定要发送的字符,用于向指定通 信口以字节为单位发送一串数据字符,一次最多发送255个字 节。
表4-5 XMT指令的缓冲区格式
• RCV指令可以接收一个或 多个字符,最多有255个字 符,这些字符存储在缓冲 区中。
… 04xxxx
Q0.0 Q0.1 Q0.2
… Q15.6 Q15.7 I0.0 I0.1 I0.2
… I15.6 I15.7 AIW0 AIW2 AIW4
… AIW62 HoldStart HoldStart+2 HoldStart+4
… HoldStart+2x(xxxx-1)
• Modbus 通信协议有 ASCII 和 RTU(远程传输 单元)两种报文传输模式。
表4-1 网络读写指令TBL
字7 节 0
1 2 3 4 5 6 7 8 ... 22
0
D
A E 0 错误代

远程地址
远程站的数据区指针 (I、Q、M、V)
数据长度 数据字节0 数据字节1
数据字节15
错误代码如表4-2所示:
表4-2 错误代码表
错误代码 0 1 2
定义 无错误 远程站响应超时 接受错误:奇偶校验错,响应时帧或校验出错
4.1.3 使用向导实现PPI通信
图4-5 “网络读/写操作”对话框
• 单击图4-5“下一项操作” 按钮,进入第二项“网 络读/写操作”对话框
• 单击“下一步”,出现 分配存储区对话框
• 接下来,要调用向导生 成的子程序来实现数据 的传输,主站程序及注 释如图10-6所示。
图4-6 主站主程序
4.2 自由口通信
相关文档
最新文档