| | |
| | | } |
| | | |
| | | if(run_count % 2 ==0 ) { |
| | | int startaddr = Modbus_ComBase.ActualSetPower_Start_Addr; |
| | | //读取V区各个按钮状态 02-18 |
| | | basedata = new BaseData(Modbus_ComBase.READ_HOLDING_REGISTER, Modbus_ComBase.LocalControl_Start_Addr, 17); |
| | | if(dyna_inf.getFZ_button_num() == 11) { |
| | | startaddr = Modbus_ComBase.ActualSetPower_Start_Addr-2; |
| | | } |
| | | basedata = new BaseData(Modbus_ComBase.READ_HOLDING_REGISTER, startaddr, 17); |
| | | if(SocketComm(basedata.createReadData(), socket)) { |
| | | //读取V区状态成功 |
| | | } |
| | |
| | | |
| | | if(control.set_power >= CMD_Start) { |
| | | //设定功率 |
| | | basedata = new BaseData(Modbus_ComBase.WRITE_MULTIPLE_REGISTER, Modbus_ComBase.SetPower_Start_Addr, 1); |
| | | int addr = Modbus_ComBase.SetPower_Start_Addr; |
| | | if(dyna_inf.getFZ_button_num() ==11) { |
| | | addr = 4; |
| | | basedata = new BaseData(Modbus_ComBase.WRITE_MULTIPLE_REGISTER, addr, 1); |
| | | if(SocketComm(basedata.createWiriteData(BaseData.createIntByte((int)control.set_power)), socket)) { |
| | | control.set_power = CMD_SUCCESS; |
| | | } |
| | | }else { |
| | | basedata = new BaseData(Modbus_ComBase.WRITE_MULTIPLE_REGISTER, addr, 2); |
| | | if(SocketComm(basedata.createWiriteData(BaseData.createFloatByte(control.set_power)), socket)) { |
| | | control.set_power = CMD_SUCCESS; |
| | | } |
| | | } |
| | | control.set_power = CMD_FAIL; |
| | | SocketComm(basedata.createWiriteData(BaseData.createFloatByte(control.set_power)), socket); |
| | | } |
| | | if(control.interval_time >= CMD_Start) { |
| | | //间隔时间 |
| | | int addr = Modbus_ComBase.InterTime_Start_Addr; |
| | | if(dyna_inf.getFZ_button_num() == 11) { |
| | | addr = 6; |
| | | } |
| | | basedata = new BaseData(Modbus_ComBase.WRITE_MULTIPLE_REGISTER, addr, 1); |
| | | if(SocketComm(basedata.createWiriteData(BaseData.createIntByte(control.interval_time)), socket)) { |
| | | control.interval_time = CMD_SUCCESS; |
| | | } |
| | | control.interval_time = CMD_FAIL; |
| | | } |
| | | //System.out.println(control); |
| | | PowerArk_ServerSocket_Thread_SQL.updateDynamicload_ControlTable(conn_pool, control); |
| | |
| | | bytebuffer_for_socket_RX.clear(); |
| | | //--------------------- socket write -----------------------------------// |
| | | //byte[] b = makeCommBuf(cmd, bf); |
| | | System.err.println("发送数据:"+ComFn.bytesToHexString(bytedata, bytedata.length)); |
| | | //System.err.println("发送数据:"+ComFn.bytesToHexString(bytedata, bytedata.length)); |
| | | Date d1 = new Date(); |
| | | int rx_read_time_out = 0; |
| | | //int rx_len = 0; |
| | |
| | | //System.err.println("通讯时长:" + comm_tms); |
| | | byte[] buffer = new byte[bytebuffer_for_socket_RX.limit()]; |
| | | bytebuffer_for_socket_RX.get(buffer); |
| | | System.err.println("接收数据"+ComFn.bytesToHexString(buffer, buffer.length)); |
| | | //System.err.println("接收数据"+ComFn.bytesToHexString(buffer, buffer.length)); |
| | | if(true == getDataFromCommBuf(buffer)) { |
| | | connCount ++; |
| | | res_t = true; |
| | |
| | | //读取线圈数据成功[4013-4030] |
| | | if(baseData.addrstart == Modbus_ComBase.OverTmp_Start_Addr) { |
| | | if(dyna_inf.putReadIBackByteBuffer(bf)) { |
| | | System.out.println("读取I区数据成功4013-4030"); |
| | | //System.out.println("读取I区数据成功4013-4030"); |
| | | issuccess = true; |
| | | } |
| | | } |
| | |
| | | //读取M区状态成功[01 - 12] |
| | | if(baseData.addrstart == Modbus_ComBase.AutoProcess1_Start_Addr) { |
| | | if(dyna_inf.putReadMBackByteBuffer(bf)) { |
| | | System.out.println("读取M区数据成功01-12"); |
| | | //System.out.println("读取M区数据成功01-12"); |
| | | issuccess = true; |
| | | } |
| | | } |
| | |
| | | if(baseData.addrstart == Modbus_ComBase.ButtonOutPut_Start_Addr) { |
| | | //System.out.println("%%%%%%%%%%%%%%%%%%%%"); |
| | | if(dyna_inf.putReadQBackByteBuffer(bf)) { |
| | | System.out.println("读取Q区数据成功8000-8013"); |
| | | //System.out.println("读取Q区数据成功8000-8013"); |
| | | issuccess = true; |
| | | } |
| | | } |
| | |
| | | //读取M区各个控制的状态[0040-0160] |
| | | if(baseData.addrstart == Modbus_ComBase.LocalControl_Start_Addr) { |
| | | if(dyna_inf.putReadMControlStateByteBuffer(bf)) { |
| | | System.out.println("读取M区数据成功0040-0160"); |
| | | //System.out.println("读取M区数据成功0040-0160"); |
| | | issuccess = true; |
| | | } |
| | | } |
| | |
| | | |
| | | |
| | | }else if(baseData.funcode == Modbus_ComBase.READ_HOLDING_REGISTER) { |
| | | if(baseData.addrstart == Modbus_ComBase.ActualSetPower_Start_Addr) { |
| | | if(baseData.addrstart == Modbus_ComBase.ActualSetPower_Start_Addr ) { |
| | | //读取V区各个数据状态[02-18] |
| | | if(dyna_inf.putReadVBackByteBuffer(bf)) { |
| | | System.out.println("读取V区数据成功02-18"); |
| | | //System.out.println("读取V区数据成功02-18"); |
| | | issuccess = true; |
| | | } |
| | | }else if(baseData.addrstart == Modbus_ComBase.ActualSetPower_Start_Addr-2) { |
| | | //读取V区各个数据状态[01-8] |
| | | if(dyna_inf.putReadVLongBackByteBuffer(bf)) { |
| | | //System.out.println("读取V区数据成功01-08"); |
| | | issuccess = true; |
| | | } |
| | | } |
| | |
| | | //单点写入成功 |
| | | if(baseData.funcode == BaseData.SINGLEWRITE_BYTECOUNT) { |
| | | issuccess = true; |
| | | System.out.println("写入成功"); |
| | | //System.out.println("写入成功"); |
| | | } |
| | | } |
| | | } |