| | |
| | | |
| | | import com.modbus.data.MyModbusMaster; |
| | | import com.modbus.data.MyModbusUtils; |
| | | import com.modbus.data.User_Log; |
| | | import com.modbus.data.User_Log_SQL; |
| | | import com.serotonin.modbus4j.BatchRead; |
| | | import com.serotonin.modbus4j.BatchResults; |
| | | import com.serotonin.modbus4j.code.DataType; |
| | |
| | | public MyModbusMaster master; |
| | | public Electric_2MW_alarm eAlarm; |
| | | public List<Electric_2MW_alarm> listAlarm; |
| | | public List<User_Log> logs; |
| | | |
| | | |
| | | public Electrical_2KW_SocketClient_Thread(Electric_inf_2kw winf,MysqlConnPool conn_pool) { |
| | | this.conn_pool = conn_pool; |
| | |
| | | econ = einf.control; |
| | | eAlarm = einf.alarm; |
| | | |
| | | logs = new ArrayList<>(); |
| | | /* |
| | | state = new Electric_State_2kw(einf.electric2KW_id); |
| | | ert = new Electric_Rt_2kw(einf.electric2KW_id); |
| | |
| | | |
| | | Electrical_2KWTask_SQL.queryElectric_Control_2KW(conn_pool,econ); |
| | | if(econ.update_en == true) { |
| | | logs.clear(); |
| | | //System.out.println(econ.electric2KW_id+"##"); |
| | | //转为恒压模式充电电压值 |
| | | if(econ.consvolmode_chargecurr > 0) { |
| | | MyModbusUtils.writeHoldingRegister(330, econ.consvolmode_chargecurr, DataType.TWO_BYTE_INT_SIGNED, master); |
| | | boolean flag = MyModbusUtils.writeHoldingRegister(330, econ.consvolmode_chargecurr, DataType.TWO_BYTE_INT_SIGNED, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"转为恒压模式充电电压值为:"+econ.consvolmode_chargecurr, flag)); |
| | | } |
| | | //第5阶段充电电流值 |
| | | if(econ.chargecurr_five > 0) { |
| | | MyModbusUtils.writeHoldingRegister(319,econ.chargecurr_five, DataType.TWO_BYTE_INT_SIGNED, master); |
| | | boolean flag = MyModbusUtils.writeHoldingRegister(319,econ.chargecurr_five, DataType.TWO_BYTE_INT_SIGNED, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"第5阶段充电电流值为:"+econ.chargecurr_five, flag)); |
| | | } |
| | | //第4阶段充电电流值 |
| | | if(econ.chargecurr_four > 0) { |
| | | MyModbusUtils.writeHoldingRegister(318,econ.chargecurr_four, DataType.TWO_BYTE_INT_SIGNED, master); |
| | | boolean flag = MyModbusUtils.writeHoldingRegister(318,econ.chargecurr_four, DataType.TWO_BYTE_INT_SIGNED, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"第4阶段充电电流值为:"+econ.chargecurr_four, flag)); |
| | | } |
| | | //第3阶段充电电流值 |
| | | if(econ.chargecurr_three > 0) { |
| | | MyModbusUtils.writeHoldingRegister(317,econ.chargecurr_three, DataType.TWO_BYTE_INT_SIGNED, master); |
| | | boolean flag = MyModbusUtils.writeHoldingRegister(317,econ.chargecurr_three, DataType.TWO_BYTE_INT_SIGNED, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"第3阶段充电电流值为:"+econ.chargecurr_three, flag)); |
| | | } |
| | | //第2阶段充电电流值 |
| | | if(econ.chargecurr_two > 0) { |
| | | MyModbusUtils.writeHoldingRegister(316,econ.chargecurr_two, DataType.TWO_BYTE_INT_SIGNED, master); |
| | | boolean flag = MyModbusUtils.writeHoldingRegister(316,econ.chargecurr_two, DataType.TWO_BYTE_INT_SIGNED, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"第2阶段充电电流值为:"+econ.chargecurr_two, flag)); |
| | | } |
| | | //第1阶段充电电流值 |
| | | if(econ.chargecurr_one > 0) { |
| | | MyModbusUtils.writeHoldingRegister(315,econ.chargecurr_one, DataType.TWO_BYTE_INT_SIGNED, master); |
| | | boolean flag = MyModbusUtils.writeHoldingRegister(315,econ.chargecurr_one, DataType.TWO_BYTE_INT_SIGNED, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"第1阶段充电电流值为:"+econ.chargecurr_one, flag)); |
| | | |
| | | } |
| | | //电流设定值 |
| | | // if(econ.currset > 0) { |
| | |
| | | // } |
| | | //第5阶段充电终止电压 |
| | | if(econ.stopchargevol_five > 0) { |
| | | MyModbusUtils.writeHoldingRegister(328,econ.stopchargevol_five, DataType.FOUR_BYTE_FLOAT, master); |
| | | boolean flag = MyModbusUtils.writeHoldingRegister(328,econ.stopchargevol_five, DataType.FOUR_BYTE_FLOAT, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"第5阶段充电终止电压为:"+econ.stopchargevol_five, flag)); |
| | | } |
| | | //第4阶段充电终止电压 |
| | | if(econ.stopchargevol_four > 0) { |
| | | MyModbusUtils.writeHoldingRegister(326,econ.stopchargevol_four, DataType.FOUR_BYTE_FLOAT, master); |
| | | boolean flag = MyModbusUtils.writeHoldingRegister(326,econ.stopchargevol_four, DataType.FOUR_BYTE_FLOAT, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"第4阶段充电终止电压为:"+econ.stopchargevol_four, flag)); |
| | | } |
| | | //第3阶段充电终止电压 |
| | | if(econ.stopchargevol_three > 0) { |
| | | MyModbusUtils.writeHoldingRegister(324,econ.stopchargevol_three, DataType.FOUR_BYTE_FLOAT, master); |
| | | boolean flag = MyModbusUtils.writeHoldingRegister(324,econ.stopchargevol_three, DataType.FOUR_BYTE_FLOAT, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"第3阶段充电终止电压为:"+econ.stopchargevol_three, flag)); |
| | | } |
| | | //第2阶段充电终止电压 |
| | | if(econ.stopchargevol_two > 0) { |
| | | MyModbusUtils.writeHoldingRegister(322,econ.stopchargevol_two, DataType.FOUR_BYTE_FLOAT, master); |
| | | boolean flag = MyModbusUtils.writeHoldingRegister(322,econ.stopchargevol_two, DataType.FOUR_BYTE_FLOAT, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"第2阶段充电终止电压为:"+econ.stopchargevol_two, flag)); |
| | | } |
| | | //第1阶段充电终止电压 |
| | | if(econ.stopchargevol_one > 0) { |
| | | MyModbusUtils.writeHoldingRegister(320,econ.stopchargevol_one, DataType.FOUR_BYTE_FLOAT, master); |
| | | boolean flag = MyModbusUtils.writeHoldingRegister(320,econ.stopchargevol_one, DataType.FOUR_BYTE_FLOAT, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"第1阶段充电终止电压为:"+econ.stopchargevol_one, flag)); |
| | | } |
| | | //上位机脉冲封锁 |
| | | if(econ.upper_pulse_block > 0) { |
| | | MyModbusUtils.writeCoil(80, true, master); |
| | | boolean flag = MyModbusUtils.writeCoil(80, true, master); |
| | | Thread.sleep(2000); |
| | | MyModbusUtils.writeCoil(80, false, master); |
| | | flag = flag&&MyModbusUtils.writeCoil(80, false, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"上位机脉冲封锁", flag)); |
| | | } |
| | | //远程启动 |
| | | if(econ.remote_start > 0) { |
| | | MyModbusUtils.writeCoil(112, true, master); |
| | | boolean flag = MyModbusUtils.writeCoil(112, true, master); |
| | | Thread.sleep(2000); |
| | | MyModbusUtils.writeCoil(112, false, master); |
| | | flag = flag&&MyModbusUtils.writeCoil(112, false, master); |
| | | logs.add(new User_Log(User_Log.Start_up, User_Log.electric2mwsystem,einf.electric2KW_name+"远程启动", flag)); |
| | | } |
| | | //故障复位 |
| | | if(econ.fault_reset > 0) { |
| | | MyModbusUtils.writeCoil(113, true, master); |
| | | boolean flag = MyModbusUtils.writeCoil(113, true, master); |
| | | Thread.sleep(2000); |
| | | MyModbusUtils.writeCoil(113, false, master); |
| | | flag = flag&&MyModbusUtils.writeCoil(113, false, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"故障复位", flag)); |
| | | } |
| | | //恒流切换 |
| | | if(econ.conscurrswitch > 0) { |
| | | MyModbusUtils.writeCoil(114, true, master); |
| | | boolean flag = MyModbusUtils.writeCoil(114, true, master); |
| | | Thread.sleep(2000); |
| | | MyModbusUtils.writeCoil(114, false, master); |
| | | flag = flag&&MyModbusUtils.writeCoil(114, false, master); |
| | | logs.add(new User_Log(User_Log.Start_up, User_Log.electric2mwsystem,einf.electric2KW_name+"恒流切换", flag)); |
| | | } |
| | | //4并或2串2并恒压 |
| | | if(econ.constantvol > 0) { |
| | | MyModbusUtils.writeCoil(115, true, master); |
| | | boolean flag = MyModbusUtils.writeCoil(115, true, master); |
| | | Thread.sleep(2000); |
| | | MyModbusUtils.writeCoil(115, false, master); |
| | | flag = flag&&MyModbusUtils.writeCoil(115, false, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"为:4并或2串2并恒压", flag)); |
| | | } |
| | | //电压给定确认 |
| | | if(econ.volset_confirm > 0) { |
| | | MyModbusUtils.writeHoldingRegister(18,econ.volset, DataType.TWO_BYTE_INT_SIGNED, master); |
| | | MyModbusUtils.writeCoil(116, true, master); |
| | | boolean flag = MyModbusUtils.writeHoldingRegister(18,econ.volset, DataType.TWO_BYTE_INT_SIGNED, master); |
| | | flag = flag&&MyModbusUtils.writeCoil(116, true, master); |
| | | Thread.sleep(2000); |
| | | MyModbusUtils.writeCoil(116, false, master); |
| | | flag = flag&&MyModbusUtils.writeCoil(116, false, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"电压设定值为:"+econ.volset, flag)); |
| | | } |
| | | //电流给定确认 |
| | | if(econ.currset_confirm > 0) { |
| | | MyModbusUtils.writeHoldingRegister(27,econ.currset, DataType.TWO_BYTE_INT_SIGNED, master); |
| | | MyModbusUtils.writeCoil(117, true, master); |
| | | boolean flag = MyModbusUtils.writeHoldingRegister(27,econ.currset, DataType.TWO_BYTE_INT_SIGNED, master); |
| | | flag = flag&&MyModbusUtils.writeCoil(117, true, master); |
| | | Thread.sleep(2000); |
| | | MyModbusUtils.writeCoil(117, false, master); |
| | | flag = flag&&MyModbusUtils.writeCoil(117, false, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"电流设定值为:"+econ.currset, flag)); |
| | | } |
| | | //远程停止 |
| | | if(econ.remote_stop > 0) { |
| | | MyModbusUtils.writeCoil(118, true, master); |
| | | boolean flag = MyModbusUtils.writeCoil(118, true, master); |
| | | Thread.sleep(2000); |
| | | MyModbusUtils.writeCoil(118, false, master); |
| | | flag = flag&&MyModbusUtils.writeCoil(118, false, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"远程停止", flag)); |
| | | } |
| | | //启动触摸屏给定 |
| | | if(econ.start_screen_set > 0) { |
| | | MyModbusUtils.writeCoil(120, true, master); |
| | | boolean flag = MyModbusUtils.writeCoil(120, true, master); |
| | | Thread.sleep(2000); |
| | | MyModbusUtils.writeCoil(120, false, master); |
| | | flag = flag&&MyModbusUtils.writeCoil(120, false, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"触摸屏给定", flag)); |
| | | } |
| | | //启动上位机给定 |
| | | if(econ.start_upper_set > 0) { |
| | | MyModbusUtils.writeCoil(121, true, master); |
| | | boolean flag = MyModbusUtils.writeCoil(121, true, master); |
| | | Thread.sleep(2000); |
| | | MyModbusUtils.writeCoil(121, false, master); |
| | | flag = flag&&MyModbusUtils.writeCoil(121, false, master); |
| | | logs.add(new User_Log(User_Log.Start_up, User_Log.electric2mwsystem,einf.electric2KW_name+"上位机给定", flag)); |
| | | } |
| | | //恒压切换 |
| | | if(econ.consvolswitch > 0) { |
| | | MyModbusUtils.writeCoil(123, true, master); |
| | | boolean flag = MyModbusUtils.writeCoil(123, true, master); |
| | | Thread.sleep(2000); |
| | | MyModbusUtils.writeCoil(123, false, master); |
| | | flag = flag&&MyModbusUtils.writeCoil(123, false, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"恒压切换", flag)); |
| | | } |
| | | //4并或2串2并以外模式 |
| | | if(econ.othermode > 0) { |
| | | MyModbusUtils.writeCoil(125, true, master); |
| | | boolean flag = MyModbusUtils.writeCoil(125, true, master); |
| | | Thread.sleep(2000); |
| | | MyModbusUtils.writeCoil(125, false, master); |
| | | flag = flag&&MyModbusUtils.writeCoil(125, false, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"4并或2串2并以外模式", flag)); |
| | | } |
| | | //四串恒压电压分配位 |
| | | if(econ.consvol_distribution > 0) { |
| | | MyModbusUtils.writeCoil(128, true, master); |
| | | boolean flag = MyModbusUtils.writeCoil(128, true, master); |
| | | Thread.sleep(2000); |
| | | MyModbusUtils.writeCoil(128, false, master); |
| | | flag = flag&&MyModbusUtils.writeCoil(128, false, master); |
| | | logs.add(new User_Log(User_Log.Alter, User_Log.electric2mwsystem,einf.electric2KW_name+"四串恒压电压分配", flag)); |
| | | } |
| | | |
| | | econ.clear(); |
| | | // //System.err.println(econ); |
| | | Electrical_2KWTask_SQL.update_Electric_Control_2KW(conn_pool, econ); |
| | | |
| | | User_Log_SQL.recordUserLog(conn_pool, logs); //记录操作日志 |
| | | } |
| | | |
| | | |