opt: ndc部分驱动完善

This commit is contained in:
2025-08-28 17:08:37 +08:00
parent b6c6749df7
commit e8977efa20
6 changed files with 72 additions and 21 deletions

View File

@@ -213,6 +213,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
standardOrdinarySiteDeviceDriver.setAgvphase(phase); standardOrdinarySiteDeviceDriver.setAgvphase(phase);
standardOrdinarySiteDeviceDriver.setIndex(index); standardOrdinarySiteDeviceDriver.setIndex(index);
standardOrdinarySiteDeviceDriver.setInst(inst); standardOrdinarySiteDeviceDriver.setInst(inst);
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
} }
if (device.getDeviceDriver() instanceof UnpackingMachineDeviceDriver) { if (device.getDeviceDriver() instanceof UnpackingMachineDeviceDriver) {
@@ -225,7 +226,8 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
if (unpackingMachineDeviceDriver.getAction() == 1) { if (unpackingMachineDeviceDriver.getAction() == 1 && unpackingMachineDeviceDriver.getMode() > 0
&& unpackingMachineDeviceDriver.getMove() == 1) {
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
LuceneLogDto logDto = LuceneLogDto.builder() LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(this.getDeviceCode()) .device_code(this.getDeviceCode())
@@ -234,7 +236,10 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
logDto.setLog_level(4); logDto.setLog_level(4);
luceneExecuteLogService.deviceExecuteLog(logDto); luceneExecuteLogService.deviceExecuteLog(logDto);
} else { } else {
message = "设备号:" + device_code + ",动作信号:" + unpackingMachineDeviceDriver.getAction() + ",指令号:" + ikey + "不满足取货条件"; message = "设备号:" + device_code + ",模式信号:" + unpackingMachineDeviceDriver.getMode()
+ ",动作信号:" + unpackingMachineDeviceDriver.getAction()
+ ",光电信号:" + unpackingMachineDeviceDriver.getMove()
+ ",指令号:" + ikey + "不满足取货条件";
LuceneLogDto logDto = LuceneLogDto.builder() LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(this.getDeviceCode()) .device_code(this.getDeviceCode())
.content(message) .content(message)
@@ -254,7 +259,9 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
if (unpackingConveyorDeviceDriver.getAction() == 1) {
if (unpackingConveyorDeviceDriver.getAction() == 1 && unpackingConveyorDeviceDriver.getMode() > 0
&& unpackingConveyorDeviceDriver.getMove() > 0) {
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
LuceneLogDto logDto = LuceneLogDto.builder() LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(this.getDeviceCode()) .device_code(this.getDeviceCode())
@@ -263,7 +270,10 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
logDto.setLog_level(4); logDto.setLog_level(4);
luceneExecuteLogService.deviceExecuteLog(logDto); luceneExecuteLogService.deviceExecuteLog(logDto);
} else { } else {
message = "设备号:" + device_code + ",动作信号:" + unpackingConveyorDeviceDriver.getAction() + ",指令号:" + ikey + "不满足取货条件"; message = "设备号:" + device_code + ",模式信号:" + unpackingConveyorDeviceDriver.getMode()
+ ",动作信号:" + unpackingConveyorDeviceDriver.getAction()
+ ",光电信号:" + unpackingConveyorDeviceDriver.getMove()
+ ",指令号:" + ikey + "不满足取货条件";
LuceneLogDto logDto = LuceneLogDto.builder() LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(this.getDeviceCode()) .device_code(this.getDeviceCode())
.content(message) .content(message)
@@ -513,7 +523,8 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
if (unpackingMachineDeviceDriver.getAction() == 1) { if (unpackingMachineDeviceDriver.getAction() == 1 && unpackingMachineDeviceDriver.getMode() > 0
&& unpackingMachineDeviceDriver.getMove() == 0) {
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
LuceneLogDto logDto = LuceneLogDto.builder() LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(this.getDeviceCode()) .device_code(this.getDeviceCode())
@@ -522,7 +533,10 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
logDto.setLog_level(4); logDto.setLog_level(4);
luceneExecuteLogService.deviceExecuteLog(logDto); luceneExecuteLogService.deviceExecuteLog(logDto);
} else { } else {
message = "设备号:" + device_code + ",动作信号:" + unpackingMachineDeviceDriver.getAction() + ",指令号:" + ikey + "不满足取货条件"; message = "设备号:" + device_code + ",模式信号:" + unpackingMachineDeviceDriver.getMode()
+ ",动作信号:" + unpackingMachineDeviceDriver.getAction()
+ ",光电信号:" + unpackingMachineDeviceDriver.getMove()
+ ",指令号:" + ikey + "不满足取货条件";
LuceneLogDto logDto = LuceneLogDto.builder() LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(this.getDeviceCode()) .device_code(this.getDeviceCode())
.content(message) .content(message)
@@ -788,7 +802,8 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
if (unpackingMachineDeviceDriver.getAction() == 1) { if (unpackingMachineDeviceDriver.getAction() == 1 && unpackingMachineDeviceDriver.getMode() > 0
&& unpackingMachineDeviceDriver.getMove() > 0) {
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
LuceneLogDto logDto = LuceneLogDto.builder() LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(this.getDeviceCode()) .device_code(this.getDeviceCode())
@@ -797,7 +812,10 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
logDto.setLog_level(4); logDto.setLog_level(4);
luceneExecuteLogService.deviceExecuteLog(logDto); luceneExecuteLogService.deviceExecuteLog(logDto);
} else { } else {
message = "设备号:" + device_code + ",动作信号:" + unpackingMachineDeviceDriver.getAction() + ",指令号:" + ikey + "不满足取货条件"; message = "设备号:" + device_code + ",模式信号:" + unpackingMachineDeviceDriver.getMode()
+ ",动作信号:" + unpackingMachineDeviceDriver.getAction()
+ ",光电信号:" + unpackingMachineDeviceDriver.getMove()
+ ",指令号:" + ikey + "不满足取货条件";
LuceneLogDto logDto = LuceneLogDto.builder() LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(this.getDeviceCode()) .device_code(this.getDeviceCode())
.content(message) .content(message)
@@ -1065,7 +1083,8 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
if (unpackingMachineDeviceDriver.getAction() == 1) { if (unpackingMachineDeviceDriver.getAction() == 1 && unpackingMachineDeviceDriver.getMode() > 0
&& unpackingMachineDeviceDriver.getMove() == 0) {
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
LuceneLogDto logDto = LuceneLogDto.builder() LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(this.getDeviceCode()) .device_code(this.getDeviceCode())
@@ -1074,7 +1093,10 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
logDto.setLog_level(4); logDto.setLog_level(4);
luceneExecuteLogService.deviceExecuteLog(logDto); luceneExecuteLogService.deviceExecuteLog(logDto);
} else { } else {
message = "设备号:" + device_code + ",动作信号:" + unpackingMachineDeviceDriver.getAction() + ",指令号:" + ikey + "不满足取货条件"; message = "设备号:" + device_code + ",模式信号:" + unpackingMachineDeviceDriver.getMode()
+ ",动作信号:" + unpackingMachineDeviceDriver.getAction()
+ ",光电信号:" + unpackingMachineDeviceDriver.getMove()
+ ",指令号:" + ikey + "不满足取货条件";
LuceneLogDto logDto = LuceneLogDto.builder() LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(this.getDeviceCode()) .device_code(this.getDeviceCode())
.content(message) .content(message)
@@ -1093,7 +1115,8 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
if (unpackingConveyorDeviceDriver.getAction() == 1) { if (unpackingConveyorDeviceDriver.getAction() == 1 && unpackingConveyorDeviceDriver.getMove() == 0
&& unpackingConveyorDeviceDriver.getMode() > 0) {
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0); data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
LuceneLogDto logDto = LuceneLogDto.builder() LuceneLogDto logDto = LuceneLogDto.builder()
.device_code(this.getDeviceCode()) .device_code(this.getDeviceCode())

View File

@@ -207,6 +207,7 @@ public class ProductionLineDockingStationDeviceDriver extends AbstractOpcDeviceD
@Override @Override
public JSONObject getDeviceStatusName() throws Exception { public JSONObject getDeviceStatusName() throws Exception {
// 设备监控数据
JSONObject jo = new JSONObject(); JSONObject jo = new JSONObject();
String mode = ""; String mode = "";
String move = ""; String move = "";
@@ -243,6 +244,7 @@ public class ProductionLineDockingStationDeviceDriver extends AbstractOpcDeviceD
@Override @Override
public void setDeviceStatus(JSONObject data) { public void setDeviceStatus(JSONObject data) {
// 设备监控改动
} }

View File

@@ -40,9 +40,10 @@ public class UnpackingConveyorDeviceDriver extends AbstractOpcDeviceDriver imple
@Resource @Resource
private AcsToWmsService acsToWmsService; private AcsToWmsService acsToWmsService;
/**
* 请求时间
*/
private Date instruction_require_time = new Date(); private Date instruction_require_time = new Date();
private Date instruction_finished_time = new Date();
private Date instruction_apply_time = new Date();
private int instruction_require_time_out = 3000; private int instruction_require_time_out = 3000;
/** 心跳 */ /** 心跳 */
@@ -69,6 +70,7 @@ public class UnpackingConveyorDeviceDriver extends AbstractOpcDeviceDriver imple
String message = null; String message = null;
Boolean iserror = false; Boolean iserror = false;
String device_code; String device_code;
Boolean flag = false;
@Override @Override
public Device getDevice() { public Device getDevice() {
@@ -85,15 +87,30 @@ public class UnpackingConveyorDeviceDriver extends AbstractOpcDeviceDriver imple
move = itemProtocol.getMove(); move = itemProtocol.getMove();
error = itemProtocol.getError(); error = itemProtocol.getError();
if (mode == 5 && mode != last_mode) { if (mode != last_mode && flag) {
// 1、请求LMS横移 flag = false;
ApplyPlugPullSitResponse response = acsToWmsService.actionMove(new JSONObject().fluentPut("device_code", device_code)); }
if (response.getCode() == 200) {
// 2、复位 Date date = new Date();
this.writing("to_command", 5); if (date.getTime() - this.instruction_require_time.getTime()
< (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
return;
} else {
this.instruction_require_time = date;
if (mode == 5 && !flag) {
// 1、请求LMS横移
ApplyPlugPullSitResponse response = acsToWmsService.actionMove(new JSONObject().fluentPut("device_code", device_code));
if (response.getCode() == 200) {
// 2、复位
this.writing("to_command", 5);
flag = true;
}
} }
} }
} catch (Exception e) { } catch (Exception e) {
return; return;
} }

View File

@@ -25,6 +25,7 @@ public class ItemProtocol {
* 工作模式 * 工作模式
*/ */
public static String item_mode = "mode"; public static String item_mode = "mode";
public static String item_move = "move";
/** /**
* 动作信号 * 动作信号
*/ */
@@ -60,6 +61,9 @@ public class ItemProtocol {
public int getMode() { public int getMode() {
return this.getOpcIntegerValue(item_mode); return this.getOpcIntegerValue(item_mode);
} }
public int getMove() {
return this.getOpcIntegerValue(item_move);
}
public int getAction() { public int getAction() {
return this.getOpcIntegerValue(item_action); return this.getOpcIntegerValue(item_action);

View File

@@ -48,6 +48,8 @@ public class UnpackingMachineDeviceDriver extends AbstractOpcDeviceDriver implem
/** 工作模式 */ /** 工作模式 */
int mode = 0; int mode = 0;
int last_mode = 0; int last_mode = 0;
int move = 0;
int last_move = 0;
/** 动作信号: 0-不允许取放1-允许取放 */ /** 动作信号: 0-不允许取放1-允许取放 */
int action = 0; int action = 0;
int last_action = 0; int last_action = 0;
@@ -86,6 +88,7 @@ public class UnpackingMachineDeviceDriver extends AbstractOpcDeviceDriver implem
action = itemProtocol.getAction(); action = itemProtocol.getAction();
gross_weight = itemProtocol.getGross_weight(); gross_weight = itemProtocol.getGross_weight();
net_weight = itemProtocol.getNet_weight(); net_weight = itemProtocol.getNet_weight();
move = itemProtocol.getMove();
} catch (Exception e) { } catch (Exception e) {
return; return;
@@ -109,6 +112,7 @@ public class UnpackingMachineDeviceDriver extends AbstractOpcDeviceDriver implem
last_net_weight = net_weight; last_net_weight = net_weight;
last_to_command = to_command; last_to_command = to_command;
last_to_operate = to_operate; last_to_operate = to_operate;
last_move = move;
} }

View File

@@ -10,15 +10,16 @@ import com.alibaba.fastjson.JSONObject;
public interface DeviceStageMonitor { public interface DeviceStageMonitor {
/** /**
* 根据设备获取设备状态(中文名:如故障、联机等) * 根据设备获取设备状态(中文名:如故障、联机等)
*
* @return * @return
* @throws Exception * @throws Exception
*/ */
public JSONObject getDeviceStatusName() throws Exception; JSONObject getDeviceStatusName() throws Exception;
/** /**
* 根据舞台数据修改设备驱动状态 * 根据舞台数据修改设备驱动状态
* *
* @param data * @param data
*/ */
public void setDeviceStatus(JSONObject data); void setDeviceStatus(JSONObject data);
} }