modbus基础知识_第1页
modbus基础知识_第2页
modbus基础知识_第3页
modbus基础知识_第4页
modbus基础知识_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MODBUS技术的基础知识 2Modbus tour 2005.10主要内容n概述nModbus应用协议规范 nModbus协议在串行链路上的实现nModbus协议在TCP/IP上的实现 3Modbus tour 2005.10概 述q 1979年Modicon公司(现Schneider 的一部分)提出的Modbusq Modbus最初作为工业串行链路的事实标准q 1997年Schneider电气在TCP/IP上实现Modbus协议 q 2004年Modbus作为我国国家标准4Modbus tour 2005.10nModbus应用协议规范nModbus协议在串行链路上的实现指南nModbus

2、协议在TCP/IP上的实现指南 Modbus技术规范组成5Modbus tour 2005.10Modbus技术规范的关系 Modbus 应用层 在 TCP/IP 上的 Modbus 映射 TCP/IP IETF RFC 793 IP IETF RFC 791 Ethernet II /802.3 IEEE 802.2 以太网物理层 TIA/EIA-232-F 串行链路主站/从站 TIA/EIA-485-A Modbus 协议在 TCP/IP 上的实现指南 Modbus应用协议规范 Modbus 协议在串行链路上的实现指南 6Modbus tour 2005.10Modbus应用协议规范7Mo

3、dbus tour 2005.10Modbus通信栈 TCP 基于 TCP的 Modbus Modbus应用层 IP 以太网 物理层 Ethernet II /802.3 EIA/TIA-232 或 EIA/TIA-485 主站/从站 物理层 MODBUS+ / HDLC 其它 其它 8Modbus tour 2005.10Modbus是一种简单客户机/服务器应用协议q客户机能够向服务器发送请求q服务器分析请求,处理请求,向客户机发送应答Modbus应用协议9Modbus tour 2005.10通用Modbus帧结构协议数据单元 (PDU)Modbus是一个可选择部分使用的协议 q服务器可执

4、行部分Modbus协议Modbus由公共功能码和用户定义的功能码组成Modbus应用协议使用功能码列表读或写数据,或者在远程服务器上进行远程处理q读/写寄存器列表,读/写比特列表q诊断,标识 附加地址 功能码 数据 差错校验 ADU PDU 10Modbus tour 2005.10Modbus事务处理(无差错)n当服务器对客户机响应时,它使用功能码域来指示正常(无差错)响应或者出现某种差错(称为异常响应)n对于一个正常响应来说,服务器仅复制原始功能码 功能码功能码 数据请求数据请求 客户机 服务器 启动请求启动请求 执行操作执行操作 启动响应启动响应 接收响应接收响应 功能码功能码 数据响应

5、 11Modbus tour 2005.10Modbus事务处理(异常响应)SM6q对于异常响应,服务器将原始功能码的最高有效位设置逻辑1后返回 q异常码指示差错类型 客户机 服务器 启动请求启动请求 在操作中检测差错在操作中检测差错 启动差错启动差错 异常功能码异常功能码 接收响应接收响应 异常码异常码 功能码功能码 数据请求数据请求 12Modbus tour 2005.10nModbus最初在串行链路上的实现(最大RS485ADU=256字节) 限制了Modbus PD的长度。 n因此,对串行链路通信来说,Modbus PDU=256-服务器地址(1字节)-CRC(2字节)253字节。

6、n从而: RS232 / RS485 ADU = 253字节+服务器地址(1字节) + CRC (2字节)= 256字节。 TCP Modbus ADU = 253字节+ MBAP (7字节) = 260字节。Modbus PDU长度13Modbus tour 2005.10Modbus PDU结构qModbus请求PDU mb_req_pdu = function_code, request_data , function_code - 1字节 Modbus功能码 request_data - n字节qModbus响应PDU mb_rsp_pdu = function_code, respo

7、nse_ data , function_code - 1字节 Modbus功能码 response_data - n字节qModbus异常响应PDU mb_excep_rsp_pdu = function_code, exception_code , function_code - 1字节 Modbus功能码 + 0 x80 exception_code 1字节14Modbus tour 2005.10Modbus的数据模型是以一组具有不同特征的表为基础建立的四个基本表为:Modbus 数据模型基本表基本表对象类型对象类型访问类型访问类型注释注释离散量输入离散量输入单个位只读I/O系统可提供

