whyclxw
2020-08-13 8f98a6c2fae798bff09608682b8d60bac01acb74
4MW第一次完成提交
5个文件已添加
7个文件已修改
1155 ■■■■■ 已修改文件
ElectricalSystem_MonitorServer_4KW/config.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electric_4KW_ModbusAddress.java 345 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electric_4Kw_ServerSocket_Thread.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electric_All_ServerSocket_Thread.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electric_Control_Single.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electric_Power.java 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electric_Switch.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electric_inf.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electrical_4KW_SocketClient_Thread.java 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electrical_ALL_SocketClient_Thread.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electrical_Task_SQL.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_4KW/src/main/main_ElectricalSystem_MonitorServer_4KW.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_4KW/config.xml
@@ -2,7 +2,7 @@
<root>
  <mysql_ramdb_recreate_en>false</mysql_ramdb_recreate_en>
  <mysql_server_ip>127.0.0.1</mysql_server_ip>
  <mysql_server_ip>118.89.139.230</mysql_server_ip>
  <!--SOURCE_BATTDATA_TYPE_FBSDEV = 0-->
  <!--SOURCE_BATTDATA_TYPE_SQLSERVER = 1-->
  <!--SOURCE_BATTDATA_TYPE_C_INTERFACE = 2-->
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electric_4KW_ModbusAddress.java
New file
@@ -0,0 +1,345 @@
package com.electrical.FourKW;
public class Electric_4KW_ModbusAddress {
    //ABCD套获取地址
    public static int getAddress(int electric_id,String addressName) {
        int address=0;
        if(addressName.equals("upsetcurr")) {//上位机设定电流
            switch (electric_id) {
            case 4001:address=25;break;
            case 4002:address=45;break;
            case 4003:address=65;break;
            case 4004:address=85;break;
            default:break;
            }
        }
        if(addressName.equals("upsetvol")) {//上位机设定电压
            switch (electric_id) {
            case 4001:address=26;break;
            case 4002:address=46;break;
            case 4003:address=66;break;
            case 4004:address=86;break;
            default:break;
            }
        }
        if(addressName.equals("convolcontrol")) {//恒压控制
            switch (electric_id) {
            case 4001:address=432;break;
            case 4002:address=752;break;
            case 4003:address=1072;break;
            case 4004:address=1392;break;
            default:break;
            }
        }
        if(addressName.equals("concurrcontrol")) {//恒流控制
            switch (electric_id) {
            case 4001:address=433;break;
            case 4002:address=753;break;
            case 4003:address=1073;break;
            case 4004:address=1393;break;
            default:break;
            }
        }
        if(addressName.equals("othermodes")) {//其他模式运行
            switch (electric_id) {
            case 4001:address=434;break;
            case 4002:address=754;break;
            case 4003:address=1074;break;
            case 4004:address=1394;break;
            default:break;
            }
        }
        if(addressName.equals("parallelmodes")) {//并联稳压运行
            switch (electric_id) {
            case 4001:address=435;break;
            case 4002:address=755;break;
            case 4003:address=1075;break;
            case 4004:address=1395;break;
            default:break;
            }
        }
        if(addressName.equals("startposition")) {//启动位
            switch (electric_id) {
            case 4001:address=436;break;
            case 4002:address=756;break;
            case 4003:address=1076;break;
            case 4004:address=1396;break;
            default:break;
            }
        }
        if(addressName.equals("stopposition")) {//ֹͣλ
            switch (electric_id) {
            case 4001:address=437;break;
            case 4002:address=757;break;
            case 4003:address=1077;break;
            case 4004:address=1397;break;
            default:break;
            }
        }
        if(addressName.equals("resetposition")) {//复位
            switch (electric_id) {
            case 4001:address=438;break;
            case 4002:address=758;break;
            case 4003:address=1078;break;
            case 4004:address=1398;break;
            default:break;
            }
        }
        if(addressName.equals("fanstart")) {//风机启动
            switch (electric_id) {
            case 4001:address=440;break;
            case 4002:address=760;break;
            case 4003:address=1080;break;
            case 4004:address=1400;break;
            default:break;
            }
        }
        if(addressName.equals("fanstop")) {//风机停止
            switch (electric_id) {
            case 4001:address=441;break;
            case 4002:address=761;break;
            case 4003:address=1081;break;
            case 4004:address=1401;break;
            default:break;
            }
        }
        if(addressName.equals("dcvol")) {//直流电压
            switch (electric_id) {
            case 4001:address=35;break;
            case 4002:address=55;break;
            case 4003:address=75;break;
            case 4004:address=95;break;
            default:break;
            }
        }if(addressName.equals("dccurr")) {//直流电流
            switch (electric_id) {
            case 4001:address=36;break;
            case 4002:address=56;break;
            case 4003:address=76;break;
            case 4004:address=96;break;
            default:break;
            }
        }
        if(addressName.equals("controlangle")) {//控制角
            switch (electric_id) {
            case 4001:address=37;break;
            case 4002:address=57;break;
            case 4003:address=77;break;
            case 4004:address=97;break;
            default:break;
            }
        }
        if(addressName.equals("loopflag")) {//开闭环标志位【0开环;1闭环】
            switch (electric_id) {
            case 4001:address=634;break;
            case 4002:address=954;break;
            case 4003:address=1274;break;
            case 4004:address=1594;break;
            default:break;
            }
        }
        if(addressName.equals("remoteflag")) {//就地远程标志位【0远程;1就地】
            switch (electric_id) {
            case 4001:address=635;break;
            case 4002:address=955;break;
            case 4003:address=1275;break;
            case 4004:address=1595;break;
            default:break;
            }
        }
        if(addressName.equals("orderflag")) {//正序逆序标志位【0正序;1逆序】
            switch (electric_id) {
            case 4001:address=636;break;
            case 4002:address=956;break;
            case 4003:address=1276;break;
            case 4004:address=1596;break;
            default:break;
            }
        }
        if(addressName.equals("consvolcurrflag")) {//恒压横流标志位【0恒压;1恒流】
            switch (electric_id) {
            case 4001:address=639;break;
            case 4002:address=959;break;
            case 4003:address=1279;break;
            case 4004:address=1599;break;
            default:break;
            }
        }
        if(addressName.equals("powerstartflag")) {//电源启动标志位【0停止;1启动】
            switch (electric_id) {
            case 4001:address=624;break;
            case 4002:address=944;break;
            case 4003:address=1264;break;
            case 4004:address=1584;break;
            default:break;
            }
        }
        if(addressName.equals("workmodelflag")) {//工作模式标志位【0其他模式;1并联稳压】
            switch (electric_id) {
            case 4001:address=625;break;
            case 4002:address=945;break;
            case 4003:address=1265;break;
            case 4004:address=1585;break;
            default:break;
            }
        }
        if(addressName.equals("case_trip_output")) {//机箱跳闸输出
            switch (electric_id) {
            case 4001:address=640;break;
            case 4002:address=960;break;
            case 4003:address=1280;break;
            case 4004:address=1600;break;
            default:break;
            }
        }
        if(addressName.equals("fault_reset_signal")) {//故障复位信号
            switch (electric_id) {
            case 4001:address=641;break;
            case 4002:address=961;break;
            case 4003:address=1281;break;
            case 4004:address=1601;break;
            default:break;
            }
        }
        if(addressName.equals("high_vol_switch_status")) {//高压开关状态
            switch (electric_id) {
            case 4001:address=642;break;
            case 4002:address=962;break;
            case 4003:address=1282;break;
            case 4004:address=1602;break;
            default:break;
            }
        }
        if(addressName.equals("stop_button")) {//急停按钮
            switch (electric_id) {
            case 4001:address=643;break;
            case 4002:address=963;break;
            case 4003:address=1283;break;
            case 4004:address=1603;break;
            default:break;
            }
        }
        if(addressName.equals("main_cabinet_fan_status")) {//主柜风机状态
            switch (electric_id) {
            case 4001:address=644;break;
            case 4002:address=964;break;
            case 4003:address=1284;break;
            case 4004:address=1604;break;
            default:break;
            }
        }
        if(addressName.equals("trans_cabinet_door_lock")) {//变压器柜门连锁
            switch (electric_id) {
            case 4001:address=645;break;
            case 4002:address=965;break;
            case 4003:address=1285;break;
            case 4004:address=1605;break;
            default:break;
            }
        }
        if(addressName.equals("trans_cabinet_overtem_alarm")) {//变压器超温报警
            switch (electric_id) {
            case 4001:address=646;break;
            case 4002:address=966;break;
            case 4003:address=1286;break;
            case 4004:address=1606;break;
            default:break;
            }
        }
        if(addressName.equals("trans_cabinet_overtem_trip")) {//变压器超温跳闸
            switch (electric_id) {
            case 4001:address=647;break;
            case 4002:address=967;break;
            case 4003:address=1287;break;
            case 4004:address=1607;break;
            default:break;
            }
        }
        if(addressName.equals("qs1_state")) {//QS1״̬
            switch (electric_id) {
            case 4001:address=648;break;
            case 4002:address=968;break;
            case 4003:address=1288;break;
            case 4004:address=1608;break;
            default:break;
            }
        }
        if(addressName.equals("qs2_state")) {//QS2״̬
            switch (electric_id) {
            case 4001:address=649;break;
            case 4002:address=969;break;
            case 4003:address=1289;break;
            case 4004:address=1609;break;
            default:break;
            }
        }
        if(addressName.equals("switch_cabinet_door_status")) {//转换开关柜门状态
            switch (electric_id) {
            case 4001:address=652;break;
            case 4002:address=972;break;
            case 4003:address=1292;break;
            case 4004:address=1612;break;
            default:break;
            }
        }
        if(addressName.equals("alldcvol")) {//总直流电压
            switch (electric_id) {
            case 4001:address=41;break;
            case 4003:address=81;break;
            default:break;
            }
        }
        if(addressName.equals("alldccurr")) {//总直流电流
            switch (electric_id) {
            case 4001:address=42;break;
            case 4003:address=82;break;
            default:break;
            }
        }
        return address;
    }
    //获取总开关地址和总状态地址
    public static int getAllAdd(String addressName) {
        int address=0;
        switch (addressName) {
        case "km1_switchon_one":address=240;break;//一号转换开关柜KM1合闸指令
        case "km1_switchoff_one":address=241;break;    //一号转换开关柜KM1分闸指令
        case "km2_switchon_one":address=242;break;//一号转换开关柜KM2合闸指令
        case "km2_switchoff_one":address=243;break;    //一号转换开关柜KM2分闸指令
        case "km3_switchon_one":address=244;break;//一号转换开关柜KM3合闸指令
        case "km3_switchoff_one":address=245;break;    //一号转换开关柜KM3分闸指令
        case "km4_switchon_one":address=246;break;//一号转换开关柜KM4合闸指令
        case "km4_switchoff_one":address=247;break;    //一号转换开关柜KM4分闸指令
        case "km1_switchon_two":address=248;break;//二号转换开关柜KM1合闸指令
        case "km1_switchoff_two":address=249;break;//二号转换开关柜KM1分闸指令
        case "km2_switchon_two":address=250;break;//二号转换开关柜KM2合闸指令
        case "km2_switchoff_two":address=251;break;//二号转换开关柜KM2分闸指令
        case "km3_switchon_two":address=252;break;//二号转换开关柜KM3合闸指令
        case "km3_switchoff_two":address=253;break;//二号转换开关柜KM3分闸指令
        case "km4_switchon_two":address=254;break;//二号转换开关柜KM4合闸指令
        case "km4_switchoff_two":address=255;break;//二号转换开关柜KM4分闸指令
        case "start_a":address=272;break;//A套启动
        case "stop_a":address=288;break;//A套停止
        case "start_b":address=273;break;//B套启动
        case "stop_b":address=289;break;//B套停止
        case "start_c":address=274;break;//C套启动
        case "stop_c":address=290;break;//C套停止
        case "start_d":address=275;break;//D套启动
        case "stop_d":address=291;break;//D套停止
        case "abconn_start":address=276;break;//AB套并联运行启动
        case "abconn_stop":address=292;break;//AB套并联运行停止
        case "cdconn_start":address=277;break;//CD套并联运行启动
        case "cdconn_stop":address=293;break;//CD套并联运行停止
        case "allconn_start":address=278;break;//四套并联运行启动
        case "allconn_stop":address=294;break;//四套并联运行停止
        case "abconn_flag":address=312;break;//AB并串联标志位
        case "cdconn_flag":address=313;break;//CD并串联标志位
        case "abconn_volset":address=275;break;//AB并联电压给定
        case "abconn_currset":address=276;break;//AB并联电流给定
        case "cdconn_volset":address=277;break;//CD并联电压给定
        case "cdconn_currset":address=278;break;//CD并联电流给定
        default:break;
        }
        return address;
    }
}
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electric_4Kw_ServerSocket_Thread.java
New file
@@ -0,0 +1,63 @@
package com.electrical.FourKW;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.base.Com;
import com.sql.MysqlConnPool;
public class Electric_4Kw_ServerSocket_Thread implements Runnable{
    public List<Electric_inf> einfs;
    public MysqlConnPool conn_pool;
    public Map<Integer, Electrical_4KW_SocketClient_Thread> einfthreads;
    public Electric_4Kw_ServerSocket_Thread(MysqlConnPool conn_pool,List<Electric_inf> einfs) {
        this.einfs = einfs;
        this.conn_pool = conn_pool;
        this.einfthreads = new HashMap<Integer,Electrical_4KW_SocketClient_Thread>();
    }
    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println(" Electrical_4KW_ServerSocket_Thread Start at " +Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
        for(int i = 0;i<einfs.size();i++) {
            //插入或更新电源单表控制
            Electrical_Task_SQL.replace_Electric_Control_Single(conn_pool, new Electric_Control_Single(einfs.get(i).getElectric_id()));
            //插入或更新电源实时信息表和电源实时状态表
            Electrical_Task_SQL.replace_Electric_Rt(conn_pool, new Electric_Rt(einfs.get(i).getElectric_id()));
            //插入或更新电源实时状态表
            Electrical_Task_SQL.replace_Electric_State(conn_pool, new Electric_State(einfs.get(i).getElectric_id()));
            Electrical_4KW_SocketClient_Thread thread = new Electrical_4KW_SocketClient_Thread(einfs.get(i),conn_pool);
            einfthreads.put(einfs.get(i).electric_id, thread);
            new Thread(thread).start();
        }
        /*while(true) {
            try {
                for(int i=0;i<motors.size();i++) {
                    Motor_inf motor = motors.get(i);
                    Motor_inf temp = motorthreads.get(motor.motor_id).motor;
                    if(temp == null) {
                        //尚未启动的设备
                        Motor_SocketClient_Thread thread = new Motor_SocketClient_Thread(motor,conn_pool);
                        motorthreads.put(motor.motor_id, thread);
                        new Thread(thread).start();
                    }
                }
                Thread.sleep(5000);
            } catch (Exception e) {
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException e1) {
                    //e1.printStackTrace();
                }
                e.printStackTrace();
            }
        }*/
    }
}
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electric_All_ServerSocket_Thread.java
New file
@@ -0,0 +1,34 @@
package com.electrical.FourKW;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.base.Com;
import com.sql.MysqlConnPool;
public class Electric_All_ServerSocket_Thread implements Runnable{
    public MysqlConnPool conn_pool;
    public String PLC_ip;
    public Electric_All_ServerSocket_Thread(MysqlConnPool conn_pool,String PLC_ip) {
        this.conn_pool = conn_pool;
        this.PLC_ip=PLC_ip;
    }
    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println(" Electrical_ALL_ServerSocket_Thread Start at " +Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
        //插入或更新电源总开关状态表
        Electrical_Task_SQL.replace_Electric_Switch(conn_pool, new Electric_Switch(PLC_ip));
        //插入或更新4套电源状态表
        Electrical_Task_SQL.replace_Electric_Power(conn_pool, new Electric_Power(PLC_ip));
        Electrical_ALL_SocketClient_Thread thread = new Electrical_ALL_SocketClient_Thread(PLC_ip,conn_pool);
        new Thread(thread).start();
    }
}
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electric_Control_Single.java
@@ -17,6 +17,26 @@
    public float dccurr;            //直流电流
    public float controlangle;        //控制角
    
    public boolean control_en = false;
    public void clear() {
        this.control_en = false;
        this.upsetcurr = 0;
        this.upsetvol = 0;
        this.convolcontrol = 0;
        this.concurrcontrol = 0;
        this.othermodes = 0;
        this.parallelmodes = 0;
        this.startposition = 0;
        this.stopposition = 0;
        this.resetposition = 0;
        this.fanstart = 0;
        this.fanstop = 0;
        this.dcvol = 0;
        this.dccurr = 0;
        this.controlangle = 0;
    }
    public Electric_Control_Single(int electric_id) {
        this.electric_id = electric_id;
    }
