下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 Modbus通讯协议(比较好理解)

Modbus通讯协议(比较好理解).doc

Modbus通讯协议(比较好理解)

撩人苦笑那伤那么微不足道
2017-10-24 0人阅读 举报 0 0 暂无简介

简介:本文档为《Modbus通讯协议(比较好理解)doc》,可适用于工程科技领域

Modbus通讯协议(比较好理解)Modbus通讯协议简化VxModbus协议概述Modbus协议是主从站通讯协议用异步串行口完成通讯物理层采用RS或RS。传输速率可以达到kbps理论上可接(寻址)一台主站和至多台从站。受线路和设备的限制实际最多可接一台主站和台从站。Modbus协议的某些特性是固定的如帧格式、帧顺序、通讯错误和异常情况的处理以及所执行的功能等都不能随便改动。其他特性属于用户可选的如传输介质、波特率、字符奇偶校验、停止位的个数等等传输模式为RTU。用户所选择的参数对于各个站必须一致在系统运行时不能改变。Modbus协议传输模式Modbus的传输模式:RTU方式。表RTU传输模式的特性特性RTU编码系统十六进制每个字符的位数起始位位数据位位奇偶校验位或位停止位或位校验和CRC(循环冗余校验)帧Modbus协议的帧(报文)格式:RTU帧。下表是RTU传输模式的一般格式命令帧。从站地址功能码数据校验和位位N*位位Modbus协议通讯方式Modbus有两种通讯方式:应答方式和广播方式。应答方式是主站向某个从站(地址~)发出命令然后等待从站的应答从站接到主站命令后执行命令并将执行结果返回给主站作为应答然后等待下一个命令。广播方式是主站向所有从站发送命令(从站地址为)不需要等待从站应答从站接到广播命令后执行命令也不向主站应答。除了会送诊断校验外只有、、、这四项功能(见节)对广播方式有效。Modbus帧Modbus的帧按应答方式分为命令帧(询问帧)和应答帧。命令帧为一般格式命令帧、、给出了典型的帧格式。应答帧有显长度帧和隐长度帧之分图从站地功能数据校验址码和数据起始寄存器数据起始寄存器数据寄存器数据寄存器高位地位高位地位图一般格式命令帧从站地址功能码数据长度数据校验和图显长度应答帧从站地址功能码数据校验和图隐长度应答帧从站地址字段帧中的从站地址字段表示接收主站报文的从站地址。当从站地址字段为时表示所有从站此时的报文是广播报文。用户必须设定每台从站的专用地址。只有被编址的设备才能对主机的命令(询问)做出应答。从站发送应答报文时报文中地址的作用是向主站报告正在通讯的是哪台从站。功能码字段功能码字段通知从站应执行何种功能。表列出了功能码的意义和作用。节给出了各个功能码对应报文的详细格式和功能。表Modbus功能码功能码名称作用(对主站而言)读取开出状态读取一组开关量输出的当前状态读取开入状态读取一组开关量输入的当前状态读取模出状态读取一组模拟量输出的当前状态读取模入状态读取一组模拟量输入的当前状态强制单路开出强制设定某个开关量输出的值强制单路模出强制设定某个模拟量输出的值读取异常状态取得从站的一些状态(位)回送诊断校验把诊断校验报文送从站以对通讯处理进行评鉴编程主机模拟编程器的作用修改从站逻辑探询定期探询从站是否已完成某长程序任务读取事件计数取得通讯状态和通讯事件的次数读取通讯事件记录取得通讯状态、事件次数、报文数量和至多个事件编程主机模拟编程器的作用修改从站逻辑探询定期探询从站是否已完成某长程序任务强制多路开出强制设定几个开关量输出的值强制多路模出强制设定几个模拟量输出的值报告从站标识取得从站类型和运行指示灯的状态编程主机模拟编程器的作用修改从站逻辑重置通讯链路使从站复位于已知状态保留留作扩展功能备用非法功能保留留作内部使用保留用作异常应答数据长度字段数据长度字段记录的是随后的数据字段的长度单位为字符(字节)。数据字段的长度总是被规定为RTU模式下数据字符的总数数据字符的数量总是按RTU模式下的数据字符计算。数据字段数据字段内含有从站执行某项具体功能的信息或者含有从站应答询问的信息。这些信息可以是数值、地址参数或范围。例如从哪路开关量或寄存器开始处理几个开关量或寄存器的值等等。校验和字段校验和字段用于检查通讯报文在通讯过程中是否出错。RTU模式传送时用CRC校验参见附录A。ModbusRTU可以访问的数据区ModbusRTU协议可以访问的PLC数据区包括:输入区(I区)、输出区(Q区)、中间区(M区)这三个数据区均可通过BOOL型或者WORD型数据访问。这些数据区与Modbus协议地址映射关系如表所示。表LM系列PLC数据区Modbus协议地址映射关系数据区类型Modbus地Modbus地址范围址映射公式数据类型IIXBOOLIX~IX~IXmn:x区m*nIWWORDIW~IW~IWm:mxQQXBOOLQX~QX~QXmn:x区m*nQWWORDQW~QW~QWm:mxMMXBOOLMX~MX~MXmn:x区m*nMWWORDMW~MW~MWm:xm功能码读取开出状态(功能码)本功能可使主站获得被编址从站的开关量输出的通断状态。起始地址是指从哪一路开关量开始(编号从开始)数据线圈数是指读取几路。应答帧中的数据是按上述要求读取的开关量数据(每路一位每位组成一个字节最后一个字节的不足部分补)。本功能不支持广播方式。以下例子是读取号从站开关量输出QQ的状态读出的位组成个字节后一个字节的高三位补。询问RTU帧:从站地址功能码起始地址起始地址数据线圈数据线圈校验和高位低位数高位数低位CRCHHHHHDHAHDH应答RTU帧:从站地址功能码字节计数数据校验和CRCHHHDHHEHH数据对应关系:Q数据DHH读取开入状态(功能码)本功能可使主站获得被编址从站的开关量输入的通断状态。起始地址是指从哪一路开关量开始(编号从开始)数据线圈数是指读取几路。应答帧中的数据是按上述要求读取的)。本功能不开关量数据(每路一位每位组成一个字节最后一个字节的不足部分补支持广播方式。以下例子是读取号从站开关量输入II的状态读出的位组成个字节最后一个字节的高位补。询问RTU帧:从站地址功能码起始地址起始地址数据线圈数据线圈校验和高位低位数高位数低位CRCHHHHHHFDHDH应答RTU帧:从站地址功能码字节计数数据校验和CRCHHHACHDBHHHH读取模出状态(功能码)本功能可使主站获得被编址从站的模拟量输出的通断状态。起始地址是指从哪一路模拟量开始(编号从开始)寄存器数是指读取几路模拟量(每路模拟量个字节高位在前低位在后)。应答帧中的数据是按上述要求读取的模拟量数据。本功能不支持广播方式。以下例子是读取号从站模出点QW、QW、QW的状态。应答数据高字节在前。QW是QW是QW是。询问RTU帧:从站地址功能码起始地址起始地址寄存器数寄存器数校验和高位低位高位低位CRCHHHHHHHH应答RTU帧:从站地址功能码字节计数数据校验和CRCHHHHBHHHHHCBHBAH读取模入状态(功能码)本功能可使主站获得被编址从站的模拟量输入值。起始地址是指从哪一路模拟量开始(编号从开始)寄存器数是指读取几路模拟量(每路模拟量个字节高位在前低位在后)。应答帧中的数据是按上述要求读取的模拟量数据。本功能不支持广播方式。以下例子是读取号节点的模入点IW、IW、IW的状态。应答数据高字节在前。IW是IW是IW是。询问RTU帧:从站地址功能码起始地址起始地址寄存器数寄存器数校验和高位低位高位低位CRCHHHHHHHDH应答RTU帧:从站地址功能码字节计数数据校验和CRCHHHHBHHHHHCH强制单路开出(功能码)本功能可使主站强行设定被编址从站某路开关量输出的通断状态。从站内部的任何一路开关量均能被强制。起始地址是指设定开关量的哪一路(编号从开始)数据用于设定开或关:FF为开为关其他值为非法值。正常应答是将报文原文发回。从站地址为时为广播方式。以下例子是强制号从站开出点QX为ON。询问RTU帧:从站地址功能码起始地址起始地址数据开关原状校验和高位低位态CRCHHHAHFFHHAHAH应答RTU帧:从站地址功能码起始地址起始地址数据开关原状校验和高位低位态CRCHHHAHFFHHAHAH强制单路模出(功能码)本功能可使主站强行设定被编址从站某路模拟量输出的值。从站内部的任何一路模拟量均能被强制。起始地址是指设定哪一路模拟量(编号从开始)数据用于设定该模拟量的值(高位在前低位在后)。正常应答是将报文原文发回。从站地址为时为广播方式。以下例子是强制号从站模出点QW为(十六进制为E)。询问RTU帧:从站地址功能码起始地址起始地址数据高位数据低位校验和高位低位CRCHHHHHEHFCHH应答RTU帧:从站地址功能码起始地址起始地址数据高位数据低位校验和高位低位CRCHHHHHEHFCHH强制多路开出(功能码)本功能可使主站强行设定被编址从站一组连续开关量输出的通断状态。从站内部的任何开出量均能被强制。起始地址是从哪一路开关量开始(编号从开始)寄存器数是指设定几路。字节计数是指随后的线圈状态(开关量设定值)的字节数。线圈状态是设定的开出值每一路开出占用一位(为开为关)每八位组成一个字节最后一个字节的不足部分补。正常应答内容是回送从站地址、功能码、起始地址和强置的开关量数。从站地址为时为广播模式。以下例子是强置号从站开关量输出MX~MX共位的状态设定值CD()和()表示开关量输出的MX、MX、MX、MX、MX和MX、MX将被强置为开状态。其中MX的Modbus协议地址为*=转成十六进制为F。询问RTU帧:从站地功能码起始地起始地寄存器寄存器字节计数据校验和址址高位址低位数高位数低位数CRCHFHHFHHAHHCDHHEHH应答RTU帧:从站地址功能码起始地址起始地址寄存器数寄存器数校验和高位低位高位低位CRCHFHHFHHAHHH强制多路模出(功能码)本功能可使主站强行设定被编址从站一组连续模拟量输出的值。从站内部的任何模出量均能被强制。起始地址是从哪一路模拟量开始(编号从开始)寄存器数是指设定几路。字节计数是指随后的数据(模拟量设定值)的字节数。数据是设定的模出值每一路模出两个字节(高位在前低位在后)。正常应答内容是回送从站地址、功能码、起始地址和强置的模拟量数。从站地址为时为广播模式。以下例子是强置号从站模拟量输出QW~QW的状态设定值QW为A设定QW为。询问RTU帧:从站地功能码起始地起始地寄存器寄存器字节计数据校验和址址高位址低位数高位数低位数CRCHHHHHHHHAHHHHH应答RTU帧:从站地址功能码起始地址起始地址寄存器数寄存器数校验和高位低位高位低位CRCHHHHHHHAH附录A循环冗余校验(CRC)码算法生成CRC校验字节的步骤如下:(装入一个位寄存器所有数位均为。(装位寄存器的低位字节与开始位字节进行“异或”运算。运算结果放入这个位寄存器。(把这个位寄存器向右移位。(若向右(标记位)移出的数位是则生成多项式和这个寄存器进行异或运算。若向右移出的数位是则返回()。(重复()和()直到移出位。(另外位与该位寄存器进行“异或”运算。)直至该报文所有字节均与位寄存器进行“异或”运算并移位次。(重复()((这个位寄存器的内容即是字节CRC校验值。

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/11

Modbus通讯协议(比较好理解)

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利