8、这种类型数据线圈线圈单个位读写通过应用程序可改变这种类型数据输入寄存器输入寄存器16位字只读I/O系统可提供这种类型数据保持寄存器保持寄存器16位字读写通过应用程序可改变这种类型数据15Modbus tour 2005.10Modbus公共功能码的定义 功能码 码子码(十六进制) 数据访问 位访问物理离散量输入读离散量输入02 02内部位或物理线圈读线圈01 01写单个线圈05 05写多线圈15 0F 16位访问输入寄存器读输入寄存器04 04内部寄存器或物理输出寄存器读保持寄存器03 03写单寄存器06 06写多寄存器16 10读/写多寄存器23 17屏蔽写寄存器22 16读FIFO队列24

9、 18文件记录访问读文件记录20614写文件记录21615 诊 断读异常状态07 诊断0800-18 获得通信事件计数器11 OB获得通信事件记录12 0C报告从站ID17 11读设备识别码43142B其它封装接口传输43 2B16Modbus tour 2005.10Modbus功能码应用实例(1) 读线圈01 (0 x01)请求响应* *N N寄存器的数量/8,如果余数不等于0,那么 N = N+1 错误功能码1字节0 x01起始地址2字节0 x0000 至0 xFFFF线圈数量2字节1至2000(0 x7D0)功能码1字节0 x01字节计数1字节N*线圈状态n字节nN或N+1功能码1字节

10、功能码0 x80异常码1字节01或02或03或0417Modbus tour 2005.10n写多个寄存器16(0 x10)请求 响应*N寄存器数量错误功能码1字节0 x03起始地址2字节0 x0000至0 xFFFF寄存器数量2字节1至125(0 x7D)功能码1字节0 x03字节数1字节2N*寄存器值N*2字节 差错码1字节0 x83异常码1字节01或02或03或0418Modbus tour 2005.10Modbus功能码应用实例(3)n写多个寄存器16(0 x10)请求*N N寄存器数量响应错误功能码1字节0 x10起始地址2字节0 x0000至0 xFFFF寄存器数量2字节0 x0

11、001至0 x0078字节计数1字节2N*寄存器值N*2字节值功能码1字节0 x10起始地址2字节0 x0000至0 xFFFF寄存器数量2字节1至123(0 x7B)差错码1字节0 x90异常码1字节01或02或03或0419Modbus tour 2005.10Modbus协议在串行链路上的实现20Modbus tour 2005.10Modbus协议在串行链路上的实现模型 q主要在RS-485和RS-232等物理接口上实现Modbus协议 EIA/TIA-485 (或 EIA/TIA-232) Modbus 主站/从站 Modbus 应用协议层 客户机/服务器 层ISO/OSI 模型 7

12、应用层Modbus应用协议6表示层空5会话层空4传输层空3网络层空2数据链路层Modbus串行链路协议 1物理层EIA/TIA-485 (或 EIA/TIA232)21Modbus tour 2005.10串行链路上的Modbus帧结构qModbus串行链路协议是一个主/从协议q网络上的每个从站必须有唯一的地址(从1到247) q从站地址用于寻址从站设备,由主站发起q地址0用于广播模式,不需要响应qRS-485和RS-232 定义了标准的物理端口,提高互可操作性 地址域 功能码 数据 CRC (或 LRC) Modbus 串串行行链链路路 ADU Modbus PDU 22Modbus tou

13、r 2005.10Modbus串行传输模式 RTU模式qRTU Modbus串行传输模式的报文格式, CRC-16差错校验q报文帧的标识q字符之间的要求 从站 地址 功能码 数据 CRC 1 字节 1 字节 0 至 252 字节 2 字节 CRC 高位 CRC 低位 t0 至少 3.5 个字符 帧 1 帧 2 至少 3.5 个字符 帧 3 4.5 个字符 3.5 个字符 t0 1.5 个字符 帧 1 正常正常 帧 2 不正常不正常 1.5 个字符 23Modbus tour 2005.10Modbus串行传输模式 ASCII模式n报文必须以“:”开始n报文必须以“LFCR”结束n数据用十六进制

