下载

1下载券

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

上传资料

关闭

关闭

关闭

封号提示

内容

首页 常用规约的流程及示例分析

常用规约的流程及示例分析.doc

常用规约的流程及示例分析

李磊
2012-02-04 0人阅读 举报 0 0 暂无简介

简介:本文档为《常用规约的流程及示例分析doc》,可适用于IT/计算机领域

DLT规约MODBUS规约CDT规约从站规约(版)一DLT规约”帧格式说明代码帧起始符H地址域AAAAAA帧起始符H控制码C数据长度域L数据域DATA校验码CS结束符H帧起始符固定为H地址域A~A地址域由个字节构成每字节位BCD码,低地址字节在先高地址字节在后。当使用的地址码长度不足字节时高位用十六进制AAH或补足字节,根据电表厂家要求选择。当地址为时为广播地址。控制码C格式如下所示。DDDDDDDDD=:由主站发出的命令帧D=:由从站发出的应答帧D=:从站正确应答D=:从站对异常信息的应答D=:无后续数据帧D=:有后续数据帧D~D:请求及应答功能码:保留:读数据:读后续数据:重读数据:写数据:广播校时:写设备地址:更改通信速率:修改密码:最大需量清零数据长度LL为数据域的字节数。读数据时L<=写数据时L<=L=表示无数据域。数据域DATA数据域包括数据标识和数据等。传输时发送方按字节进行加x处理接受方按字节进行减H处理。(a)数据区的第个字节是数据标识:目前我们使用的程序是读种电量的数据块共个电量“xfx”表示正向有功数据块(报文里加x后是xxC)“xfx”表示反向有功数据块(报文里加x后是xxC)“xfx”表示正向无功数据块(报文里加x后是xxC)“xfx”表示反向无功数据块(报文里加x后是xxC)查询命令的数据区只包含个字节的数据标识,应答报文的数据区包含:类型标识电度数据(b)以上每种数据块包含个电量,依次是:总电能,尖峰,峰,平,谷维护软件里个电量的定义顺序:正向有功总电量反向有功总电量正向无功总电量反向无功总电量正向有功尖峰峰平谷反向有功尖峰峰平谷正向无功尖峰峰平谷反向无功尖峰峰平谷校验码CS从帧起始符开始到校验码之间的所有字节的算术和模。不计超过的溢出值。结束符H标识一帧的结束其值为H报文示例主站在发送帧信息之前先发送个字节xFE以唤醒接收方地址域和数据均先传送低位字节后传送高位字节。电度值的个字节都是按H传送对于配地址文件(gy)的,以表地址为为例.主站查询“正向有功数据块”Txd:FEFEFEcSUM从站应答:Rxd:cabSUM分析:两个之间的个字节是地址第个字节是数据标识:xxc分别减x后为xfx=正向有功。每种数据块传个电度值,依次为:总正向有功,尖峰,峰,平,谷ab,分别x后是,实际值就是,分别x后是,实际值就是,分别x后是,实际值就是.主站查询“反向有功数据块”Txd:FEFEFEcD从站应答:Rxd:cabSUM分析:两个之间的个字节是地址xxc是数据标识,减x后为xfx:反向有功每种数据块传个电度值,依次为:总反向有功,尖峰,峰,平,谷ab,分别x后是,实际值就是,分别x后是,实际值就是,分别x后是,实际值就是查询“正向无功数据块”Txd:FEFEFEcE从站应答:Rxd:cabSUM分析:两个之间的个字节是地址xxc是数据标识,减x后为xfx:正向无功每种数据块传个电度值,依次为:总正向无功,尖峰,峰,平,谷ab,分别x后是,实际值就是,分别x后是,实际值就是,分别x后是,实际值就是查询“反向无功数据块”Txd:FEFEFEcE从站应答:Rxd:cabSUM分析:两个之间的个字节是地址xxc是数据标识,减x后为xfx:反向无功每种数据块传个电度值,依次为:总反向无功,尖峰,峰,平,谷ab,分别x后是,实际值就是,分别x后是,实际值就是,分别x后是,实际值就是二MODBUS规约基本报文格式是:主站发送:地址功能码寄存器起始地址高位寄存器起始地址低位寄存器数目高位寄存器数目低位CRC位校验字节字节字节字节字节字节字节子站应答:地址功能码数据长度数据数据…数据NCRC位校验字节字节字节根据数据类型定字节一般情况下子站的遥测、遥信等实时量及定值等参数都存放在特定地址范围的寄存器内实时量是只读的参数是可读可写的主站只是按照子站指定的地址读写寄存器就行了。由于各种设备数据寄存器地址各不相同寄存器内存放的数据也多种多样:八位二进制组、字符型、整型、浮点型、时间日期型……并且读写操作的功能码也不相同因此程序中通用modbus规约从配置文件protocolcfg中读取这些信息一套程序就可以使用多种装置了。配置文件主要内容如下:Dmaxinfonum=infotype=infocommfunc=inforegistar=inforeginumb=infomtdbstar=infomtdbnumb=infotype=infocommfunc=inforegistar=inforeginumb=infomtdbstar=infomtdbnumb=注意程序对脚本检测严格下装到装置里的文件要去掉有效行内的注释内容并保证有效行末尾没有空格。附:各种数据类型目前标准程序里的modbus规约只处理如下和两种类型全规也版本的modbus程序下有“多数据类型modbus”,这里面的程序可处理如下所有数据类型:遥信一位代表一个遥信一个寄存器字包含了个遥信:遥测一个寄存器代表一个遥测值=高字节*低字节~:自定义数据类型个别现场有程序上的特殊改动如果用到了特定类型的数据使用这个范围内的数据代码:高字节遥测使用寄存器字中的高字节表示一个遥测:低字节遥测使用寄存器字中的低字节表示一个遥测:单字节遥测,一个字节代表一个遥测高字节遥测排在低字节之前:浮点数接连的两个寄存器表示一个浮点数由低到高保留一位小数:浮点数接连的两个寄存器表示一个浮点数由低到高保留二位小数:浮点数接连的两个寄存器表示一个浮点数由低到高保留三位小数:浮点数接连的两个寄存器表示一个浮点数由高到低保留一位小数:浮点数接连的两个寄存器表示一个浮点数由高到低保留二位小数:浮点数接连的两个寄存器表示一个浮点数由高到低保留三位小数:一个寄存器表示一个遥测高字节表示整数低字节字节表示小数保留三位小数:两个寄存器表示一个遥测第一个寄存器表示整数第二个寄存器表示小数保留一位小数:两个寄存器表示一个遥测第一个寄存器表示整数第二个寄存器表示小数保留二位小数:两个寄存器表示一个遥测第一个寄存器表示整数第二个寄存器表示小数保留三位小数:两个寄存器表示一个电度高位寄存器在前:三个寄存器表示一个BCD码电度,高位寄存器在前:电度接连的两个寄存器表示一个浮点数由低到高保留一位小数:电度接连的两个寄存器表示一个浮点数由低到高保留二位小数:电度接连的两个寄存器表示一个浮点数由低到高保留三位小数:电度接连的两个寄存器表示一个浮点数由高到低保留一位小数:电度接连的两个寄存器表示一个浮点数由高到低保留二位小数:电度接连的两个寄存器表示一个浮点数由高到低保留三位小数示例:通讯协议采用RSRS通讯总线标准位起始位位数据位个编程位(该位为表示地址为表示数据)位停止位MODBUS协议波特率可设为、、地址可设为xx(十进制)。.遥测量上位机发送遥测命令格式:地址功能码寄存器起始地址寄存器个数CRC校验HHXXH(字节,先高后低)XXH(字节,先高后低)LH控制器返回:地址功能码数据CRC校验HHN字节LH数据定义:(字节)数据地址名称TypeFormatUnit交流A相电压WordHiLoV交流B相电压WordHiLoV交流C相电压WordHiLoV控母电压WordHiLoV电池电压WordHiLoV,控母电流FloatLoHi.A,电池电流FloatLoHi.A.遥信量上位机发送遥信命令格式:地址功能码起始地址寄存器个数CRC校验HHHHCRC控制器返回:地址功能码数据数据CRC校验HHXXHXXHCRC配置文件如下:Dmaxinfonum=infotype=前个遥测都是双字节的普通遥测infocommfunc=遥测功能码inforegistar=第一个遥测的地址是inforeginumb=前个遥测的数据类型完全一样并且地址连续,所以可以在一条命令里读取infomtdbstar=写入遥测库的起始序号infomtdbnumb=写入个遥测infotype=第,个遥测的类型是浮点型,占个寄存器(字节),低字节在前,系数是即保留位小数infocommfunc=inforegistar=第个遥测的寄存器地址是inforeginumb=第,个遥测数据类型一样并且地址连续infomtdbstar=infomtdbnumb=infotype=遥信infocommfunc=遥信功能码inforegistar=遥信起始地址inforeginumb=共两个遥信字节,即个寄存器infomtdbstar=写入遥信库的起始序号infomtdbnumb=写入的遥信字节数,并不是遥信个数(个字节个遥信)Txd:DRxd:ADBAED遥测:遥测:遥测:遥测:遥测:Txd:BCBRxd:ECFBBBC遥测:遥测:Txd:CARxd:BCCE遥信数据字节是BC=报文里在前面字节先写入数据库,字节内部的低位对应遥信号在前,=合=分遥信:分分合合合分分合遥信:分分合分合合分合三.CDT规约Cdt是一种循环式规约,平时主动循环上送各种信息,为保证变位遥信及遥控返校上传的及时性,变位和遥控返校帧在全遥测上传的过程中插入优先传送流程如下:YesYesNoNoYes主站可定时发送对时命令我们定时发送电度Cdt规约总体帧格式:同步字控制字信息字。。。。。。信息字EBEBEB帧类别信息字数源站址目的站址校验码功能码数据字节数据字节数据字节数据字节CRC功能码字节………………CRC………………表帧类别代码及定义帧类别代码定义上行(子站(主站)下行(主站(子站)H重要遥测(A帧)遥控选择CH次要遥测(B帧)遥控执行BH一般遥测(C帧)遥控撤消FH遥信状态(D帧)升降选择H电能脉冲记数值(D帧)升降执行H事件顺序记录(E帧)升降撤消H设定命令AH设置时钟CH召唤子站时钟表功能码分配表功能码代码用途H~FH遥测H~H事项顺序记录H~H子站时钟返送EH遥控选择(下行)EH遥控返校EH遥控执行(下行)EH遥控撤消(下行)EH遥控选择(下行)EH升降返校EH升降执行(下行)EH升降撤消(下行)EH设置命令(下行)EEH~EFH设置时钟(下行)FH~FFH遥信AH~DFH电能脉冲记数值遥测全遥测按照重要遥测(遥测),次要遥测(遥测),一般遥测(往后的遥测)的顺序发送重要遥测:我们的CDT程序里规定重要遥测是个,所以功能码x~xF:::Txd:EBEBEB:::Txd:B:::Txd:FFA:::Txd:B:::Txd:CA:::Txd:F:::Txd:……:::Txd:FCF注释:重要遥测:EBEBEB信息字结构:功能码(~F)遥测Nb……b低字节bb…b…b高字节遥测Nb……b低字节bb…b…b高字节校验码()每个信息字传送两路遥测量。()b~b传送一路模拟量以二进制码表示。b=时为正数b=时为负数以的补码表示。()b=表示溢出b=表示数无效。传送的遥测值范围是:~遥测功能码从开始,每个遥测占两个字节,低字节在前,每个信息字可传两个遥测这样很容易根据功能码判断出遥测号或根据遥测号判断出该遥测所在信息字的位置,方便上传数据不对时检查报文例一:Txd:B功能码是,此信息字里传的是第,路遥测,功能码遥测b……bB()bb…b…b遥测b……b()bb…b…b()校验码先把数据字节转化为十进制数:xB=,x=,x=,x=按照低字节在前的规则可得:YC=*=YC=*=例:Txd:CA从报文看第个遥测若按正常计算YC=(xc)*(x)=已经超出了CDT传送的最大值,所以此遥测上传的肯定有问题一般这种情况是发生了数据溢出,这从维护软件的发送值可以得到证实若想从报文的内容看是否确是溢出,可参考如下分析:功能码遥测b……b()bb…b…bC()遥测b……b()bb…b…b()校验码从上面可以看出YC的b位是,表示数值溢出,b=表示数值无效次要遥测,一般遥测:次要遥测和一般遥测数据处理方式都跟重要遥测一样,在此就不做详细介绍,关键通过帧类别和功能码的范围判断是那种类型下表中给出报文示例我们我们的CDT程序里规定次要遥测是个,所以功能码x~xF:::Txd:EBEBEBC:::Txd:CD:::Txd:AF:::Txd::::Txd::::Txd:FFD除了重要和次要遥测剩下的都按一般遥测传送功能码x~xF:::Txd:EBEBEBB:::Txd:B:::Txd:F:::Txd:F:::Txd:D:::Txd:………遥信全遥信同步字控制字信息字……信息字N控制字节(x)功能码(xF)帧类别(xF)遥信字节信息字数遥信字节源地址目的地址遥信字节校验码校验码控制字信息字:::Txd:EBEBEBFE:::Txd:F:::Txd:F:::Txd:FF:::Txd:F:::Txd:FD注释:子站送全遥信:EBEBEBF……信息字结构:功能码(F~FF)字节n遥信字Nb………b字节nb………b字节n遥信字Nb…………b字节nb…………b字节n校验码字节n()每个遥信字(字节)含有个遥信状态位()状态位定义:b=表示遥信分b=表示遥信合()上面的b………b对应遥信号由小到大,如F信息字对应遥信字N的b~b是~路遥信遥信字N的b~b是~路遥信,F信息字对应是第~个遥信由以上可见每个信息字可传路遥信,再结合这个遥信的高地位顺序,我们可判断要找的遥信在应该在哪个信息字的具体位置例: 要找第个遥信的传送状态每个信息字传个遥信,=*可知是在功能码为F的信息字里第个遥信位置Txd:FD功能码Fb…………b()b…………b()b……………b()b……………b()校验码D对照可见第个遥信是合位变位遥信发生遥信变位时插入发送变位的信息字,连续发送遍,信息字格式跟全遥信里的信息字一样示例:第个遥信发生变位,那此遥信所在信息字(计算可知遥信处于F信息字里)插入遥测帧连发遍:::Txd:EBEBEB:::Txd:B:::Txd:D:::Txd:B:::Txd:C:::Txd:F第个遥信位于字节x的第位,=是合位:::Txd:F:::Txd:F:::Txd:FEA:::Txd:E电度同步字控制字信息字……信息字N控制字节(x)功能码(xA)帧类别(x)电度(低字低字节)信息字数(电度个数)电度(低字高字节)源地址电度(高字低字节)目的地址电度(高字高字节)校验码校验码控制字信息字:::Txd:EBEBEBAE:::Txd:ADE(第个电度值:):::Txd:ACDE(第个电度值:):::Txd:AC:::Txd:AAA:::Txd:A:::Txd:AE:::Txd:A(第个电度值:):::Txd:A:::Txd:A:::Txd:A:::Txd:AAD…………遥控主站 遥控预置 遥控执行命令(或撤消命令)子站      遥控返校  执行主站下发遥控格式:同步字控制字信息字信息字信息字此三字内容相同控制字节(H)帧类别(H预置,CH执行,BH撤消)信息字数(H)源站址(xxH)目的站址(xxH)校验码子站返校格式:自站返校报文只含信息字无同步字和控制字信息字连续发次。信息字信息字信息字此三字内容相同几种命令的信息字格式如下功能码(EH)功能码(EH)合:xCC分:x合:xCC分:x错:xFF开关序号开关序号合分(重复)合分错(重复)开关序号(重复)开关序号(重复)校验码校验码遥控预置返校功能码(EH)功能码(EH)执行(xAA)撤销(x)开关序号开关序号执行(重复)撤销(重复)开关序号(重复)开关序号(重复)校验码校验码遥控执行遥控撤销报文示例:.遥控预置:EBEBEBEFECCCCECCCCECCCC对照上面格式可以看出此报文表示:遥控号为的遥控预置合返校正确:ECCCCECCCCECCCC返校错误:EFFFFEFFFFEFFFF遥控执行EBEBEBCAEAAAADEAAAADEAAAAD遥控撤销EBEBEBBEEEE对时同步字控制字信息字信息字控制字(x)功能码(xEE)功能码(xEF)xA(帧类别)毫秒(低字节)时x(信息字数)毫秒(高字节)日源站址(xxH)秒月目的站址分年(十位和个位)校验码校验码校验码控制字信息字信息字报文示例:年月日时分秒毫秒EBEBEBAAEEEFAAB四.规约(版)该规约有两种传输方式:平衡式和非平衡式传输平衡式传输方式中规约是一种“问答循环”式规约即主站端和子站端都可以作为启动站而当其用于非平衡式传输方式时规约是问答式规约只有主站端可以作为起动站。一帧格式简单说明固定帧长格式:主站召唤链路状态(及子站应答),主站复位链路(及子站应答),主站召唤一级数据,主站召唤二级数据启动字符(H)控制域(C)链路地址域(A)帧校验和(CS)结束字符(H)可变帧长格式:主站总召唤(及子站应答),主站对时,主站遥控,子站应答一级数据,子站应答二级数据启动字符(H)长度(L)长度重复(L)启动字符(H)控制域(C)链路地址域(A)链路用户数据(可变长度)帧校验和(CS)启动字符:固定为x。长度L长度L包括控制域、地址域、用户数据区的字节数为二进制数。控制域(C)的定义DIRDPRMDFCBACDDFCVDFCD功能码DDDIR:传输方向位=:表示报文是主站向子站传输。=:表示报文是子站向主站传输。PRM:启动报文位=:从动站,报文为确认报文或响应报文。=:启动站报文为发送或请求报文。FCB:帧计数位:启动站向从动站传输启动站向从动站传输新一轮的发送确认、请求响应服务时将前一轮FCB取相反值。FCV:帧计数有效位:启动站向从动站传输=:表示FCB变化无效。=:表示FCB变化有效。ACD:要求访问位:主站做从动站时ACD位无实际意义ACD=。子站做从动站时ACD=:表示子站无级用户数据ACD=:表示子站有级用户数据希望向主站传输。DCF:数据流控制位:从动站向启动站传输=:表示子站可以继续接收数据。=:表示子站数据区满无法接收新数据。功能码(DD):功能码范围为(HFH)功能码代表的意义较为烦琐参考规约文档。链路地址域链路地址域为子站站址。NoYesYesYesNo规约各种类型帧格式及报文示例:各种信息体起始地址如下:遥信:x遥测:x电度:x遥控:x常用的类型标识<>      :=单点信息。遥信<>:=测量值,标度化值遥测<>:=时钟同步命令对时<>:=单点命令遥控<>:=总召唤命令总召命令,总召确认,总召结束<>      :=带时标的单点信息(短时标)<>      :=双点信息<>      :=带时标的双点信息(短时标)<>:=带CPTimea时标的双点信息(长时标)<>:=测量值,规一化值<>:=测量值,短浮点数<>:=累积量<>:=带变位检出的成组单点信息<>:=测量值,不带品质描述词的规一化值<>:=双点命令<>:=调节步命令<>:=设定值命令,规一化值<>:=设定值命令,标度化值<>:=设定值命令,短浮点数<>          :=初始化结束 .请求链路状态主站请求远方链路状态帧HFCB功能码(H)链路地址域(子站站址)帧校验和(CS)H子站响应帧HACD功能码(bit)链路地址域(子站站址)帧校验和(CS)H功能码定义:=链路忙(H)=链路服务未工作(EH)=链路完好(BH)=链路服务未完成(FH)主站请求链路状态:a(启动字符)(控制域)(链路地址)a(校验)(结束字符)子站应答链路状态:bc(启动字符)b(控制域)(链路地址)c(校验)(结束字符)复位链路主站复位远方链路帧HFCB功能码链路地址域(子站站址)帧校验和(CS)H子站确认帧HACD功能码链路地址域(子站站址)帧校验和(CS)H主站复位链路状态:(启动字符)(控制域)(链路地址)(校验)(结束字符)子站链路确认:(启动字符)(控制域)(链路地址)(校验)(结束字符)初始化结束主站:ab子站:初始化结束类型标识:x(即)对时主站时钟同步发送帧HL=(FH)L=(FH)HFCB功能码链路地址域(子站站址)类型标识(H)结构限定词(H)传送原因=激活公共地址信息体地址(低位)信息体地址(高位)Miliseconds(DD)Miliseconds(DD)IV(D)RESMinutes(DD)SU(D)RESHours(DD)DAYofWEEKDAYofMONTH(DD)RESMonth(DD)RESYears(DD)帧校验和(CS)H主站对时:FFBABB子站对时确认:FFBABB总召唤基本流程:NO

用户评价(0)

关闭

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

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

提示

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

文档小程序码

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

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/40

常用规约的流程及示例分析

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利