原创 仪表的现场总线通讯--modbus(3)

2008-6-5 11:14 3156 13 16 分类: 工业电子

1      
MODBUS消息帧



1.1    查询帧和广播帧



主控制器可以发出查询帧和广播帧。查询帧对应一个来自网络设备的响应帧。广播帧通知所有设备,不需要响应。每一帧均有一个地址栏、一个功能栏、一个数据栏和一个校验栏。



 




地址栏



功能栏



数据栏



校验栏




 



1.2    广播帧和地址0



任何一个使用从机地址0的查询帧就是广播帧。在广播帧中只有MODBUS功能5, 6, 8, 15,16才是有效的。



1.3    地址栏



在查询帧中地址栏为变送器的轮询地址。在响应帧中地址栏为响应设备的轮询地址。在广播帧中地址栏为一个0,它告诉网络上的设备不需要回答。



1.4    功能栏



查询帧或广播帧中,功能栏位含有一个功能码,它表示对在数据拦中映射地址的阅读指令,书写指令或诊断的指令。在一个响应帧中,功能栏位含有功能码用来验证装置对指令的响应。
如果在功能栏位中的最高有效位元被设定,数据拦含有异常响应用来说明在处理命令中遇到的任何错误。



变送器使用了MODBUS功能码的一部分。包括读指令、写指令和诊断指令。



       
读指令:包括功能01(读卷状态),02(读输入状态),03(读保持寄存器),04(读输入寄存器),17(读设备识别码)。



       
写指令:包括功能05(写卷),06(写寄存器),15(写多卷),16(写多寄存器)。



       
诊断指令:包括功能07(读异常状态),08(循环诊断)。



下表给出变送器支持的功能。




功能码



类型



描述



功能解释



01





读卷状态



读一个或连续卷的开关状态



02





读输入状态



读一个或连续离散量的开关状态



03





读保持寄存器



读一个或连续保持寄存器的二进制值



04





读输入寄存器



读一个或连续输入寄存器的二进制值



05





写卷



设置单个卷的开关状态



06





写寄存器



写二进制值到保持寄存器



07



诊断



读异常状态



读输入寄存器30125的状态位



08



诊断



循环诊断



发送一条测试消息给变送器用于评估通讯过程



15





写多卷



设置连续卷的开关状态



16





写多寄存器



写二进制值到连续的保持寄存器



17





读设备识别码



返回设备类型和操作状态






 




例如请求读17号从机卷2056的状态

查询帧




区域名



数值(十六进制)



从机地址



11



功能码



01



起始地址高



00



起始地址低



13



卷个数高



00



卷个数低



25



校验(LRCCRC






响应帧




区域名



数值(十六进制)



从机地址



11



功能码



01



字节数



05



数据(卷2720



CD



数据(卷3528



6B



数据(卷4336



B2



数据(卷5144



0E



数据(卷5652



1B



校验(LRCCRC






       依照惯例,高位在左,低位在右。没有用的位添0


例如请求读17号从机寄存器4010840110的状态



查询帧




区域名



数值(十六进制)



从机地址



11



功能码



03



起始地址高



00



起始地址低



6B



卷个数高



00



卷个数低



03



校验(LRCCRC






响应帧




区域名



数值(十六进制)



从机地址



11



功能码



03



字节数



06



数据高(寄存器40108



02



数据低(寄存器40108



2B



数据高(寄存器40109



00



数据低(寄存器40109



00



数据高(寄存器40110



00



数据低(寄存器40110



64



校验(LRCCRC















 



1.5    数据栏



在查询帧和广播帧中,数据栏包含需要从机去执行的信息。在响应帧中,数据栏包含从机执行的结果或者异常响应。数据拦可以包含数值、位址基准、限度或异常响应。



如果从机在响应主机命令时出现错误,那么响应帧的功能栏的最高位将被置高,数据栏包含为什么从机不能执行命令的代码。



异常响应代码如下:




异常响应



描述



响应解释



01



无效功能



变送器不允许执行收到的功能



02



无效地址



数据栏中的地址是不允许的



03



无效数据



数据栏中的数据是不允许的



06





收到的消息没错,但从机正在执行一个长的程序命令




1.6    校验栏



校验栏用于检查主机与网络设备之间传送的信息是否有错。





PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户1404696 2008-6-5 13:25

不知道原创是啥意思?谁能给俺解答一下。俺也不知道俺这是不是原创。

用户1404696 2008-6-5 12:35

协议部分是俺翻译,自己整理的。这是俺写的产品说明书的一部分。

用户1404696 2008-6-5 12:24

都是自己写的。
相关推荐阅读
用户1404696 2009-06-12 15:28
MODBUS协议在TI DSP TMS320F22335上的实现(一)
唉,做的仪表越来越复杂了,需要使用DSP了,开始一点一点将单片机的东西移植到DSP上面了。先说TMS320F28335的串口吧。有三个串口,SCIA,SCIB和SCIC,GPIO的管脚对应如下SCIA...
用户1404696 2009-02-25 10:56
仪表防爆技术
 n年前做的,拿出来晒晒。 一:防爆的基本概念 二:电气设备的防爆形式 三:防爆标志及铭牌 四:防爆设计 五:防爆技术的应用 ...
用户1404696 2008-10-28 10:22
ST7920汉字点阵LCD的接口程序(直接接方式)
//总线扩展方式连接12832点阵汉字液晶//A0--D/I//A1--R/W//E连接地址分配的0xD000#include <absacc.h>#include <REG52.H...
用户1404696 2008-10-28 10:11
ST7920汉字点阵LCD的接口程序(间接方式)
/***********************************************************            ST7920控制器间接方式驱动程序           ...
用户1404696 2008-10-21 08:46
一个经典的按键扫描程序
按键是比较复杂。可以用状态机表示。 每10mS执行一次键盘扫描任务 0、无键,若有键进入状态1 1、第一次检到有键。若有键进入状态2,同时将键值送缓冲区。 若无键进入状态0。 2、若有键则计时,按键...
用户1404696 2008-10-11 16:09
生产测井仪器--有线遥传短接
   该仪器采用有线多路遥传技术实现单芯电缆传输。可以配DDL-Ⅲ、DDL-Ⅴ及所有与DDL-Ⅲ相兼容的地面系统。遥传短节(WTC)原理遥传短节核心由两片单片机组成,主要向井下仪器各参数发送地址,并接...
我要评论
3
13
关闭 站长推荐上一条 /3 下一条