package com.data.comm;
|
|
import com.data.Motor_inf;
|
import com.data.Rectifier_control;
|
import com.data.Rectifier_power;
|
import com.modbus.data.MyModbusMaster;
|
import com.modbus.data.MyModbusUtils;
|
import com.serotonin.modbus4j.BatchRead;
|
import com.serotonin.modbus4j.BatchResults;
|
import com.sql.MysqlConnPool;
|
|
public class Rectifier_power_SocketClient_Thread extends Thread{
|
public static int Dev_Type_Rectifier_power = 30001; //4WM´ó¹¦ÂÊÕûÁ÷µçÔ´
|
|
private MysqlConnPool pool;
|
private Motor_inf motor;
|
private MyModbusMaster master;
|
|
public Rectifier_power_SocketClient_Thread(MysqlConnPool pool, Motor_inf motor) {
|
this.motor = motor;
|
this.pool = pool;
|
|
master = new MyModbusMaster(motor.getDev_ip(), MyModbusMaster.SLAVEID_DEFAULT);
|
}
|
@Override
|
public void run() {
|
int run_count = 0;
|
while(true) {
|
try {
|
if(run_count % 2 == 0) {
|
if(Dev_Type_Rectifier_power == motor.getDev_id()) {
|
//¶ÁÈ¡4mw´ó¹¦ÂÊÕûÁ÷µçÔ´
|
readRectifier_power(motor.rPower);
|
Rectifier_power_SQL.insertOrUpdateTb_Rectifier_power(pool, motor.rPower);
|
}
|
}
|
//¿ØÖÆ4MW´ó¹¦ÂÊÕûÁ÷µçÔ´
|
Rectifier_power_SQL.queryTb_rectifier_power_control(pool, motor.rControl);
|
if(motor.rControl.control_en>0) {
|
writeRectifier_control(motor.rControl);
|
|
Rectifier_power_SQL.updateTb_rectifier_power_control(pool,motor.rControl);
|
}
|
|
motor.conn_state = master.getConnectState();
|
if(run_count > 999909) {
|
run_count = 0;
|
}
|
run_count ++;
|
Thread.sleep(200);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
/**
|
* ½«ÊµÊ±¶ÁÈ¡µÄ¿ØÖÆÐÅϢд¸øÉ豸
|
* */
|
private void writeRectifier_control(Rectifier_control rControl) {
|
if(rControl.getEmergency_stop()>0) {
|
MyModbusUtils.writeCoil(1, true, master);
|
}
|
if(rControl.getRemote_stop()>0) {
|
MyModbusUtils.writeCoil(1, true, master);
|
}
|
rControl.reset();
|
}
|
/**
|
* ¶ÁÈ¡4mw´ó¹¦ÂÊÕûÁ÷µçÔ´
|
* @param stdata
|
*/
|
public void readRectifier_power(Rectifier_power rpower) {
|
BatchRead<Integer> batch = rpower.createBatchRead(master);
|
BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master);
|
rpower.putBatchResult(res);
|
}
|
}
|