whyclj
2020-08-05 f7874e2b19ff231100ea354ad100e7f7b4b6d718
电机控制修复
5个文件已修改
87 ■■■■ 已修改文件
Motor_MonitorServer/src/com/motor/alarm/Motor_Alarm_Thread_SQL.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Motor_MonitorServer/src/com/motor/conn/Motor_SocketClient_Thread.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Motor_MonitorServer/src/com/motor/conn/Motor_Task_SQL.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Motor_MonitorServer/src/com/motor/data/Motor_control.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Motor_MonitorServer/src/main/main_MonitorServer_Motor.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Motor_MonitorServer/src/com/motor/alarm/Motor_Alarm_Thread_SQL.java
@@ -2,6 +2,7 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.base.Com;
@@ -151,18 +152,19 @@
        if(delalarm.size() < 1) {
            return;
        }
        ArrayList<String> sql_strs = new ArrayList<>();
        for(int i = 0;i<delalarm.size();i++) {
            sql_str_add += (sql_str_add_base+",'"+Com.getDateTimeFormat(delalarm.get(i).alarm_endtime, Com.DTF_YMDhms)+"'"+sql_str_add_end + "alarm_id = "+delalarm.get(i).alarm_id+" AND motor_id = " + delalarm.get(i).getMotor_id() + " AND alarm_num = "+delalarm.get(i).getAlarm_num()+";");
            sql_str_del += (sql_str_del_base + "motor_id = "+delalarm.get(i).getMotor_id()+" AND alarm_id = " +delalarm.get(i).alarm_id+" AND alarm_num = "+delalarm.get(i).getAlarm_num()+";");
            sql_strs.add(sql_str_add_base+",'"+Com.getDateTimeFormat(delalarm.get(i).alarm_endtime, Com.DTF_YMDhms)+"'"+sql_str_add_end + "alarm_id = "+delalarm.get(i).alarm_id+" AND motor_id = " + delalarm.get(i).getMotor_id() + " AND alarm_num = "+delalarm.get(i).getAlarm_num()+";");
            sql_strs.add(sql_str_del_base + "motor_id = "+delalarm.get(i).getMotor_id()+" AND alarm_id = " +delalarm.get(i).alarm_id+" AND alarm_num = "+delalarm.get(i).getAlarm_num()+" ");
            delalarm.get(i).clearAlarmType(); 
        }    
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            //System.out.println(sql_str_add);
            System.out.println(sql_str_add);
            //System.out.println(sql_str_del);
            sql.sqlMysqlExecute(sql_str_add);
            sql.sqlMysqlExecute(sql_str_del);
        } catch (SQLException e) {
            sql.makeManualCommit(sql_strs);
            //sql.sqlMysqlExecute(sql_str_del);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
Motor_MonitorServer/src/com/motor/conn/Motor_SocketClient_Thread.java
@@ -21,6 +21,9 @@
    
    public MyModbusMaster master;
    
    public static final int MAX_READALARM_COUNT = 20;        //一次读取告警节点的最大数量
    public int read_alarm_index = 0;                        //读取告警索引
    public Motor_SocketClient_Thread(Motor_inf motor,MysqlConnPool conn_pool) {
        this.conn_pool = conn_pool;
        this.motor = motor;
@@ -38,6 +41,8 @@
        while(true) {
            try {
                Motor_Task_SQL.queryMotor_ControlTable(conn_pool, control);
                //System.out.println(control.isControl_en()+"################33");
                if(control.isControl_en()) {
                    /************************** 控制输出 *******************************/
                    writeControlSignal(master,control);
@@ -57,7 +62,10 @@
                
                if(runCount %4 == 0) {
                    /*************************** 读取故障状态信息 ******************************/
                    //Date start = new Date();
                    readMotorAlarmData(master,motor);
                    //Date end = new Date();
                    //System.out.println((end.getTime()-start.getTime())/1000);
                }
                
                if(runCount%10 == 0) {
@@ -86,8 +94,15 @@
     * @param motor2
     */
    private void readMotorAlarmData(MyModbusMaster master2, Motor_inf motor2) {
        for(int i=0 ; i< motor2.alarms.size();i++) {
        for(int i=read_alarm_index ; i< motor2.alarms.size() && i< (read_alarm_index+MAX_READALARM_COUNT);i++) {
            //Date start = new Date();
            motor2.alarms.get(i).checkAlarm((int)master2.checkNullData(MyModbusUtils.readCoilStatus(12000+i*4, master2), motor2.alarms.get(i).alarm_state));
            //Date end = new Date();
            //System.err.println((end.getTime()-start.getTime())+"===="+i);
        }
        read_alarm_index += MAX_READALARM_COUNT;
        if(read_alarm_index >= motor2.alarms.size()) {
            read_alarm_index = 0;
        }
    }
@@ -174,6 +189,7 @@
     * @param control2
     */
    private void writeControlSignal(MyModbusMaster master2, Motor_control control2) {
        System.out.println(control2);
        if(control2.load_power >0) {
            MyModbusUtils.writeHoldingRegister(58, control.load_power, DataType.TWO_BYTE_INT_UNSIGNED, master2);
        }
@@ -201,7 +217,6 @@
        if(control2.advance_power >0) {
            MyModbusUtils.writeHoldingRegister(854, control.advance_power, DataType.TWO_BYTE_INT_UNSIGNED, master2);
        }
        control2.clear();
    }
    
}
Motor_MonitorServer/src/com/motor/conn/Motor_Task_SQL.java
@@ -255,7 +255,7 @@
    public static void updateMotor_Control(MysqlConnPool conn_pool,Motor_control control) {
        String sql_str = "UPDATE " + Sql_Mysql.Tb_Motor_control + 
                " SET load_power = " + control.load_power + "," + 
                " sensor_power = " + control.sensor_power + "," +
                " sensor_torque = " + control.sensor_torque + "," +
                " load_torque = " + control.load_torque + "," + 
                " load_motor_speed_limit=" + control.load_motor_speed_limit + "," + 
                " load_motor_torque_limit = " + control.load_motor_torque_limit + "," + 
@@ -267,6 +267,7 @@
        
        Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn());
        try {
            //System.out.println(sql_str);
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
@@ -482,16 +483,16 @@
        Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn());
        try {            
            res = sql.sqlMysqlQuery(sql_str);
            if(res.next()) {
                control.load_power = res.getFloat("load_power");
                control.sensor_torque = res.getFloat("sensor_torque");
                control.load_torque = res.getFloat("load_torque");
                control.load_motor_speed_limit = res.getFloat("load_motor_speed_limit");
                control.load_motor_torque_limit = res.getFloat("load_motor_torque_limit");
                control.load_step_length= res.getFloat("load_motor_torque_limit");
                control.sensor_power = res.getFloat("sensor_power");
                control.gear_box_power = res.getFloat("gear_box_power");
                control.advance_power = res.getFloat("advance_power");
            if(res.next()) {
                control.setLoad_power(res.getFloat("load_power"));
                control.setSensor_torque(res.getFloat("sensor_torque"));
                control.setLoad_torque(res.getFloat("load_torque"));
                control.setLoad_motor_speed_limit(res.getFloat("load_motor_speed_limit"));
                control.setLoad_motor_torque_limit(res.getFloat("load_motor_torque_limit"));
                control.setLoad_step_length(res.getFloat("load_step_length"));
                control.setSensor_power(res.getFloat("sensor_power"));
                control.setGear_box_power(res.getFloat("gear_box_power"));
                control.setAdvance_power(res.getFloat("advance_power"));
            }
        } catch (Exception e) {
            e.printStackTrace();
Motor_MonitorServer/src/com/motor/data/Motor_control.java
@@ -16,7 +16,8 @@
    public boolean control_en = false;
    
    public void clear() {
        this.control_en = false;
        this.control_en = false;
        this.load_power = 0;
        this.sensor_torque = 0;    
        this.load_torque = 0;    
        this.load_motor_speed_limit = 0;    
@@ -62,27 +63,51 @@
        this.motor_id = motor_id;
    }
    public void setLoad_power(float load_power) {
        if(load_power > 0) {
            control_en = true;
        }
        this.load_power = load_power;
    }
    public void setSensor_torque(float sensor_torque) {
        if(sensor_torque > 0) {
            control_en = true;
        }
        this.sensor_torque = sensor_torque;
    }
    public void setLoad_torque(float load_torque) {
        if(load_torque > 0) {
            control_en = true;
        }
        this.load_torque = load_torque;
    }
    public void setLoad_motor_speed_limit(float load_motor_speed_limit) {
        if(load_motor_speed_limit > 0) {
            control_en = true;
        }
        this.load_motor_speed_limit = load_motor_speed_limit;
    }
    public void setLoad_motor_torque_limit(float load_motor_torque_limit) {
        if(load_motor_torque_limit > 0) {
            control_en = true;
        }
        this.load_motor_torque_limit = load_motor_torque_limit;
    }
    public void setLoad_step_length(float load_step_length) {
        if(load_step_length > 0) {
            control_en = true;
        }
        this.load_step_length = load_step_length;
    }
    public void setSensor_power(float sensor_power) {
        if(sensor_power > 0) {
            control_en = true;
        }
        this.sensor_power = sensor_power;
    }
    public void setGear_box_power(float gear_box_power) {
        if(gear_box_power > 0) {
            control_en = true;
        }
        this.gear_box_power = gear_box_power;
    }
@@ -91,6 +116,9 @@
    }
    public void setAdvance_power(float advance_power) {
        if(advance_power > 0) {
            control_en = true;
        }
        this.advance_power = advance_power;
    }
Motor_MonitorServer/src/main/main_MonitorServer_Motor.java
@@ -74,7 +74,6 @@
                e.printStackTrace();
            }
        }
        /*********************************************************************************/
    }