Central_Monitor/src/com/data/Central_Control.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Central_Monitor/src/com/data/Comm/Central_DataParsing_Thread_SQL.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Central_Monitor/src/com/data/Comm/Central_Data_ComBase.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Central_Monitor/src/com/data/Comm/Central_Data_SocketClient_Thread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Central_Monitor/src/com/data/history/Central_Data_RealRecord_Thread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Central_Monitor/src/com/modbus/data/MyModbusMaster.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Central_Monitor/src/com/modbus/data/MyModbusUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Central_Monitor/src/com/sql/Sql_Mysql.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Central_Monitor/src/main/main_Central_Monitor.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Central_Monitor/src/com/data/Central_Control.java
@@ -1,5 +1,7 @@ package com.data; import com.data.Comm.Central_Data_ComBase; public class Central_Control { private int dev_id; //'设备id', @@ -14,6 +16,8 @@ private int switch_open_1st_2500A_load; //'1号2500A负载屏开关分闸', private int switch_close_2st_2500A_load; //'2号2500A负载屏开关合闸', private int switch_open_2st_2500A_load; //'2号2500A负载屏开关分闸', public boolean control_en = false; public Central_Control() { // TODO Auto-generated constructor stub @@ -33,7 +37,23 @@ return op_cmd; } public void setOp_cmd(int op_cmd) { control_en = false; this.op_cmd = op_cmd; switch(this.op_cmd) { case Central_Data_ComBase.CMD_SwitchClose_1st: case Central_Data_ComBase.CMD_SwitchOpen_1st: case Central_Data_ComBase.CMD_SwitchClose_2st: case Central_Data_ComBase.CMD_SwitchOpen_2st: case Central_Data_ComBase.CMD_SwitchClose_3st: case Central_Data_ComBase.CMD_SwitchOpen_3st: case Central_Data_ComBase.CMD_SwitchClose_4st: case Central_Data_ComBase.CMD_SwitchOpen_4st: case Central_Data_ComBase.CMD_SwitchClose_5st: case Central_Data_ComBase.CMD_SwitchOpen_5st:{ //需要进行远程控制操作 control_en = true; } } } public int getSwitch_close_1st_2500A() { return switch_close_1st_2500A; Central_Monitor/src/com/data/Comm/Central_DataParsing_Thread_SQL.java
@@ -5,6 +5,7 @@ import java.util.Date; import java.util.List; import com.base.Com; import com.data.Central_Control; import com.data.Central_RT_Data; import com.data.Central_ST_Data; import com.data.Motor_inf; @@ -139,4 +140,72 @@ } } /** * 查询集中监控系统控制表 * @param pool * @param control */ public static void queryTb_Central_Monitor_Sys_Control(MysqlConnPool pool,Central_Control control) { String sql_str = " SELECT * FROM "+Sql_Mysql.Tb_Central_Monitor_Sys_Control+" WHERE dev_id = " + control.getDev_id(); Sql_Mysql sql = new Sql_Mysql(pool.getConn()); ResultSet res = null; try { res = sql.sqlMysqlQuery(sql_str); if(res.next()) { control.setOp_cmd(res.getInt("op_cmd")); control.setSwitch_close_1st_2500A(res.getInt("switch_close_1st_2500A")); control.setSwitch_close_1st_2500A_load(res.getInt("switch_close_1st_2500A_load")); control.setSwitch_close_2st_2500A(res.getInt("switch_close_2st_2500A")); control.setSwitch_close_2st_2500A_load(res.getInt("switch_close_2st_2500A_load")); control.setSwitch_close_bus_screen(res.getInt("switch_close_bus_screen")); control.setSwitch_open_bus_screen(res.getInt("switch_open_bus_screen")); control.setSwitch_open_1st_2500A(res.getInt("switch_open_1st_2500A")); control.setSwitch_open_1st_2500A_load(res.getInt("switch_open_1st_2500A_load")); control.setSwitch_open_2st_2500A(res.getInt("switch_open_2st_2500A")); control.setSwitch_open_2st_2500A_load(res.getInt("switch_open_2st_2500A_load")); } } catch (Exception e) { sql.logger.error(e.toString(),e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error(e.toString(),e); } } sql.close_con(); } } /** * 查询集中监控系统控制表 * @param pool * @param control */ public static void updateTb_Central_Monitor_Sys_Control(MysqlConnPool pool,Central_Control control) { if(control.getOp_cmd() == Central_Data_ComBase.CMD_SwitchClose_1st_ACK || control.getOp_cmd() == Central_Data_ComBase.CMD_SwitchOpen_1st_ACK || control.getOp_cmd() == Central_Data_ComBase.CMD_SwitchClose_2st_ACK || control.getOp_cmd() == Central_Data_ComBase.CMD_SwitchOpen_2st_ACK || control.getOp_cmd() == Central_Data_ComBase.CMD_SwitchClose_3st_ACK || control.getOp_cmd() == Central_Data_ComBase.CMD_SwitchOpen_3st_ACK || control.getOp_cmd() == Central_Data_ComBase.CMD_SwitchClose_4st_ACK || control.getOp_cmd() == Central_Data_ComBase.CMD_SwitchOpen_4st_ACK || control.getOp_cmd() == Central_Data_ComBase.CMD_SwitchClose_5st_ACK || control.getOp_cmd() == Central_Data_ComBase.CMD_SwitchOpen_5st_ACK ) { String sql_str = " UPDATE "+Sql_Mysql.Tb_Central_Monitor_Sys_Control+" SET op_cmd = "+control.getOp_cmd()+" WHERE dev_id = " + control.getDev_id(); Sql_Mysql sql = new Sql_Mysql(pool.getConn()); try { sql.sqlMysqlExecute(sql_str); } catch (Exception e) { sql.logger.error(e.toString(),e); } finally { sql.close_con(); } }else { control.setOp_cmd(Central_Data_ComBase.CMD_Null); } } } Central_Monitor/src/com/data/Comm/Central_Data_ComBase.java
New file @@ -0,0 +1,33 @@ package com.data.Comm; public class Central_Data_ComBase { public static final int CMD_Null = 0; public static final int CMD_SwitchClose_1st = 0x10; public static final int CMD_SwitchClose_1st_ACK = 0x11; public static final int CMD_SwitchOpen_1st = 0x12; public static final int CMD_SwitchOpen_1st_ACK = 0x13; public static final int CMD_SwitchClose_2st = 0x14; public static final int CMD_SwitchClose_2st_ACK = 0x15; public static final int CMD_SwitchOpen_2st = 0x16; public static final int CMD_SwitchOpen_2st_ACK = 0x17; public static final int CMD_SwitchClose_3st = 0x18; public static final int CMD_SwitchClose_3st_ACK = 0x19; public static final int CMD_SwitchOpen_3st = 0x20; public static final int CMD_SwitchOpen_3st_ACK = 0x21; public static final int CMD_SwitchClose_4st = 0x22; public static final int CMD_SwitchClose_4st_ACK = 0x23; public static final int CMD_SwitchOpen_4st = 0x24; public static final int CMD_SwitchOpen_4st_ACK = 0x25; public static final int CMD_SwitchClose_5st = 0x26; public static final int CMD_SwitchClose_5st_ACK = 0x27; public static final int CMD_SwitchOpen_5st = 0x28; public static final int CMD_SwitchOpen_5st_ACK = 0x29; } Central_Monitor/src/com/data/Comm/Central_Data_SocketClient_Thread.java
@@ -1,5 +1,6 @@ package com.data.Comm; import com.data.Central_Control; import com.data.Central_RT_Data; import com.data.Central_ST_Data; import com.data.Motor_inf; @@ -41,8 +42,12 @@ } } Central_DataParsing_Thread_SQL.queryTb_Central_Monitor_Sys_Control(pool, motor.control); if(motor.control.control_en) { writeControlInf(motor.control); Central_DataParsing_Thread_SQL.updateTb_Central_Monitor_Sys_Control(pool,motor.control); } motor.conn_state = master.getConnectState(); if(run_count > 999909) { @@ -57,6 +62,67 @@ } /** * 控制指定的节点 * @param control */ private void writeControlInf(Central_Control control) { switch(control.getOp_cmd()) { case Central_Data_ComBase.CMD_SwitchClose_1st:{ // if(MyModbusUtils.writeCoil(1, true, master)) { control.setOp_cmd(Central_Data_ComBase.CMD_SwitchClose_1st_ACK); } }break; case Central_Data_ComBase.CMD_SwitchOpen_1st:{ if(MyModbusUtils.writeCoil(2, true, master)) { control.setOp_cmd(Central_Data_ComBase.CMD_SwitchOpen_1st_ACK); } }break; case Central_Data_ComBase.CMD_SwitchClose_2st:{ if(MyModbusUtils.writeCoil(3, true, master)) { control.setOp_cmd(Central_Data_ComBase.CMD_SwitchClose_2st_ACK); } }break; case Central_Data_ComBase.CMD_SwitchOpen_2st:{ if(MyModbusUtils.writeCoil(4, true, master)) { control.setOp_cmd(Central_Data_ComBase.CMD_SwitchOpen_2st_ACK); } }break; case Central_Data_ComBase.CMD_SwitchClose_3st:{ if(MyModbusUtils.writeCoil(5, true, master)) { control.setOp_cmd(Central_Data_ComBase.CMD_SwitchClose_3st); } }break; case Central_Data_ComBase.CMD_SwitchOpen_3st:{ if(MyModbusUtils.writeCoil(6, true, master)) { control.setOp_cmd(Central_Data_ComBase.CMD_SwitchOpen_3st_ACK); } }break; case Central_Data_ComBase.CMD_SwitchClose_4st:{ if(MyModbusUtils.writeCoil(7, true, master)) { control.setOp_cmd(Central_Data_ComBase.CMD_SwitchClose_4st_ACK); } }break; case Central_Data_ComBase.CMD_SwitchOpen_4st:{ if(MyModbusUtils.writeCoil(8, true, master)) { control.setOp_cmd(Central_Data_ComBase.CMD_SwitchOpen_4st_ACK); } }break; case Central_Data_ComBase.CMD_SwitchClose_5st:{ if(MyModbusUtils.writeCoil(9, true, master)) { control.setOp_cmd(Central_Data_ComBase.CMD_SwitchClose_5st_ACK); } }break; case Central_Data_ComBase.CMD_SwitchOpen_5st:{ if(MyModbusUtils.writeCoil(10, true, master)) { control.setOp_cmd(Central_Data_ComBase.CMD_SwitchOpen_5st_ACK); } }break; } } /** * 读取直流主配信息 * @param stdata */ Central_Monitor/src/com/data/history/Central_Data_RealRecord_Thread.java
New file @@ -0,0 +1,45 @@ package com.data.history; import java.util.Date; import java.util.List; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.base.Com; import com.data.Motor_inf; import com.sql.MysqlConnPool; public class Central_Data_RealRecord_Thread extends Thread{ private MysqlConnPool pool; private Logger logger = null; private List<Motor_inf> motors; public Central_Data_RealRecord_Thread(MysqlConnPool pool,List<Motor_inf> motors) { this.pool = pool; logger = LogManager.getLogger(this.getClass()); this.motors = motors; } @Override public void run() { logger.info(" Central_Data_RealRecord_Thread Start ..."); Date now = null; Date last = new Date(0); System.out.println(Com.getDateTimeFormat(last, Com.DTF_YMDhms)); while(true) { try { now = new Date(); for(int i=0;i<motors.size();i++) { } Thread.sleep(50); } catch (Exception e) { logger.error(e.toString(),e); } } } } Central_Monitor/src/com/modbus/data/MyModbusMaster.java
@@ -1,5 +1,8 @@ package com.modbus.data; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.serotonin.modbus4j.ModbusMaster; import com.serotonin.modbus4j.ip.IpParameters; @@ -14,6 +17,8 @@ private int totalerr = 31; //总的错误计数[默认失去连接] 用于判别设备是否掉线 private String target_ip; //目标ip private int slaveId; //设备ID public Logger logger = null; public MyModbusMaster(String target_ip,int slaveId) { this.target_ip = target_ip; @@ -21,6 +26,7 @@ IpParameters params = new IpParameters(); params.setHost(target_ip); this.master = MyModbusFactory.getMaster(params); logger = LogManager.getLogger(this.getClass()); } public void addErrorCount() { Central_Monitor/src/com/modbus/data/MyModbusUtils.java
@@ -234,7 +234,8 @@ WriteCoilRequest request = new WriteCoilRequest(master.getSlaveId(), writeOffset, writeValue); response = (WriteCoilResponse) tcpMaster.send(request); } catch (ModbusTransportException e) { e.printStackTrace(); master.logger.error(e.toString(),e); //e.printStackTrace(); } if (response == null || response.isException()) { master.addErrorCount(); Central_Monitor/src/com/sql/Sql_Mysql.java
@@ -232,7 +232,7 @@ try { mysql_con.close(); } catch (SQLException e) { e.printStackTrace(); logger.error(e.toString(),e); } } Central_Monitor/src/main/main_Central_Monitor.java
@@ -11,7 +11,9 @@ import com.config.AppConfig; import com.data.Motor_inf; import com.data.Comm.Central_DataParsing_Thread_SQL; import com.data.Comm.Central_Data_SocketServer_Thread; import com.data.Comm.Central_Data_Task_SQL; import com.data.history.Central_Data_RealRecord_Thread; import com.sql.MysqlConnPool; public class main_Central_Monitor { @@ -50,7 +52,7 @@ //创建config.xml文件 m_AppConfig = new AppConfig(); logger.info("SQLserver IP:" + m_AppConfig.getMysqlServerIp() + ", port: "+MysqlServer_Port); logger.info("SQLserver IP: " + m_AppConfig.getMysqlServerIp() + ", port: "+MysqlServer_Port); checkingMySQLServerStart(); //检测数据库服务是否启动 @@ -62,6 +64,17 @@ Central_DataParsing_Thread_SQL.loadDeviceData(GB_MysqlConnPool, motors); //加载集中监控系统设备信息 /********************* 实时数据读取线程 ************************************************************/ { Central_Data_SocketServer_Thread server = new Central_Data_SocketServer_Thread(GB_MysqlConnPool, motors); server.start(); } /********************* 历史实时数据记录线程 ************************************************************/ { Central_Data_RealRecord_Thread record_thread = new Central_Data_RealRecord_Thread(GB_MysqlConnPool, motors); record_thread.start(); } while(true) { try {