| | |
| | | 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 { |
| | |
| | | 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 |
| | |
| | | // *************************** 更新负载按钮信息******************************//* |
| | | |
| | | // 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())); |
| | | } |
| | |
| | | * @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); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @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); |
| | | } |
| | | } |