自动发电及机HT3000通信协议.docx
- 文档编号:23403678
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:20
- 大小:138.81KB
自动发电及机HT3000通信协议.docx
《自动发电及机HT3000通信协议.docx》由会员分享,可在线阅读,更多相关《自动发电及机HT3000通信协议.docx(20页珍藏版)》请在冰豆网上搜索。
自动发电及机HT3000通信协议
发电机组自动化控制器HT3000
通讯协议
目录
一、概述3
二、ModBus基本规则3
三、数据帧格式3
四、通信规约3
信息帧格式3
地址码3
功能码3
数据区(DATA)4
错误校验码(CRC)5
五、信息帧格式举例6
功能码01H6
功能码03H7
功能码05H7
出错处理8
六、地址和数据9
表1:
功能码01H所映射的开关量区9
表2:
功能码03H所映射的数据区11
表3:
功能码05H所映射的开关量区12
七、控制器与计算机连接图13
一、概述
本通讯协议详细描述了本机串行口通讯的读写命令格式及内部信息数据的定义,以便第三方开发使用。
MODBUS通讯规约允许本装置与施耐德、西门子、Modicon等多个国际知名品牌的可编程顺序装置(PLC)、RTU、SCADA系统、DCS或第三方具有MODBUS兼容的监控系统之间进行信息和数据的有效传递。
只要增加一套基于PC(或工控机)的中央通讯主控显示软件(如:
组态王,Intouch、FIX、synall等)就可建立一套监控系统。
二、ModBus基本规则
●所有RS232通讯回路都应遵照主、从方式。
依照这种方式,数据可以在一个主站(如:
PC)和32个子站之间传递。
●主站将初始化的装置在RS232通讯回路上传递的所有信息。
●任何一次通讯都不能从子站开始。
●在RS232回路上的所有通讯都以“信息帧”方式传递。
●如果主站或子站接收到含有未知命令的信息帧,则不予响应。
三、数据帧格式
通讯传输为异步方式,并以字节(数据帧)为单位。
在主站和子站之间传递的每一个数据帧都是以11位的串行数据流。
数据帧格式:
起始位
1位
数据位
8位
奇偶校验位
无
停止位
2位
四、通信规约
当通信命令发送至仪器时,符合相应的地址码的设备接收通信命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务,然后把执行结果返送给发送者。
返送的信息中包括地址码、执行动作的功能码、执行动作后的数据以及错误校验码(CRC)。
如果出错就不发送任何信息。
信息帧格式
初始结构
地址码
功能码
数据区
错误校验
结束结构
延时(相当于4个字节的时间)
1字节
8位
1字节
8位
N字节
N*8位
2字节
16位
延时(相当于4个字节的时间)
地址码
地址码为每次通信传送的信息帧中的第一个数据帧(8位),从0到255。
单个设备的地址范围是1-247,这个字节表明由用户设定的地址码的子机将接收由主机发送来的信息,并且每个子机都有唯一的地址码,并且响应回送均以各自的地址码开始。
主机发送来的地址码表明将发送到的子机地址,而子机发送的地址码表明回送的子机地址。
功能码
功能码是每次通信传送的第二个数据。
ModBus通讯规约定义功能码为1-255(01H-0FFH)。
本机利用其中的一部分功能码。
作为主机请求发送,通过功能码告诉子机执行什么动作。
作为子机响应,子机发送的功能码与主机发送来的功能码一样,并表明子机已响应主机进行操作。
如果子机发送的功能码的最高位是1(功能码>127),则表明子机没有响应或出错。
下表列出功能码具体的含义及操作。
ModBus部分功能码
功能码
定义
操作
01H
读开关量
读取单个或多个开关量
03H
读寄存器
读取一个或多个寄存器数据
05H
置单个开关量
置单个开关量
1.01H读开关量
主机可以利用功能码为01的通讯命令,读取装置内的各种开关量(如开关合闸、分闸、故障,自动或手动状态等)。
2.03H读寄存器
主机利用功能码为03H的通讯命令,读取装置内的数值寄存器,数值寄存器内保存的是采集到的各种模拟量和参数的设定值)。
功能码03H映射的数据区的输入寄存器值都是16位(2字节)。
这样从装置读取的寄存器值都是2字节。
一次最多可读取的寄存器数是125个。
子机响应的命令格式是子机地址、功能码、数据区及CRC码。
数据区的数据都是每二个字节为一组的双字节数,且高字节在前。
3.05H置单个开关量
主机利用这条命令把单个开关量数据保存到装置内的位存储器(如控制ATS转换的开关量)。
子机也用这个功能码向主机返送信息。
数据区(DATA)
数据区随功能码不同而不同。
1、与功能码01H对应的数据区格式:
主机发送
数据顺序
1
2
数据含义
起始地址
读开关量个数
字节数
2
2
子机应答:
数据顺序
1
2
数据含义
回送字节数
N个开关量数据
字节数
1
1
2、与功能码03H对应的数据区格式:
主机发送
数据顺序
1
2
数据含义
起始地址
读寄存器个数
字节数
2
2
子机应答:
数据顺序
1
2
数据含义
回送字节数
N个寄存器数据
字节数
1
N
3、与功能码05H对应的数据区格式:
主机发送
数据顺序
1
2
数据含义
开关量地址
强制单个开关量值
字节数
2
2
子机应答:
数据顺序
1
2
数据含义
开关量地址
单个开关量值
字节数
2
2
错误校验码(CRC)
主机或子机可用校验码进行判别接收信息是否出错。
有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或子机对在传送过程中出错的信息不起作用。
这样增加了系统的安全和效率。
错误校验码采用CRC-16校验方法。
二字节的错误校验码,低字节在前,高字节在后。
*注意:
信息帧的格式都是相同的:
地址码、功能码、数据区及错误校验码。
冗余循环码(CRC)包含2个字节,即16位二进制。
CRC码由发送端计算,放置于发送信息的尾部。
接收端的设备再重新计算接收信息的CRC码是否与接收到的相同,如果二者不同,则表明出错。
CRC码的计算方法是,先预置16位寄存器全为1。
再逐渐把每8位数据信息进行处理。
在进行CRC码计算时只用8位数据位,起始位及停止位都不参与CRC码计算。
在计算CRC码时,8位数据与寄存器的数据相异或,得到的结果向低位位移一位,用0填补最高位。
再检查最低位,如果最低位为1,把寄存器的内容与预置数异或,如果最低位为0,不进行异或运算。
这个过程一直重复次。
第8次移位后,下一个8位再与现在的寄存器的内容相异或,这个过程与上次一样重复8次。
当所有的数据信息处理完后,最后寄存器的内容即为CRC码值。
CRC-16码的计算步骤为:
1、置16位CRC寄存器为十六进制FFFF;
2、把一个8位数据与CRC寄存器的低8位相异或,把结果放于CRC寄存器;
3、把CRC寄存器的内容右移一位,用0填补最高位,检查移出位。
4、如果最低位为0:
重复第3步(再次移位)。
如果最低位为1:
CRC寄存器与十六进制数A001进行异或。
5、重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理。
6、重复步骤2到5,进行下一个数据处理。
7、最后得到的CRC寄存器值即为CRC码,传送时将低8位先发送,高8位最后发送。
注:
CRC码的计算从<子机地址>开始,除<CRC码>的所有字节。
五、信息帧格式举例
功能码01H
读取子机地址为01,读取起始地址为0000H的58H(十进制88)个开关量
主机发送
字节数
举例(十六进制)
子机地址
1
01送至子机01
功能码
1
01读取开关量
起始地址
2
00起始地址为0000
00
读取个数
2
00读取88个开关量
58
CRC码
2
-
发送的十六进制字符串为“0101000000583DF0”。
子机响应
字节数
举例(十六进制)
子机地址
1
01返回子机地址01
功能码
1
01读取开关量
读取字节数
1
0B返回开关量数量:
88个开关量(共11个字节)
数据1
1
23地址为07-00内的内容
数据2
1
00地址为0F-08内的内容
数据3
1
00地址为17-10内的内容
数据4
1
00地址为1F-18内的内容
数据5
1
01地址为27-20内的内容
数据6
1
00地址为2F-28内的内容
数据7
1
00地址为37-30内的内容
数据8
1
40地址为3F-38内的内容
数据9
1
00地址为47-40内的内容
数据10
1
00地址为4F-48内的内容
数据11
1
30地址为57-50内的内容
CRC码
2
-
控制器返回的十六进制字符串为“01010B2300000001000040000030ED0A”。
开关量07–00的值用十六进制表示为23H,用二进制表示为00100011,开关量07是字节的高位,00是低位,开关量07-00的状态是:
OFF-OFF-ON-OFF-OFF-OFF-ON-ON。
功能码03H
读取子机地址为01,起始地址为0000H的3个点
此例中点数据地址为:
主机发送
字节数
举例(十六进制)
子机地址
1
01送至子机01
功能码
1
03读取点寄存器
起始地址
0
00起始地址为0026
00
读取个数
2
00读取3个点(共6个字节)
03
CRC码
2
-
发送的十六进制字符串为“01030000000305CB。
子机响应
字节数
举例(十六进制)
子机地址
1
01返回子机地址01
功能码
1
03读取点寄存器
读取字节数
1
06个点(共6个字节)
点1数据
2
00地址为0026内的内容
DB
点2数据
2
00地址为0028内的内容
DC
点3数据
2
00地址为002A内的内容
DD
CRC码
2
-
控制器返回的十六进制字符串为“01030600DB00DC00DD44C5”。
功能码05H
十六进制值FF00强制开关量为1,0000H强制为0,其它值则为非法且不影响开关量的状态
强制子机地址为01,地址为0000H的开关量为1
主机发送
字节数
举例(十六进制)
子机地址
1
01送子机地址01
功能码
1
05强制开关量
起始地址
2
00起始地址为0000
00
数据
2
FF开关量置1
00
CRC码
2
-
发送的十六进制字符串为“01050000FF008C3A”。
子机响应
字节数
举例(十六进制)
子机地址
1
01返回子机地址01
功能码
1
05强制开关量
起始地址
2
00起始地址为0000
00
数据
2
FF开关量置1
00
CRC码
2
-
控制器返回的十六进制字符串为“01050000FF008C3A”。
出错处理
当装置检测到了CRC码出错以外的错误时,必须向主机返送信息,功能码的最高位置1,即子机返送的功能码是在主机发送的功能码的基础上加128。
以下的这些代码表明有意外的错误发生。
从主机接收到的信息如有CRC错误,则被装置忽略。
子机返送的错误码的格式如下(CRC除外):
地址码
1字节
功能码
1字节(最高位是1)
错误码
1字节
CRC码
2字节
错误功能码:
01非法的功能码
接收到的功能码不支持
02非法的数据地址
指定的地址超出子机的范围
03非法的数据值
接收到主机发送的数据值超出相应地址的数据范围。
六、地址和数据
表1:
功能码01H所映射的开关量区
地址
项目
说明
0000H
公共报警
为1有效
0001H
公共停机报警
为1有效
0002H
公共警告报警
为1有效
0003H
公共电气跳闸报警
为1有效
0004H
紧急停机报警
为1有效
0005H
高水温报警停机
为1有效
0006H
低油压报警停机
为1有效
0007H
发电超速报警停机
为1有效
0008H
发电欠速停机
为1有效
0009H
速度信号丢失报警
为1有效
000AH
发电过频报警停机
为1有效
000BH
发电欠频停机
为1有效
000CH
发电过压停机
为1有效
000DH
发电欠压停机
为1有效
000EH
发电过流停机
为1有效
000FH
起动失败报警
为1有效
0010H
油压传感器开路报警
为1有效
0011H
输入口1停机
为1有效
0012H
输入口2停机
为1有效
0013H
输入口3停机
为1有效
0014H
输入口4停机
为1有效
0015H
输入口5停机
为1有效
0016H
输入口6停机
为1有效
0017H
保留
0018H
过流跳闸
为1有效
0019H
输入口1电气跳闸
为1有效
001AH
输入口2电气跳闸
为1有效
001BH
输入口3电气跳闸
为1有效
001CH
输入口4电气跳闸
为1有效
001DH
输入口5电气跳闸
为1有效
001EH
输入口6电气跳闸
为1有效
001FH
保留
0020H
高水温警告
为1有效
0021H
低油压警告
为1有效
0022H
发电超速警告
为1有效
0023H
发电欠速警告
为1有效
0024H
速度信号丢失警告
为1有效
0025H
发电过频警告
为1有效
0026H
发电欠频警告
为1有效
0027H
发电过压警告
为1有效
0028H
发电欠压警告
为1有效
0029H
发电过流警告
为1有效
002AH
停机失败警告
为1有效
002BH
燃油液位低警告
为1有效
002CH
充电失败警告
为1有效
002DH
电池欠压警告
为1有效
002EH
电池过压警告
为1有效
002FH
输入口1警告
为1有效
0030H
输入口2警告
为1有效
0031H
输入口3警告
为1有效
0032H
输入口4警告
为1有效
0033H
输入口5警告
为1有效
0034H
输入口6警告
为1有效
0035H
输入口1指示
为1有效
0036H
输入口2指示
为1有效
0037H
输入口3指示
为1有效
0038H
输入口4指示
为1有效
0039H
输入口5指示
为1有效
003AH
输入口6指示
为1有效
003BH
系统在试机模式
为1有效
003CH
系统在自动模式
为1有效
003DH
系统在手动模式
为1有效
003EH
系统在停机模式
为1有效
003FH
保留
0040H
保留
0041H
保留
0042H
保留
0043H
保留
0044H
保留
0045H
保留
0046H
保留
0047H
保留
0048H
保留
0049H
保留
004AH
保留
004BH
保留
004CH
保留
004DH
保留
004EH
保留
004FH
保留
0050H
保留
0051H
保留
0052H
保留
0053H
保留
0054H
市电正常
为1有效
0055H
市电合闸
为1有效
0056H
发电正常
为1有效
0057H
发电合闸
为1有效
表2:
功能码03H所映射的数据区
地址
项目
说明
0000H
市电UAB
市电AB相电压,单位:
V,实际值=采样值
0001H
市电UBC
市电BC相电压,单位:
V,实际值=采样值
0002H
市电UCA
市电CA相电压,单位:
V,实际值=采样值
0003H
市电UA
市电A相电压,单位:
V,实际值=采样值
0004H
市电UB
市电B相电压,单位:
V,实际值=采样值
0005H
市电UC
市电C相电压,单位:
V,实际值=采样值
0006H
发电UAB
发电AB相电压,单位:
V,实际值=采样值
0007H
发电UBC
发电BC相电压,单位:
V,实际值=采样值
0008H
发电UCA
发电CA相电压,单位:
V,实际值=采样值
0009H
发电UA
发电A相电压,单位:
V,实际值=采样值
000AH
发电UB
发电B相电压,单位:
V,实际值=采样值
000BH
发电UC
发电C相电压,单位:
V,实际值=采样值
000CH
A相电流
负载A相电流,单位:
A,实际值=采样值
000DH
B相电流
负载B相电流,单位:
A,实际值=采样值
000EH
C相电流
负载C相电流,单位:
A,实际值=采样值
000FH
功率因数
发电负载功率因数,实际值=采样值/1000
0010H
保留
0011H
水温/缸体温度值
冷却水/缸体温度,单位:
℃,实际值=采样值
0012H
保留
0013H
机油压力值
机油压力,单位:
kPa,实际值=采样值
0014H
保留
0015H
燃油液位值
燃油液位,单位:
%,实际值=采样值
0016H
电池电压
起动电池电压,单位:
V,实际值=采样值/10
0017H
充电机电压
充电机D+端子电压,单位:
V。
实际值=采样值/10
0018H
市电频率
单位:
Hz,实际值=采样值/10
0019H
发电频率
单位:
Hz,实际值=采样值/10
001AH
A相有功功率
发电A相有功功率,单位:
kW,实际值=采样值
001BH
B相有功功率
发电B相有功功率,单位:
kW,实际值=采样值
001CH
C相有功功率
发电C相有功功率,单位:
kW,实际值=采样值
001DH
总有功功率
单位:
kW,实际值=采样值
001EH
A相视在功率
发电A相视在功率,单位:
kVA,实际值=采样值
001FH
B相视在功率
发电B相视在功率,单位:
kVA,实际值=采样值
0020H
C相视在功率
发电C相视在功率,单位:
kVA,实际值=采样值
0021H
总视在功率
单位:
kVA,实际值=采样值
0022H
发动机转速
单位:
RPM,实际值=采样值
0023H
保留
0024H
保留
0025H
保留
0026H
保留
0027H
保留
0028H
保留
0029H
保留
002AH
保留
002BH
控制器当前时间:
年月
压缩型BCD码,若采样值为0602H,则为2006年02月
002CH
控制器当前时间:
日时
压缩型BCD码,若采样值为0612H,则为06日12时
002DH
控制器当前时间:
分秒
压缩型BCD码,若采样值为0602H,则为06分02秒
002EH
控制器当前时间:
星期
压缩型BCD码,若采样值为0001H,则为星期一,若采样值为0007H,则为星期日
表3:
功能码05H所映射的开关量区
地址
项目
说明
0000H
遥控油机开机
为1有效
0001H
遥控油机停机
为1有效
0002H
遥控油机处于试机模式
为1有效
0003H
遥控油机处于自动模式
为1有效
0004H
遥控油机处于手动模式
为1有效
七、控制器与计算机连接图
注RS232和RS485不能同时通信
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动 发电 HT3000 通信协议