14、ASCII码值表示n使用LRC进行差错校验 起始 地址 功能码 数据 LRC 结束 1 个 字符 : 2 个字符 2 个字符 2 个字符 2 个字符 CR、LF 0 至 2x252 个字符 24Modbus tour 2005.10Modbus协议在TCP/IP上的实现25Modbus tour 2005.10基于开放TCP/IP 的Modbus协议nModbus协议是一个开发性协议 IANA已为 Modbus协议指配TCP / UDP 知名端口502nModbus协议是一个标准协议 IETF组织提议将Modbus协议作为因特网标准 Modbus协议是自动化领域中广泛使用“实事”标准 n以太网

15、 (快速以太网) 使用目前最流行的LAN技术 IEEE 802.3中定义的以太网和以太网IInTCP/IP模型 描述因特网协议的组合26Modbus tour 2005.10Modbus TCP/IP通信结构n Modbus TCP/IP的通信设备: 连接至TCP/IP网络的Modbus TCP/IP客户机和服务器设备 互连设备,如:在TCP/IP网络和串行链路子网之间互连的网桥、 路由器或网关等设备 Modbus 客户机 TCP/IP Modbus 服务器 TCP/IP Modbus 服务器 TCP/IP Modbus 服务器 串行链路 Modbus 服务器 串行链路 Modbus 客户机

16、串行链路 Modbus 客户机TCP/IP Modbus TCP / IP 客户机客户机 TCP/IP 网关网关 服务器服务器 TCP/I 网关网关 Modbus 串行链路串行链路 27Modbus tour 2005.10TCP/IP 上的Modbus 数据帧 通过TCP/IP栈传输 支持以太网II和IEEE 802.3帧,默认帧为以太网II帧 以太网II是默认的 TCP/IP 网络帧格式 MBAP 报文头 功能码 数据 Modbus TCP/IP ADU PDU 28Modbus tour 2005.10MBAP 报文头域长度描述客户机服务器事务处理标识符2字节Modbus请求/响应事务处

17、理的识别客 户 机 启动服务器从接收的请求中重新复制协议标识符2字节0=Modbus协议客 户 机 启动服务器从接收的请求中重新复制长度2字节随后字节的数量客 户 机 启动(请求)服务器(响应)启动单元标识符1字节串行链路或其它总线上连接的远程从站的识别客 户 机 启动服务器从接收的请求中重新复制29Modbus tour 2005.10Modbus报文传输服务结构 用户应用通讯应用层MODBUS客户接口MODBUS客户接口MODBUS客户机MODBUS服务器TCPTCP管理层栈参数化连接管理访问控制TCP/IP栈资源管理与流量控制30Modbus tour 2005.10通信应用层nModb

18、us客户机 允许用户应用显性地控制与远程设备的信息交换。Modbus客户机根据用户应用向Modbus客户机接口发送的要求中所包含的参数来建立一个Modbus请求。nModbus客户机接口 Modbus客户机接口提供一个接口,使得用户应用能够生成各类Modbus服务的请求,该服务包括对Modbus应用对象的访问nModbus服务器 在收到一个Modbus请求以后,模块激活一个本地操作进行读、写、或完成其他操作。31Modbus tour 2005.10TCP管理层管理通信的建立和结束以及管理在所建立的TCP连接上的数据流 。n连接管理 在客户机和服务器的Modbus模块之间的通信需要使用TCP连

19、接管理模块,负责全面管理报文传输TCP连接n访问控制 在某些至关重要的场合,必须禁止无关的主机对设备内部数据的访问。这既是需要的安全模式,也是在需要时实现安全处理的原因 32Modbus tour 2005.10TCP/IP栈层n可以对TCP/IP的栈进行参数配置,以适用对产品或系统的不同的特定约束进行数据流控制、地址管理和连接管理。使用BSD套接字接口来管理TCP连接33Modbus tour 2005.10Modbus TCP/IP连接建立 nModbus报文传输服务必须在502端口上提供一个监听套接字,允n许接收新的连接和与其他设备交换数据n当报文传输服务需要与远程服务器交换数据时,它必

