您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 电气安装工程 > modbus基础知识
MODBUS技术的基础知识2Modbustour2005.10主要内容概述Modbus应用协议规范Modbus协议在串行链路上的实现Modbus协议在TCP/IP上的实现3Modbustour2005.10概述1979年Modicon公司(现Schneider的一部分)提出的ModbusModbus最初作为工业串行链路的事实标准1997年Schneider电气在TCP/IP上实现Modbus协议2004年Modbus作为我国国家标准4Modbustour2005.10Modbus应用协议规范Modbus协议在串行链路上的实现指南Modbus协议在TCP/IP上的实现指南Modbus技术规范组成5Modbustour2005.10Modbus技术规范的关系Modbus应用层在TCP/IP上的Modbus映射TCP/IPIETFRFC793IPIETFRFC791EthernetII/802.3IEEE802.2以太网物理层TIA/EIA-232-F串行链路主站/从站TIA/EIA-485-AModbus协议在TCP/IP上的实现指南Modbus应用协议规范Modbus协议在串行链路上的实现指南6Modbustour2005.10Modbus应用协议规范7Modbustour2005.10Modbus通信栈TCP基于TCP的ModbusModbus应用层IP以太网物理层EthernetII/802.3EIA/TIA-232或EIA/TIA-485主站/从站物理层MODBUS+/HDLC其它其它8Modbustour2005.10Modbus是一种简单客户机/服务器应用协议客户机能够向服务器发送请求服务器分析请求,处理请求,向客户机发送应答Modbus应用协议9Modbustour2005.10通用Modbus帧结构--协议数据单元(PDU)Modbus是一个可选择部分使用的协议服务器可执行部分Modbus协议Modbus由公共功能码和用户定义的功能码组成Modbus应用协议使用功能码列表读或写数据,或者在远程服务器上进行远程处理读/写寄存器列表,读/写比特列表诊断,标识附加地址功能码数据差错校验ADUPDU10Modbustour2005.10Modbus事务处理(无差错)当服务器对客户机响应时,它使用功能码域来指示正常(无差错)响应或者出现某种差错(称为异常响应)对于一个正常响应来说,服务器仅复制原始功能码功能码数据请求客户机服务器启动请求执行操作启动响应接收响应功能码数据响应11Modbustour2005.10Modbus事务处理(异常响应)SM6对于异常响应,服务器将原始功能码的最高有效位设置逻辑1后返回异常码指示差错类型客户机服务器启动请求在操作中检测差错启动差错异常功能码接收响应异常码功能码数据请求12Modbustour2005.10Modbus最初在串行链路上的实现(最大RS485ADU=256字节)限制了ModbusPD的长度。因此,对串行链路通信来说,ModbusPDU=256-服务器地址(1字节)-CRC(2字节)=253字节。从而:RS232/RS485ADU=253字节+服务器地址(1字节)+CRC(2字节)=256字节。TCPModbusADU=253字节+MBAP(7字节)=260字节。ModbusPDU长度13Modbustour2005.10ModbusPDU结构Modbus请求PDUmb_req_pdu={function_code,request_data},function_code-[1字节]Modbus功能码request_data-[n字节]Modbus响应PDUmb_rsp_pdu={function_code,response_data},function_code-[1字节]Modbus功能码response_data-[n字节]Modbus异常响应PDUmb_excep_rsp_pdu={function_code,exception_code},function_code-[1字节]Modbus功能码+0x80exception_code–[1字节]14Modbustour2005.10Modbus的数据模型是以一组具有不同特征的表为基础建立的四个基本表为:Modbus数据模型基本表对象类型访问类型注释离散量输入单个位只读I/O系统可提供这种类型数据线圈单个位读写通过应用程序可改变这种类型数据输入寄存器16位字只读I/O系统可提供这种类型数据保持寄存器16位字读写通过应用程序可改变这种类型数据15Modbustour2005.10Modbus公共功能码的定义功能码码子码(十六进制)数据访问位访问物理离散量输入读离散量输入0202内部位或物理线圈读线圈0101写单个线圈0505写多线圈150F16位访问输入寄存器读输入寄存器0404内部寄存器或物理输出寄存器读保持寄存器0303写单寄存器0606写多寄存器1610读/写多寄存器2317屏蔽写寄存器2216读FIFO队列2418文件记录访问读文件记录20614写文件记录21615诊断读异常状态07诊断0800-18获得通信事件计数器11OB获得通信事件记录120C报告从站ID1711读设备识别码43142B其它封装接口传输432B16Modbustour2005.10Modbus功能码应用实例(1)读线圈01(0x01)请求响应*N=寄存器的数量/8,如果余数不等于0,那么N=N+1错误功能码1字节0x01起始地址2字节0x0000至0xFFFF线圈数量2字节1至2000(0x7D0)功能码1字节0x01字节计数1字节N*线圈状态n字节n=N或N+1功能码1字节功能码+0x80异常码1字节01或02或03或0417Modbustour2005.10写多个寄存器16(0x10)请求响应*N=寄存器数量错误功能码1字节0x03起始地址2字节0x0000至0xFFFF寄存器数量2字节1至125(0x7D)功能码1字节0x03字节数1字节2×N*寄存器值N*×2字节差错码1字节0x83异常码1字节01或02或03或0418Modbustour2005.10Modbus功能码应用实例(3)写多个寄存器16(0x10)请求*N=寄存器数量响应错误功能码1字节0x10起始地址2字节0x0000至0xFFFF寄存器数量2字节0x0001至0x0078字节计数1字节2×N*寄存器值N*×2字节值功能码1字节0x10起始地址2字节0x0000至0xFFFF寄存器数量2字节1至123(0x7B)差错码1字节0x90异常码1字节01或02或03或0419Modbustour2005.10Modbus协议在串行链路上的实现20Modbustour2005.10Modbus协议在串行链路上的实现模型主要在RS-485和RS-232等物理接口上实现Modbus协议EIA/TIA-485(或EIA/TIA-232)Modbus主站/从站Modbus应用协议层客户机/服务器层ISO/OSI模型7应用层Modbus应用协议6表示层空5会话层空4传输层空3网络层空2数据链路层Modbus串行链路协议1物理层EIA/TIA-485(或EIA/TIA232)21Modbustour2005.10串行链路上的Modbus帧结构Modbus串行链路协议是一个主/从协议网络上的每个从站必须有唯一的地址(从1到247)从站地址用于寻址从站设备,由主站发起地址0用于广播模式,不需要响应RS-485和RS-232定义了标准的物理端口,提高互可操作性地址域功能码数据CRC(或LRC)Modbus串行链路ADUModbusPDU22Modbustour2005.10Modbus串行传输模式–RTU模式RTUModbus串行传输模式的报文格式,CRC-16差错校验报文帧的标识字符之间的要求从站地址功能码数据CRC1字节1字节0至252字节2字节CRC高位CRC低位t0至少3.5个字符帧1帧2至少3.5个字符帧34.5个字符3.5个字符t01.5个字符帧1正常帧2不正常1.5个字符23Modbustour2005.10Modbus串行传输模式–ASCII模式报文必须以“:”开始报文必须以“LF-CR”结束数据用十六进制ASCII码值表示使用LRC进行差错校验起始地址功能码数据LRC结束1个字符:2个字符2个字符2个字符2个字符CR、LF0至2x252个字符24Modbustour2005.10Modbus协议在TCP/IP上的实现25Modbustour2005.10基于开放TCP/IP的Modbus协议Modbus协议是一个开发性协议•IANA已为Modbus协议指配TCP/UDP知名端口502Modbus协议是一个标准协议•IETF组织提议将Modbus协议作为因特网标准•Modbus协议是自动化领域中广泛使用“实事”标准以太网(快速以太网)•使用目前最流行的LAN技术•IEEE802.3中定义的以太网和以太网IITCP/IP模型•描述因特网协议的组合26Modbustour2005.10ModbusTCP/IP通信结构ModbusTCP/IP的通信设备:连接至TCP/IP网络的ModbusTCP/IP客户机和服务器设备互连设备,如:在TCP/IP网络和串行链路子网之间互连的网桥、路由器或网关等设备Modbus客户机TCP/IPModbus服务器TCP/IPModbus服务器TCP/IPModbus服务器串行链路Modbus服务器串行链路Modbus客户机串行链路Modbus客户机TCP/IPModbusTCP/IP客户机TCP/IP网关服务器TCP/I网关Modbus串行链路27Modbustour2005.10TCP/IP上的Modbus数据帧•通过TCP/IP栈传输•支持以太网II和IEEE802.3帧,默认帧为以太网II帧•以太网II是默认的TCP/IP网络帧格式MBAP报文头功能码数据ModbusTCP/IPADUPDU28Modbustour2005.10MBAP报文头域长度描述客户机服务器事务处理标识符2字节Modbus请求/响应事务处理的识别客户机启动服务器从接收的请求中重新复制协议标识符2字节0=Modbus协议客户机启动服务器从接收的请求中重新复制长度2字节随后字节的数量客户机启动(请求)服务器(响应)启动单元标识符1字节串行链路或其它总线上连接的远程从站的识别客户机启动服务器从接收的请求中重新复制29Modbustour2005.10Modbus报文传输服务结构用户应用通讯应用层MODBUS客户接口MODBUS客户接口MODBUS客户机MODBUS服务器TCP管理层栈参数化连接管理访问控制TCP/IP栈资源管理与流量控制30Modbustour2005.10通信应用层Modbus客户机允许用户应用显性地控制与远程设备的信息交换。Modbus客户机根据用户应用向Modbus客户机接口发送的要求中所包含的参数来建立一个Modbus请求。Modbus客户机接口Modbus客户机接口提供一个接口,使得用户应用能够生成各类Modbus服务的请求,该服务包括对Modbus应用对象的访问Modbus服务器在收到一个Modbus请求以后,模块激活一个本地操作进行读、写、或完成其他操作。31Modbustour2005.10TCP管理层管理通信的建立和结束以及管理在所建立的TCP连接上的数据流。连接管理在客户机和服务器的Modbus模块之间的通信需要使用TCP连接管理模块,负责全面管理报文传输TCP连接访问控制在某些至关重要的场合,必须禁止无关的主机对设备内部数据的访问。这既是需要的安全模式,也是在需要时实现安全处理的原因32Modbustour2005.10TCP/IP栈层可以对TCP/IP的栈进行参数配置,以适用对产品或系统的不同的特定约束进行数据流控制、
本文标题:modbus基础知识
链接地址:https://www.777doc.com/doc-1651320 .html