whyclxw
2020-09-09 090321bdf647e53980c23f15b1f5979d4ad7be1f
修改
5个文件已修改
124 ■■■■ 已修改文件
config.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/data/PowerArk_Task_SQL.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/dev/base/data/Dynamicload_SocketClient_Thread.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/modbus/data/MyModbusUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/main_MonitorServer_Dynamicload.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
config.xml
@@ -2,7 +2,7 @@
<root>
  <mysql_ramdb_recreate_en>false</mysql_ramdb_recreate_en>
  <mysql_server_ip>118.89.139.230</mysql_server_ip>
  <mysql_server_ip>127.0.0.1</mysql_server_ip>
  <!--SOURCE_BATTDATA_TYPE_FBSDEV = 0-->
  <!--SOURCE_BATTDATA_TYPE_SQLSERVER = 1-->
  <!--SOURCE_BATTDATA_TYPE_C_INTERFACE = 2-->
src/com/data/PowerArk_Task_SQL.java
@@ -27,7 +27,7 @@
        
        createTb_Dynamicload_inf(pool);
        
        initTb_Dynamicload_inf(pool);
        //initTb_Dynamicload_inf(pool);
        
        createTb_Dynamicload_Button_Rt(pool);
        
src/com/dev/base/data/Dynamicload_SocketClient_Thread.java
@@ -9,6 +9,7 @@
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;
public class Dynamicload_SocketClient_Thread implements Runnable {
@@ -29,6 +30,7 @@
        dcontrol = new Dynamicload_control(dinf.getDev_id());
        dstate = new Dynamicload_state(dinf.getDev_id(),dinf.getFZ_button_num());
        master = new MyModbusMaster(dinf.getDev_ip(), MyModbusMaster.SLAVEID_DEFAULT);
        //System.out.println("master: "+master);
    }
    @Override
@@ -42,13 +44,15 @@
                    // *************************** 更新负载按钮信息******************************//*
                    // Date t1 = new Date();
                    readMutilElectrical_button(master, dbutton);
                    readElectrical_button(master, dbutton);
                    //readMutilElectrical_button(master, dbutton);
                    PowerArk_Task_SQL.updateDynamicload_ButtonTable(conn_pool, dbutton);
                    // System.out.println("RT:"+(new Date().getTime() - t1.getTime()));
                    // Date t2 = new Date();
                    // **************************** 更新负载状态信息 *****************************//*
                    readMutilElectrical_state(master, dstate);
                    readElectrical_state(master, dstate);
                    //readMutilElectrical_state(master, dstate);
                    PowerArk_Task_SQL.updateDynamicload_StateTable(conn_pool, dstate);
                    // System.out.println("State:"+(new Date().getTime() - t2.getTime()));
                }
