From 95c0c2e94d390650d3954c30c6a7c805fe9c714c Mon Sep 17 00:00:00 2001 From: whyclj <1525436766@qq.com> Date: 星期四, 15 十月 2020 18:23:18 +0800 Subject: [PATCH] 负载添加历史实时数据记录功能 --- src/com/dev/base/data/Dynamicload_SocketClient_Thread.java | 277 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 268 insertions(+), 9 deletions(-) diff --git a/src/com/dev/base/data/Dynamicload_SocketClient_Thread.java b/src/com/dev/base/data/Dynamicload_SocketClient_Thread.java index dc4f0df..24cbe4e 100644 --- a/src/com/dev/base/data/Dynamicload_SocketClient_Thread.java +++ b/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 { @@ -25,10 +26,15 @@ this.conn_pool = conn_pool; this.dinf = dinf; - dbutton = new Dynamicload_button(dinf.getDev_id()); - dcontrol = new Dynamicload_control(dinf.getDev_id()); - dstate = new Dynamicload_state(dinf.getDev_id(),dinf.getFZ_button_num()); + dbutton = dinf.button; + dcontrol = dinf.control; + dstate = dinf.state; + + //dbutton = new Dynamicload_button(dinf.getDev_id()); + //dcontrol = new Dynamicload_control(dinf.getDev_id(),dinf.getFZ_button_num()); + //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 @@ -38,16 +44,37 @@ Date last = new Date(); while (true) { try { + /*PowerArk_Task_SQL.queryDynamicload_Control(conn_pool, dcontrol); + if(dcontrol.isControl_en()) { + //************************** 控制输出 *******************************//* + writeDynamicload_Control(master,dcontrol); + PowerArk_Task_SQL.update_Dynamicload_Control(conn_pool, dcontrol); + }*/ + //控制页面 + /*PowerArk_Task_SQL.queryDynamicload_Control(conn_pool, dcontrol); + { +// if(dcontrol.dev_id == 1001) { +// System.out.println(dcontrol.dev_id+"=="+dcontrol.control_en); +// } + if(dcontrol.control_en) { + + writeDynamicload_Control(master, dcontrol); + PowerArk_Task_SQL.update_Dynamicload_Control(conn_pool, dcontrol); + } + }*/ + if (runCount % 2 == 0) { // *************************** 更新负载按钮信息******************************//* // Date t1 = new Date(); + //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(); // **************************** 更新负载状态信息 *****************************//* + //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())); @@ -55,7 +82,8 @@ //System.err.println(dinf.dev_id + "=====" + ((new Date()).getTime() - last.getTime())); last = new Date(); - + PowerArk_Task_SQL.insertOrUpdateDeviceConnectState(conn_pool, dinf.dev_id, master); + dinf.conn_state = master.getConnectState(); if (runCount % 10 == 0) { // 更新当前设备ip master.setTarget_ip(dinf.dev_ip); @@ -77,15 +105,211 @@ } } + //控制输出 + private void writeDynamicload_Control(MyModbusMaster master, Dynamicload_control dcontrol) { + if(dcontrol.FZ_b1>0) { + if(dcontrol.FZ_b1==1) { + MyModbusUtils.writeCoil(80, true, master); + }else { + MyModbusUtils.writeCoil(80, false, master); + } + } + if(dcontrol.FZ_b2>0) { + if(dcontrol.FZ_b2==1) { + MyModbusUtils.writeCoil(81, true, master); + }else { + MyModbusUtils.writeCoil(81, false, master); + } + } + if(dcontrol.FZ_b3>0) { + if(dcontrol.FZ_b3==1) { + MyModbusUtils.writeCoil(82, true, master); + }else { + MyModbusUtils.writeCoil(82, false, master); + } + } + if(dcontrol.FZ_b4>0) { + if(dcontrol.FZ_b4==1) { + MyModbusUtils.writeCoil(83, true, master); + }else { + MyModbusUtils.writeCoil(83, false, master); + } + } + if(dcontrol.FZ_b5>0) { + if(dcontrol.FZ_b5==1) { + MyModbusUtils.writeCoil(84, true, master); + }else { + MyModbusUtils.writeCoil(84, false, master); + } + } + if(dcontrol.FZ_b6>0) { + if(dcontrol.FZ_b6==1) { + MyModbusUtils.writeCoil(85, true, master); + }else { + MyModbusUtils.writeCoil(85, false, master); + } + } + if(dcontrol.FZ_b7>0) { + if(dcontrol.FZ_b7==1) { + MyModbusUtils.writeCoil(86, true, master); + }else { + MyModbusUtils.writeCoil(86, false, master); + } + } + if(dcontrol.FZ_b8>0) { + if(dcontrol.FZ_b8==1) { + MyModbusUtils.writeCoil(87, true, master); + }else { + MyModbusUtils.writeCoil(87, false, master); + } + } + if(dcontrol.FZ_b9>0) { + if(dcontrol.FZ_b9==1) { + MyModbusUtils.writeCoil(88, true, master); + }else { + MyModbusUtils.writeCoil(88, false, master); + } + } + if(dcontrol.FZ_b10>0) { + if(dcontrol.FZ_b10==1) { + MyModbusUtils.writeCoil(89, true, master); + }else { + MyModbusUtils.writeCoil(89, false, master); + } + } + if(dcontrol.FZ_b11>0) { + if(dcontrol.FZ_b11==1) { + MyModbusUtils.writeCoil(90, true, master); + }else { + MyModbusUtils.writeCoil(90, false, master); + } + } + if(dcontrol.start_auto>0) { + //System.out.println("启动自动加减载"); + MyModbusUtils.writeCoil(8, true, master); + } + if(dcontrol.stop_auto>0) { + MyModbusUtils.writeCoil(9, true, master); + } + if(dcontrol.sudden_crease>0) { + MyModbusUtils.writeCoil(10, true, master); + } + if(dcontrol.all_open>0) { + MyModbusUtils.writeCoil(11, true, master); + } + /*if(dcontrol.FZ_autostate1>0) { + MyModbusUtils.writeCoil(1, true, master); + } + if(dcontrol.FZ_autostate2>0) { + MyModbusUtils.writeCoil(2, true, master); + } + if(dcontrol.FZ_autostate3>0) { + MyModbusUtils.writeCoil(3, true, master); + } + if(dcontrol.FZ_autostate4>0) { + MyModbusUtils.writeCoil(4, true, master); + } + if(dcontrol.FZ_autostate5>0) { + MyModbusUtils.writeCoil(5, true, master); + }*/ + /*if(dcontrol.local_control>0) { + MyModbusUtils.writeCoil(40, true, master); + } + if(dcontrol.back_control>0) { + MyModbusUtils.writeCoil(41, true, master); + } + if(dcontrol.central_control>0) { + MyModbusUtils.writeCoil(42, true, master); + } + if(dcontrol.inter_volume_M200>0) { + MyModbusUtils.writeCoil(160, true, master); + } + if(dcontrol.fan_button>0) { + MyModbusUtils.writeCoil(12, true, master); + }*/ + if(dcontrol.set_power>0) { + if(dcontrol.button_num==11) { + MyModbusUtils.writeHoldingRegister(4, dcontrol.set_power, DataType.TWO_BYTE_INT_UNSIGNED, master); + }else { + MyModbusUtils.writeHoldingRegister(8, dcontrol.set_power, DataType.TWO_BYTE_INT_UNSIGNED, master); + } + } + if(dcontrol.interval_time>0) { + if(dcontrol.button_num==11) { + MyModbusUtils.writeHoldingRegister(6, dcontrol.interval_time, DataType.TWO_BYTE_INT_UNSIGNED, master); + }else { + MyModbusUtils.writeHoldingRegister(16, dcontrol.interval_time, DataType.TWO_BYTE_INT_UNSIGNED, master); + } + } + dcontrol.clear(); + } + /** * 多点读取负载按钮状态 * @param master * @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("id"+dinf.getDev_id()+" button_num"+dstate.fz_button_num); + BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master); + dstate.putBatchResult(res,dstate.fz_button_num); } /** @@ -93,9 +317,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); } } \ No newline at end of file -- Gitblit v1.9.1