whyclxw
2020-08-29 8eef58973585492ba315d22a0b03eb6e84ccd578
水冷修改
6个文件已修改
677 ■■■■■ 已修改文件
WaterSystem_MonitorServer/src/com/modbus/data/MyModbusUtils.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_alarm.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_brach.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_rt.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_state.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/src/com/watersystem/monitor/Watersystem_SocketClient_Thread.java 415 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/src/com/modbus/data/MyModbusUtils.java
@@ -1,5 +1,8 @@
package com.modbus.data;
import com.base.ComBase;
import com.serotonin.modbus4j.BatchRead;
import com.serotonin.modbus4j.BatchResults;
import com.serotonin.modbus4j.ModbusMaster;
import com.serotonin.modbus4j.exception.ErrorResponseException;
import com.serotonin.modbus4j.exception.ModbusTransportException;
@@ -281,6 +284,59 @@
        }
    }
    public static BatchResults<Integer> readMutilRegisters(BatchRead<Integer> batch,MyModbusMaster master){
        batch.setContiguousRequests(false);
        try {
            return master.getMaster().send(batch);
        } catch (ModbusTransportException | ErrorResponseException e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     *     构造线圈读取节点
     * @param offset
     * @param master
     * @return
     */
    public static BaseLocator<?> createBaseLocator(int offset,MyModbusMaster master) {
        return BaseLocator.coilStatus(master.getSlaveId(), offset);
    }
    
    /**
     *     构造读取节点
     * @param offset
     * @param master
     * @return
     */
    public static BaseLocator<?> createBaseLocator(int offset,int datatype,MyModbusMaster master) {
        return BaseLocator.holdingRegister(master.getSlaveId(), offset, datatype);
    }
    
    /**
     *     读取float类型数据
     * @param obj    Short类型
     * @return
     */
    public static float readShortToFloat(Object obj) {
        return (float)ComBase.changeShortToInt((Short)obj);
    }
    /**
     *     读取int类型数据
     * @param obj    Short类型
     * @return
     */
    public static int readShortToInt(Object obj) {
        return ComBase.changeShortToInt((Short)obj);
    }
    /**
     *     读取Boolean类型数据
     * @param obj    Boolean类型
     * @return
     */
    public static int readBooleanToInt(Object obj) {
        return ((Boolean)obj?1:0);
    }
}
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_alarm.java
@@ -3,6 +3,11 @@
import java.io.Serializable;
import java.util.Date;
import com.modbus.data.MyModbusMaster;
import com.modbus.data.MyModbusUtils;
import com.serotonin.modbus4j.BatchRead;
import com.serotonin.modbus4j.BatchResults;
public class Water_alarm implements Serializable{
    public int num;
    public int water_id;
@@ -92,5 +97,36 @@
        return water_alarm;
    }
    
    /**
     * 创建读取数据集合
     * @param master
     * @return
     */
    public BatchRead<Integer> createBatchRead(MyModbusMaster master){
        BatchRead<Integer> batch = new BatchRead<Integer>();
        batch.addLocator(0,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Watersystem_Operation_Fault ,master));//冷却系统各部件故障信息
        batch.addLocator(1,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Watersystem_BranchFlowTmp_Fault ,master));//冷却系统支路流量/温度故障信息
        batch.addLocator(2,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Watersystem_Pre_Fault , master));//冷却水压力故障
        batch.addLocator(3,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Watersystem_Operation_highorlow, master));//冷却系统各部件低/高
        batch.addLocator(4,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Watersystem_Tmp_highorlow, master));//冷却系统温度高/超高
        batch.addLocator(5,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Watersystem_TmpFlow_highorlow, master));//冷却系统支路温度/流量低/超低
        batch.addLocator(6,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Watersystem_Flow_ighorlow, master));//冷却水部分支路流量低/超低
        return batch;
    }
    /**
     * 解析返回请求
     * @param res
     */
    public void putBatchResult(BatchResults<Integer> res) {
        if(res != null) {
            this.Watersystem_Operation_Fault = MyModbusUtils.readShortToInt(res.getValue(0));
            this.Watersystem_BranchFlowTmp_Fault = MyModbusUtils.readShortToInt(res.getValue(1));
            this.Watersystem_Pre_Fault = MyModbusUtils.readShortToInt(res.getValue(2));
            this.Watersystem_Operation_highorlow = MyModbusUtils.readShortToInt(res.getValue(3));
            this.Watersystem_Tmp_highorlow = MyModbusUtils.readShortToInt(res.getValue(4));
            this.Watersystem_TmpFlow_highorlow = MyModbusUtils.readShortToInt(res.getValue(5));
            this.Watersystem_Flow_ighorlow = MyModbusUtils.readShortToInt(res.getValue(6));
        }
    }
}
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_brach.java
@@ -2,6 +2,11 @@
import java.io.Serializable;
import com.modbus.data.MyModbusMaster;
import com.modbus.data.MyModbusUtils;
import com.serotonin.modbus4j.BatchRead;
import com.serotonin.modbus4j.BatchResults;
public class Water_brach implements Serializable{
      public int num;//'主键',
      public int water_id;//'水冷系统id',
@@ -299,5 +304,80 @@
                + ", Branch_pre_9=" + Branch_pre_9 + ", note=" + note + "]";
    }
      
    /**
     * 创建读取数据集合
     * @param master
     * @return
     */
    public BatchRead<Integer> createBatchRead(MyModbusMaster master){
        BatchRead<Integer> batch = new BatchRead<Integer>();
        batch.addLocator(0,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_flow_1 ,master));//'1#支路流量',
        batch.addLocator(1,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_flow_2,master));
        batch.addLocator(2,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_flow_3, master));
        batch.addLocator(3,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_flow_4, master));
        batch.addLocator(4,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_flow_5, master));
        batch.addLocator(5,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_flow_6, master));
        batch.addLocator(6,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_flow_7, master));
        batch.addLocator(7,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_flow_8, master));
        batch.addLocator(8,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_flow_9, master));//'9#支路流量',
      
        batch.addLocator(9,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_tmp_1, master));//'1#支路温度',
        batch.addLocator(10,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_tmp_2 ,master));
        batch.addLocator(11,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_tmp_3 ,master));
        batch.addLocator(12,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_tmp_4, master));
        batch.addLocator(13,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_tmp_5, master));
        batch.addLocator(14,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_tmp_6, master));
        batch.addLocator(15,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_tmp_7, master));
        batch.addLocator(16,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_tmp_8, master));
        batch.addLocator(17,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_tmp_9, master));//'9#支路温度',
        batch.addLocator(18,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_pre_1, master));//'1#支路压力',
        batch.addLocator(19,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_pre_2, master));
        batch.addLocator(20,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_pre_3, master));
        batch.addLocator(21,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_pre_4, master));
        batch.addLocator(22,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_pre_5, master));
        batch.addLocator(23,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_pre_6, master));
        batch.addLocator(24,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_pre_7, master));
        batch.addLocator(25,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_pre_8, master));
        batch.addLocator(26,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Branch_pre_9, master));//'9#支路压力',
        return batch;
    }
    /**
     * 解析返回请求
     * @param res
     */
    public void putBatchResult(BatchResults<Integer> res) {
        if(res != null) {
            this.Branch_flow_1 = MyModbusUtils.readShortToFloat(res.getValue(0));
            this.Branch_flow_2 = MyModbusUtils.readShortToFloat(res.getValue(1));
            this.Branch_flow_3 = MyModbusUtils.readShortToFloat(res.getValue(2));
            this.Branch_flow_4 = MyModbusUtils.readShortToFloat(res.getValue(3));
            this.Branch_flow_5 = MyModbusUtils.readShortToFloat(res.getValue(4));
            this.Branch_flow_6 = MyModbusUtils.readShortToFloat(res.getValue(5));
            this.Branch_flow_7 = MyModbusUtils.readShortToFloat(res.getValue(6));
            this.Branch_flow_8 = MyModbusUtils.readShortToFloat(res.getValue(7));
            this.Branch_flow_9 = MyModbusUtils.readShortToFloat(res.getValue(8));
            this.Branch_tmp_1 = MyModbusUtils.readShortToFloat(res.getValue(9));
            this.Branch_tmp_2 = MyModbusUtils.readShortToFloat(res.getValue(10));
            this.Branch_tmp_3 = MyModbusUtils.readShortToFloat(res.getValue(11));
            this.Branch_tmp_4 = MyModbusUtils.readShortToFloat(res.getValue(12));
            this.Branch_tmp_5 = MyModbusUtils.readShortToFloat(res.getValue(13));
            this.Branch_tmp_6 = MyModbusUtils.readShortToFloat(res.getValue(14));
            this.Branch_tmp_7 = MyModbusUtils.readShortToFloat(res.getValue(15));
            this.Branch_tmp_8 = MyModbusUtils.readShortToFloat(res.getValue(16));
            this.Branch_tmp_9 = MyModbusUtils.readShortToFloat(res.getValue(17));
            this.Branch_pre_1 = MyModbusUtils.readShortToFloat(res.getValue(18));
            this.Branch_pre_2 = MyModbusUtils.readShortToFloat(res.getValue(19));
            this.Branch_pre_3 = MyModbusUtils.readShortToFloat(res.getValue(20));
            this.Branch_pre_4 = MyModbusUtils.readShortToFloat(res.getValue(21));
            this.Branch_pre_5 = MyModbusUtils.readShortToFloat(res.getValue(22));
            this.Branch_pre_6 = MyModbusUtils.readShortToFloat(res.getValue(23));
            this.Branch_pre_7 = MyModbusUtils.readShortToFloat(res.getValue(24));
            this.Branch_pre_8 = MyModbusUtils.readShortToFloat(res.getValue(25));
            this.Branch_pre_9 = MyModbusUtils.readShortToFloat(res.getValue(26));
        }
    }
}
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_rt.java
@@ -2,6 +2,11 @@
import java.io.Serializable;
import com.modbus.data.MyModbusMaster;
import com.modbus.data.MyModbusUtils;
import com.serotonin.modbus4j.BatchRead;
import com.serotonin.modbus4j.BatchResults;
public class Water_rt implements Serializable{
      public int num;//'主键',
      public int water_id ;//'水冷系统id',
@@ -122,5 +127,46 @@
                + ", External_tmp=" + External_tmp + ", External_pre=" + External_pre + ", note=" + note + "]";
    }
    
    /**
     * 创建读取数据集合
     * @param master
     * @return
     */
    public BatchRead<Integer> createBatchRead(MyModbusMaster master){
        BatchRead<Integer> batch = new BatchRead<Integer>();
        batch.addLocator(0,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Cooling_flow ,master));//'冷却水流量',
        batch.addLocator(1,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Supply_tmp ,master));//'供水温度',
        batch.addLocator(2,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Supply_pre , master));//'供水压力',
        batch.addLocator(3,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.back_tem, master));//'回水温度',
        batch.addLocator(4,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.back_pre, master));//'回水压力',
        batch.addLocator(5,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Cooling_ser, master));//'冷却水电导率',
        batch.addLocator(6,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Buffer_tank_level, master));//'缓冲罐液位'
        batch.addLocator(7,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Buffer_tank_pre, master));    //'缓冲罐压力',
        batch.addLocator(8,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Humidity_chamber, master));//'阀厅湿度',
        batch.addLocator(9,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Tem_chamber, master));    //'阀厅温度',
        batch.addLocator(10,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.External_tmp, master));//'外水温度',
        batch.addLocator(11,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.External_pre,master));//'外水压力',
        return batch;
    }
    /**
     * 解析返回请求
     * @param res
     */
    public void putBatchResult(BatchResults<Integer> res) {
        if(res != null) {
            this.cooling_flow = MyModbusUtils.readShortToFloat(res.getValue(0));
            this.supply_tmp = MyModbusUtils.readShortToFloat(res.getValue(1));
            this.Supply_pre = MyModbusUtils.readShortToFloat(res.getValue(2));
            this.back_tem = MyModbusUtils.readShortToFloat(res.getValue(3));
            this.back_pre = MyModbusUtils.readShortToFloat(res.getValue(4));
            this.Cooling_ser = MyModbusUtils.readShortToFloat(res.getValue(5));
            this.Buffer_tank_level = MyModbusUtils.readShortToFloat(res.getValue(6));
            this.Buffer_tank_pre = MyModbusUtils.readShortToFloat(res.getValue(7));
            this.Humidity_chamber = MyModbusUtils.readShortToFloat(res.getValue(8));
            this.Tem_chamber= MyModbusUtils.readShortToFloat(res.getValue(9));
            this.External_tmp= MyModbusUtils.readShortToFloat(res.getValue(10));
            this.External_pre = MyModbusUtils.readShortToFloat(res.getValue(11));
      
}
    }
}
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_state.java
@@ -2,6 +2,11 @@
import java.io.Serializable;
import com.modbus.data.MyModbusMaster;
import com.modbus.data.MyModbusUtils;
import com.serotonin.modbus4j.BatchRead;
import com.serotonin.modbus4j.BatchResults;
public class Water_state implements Serializable{
      public int num;//'主键',
      public int water_id;//'水冷系统id',
@@ -164,5 +169,42 @@
                + ", Water_system_function=" + Water_system_function + ", note=" + note + "]";
    }
    
    /**
     * 创建读取数据集合
     * @param master
     * @return
     */
    public BatchRead<Integer> createBatchRead(MyModbusMaster master){
        BatchRead<Integer> batch = new BatchRead<Integer>();
        batch.addLocator(0,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Watersystem_All_Operation ,master));//水冷系统各部件运行情况
        batch.addLocator(1,MyModbusUtils.createBaseLocator(Watersystem_ModbusAddress.Watersystem_All_State ,master));//故障复位信号
        return batch;
    }
    /**
     * 解析返回请求
     * @param res
     */
    public void putBatchResult(BatchResults<Integer> res) {
        if(res != null) {
            int Watersystem_All_Operation= MyModbusUtils.readShortToInt(res.getValue(0));
            this.P01_main_pump=(Watersystem_All_Operation>>8&1);
            this.P11_replenish_pump=(Watersystem_All_Operation>>9&1);
            this.P12_pretest_pump=(Watersystem_All_Operation>>10&1);
            this.P13_replenish_pump=(Watersystem_All_Operation>>11&1);
            this.H01_electric_heater=(Watersystem_All_Operation>>12&1);
            this.H02_electric_heater=(Watersystem_All_Operation>>13&1);
            this.Solenoid_openflag=(Watersystem_All_Operation>>14&1);
            this.Solenoid_shutflag=(Watersystem_All_Operation>>15&1);
            this.valve_start=(Watersystem_All_Operation>>0&1);
            this.Exhaust_start=(Watersystem_All_Operation>>8&1);
            this.remote_start=(Watersystem_All_Operation>>8&5);
            this.remote_stop=(Watersystem_All_Operation>>8&6);
            this.Operation_ooled_devices=(Watersystem_All_Operation>>8&7);
            int Watersystem_All_State = MyModbusUtils.readShortToInt(res.getValue(1));
            this.Auto_control_state=(Watersystem_All_State>>8&1);
            this.Manual_control_state=(Watersystem_All_State>>9&1);
            this.remote_control_state=(Watersystem_All_State>>10&1);
            this.Water_system_function=(Watersystem_All_State>>11&1);
        }
    }
}
WaterSystem_MonitorServer/src/com/watersystem/monitor/Watersystem_SocketClient_Thread.java
@@ -8,6 +8,8 @@
import com.modbus.data.MyModbusMaster;
import com.modbus.data.MyModbusUtils;
import com.serotonin.modbus4j.BatchRead;
import com.serotonin.modbus4j.BatchResults;
import com.serotonin.modbus4j.code.DataType;
import com.sql.MysqlConnPool;
@@ -48,21 +50,25 @@
                
                if(runCount %2 == 0) {
                    //*************************** 更新水冷系统实时信息******************************//*
                    readWater_rt(master,wrt);
                    //readWater_rt(master,wrt);
                    readMutilWater_rt(master, wrt);
                    Water_Task_SQL.replace_water_rt(conn_pool, wrt);
                    
                    //**************************** 更新水冷系统分支实时信息 *****************************//*
                    readWater_brach(master,wbrach);
                    //readWater_brach(master,wbrach);
                    readMutilWater_brach(master, wbrach);
                    Water_Task_SQL.replace_water_brach(conn_pool, wbrach);
                    
                    //**************************** 更新水冷系统状态信息 *****************************//*
                    readWater_state(master,wstate);
                    //readWater_state(master,wstate);
                    readMutilWater_state(master, wstate);
                    Water_Task_SQL.replace_water_state(conn_pool, wstate);
                }
                
                if(runCount %4 == 0) {
                    //*************************** 读取水冷信息故障 ******************************//*
                    readWaterAlarmData(master,walarm);
                    //readWaterAlarmData(master,walarm);
                    readMutilWaterAlarmData(master, walarm);
                    Water_Task_SQL.insertOrUpdateWater_alarmTable(conn_pool, listAlarm);
                }
                
