# 谐波 指的是电流中所含有的频率为基波整数倍的电量。其实,谐波本身并不存在,只是畸变的波形经过傅里叶分解后的等效波形 # 接收编码 协议接收 协议确认 ```mermaid graph LR n1[协议接收] n2[协议确认] ``` 参照183设备表字段存储数据 1、定时上传YT状态和监测数据(指令类型 0x11 类型标志 0x07,0xd2): 庄城的开关量和数据量是放在一个报文里上传的,我将它拆分成了遥信和遥测两部分 遥信:除 “预留 BIT6-0”,有33个字段 开关量输入 "DI1", 火灾预警总 "FireAlarm", 线路电气故障总 "EleAlarm", 缺相 "PhaseLoss", 线路带电 "LoadLive", 线路开关状态 "LoadBrkState", 过压 "OverV", 压 "UnderVa", 电流越限 "OverI", 过流跳闸 "Trip", 母线停电 "BusOutage", 剩余电流越限 "OverIr", 测温点1超温 "OverT1", 测温点2超温 "OverT2", 测温点3超温 "OverT3", 测温点4超温 "OverT4", 环境温度越限 "OverEvT", A相燃弧 "ArcA", B相燃弧 "ArcB", C相燃弧 "ArcC", 电压谐波越限 "OverUH", 电流谐波越限 "OverIH", 有功需量超限 "OverDemandP", 视在需量超限 "OverDemandS", 测量通道故障 "MeasFailure", 设备异常 "DevAbnormal", 消音 "Mute", 开出1 "DO1", 开出2 "DO2", 备用遥信1 "ResDI1", 备用遥信2 "ResDI2", 备用遥信3 "ResDI3", 备用遥信4 "ResDI4", 预留 BIT6-0 183遥信: CREATE TABLE `rt_switch_data` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '伍继电力test_183消费组开关量实时数据表ID', `deviceName` VARCHAR(255) NOT NULL COMMENT '阿里云平台设备名称', `ArcA` INT(1) DEFAULT NULL COMMENT 'A相燃弧a(0 正常 1 告警)', `ArcB` INT(1) DEFAULT NULL COMMENT 'B相燃弧(0 正常 1 告警)', `ArcC` INT(1) DEFAULT NULL COMMENT 'C相燃弧(0 正常 1 告警)', `BusOutage` INT(1) DEFAULT NULL COMMENT '母线停电(0 正常 1 告警)', `DI1` INT(1) DEFAULT NULL COMMENT '开入1(0 正常 1 告警)', `DI2` INT(1) DEFAULT NULL COMMENT '开入2(0 正常 1 告警)', `DI3` INT(1) DEFAULT NULL COMMENT '开入3(0 正常 1 告警)', `DO1` INT(1) DEFAULT NULL COMMENT '开出1(0 正常 1 告警)', `DO2` INT(1) DEFAULT NULL COMMENT '开出2(0 正常 1 告警)', `DevAbnormal` INT(1) DEFAULT NULL COMMENT '设备异常(0 正常 1 告警)', `EleAlarm` INT(1) DEFAULT NULL COMMENT '线路电气故障总(0 正常 1 告警)', `FireAlarm` INT(1) DEFAULT NULL COMMENT '火灾预警总(0 正常 1 告警)', `LoadBrkState` INT(1) DEFAULT NULL COMMENT '线路开关状态(0 正常 1 告警)', `LoadLive` INT(1) DEFAULT NULL COMMENT '线路带电(0 正常 1 告警)', `MeasFailure` INT(1) DEFAULT NULL COMMENT '测量通道故障(0 正常 1 告警)', `Mute` INT(1) DEFAULT NULL COMMENT '消音(0 正常 1 告警)', `OverDemandP` INT(1) DEFAULT NULL COMMENT '有功需量超限(0 正常 1 告警)', `OverDemandS` INT(1) DEFAULT NULL COMMENT '视在需量超限(0 正常 1 告警)', `OverEvT` INT(1) DEFAULT NULL COMMENT '环境温度越限(0 正常 1 告警)', `OverI` INT(1) DEFAULT NULL COMMENT '电流越限(0 正常 1 告警)', `OverIH` INT(1) DEFAULT NULL COMMENT '电流谐波越限(0 正常 1 告警)', `OverIr` INT(1) DEFAULT NULL COMMENT '剩余电流越限(0 正常 1 告警)', `OverT1` INT(1) DEFAULT NULL COMMENT '测温点1超温(0 正常 1 告警)', `OverT2` INT(1) DEFAULT NULL COMMENT '测温点2超温(0 正常 1 告警)', `OverT3` INT(1) DEFAULT NULL COMMENT '测温点3超温(0 正常 1 告警)', `OverT4` INT(1) DEFAULT NULL COMMENT '测温点4超温(0 正常 1 告警)', `OverUH` INT(1) DEFAULT NULL COMMENT '电压谐波越限(0 正常 1 告警)', `OverV` INT(1) DEFAULT NULL COMMENT '过压(0 正常 1 告警)', `PhaseLoss` INT(1) DEFAULT NULL COMMENT '缺相(0 正常 1 告警)', `ResDI1` INT(1) DEFAULT NULL COMMENT '备用遥信1(0 正常 1 告警)', `ResDI2` INT(1) DEFAULT NULL COMMENT '备用遥信2(0 正常 1 告警)', `ResDI3` INT(1) DEFAULT NULL COMMENT '备用遥信3(0 正常 1 告警)', `ResDI4` INT(1) DEFAULT NULL COMMENT '备用遥信4(0 正常 1 告警)', `Trip` INT(1) DEFAULT NULL COMMENT '跳闸(0 正常 1 告警)', `UnderV` INT(1) DEFAULT NULL COMMENT '欠压(0 正常 1 告警)', `dataTime` DATETIME DEFAULT NULL COMMENT '上报时间', PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 注:无符号整数为大端编码(如 00 23,结果为35mA),浮点数和日期都是小端编码 开发完成要对这几种类型的设备数据进行正确性验证 遥测: A相电压-Ua B相电压-Ub C相电压-Uc 回路电压-Ul A相电流-Ia B相电流-Ib C相电流-Ic 剩余电流(漏电流 mA)-Ir 外接温度1(℃)-T1 外接温度2(℃)-T2 外接温度3(℃)-T3 外接温度4(℃)-T4 频率(Hz)-F AB线电压-Uab BC线电压-Ubc CA线电压-Uca A相有功功率(KW)-Pa A相无功功率(KVar)-Qa A相功率因素-COSa B相有功功率(KW)-Pb B相无功功率(KVar)-Qb B相功率因素-COSb C相有功功率(KW)-Pc C相无功功率(KVar)-Qc C相功率因素-COSc 总有功功率(KW)-P 总无功功率(KW)-Q 功率因素-COS 实时需量(KW)-Demand 昨日最大有功需量-LastDayMD 昨日Pmax发生时间-LastDayMDt 负序电流-I2 零序电压 负序电压不平衡度-UblU2 零序电压不平衡度-UblU0 A相电压畸变率(%)-THDUa B相电压畸变率(%)-THDUb C相电压畸变率(%)-THDUc la总谐波电流-IHa lb总谐波电流-IHb lc总谐波电流-IHc 环境温度(℃)-DeviceTemp 设备信号强度-SignalIntensity 电压暂升次数(次)-Upt 电压暂降次数(次)-Udt 电压中断次数(次)-Ust 母线停电次数(次)-Busot 设备复位次数(次)-DevResetTimes 正有功电度(KW/h)-Epp 负有功电度(KW/h)-Epn 正无功电度(KW/h)-Eqp 负无功电度(KW/h)-Eqn 尖段正向有功(KW/h)-Epp1 尖段反向有功 (KVar/h)-Epn1 峰段正向有功(KW/h)-Epp2 峰段反向有功 (KVar/h)-Epn2 平段正向有功(KW/h)-Epp3 平段反向有功 (KVar/h)-Epn3 谷段正向有功(KW/h)-Epp4 谷段反向有功(KVar/h)-Epn4 183遥测: CREATE TABLE `rt_analog_data` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '伍继电力test_183消费组模拟量实时数据表ID', `deviceName` VARCHAR(25) NOT NULL DEFAULT '' COMMENT '阿里云平台设备名称', `Busot` INT(5) DEFAULT NULL COMMENT '母线停电次数', `COS` DOUBLE(25,2) DEFAULT NULL COMMENT '三相功率因数', `COSa` DOUBLE(25,2) DEFAULT NULL COMMENT 'A相功率因数', `COSb` DOUBLE(25,2) DEFAULT NULL COMMENT 'B相功率因数', `COSc` DOUBLE(25,2) DEFAULT NULL COMMENT 'C相功率因数', `Demand` DOUBLE(25,2) DEFAULT NULL COMMENT '实时有功需量', `DevResetTimes` INT(5) DEFAULT NULL COMMENT '设备复位次数', `DeviceTemp` DOUBLE(25,2) DEFAULT NULL COMMENT '设备温度', `Epn` DOUBLE(25,2) DEFAULT NULL COMMENT '三相反向有功电度', `Epn1` DOUBLE(25,2) DEFAULT NULL COMMENT '尖段反向有功电度', `Epn2` DOUBLE(25,2) DEFAULT NULL COMMENT '峰段反向有功电度', `Epn3` DOUBLE(25,2) DEFAULT NULL COMMENT '平段反向有功电度', `Epn4` DOUBLE(25,2) DEFAULT NULL COMMENT '谷段反向有功电度', `Epp` DOUBLE(25,2) DEFAULT NULL COMMENT '三相正向有功电度', `Epp1` DOUBLE(25,2) DEFAULT NULL COMMENT '尖段正向有功电度', `Epp2` DOUBLE(25,2) DEFAULT NULL COMMENT '峰段正向有功电度', `Epp3` DOUBLE(25,2) DEFAULT NULL COMMENT '平段正向有功电度', `Epp4` DOUBLE(25,2) DEFAULT NULL COMMENT '谷段正向有功电度', `Eqn` DOUBLE(25,2) DEFAULT NULL COMMENT '三相反向无功电度', `Eqp` DOUBLE(25,2) DEFAULT NULL COMMENT '三相正向无功电度', `F` DOUBLE(25,2) DEFAULT NULL COMMENT '频率', `I0` DOUBLE(25,2) DEFAULT NULL COMMENT '零序电流', `I2` DOUBLE(25,2) DEFAULT NULL COMMENT '负序电流', `IHa` DOUBLE(25,2) DEFAULT NULL COMMENT 'A相总谐波电流', `IHb` DOUBLE(25,2) DEFAULT NULL COMMENT 'B相总谐波电流', `IHc` DOUBLE(25,2) DEFAULT NULL COMMENT 'C相总谐波电流', `Ia` DOUBLE(25,2) DEFAULT NULL COMMENT 'A相电流', `Ib` DOUBLE(25,2) DEFAULT NULL COMMENT 'B相电流', `Ic` DOUBLE(25,2) DEFAULT NULL COMMENT 'C相电流', `Ir` DOUBLE(25,2) DEFAULT NULL COMMENT '剩余电流', `LastDayMD` DOUBLE(25,2) DEFAULT NULL COMMENT '昨日有功最大需量', `LastDayMDt` DOUBLE(25,2) DEFAULT NULL COMMENT '昨日有功最大需量发生时间', `P` DOUBLE(25,2) DEFAULT NULL COMMENT '三相总有功功率', `Pa` DOUBLE(25,2) DEFAULT NULL COMMENT 'A相有功功率', `Pb` DOUBLE(25,2) DEFAULT NULL COMMENT 'B相有功功率', `Pc` DOUBLE(25,2) DEFAULT NULL COMMENT 'C相有功功率', `Q` DOUBLE(25,2) DEFAULT NULL COMMENT '三相总无功功率', `Qa` DOUBLE(25,2) DEFAULT NULL COMMENT 'A相无功功率', `Qb` DOUBLE(25,2) DEFAULT NULL COMMENT 'B相无功功率', `Qc` DOUBLE(25,2) DEFAULT NULL COMMENT 'C相无功功率', `SignalIntensity` DOUBLE(25,2) DEFAULT NULL COMMENT '信号强度', `T1` DOUBLE(25,2) DEFAULT NULL COMMENT '第1路温度', `T2` DOUBLE(25,2) DEFAULT NULL COMMENT '第2路温度', `T3` DOUBLE(25,2) DEFAULT NULL COMMENT '第3路温度', `T4` DOUBLE(25,2) DEFAULT NULL COMMENT '第4路温度', `THDUa` DOUBLE(25,2) DEFAULT NULL COMMENT 'A相电压THD', `THDUb` DOUBLE(25,2) DEFAULT NULL COMMENT 'B相电压THD', `THDUc` DOUBLE(25,2) DEFAULT NULL COMMENT 'C相电压THD', `Ua` DOUBLE(25,2) DEFAULT NULL COMMENT 'A相电压', `Uab` DOUBLE(25,2) DEFAULT NULL COMMENT 'AB线电压', `Ub` DOUBLE(25,2) DEFAULT NULL COMMENT 'B相电压', `Ubc` DOUBLE(25,2) DEFAULT NULL COMMENT 'BC线电压', `UblU0` DOUBLE(25,2) DEFAULT NULL COMMENT '零序电压不平衡度', `UblU2` DOUBLE(25,2) DEFAULT NULL COMMENT '负序电压不平衡度', `Uc` DOUBLE(25,2) DEFAULT NULL COMMENT 'C相电压', `Uca` DOUBLE(25,2) DEFAULT NULL COMMENT 'CA线电压', `Udt` INT(5) DEFAULT NULL COMMENT '电压暂降次数', `Ul` DOUBLE(25,2) DEFAULT NULL COMMENT '线路侧电压', `Upt` INT(5) DEFAULT NULL COMMENT '电压暂升次数', `Ust` INT(5) DEFAULT NULL COMMENT '电压短时中断次数', `freezingTime` DATE DEFAULT NULL COMMENT '冻结时间', `dataTime` DATETIME DEFAULT NULL COMMENT '上报时间', PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 2、通道状态变化时上传(指令类型 0x12 类型标志 0x07,0xd2): 庄城: 开关量输入 BIT7 1 表示变化 0 表示未变化 火灾预警总 BIT6 同上 线路电气故障总 BIT5 同上 缺相 BIT4 同上 线路带电 BIT3 同上 线路开关状态 BIT2 同上 过压 BIT1 同上 低压 BIT0 同上 电流越限 BIT7 同上 过流跳闸 BIT6 同上 母线停电 BIT5 同上 剩余电流越限 BIT4 同上 测温点 1 超温 BIT3 同上 测温点 2 超温 BIT2 同上 测温点 3 超温 BIT1 同上 测温点 4 超温 BIT0 同上 环境温度越限 BIT7 同上 A 相燃弧 BIT6 同上 B 相燃弧 BIT5 同上 C 相燃弧 BIT4 同上 电压谐波越限 BIT3 同上 电流谐波越限 BIT2 同上 有功需量超限 BIT1 同上 视在需量超限 BIT0 同上 测量通道故障 BIT7 同上 设备异常 BIT6 同上 消音 BIT5 同上 开出 1 BIT4 同上 开出 2 BIT3 同上 备用遥信 1 BIT2 同上 备用遥信 2 BIT1 同上 备用遥信 3 BIT0 同上 备用遥信 4 BIT7 同上 预留 BIT6-0 同上 183SOE: "DI1", "开入1", "DI2", "开入2", "DI3", "开入3", "FireAlarm", "火灾预警总", "EleAlarm", "线路电气故障总", "PhaseLoss", "缺相", "LoadLive", "线路带电", "LoadBrkState", "线路开关状态", "OverV", "过压", "UnderV", "低压", "OverI", "电流越限", "Trip", "过流跳闸", "BusOutage", "母线停电", "OverIr", "剩余电流越限", "OverT1", "测温点1超温", "OverT2", "测温点2超温", "OverT3", "测温点3超温", "OverT4", "测温点4超温", "OverEvT", "环境温度越限", "ArcA", "A相燃弧", "ArcB", "B相燃弧", "ArcC", "C相燃弧", "OverUH", "电压谐波越限", "OverIH", "电流谐波越限", "OverDemandP", "有功需量超限", "OverDemandS", "视在需量超限", "MeasFailure", "测量通道故障", "DevAbnormal", "设备异常", "Mute", "消音", "DO1", "开出1", "DO2", "开出2", "ResDI1", "备用遥信1", "ResDI2", "备用遥信2", "ResDI3", "备用遥信3", "ResDI4" "备用遥信4" 疑问点: 1、定时上传YT状态和监测数据(指令类型 0x11 类型标志 0x07,0xd2) 通道状态变化时上传(指令类型 0x12 类型标志 0x07,0xd2) 这两个类型上传报文字段值顺序与解析协议文档中的字段顺序一致吗? 都是一致的,就是按文档来组位的。 2、定时上传YT状态和监测数据(指令类型 0x11 类型标志 0x07,0xd2),这个默认定时时间是多长? 默认定时时间为300秒。 3、通道状态变化时上传(指令类型 0x12 类型标志 0x07,0xd2)是实时上报的吗? 状态变化是实时上报的。 4、设备上传的这条这种类型报文是不是每次只有一个异常开关量,还是说会有几个异常开关量?如果有几个异常开关量,那么上报的这次报文应该取哪个异常开关量值?可以几个异常开关量一起上传,以每个异常开关量首报为依据。 遥信:经过对比,发现庄城通道状态变化协议字段中“开关量输入”、“预留 BIT6-0 总计7个字段” 和183解析协议SOE中的“开入1”、“开入2”、“开入3”是不相同的,其它字段都是一样的(与183共用一个表rt_switch_data?) 可以共用183的遥信表,庄城的“开关量输入”对应的值对应183的“开入1”字段,庄城的“预留 BIT6-0 总计7个字段”忽略不保存,183的“开入2”和“开入3”写入默认值0。 遥测:定时上传YT状态和监测数据(指令类型 0x11 类型标志 0x07,0xd2) 中有“零序电压”,但是183是“零序电流”,所以我想确认下是不是你们这里“零序电压”字段名称写错了? 这两项是预留的,根据确认列表里的项目要求,这里是零序电压的。可以共用183的遥测表,庄城的“零序电压”忽略不保存,183的“零序电流”写入默认值0.00。 SOE:经过对比,发现庄城通道状态变化协议字段中“开关量输入”、“预留 BIT6-0” 和183解析协议SOE中的“开入1”、“开入2”、“开入3”是不相同的,其它字段都是一样的(与183共用一个表alarm_power?) 将生成的遥信、遥测、SOE生成的数据分别保存到对应的数据库表: 1、遥信、遥测、SOE数据不管收到是哪一个,都要去更新共享内存中对应设备的状态时间; 2、当soe报警点位数据中的时间跟共享内存中设备对应点位的时间相差大于1分钟时,将这个设备点位soe数据推送到微信端;但是母线停电优先级最高,如果母线停电报警刚推送微信端,不管哪个点位的时间与该设备的母线停电点位时间进行相减,如果小于1分钟,数据不推,即使该报警点位数据中的时间跟共享内存中设备对应点位的时间相差大于1分钟; 3、根据设备中35个点位中6个点位(PhaseLoss 缺相\OverV 过压\UnderV 低压\BusOutage 母线停电\OverEvT 环境温度越限\DevAbnormal 设备异常)数据(0 复归 1 动作)和共享内存中设备对应的最新时间判断每个设备的状态(正常、报警、故障、离线),如果系统时间与设备对应最新状态时间超过10分钟,则为离线,如果上述设备中6个点位都是复归状态,则为正常,当点位设备异常为动作状态时,为故障,其它为告警; 将庄城设备添加到数据库device表时,先归在“6:其他”设备类型中(在dbthread.cpp中定时同步数据库配置有检索device表,如果后期需要修改庄城的设备类型,那么要同步修改这里); 录波和谐波: 1、发8次下发请求一组(0-7页)故障录播数据,需要等服务器接收到设备响应上一页请求的指令帧并且服务器应答后才下发请求下一页录波指令帧(这个是原来的逻辑); 2、录波和谐波以什么形式保存使用?按字段解析保存数据库,保留历史数据(录波发生时间表、录波表、谐波表)。 3、设备哪些故障会触发取录波数据?当设备发生故障时,是下发指令帧拉取录波数据还是设备主动上报? 现在录波触发的条件是火灾预警总,线路电气故障总,设备异常和测量通道故障 (触发条件较少)。 三个方案:a、增加一个状态位表示录波状态,服务器再根据这个标记进行请求;b、设备故障时主动上报录波数据,服务器给应答 录波数据传完 重新开始录波; c、可以增加一个配置帧,配置谐波和录波数据的上传间隔和类型,设备刚连接服务器的时候服务器可以自动下发配置。 5、0x11、0x12、谐波和录波指令帧和每个字段值对应来一组数据说明文档,还有最新的解析协议说明文档; 我更新一下那个示例数据文档,填一下解析后的数值。 16Bx80为一组录波数据 那就麻烦你那边 加两个字节一个表示录波文件序号(1-256)、一个是故障录波发生时间, 把页号和数据组号两个字节去掉 服务器应答?在原有上传录波协议中 增加一个是故障录波发生时间就可以了其它字段不变 (其实这里只需要加个录波发生时间就可以了,其它字段都不变,产生录波就发送,服务器在收到录波最后一页时给应答); 当设备发生指定状态位故障时,产生一组录波文件(80个 5ms一个,总共400ms) 谐波每2-3秒产生一组(最大值、平均值、含量) 通讯时序双方约定 1、故障录波主动上传 (可以双发,但是不建议双发,开双发会影响通讯性能,单发是可以满足主动上传故障录波数据的,穿插的,不影响其它数据 可能有时延)。 如果主动上报,当设备发生故障产生故障录波数据时,主动上报数据; 如果是下发请求录波指令,设备收到请求指令就根据指令中输入的录波产生时间找到对应的故障录波数据,上传这组故障录波数据 ; 前端如何获取指定的故障录波发送时间 设备上传一个故障录波发生时间列表指令帧 (如果是下发请求,那么设备端要增加 故障录波发生时间列表+处理接收到服务器发过来的指定录波发生时间并将这组录波数据上传) 上传8次(页序0-7)上传完一组录波数据(优化缩短,尽量减少应答次数),如果是设备发生故障主动上传,设备上传每页录波数据可以不用每次服务器响应,当服务器收到设备响应指令帧中页数为7页时,服务器响应+前面0-6页处理的要保存数据库表中的sql和7页一起emit保存到数据库中,表示这组录波数据上传完毕,如果没有收到服务器最后的响应,设备再重发(如果是主动上传,设备没有收到服务器最后的响应,设备再重发,重复几次还是没有应答,那这组故障录波数据怎么处理) 2、谐波定时上传 如果设备可以存数据,下发命令根据需要拉取(异步不需要服务端应答);如果是主动上传,设备2-3秒就产生一组(通道 0:A 相电压 1:B 相电压 2:C 相电压 3:A 相电流 4:B 相电流 5:C 相电流)谐波数据(最大值、平均值、含量),每个类型分别是31组,这31组数据是多长时间产生的? 频率太短,数据量巨大,要讨论 (尤比酷:统计报表为日报表,由于生成统计报表需要计算时间,建议在每天凌晨 1 点后再召 唤前一天的统计报表。下行报文只需发送一次,设备端主动分帧上送整个统计报表。每个类型(A 相电压 1:B 相电压 2:C 相电压 3:A 相电流 4:B 相电流 5:C 相电流)总共82组(最大值、平均值、含量)); 3、下发命令怎么准确拉取指定故障录波和谐波数据?故障录波发生时间 设备上传的一组中80个故障录波指令帧时间都是故障发生时间,以相同故障发生时间来判断是否是同一组故障录波(数据垮度前400ms的数据) 4、现在录波触发的条件是火灾预警总,线路电气故障总,设备异常和测量通道故障 (触发条件较少) 5、下发指令帧连帧处理,设备是否可以对几个连帧做解析并处理? 1、故障录波:上传录波数据(0x18): 设备编号 文件序号(1-256) 页号 数据组号(1-80) 2B UA、 2B UB、 2B UC、 2B IA、 2B IB、 2B IC、 2B IR、 BIT15:开入1 BIT14:火灾预警总 BIT13:线路电气故障总 BIT12:缺相 BIT11:过压 BIT10:欠压 BIT9:电流越限 BIT8:过流跳闸 BIT7:剩余电流越限 BIT6:T1超温 BIT5:T2超温 BIT4:T3超温 BIT3:T4超温 BIT2:环境温度超温 BIT1-0:预留 上报时间 CREATE TABLE `wave_record_data` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '故障录波数据表ID', `deviceName` VARCHAR(255) NOT NULL COMMENT '设备编号', `page` INT(1) DEFAULT NULL COMMENT '页号', `num` INT(1) DEFAULT NULL COMMENT '组号', `Ua` DOUBLE(25,2) DEFAULT NULL COMMENT 'A相电压', `Ub` DOUBLE(25,2) DEFAULT NULL COMMENT 'B相电压', `Uc` DOUBLE(25,2) DEFAULT NULL COMMENT 'C相电压', `Ia` DOUBLE(25,2) DEFAULT NULL COMMENT 'A相电流', `Ib` DOUBLE(25,2) DEFAULT NULL COMMENT 'B相电流', `Ic` DOUBLE(25,2) DEFAULT NULL COMMENT 'C相电流', `Ir` DOUBLE(25,2) DEFAULT NULL COMMENT '剩余电流', `DI1` INT(1) DEFAULT NULL COMMENT '开入1(0 正常 1 告警)', `FireAlarm` INT(1) DEFAULT NULL COMMENT '火灾预警总(0 正常 1 告警)', `EleAlarm` INT(1) DEFAULT NULL COMMENT '线路电气故障总(0 正常 1 告警)', `PhaseLoss` INT(1) DEFAULT NULL COMMENT '缺相(0 正常 1 告警)', `OverV` INT(1) DEFAULT NULL COMMENT '过压(0 正常 1 告警)', `UnderV` INT(1) DEFAULT NULL COMMENT '欠压(0 正常 1 告警)', `OverI` INT(1) DEFAULT NULL COMMENT '电流越限(0 正常 1 告警)', `Trip` INT(1) DEFAULT NULL COMMENT '过流跳闸(0 正常 1 告警)', `OverIr` INT(1) DEFAULT NULL COMMENT '剩余电流越限(0 正常 1 告警)', `OverT1` INT(1) DEFAULT NULL COMMENT '测温点1超温(0 正常 1 告警)', `OverT2` INT(1) DEFAULT NULL COMMENT '测温点2超温(0 正常 1 告警)', `OverT3` INT(1) DEFAULT NULL COMMENT '测温点3超温(0 正常 1 告警)', `OverT4` INT(1) DEFAULT NULL COMMENT '测温点4超温(0 正常 1 告警)', `OverEvT` INT(1) DEFAULT NULL COMMENT '环境温度超温(0 正常 1 告警)', `ResDI1` INT(1) DEFAULT NULL COMMENT '预留1(0 正常 1 告警)', `ResDI2` INT(1) DEFAULT NULL COMMENT '预留2(0 正常 1 告警)', `dataTime` DATETIME DEFAULT NULL COMMENT '上报时间', PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 2、谐波:(上传谐波平均值(0x15)、上传谐波最大值(0x16)、上传谐波含量(0x17)): 设备编号 指令类型 //1 平均值 2 最大值 3 含量 通道类型 //0 A相电压 1 B相电压 2 C相电压 3 A相电流 4 B相电流 5 C相电流 谐波1次 谐波2次 谐波3次 谐波4次 谐波5次 谐波6次 谐波7次 谐波8次 谐波9次 谐波10次 谐波11次 谐波12次 谐波13次 谐波14次 谐波15次 谐波16次 谐波17次 谐波18次 谐波19次 谐波20次 谐波21次 谐波22次 谐波23次 谐波24次 谐波25次 谐波26次 谐波27次 谐波28次 谐波29次 谐波30次 谐波31次 (注:这31次谐波 当为平均值和最大值时,数值除以10,当为含量时,数值除以 100) 上报时间 CREATE TABLE `wave_har_data` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '谐波数据表ID', `deviceName` VARCHAR(255) NOT NULL COMMENT '设备编号', `orderType` INT(1) DEFAULT NULL COMMENT '指令类型(1 平均值 2 最大值 3 含量)', `pagType` INT(1) DEFAULT NULL COMMENT '通道类型(0 A相电压 1 B相电压 2 C相电压 3 A相电流 4 B相电流 5 C相电流)', `h1` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波1次', `h2` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波2次', `h3` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波3次', `h4` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波4次', `h5` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波5次', `h6` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波6次', `h7` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波7次', `h8` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波8次', `h9` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波9次', `h10` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波10次', `h11` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波11次', `h12` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波12次', `h13` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波13次', `h14` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波14次', `h15` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波15次', `h16` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波16次', `h17` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波17次', `h18` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波18次', `h19` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波19次', `h20` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波20次', `h21` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波21次', `h22` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波22次', `h23` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波23次', `h24` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波24次', `h25` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波25次', `h26` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波26次', `h27` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波27次', `h28` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波28次', `h29` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波29次', `h30` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波30次', `h31` DOUBLE(25,2) DEFAULT NULL COMMENT '谐波31次', `dataTime` DATETIME DEFAULT NULL COMMENT '上报时间', PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;