CHITICRS485通讯柴明军.docx
- 文档编号:5616639
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:18
- 大小:23.59KB
CHITICRS485通讯柴明军.docx
《CHITICRS485通讯柴明军.docx》由会员分享,可在线阅读,更多相关《CHITICRS485通讯柴明军.docx(18页珍藏版)》请在冰豆网上搜索。
CHITICRS485通讯柴明军
MODBUS-485通讯
江山
1、现场设备地址、波特率、数据位、停止位和奇偶校验方式等参数设置与组态软件设置保持一致。
2、为保证现场设备支持MODBUS-485通讯协议,一般设备接入系统前需先用“串口调试软件”测试,由软件发送请求数据,看设备能否返回数据,返回数据是否正确等;一切正常后再接入系统,进行系统检查、调试。
3、串口调试软件中参数设置与现场设备设置一致,且端口地址(COM1、COM2...)与实际接入一致,如不确定是哪一个可以一个个试通讯,一般主机有两个串口,COM1不通即试COM2.
4、串口调试软件中发送数据格式由设备厂家提供,主要是提供功能码,具体格式附文本最后,参考。
5、现场设备(如多功能数显表、流量计等支持MODBUS-485通讯协议)的MODBUS地址需设备厂家提供;MODBUS地址即具体电量参数的读取地址,一般为十六进制,如电流地址为0130H。
6、软件设置中,新建设备的设备地址必须与现场设备的地址一致;如某数显表表头设置设备地址为2,则软件设置中该数显表设备地址必须为2才能实现通讯。
7、新建设备的端口地址(COM1、COM2等)必须与服务器端口地址一致;如软件设置中设备地址为2的多功能数显表的端口设为COM1,则设备2数显表的485两线需连接在串行通讯模板(串口管理服务器)的COM1端口,若接入其他端口则系统无法与数显表2实现通讯。
8、变量的寄存器地址由设备厂家提供的十六进制MODBUS地址转换而来,如电流的地址为0130H,则该设备中电流的寄存器地址为304。
9、功能码必须设置正确,其由设备厂家提供,如读取数据为03H,写入数据为06H;数据库(符号表)中新建变量时,读取还是写入功能码必须填写正确(有些软件有单独的功能码填写区);CHITIC软件中读取数据直接在寄存器地址中设置,读取数据一般用3或4,实际用4更多一些,即定义该变量时直接在其实际寄存器地址前加4即可,如读取某设备电流信号(0130H),0130H转换为十进制为304,则CHITIC总定义时其寄存器地址为4304。
10、因其他协议地址均从0开始,而MODBUS地址从1开始(1~65535),因此变量定义时参数寄存器地址一般为“十六进制直接转换而来的十进制+1”,如电流0130H在CHITIC中变量定时时,其寄存器地址为304+1=305,前面再加保持寄存器(读取)代码4,即最终写入的寄存器地址为4305.
11、某些MODBUS地址与设备厂家具体设定有关,参数寄存器地址也有些需要在“十六进制转换十进制后—1”,即0130H对应十进制为304,但软件读取时为303,前面加上保持寄存器(读取)代码4,最终写入的寄存器地址为4303.
12、软件设置中寄存器类型一般对数据影响不大,但当选择FLOAT类型时,需要注明数据解析格式,即在寄存器地址后加“,0”或“,1”或“,2”或“,3”逗号为英文格式,具体是加0、1、2、3中哪个数字可以只定义一个变量,分别在寄存器后添加0、1、2、3,编译下装后哪个数据显示正确则即为添加哪一个数字。
13、当选择INT等其他寄存器类型时不需要在寄存器地址后添加数据解析格式。
14、最终所需数据一般需要直接读取数据(Rx)进行换算后得出,具体换算公式由设备厂家提供。
附:
MODBUS通讯协议规约(设备厂家提供,参考)
通讯规约
15、1、规约简述Modbus通讯规约被广泛的作为系统集成的标准。
当通讯命令发送至仪器时,符合相应地址码的设备接收通讯命令,读取信息,如果没有出错则执行相应的任务,然后把执行结果返送给发送者;如果出错则返送错误报告信息(CRC16校验码出错则不返送任何信息)或者不返送任何信息。
其通讯数据帧格式如下:
16、地址码
17、功能码
18、数据区
19、校验码
20、8位
21、8位
22、N×8位
23、16位CRC
地址码:
地址码是信息帧的第一个字节(8位),从0到255。
这个字节表明由用户设置地址的从机将接收由主机发送来的信息。
每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能相应回送。
当从机回送信息时,相应的地址码表明该信息来自于相应地址的从机。
功能码:
主机发送的功能码告诉从机执行怎么样的任务,从机的功能码则表明从机响应主机相应任务进行了操作。
Modbus通讯规约定义的功能码为01H到7FH,网络电力仪表使用了其中一部分功能码。
下表列出了所用到的功能码的具体含义及操作。
代码(Hex)
含义
操作
03H
读取数据
读取指定寄存器开始的一个或多个数据
06H
写单个寄存器
把设置的单个数值写入指定的寄存器
10H
写多个寄存器
把设置的数值写入指定的连续寄存器
注:
如果从机发送的功能码的最高位是1(功能码>127),则表明从机没有响应操作或发送出错。
数据区:
数据区是根据不同的功能码而不同。
数据区可以是实际数值,设置点,主机发送给从机或从机发送给主机的地址。
数据区包含需要从机执行什么动作或由从机采集的返送信息,这些信息可以是数值、参考地址等等。
例如,功能码告诉从机读取寄存器的值,则数据区必须包含要读取的寄存器的起始地址及读取长度。
如果功能码告诉从机设置某些连续寄存器的值,则数据区还要包含这些数值。
对于不同的从机,地址和数据信息可能都不相同。
校验码:
校验码可用于主机或从机判断接受信息是否出错。
有时由于电子噪音或其它一些干扰,信息在传输过程中会发生细微的变化,这时自己根据信息计算所得的检验码与信息中包含的校验码就会不一致,从而判断接受信息出错。
校验码保证了主机或从机对在传送中出错的信息不起作用,增加了系统的安全和效率。
校验码采用CRC-16校验方法。
计算CRC码的步骤为:
(1).预置16位寄存器为FFFFH。
称此寄存器为CRC寄存器;
(2).把第一个8位数据与CRC寄存器的低位相异或,把结果放于CRC寄存器;
(3).把寄存器的内容右移一位(朝低位),用0填补最高位,检查最低位;
(4).如果最低位为0:
重复第3步(再次移位)如果最低位为1:
CRC寄存器与多项式A001(1010000000000001)进行异或;
(5).重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理;
(6).重复步骤2到步骤5,进行下一个8位数据的处理;
(7).最后得到的CRC寄存器即为CRC码。
(CRC码=CRC_L+CRC_H)
出错返送:
从主机接收到的信息如有CRC错误,则将被忽略。
从机返送的错误码的格式如下:
地址码:
1字节功能码:
1字节(最高位为1)
错误码:
1字节CRC码:
2字节
响应回送如下出错命令。
01–非法的功能码。
接收到的功能码XX-XXXX表不支持。
02–非法的数据位置。
指定的数据位置超出XX-XXXX表的范围。
03–非法的数据值。
接收到主机发送的数据值超出相应地址的数据范围。
2、通讯说明
2.1信息帧举例:
假设从机地址为01,起始地址为0002的3个寄存器内数据如下
地址
数据
0002
0004
0006
000A
020B
125C
功能码03H读取寄存器
04030130000185AC
(从机地址)(功能码)(起始地址)(读取长度/点数)(CRC校验码)
主机发送
字节数
举例
从机地址
功能码
起始地址
读取点数
CRC码
1
1
2
2
2
01发送至从机01
03读取寄存器
00起始地址为0002
02
00读取3个寄存器
03共6字节
A4由主机计算的CRC码
0B
04(从机地址)03(读取)0130(起始地址)0001(读取长度/点数)85AC(CRC校验码)
从机响应
字节数
举例
从机地址
功能码
读取字
寄存器地址1
寄存器地址2
寄存器地址3
CRC码
1
1
1
2
2
2
2
01发送至从机01
03读取寄存器
063个寄存器共6字节
00地址0002中的数据
0A
02地址0004中的数据
0B
12地址0006中的数据
5C
C5从机计算的CRC码
97
从机寄存器内数据不发生变化。
功能码06设置单个寄存器
主机发送
字节数
举例
从机地址
功能码
起始地址
保存数据
CRC码
1
1
2
2
2
01发送至从机01
06单点保存
00起始地址为0002
02
00保存数据0002
02
A9由主机计算的CRC码
CB
从机响应
字节数
举例
从机地址
功能码
起始地址
保存数据
CRC码
1
1
2
2
2
01发送至从机01
06单点保存
00起始地址为0002
02
00保存数据0002
02
A9由从机计算的CRC码
CB
从机响应这条命令并且执行后,它寄存器0002内数据就会替换为主机发送过去的保存数据。
这时从机中起始地址为0002的寄存器内数据改变如下表所列:
地址
数据
0002
0004
0006
0002
020B
125C
功能码10H写数据到连续寄存器
主机发送
字节数
举例
从机地址
功能码
起始地址
数据长度
字节数
数据1
数据2
数据3
CRC码
1
1
2
2
1
2
2
2
2
01发送至从机01
10多点保存
00起始地址为0002
02
00保存3点(6字节)
03
066字节
00数据地址0002
64
23数据地址0004
04
55数据地址0006
55
BF由主机计算的CRC码
94
从机响应
字节数
举例
从机地址
功能码
起始地址
保存数据数
CRC码
1
1
2
2
2
01发送至从机01
10多点保存
00起始地址为0002
02
00保存3点(6字节)
03
A9由从机计算的CRC码
CB
从机响应命令,执行后数据变为下表:
地址
数据
0002
0004
0006
0064
2304
5555
2.2功能码读取电量参数
2.2.1模拟量和开关量设置举例
地址
基本电量
上限报警DO
模拟量输出AO
下线报警DO
设置值举例
读取值
0001H
A相电流(Ia)
1
129
5A=0500
0002H
B相电流(Ib)
2
130
5A=0500
0003H
C相电流(Ic)
3
131
5A=0500
0004H
三相平均电流(Iav)
4
132
无
0005H
A相相电压(Ua)*
5
133
220V=0220
0006H
B相相电压(Ub)*
6
134
220V=0220
0007H
C相相电压(Uc)*
7
135
220V=0220
0008H
三相平均电压(Uav)
8
136
220V=0220
0009H
AB相线相电压(Uab)**
9
137
无
000AH
BC相线相电压(Ubc)**
10
138
无
000BH
CA相线相电压(Uca)**
11
139
无
000CH
总有功功率(Psum)
12
140
3.3KW=0330
000DH
总无功功率(Qsum)
13
141
3.3KW=0330
000EH
总视在功率(Ssum)
14
142
3.3KW=0330
000FH
平均功率因数(Pfav)
15
143
1.0=0100
0010H
频率(F)
16
144
50Hz=0050
0011H
A相有功功率(Pc)
17
145
1.1KW=0110
0012H
A相无功功率(Qc)
18
146
1.1KW=0110
0013H
A相视在功率(Sc)
19
147
1.1KW=0110
0014H
A相功率因数(Pfc)
20
148
1.0=0100
0015H
B相有功功率(Pc)
21
149
1.1KW=0110
0016H
B相无功功率(Qc)
22
150
1.1KW=0110
0017H
B相视在功率(Sc)
23
151
1.1KW=0110
0018H
B相功率因数(Pfc)
24
152
1.0=0100
0019H
C相有功功率(Pc)
25
153
1.1KW=0110
001AH
C相无功功率(Qc)
26
154
1.1KW=0110
001BH
C相视在功率(Sc)
27
155
1.1KW=0110
001CH
C相功率因数(Pfc)
28
156
1.0=0100
0021H
正向有功电能(高字)
0022H
正向有功电能(低字)
0023H
反向有功电能(高字)
0024H
反向有功电能(低字)
0025H
正无功电能(高字)
0026H
正无功电能(低字)
0027H
负无功电能(高字)
0028H
负无功电能(低字)
基本电量(Basic)
地址
项目
地址
项目
0001H
A相电流(Ia)
0019H
C相有功功率(Pc)
0002H
B相电流(Ib)
001AH
C相无功功率(Qc)
0003H
C相电流(Ic)
001BH
C相视在功率(Sc)
0004H
三相平均电流(Iav)
001CH
C相功率因数(Pfc)
0005H
A相相电压(Ua)*
0006H
B相相电压(Ub)*
0021H
正向有功电能(高字)
0007H
C相相电压(Uc)*
0022H
正向有功电能(低字)
0008H
三相平均电压(Uav)
0023H
反向有功电能(高字)
000CH
总有功功率(Psum)
0024H
反向有功电能(低字)
000DH
总无功功率(Qsum)
0025H
正无功电能(高字)
000EH
总视在功率(Ssum)
0026H
正无功电能(低字)
000FH
平均功率因数(Pfav)
0027H
负无功电能(高字)
0010H
频率(F)
0028H
负无功电能(低字)
0011H
A相有功功率(Pa)
0012H
A相无功功率(Qa)
0013H
A相视在功率(Sa)
0014H
A相功率因数(Pfa)
0015H
B相有功功率(Pb)
0016H
B相无功功率(Qb)
0017H
B相视在功率(Sb)
0018H
B相功率因数(Pfb)
03功能码读取系统参数:
2.2.203功能码读取系统参数/06功能码写系统参数
系统参数
地址
项目
字节数
选项
默认值
2500H
通讯地址(Adress)
2
1~254
1
2501H
波特率(Baud)
2
0:
1.2k1:
2.4k2:
4.8k3:
9.6k
3
2502H
数据格式
2
0:
无校验n811:
奇校验o812:
偶校验e81
0
2503H
接线方式(Wiremode)
2
0:
三相四线1:
三相三线
0
2504H
PT变比(PTRatio)
2
1~5000
1
2505H
CT变比(CTRatio)
2
1~2000
1
2506H
显示控制
2
0:
永远不关闭显示1:
60秒后关闭显示
0
2507H
电能清零允许
2
0:
禁止清零1:
允许清零
0
2508H
执行电能清零
2
1:
执行清零0:
不执行清零
1
2509H
系统密码
2
0~9999
9999
2517H
模拟量1类型
2
1~28,对应设置项,其它无效
1
2518H
模拟量1对应低端
2
0~9999
0000
2519H
模拟量1对应高端
2
0~9999
0100
251AH
模拟量1输出方式
2
0:
0-20mA1:
4-20mA2:
4-12-20mA
1
251BH
模拟量2类型
2
1~28,对应设置项,其它无效
0
251CH
模拟量2对应低端
2
0~9999
0000
251DH
模拟量2对应高端
2
0~9999
0100
251EH
模拟量2输出方式
2
0:
0-20mA1:
4-20mA2:
4-12-20mA
1
251FH
模拟量3类型
2
1~28,对应设置项,其它无效
0
2520H
模拟量3对应低端
2
0~9999
0000
2521H
模拟量3对应高端
2
0~9999
0100
2522H
模拟量3输出方式
2
0:
0-20mA1:
4-20mA2:
4-12-20mA
1
2527H
开关量1类型
2
0及其它:
常闭;128:
常开;1~28:
上限设置项;129~158:
下限设置项
0
2528H
开关量1门限
2
0~9999
0
2529H
开关量2类型
2
0及其它:
常闭;128:
常开;1~28:
上限设置项;129~158:
下限设置项
0
252AH
开关量2门限
2
0~9999
0
2.2.4数据转换
序号
项目
计算公式
正负
适用量
1
电压(V)
U=Rx×PT×0.02
0≤Rx≤65535
正
Ua,Ub,Uc,Uav
2
电流(A)
I=Rx×CT×0.0002
0≤Rx≤65535
正
Ia,Ib,Ic,Iav
3
频率(F)
F=Rx×0.02
0≤Rx≤65535
正
F
4
功率因数
Pf=Rx×0.0001
-10000≤Rx≤+10000
正负
Pfa,Pfb,Pfc,Pfs
5
有功功率
P=Rx×PT×CT×0.2
-32768≤Rx≤32767
正负
Pa,Pb,Pc,Psum
6
无功功率
Q=Rx×PT×CT×0.2
-32768≤Rx≤32767
正负
Qa,Qb,Qc,Qsum
7
视在功率
S=Rx×PT×CT×0.2
0≤Rx≤65535
正
Sa,Sb,Sc,Ssum
8
电能
W=Rx×10K(电能单位:
1WH)
ctXpt
K值
1~9
0
10~99
1
100~999
2
1000~9999
3
10000~99999
3
100000~999999
4
1000000~9999999
5
正
WH(正向、反向)
VarH(正、负)
1、Rx:
通过通讯读取的寄存器内容(读值);
2、PT:
电压互感器变比;
CT:
电流互感器变比;
3、电能单位:
1脉冲/瓦(乏)小时
!
所有电量数据采用16位,即二字节(1个字)格式;
电能数据采用32位,即四字节(2个字)格式;
!
!
所有读值均为16进制码,按上表计算后才能得到相应的工程量;
!
电压、电流、频率、视在功率、电能为无符号数;
功率因数、有功功率、无功功率为有符号数,读值(Rx)的最高位(Bit)为1时为负数,应取补码(所有位取反加1)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CHITICRS485通讯 柴明军 CHITICRS485 通讯