From f7874e2b19ff231100ea354ad100e7f7b4b6d718 Mon Sep 17 00:00:00 2001 From: whyclj <1525436766@qq.com> Date: 星期三, 05 八月 2020 10:31:17 +0800 Subject: [PATCH] 电机控制修复 --- Motor_MonitorServer/src/com/motor/conn/Motor_SocketClient_Thread.java | 19 +++++++++++++++++-- 1 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Motor_MonitorServer/src/com/motor/conn/Motor_SocketClient_Thread.java b/Motor_MonitorServer/src/com/motor/conn/Motor_SocketClient_Thread.java index 31a248b..7d7ffbc 100644 --- a/Motor_MonitorServer/src/com/motor/conn/Motor_SocketClient_Thread.java +++ b/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(); } } -- Gitblit v1.9.1