开放型MODBUS-TCP规范(三)

上传人:飞****9 文档编号:131640369 上传时间:2020-05-09 格式:DOC 页数:7 大小:73.25KB
返回 下载 相关 举报
开放型MODBUS-TCP规范(三)_第1页
第1页 / 共7页
开放型MODBUS-TCP规范(三)_第2页
第2页 / 共7页
开放型MODBUS-TCP规范(三)_第3页
第3页 / 共7页
开放型MODBUS-TCP规范(三)_第4页
第4页 / 共7页
开放型MODBUS-TCP规范(三)_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《开放型MODBUS-TCP规范(三)》由会员分享,可在线阅读,更多相关《开放型MODBUS-TCP规范(三)(7页珍藏版)》请在金锄头文库上搜索。

1、开放型MODBUS-TCP规范(三) 2008-01-08 10:39:05作者:来源:互联网浏览次数:686文字大小:【大】【中】【小】简介:1 MBAP报文头(MBAP: Modbus Application Protocol,Modbus应用协议) 分四个域,共7个字节,见表1。 表1 域 长度 描述 客户端 服务器端 传输标志 2字节 .关键字:Modbus 通信协议 TCP 1 MBAP报文头(MBAP: Modbus Application Protocol,Modbus应用协议) 分四个域,共7个字节,见表1。表1域长度描述客户端服务器端传输标志2字节标志某个Modbus询问/应

2、答的传输由客户端生成应答时复制该值协议标志2字节0=Modbus协议1=UNI-TE协议由客户端生成应答时复制该值长度2字节后续字节计数由客户端生成应答时由服务器端重新生成单元标志 1字节定义连接于目的节点的其它设备由客户端生成应答时复制该值2 Modbus功能代码 共有三种类型分别为: 公共功能代码 已定义好的功能码,保证其唯一性,由Modbus.org认可。 用户自定义功能代码 有两组,分别为6572和100110,不需要认可,但不保证代码使用的唯一性,如想变为公共代码,需要RFC认可。 保留的功能代码 由某些公司使用在某些传统设备的代码,不可作为公共用途。 常用公共功能代码见表2。表2

3、常用公共功能代码常用公共功能代码功能码十进码子码十六进制位操作开关量输入读输入点0202内部位或开关量输出读线圈0101写单个线圈0505写多个线圈150F16位操作模拟量输入读输入寄存器0404内部寄存器或输出寄存器(模拟量输出)读多个寄存器0303写单个寄存器0606写多个寄存器1610读/写多个寄存器2317屏蔽写寄存器2216文件记录读文件记录20614封装接口写文件记录21615读设备标识43142B 功能代码划按应用深浅分,可分为三个类别: (1) 类别0,对于客户机/服务器最小的可用子集。 读多个保持寄存器(fc.3); 写多个保持寄存器(fc.16)。 (2) 类别1,可实现基

4、本互易操作的常用代码。 读线圈(fc.1); 读开关量输入(fc.2); 读输入寄存器(fc.4); 写线圈(fc.5); 写单一寄存器(fc.6)。 (3) 类别2,用于人机界面、监控系统的例行操作和数据传送功能。 强制多个线圈(fc.15); 读通用寄存器(fc.20); 写通用寄存器(fc.21); 屏蔽写寄存器(fc.22); 读写寄存器(fc.23)。3 Modbus应用举例:读寄存器 请求 功能码1字节0x03起始地址2字节0x0000到0xFFFF寄存器数 2字节1到125(0x7D) 应答功能码1字节0x03字节数1字节2 x N寄存器的值N x 2字节(N为寄存器的数量) 出

5、错出错码1字节 0x83 例外码 1字节01或02或03或044 Modbus TCP 请求报文举例,见表3。表3描述大小(字节)示例备注MBAP传输标志Hi10x15传输标志用于和应答配合使用传输标志Lo10x01每对传输使用唯一的标志协议标志20x0000该域可用作寻址Modbus/Modbus+子网络的路由,这时,此值含有目的设备的地址长度20x0006单元标志20xFFModbus请求功能代码10x03读寄存器起始地址20x0005寄存器数20x00015 Modbus TCP客户端的实现 用Connect( )命令建立对目标设备TCP502端口的连接。 数据通讯的过程如下: (1)

6、准备Modbus报文,包括7个字节的MBAP在内的请求; (2) 使用Send( )命令发送; (3) 在同一连接等待应答; (4) 用recv( )读报文,完成一次数据交换过程。 当通讯任务结束时,关闭TCP连接,使服务器可以为其它设备服务。6 Modbus TCP的样板程序 用户可以通过网络下载。 (1) 基于WIN32系统下,C的应用程序。 (2) 基于UNIX系统下,C的应用程序。 (3) JAVA的应用程序。7 Modbus TCP协议 协议文本的英文版可从www.Modbus.org下载。8 Modbus的应用 Modbus 是一种通讯协议,于 1979年由Modicon公司发明,

7、并将其公开,推向市场,是基于主站从站/ 客户机服务器方式连接智能设备,实现设备间的数据交换。 Modbus 的通讯几乎可以通过任何物理介质实现,如:电线、光纤、红外、射频、扩频、微波、卫星等。Modbus 还可以通过不同的网络进行互连,如:以太网、ADSL、ISDN、PSTN、ATM、FR等。所以它具有很强的扩展能力,可以说:连接的距离已不是问题,它可以通过互联网,连接到世界的任何地方。 Modbus 具有很高的速度性能:响应时间小于10毫秒,目前可以满足工业控制中90% 应用的需求,它的下一个实现目标是:响应时间小于1毫秒。 由于Modbus 是制造业、基础设施环境下,真正的开放协议,故得到

8、了工业界的广泛支持,是事实上的工业标准。还由于它的协议简单、容易实施和高性价比,所以全球有超过400个厂家支持,使用的设备节点超过700万个。9 典型应用介绍 人机界面+可编程控制器+变频调速器应用(HMI+PLC+VSD) 这是一种设备制造商(OEM)和传统设备改造时,经常使用的方案,典型配置如图1所示。图1 设备制造商或设备改造项目典型应用 图中人机界面可以是图形的,也可以是文字的,一般文字型HMI比图形的HMI要价格低廉。图中的变频器只画了一台,实际上使用RS485的多站总线,最多可以连接31台。可编程控制器可按工艺要求,可对变频器的速度进行调节。 完成上述方案的关键是用知道变频器内部的

9、命令字和各参数的寄存器号,下面就施耐德公司的ATV58变频器来说明PLC是如何操作变频器的。 命令字CMD(变频器地址W400) 位15:1,简单控制方式; 位1:=0串行连接无效 =1串行连接有效; 位7:=0 =1故障复位; 位8:=0激活半行连接控制 =1取消串行连接控制; 位11:=0正转 =1反转; 位12:=0运行 =1停止(减速停车); 位13:=0 =1直流注入停车; 位14:=0 =1快速停车。 可以通过可编程控制器的Modbus写命令,把代码发送到W400寄存器中,实现对变频器的控制。 举例: 正转运行CMD=H002 频率给定W401 LFR 转速给定W603 LFRD 反转运行CMD=H802 频率给定W401LFR 转速给定W603 LFRD 减速停车CMD=H002 直流注入停车CMD=HA002 快速停车CMD=HC002 自由停车CMD=H000 因为设备制造商对价格比较敏感,所以也有把上述标准的配置进行简化的版本,如图2所示。图2 设备制造商或设备改造项目典型应用简化版(a)省略人机界面HMI(b)省略PLC 控制和操作的原理基本上是相同的。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 规章制度

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号