package com.electrical.TwoKW;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
import com.modbus.data.MyModbusMaster;
|
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 Electrical_2KW_SocketClient_Thread implements Runnable{
|
|
public MysqlConnPool conn_pool;
|
public Electric_inf_2kw einf;
|
public Electric_Rt_2kw ert;
|
public Electric_State_2kw state;
|
public Electric_Control_Single_2kw econ;
|
public MyModbusMaster master;
|
public Electric_2MW_alarm eAlarm;
|
public List<Electric_2MW_alarm> listAlarm;
|
|
public Electrical_2KW_SocketClient_Thread(Electric_inf_2kw winf,MysqlConnPool conn_pool) {
|
this.conn_pool = conn_pool;
|
this.einf = winf;
|
|
state = einf.state;
|
ert = einf.rt;
|
econ = einf.control;
|
|
/*
|
state = new Electric_State_2kw(einf.electric2KW_id);
|
ert = new Electric_Rt_2kw(einf.electric2KW_id);
|
econ = new Electric_Control_Single_2kw(einf.electric2KW_id);
|
*/
|
master = new MyModbusMaster(einf.getElectric2KW_ip(), MyModbusMaster.SLAVEID_DEFAULT);
|
listAlarm=new ArrayList<Electric_2MW_alarm>();
|
eAlarm=new Electric_2MW_alarm(einf.electric2KW_id);
|
}
|
|
|
@Override
|
public void run() {
|
int runCount = 0;
|
while(true) {
|
try {
|
|
if(runCount %2 == 0) {
|
//*************************** ¸üÐÂ2MWϵͳʵʱÐÅÏ¢******************************//*
|
readMutilElectric_Rt_2kw(master, ert);
|
Electrical_2KWTask_SQL.update_Electric_Rt_2KW(conn_pool, ert);
|
|
|
readMutilElectric_State_2kw(master, state);
|
Electrical_2KWTask_SQL.update_Electric_State_2KW(conn_pool, state);
|
|
//**************************** ¸üÐÂ2MWϵͳ¿ØÖÆÐÅÏ¢ *****************************//*
|
//readMutilElectric_Control_Single_2kw(master, econ);
|
//Electrical_2KWTask_SQL.update_Electric_Control_2KW(conn_pool, econ);
|
|
}
|
|
Electrical_2KWTask_SQL.queryElectric_Control_2KW(conn_pool,econ);
|
if(econ.update_en == true) {
|
//System.out.println(econ.electric2KW_id+"##");
|
//תΪºãѹģʽ³äµçµçѹֵ
|
if(econ.consvolmode_chargecurr > 0) {
|
MyModbusUtils.writeHoldingRegister(330, econ.consvolmode_chargecurr, DataType.TWO_BYTE_INT_SIGNED, master);
|
}
|
//µÚ5½×¶Î³äµçµçÁ÷Öµ
|
if(econ.chargecurr_five > 0) {
|
MyModbusUtils.writeHoldingRegister(319,econ.chargecurr_five, DataType.TWO_BYTE_INT_SIGNED, master);
|
}
|
//µÚ4½×¶Î³äµçµçÁ÷Öµ
|
if(econ.chargecurr_four > 0) {
|
MyModbusUtils.writeHoldingRegister(318,econ.chargecurr_four, DataType.TWO_BYTE_INT_SIGNED, master);
|
}
|
//µÚ3½×¶Î³äµçµçÁ÷Öµ
|
if(econ.chargecurr_three > 0) {
|
MyModbusUtils.writeHoldingRegister(317,econ.chargecurr_three, DataType.TWO_BYTE_INT_SIGNED, master);
|
}
|
//µÚ2½×¶Î³äµçµçÁ÷Öµ
|
if(econ.chargecurr_two > 0) {
|
MyModbusUtils.writeHoldingRegister(316,econ.chargecurr_two, DataType.TWO_BYTE_INT_SIGNED, master);
|
}
|
//µÚ1½×¶Î³äµçµçÁ÷Öµ
|
if(econ.chargecurr_one > 0) {
|
MyModbusUtils.writeHoldingRegister(315,econ.chargecurr_one, DataType.TWO_BYTE_INT_SIGNED, master);
|
}
|
//µçÁ÷É趨ֵ
|
// if(econ.currset > 0) {
|
// MyModbusUtils.writeHoldingRegister(27,econ.currset, DataType.FOUR_BYTE_FLOAT, master);
|
// }
|
// 'µçѹÉ趨ֵ'
|
// if(econ.volset > 0) {
|
// MyModbusUtils.writeHoldingRegister(18,econ.volset, DataType.FOUR_BYTE_FLOAT, master);
|
// }
|
//µÚ5½×¶Î³äµçÖÕÖ¹µçѹ
|
if(econ.stopchargevol_five > 0) {
|
MyModbusUtils.writeHoldingRegister(328,econ.stopchargevol_five, DataType.FOUR_BYTE_FLOAT, master);
|
}
|
//µÚ4½×¶Î³äµçÖÕÖ¹µçѹ
|
if(econ.stopchargevol_four > 0) {
|
MyModbusUtils.writeHoldingRegister(326,econ.stopchargevol_four, DataType.FOUR_BYTE_FLOAT, master);
|
}
|
//µÚ3½×¶Î³äµçÖÕÖ¹µçѹ
|
if(econ.stopchargevol_three > 0) {
|
MyModbusUtils.writeHoldingRegister(324,econ.stopchargevol_three, DataType.FOUR_BYTE_FLOAT, master);
|
}
|
//µÚ2½×¶Î³äµçÖÕÖ¹µçѹ
|
if(econ.stopchargevol_two > 0) {
|
MyModbusUtils.writeHoldingRegister(322,econ.stopchargevol_two, DataType.FOUR_BYTE_FLOAT, master);
|
}
|
//µÚ1½×¶Î³äµçÖÕÖ¹µçѹ
|
if(econ.stopchargevol_one > 0) {
|
MyModbusUtils.writeHoldingRegister(320,econ.stopchargevol_one, DataType.FOUR_BYTE_FLOAT, master);
|
}
|
//ÉÏλ»úÂö³å·âËø
|
if(econ.upper_pulse_block > 0) {
|
MyModbusUtils.writeCoil(80, true, master);
|
Thread.sleep(2000);
|
MyModbusUtils.writeCoil(80, false, master);
|
}
|
//Ô¶³ÌÆô¶¯
|
if(econ.remote_start > 0) {
|
MyModbusUtils.writeCoil(112, true, master);
|
Thread.sleep(2000);
|
MyModbusUtils.writeCoil(112, false, master);
|
}
|
//¹ÊÕϸ´Î»
|
if(econ.fault_reset > 0) {
|
MyModbusUtils.writeCoil(113, true, master);
|
Thread.sleep(2000);
|
MyModbusUtils.writeCoil(113, false, master);
|
}
|
//ºãÁ÷Çл»
|
if(econ.conscurrswitch > 0) {
|
MyModbusUtils.writeCoil(114, true, master);
|
Thread.sleep(2000);
|
MyModbusUtils.writeCoil(114, false, master);
|
}
|
//4²¢»ò2´®2²¢ºãѹ
|
if(econ.constantvol > 0) {
|
MyModbusUtils.writeCoil(115, true, master);
|
Thread.sleep(2000);
|
MyModbusUtils.writeCoil(115, false, master);
|
}
|
//µçѹ¸ø¶¨È·ÈÏ
|
if(econ.volset_confirm > 0) {
|
MyModbusUtils.writeHoldingRegister(18,econ.volset, DataType.TWO_BYTE_INT_SIGNED, master);
|
MyModbusUtils.writeCoil(116, true, master);
|
Thread.sleep(2000);
|
MyModbusUtils.writeCoil(116, false, master);
|
}
|
//µçÁ÷¸ø¶¨È·ÈÏ
|
if(econ.currset_confirm > 0) {
|
MyModbusUtils.writeHoldingRegister(27,econ.currset, DataType.TWO_BYTE_INT_SIGNED, master);
|
MyModbusUtils.writeCoil(117, true, master);
|
Thread.sleep(2000);
|
MyModbusUtils.writeCoil(117, false, master);
|
}
|
//Ô¶³ÌÍ£Ö¹
|
if(econ.remote_stop > 0) {
|
MyModbusUtils.writeCoil(118, true, master);
|
Thread.sleep(2000);
|
MyModbusUtils.writeCoil(118, false, master);
|
}
|
//Æô¶¯´¥ÃþÆÁ¸ø¶¨
|
if(econ.start_screen_set > 0) {
|
MyModbusUtils.writeCoil(120, true, master);
|
Thread.sleep(2000);
|
MyModbusUtils.writeCoil(120, false, master);
|
}
|
//Æô¶¯ÉÏλ»ú¸ø¶¨
|
if(econ.start_upper_set > 0) {
|
MyModbusUtils.writeCoil(121, true, master);
|
Thread.sleep(2000);
|
MyModbusUtils.writeCoil(121, false, master);
|
}
|
//ºãѹÇл»
|
if(econ.consvolswitch > 0) {
|
MyModbusUtils.writeCoil(123, true, master);
|
Thread.sleep(2000);
|
MyModbusUtils.writeCoil(123, false, master);
|
}
|
//4²¢»ò2´®2²¢ÒÔÍâģʽ
|
if(econ.othermode > 0) {
|
MyModbusUtils.writeCoil(125, true, master);
|
Thread.sleep(2000);
|
MyModbusUtils.writeCoil(125, false, master);
|
}
|
//ËÄ´®ºãѹµçѹ·ÖÅäλ
|
if(econ.consvol_distribution > 0) {
|
MyModbusUtils.writeCoil(128, true, master);
|
Thread.sleep(2000);
|
MyModbusUtils.writeCoil(128, false, master);
|
}
|
|
econ.clear();
|
// //System.err.println(econ);
|
Electrical_2KWTask_SQL.update_Electric_Control_2KW(conn_pool, econ);
|
}
|
|
|
if(runCount %4 == 0) {
|
//*************************** ¶ÁÈ¡2MWÐÅÏ¢¹ÊÕÏ ******************************//*
|
readMutilEleAlarmData(master, eAlarm);
|
Electrical_2KWTask_SQL.insertOrUpdateEle_alarmTable(conn_pool, listAlarm);
|
}
|
|
|
//System.out.println(master.getTotalerr()+"##############"+master.getConnectState());
|
//¸üе±Ç°É豸µÄÁ¬½Ó״̬
|
Electrical_2KWTask_SQL.insertOrUpdateDeviceConnectState(conn_pool,einf.electric2KW_id,master);
|
if(runCount%10 == 0) {
|
//¸üе±Ç°É豸ip
|
master.setTarget_ip(einf.electric2KW_ip);
|
}
|
if(runCount > 999900) {
|
runCount = 0;
|
}
|
runCount ++;
|
Thread.sleep(400);
|
} catch (Exception e) {
|
try {
|
Thread.sleep(1000);
|
} catch (InterruptedException e1) {
|
//e1.printStackTrace();
|
}
|
e.printStackTrace();
|
}
|
}
|
}
|
//¶ÁÈ¡2MWµçÔ´µÄ¹ÊÕÏÐÅÏ¢
|
private void readMutilEleAlarmData(MyModbusMaster master, Electric_2MW_alarm eAlarm) {
|
BatchRead<Integer> batch = eAlarm.createBatchRead(master);
|
BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master);
|
eAlarm.putBatchResult(res);
|
if(res!=null) {
|
if(eAlarm.synchro_cycle_fault>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119001);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
if(eAlarm.main_cabinet_fault_one>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119002);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
if(eAlarm.main_cabinet_fault_two>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119003);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
if(eAlarm.dcover_curr>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119004);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
if(eAlarm.synchro_lose>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119005);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
if(eAlarm.dcover_vol>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119006);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
if(eAlarm.case_pulse_block>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119007);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
if(eAlarm.case_transA_overcurr>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119008);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
if(eAlarm.case_transB_overcurr>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119009);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
if(eAlarm.case_transC_overcurr>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119010);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
if(eAlarm.case_cuurfeedback_lose>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119011);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
if(eAlarm.case_trip>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119012);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
if(eAlarm.high_vol_switch_off>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119013);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
if(eAlarm.emergency_button_pressed>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119014);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
if(eAlarm.cabinet_door_protection>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119015);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
if(eAlarm.tran_overtmp>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119016);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
if(eAlarm.tran_overhightmp_trip>0) {
|
Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id);
|
alarm.setAlarm_id(119017);
|
alarm.setAlarm_starttime(new Date());
|
alarm.setAlarm_endtime(new Date());
|
alarm.setAlarm_confirm(0);
|
alarm.setAlarm_confirmtime(new Date());
|
listAlarm.add(alarm);
|
}
|
}
|
}
|
|
|
/**
|
* ¸üÐÂ2MWµçԴϵͳʵʱ״̬ÐÅÏ¢
|
* @param master
|
* @param ert
|
*/
|
public void readMutilElectric_Rt_2kw(MyModbusMaster master, Electric_Rt_2kw ert) {
|
BatchRead<Integer> batch = ert.createBatchRead(master);
|
BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master);
|
ert.putBatchResult(res);
|
}
|
/**
|
* ¸üÐÂ2MWµçÔ´¿ØÖÆÐÅÏ¢
|
* @param master
|
* @param econ
|
*/
|
public void readMutilElectric_Control_Single_2kw(MyModbusMaster master, Electric_Control_Single_2kw econ) {
|
BatchRead<Integer> batch = econ.createBatchRead(master);
|
BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master);
|
econ.putBatchResult(res);
|
}
|
|
|
/**
|
* ¸üÐÂ2MWµçÔ´¿ØÖÆÐÅÏ¢
|
* @param master
|
* @param econ
|
*/
|
public void readMutilElectric_State_2kw(MyModbusMaster master, Electric_State_2kw state) {
|
BatchRead<Integer> batch = state.createBatchRead(master);
|
BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master);
|
state.putBatchResult(res);
|
}
|
}
|