• 模电数电期末试题 > EDA9033E智能三相电参数数据综合采集模块
  • EDA9033E智能三相电参数数据综合采集模块

    免费下载 下载该文档 文档格式:DOC   更新时间:2005-09-02   下载次数:0   点击次数:1
    文档基本属性
    文档语言:Simplified Chinese
    文档格式:doc
    文档作者:汪运来
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性
    EDA9033E智能三相电参数数据综合采集模块
    使用说明书
    目录
    一,产品介绍
    二,模块的外形图及端子定义
    三,模块测量精度说明
    四,EDA9033E模块典型应用接线说明
    五,EDA9033E模块应用说明
    六,EDA9033E模块ASCII码通讯指令集及参数计算说明
    (一),命令集
    (二),EDA9033E-ASCII码指令集及参数计算说明
    七,EDA9033E模块十六进制LC-02通讯指令集及参数计算说明
    八,EDA9033E模块广播命令的使用说明
    EDA9033E模块MODBUS通讯协议说明
    一,EDA9033E模块Modbus通讯规约简介
    二,EDA9033E模块Modbus-ASCII通讯协议说明
    三,EDA9033E模块Modbus-RTU通讯协议说明
    四,EDA9033E模块Modbus协议的功能码与所对应的数据表
    五,EDA9033E模块的数据计算
    六,Modbus通讯规约介绍
    (一)MODBUS通讯规约简介
    (二)MODBUS的两种传输方式
    (三)Modbus消息帧
    (四)MODBUS通讯错误检测方法
    EDA9033E 智能三相电参数数据综合采集模块订购指南
    一,产品介绍
    EDA9033E系列模块是EDA9033A模块的升级替代产品,增加了四象限有功,无功功率的测量,频率测量,正反向有功无功电能的计量,及显示驱动接口.
    EDA9033E模块是一智能型三相电参数数据综合采集模块;三表法准确测量三相三线制或三相四线制交流电路中的三相电流,三相电压(真有效值),有功功率,无功功率,功率因数,频率,正反向有功电度,正反向无功电度等电参数.
    其输入为三相电压(0-500V),三相电流(0-1000A);输出为RS-485或RS-232接口的数字信号,支持的通讯规约有4种:(ASCII码)研华ADAM兼容通讯协议,十六进制LC-02协议,MODBUS-ASCII,MODBUS-RTU.
    EDA9033E模块可广泛应用于各种工业控制与测量系统及各种集散式/分布式电力监控系统.
    EDA9033E模块是一款高性价比的智能电参数变送器,他能替代过去的电流,电压,功率, 功率因数,电量等一系列变送器及测量这些变送器标准输出信号的模入模块,可大大降低系统成本, 方便现场布线,提高系统的可靠性. 其485总线输出与兼容于NuDAM,ADAM等模块的ASCII码指令集,使其可与其他厂家的控制模块挂在同一485总线上,且便于计算机编程,使你轻松地构建自己的测控系统.
    采用电磁隔离和光电隔离技术,电压输入,电流输入及输出三方完全隔离.
    其主要的功能与技术指标如下:
    输入信号
    三相交流50/60Hz电压,电流.输入频率:45~75Hz.
    电压量程(相电压):10V,20V,50V,60V,100V,200V,250V,300V,400V,500V可选.
    电流量程: 1A,2A,3A,5A,10A,20A,(50A,100A,200A,500A,1000A)等可选.
    信号处理:16位A/D转换,6通道,每通道均以4KHz速率同步交流采样,模块实时数据为1秒的真有效值(每秒刷新1次).
    过载能力:1.4倍量程输入可正确测量;瞬间(10周波)电流5倍,电压3倍量程不损坏.
    通讯输出
    输出数据:三相相电压Ua,Ub,Uc;三相电流Ia,Ib,Ic;有功功率P,无功功率Q,功率因数PF,频率f,各相有功功率Pa,Pb,Pc;各相无功功率Qa,Qb,Qc;正向有功电度,反向有功电度,正向无功电度,反向无功电度等电参数.
    输出接口:RS-485 二线制 ±15KV ESD保护, 或RS-232 三线制 ±2KV ESD保护.
    通讯速率(Bps):1200,2400,4800,9600,19.2K
    通讯协议:(ASCII码)研华ADAM兼容通讯协议,十六进制LC-02协议,MODBUS-ASCII,MODBUS-RTU.
    测量精度
    电流,电压:0.2级 ; 其它电量:0.5级.
    参数设定
    模块地址,通讯速率,通讯协议,电压变比,电流变比,有功无功电量底数均可通过通讯接口设定.
    模块供电电源 +5V±10%,+8~30V,AC60~265V可选其一 功耗:0.5度时,可保证0.2级的精度.
    4,无功功率:0.5级
    5,功率因数:0.5级
    6,电量:0.5级
    注:有功功率,无功功率,功率因数,电量等的精度,都是与电流,电压输入相关的,即输入电压小于20%量程时,不能保证以上几个参数的精度等级.
    四,EDA9033E模块典型应用接线说明
    EDA9033E模块可应用于三相三线制或三相四线制电路.在三相三线制电路中,UGND端可不连接或接地;在三相四线制电路中,UGND端接零线.
    EDA9033输出电压Ua ,Ub, Uc都是相电压(每相对UGND端的电压).
    LED指示灯:模块正常运行状态下,指示灯每2秒闪烁1次.
    电流输入的方向如图示;每相的电流与电压应如图示相对应接入,否则将导致错误的功率与累计电量.
    5,EDA9033E模块典型接线图如下:
    五,EDA9033E模块应用说明
    EDA9033E模块能连接到所有计算机和终端并与之通讯.
    EDA9033E模块出厂时,都已经过校准及高低温老化测试.
    EDA9033E模块出厂时,地址设定为01号,波特率为9600Bps,电压变比,电流变比为1.模块地址从0-255(00-FFH)可随意设定;波特率有1200,2400,4800,9600,19200Bps五种可使用.模块地址与波特率等参数修改后,其值存于EEPROM中.
    波特率设置: BaudRate 通讯波特率,其值为03---07,对应波特率见下表:
    波特率代码
    波特率(Bps)
    03
    1200
    04
    2400
    05
    4800
    06
    9600
    07
    19200
    RS-485网络:最多可将64个EDA9033E挂于同一485总线上,但通过采用RS-485中继器,可将多达256个模块连接到同一网络上,最大通讯距离达1200m.主计算机通过EDA485(RS-232/RS-485)转换器用一个COM通讯端口连接到485网络.
    配置:将EDA9033E安装入网络前,须对其配置,将模块的波特率与网络的波特率设为一致,地址无冲突(与网络已有模块的地址不重叠).配置一个模块应有:EDA485转换器,带RS-232通讯口的计算机和本公司提供的EDA90系列测试软件.通过EDA90系列测试软件可最容易地进行配置,你也可根据指令集进行配置.
    数据采集:将模块正确连接,主机发读数据命令,模块便将采集的数据回送主机.EDA9033E模块内数据每1S更新一次(电流电压等参数为1S的时间内的真有效值).
    电量为从上电后一直累加,掉电10年内不丢失,收到电量底数设定指令后重设定电量底数.电量一直累计15年不会溢出.
    量程选择:你可根据实际测量需要选择电压量程(10-500V)与电流量程(1-1000A).EDA9033E模块可正确测量满量程1.4倍的电流,电压输入信号,超过满量程1.4倍的输入会逐渐饱和,测量值偏小,不能准确测量.不超过3倍满电压量程与10倍满电流量程的瞬时(<0.1S)输入信号不会导致模块的损坏,但要注意电源不要接反或接错.
    数据以标称满量程的百分数形式输出.ASCII码协议下电流,电压等参数的数据格式为一位符号位+或-,5位数据位和一个小数点,其转换公式如下所示:
    设标程电压量程U0,电流量程为I0,则:
    相电压U=输出数据U *U0 V
    电流I=输出数据I *I0 A
    单相有功功率Pa=输出数据Pa *U0*I0 W
    有功功率P=输出数据P *U0*I0*3 W
    单相无功功率Qa=输出数据Qa *U0*I0 Var
    无功功率Q=输出数据Q *U0*I0*3 Var
    功率因数COSФ=输出数据COSФ PF
    电量=电量输出数据/(10000/9)*U0*I0/(3*1000*3600) 度
    各线电压的计算:;;
    各相视在功率:Sa=Ua*Ia ; Sb=Ub*Ib ; Sc=Uc*Ic; 总视在功率:
    各个参数的详细计算公式请参见通讯协议说明中所列的计算公式及例子.
    六,EDA9033E模块ASCII码通讯指令集及参数计算说明
    (一),命令集
    命令语法
    命令响应
    功 能
    说 明
    $(ADDR) M
    !(ADDR)(9033E)
    读模块名
    查找模块
    $(ADDR) 2
    !(ADDR)(00)(BPS)(00)
    读配置
    读地址,波特率
    %(ADDR)(NEW ADDR)(00)
    (BPS)(00)
    !(ADDR)
    写配置
    改地址,波特率
    $(ADDR)3
    !(ADDR)(U0)(I0)(UBB)(IBB)
    读模块参数
    读电压,电流的量程,变比
    %(ADDR)(UBB)(IBB)
    ! (ADDR)
    设置模块参数
    设置电压,电流变比
    #(ADDR) A
    > (DATA)
    读数据
    读电流,电压功率等测量值
    #(ADDR) P
    > (DATA)
    读数据
    读各相有无功功率,频率值
    #(ADDR) W
    > (DATA) (CHK)
    读电量数据
    读取正反向有无功总电量
    &(ADDR)(DATA)(CHK)
    ! (ADDR)
    配置电量底数
    配置正反向有无功总电量
    (ADDR):地址,00~FF(两位ASCII码表示的十六进制数)
    $,%,#,&,!,> :为定界符
    M,2,3,A,P,W : 为读参数或读数据命令字
    (BPS):表示波特率 03~07表示1200BPS~19200BPS
    :回车(0DH)
    数据格式为:1位起始位0,8位数据位,1位停止位1.
    若模块接收到的地址不符,命令错,或校验和(带校验和的)错等,则没有回答.
    (二),EDA9033E-ASCII码指令集及参数计算说明
    1,读模块名: 从一指定地址读出模块名
    命令: $ (ADDR) M
    响应: ! (ADDR) (9033E)
    例:命令: $01M
    响应: !019033E
    9033E :EDA9033E 模块名
    2,读配置: 从一指定地址读出模块配置
    命令: $ (ADDR) 2
    响应: ! (ADDR) (00) (BPS) (00)
    例:命令: $ 012
    响应: !01000600〈CR〉
    3,写配置: 配置EDA9033E模块的通讯地址,波特率
    命令: % (ADDR) (NEW ADDR) (00) (波特率) (00)
    响应: ! (ADDR)
    (NEW ADDR): 新地址00~FFH (若不改变地址则使新地址等于原地址 ) 2字节
    (00): 必须为00 2字节
    例:命令: $ 01 02 00 06 00
    响应: !02〈CR〉
    该例为将1号模块地址改为2号,波特率为9600BPS,回答表示改地址成功.
    4,读模块参数: 读模块电压,电流的量程,变比:
    命令: $ (ADDR) 3
    响应: ! (ADDR) (U0) (I0) (UBB) (IBB)
    (U0) (I0) (UBB) (IBB) : 各2字节ASCII码表示的1字节(8位)十六进制数.
    U0: 电压量程,其值为1~250表示2~500V,即输出值乘以2为实际电压量程.
    I0: 电流量程,其值为1~200表示1~200A.
    UBB:电压变比,1~200
    IBB:电流变比,1~250
    例:命令: $ 01 3
    响应: !01 32 05 01 01〈CR〉
    该例为读1号模块的电压,电流的量程,变比,读出的电压量程为100V,电流量程为5A,变比都为1.
    5,设置模块电压,电流变比:
    命令: % (ADDR) (UBB) (IBB)
    响应: ! (ADDR)
    (UBB) (IBB): 各2字节ASCII码表示的1字节(8位)十六进制数.
    UBB:电压变比,1~200
    IBB:电流变比,1~250
    例:命令: % 01 3C C8
    响应: !01〈CR〉
    该例为将1号模块的电压变比设置为60,电流变比设置为200.回答表示设置成功.
    6,读数据: 读出EDA9033E模块实时电压,电流,总有功,无功,功率因数等数据,数据输出顺序为:UA,IA,UB,IB,UC,IC,P,Q,COSФ
    命令: # (ADDR) A
    响应: > (DATA)
    (DATA)为:UA,IA,UB,IB,UC,IC,P,Q,COSФ,9个参数.每个参数为7字节ASCII码值,格式为一位符号位+或-,5位十进制数据位和一个小数点.其数值为标称满量程的百分数(COSФ为实际测量值).
    各个参数的含义及计算如下:
    (UA): A相电压值. 实际值=(UA)*(U0)*(UBB) V
    (UB): B相电压值. 实际值=(UB)*(U0)*(UBB) V
    (UC): C相电压值. 实际值=(UC)*(U0)*(UBB) V
    (IA): A相电流值. 实际值=(IA)*(I0)*(IBB) A
    (IB): B相电流值. 实际值=(IB)*(I0)*(IBB) A
    (IC): C相电流值. 实际值=(IC)*(I0)*(IBB) A
    (P): 总有功功率值. 实际值=(P)*3*(U0)*(I0)*(UBB)*(IBB) W
    (Q): 总无功功率值. 实际值=(Q)*3*(U0)*(I0)*(UBB)*(IBB) Var
    (COSФ):总功率因数值.实际值=(COSФ) PF
    7,读数据: 读各单相有功功率,各单相无功功率,频率,数据输出顺序为 PA,PB,PC,QA,QB,QC,F
    命令: # (ADDR) P
    响应: > (DATA)
    (DATA)为: PA,PB,PC,QA,QB,QC,F ,7个参数.每个参数为7字节ASCII码值,格式为一位符号位+或-,5位十进制数据位和一个小数点.其数值为标称满量程的百分数(F频率为实际测量值).
    各个参数的含义及计算如下:
    (PA): A相有功功率值. 实际值=(PA)*(U0)*(I0)*(UBB)*(IBB) W
    (PB): B相有功功率值. 实际值=(PB)*(U0)*(I0)*(UBB)*(IBB) W
    (PC): C相有功功率值. 实际值=(PC)*(U0)*(I0)*(UBB)*(IBB) W
    (QA): A相无功功率值. 实际值=(QA)*(U0)*(I0)*(UBB)*(IBB) Var
    (QB): B相无功功率值. 实际值=(QB)*(U0)*(I0)*(UBB)*(IBB) Var
    (QC): C相无功功率值. 实际值=(QC)*(U0)*(I0)*(UBB)*(IBB) Var
    (F): 频率值. 实际值=(F)Hz 为线电压UAB的频率
    8,读电量数据: 读正向有功总电能,反向有功总电能,正向无功总电量,反向无功总电量
    命令: # (ADDR) W
    响应: > (DATA) (CHK)
    (DATA)为:正向有功总电能,反向有功总电能,正向无功总电量,反向无功总电量 ,4个参数.每个参数为12字节ASCII码表示的6字节(48位)十六进制数.
    (CHK):为从">"开始(包括>)的所有数据累加和的1字节十六进制数用2字节ASCII码表示.
    EDA9033E可输出累计正反向有无功电量,EDA9033E上电后即开始测量,电量从原掉电前的电量值开始累计.电压电流输入满量程时,各电量参数的最小累计时间为15年,超过此时间可能产生溢出.电量数据掉电10年内不丢失.收到电量底数设定指令后重设定电量底数.
    各个参数的含义及计算如下:
    (正向有功总电能):实际值=(正向有功总电能)/(10000/9)*(U0)*(I0)*(UBB)*(IBB)/3000/3600 度
    (反向有功总电能):实际值=(反向有功总电能)/(10000/9)*(U0)*(I0)*(UBB)*(IBB)/3000/3600 度
    (正向无功总电量):实际值=(正向无功总电量)/(10000/9)*(U0)*(I0)*(UBB)*(IBB)/3000/3600 度
    (反向无功总电量):实际值=(反向无功总电量)/(10000/9)*(U0)*(I0)*(UBB)*(IBB)/3000/3600 度
    (有功总电能)=(正向有功总电能)-(反向有功总电能)
    (无功总电能)=(正向无功总电能)-(反向无功总电能)
    9,配置电量底数:配置正向有功总电能,反向有功总电能,正向无功总电量,反向无功总电量
    命令: & (ADDR) (DATA) (CHK)
    响应: ! (ADDR)
    (DATA)为:正向有功总电能,反向有功总电能,正向无功总电量,反向无功总电量 ,4个参数.
    每个参数为12字节ASCII码表示的6字节(48位)十六进制数
    (CHK):为从"&"开始(包括&)的所有数据累加和的1字节十六进制数用2字节ASCII码表示.
    各个参数的含义及计算如下:
    (正向有功总电能):= 正向有功总电能实际值(度)*3000*3600/(U0)/(I0)/(UBB)/(IBB)*(10000/9)
    (反向有功总电能):= 反向有功总电能实际值(度)*3000*3600/(U0)/(I0)/(UBB)/(IBB)*(10000/9)
    (正向无功总电量):= 正向无功总电量实际值(度)*3000*3600/(U0)/(I0)/(UBB)/(IBB)*(10000/9)
    (反向无功总电量):= 反向无功总电量实际值(度)*3000*3600/(U0)/(I0)/(UBB)/(IBB)*(10000/9)
    七,EDA9033E模块十六进制LC-02通讯指令集及参数计算说明
    EDA9033E的LC-02通讯协议的一般格式为:
    命令:4CH,57H, ADDR,CMD,DATA,CHK,0DH
    响应:6CH,63H, ADDR,CMD,DATA,CHK,0DH
    4CH,57H,6CH,63H: 起始码1,2 2字节
    ADDR:地址00H--FFH 1字节
    CMD: 命令 1字节
    DATA: 数据 0或 n 字节
    CHK: 校验和,从地址开始数据累加和 1字节
    0DH: 结束码 1字节
    若模块接收到的地址不符,命令错,或校验和错等,则没有回答.
    读配置:读模块地址,波特率,型号
    命令:4CH,57H,ADDR,01H,CHK,0DH
    响应:6CH,63H,ADDR,01H,波特率,型号,CHK,0DH
    波特率:通讯波特率 03~07表示1200BPS~19200BPS 1字节
    型号: 9033 E001 4字节
    2,写配置: 配置模块地址,波特率
    命令:4CH,57H,ADDR,02H,NEW ADDR,波特率,00H,CHK,0DH
    响应:6CH,63H,ADDR,02H,CHK,0DH
    NEW ADDR:模块新地址 00~0FFH 1字节
    波特率:通讯波特率 03~07表示1200BPS~19200BPS 1字节
    读模块电压,电流的量程与变比:
    命令: 4CH,57H,ADDR,03H,CHK,0DH
    响应: 6CH,63H,ADDR,03H,(U0),(I0),(UBB),(IBB),CHK,0DH
    (U0)(I0)(UBB)(IBB): 各1字节(8位)十六进制数.
    U0: 电压量程,其值为1~250表示2~500V,即输出值乘以2为实际电压量程.
    I0: 电流量程,其值为1~200表示1~200A.
    UBB:电压变比,1~200
    IBB:电流变比,1~250
    例:命令: 4CH,57H,01H,03H,04H,0DH
    响应: 6CH,63H,01H,03H,32H,05H,01H,01H,3DH,0DH
    该例为读1号模块的电压,电流的量程,变比,读出的电压量程为100V,电流量程为5A,变比都为1.
    4,设置模块电压,电流变比:
    命令: 4CH,57H,ADDR,04H,(UBB),(IBB),CHK,0DH
    响应: 6CH,63H,ADDR,04H,CHK,0DH
    (UBB)(IBB): 各1字节(8位)十六进制数.
    UBB:电压变比,1~200
    IBB:电流变比,1~250
    5,读数据:读电流,电压,总有功,无功,功率因数 ,各相有功,各相无功,频率
    命令: 4CH,57H,ADDR,05H,CHK,0DH
    响应: 6CH,63H,ADDR,05H,(DATAN),CHK,0DH
    (DATAN)为:UA,IA,UB,IB,UC,IC,P,Q,COS,PA,PB,PC,QA,QB,QC,F,共16个参数.每个参数为2字节(16位) 十六进制数据,高字节在前低字节在后;标称满量程值为10000(2710H).其中P,Q,COS,PA,PB,PC,QA,QB,QC等 9个参数为有符号数,其最高位(BIT15)为符号位,1为负,0为正;计算时,先取出符号位(即判断最高位作为此参数的符号,然后将最高位置为0)后再计算.
    各个参数的含义及计算公式如下:(以下带符号位的取出符号位)
    (UA): A相电压值. 实际值=(UA)/10000*(U0)*(UBB) V
    (UB): B相电压值. 实际值=(UB)/10000*(U0)*(UBB) V
    (UC): C相电压值. 实际值=(UC)/10000*(U0)*(UBB) V
    (IA): A相电流值. 实际值=(IA)/10000*(I0)*(IBB) A
    (IB): B相电流值. 实际值=(IB)/10000*(I0)*(IBB) A
    (IC): C相电流值. 实际值=(IC)/10000*(I0)*(IBB) A
    (P): 总有功功率值. 实际值= +(P)/10000*3*(U0)*(I0)*(UBB)*(IBB) W
    (Q): 总无功功率值. 实际值= +(Q)/10000*3*(U0)*(I0)*(UBB)*(IBB) Var
    (COSФ):总功率因数值.实际值= +(COSФ)/10000 PF
    (PA): A相有功功率值. 实际值= +(PA)/10000*(U0)*(I0)*(UBB)*(IBB) W
    (PB): B相有功功率值. 实际值= +(PB)/10000*(U0)*(I0)*(UBB)*(IBB) W
    (PC): C相有功功率值. 实际值= +(PC)/10000*(U0)*(I0)*(UBB)*(IBB) W
    (QA): A相无功功率值. 实际值= +(QA)/10000*(U0)*(I0)*(UBB)*(IBB) Var
    (QB): B相无功功率值. 实际值= +(QB)/10000*(U0)*(I0)*(UBB)*(IBB) Var
    (QC): C相无功功率值. 实际值= +(QC)/10000*(U0)*(I0)*(UBB)*(IBB) Var
    (F): 频率值. 实际值=(F)/100 Hz 为线电压UAB的频率
    6,读电量数据:读正向有功总电能,反向有功总电能,正向无功总电量,反向无功总电量
    命令: 4CH,57H,ADDR,06H,CHK,0DH
    响应: 6CH,63H,ADDR,06H,(DATAN),CHK,0DH
    (DATAN)为:正向有功总电能,反向有功总电能,正向无功总电量,反向无功总电量 ,共24个字节,4个参数. 每个参数为6字节(48位)十六进制数.
    EDA9033E可输出累计正反向有无功电量,EDA9033E上电后即开始测量,电量从原掉电前的电量值开始累计.电压电流输入满量程时,各电量参数的最小累计时间为15年,超过此时间可能产生溢出.电量数据掉电10年内不丢失.收到电量底数设定指令后重设定电量底数.
    各个参数的含义及计算如下:
    (正向有功总电能):实际值=(正向有功总电能)/(10000/9)*(U0)*(I0)*(UBB)*(IBB)/3000/3600 度
    (反向有功总电能):实际值=(反向有功总电能)/(10000/9)*(U0)*(I0)*(UBB)*(IBB)/3000/3600 度
    (正向无功总电量):实际值=(正向无功总电量)/(10000/9)*(U0)*(I0)*(UBB)*(IBB)/3000/3600 度
    (反向无功总电量):实际值=(反向无功总电量)/(10000/9)*(U0)*(I0)*(UBB)*(IBB)/3000/3600 度
    (有功总电能)=(正向有功总电能)-(反向有功总电能)
    (无功总电能)=(正向无功总电能)-(反向无功总电能)
    7,配置电量底数:配置正向有功总电能,反向有功总电能,正向无功总电量,反向无功总电量
    命令: 4CH,57H,ADDR,07H,(DATAN),CHK,0DH
    响应: 6CH,63H,ADDR,07H,CHK,0DH
    (DATAN)为:正向有功总电能,反向有功总电能,正向无功总电量,反向无功总电量 ,共24个字节,4个参数.
    各个参数的含义及计算如下:
    (正向有功总电能): = 正向有功总电能实际值(度)*3000*3600/(U0)/(I0)/(UBB)/(IBB)*(10000/9)
    (反向有功总电能): = 反向有功总电能实际值(度)*3000*3600/(U0)/(I0)/(UBB)/(IBB)*(10000/9)
    (正向无功总电量): = 正向无功总电量实际值(度)*3000*3600/(U0)/(I0)/(UBB)/(IBB)*(10000/9)
    (反向无功总电量): = 反向无功总电量实际值(度)*3000*3600/(U0)/(I0)/(UBB)/(IBB)*(10000/9)
    八,EDA9033E模块广播命令的使用说明
    EDA9033E模块提供了2条广播命令:读与写模块当前地址,波特率,通讯协议.该命令的使用为用户在不知模块的当前地址与协议时可容易地得到模块的地址,协议等参数,并可容易地配置模块地址,通讯波特率,通讯协议等参数.
    本公司提供的EDA9033E模块测试软件有此项功能,用户可用此软件来测试与配置模块.
    此广播命令不论模块当前协议如何,均可使用.
    在使用此2条广播命令时,必须确保只有一块模块接入,否则将导致错误.
    此协议的数据格式介绍如下:
    1,读模块当前地址,波特率,通讯协议
    命令: 0F9H,0CAH,0A5H,4CH,57H,0FFH(广播地址),01H,00H,0DH
    响应: 6CH,63H,ADDR,BPS,XY,(CHK),0DH
    2,写模块当前地址,波特率,通讯协议
    命令: 0F9H,0CAH,0A5H,4CH,57H,0FFH(广播地址),02H,ADDR,BPS,XY,(CHK),0DH
    响应: 6CH,63H,ADDR,BPS,XY,(CHK),0DH
    ADDR: 当前地址 00~FF 1字节十六进制数
    BPS: 当前波特率 03~07 表示1200~19200BPS 若=00,则只改变协议 1字节
    XY: 当前协议,1字节 00~03H,83H
    00: ASCII 01: HEX LC-02 02: MODBUS-ASCII
    03: MODBUS-RTU -11位,1起始位0,8数据位,2停止位1
    83: MODBUS-RTU -10位,1起始位0,8数据位,1停止位1
    (CHK): 从地址开始,数据累加和 1字节
    EDA9033E智能三相电参数数据综合采集模块
    MODBUS通讯协议说明
    目录
    一,EDA9033E模块Modbus通讯规约简介
    二,EDA9033E模块Modbus-ASCII通讯协议说明
    三,EDA9033E模块Modbus-RTU通讯协议说明
    四,EDA9033E模块Modbus协议的功能码与所对应的数据表
    五,EDA9033E模块的数据计算
    六,Modbus通讯规约介绍
    (一)MODBUS通讯规约简介
    (二)MODBUS的两种传输方式
    (三)Modbus消息帧
    (四)MODBUS通讯错误检测方法
    一,EDA9033E模块Modbus通讯规约简介
    EDA9033E模块同时支持的通讯规约有4种:(ASCII码)研华ADAM兼容通讯协议,十六进制LC-02协议,MODBUS-ASCII,MODBUS-RTU.各通讯规约的转换可由公司提供的"EDA90系列模块测试软件"来进行设置.
    EDA9033E模块的"MODBUS通讯协议说明"描述了串行口通讯的读,写命令格式及内部信息数据的定义,数据计算,以便第三方开发使用.
    EDA9033E模块的MODBUS通讯规约是与Modicon系统相兼容的Modbus通讯规约.

    二,EDA9033E模块MODBUS-ASCII通讯协议说明
    1,EDA9033E模块MODBUS-ASCII协议中每个字节的位:
    1个起始位
    8个数据位,最小的有效位先发送
    无奇偶校验位
    1个停止位
    错误检测域:
    LRC(纵向冗长检测)

    2,EDA9033E模块MODBUS-ASCII协议中的通讯波特率:1200,2400,4800,9600,19200BPS.
    模块的通讯波特率及地址改变可由公司提供的"EDA90系列模块测试软件"来进行设置,或根据通讯协议来进行设置.

    3,EDA9033E模块MODBUS协议中的功能域代码:
    功能码
    含义
    功能
    03
    读保持寄存器
    读测量数据
    06
    预置单寄存器
    设置通讯地址,波特率,电压,电流变比
    10
    预置多寄存器
    设置电能底数
    4,EDA9033E模块MODBUS-ASCII协议格式:
    上位机发送:
    : 单元地址 功能码 起始地址 读取点数 LRC校验 CR LF
    下位机响应:
    : 单元地址 功能码 字节数 数据 LRC校验 CR LF
    命令格式:
    呼叫 :AA FF SSSS NNNN LL
    应答 :AA FF XX HHHH..... LL
    其中: : 为起始符
    AA 模块地址
    FF 功能号
    SSSS 起始通道
    NNNN 通道数
    XX 数据字节长度
    HHHH 数据字节
    LL 校验和
    回车
    换行
    5,功能码03:读保持寄存器,读测量数据
    数据起始地址: 00~1E
    数据长度: 1~0C ,超出范围无效; 数据起始地址+数据长度 不大于1F,超过范围命令无效.
    说明: 读取的是16位数据,高位在前,低位在后.
    数据定义: 见功能码与数据对照表1.
    例1,读测量数据:
    命令: : 01 03 00 00 00 02 LRC 17字节
    ADDR 功能 开始地址 寄存器个数 LRC校验
    响应: : 01 03 04 64 05 01 01 LRC 19字节
    ADDR 功能 数据字节长度 U0 I0 UBB IBB LRC校验

    6,功能码06:预置单寄存器,设置通讯地址,波特率,电压,电流变比
    数据起始地址: 0000或0001
    数据长度: 01 , 不等于01命令无效.
    说明: 设置模块通讯地址,波特率或设置模块电压,电流变比.
    数据定义:见功能码与数据对照表2.
    例2,预置模块通讯地址,波特率(将1号模块地址设置为2号,波特率为9600BPS)
    命令: : 01 06 0000 0001 02 02 06 LRC
    ADDR 功能 开始地址 寄存器个数 字节计数 预置数据 LRC校验
    响应: : 01 06 0000 0001 LRC
    ADDR 功能 开始地址 寄存器个数 LRC校验
    例3,预置电压,电流变比(将1号模块的电压变比设置为60,电流变比设置为20)
    命令: : 01 06 0001 0001 02 3C 14 LRC
    ADDR 功能 开始地址 寄存器个数 字节计数 预置数据 LRC校验
    响应: : 01 06 0001 0001 LRC
    ADDR 功能 开始地址 寄存器个数 LRC校验
    7,功能码10:预置多寄存器,设置电能底数
    数据起始地址: 0000
    数据长度: 0C , 不等于0C命令无效.
    说明: 预置电能底数
    数据定义:见功能码与数据对照表3.
    例4,预置电能底数
    命令: : 01 10 00 00 00 0C 18 (DATA 24*2字节) LRC
    ADDR 功能 开始地址 寄存器个数 字节计数 预置数据 LRC校验
    响应: : 01 10 00 00 00 0C LRC
    ADDR 功能 开始地址 寄存器个数 LRC校验
    三,EDA9033E模块MODBUS-RTU通讯协议说明
    代码系统:
    8位二进制,十六进制数0...9,A...F.每个8位的信息域中包含2个十六进制字符.
    2,EDA9033E模块MODBUS-RTU协议中每个字节的位:
    1个起始位
    8个数据位,最小的有效位先发送
    无奇偶校验位
    2个停止位
    错误检测域:
    CRC(循环冗长检测)
    3,EDA9033E模块MODBUS-RTU协议中的通讯波特率:1200,2400,4800,9600,19200BPS.
    模块的通讯波特率及地址改变可由公司提供的"EDA90系列模块测试软件"来进行设置,或根据通讯协议来进行设置.
    4,EDA9033E模块MODBUS协议中的功能域代码:
    功能码
    含义
    功能
    03
    读保持寄存器
    读测量数据
    06
    预置单寄存器
    设置通讯地址,波特率,电压,电流变比
    10
    预置多寄存器
    设置电能底数

    MODBUS-RTU的帧结构:
    在RTU模式中,新的信息总是以至少3.5个字符的静默时间开始.紧接着传送第一个域:设备地址.
    整帧的信息必须以一个连续的数据流进行传输.如果信息结束前存在超过1.5个字符以上的间隔时间,则出错.
    一帧信息的标准结构如下:
    开始 地址域 功能域 数据域 CRC校验 结束
    T1-T2-T3-T4 8位 8位 n*8位 16位 T1-T2-T3-T4
    地址域: 从机的有效地址范围为0~247 ,0为广播地址
    功能域: 有效编码为1~255
    数据域: 数据域由多组这样的数据构成:两个十六进制数为一组,范围在00-FF之间.这些数据产生于一个RTU字符.
    主机发给从机的数据域中包括了从机完成功能域的动作时必须的附加信息.可能包括这样一些项目,
    如:数字寄存器和保持寄存器地址,将要处理的项目数量,和实际的数据字节数.
    例如:主机要求从机读一组保持寄存器,数据域就指定了起始寄存器,需要读多少个寄存器;
    如果主机要向从机中的一组寄存器写入数值,数据域就规定了起始寄存器,要向多少个寄存器写入数据,数据字节数,以及写入寄存器什么样的数据.
    CRC校验: CRC生成后,低字节在前,高字节在后.
    6,功能码03:读保持寄存器,读测量数据
    数据起始地址: 0000~001E
    数据长度: 0001~000C ,超出范围无效; 数据起始地址+数据长度 不大于1F,超过范围命令无效.
    说明: 读取的是16位数据,高位在前,低位在后.
    数据定义: 见功能码与数据对照表1.
    例1,读测量数据:
    命令: 01 03 00 00 00 02 CRC 8字节
    ADDR 功能 开始地址 寄存器个数 CRC校验
    响应: 01 03 04 64 05 01 01 CRC 9字节
    ADDR 功能 字节计数 U0 I0 UBB IBB CRC校验
    7,功能码06:预置单寄存器,设置通讯地址,波特率,电压,电流变比
    数据起始地址: 00 00或00 01
    数据长度: 01 , 不等于01命令无效.
    说明: 设置模块通讯地址,波特率或设置模块电压,电流变比.
    数据定义:见功能码与数据对照表2.
    例2,预置模块通讯地址,波特率(将1号模块地址设置为2号,波特率为9600BPS)
    命令: 01 06 00 00 00 01 02 02 06 CRC
    ADDR 功能 开始地址 寄存器个数 字节计数 预置数据 CRC校验
    响应: 01 06 00 00 00 01 CRC
    ADDR 功能 开始地址 寄存器个数 CRC校验
    例3,预置电压,电流变比(将1号模块的电压变比设置为60,电流变比设置为20)
    命令: 01 06 00 01 00 01 02 3C 14 CRC
    ADDR 功能 开始地址 寄存器个数 字节计数 预置数据 CRC校验
    响应: 01 06 00 01 00 01 CRC
    ADDR 功能 开始地址 寄存器个数 CRC校验
    8,功能码10:预置多寄存器,设置电能底数
    数据起始地址: 0000
    数据长度: 0C , 不等于0C命令无效.
    说明: 预置电能底数
    数据定义:见功能码与数据对照表3.
    例4,预置电能底数
    命令: 01 10 0000 000C 18 (DATA 24字节) CRC
    ADDR 功能 开始地址 寄存器个数 字节计数 预置数据 CRC校验
    响应: 01 10 0000 000C CRC
    ADDR 功能 开始地址 寄存器个数 CRC校验
    四,EDA9033E模块MODBUS协议的功能码与所对应的数据表
    表1:功能码03H与数据对照表:
    地址
    数据内容
    数据说明
    0000
    U0,I0
    高8位数据*2后为电压量程,低8位为电流量程
    0001
    UBB,IBB
    高8位为电压变比,低8位为电流变比
    0002
    UA
    A相电压
    0003
    IA
    A相电流
    0004
    UB
    B相电压
    0005
    IB
    B相电流
    0006
    UC
    C相电压
    0007
    IC
    C相电流
    0008
    P
    总有功功率
    0009
    Q
    总无功功率
    000A
    COS
    总功率因数
    000B
    PA
    A相有功功率
    000C
    PB
    B相有功功率
    000D
    PC
    C相有功功率
    000E
    QA
    A相无功功率
    000F
    QB
    B相无功功率
    0010
    QC
    C相无功功率
    0011
    F
    频率
    0012
    正向有功总电能
    正向有功总电能48位计数器高16位
    0013
    正向有功总电能48位计数器中16位
    0014
    正向有功总电能48位计数器低16位
    0015
    反向有功总电能
    反向有功总电能48位计数器高16位
    0016
    反向有功总电能48位计数器中16位
    0017
    反向有功总电能48位计数器低16位
    0018
    正向无功总电能
    正向无功总电能48位计数器高16位
    0019
    正向无功总电能48位计数器中16位
    001A
    正向无功总电能48位计数器低16位
    001B
    反向无功总电能
    反向无功总电能48位计数器高16位
    001C
    反向无功总电能48位计数器中16位
    001D
    反向无功总电能48位计数器低16位
    001E
    S
    总视在功率

    表2:功能码06H与数据对照表.
    地址
    数据内容
    数据说明
    0000
    ADDR,BPS
    高8位为模块通讯地址,地址范围为01~F7H;低8位为通讯波特率,数值为03~07H,表示1200~19200BPS
    0001
    UBB,IBB
    高8位为电压变比,低8位为电流变比
    表3:功能码10H与数据对照表.
    地址
    数据内容
    数据说明
    0000
    正向有功总电能
    正向有功总电能48位计数器高16位
    0001
    正向有功总电能48位计数器中16位
    0002
    正向有功总电能48位计数器低16位
    0003
    反向有功总电能
    反向有功总电能48位计数器高16位
    0004
    反向有功总电能48位计数器中16位
    0005
    反向有功总电能48位计数器低16位
    0006
    正向无功总电能
    正向无功总电能48位计数器高16位
    0007
    正向无功总电能48位计数器中16位
    0008
    正向无功总电能48位计数器低16位
    0009
    反向无功总电能
    反向无功总电能48位计数器高16位
    000A
    反向无功总电能48位计数器中16位
    000B
    反向无功总电能48位计数器低16位
    五,EDA9033E模块的数据计算
    1,UA,IA,UB,IB,UC,IC,P,Q,COS,PA,PB,PC,QA,QB,QC,共15个参数.每个参数为2字节(16位) 十六进制数据,高字节在前低字节在后;标称满量程值为10000(2710H).其中P,Q,COS,PA,PB,PC,QA,QB,QC等 9个参数为有符号数,其最高位(BIT15)为符号位,1为负,0为正;计算时,先取出符号位(即判断最高位作为此参数的符号,然后将最高位置为0)后再计算.
    各个参数的含义及计算公式如下:(以下带符号位的取出符号位)
    (UA): A相电压值. 实际值=(UA)/10000*(U0)*(UBB) V
    (UB): B相电压值. 实际值=(UB)/10000*(U0)*(UBB) V
    (UC): C相电压值. 实际值=(UC)/10000*(U0)*(UBB) V
    (IA): A相电流值. 实际值=(IA)/10000*(I0)*(IBB) A
    (IB): B相电流值. 实际值=(IB)/10000*(I0)*(IBB) A
    (IC): C相电流值. 实际值=(IC)/10000*(I0)*(IBB) A
    (P): 总有功功率值. 实际值= +(P)/10000*3*(U0)*(I0)*(UBB)*(IBB) W
    (Q): 总无功功率值. 实际值= +(Q)/10000*3*(U0)*(I0)*(UBB)*(IBB) Var
    (COSФ):总功率因数值.实际值= +(COSФ)/10000 PF
    (PA): A相有功功率值. 实际值= +(PA)/10000*(U0)*(I0)*(UBB)*(IBB) W
    (PB): B相有功功率值. 实际值= +(PB)/10000*(U0)*(I0)*(UBB)*(IBB) W
    (PC): C相有功功率值. 实际值= +(PC)/10000*(U0)*(I0)*(UBB)*(IBB) W
    (QA): A相无功功率值. 实际值= +(QA)/10000*(U0)*(I0)*(UBB)*(IBB) Var
    (QB): B相无功功率值. 实际值= +(QB)/10000*(U0)*(I0)*(UBB)*(IBB) Var
    (QC): C相无功功率值. 实际值= +(QC)/10000*(U0)*(I0)*(UBB)*(IBB) Var
    (F): 频率值. 实际值=(F)/100 Hz 为线电压UAB的频率
    2,正向有功总电能,反向有功总电能,正向无功总电量,反向无功总电量 ,共24个字节,4个参数. 每个参数为6字节(48位)十六进制数.
    (正向有功总电能):实际值=(正向有功总电能)/(10000/9)*(U0)*(I0)*(UBB)*(IBB)/3000/3600 度
    (反向有功总电能):实际值=(反向有功总电能)/(10000/9)*(U0)*(I0)*(UBB)*(IBB)/3000/3600 度
    (正向无功总电量):实际值=(正向无功总电量)/(10000/9)*(U0)*(I0)*(UBB)*(IBB)/3000/3600 度
    (反向无功总电量):实际值=(反向无功总电量)/(10000/9)*(U0)*(I0)*(UBB)*(IBB)/3000/3600 度
    (有功总电能)=(正向有功总电能)-(反向有功总电能)
    (无功总电能)=(正向无功总电能)-(反向无功总电能)

    3,配置电量底数时输出电能的计算
    每个参数为6字节(48位)十六进制数,各个参数的含义及计算如下:
    (正向有功总电能): = 正向有功总电能实际值(度) *3000*3600/(U0)/(I0)/(UBB)/(IBB)*(10000/9)
    (反向有功总电能): = 反向有功总电能实际值(度) *3000*3600/(U0)/(I0)/(UBB)/(IBB)*(10000/9)
    (正向无功总电量): = 正向无功总电量实际值(度) *3000*3600/(U0)/(I0)/(UBB)/(IBB)*(10000/9)
    (反向无功总电量): = 反向无功总电量实际值(度) *3000*3600/(U0)/(I0)/(UBB)/(IBB)*(10000/9)
    六,MODBUS通讯规约介绍
    (一)MODBUS通讯规约简介
    Modbus 协议是应用于电子控制器上的一种通用语言.通过此协议,控制器相互之间,控制器经由网络(例如以太网)和其它设备之间可以通信.它已经成为一通用工业标准.有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控.
    此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的.它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录.它制定了消息域格局和内容的公共格式.
    当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动.如果需要回应,控制器将生成反馈信息并用Modbus协议发出.在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构.这种转换也扩展了根据具体的网络解决节地址,路由路径及错误检测的方法.
    1,在Modbus网络上传输
    标准的Modbus口是使用一RS-232C兼容串行接口,它定义了连接口的针脚,电缆,信号位,传输波特率,奇偶校验.控制器能直接或经由Modem组网.
    控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询).其它设备(从设备)根据主设备查询提供的数据作出相应反应.典型的主设备:主机和可编程仪表.典型的从设备:可编程控制器.
    主设备可单独和从设备通信,也能以广播方式和所有从设备通信.如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应.Modbus协议建立了主设备查询的格式:设备(或广播)地址,功能代码,所有要发送的数据,一错误检测域.
    从设备回应消息也由Modbus协议构成,包括确认要行动的域,任何要返回的数据,和一错误检测域.如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去.
    (二)MODBUS的两种传输方式
    控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus网络通信.用户选择想要的模式,包括串口通信参数(波特率,校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数.
    ASCII模式
    :
    地址
    功能代码
    数据数量
    数据1

    数据n
    LRC高字节
    LRC低字节
    回车
    换行
    RTU模式
    地址
    功能代码
    数据数量
    数据1

    数据n
    CRC高字节
    CRC低字节
    所选的ASCII或RTU方式仅适用于标准的Modbus网络,它定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何解码.
    1,ASCII模式
    当控制器设为在Modbus网络上以ASCII(美国标准信息交换代码)模式通信,在消息中的每个8Bit字节都作为两个ASCII字符发送.这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误.
    代码系统:
    十六进制,ASCII字符0~9,A~F
    消息中的每个ASCII字符都是一个十六进制字符组成
    每个字节的位:
    1个起始位
    7个数据位,最小的有效位先发送
    1个奇偶校验位,无校验则无
    1个停止位(有校验时),2个Bit(无校验时)
    错误检测域:
    LRC(纵向冗长检测)
    2,RTU模式
    当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符.这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据.
    代码系统
    8位二进制,十六进制数0...9,A...F
    消息中的每个8位域都是一个字节的两个十六进制字符组成
    每个字节的位
    1个起始位
    8个数据位,最小的有效位先发送
    1个奇偶校验位,无校验则无
    1个停止位(有校验时),2个Bit(无校验时)
    错误检测域
    CRC循环冗长检测
    (三)Modbus消息帧
    两种传输模式中(ASCII或RTU),传输设备以将Modbus消息转为有起点和终点的帧,这就允许接收的设备在消息起始处开始工作,读地址分配信息,判断哪一个设备被选中(广播方式则传给所有设备),判知何时信息已完成.部分的消息也能侦测到并且错误能设置为返回结果.
    1,ASCII帧
    使用ASCII模式,消息以冒号(:)字符(ASCII码 3AH)开始,以回车换行符结束(ASCII码 0DH,0AH).
    其它域可以使用的传输字符是十六进制的0...9,A...F.网络上的设备不断侦测":"字符,当有一个冒号接收到时,每个设备都解码下个域(地址域)来判断是否发给自己的.
    消息中字符间发送的时间间隔最长不能超过1秒,否则接收的设备将认为传输错误.一个典型消息帧如下所示:
    起始位
    设备地址
    功能代码
    数据
    LRC校验
    结束符
    1个字符
    2个字符
    2个字符
    n个字符
    2个字符
    2个字符
    2,RTU帧
    使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始.在网络波特率下多样的字符时间,这是最容易实现的(如下图的T1-T2-T3-T4所示).传输的第一个域是设备地址.可以使用的传输字符是十六进制的0...9,A...F.网络设备不断侦测网络总线,包括停顿间隔时间内.当第一个域(地址域)接收到,每个设备都进行解码以判断是否发往自己的.在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束.一个新的消息可在此停顿后开始.
    整个消息帧必须作为一连续的流传输.如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域.同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续.这将导致一个错误,因为在最后的CRC域的值不可能是正确的.一典型的消息帧如下所示:
    起始位
    设备地址
    功能代码
    数据
    CRC校验
    结束符
    T1-T2-T3-T4
    8Bit
    8Bit
    n个8Bit
    16Bit
    T1-T2-T3-T4
    3,地址域
    消息帧的地址域包含两个字符(ASCII)或8Bit(RTU).可能的从设备地址是0...247 (十进制).单个设备的地址范围是1...247.主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备.当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应.
    地址0是用作广播地址,以使所有的从设备都能认识.当Modbus协议用于更高水准的网络,广播可能不允许或以其它方式代替.
    4,如何处理功能域
    消息帧中的功能代码域包含了两个字符(ASCII)或8Bits(RTU).可能的代码范围是十进制的1...255.当然,有些代码是适用于所有控制器,有些是应用于某种控制器,还有些保留以备后用.
    当消息从主设备发往从设备时,功能代码域将告之从设备需要执行哪些行为.例如去读取输入的开关状态,读一组寄存器的数据内容,读从设备的诊断状态,允许调入,记录,校验在从设备中的程序等.
    当从设备回应时,它使用功能代码域来指示是正常回应(无误)还是有某种错误发生(称作异议回应).对正常回应,从设备仅回应相应的功能代码.对异议回应,从设备返回一等同于正常代码的代码,但最重要的位置为逻辑1.
    例如:一从主设备发往从设备的消息要求读一组保持寄存器,将产生如下功能代码:
    0 0 0 0 0 0 1 1 (十六进制03H)
    对正常回应,从设备仅回应同样的功能代码.对异议回应,它返回:
    1 0 0 0 0 0 1 1 (十六进制83H)
    除功能代码因异议错误作了修改外,从设备将一独特的代码放到回应消息的数据域中,这能告诉主设备发生了什么错误.
    主设备应用程序得到异议的回应后,典型的处理过程是重发消息,或者诊断发给从设备的消息并报告给操作员.
    5,数据域
    数据域是由两个十六进制数集合构成的,范围00...FF.根据网络传输模式,这可以是由一对ASCII字符组成或由一RTU字符组成.
    从主设备发给从设备消息的数据域包含附加的信息:从设备必须用于进行执行由功能代码所定义的所为.这包括了象不连续的寄存器地址,要处理项的数目,域中实际数据字节数.
    例如,如果主设备需要从设备读取一组保持寄存器(功能代码03),数据域指定了起始寄存器以及要读的寄存器数量.如果主设备写一组从设备的寄存器(功能代码10十六进制),数据域则指明了要写的起始寄存器以及要写的寄存器数量,数据域的数据字节数,要写入寄存器的数据.
    如果没有错误发生,从从设备返回的数据域包含请求的数据.如果有错误发生,此域包含一异议代码,主设备应用程序可以用来判断采取下一步行动.
    在某种消息中数据域可以是不存在的(0长度).例如,主设备要求从设备回应通信事件记录(功能代码0B十六进制),从设备不需任何附加的信息.
    6,错误检测域
    标准的Modbus网络有两种错误检测方法.错误检测域的内容视所选的检测方法而定.
    ASCII
    当选用ASCII模式作字符帧,错误检测域包含两个ASCII字符.这是使用LRC(纵向冗长检测)方法对消息内容计算得出的,不包括开始的冒号符及回车换行符.LRC字符附加在回车换行符前面.
    RTU
    当选用RTU模式作字符帧,错误检测域包含一16Bits值(用两个8位的字符来实现).错误检测域的内容是通过对消息内容进行循环冗长检测方法得出的.CRC域附加在消息的最后,添加时先是低字节然后是高字节.故CRC的高位字节是发送消息的最后一个字节.
    7,字符的连续传输
    当消息在标准的Modbus系列网络传输时,每个字符或字节以如下方式发送(从左到右):
    最低有效位...最高有效位
    使用ASCII字符帧时,位的序列是:
    有奇偶校验
    起始位
    1
    2
    3
    4
    5
    6
    7
    奇偶位
    停止位
    无奇偶校验
    起始位
    1
    2
    3
    4
    5
    6
    7
    停止位
    停止位
    使用RTU字符帧时,位的序列是:
    有奇偶校验
    起始位
    1
    2
    3
    4
    5
    6
    7
    8
    奇偶位
    停止位
    无奇偶校验
    起始位
    1
    2
    3
    4
    5
    6
    7
    8
    停止位
    停止位
    (四)MODBUS通讯错误检测方法
    标准的Modbus串行网络采用两种错误检测方法.奇偶校验对每个字符都可用,帧检测(LRC或CRC)应用于整个消息.它们都是在消息发送前由主设备产生的,从设备在接收过程中检测每个字符和整个消息帧.
    用户要给主设备配置一预先定义的超时时间间隔,这个时间间隔要足够长,以使任何从设备都能作为正常反应.如果从设备测到一传输错误,消息将不会接收,也不会向主设备作出回应.这样超时事件将触发主设备来处理错误.发往不存在的从设备的地址也会产生超时.
    1,奇偶校验
    用户可以配置控制器是奇或偶校验,或无校验.这将决定了每个字符中的奇偶校验位是如何设置的.
    如果指定了奇或偶校验,"1"的位数将算到每个字符的位数中(ASCII模式7个数据位,RTU中8个数据位).例如RTU字符帧中包含以下8个数据位:
    1 1 0 0 0 1 0 1
    整个"1"的数目是4个.如果使用了偶校验,帧的奇偶校验位将是0,使得整个"1"的个数仍是4个.如果使用了奇校验,帧的奇偶校验位将是1,使得整个"1"的个数是5个.
    如果没有指定奇偶校验位,传输时就没有校验位,也不进行校验检测.代替一附加的停止位填充至要传输的字符帧中.
    2,LRC检测
    使用ASCII模式,消息包括了一基于LRC方法的错误检测域.LRC域检测了消息域中除开始的冒号及结束的回车换行号外的内容.
    LRC域是一个包含一个8位二进制值的字节.LRC值由传输设备来计算并放到消息帧中,接收设备在接收消息的过程中计算LRC,并将它和接收到消息中LRC域中的值比较,如果两值不等,说明有错误.
    LRC方法是将消息中的8Bit的字节连续累加,丢弃了进位.
    3,CRC检测
    使用RTU模式,消息包括了一基于CRC方法的错误检测域.CRC域检测了整个消息的内容.
    CRC域是两个字节,包含一16位的二进制值.它由传输设备计算后加入到消息中.接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误.
    CRC是先调入一值是全"1"的16位寄存器,然后调用一过程将消息中连续的8位字节各当前寄存器中的值进行处理.仅每个字符中的8Bit数据对CRC有效,起始位和停止位以及奇偶校验位均无效.
    CRC产生过程中,每个8位字符都单独和寄存器内容相异或(XOR),结果向最低有效位方向移动,最高有效位以0填充.LSB被提取出来检测,如果LSB为1,寄存器单独和预置的值(A001H)异或一下,如果LSB为0,则不进行.整个过程要重复8次.在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相异或.最终寄存器中的值,是消息中所有的字节都执行之后的CRC值.
    CRC添加到消息中时,低字节先加入,然后高字节.
    EDA9033E 智能三相电参数数据综合采集模块订购指南
    欢迎使用山东力创科技有限公司的产品.
    在您选用EDA9033E模块前,请先根据系统要求确定:
    通讯接口,供电电源,电压,电流量程,通讯协议等参数.
    模块按通讯接口不同有: RS-485,RS-232,串口TTL电平.
    可选供电电源有:+5V,+8~30V,AC60~265V .
    可选电压量程(相电压)有:10V,20V,50V,60V,100V,200V,250V,300V,400V,500V等.
    可选电流量程有:1A,2A,3A,5A,10A,20A,(50A,100A,200A,500A,1000A)等.
    可选通讯协议规约4种:(ASCII码)研华ADAM兼容通讯协议,十六进制LC-02协议,MODBUS-ASCII,MODBUS-RTU.
    ASCII码格式数据便于计算机编程.如果您的终端是单片机系统,LC-02协议则更适合.
    您若购买EDA90系列模块,还可选用本公司的EDA系列RS-232/RS-485转换器.
    EDA9033E模块的测量电压Ua Ub Uc都是相电压(每相对UGND端的电压),因此,在110V线路中,可选电压量程为60V或100V的模块;在380V线路中,可选电压量程为250V的模块;在660V线路中,可选电压量程为500V(或400V)的模块.正确选择量程可保证测量的精度.
    因电压测量为电阻分压输入,小于满量程十分之一的输入电压不能保证其精度,一般应用中,电压的动态范围都较小,本模块可完全满足要求.
    电流为高精度穿心式互感输入,在满量程百分之一的输入动态范围下,可保证其测量精度.
    力创科技产品系列之-------EDA9033E智能三相电参数数据综合采集模块
    http://www.sdlckj.com E-mail:lwlckj@163.com Tel: 0634-6251390/1/2 Fax:0634-6251399 第 页
  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 DOC格式下载
  • 您可能感兴趣的
  • 考研模电数电电路试题  数电模电视频教程下载  关于模电数电笔试题  模电数电  数电模电课本  模电数电基础知识  模电数电题答案  模电数电基教学视频  清华大学数电模电考试