HART协议通用命令用法实例(C#).doc

HART协议通用命令用法实例(C#).doc

ID:50616540

大小:166.00 KB

页数:28页

时间:2020-03-07

HART协议通用命令用法实例(C#).doc_第1页
HART协议通用命令用法实例(C#).doc_第2页
HART协议通用命令用法实例(C#).doc_第3页
HART协议通用命令用法实例(C#).doc_第4页
HART协议通用命令用法实例(C#).doc_第5页
资源描述:

《HART协议通用命令用法实例(C#).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;//***************HART协议说明***********************************//////HART命令查询帧格式:0xFF+0xFF+定界符+地址+数据字节数+数据+校验和//1、前导符:2

2、-20字节,用于与接收器之间的同步//首次开始通信或数据帧重发时,使用20字节前导码,前导码都是0xFF。//2、定界符:1字节,短帧:01,02,06对应成组、主从、从主三种模式,长帧时将短帧最高位置1即可//3、长帧和短帧区别在于地址的字节数不同,短帧地址为1字节,用于初始化时命令0查询设备标志、ID等信息//长帧地址:5字节(40位),建立在设备唯一标识符的基础上//唯一标识符分为三个部分://第一字节最高位,1表示基本主设备,0表示副主设备//第一字节第六位(次高位),1表示处于成组模式,0表示没有成组模式//长地址的其它部分是设备的唯一标识符,共38位,均为0表示广播

3、地址//二.二短帧地址:1字节//最高位1表示主设备,0表示副主设备//第6位1表示处于成组模式,0表示没有处于成组模式//第4、5位必须置0//最低四位表示巡检地址,对应设备巡检地址0-15//4、命令字节:1字节,表明该帧所封装的HART命令,命令字节值在从设备响应中原值返回//5、字节奇数:1字节,表明此字节与最后帧校验字节之间的数据字节个数,用于识别帧的结束,范围0-27//6、数据域:由整数字节的用户数据组成,长度为0-25字节//在主-从帧中,数据域存放用户对设备的请求数据//在从-主帧中,数据用于存放设备对用户的响应数据//7、校验字节:1字节,对不包括前导符和该

4、字节的帧中所有字节进行水平校验(异或)的结果//垂直校验时通信过程中硬件自动对每个字节所有位进行奇偶校验后产生的结果//水平校验时所有字节依次按位进行异或运算后的结果//8、响应码:只在从帧中出现//响应码第一字节指明通信状态,第二字节表示现场设备工作状态//该帧数据只有在响应码第一字节最高位为0时有效,1表示通信错误namespaceHart{publicpartialclassfrom1:Form{//HART对应串口初始化PrivateSerialPortserial_hart=newSerialPort();PrivatevoidportInit(){serial_ha

5、rt.PortName=hart[0]["port"].ToString();serial_hart.BaudRate=Convert.ToInt32(hart[0]["baudrate"]);serial_hart.ReceivedBytesThreshold=1;serial_hart.Parity=Parity.Odd;try{serial_hart.Open();intn=serial_hart.BytesToRead;//串口缓存区待读取数据个数byte[]buffirstclear=newbyte[n];serial_hart.Read(buffirstclear,

6、0,n);//将串口缓存区之前的数据清理掉,防止过量非预期数据进入解析环节buffirstclear=newbyte[1];//释放变量空间}catch(Exceptionex){if(ex.ToString()!=ex1){ex1=ex.ToString();MessageBox.Show(ex.Message);}}}#region设备信息privateintmanufacID=18;//制造商IDprivateintdevType=8;//制造商设备类型privateintsfVersion=1;//软件版本号privateinthwVersion=0;//硬件版本号pr

7、ivateint[]devID=newint[3];//设备IDprivateintcmdVersion=5;//通用命令文档版本号privateintdevIDResult=0;//设备ID计算结果#endregion#region主变量(PV)privateintPVUnitCd=0;//主变量代码privatefloatPVValue=0;//主变量privatefloatPVCurrent=0;//主变量电流privatefloatPVPercentRange=0;//主变量量程百分

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。