@@ -69,45 +89,105 @@
        this.electric_id = electric_id;
    }
    public void setUpsetcurr(float upsetcurr) {
        if(upsetcurr > 0) {
            control_en = true;
        }
        this.upsetcurr = upsetcurr;
    }
    public void setUpsetvol(float upsetvol) {
        if(upsetvol > 0) {
            control_en = true;
        }
        this.upsetvol = upsetvol;
    }
    public void setConvolcontrol(int convolcontrol) {
        if(convolcontrol > 0) {
            control_en = true;
        }
        this.convolcontrol = convolcontrol;
    }
    public void setConcurrcontrol(int concurrcontrol) {
        if(concurrcontrol > 0) {
            control_en = true;
        }
        this.concurrcontrol = concurrcontrol;
    }
    public void setOthermodes(int othermodes) {
        if(othermodes > 0) {
            control_en = true;
        }
        this.othermodes = othermodes;
    }
    public void setParallelmodes(int parallelmodes) {
        if(parallelmodes > 0) {
            control_en = true;
        }
        this.parallelmodes = parallelmodes;
    }
    public void setStartposition(int startposition) {
        if(startposition > 0) {
            control_en = true;
        }
        this.startposition = startposition;
    }
    public void setStopposition(int stopposition) {
        if(stopposition > 0) {
            control_en = true;
        }
        this.stopposition = stopposition;
    }
    public void setResetposition(int resetposition) {
        if(resetposition > 0) {
            control_en = true;
        }
        this.resetposition = resetposition;
    }
    public void setFanstart(int fanstart) {
        if(fanstart > 0) {
            control_en = true;
        }
        this.fanstart = fanstart;
    }
    public void setFanstop(int fanstop) {
        if(fanstop > 0) {
            control_en = true;
        }
        this.fanstop = fanstop;
    }
    public void setDcvol(float dcvol) {
        if(dcvol > 0) {
            control_en = true;
        }
        this.dcvol = dcvol;
    }
    public void setDccurr(float dccurr) {
        if(dccurr > 0) {
            control_en = true;
        }
        this.dccurr = dccurr;
    }
    public void setControlangle(float controlangle) {
        if(controlangle > 0) {
            control_en = true;
        }
        this.controlangle = controlangle;
    }
    public boolean isControl_en() {
        return control_en;
    }
    public void setControl_en(boolean control_en) {
        this.control_en = control_en;
    }
    @Override
    public String toString() {
        return "Electric_Control_Single [electric_id=" + electric_id + ", upsetcurr=" + upsetcurr + ", upsetvol="
                + upsetvol + ", convolcontrol=" + convolcontrol + ", concurrcontrol=" + concurrcontrol + ", othermodes="
                + othermodes + ", parallelmodes=" + parallelmodes + ", startposition=" + startposition
                + ", stopposition=" + stopposition + ", resetposition=" + resetposition + ", fanstart=" + fanstart
                + ", fanstop=" + fanstop + ", dcvol=" + dcvol + ", dccurr=" + dccurr + ", controlangle=" + controlangle
                + ", control_en=" + control_en + "]";
    }
}
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electric_Power.java
@@ -1,6 +1,7 @@
package com.electrical.FourKW;
public class Electric_Power {
    public String PLC_ip;               //plc的ip地址
    public int start_a;            //A套启动        
    public int stop_a;            //A套停止
    public int start_b;            //B套启动
@@ -23,4 +24,142 @@
    public int cdconn_currset;    //CD并联电流给定
    public String note;        
    public Electric_Power(String pLC_ip) {
        super();
        this.PLC_ip = pLC_ip;
    }
    public String getPLC_ip() {
        return PLC_ip;
    }
    public void setPLC_ip(String pLC_ip) {
        PLC_ip = pLC_ip;
    }
    public int getStart_a() {
        return start_a;
    }
    public void setStart_a(int start_a) {
        this.start_a = start_a;
    }
    public int getStop_a() {
        return stop_a;
    }
    public void setStop_a(int stop_a) {
        this.stop_a = stop_a;
    }
    public int getStart_b() {
        return start_b;
    }
    public void setStart_b(int start_b) {
        this.start_b = start_b;
    }
    public int getStop_b() {
        return stop_b;
    }
    public void setStop_b(int stop_b) {
        this.stop_b = stop_b;
    }
    public int getStart_c() {
        return start_c;
    }
    public void setStart_c(int start_c) {
        this.start_c = start_c;
    }
    public int getStop_c() {
        return stop_c;
    }
    public void setStop_c(int stop_c) {
        this.stop_c = stop_c;
    }
    public int getStart_d() {
        return start_d;
    }
    public void setStart_d(int start_d) {
        this.start_d = start_d;
    }
    public int getStop_d() {
        return stop_d;
    }
    public void setStop_d(int stop_d) {
        this.stop_d = stop_d;
    }
    public int getAbconn_start() {
        return abconn_start;
    }
    public void setAbconn_start(int abconn_start) {
        this.abconn_start = abconn_start;
    }
    public int getAbconn_stop() {
        return abconn_stop;
    }
    public void setAbconn_stop(int abconn_stop) {
        this.abconn_stop = abconn_stop;
    }
    public int getCdconn_start() {
        return cdconn_start;
    }
    public void setCdconn_start(int cdconn_start) {
        this.cdconn_start = cdconn_start;
    }
    public int getCdconn_stop() {
        return cdconn_stop;
    }
    public void setCdconn_stop(int cdconn_stop) {
        this.cdconn_stop = cdconn_stop;
    }
    public int getAllconn_start() {
        return allconn_start;
    }
    public void setAllconn_start(int allconn_start) {
        this.allconn_start = allconn_start;
    }
    public int getAllconn_stop() {
        return allconn_stop;
    }
    public void setAllconn_stop(int allconn_stop) {
        this.allconn_stop = allconn_stop;
    }
    public int getAbconn_flag() {
        return abconn_flag;
    }
    public void setAbconn_flag(int abconn_flag) {
        this.abconn_flag = abconn_flag;
    }
    public int getCdconn_flag() {
        return cdconn_flag;
    }
    public void setCdconn_flag(int cdconn_flag) {
        this.cdconn_flag = cdconn_flag;
    }
    public int getAbconn_volset() {
        return abconn_volset;
    }
    public void setAbconn_volset(int abconn_volset) {
        this.abconn_volset = abconn_volset;
    }
    public int getAbconn_currset() {
        return abconn_currset;
    }
    public void setAbconn_currset(int abconn_currset) {
        this.abconn_currset = abconn_currset;
    }
    public int getCdconn_volset() {
        return cdconn_volset;
    }
    public void setCdconn_volset(int cdconn_volset) {
        this.cdconn_volset = cdconn_volset;
    }
    public int getCdconn_currset() {
        return cdconn_currset;
    }
    public void setCdconn_currset(int cdconn_currset) {
        this.cdconn_currset = cdconn_currset;
    }
    public String getNote() {
        return note;
    }
    public void setNote(String note) {
        this.note = note;
    }
}
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electric_Switch.java
@@ -1,7 +1,7 @@
package com.electrical.FourKW;
public class Electric_Switch {
    public String PLC_ip;               //plc的ip地址
    public int km1_switchon_one;        //一号转换开关柜KM1合闸指令
    public int km1_switchoff_one;        //一号转换开关柜KM1分闸指令
    public int km2_switchon_one;        //一号转换开关柜KM2合闸指令
@@ -21,6 +21,19 @@
    public String note;                    //备用
    
    
    public Electric_Switch(String pLC_ip) {
        super();
        this.PLC_ip = pLC_ip;
    }
    public String getPLC_ip() {
        return PLC_ip;
    }
    public void setPLC_ip(String pLC_ip) {
        PLC_ip = pLC_ip;
    }
    public int getKm1_switchon_one() {
        return km1_switchon_one;
    }
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electric_inf.java
@@ -50,4 +50,11 @@
    public void setNote(String note) {
        this.note = note;
    }
    @Override
    public String toString() {
        return "Electric_inf [electric_id=" + electric_id + ", electric_name=" + electric_name + ", electric_type="
                + electric_type + ", electric_ip=" + electric_ip + ", note=" + note + "]";
    }
}
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electrical_4KW_SocketClient_Thread.java
New file
@@ -0,0 +1,200 @@
package com.electrical.FourKW;
import java.util.Date;
import javax.swing.text.html.CSS;
import com.modbus.data.MyModbusMaster;
import com.modbus.data.MyModbusUtils;
import com.serotonin.modbus4j.code.DataType;
import com.sql.MysqlConnPool;
public class Electrical_4KW_SocketClient_Thread implements Runnable{
    public MysqlConnPool conn_pool;
    public Electric_inf einf;
    public Electric_Rt ert;
    public Electric_State estate;
    public Electric_Control_Single ecs;
    public MyModbusMaster master;
    //public static final int MAX_READALARM_COUNT = 20;        //一次读取告警节点的最大数量
    //public int read_alarm_index = 0;                        //读取告警索引
    public Electrical_4KW_SocketClient_Thread(Electric_inf einf,MysqlConnPool conn_pool) {
        this.conn_pool = conn_pool;
        this.einf = einf;
        ert = new Electric_Rt(einf.getElectric_id());
        estate = new Electric_State(einf.getElectric_id());
        ecs = new Electric_Control_Single(einf.getElectric_id());
        master = new MyModbusMaster(einf.getElectric_ip(), MyModbusMaster.SLAVEID_DEFAULT);
    }
    @Override
    public void run() {
        int runCount = 0;
        while(true) {
            try {
                Electrical_Task_SQL.queryElectric_Control_Single(conn_pool, ecs);
                //System.out.println(ecs.isControl_en()+"################33   "+runCount);
                if(ecs.isControl_en()) {
                    /************************** 单点控制输出 *******************************/
                    writeElectricalControlSignal(master,ecs);
                    Electrical_Task_SQL.replace_Electric_Control_Single(conn_pool, ecs);
                }
                if(runCount %2 == 0) {
                    *//*************************** 更新电源实时信息******************************//*
                    readElectrical_rt(master,ert);
                    Electrical_Task_SQL.replace_Electric_Rt(conn_pool, ert);
                    *//**************************** 更新电源状态信息 *****************************//*
                    readElectrical_state(master,estate);
                    Electrical_Task_SQL.replace_Electric_State(conn_pool, estate);
                }
                /*if(runCount %4 == 0) {
                    *//*************************** 读取故障状态信息 ******************************//*
                    //Date start = new Date();
                    //readMotorAlarmData(master,motor);
                    //Date end = new Date();
                    //System.out.println((end.getTime()-start.getTime())/1000);
                }*/
                if(runCount%10 == 0) {
                    //更新当前设备ip
                    master.setTarget_ip(einf.electric_ip);
                }
                if(runCount > 999900) {
                    runCount = 0;
                }
                runCount ++;
                Thread.sleep(20000);
            } catch (Exception e) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e1) {
                    //e1.printStackTrace();
                }
                e.printStackTrace();
            }
     }
  }
    /**
     *      单点控制输出
     * @param master
     * @param ecs
     */
    private void writeElectricalControlSignal(MyModbusMaster master, Electric_Control_Single ecs) {
        System.out.println(ecs);
        if(ecs.upsetcurr >0) {
            MyModbusUtils.writeHoldingRegister(Electric_4KW_ModbusAddress.getAddress(ecs.getElectric_id(), "upsetcurr"), ecs.upsetcurr, DataType.TWO_BYTE_INT_UNSIGNED, master);
        }
        if(ecs.upsetvol >0) {
            MyModbusUtils.writeHoldingRegister(Electric_4KW_ModbusAddress.getAddress(ecs.getElectric_id(), "upsetvol"), ecs.upsetvol, DataType.TWO_BYTE_INT_UNSIGNED, master);
        }
        if(ecs.convolcontrol >0) {
            MyModbusUtils.writeCoil(Electric_4KW_ModbusAddress.getAddress(ecs.getElectric_id(), "convolcontrol"), true, master);
        }
        if(ecs.concurrcontrol >0) {
            MyModbusUtils.writeCoil(Electric_4KW_ModbusAddress.getAddress(ecs.getElectric_id(), "concurrcontrol"),true, master);
        }
        if(ecs.othermodes >0) {
            MyModbusUtils.writeCoil(Electric_4KW_ModbusAddress.getAddress(ecs.getElectric_id(), "othermodes"),true, master);
        }
        if(ecs.parallelmodes >0) {
            MyModbusUtils.writeCoil(Electric_4KW_ModbusAddress.getAddress(ecs.getElectric_id(), "parallelmodes"),true, master);
        }
        if(ecs.startposition >0) {
            MyModbusUtils.writeCoil(Electric_4KW_ModbusAddress.getAddress(ecs.getElectric_id(), "startposition"),true, master);
        }
        if(ecs.stopposition >0) {
            MyModbusUtils.writeCoil(Electric_4KW_ModbusAddress.getAddress(ecs.getElectric_id(), "stopposition"),true, master);
        }
        if(ecs.resetposition >0) {
            MyModbusUtils.writeCoil(Electric_4KW_ModbusAddress.getAddress(ecs.getElectric_id(), "resetposition"),true,master);
        }
        if(ecs.fanstart >0) {
            MyModbusUtils.writeCoil(Electric_4KW_ModbusAddress.getAddress(ecs.getElectric_id(), "fanstart"),true, master);
        }
        if(ecs.fanstop >0) {
            MyModbusUtils.writeCoil(Electric_4KW_ModbusAddress.getAddress(ecs.getElectric_id(), "fanstop"),true, master);
        }
        if(ecs.dcvol >0) {
            MyModbusUtils.writeHoldingRegister(Electric_4KW_ModbusAddress.getAddress(ecs.getElectric_id(), "dcvol"), ecs.dcvol, DataType.TWO_BYTE_INT_UNSIGNED, master);
        }
        if(ecs.dccurr >0) {
            MyModbusUtils.writeHoldingRegister(Electric_4KW_ModbusAddress.getAddress(ecs.getElectric_id(), "dccurr"), ecs.dccurr, DataType.TWO_BYTE_INT_UNSIGNED, master);
        }
        if(ecs.controlangle >0) {
            MyModbusUtils.writeHoldingRegister(Electric_4KW_ModbusAddress.getAddress(ecs.getElectric_id(), "controlangle"), ecs.controlangle, DataType.TWO_BYTE_INT_UNSIGNED, master);
        }
        ecs.clear();
    }
    /**
     *     更新电源实时信息
     * @param master
     * @param load_state
     */
    private void readElectrical_rt(MyModbusMaster master, Electric_Rt ert) {
        ert.upsetcurr = (float) master.checkNullData(MyModbusUtils.readHoldingRegister(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "upsetcurr"), DataType.TWO_BYTE_INT_SIGNED, master), ert.upsetcurr);                                        //上位机设定电流            58
        ert.upsetvol = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "upsetvol"), DataType.TWO_BYTE_INT_SIGNED, master), ert.upsetvol);    //上位机设定电压
        ert.convolcontrol = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "convolcontrol"), master), ert.convolcontrol);        //恒压控制
        ert.concurrcontrol = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "concurrcontrol"), master), ert.concurrcontrol);        //恒流控制
        ert.othermodes = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "othermodes"), master), ert.othermodes);                //其他模式运行
        ert.parallelmodes = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "parallelmodes"),master), ert.parallelmodes);            //并联稳压运行
        ert.startposition = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "startposition"),master), ert.startposition);            //启动位
        ert.stopposition = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "stopposition"), master), ert.stopposition);            //ֹͣλ
        ert.resetposition = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "resetposition"), master), ert.resetposition);        //复位
        ert.fanstart = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "fanstart"), master), ert.fanstart);                    //风机启动
        ert.fanstop = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "fanstop"), master), ert.fanstop);                    //风机停止
        ert.dcvol = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "dcvol"), DataType.TWO_BYTE_INT_SIGNED, master), ert.dcvol);//直流电压
        ert.dccurr = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "dccurr"), DataType.TWO_BYTE_INT_SIGNED, master), ert.dccurr);//直流电流
        ert.controlangle = (int)master.checkNullData(MyModbusUtils.readHoldingRegister(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "controlangle"), DataType.TWO_BYTE_INT_SIGNED, master), ert.controlangle);//控制角
        ert.loopflag = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "loopflag"), master), ert.loopflag);    //开闭环标志位【0开环;1闭环】
        ert.remoteflag = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "remoteflag"), master), ert.remoteflag);//就地远程标志位【0远程;1就地】
        ert.orderflag = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "orderflag"),master), ert.orderflag);//正序逆序标志位【0正序;1逆序】
        ert.consvolcurrflag = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "consvolcurrflag"), master), ert.consvolcurrflag);//恒压横流标志位【0恒压;1恒流】
        ert.powerstartflag = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "powerstartflag"),master), ert.powerstartflag);//电源启动标志位【0停止;1启动】
        ert.workmodelflag = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(ert.getElectric_id(), "workmodelflag"), master), ert.workmodelflag); //工作模式标志位【0其他模式;1并联稳压】
    }
    /**
     *     更新电源状态信息
     * @param master
     * @param load_state
     */
    private void readElectrical_state(MyModbusMaster master, Electric_State estate) {
        estate.case_trip_output = (int) master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(estate.getElectric_id(), "case_trip_output"), master), estate.case_trip_output);//机箱跳闸输出
        estate.fault_reset_signal = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(estate.getElectric_id(), "fault_reset_signal"), master), estate.fault_reset_signal);//故障复位信号
        estate.high_vol_switch_status = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(estate.getElectric_id(), "high_vol_switch_status"), master), estate.high_vol_switch_status);//高压开关状态
        estate.stop_button = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(estate.getElectric_id(), "stop_button"), master), estate.stop_button);//急停按钮
        estate.main_cabinet_fan_status = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(estate.getElectric_id(), "main_cabinet_fan_status"), master), estate.main_cabinet_fan_status);//主柜风机状态
        estate.trans_cabinet_door_lock = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(estate.getElectric_id(), "trans_cabinet_door_lock"),  master), estate.trans_cabinet_door_lock);//变压器柜门连锁
        estate.trans_cabinet_overtem_alarm = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(estate.getElectric_id(), "trans_cabinet_overtem_alarm"),  master), estate.trans_cabinet_overtem_alarm);//变压器超温报警
        estate.trans_cabinet_overtem_trip = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(estate.getElectric_id(), "trans_cabinet_overtem_trip"), master), estate.trans_cabinet_overtem_trip);//变压器超温跳闸
        estate.qs1_state = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(estate.getElectric_id(), "qs1_state"),  master), estate.qs1_state);//QS1״̬
        estate.qs2_state = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(estate.getElectric_id(), "qs2_state"), master), estate.qs2_state);//QS2״̬
        estate.switch_cabinet_door_status = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAddress(estate.getElectric_id(), "switch_cabinet_door_status"),  master), estate.switch_cabinet_door_status);//转换开关柜门状态
        if(estate.getElectric_id()==4001||estate.getElectric_id()==4003) {
            estate.alldcvol = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Electric_4KW_ModbusAddress.getAddress(estate.getElectric_id(), "alldcvol"), DataType.TWO_BYTE_INT_SIGNED, master), estate.alldcvol);//总直流电压
            estate.alldccurr = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Electric_4KW_ModbusAddress.getAddress(estate.getElectric_id(), "alldccurr"), DataType.TWO_BYTE_INT_SIGNED, master), estate.alldccurr);//总直流电流
        }else {
            estate.alldcvol=0;
            estate.alldccurr = 0;
        }
    }
}
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electrical_ALL_SocketClient_Thread.java
New file
@@ -0,0 +1,116 @@
package com.electrical.FourKW;
import com.modbus.data.MyModbusMaster;
import com.modbus.data.MyModbusUtils;
import com.serotonin.modbus4j.code.DataType;
import com.sql.MysqlConnPool;
public class Electrical_ALL_SocketClient_Thread implements Runnable{
    public MysqlConnPool conn_pool;
    public Electric_Switch eswitch;
    public Electric_Power epower;
    public MyModbusMaster master;
    //public static final int MAX_READALARM_COUNT = 20;        //一次读取告警节点的最大数量
    //public int read_alarm_index = 0;                        //读取告警索引
    public Electrical_ALL_SocketClient_Thread(String PLC_ip,MysqlConnPool conn_pool) {
        this.conn_pool = conn_pool;
        eswitch=new Electric_Switch(PLC_ip);
        epower=new Electric_Power(PLC_ip);
        master = new MyModbusMaster(PLC_ip, MyModbusMaster.SLAVEID_DEFAULT);
    }
    @Override
    public void run() {
        int runCount = 0;
        while(true) {
            try {
                if(runCount %2 == 0) {
                    /*************************** 更新电源总开关状态表******************************/
                    readElectrical_switch(master,eswitch);
                    Electrical_Task_SQL.replace_Electric_Switch(conn_pool, eswitch);
                    /**************************** 更新4套电源状态表*****************************/
                    readElectrical_power(master,epower);
                    Electrical_Task_SQL.replace_Electric_Power(conn_pool, epower);
                }
/*                if(runCount%10 == 0) {
                    //更新当前设备ip
                    master.setTarget_ip(einf.electric_ip);
                }
*/                if(runCount > 999900) {
                    runCount = 0;
                }
                runCount ++;
                Thread.sleep(200);
            } catch (Exception e) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e1) {
                    //e1.printStackTrace();
                }
                e.printStackTrace();
            }
     }
    }
    /**
     *     更新电源总开关状态表
     * @param master
     * @param load_state
     */
    private void readElectrical_switch(MyModbusMaster master, Electric_Switch eswitch) {
        eswitch.km1_switchon_one = (int) master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km1_switchon_one"),  master), eswitch.km1_switchon_one);    //一号转换开关柜KM1合闸指令
        eswitch.km1_switchoff_one = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km1_switchoff_one"),  master), eswitch.km1_switchoff_one);    //一号转换开关柜KM1分闸指令
        eswitch.km2_switchon_one = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km2_switchon_one"), master), eswitch.km2_switchon_one);        //一号转换开关柜KM2合闸指令
        eswitch.km2_switchoff_one = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km2_switchoff_one"), master), eswitch.km2_switchoff_one);    //一号转换开关柜KM2分闸指令
        eswitch.km3_switchon_one = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km3_switchon_one"), master), eswitch.km3_switchon_one);            //一号转换开关柜KM3合闸指令
        eswitch.km3_switchoff_one = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km3_switchoff_one"),master), eswitch.km3_switchoff_one);            //一号转换开关柜KM3分闸指令
        eswitch.km4_switchon_one = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km4_switchon_one"),master), eswitch.km4_switchon_one);            //一号转换开关柜KM4合闸指令
        eswitch.km4_switchoff_one = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km4_switchoff_one"), master), eswitch.km4_switchoff_one);        //一号转换开关柜KM4分闸指令
        eswitch.km1_switchon_two = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km1_switchon_two"), master),eswitch.km1_switchon_two);            //二号转换开关柜KM1合闸指令
        eswitch.km1_switchoff_two = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km1_switchoff_two"), master),eswitch.km1_switchoff_two);        //二号转换开关柜KM1分闸指令
        eswitch.km2_switchon_two = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km2_switchon_two"), master),eswitch.km2_switchon_two);            //二号转换开关柜KM2合闸指令
        eswitch.km2_switchoff_two = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km2_switchoff_two"), master), eswitch.km2_switchoff_two);        //二号转换开关柜KM2分闸指令
        eswitch.km3_switchon_two = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km3_switchon_two"), master),eswitch.km3_switchon_two);            //二号转换开关柜KM3合闸指令
        eswitch.km3_switchoff_two = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km3_switchoff_two"), master), eswitch.km3_switchoff_two);        //二号转换开关柜KM3分闸指令
        eswitch.km4_switchon_two = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km4_switchon_two"), master), eswitch.km4_switchon_two);            //二号转换开关柜KM4合闸指令
        eswitch.km4_switchoff_two = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("km4_switchoff_two"), master),eswitch.km4_switchoff_two);            //二号转换开关柜KM4分闸指令
    }
    /**
     *     更新电源总开关状态表
     * @param master
     * @param load_state
     */
    private void readElectrical_power(MyModbusMaster master, Electric_Power epower) {
        epower.start_a = (int) master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("start_a"), master), epower.start_a );    //A套启动
        epower.stop_a = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("stop_a"), master),epower.stop_a );        //A套停止
        epower.start_b = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("start_b"), master), epower.start_b );        //B套启动
        epower.stop_b = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("stop_b"), master), epower.stop_b );        //B套停止
        epower.start_c = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("start_c"), master),epower.start_c);        //C套启动
        epower.stop_c = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("stop_c"),  master), epower.stop_c );        //C套停止
        epower.start_d = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("start_d"),  master), epower.start_d);        //D套启动
        epower.stop_d = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("stop_d"), master), epower.stop_d );        //D套停止
        epower.abconn_start = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("abconn_start"),  master), epower.abconn_start);        //AB套并联运行启动
        epower.abconn_stop = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("abconn_stop"), master), epower.abconn_stop);            //AB套并联运行停止
        epower.cdconn_start = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("cdconn_start"),  master), epower.cdconn_start);        //CD套并联运行启动
        epower.cdconn_stop = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("cdconn_stop"),  master), epower.cdconn_stop);            //CD套并联运行停止
        epower.allconn_start = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("allconn_start"), master), epower.allconn_start);        //四套并联运行启动
        epower.allconn_stop = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("allconn_stop"), master), epower.allconn_stop);        //四套并联运行停止
        epower.abconn_flag = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("abconn_flag"),  master), epower.abconn_flag);            //AB并串联标志位
        epower.cdconn_flag = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Electric_4KW_ModbusAddress.getAllAdd("cdconn_flag"), master), epower.cdconn_flag);            //CD并串联标志位
        /*epower.abconn_volset = (int)master.checkNullData(MyModbusUtils.readHoldingRegister(Electric_4KW_ModbusAddress.getAllAdd("abconn_volset"), DataType.TWO_BYTE_INT_SIGNED,   master), epower.abconn_volset);        //AB并联电压给定
        epower.abconn_currset = (int)master.checkNullData(MyModbusUtils.readHoldingRegister(Electric_4KW_ModbusAddress.getAllAdd("abconn_currset"),DataType.TWO_BYTE_INT_SIGNED, master), epower.abconn_currset);    //AB并联电流给定
        epower.cdconn_volset = (int)master.checkNullData(MyModbusUtils.readHoldingRegister(Electric_4KW_ModbusAddress.getAllAdd("cdconn_volset"), DataType.TWO_BYTE_INT_SIGNED,  master), epower.cdconn_volset);        //CD并联电压给定
        epower.cdconn_currset = (int)master.checkNullData(MyModbusUtils.readHoldingRegister(Electric_4KW_ModbusAddress.getAllAdd("cdconn_currset"), DataType.TWO_BYTE_INT_SIGNED,  master), epower.cdconn_currset);        //CD并联电流给定
       */
    }
}
ElectricalSystem_MonitorServer_4KW/src/com/electrical/FourKW/Electrical_Task_SQL.java
@@ -1,8 +1,11 @@
package com.electrical.FourKW;
import java.security.interfaces.RSAKey;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import com.mysql.jdbc.EscapeTokenizer;
import com.sql.MysqlConnPool;
import com.sql.Sql_Mysql;
@@ -15,7 +18,8 @@
     * @param pool
     * @param electric
     */
    public static void queryAllElectric(MysqlConnPool pool,List<Electric_inf> electrics) {
    public static String queryAllElectric(MysqlConnPool pool,List<Electric_inf> electrics) {
        String PLC_ip="";
        String sql_str = " select * from " + Sql_Mysql.Tb_Electric_Inf + " order by electric_id;";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        ResultSet res = null;
@@ -28,6 +32,7 @@
                elect.setElectric_type(res.getInt("electric_type"));
                elect.setElectric_ip(res.getString("electric_ip"));
                electrics.add(elect);
                 PLC_ip=elect.getElectric_ip();
            }
        } catch (SQLException e) {
            e.printStackTrace();
@@ -41,6 +46,7 @@
            }
            sql.close_con();
        }
        return  PLC_ip;
    }
    
    /**
@@ -121,6 +127,7 @@
    public static void createTb_Electric_Switch(MysqlConnPool pool) {
        String sql_str = "CREATE TABLE IF NOT EXISTS " + Sql_Mysql.Tb_Electric_Switch + " (" + 
                "  num bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键'," + 
                "  PLC_ip varchar(255) NOT NULL DEFAULT '127.0.0.1' COMMENT 'PLC_ip', "+
                "  km1_switchon_one int(11) NOT NULL DEFAULT '0' COMMENT '一号转换开关柜KM1合闸指令'," + 
                "  km1_switchoff_one int(11) NOT NULL DEFAULT '0' COMMENT '一号转换开关柜KM1分闸指令'," + 
                "  km2_switchon_one int(11) NOT NULL DEFAULT '0' COMMENT '一号转换开关柜KM2合闸指令'," + 
@@ -138,7 +145,8 @@
                "  km4_switchon_two int(11) NOT NULL DEFAULT '0' COMMENT '二号转换开关柜KM4合闸指令'," + 
                "  km4_switchoff_two int(11) NOT NULL DEFAULT '0' COMMENT '二号转换开关柜KM4分闸指令'," + 
                "  note varchar(255) NOT NULL DEFAULT ''," + 
                "  PRIMARY KEY (num)" +
                "  PRIMARY KEY (num),"+
                "  UNIQUE KEY PLC_ip_key (PLC_ip) USING BTREE " +
                ") ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
@@ -173,7 +181,7 @@
                "  alldccurr float NOT NULL DEFAULT '0' COMMENT '总直流电流'," + 
                "  note varchar(255) NOT NULL DEFAULT ''," + 
                "  PRIMARY KEY (num)," + 
                "  KEY electric_id_key (electric_id)" +
                "  UNIQUE KEY electric_id_key (electric_id) USING BTREE" +
                ") ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
@@ -215,7 +223,7 @@
                "  workmodelflag int(11) NOT NULL DEFAULT '0' COMMENT '工作模式标志位(0其他模式,1并联稳压)'," + 
                "  note varchar(255) NOT NULL DEFAULT ''," + 
                "  PRIMARY KEY (num)," + 
                "  KEY electric_id_key (electric_id)" +
                "  UNIQUE KEY electric_id_key (electric_id) USING BTREE " +
                ") ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
@@ -229,12 +237,13 @@
    
    
    /**
     * 创建电源控制状态表
     * 创建4套电源状态表
     * @param pool
     */
    public static void createTb_Electric_Power(MysqlConnPool pool) {
        String sql_str = " CREATE TABLE IF NOT EXISTS " + Sql_Mysql.Tb_Electric_Power + " (" + 
                "  num bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键'," + 
                "  PLC_ip varchar(255) NOT NULL DEFAULT '127.0.0.1' COMMENT 'PLC_ip', "+
                "  start_a int(11) NOT NULL DEFAULT '0' COMMENT 'A套启动'," + 
                "  stop_a int(11) NOT NULL DEFAULT '0' COMMENT 'A套停止'," + 
                "  start_b int(11) NOT NULL DEFAULT '0' COMMENT 'B套启动'," + 
@@ -256,7 +265,8 @@
                "  cdconn_volset int(11) NOT NULL DEFAULT '0' COMMENT 'CD并联电压给定'," + 
                "  cdconn_currset int(11) NOT NULL DEFAULT '0' COMMENT 'CD并联电流给定'," + 
                "  note varchar(255) NOT NULL DEFAULT ''," + 
                "  PRIMARY KEY (num)" +
                "  PRIMARY KEY (num)," +
                "  UNIQUE KEY PLC_ip_key (PLC_ip) USING BTREE " +
                ") ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
@@ -269,7 +279,7 @@
    }
    
    /**
     * 创建电源控制状态表
     * 创建电源单点控制状态表
     * @param pool
     */
    public static void createTb_Electric_Control_Single(MysqlConnPool pool) {
@@ -290,7 +300,8 @@
                "  dcvol float NOT NULL DEFAULT '0' COMMENT '直流电压'," + 
                "  dccurr float NOT NULL DEFAULT '0' COMMENT '直流电流'," + 
                "  controlangle float NOT NULL DEFAULT '0' COMMENT '控制角'," + 
                "  PRIMARY KEY (num)" +
                "  PRIMARY KEY (num),"+
                "  UNIQUE KEY electric_id_key (electric_id) USING BTREE " +
                ") ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
@@ -301,4 +312,109 @@
            sql.close_con();
        }
    }
   //插入或更新电源单点控制表
    public static void replace_Electric_Control_Single(MysqlConnPool pool,Electric_Control_Single ecs) {
        String sql_str = " replace into "+ Sql_Mysql.Tb_Electric_Control_Single +"(electric_id,upsetcurr,upsetvol,convolcontrol,concurrcontrol,othermodes,parallelmodes,startposition,stopposition,resetposition,fanstart,fanstop,dcvol,dccurr,controlangle)  "
                + "  values("+ecs.electric_id+","+ecs.upsetcurr+","+ecs.upsetvol+","+ecs.convolcontrol+","+ecs.concurrcontrol+","+ecs.othermodes+","+ecs.parallelmodes+","+ecs.startposition+","+ecs.stopposition+","+ecs.resetposition+","+ecs.fanstart+","+ecs.fanstop+","+ecs.dcvol+","+ecs.dccurr+","+ecs.controlangle+")";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    //插入或更新电源实时信息表
    public static void replace_Electric_Rt(MysqlConnPool pool,Electric_Rt ert) {
        String sql_str = " replace into "+ Sql_Mysql.Tb_Electric_Rt  +"(electric_id,upsetcurr,upsetvol,convolcontrol,concurrcontrol,othermodes,parallelmodes,startposition,stopposition,resetposition,fanstart,fanstop,dcvol,dccurr,controlangle,loopflag,remoteflag,orderflag,consvolcurrflag,powerstartflag,workmodelflag)  "
                + "  values("+ert.electric_id+","+ert.upsetcurr+","+ert.upsetvol+","+ert.convolcontrol+","+ert.concurrcontrol+","+ert.othermodes+","+ert.parallelmodes+","+ert.startposition+","+ert.stopposition+","+ert.resetposition+","+ert.fanstart+","+ert.fanstop+","+ert.dcvol+","+ert.dccurr+","+ert.controlangle+","+ert.loopflag+","+ert.remoteflag+","+ert.orderflag+","+ert.consvolcurrflag+","+ert.powerstartflag+","+ert.workmodelflag+")";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    //插入或更新电源实时状态表
    public static void replace_Electric_State(MysqlConnPool pool,Electric_State estate) {
        String sql_str = " replace into "+ Sql_Mysql.Tb_Electric_State  +"(electric_id,case_trip_output,fault_reset_signal,high_vol_switch_status,stop_button,main_cabinet_fan_status,trans_cabinet_door_lock,trans_cabinet_overtem_alarm,trans_cabinet_overtem_trip,qs1_state,qs2_state,switch_cabinet_door_status,alldcvol,alldccurr)  "
                + "  values("+estate.electric_id+","+estate.case_trip_output+","+estate.fault_reset_signal+","+estate.high_vol_switch_status+","+estate.stop_button+","+estate.main_cabinet_fan_status+","+estate.trans_cabinet_door_lock+","+estate.trans_cabinet_overtem_alarm+","+estate.trans_cabinet_overtem_trip+","+estate.qs1_state+","+estate.qs2_state+","+estate.switch_cabinet_door_status+","+estate.alldcvol+","+estate.alldccurr+")";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    //插入或更新电源总开关状态表
    public static void replace_Electric_Switch(MysqlConnPool pool,Electric_Switch eswitch) {
        String sql_str = " replace into "+ Sql_Mysql.Tb_Electric_Switch  +"(PLC_ip,km1_switchon_one,km1_switchoff_one,km2_switchon_one,km2_switchoff_one,km3_switchon_one,km3_switchoff_one,km4_switchon_one,km4_switchoff_one,km1_switchon_two,km1_switchoff_two,km2_switchon_two,km2_switchoff_two,km3_switchon_two,km3_switchoff_two,km4_switchon_two,km4_switchoff_two)  "
                + "  values('"+eswitch.PLC_ip+"',"+eswitch.km1_switchon_one+","+eswitch.km1_switchoff_one+","+eswitch.km2_switchon_one+","+eswitch.km2_switchoff_one+","+eswitch.km3_switchon_one+","+eswitch.km3_switchoff_one+","+eswitch.km4_switchon_one+","+eswitch.km4_switchoff_one+","+eswitch.km1_switchon_two+","+eswitch.km1_switchoff_two+","+eswitch.km2_switchon_two+","+eswitch.km2_switchoff_two+","+eswitch.km3_switchon_two+","+eswitch.km3_switchoff_two+","+eswitch.km4_switchon_two+","+eswitch.km4_switchoff_two+")";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    //插入或更新4套电源状态表
    public static void replace_Electric_Power(MysqlConnPool pool,Electric_Power epower) {
        String sql_str = " replace into "+ Sql_Mysql.Tb_Electric_Power  +"(PLC_ip,start_a,stop_a,start_b,stop_b,start_c,stop_c,start_d,stop_d,abconn_start,abconn_stop,cdconn_start,cdconn_stop,allconn_start,allconn_stop,abconn_flag,cdconn_flag,abconn_volset,abconn_currset,cdconn_volset,cdconn_currset)  "
                + "  values('"+epower.PLC_ip+"',"+epower.start_a+","+epower.stop_a+","+epower.start_b+","+epower.stop_b+","+epower.start_c+","+epower.stop_c+","+epower.start_d+","+epower.stop_d+","+epower.abconn_start+","+epower.abconn_stop+","+epower.cdconn_start+","+epower.cdconn_stop
                +","+epower.allconn_start+","+epower.allconn_stop+","+epower.abconn_flag+","+epower.cdconn_flag+","+epower.abconn_volset+","+epower.abconn_currset+","+epower.cdconn_volset+","+epower.abconn_currset+")";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    //查询电源单点控制表中数据
    public static void queryElectric_Control_Single(MysqlConnPool conn_pool,Electric_Control_Single ecs) {
        String sql_str = " select * from " + Sql_Mysql.Tb_Electric_Control_Single+" Where electric_id = " +ecs.getElectric_id();
        ResultSet res = null;
        Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn());
        try {
            res = sql.sqlMysqlQuery(sql_str);
            if(res.next()) {
                ecs.setElectric_id(res.getInt("electric_id"));
                ecs.setUpsetcurr(res.getFloat("upsetcurr"));
                ecs.setUpsetvol(res.getFloat("upsetvol"));
                ecs.setConvolcontrol(res.getInt("convolcontrol"));
                ecs.setConcurrcontrol(res.getInt("concurrcontrol"));
                ecs.setOthermodes(res.getInt("othermodes"));
                ecs.setParallelmodes(res.getInt("parallelmodes"));
                ecs.setStartposition(res.getInt("startposition"));
                ecs.setStopposition(res.getInt("stopposition"));
                ecs.setResetposition(res.getInt("resetposition"));
                ecs.setFanstart(res.getInt("fanstart"));
                ecs.setFanstop(res.getInt("fanstop"));
                ecs.setDcvol(res.getFloat("dcvol"));
                ecs.setDccurr(res.getFloat("dccurr"));
                ecs.setControlangle(res.getFloat("controlangle"));
                System.out.println(ecs.toString());
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if(res != null) {
                try {
                    res.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            sql.close_con();
        }
    }
}
ElectricalSystem_MonitorServer_4KW/src/main/main_ElectricalSystem_MonitorServer_4KW.java
@@ -1,11 +1,15 @@
package main;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.base.Com;
import com.config.AppConfig;
import com.config.AppParam;
import com.electrical.FourKW.Electric_4Kw_ServerSocket_Thread;
import com.electrical.FourKW.Electric_All_ServerSocket_Thread;
import com.electrical.FourKW.Electric_inf;
import com.electrical.FourKW.Electrical_Task_SQL;
import com.sql.MysqlConnPool;
@@ -31,7 +35,8 @@
    private static MysqlConnPool GB_MysqlConnPool;
    public static AppParam GB_App_Param;
    
    public static List<Electric_inf> einfs=new ArrayList();
    public static String PLC_ip="";
     /*********************************************************************************************/
    /*********************************************************************************************/
    public static void main(String[] args) {
@@ -53,16 +58,23 @@
        /*********************************************************************************/
        //初始化数据库
        Electrical_Task_SQL.init(GB_MysqlConnPool);
        //查询所有的电源系统
        PLC_ip=Electrical_Task_SQL.queryAllElectric(GB_MysqlConnPool,einfs);
        //读取每套电源系统的信息
        Electric_4Kw_ServerSocket_Thread server = new Electric_4Kw_ServerSocket_Thread(GB_MysqlConnPool,einfs);
        new Thread(server).start();
        
        while(true) {
        //System.out.println("PLC_ip:"+PLC_ip);
        //读取4套电源总信息和开关信息//读取每套电源系统的信息
        Electric_All_ServerSocket_Thread serverALL = new Electric_All_ServerSocket_Thread(GB_MysqlConnPool,PLC_ip);
        new Thread(serverALL).start();
        /*while(true) {
            try {        
                Thread.sleep(5000);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        }*/
        /*********************************************************************************/
    }