20、须与远程502端口建立一个新的客户机连接,以便于远距离地交换数据。本地端口必须高于1024,并且对每个客户机的连接各不相同 设备设备客户机端口服务器端口502n(n1024)服务器端口客户机端口502n(n1024)连接( IP1 n, IP2502) IP1 IP234Modbus tour 2005.10Modbus TCP/IP通信栈nTCP/IP栈提供了一个接口,用来管理连接、发送和接收数据,还可以进行某些参数配置,以使得栈的特性适应于设备或系统的限制 网络访问 Ethernet II 和 802.3 层 Msg M TCP TCP Modbus Modbus IP IP ICMP I

21、CMP ARP ARP 35Modbus tour 2005.10一、Modbus 协议简介 nModbus 协议是应用于电子控制器上的一种通用语言协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。可以连成工业网络,进行集中监控。 此协议定义了一个控制器能认识使用的消息结构此协议定义了一个控制器能认识使

22、用的消息结构,而而不管它们是经过何种网络进行通信的。它描述了一控不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。域格局和内容的公共格式。 36Modbus tour 2005.10n当在一当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生

23、成反馈信息并别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用用Modbus协议发出。在其它网络上,包含了协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。的方法。 1、在、在Modbus网络上转输网络上转输 标准的标准的Modbus口是使用一口是使用一RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信兼容串行接口,它定义了连接口的针脚、电缆、信号位、传

24、输波特率、奇偶校验。控制器能直接或经由号位、传输波特率、奇偶校验。控制器能直接或经由Modem组网。组网。 控制器通信使用主控制器通信使用主从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。典型的主设备:主机和可编程仪(从设备)根据主设备查询提供的数据作出相应反应。典型的主设备:主机和可编程仪表。典型的从设备:可编程控制器。表。典型的从设备:可编程控制器。 主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设主设备可单独和从设备通信,也能以广播方式和所有从设

25、备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus协议建协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。检测域。 从设备回应消息也由从设备回应消息也由Modbus协议构成,包括确认要行动的域、任何要返回的数据、和协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备一错误检测域。如果在消息接收过程

26、中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。将建立一错误消息并把它作为回应发送出去。 37Modbus tour 2005.10n2、在其它类型网络上转输、在其它类型网络上转输 在其它网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。这样在其它网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。提供的多个内部通道可允许在单独的通信过程中,控制器既可作为主设备也可作为从设备。提供的多个内部通道可允许同时发生的传输进程。同时发生的传输进程。 在消息位,在消息位,

27、Modbus协议仍提供了主协议仍提供了主从原则,尽管网络通信方法是从原则,尽管网络通信方法是“对等对等”。如果一控制。如果一控制器发送一消息,它只是作为主设备,并期望从从设备得到回应。同样,当控制器接收到一消器发送一消息,它只是作为主设备,并期望从从设备得到回应。同样,当控制器接收到一消息,它将建立一从设备回应格式并返回给发送的控制器。息,它将建立一从设备回应格式并返回给发送的控制器。 3、查询、查询回应周期回应周期 38Modbus tour 2005.10nRS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。被定义为一种在低速率串行通讯中增加通讯距离的单端标准。 RS-232

28、采取不平衡传输方式,即所谓单端通讯采取不平衡传输方式,即所谓单端通讯.收、发端的数据信号是相对于信号收、发端的数据信号是相对于信号地,如从地,如从DTE设备发出的数据在使用设备发出的数据在使用DB25连接器时是连接器时是2脚相对脚相对7脚(信号地)的电脚(信号地)的电平。平。 典型的典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在平在+5+15V,负电平在,负电平在-5-15V电平。当无数据传输时,线上为电平。当无数据传输时,线上为TTL,从开始,从开始传送数据到结束,线上电平从传送数据到结束,线上电平从TTL电平到电平到RS-232电平再返回电平再返回TTL电平。电平。 接收器典型的工作电平在接收器典型的工作电平在+3+12V与与-3-12V。由于发送电平与接收电平的差仅。由于发送电平与接收电平的差仅为为2V至至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约离最大为约15米,最高速率

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论