@@ -104,7 +110,7 @@
        wrt.External_tmp = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.External_tmp,DataType.TWO_BYTE_INT_SIGNED, master), wrt.External_tmp);                //'外水温度',    
        wrt.External_pre = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.External_pre, DataType.TWO_BYTE_INT_SIGNED, master), wrt.External_pre);//'外水压力',
    }
     /*     更新电源实时信息
     /*     更新电源实时分支信息
     * @param master
     * @param load_state
     */
@@ -529,7 +535,406 @@
            }
        }
    }
    /**
     * 多点读取水冷系统实时信息
     * @param master
     * @param dbutton
     */
    public void readMutilWater_rt(MyModbusMaster master, Water_rt wrt) {
        BatchRead<Integer> batch = wrt.createBatchRead(master);
        BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master);
        wrt.putBatchResult(res);
    }
    
    /**
     * 更新水冷系统实时状态信息
     * @param master
     * @param dstate
     */
    public void readMutilWater_state(MyModbusMaster master, Water_state wstate) {
        BatchRead<Integer> batch = wstate.createBatchRead(master);
        BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master);
        wstate.putBatchResult(res);
    }
    /**
     * 更新电源实时分支信息
     * @param master
     * @param dstate
     */
    public void readMutilWater_brach(MyModbusMaster master, Water_brach wbrach) {
        BatchRead<Integer> batch = wbrach.createBatchRead(master);
        BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master);
        wbrach.putBatchResult(res);
    }
    /**
     * 更新电源实时分支信息
     * @param master
     * @param dstate
     */
    public void readMutilWaterAlarmData(MyModbusMaster master, Water_alarm walarm) {
        BatchRead<Integer> batch = walarm.createBatchRead(master);
        BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master);
        walarm.putBatchResult(res);
        listAlarm=new ArrayList<Water_alarm>();
        if(res!=null) {
            if(walarm.Watersystem_Operation_Fault>0) {
                if((walarm.Watersystem_Operation_Fault>>8&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129300);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_Fault>>9&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129301);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_Fault>>10&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129302);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_Fault>>11&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129303);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_Fault>>12&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129304);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_Fault>>13&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129305);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_Fault>>14&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129306);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_Fault>>15&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129307);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_Fault>>0&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129308);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_Fault>>1&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129309);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_Fault>>2&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129310);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_Fault>>3&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129311);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_Fault>>4&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129312);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_Fault>>5&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129313);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_Fault>>6&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129314);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_Fault>>7&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129315);listAlarm.add(w);
                }
            }
            walarm.Watersystem_BranchFlowTmp_Fault = (int)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Watersystem_BranchFlowTmp_Fault, DataType.TWO_BYTE_INT_SIGNED, master), walarm.Watersystem_BranchFlowTmp_Fault);//冷却系统支路流量/温度故障信息
            if(walarm.Watersystem_BranchFlowTmp_Fault>0) {
                if((walarm.Watersystem_BranchFlowTmp_Fault>>8&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129400);listAlarm.add(w);
                }
                if((walarm.Watersystem_BranchFlowTmp_Fault>>9&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129401);listAlarm.add(w);
                }
                if((walarm.Watersystem_BranchFlowTmp_Fault>>10&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129402);listAlarm.add(w);
                }
                if((walarm.Watersystem_BranchFlowTmp_Fault>>11&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129403);listAlarm.add(w);
                }
                if((walarm.Watersystem_BranchFlowTmp_Fault>>12&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129404);listAlarm.add(w);
                }
                if((walarm.Watersystem_BranchFlowTmp_Fault>>13&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129405);listAlarm.add(w);
                }
                if((walarm.Watersystem_BranchFlowTmp_Fault>>14&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129406);listAlarm.add(w);
                }
                if((walarm.Watersystem_BranchFlowTmp_Fault>>15&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129407);listAlarm.add(w);
                }
                if((walarm.Watersystem_BranchFlowTmp_Fault>>0&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129408);listAlarm.add(w);
                }
                if((walarm.Watersystem_BranchFlowTmp_Fault>>1&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129409);listAlarm.add(w);
                }
                if((walarm.Watersystem_BranchFlowTmp_Fault>>2&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129410);listAlarm.add(w);
                }
                if((walarm.Watersystem_BranchFlowTmp_Fault>>3&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129411);listAlarm.add(w);
                }
                if((walarm.Watersystem_BranchFlowTmp_Fault>>4&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129412);listAlarm.add(w);
                }
                if((walarm.Watersystem_BranchFlowTmp_Fault>>5&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129413);listAlarm.add(w);
                }
                if((walarm.Watersystem_BranchFlowTmp_Fault>>6&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129414);listAlarm.add(w);
                }
                if((walarm.Watersystem_BranchFlowTmp_Fault>>7&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129415);listAlarm.add(w);
                }
            }
            walarm.Watersystem_Pre_Fault = (int)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Watersystem_Pre_Fault, DataType.TWO_BYTE_INT_SIGNED, master), walarm.Watersystem_Pre_Fault);//冷却水压力故障
            if(walarm.Watersystem_Pre_Fault>0) {
                if((walarm.Watersystem_Pre_Fault>>8&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129500);listAlarm.add(w);
                }
                if((walarm.Watersystem_Pre_Fault>>9&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129501);listAlarm.add(w);
                }
                if((walarm.Watersystem_Pre_Fault>>10&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129502);listAlarm.add(w);
                }
                if((walarm.Watersystem_Pre_Fault>>11&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129503);listAlarm.add(w);
                }
                if((walarm.Watersystem_Pre_Fault>>12&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129504);listAlarm.add(w);
                }
                if((walarm.Watersystem_Pre_Fault>>13&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129505);listAlarm.add(w);
                }
                if((walarm.Watersystem_Pre_Fault>>14&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129506);listAlarm.add(w);
                }
                if((walarm.Watersystem_Pre_Fault>>15&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129507);listAlarm.add(w);
                }
                if((walarm.Watersystem_Pre_Fault>>0&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129508);listAlarm.add(w);
                }
                if((walarm.Watersystem_Pre_Fault>>1&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129509);listAlarm.add(w);
                }
                if((walarm.Watersystem_Pre_Fault>>2&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129510);listAlarm.add(w);
                }
                if((walarm.Watersystem_Pre_Fault>>3&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129511);listAlarm.add(w);
                }
                if((walarm.Watersystem_Pre_Fault>>4&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129512);listAlarm.add(w);
                }
                if((walarm.Watersystem_Pre_Fault>>5&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129513);listAlarm.add(w);
                }
                if((walarm.Watersystem_Pre_Fault>>6&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129514);listAlarm.add(w);
                }
                if((walarm.Watersystem_Pre_Fault>>7&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129515);listAlarm.add(w);
                }
            }
            walarm.Watersystem_Operation_highorlow = (int)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Watersystem_Operation_highorlow, DataType.TWO_BYTE_INT_SIGNED, master), walarm.Watersystem_Operation_highorlow);//冷却系统各部件低/高
            if(walarm.Watersystem_Operation_highorlow>0) {
                if((walarm.Watersystem_Operation_highorlow>>8&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129600);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_highorlow>>9&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129601);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_highorlow>>10&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129602);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_highorlow>>11&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129603);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_highorlow>>12&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129604);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_highorlow>>13&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129605);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_highorlow>>14&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129606);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_highorlow>>15&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129607);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_highorlow>>0&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129608);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_highorlow>>1&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129609);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_highorlow>>2&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129610);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_highorlow>>3&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129611);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_highorlow>>4&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129612);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_highorlow>>5&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129613);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_highorlow>>6&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129614);listAlarm.add(w);
                }
                if((walarm.Watersystem_Operation_highorlow>>7&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129615);listAlarm.add(w);
                }
            }
            walarm.Watersystem_Tmp_highorlow = (int)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Watersystem_Tmp_highorlow, DataType.TWO_BYTE_INT_SIGNED, master), walarm.Watersystem_Tmp_highorlow);//冷却系统温度高/超高
            if(walarm.Watersystem_Tmp_highorlow>0) {
                if((walarm.Watersystem_Tmp_highorlow>>8&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129700);listAlarm.add(w);
                }
                if((walarm.Watersystem_Tmp_highorlow>>9&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129701);listAlarm.add(w);
                }
                if((walarm.Watersystem_Tmp_highorlow>>10&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129702);listAlarm.add(w);
                }
                if((walarm.Watersystem_Tmp_highorlow>>11&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129703);listAlarm.add(w);
                }
                if((walarm.Watersystem_Tmp_highorlow>>12&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129704);listAlarm.add(w);
                }
                if((walarm.Watersystem_Tmp_highorlow>>13&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129705);listAlarm.add(w);
                }
                if((walarm.Watersystem_Tmp_highorlow>>14&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129706);listAlarm.add(w);
                }
                if((walarm.Watersystem_Tmp_highorlow>>15&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129707);listAlarm.add(w);
                }
                if((walarm.Watersystem_Tmp_highorlow>>0&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129708);listAlarm.add(w);
                }
                if((walarm.Watersystem_Tmp_highorlow>>1&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129708);listAlarm.add(w);
                }
                if((walarm.Watersystem_Tmp_highorlow>>2&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129710);listAlarm.add(w);
                }
                if((walarm.Watersystem_Tmp_highorlow>>3&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129711);listAlarm.add(w);
                }
                if((walarm.Watersystem_Tmp_highorlow>>4&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129712);listAlarm.add(w);
                }
                if((walarm.Watersystem_Tmp_highorlow>>5&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129713);listAlarm.add(w);
                }
                if((walarm.Watersystem_Tmp_highorlow>>6&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129714);listAlarm.add(w);
                }
                if((walarm.Watersystem_Tmp_highorlow>>7&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129715);listAlarm.add(w);
                }
            }
            walarm.Watersystem_TmpFlow_highorlow = (int)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Watersystem_TmpFlow_highorlow, DataType.TWO_BYTE_INT_SIGNED, master), walarm.Watersystem_TmpFlow_highorlow);//冷却系统支路温度/流量低/超低
            if(walarm.Watersystem_TmpFlow_highorlow>0) {
                if((walarm.Watersystem_TmpFlow_highorlow>>8&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129800);listAlarm.add(w);
                }
                if((walarm.Watersystem_TmpFlow_highorlow>>9&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129801);listAlarm.add(w);
                }
                if((walarm.Watersystem_TmpFlow_highorlow>>10&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129802);listAlarm.add(w);
                }
                if((walarm.Watersystem_TmpFlow_highorlow>>11&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129803);listAlarm.add(w);
                }
                if((walarm.Watersystem_TmpFlow_highorlow>>12&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129804);listAlarm.add(w);
                }
                if((walarm.Watersystem_TmpFlow_highorlow>>13&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129805);listAlarm.add(w);
                }
                if((walarm.Watersystem_TmpFlow_highorlow>>14&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129806);listAlarm.add(w);
                }
                if((walarm.Watersystem_TmpFlow_highorlow>>15&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129807);listAlarm.add(w);
                }
                if((walarm.Watersystem_TmpFlow_highorlow>>0&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129808);listAlarm.add(w);
                }
                if((walarm.Watersystem_TmpFlow_highorlow>>1&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129809);listAlarm.add(w);
                }
                if((walarm.Watersystem_TmpFlow_highorlow>>2&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129810);listAlarm.add(w);
                }
                if((walarm.Watersystem_TmpFlow_highorlow>>3&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129811);listAlarm.add(w);
                }
                if((walarm.Watersystem_TmpFlow_highorlow>>4&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129812);listAlarm.add(w);
                }
                if((walarm.Watersystem_TmpFlow_highorlow>>5&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129813);listAlarm.add(w);
                }
                if((walarm.Watersystem_TmpFlow_highorlow>>6&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129814);listAlarm.add(w);
                }
                if((walarm.Watersystem_TmpFlow_highorlow>>7&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129815);listAlarm.add(w);
                }
            }
            walarm.Watersystem_Flow_ighorlow = (int)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Watersystem_TmpFlow_highorlow, DataType.TWO_BYTE_INT_SIGNED, master), walarm.Watersystem_TmpFlow_highorlow);//冷却水部分支路流量低/超低
            if(walarm.Watersystem_Flow_ighorlow>0) {
                if((walarm.Watersystem_Flow_ighorlow>>8&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129900);listAlarm.add(w);
                }
                if((walarm.Watersystem_Flow_ighorlow>>9&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129901);listAlarm.add(w);
                }
                if((walarm.Watersystem_Flow_ighorlow>>10&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129902);listAlarm.add(w);
                }
                if((walarm.Watersystem_Flow_ighorlow>>11&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129903);listAlarm.add(w);
                }
                if((walarm.Watersystem_Flow_ighorlow>>12&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129904);listAlarm.add(w);
                }
                if((walarm.Watersystem_Flow_ighorlow>>13&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129905);listAlarm.add(w);
                }
                if((walarm.Watersystem_Flow_ighorlow>>14&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129906);listAlarm.add(w);
                }
                if((walarm.Watersystem_Flow_ighorlow>>15&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129907);listAlarm.add(w);
                }
                if((walarm.Watersystem_Flow_ighorlow>>0&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129908);listAlarm.add(w);
                }
                if((walarm.Watersystem_Flow_ighorlow>>1&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129909);listAlarm.add(w);
                }
                if((walarm.Watersystem_Flow_ighorlow>>2&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129910);listAlarm.add(w);
                }
                if((walarm.Watersystem_Flow_ighorlow>>3&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129911);listAlarm.add(w);
                }
                if((walarm.Watersystem_Flow_ighorlow>>4&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129912);listAlarm.add(w);
                }
                if((walarm.Watersystem_Flow_ighorlow>>5&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129913);listAlarm.add(w);
                }
                if((walarm.Watersystem_Flow_ighorlow>>6&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129914);listAlarm.add(w);
                }
                if((walarm.Watersystem_Flow_ighorlow>>7&1)==1) {
                    Water_alarm w=walarm.createWalarm(walarm.getWater_id(), 129915);listAlarm.add(w);
                }
            }
        }
    }
    public static void main(String[] args) {
        int b=13;
        String a=Integer.toBinaryString(b>>0&1);