@@ -83,9 +87,66 @@
     * @param dbutton
     */
    public void readMutilElectrical_button(MyModbusMaster master, Dynamicload_button dbutton) {
        BatchRead<Integer> batch = dbutton.createBatchRead(master);
        BatchRead<Integer> batch = dbutton.createBatchRead(master);
        //System.out.println("ip"+dinf.getDev_ip()+"  dbutton: "+batch.toString());
        BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master);
        System.out.println("ip"+dinf.getDev_ip()+"   "+res.toString());
        dbutton.putBatchResult(res);
    }
    /**
     *     读取负载按钮状态
     * @param master
     * @param dbutton
     */
    private void readElectrical_button(MyModbusMaster master,Dynamicload_button dbutton) {
        dbutton.FZ_b1 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(80, master), dbutton.FZ_b1);
        dbutton.FZ_b2 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(81, master), dbutton.FZ_b2);
        dbutton.FZ_b3 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(82, master), dbutton.FZ_b3);
        dbutton.FZ_b4 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(83, master), dbutton.FZ_b4);
        dbutton.FZ_b5 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(84, master), dbutton.FZ_b5);
        dbutton.FZ_b6 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(85, master), dbutton.FZ_b6);
        dbutton.FZ_b7 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(86, master), dbutton.FZ_b7);
        dbutton.FZ_b8 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(87, master), dbutton.FZ_b8);
        dbutton.FZ_b9 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(88, master), dbutton.FZ_b9);
        dbutton.FZ_b10 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(89, master), dbutton.FZ_b10);
        dbutton.FZ_b11 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(90, master), dbutton.FZ_b11);
        dbutton.FZ_fw1 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4020, master), dbutton.FZ_fw1);
        dbutton.FZ_fw2 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4021, master), dbutton.FZ_fw2);
        dbutton.FZ_fw3 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4022, master), dbutton.FZ_fw3);
        dbutton.FZ_fw4 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4023, master), dbutton.FZ_fw4);
        dbutton.FZ_fw5 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4024, master), dbutton.FZ_fw5);
        dbutton.FZ_fw6 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4025, master), dbutton.FZ_fw6);
        dbutton.FZ_fw7 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4026, master), dbutton.FZ_fw7);
        dbutton.FZ_fw8 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4027, master), dbutton.FZ_fw8);
        dbutton.FZ_fw9 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4028, master), dbutton.FZ_fw9);
        dbutton.FZ_fw10 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4029, master), dbutton.FZ_fw10);
        dbutton.FZ_fw11 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4030, master), dbutton.FZ_fw11);
        dbutton.FZ_ex1 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(8000, master), dbutton.FZ_ex1);
        dbutton.FZ_ex2 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(8001, master), dbutton.FZ_ex2);
        dbutton.FZ_ex3 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(8002, master), dbutton.FZ_ex3);
        dbutton.FZ_ex4 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(8003, master), dbutton.FZ_ex4);
        dbutton.FZ_ex5 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(8004, master), dbutton.FZ_ex5);
        dbutton.FZ_ex6 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(8005, master), dbutton.FZ_ex6);
        dbutton.FZ_ex7 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(8006, master), dbutton.FZ_ex7);
        dbutton.FZ_ex8 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(8007, master), dbutton.FZ_ex8);
        dbutton.FZ_ex9 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(8008, master), dbutton.FZ_ex9);
        dbutton.FZ_ex10 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(8009, master), dbutton.FZ_ex10);
        dbutton.FZ_ex11 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(8010, master), dbutton.FZ_ex11);
    }
    /**
     * 更新负载状态信息
     * @param master
     * @param dstate
     */
    public void readMutilElectrical_state(MyModbusMaster master, Dynamicload_state dstate) {
        BatchRead<Integer> batch = dstate.createBatchRead(master,dstate.fz_button_num);
        //System.out.println("ip"+dinf.getDev_ip()+"  dstate: "+batch.toString());
        BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master);
        dstate.putBatchResult(res);
    }
    
    /**
@@ -93,9 +154,44 @@
     * @param master
     * @param dstate
     */
    public void readMutilElectrical_state(MyModbusMaster master, Dynamicload_state dstate) {
        BatchRead<Integer> batch = dstate.createBatchRead(master,dstate.fz_button_num);
        BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master);
        dstate.putBatchResult(res);
    public void readElectrical_state(MyModbusMaster master, Dynamicload_state dstate) {
        dstate.start_auto = (int) master.checkNullData(MyModbusUtils.readCoilStatus(8, master),dstate.start_auto);
        dstate.stop_auto = (int) master.checkNullData(MyModbusUtils.readCoilStatus(9, master),dstate.stop_auto);
        dstate.sudden_crease = (int) master.checkNullData(MyModbusUtils.readCoilStatus(10, master),dstate.sudden_crease);
        dstate.all_open = (int) master.checkNullData(MyModbusUtils.readCoilStatus(11, master),dstate.all_open);
        if(dstate.fz_button_num==11) {
            dstate.actual_set_power = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(1, DataType.TWO_BYTE_INT_SIGNED, master),dstate.actual_set_power);
            dstate.output_power = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(2, DataType.TWO_BYTE_INT_SIGNED, master), dstate.output_power);
            dstate.set_power = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(4, DataType.TWO_BYTE_INT_SIGNED, master),dstate.set_power );
            dstate.interval_time = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(6, DataType.TWO_BYTE_INT_SIGNED, master),dstate.interval_time);
            dstate.actual_curr = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(7, DataType.TWO_BYTE_INT_SIGNED, master), dstate.actual_curr);
            dstate.actual_mov = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(8, DataType.TWO_BYTE_INT_SIGNED, master), dstate.actual_mov  );
        }else {
            dstate.actual_set_power = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(2, DataType.TWO_BYTE_INT_SIGNED, master),dstate.actual_set_power);
            dstate.output_power = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(4, DataType.TWO_BYTE_INT_SIGNED, master), dstate.output_power);
            dstate.set_power = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(8, DataType.TWO_BYTE_INT_SIGNED, master),dstate.set_power );
            dstate.interval_time = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(16, DataType.TWO_BYTE_INT_SIGNED, master),dstate.interval_time);
            dstate.actual_curr = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(17, DataType.TWO_BYTE_INT_SIGNED, master), dstate.actual_curr);
            dstate.actual_mov = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(18, DataType.TWO_BYTE_INT_SIGNED, master), dstate.actual_mov  );
        }
        dstate.allow_close = (int) master.checkNullData(MyModbusUtils.readCoilStatus(8011, master),dstate.allow_close);
        dstate.FZ_autostate1 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(1, master),dstate.FZ_autostate1);
        dstate.FZ_autostate2 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(2, master),dstate.FZ_autostate2);
        dstate.FZ_autostate3 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(3, master),dstate.FZ_autostate3);
        dstate.FZ_autostate4 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4, master),dstate.FZ_autostate4);
        dstate.FZ_autostate5 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(5, master),dstate.FZ_autostate5);
        dstate.react_overtem = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4013, master),dstate.react_overtem);
        dstate.water_overtem = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4014, master),dstate.water_overtem);
        dstate.water_level_low = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4015, master),dstate.water_level_low);
        dstate.water_pressure_high = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4016, master),dstate.water_pressure_high);
        dstate.local_control = (int) master.checkNullData(MyModbusUtils.readCoilStatus(40, master),dstate.local_control);
        dstate.back_control = (int) master.checkNullData(MyModbusUtils.readCoilStatus(41, master),dstate.back_control);
        dstate.central_control = (int) master.checkNullData(MyModbusUtils.readCoilStatus(42, master),dstate.central_control);
        dstate.switch_state = (int) master.checkNullData(MyModbusUtils.readCoilStatus(4018, master),dstate.switch_state);
        dstate.inter_volume_M200 = (int) master.checkNullData(MyModbusUtils.readCoilStatus(160, master),dstate.inter_volume_M200);
        dstate.fan_button = (int) master.checkNullData(MyModbusUtils.readCoilStatus(12, master),dstate.fan_button);
        dstate.fan_output = (int) master.checkNullData(MyModbusUtils.readCoilStatus(8013, master),dstate.fan_output);
    }
}
src/com/modbus/data/MyModbusUtils.java
@@ -20,7 +20,7 @@
import com.serotonin.modbus4j.msg.WriteRegistersRequest;
public class MyModbusUtils {
    /**
     * 读取[01 Coil Status 0x]类型 开关数据
     * 
src/main/main_MonitorServer_Dynamicload.java
@@ -77,11 +77,11 @@
        /*********************************************************************************/
        GB_DevData = PowerArk_Task_SQL.queryAllPowerArk(GB_MysqlConnPool);
        
        /*PowerArk_ServerSocket_Thread power_thread = new PowerArk_ServerSocket_Thread(GB_MysqlConnPool,GB_DevData);
        new Thread(power_thread).start();*/
        PowerArk_ServerSocket_Thread power_thread = new PowerArk_ServerSocket_Thread(GB_MysqlConnPool,GB_DevData);
        new Thread(power_thread).start();
        //读取每套负载系统的信息
        Dynamicload_ServerSocket_Thread server = new Dynamicload_ServerSocket_Thread(GB_MysqlConnPool,GB_DevData);
        new Thread(server).start();
        /*Dynamicload_ServerSocket_Thread server = new Dynamicload_ServerSocket_Thread(GB_MysqlConnPool,GB_DevData);
        new Thread(server).start();*/
        /*********************************************************************************/
    }