From 0a085c3eada92311a550703e4a055b600cedd665 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期三, 24 七月 2024 11:41:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 67 +++++++++++++++++++++++++++------
1 files changed, 55 insertions(+), 12 deletions(-)
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
index 007eab3..1254d27 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -85,6 +85,10 @@
@Value("${mes.glassGap}")
private Integer glassGap;
+ @Value("${mes.xMaxSize}")
+ private Integer xMaxSize;
+
+
private String d01GlassId = "";
private String d04GlassId = "";
@@ -245,6 +249,11 @@
Date startDate = new Date();
log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject;
+ String e02State = plcMesObject.getPlcParameter("E02State").getAddress();
+ if (REQUEST_WORD.equals(e02State)) {
+ log.info("鍑虹墖蹇欑锛岀粨鏉熷嚭鐗囦换鍔�");
+ return;
+ }
String mesToPLCAddress = plcMesObject.getPlcParameter("MESToPLC").getAddress();
List<BigStorageCageOutTask> outingList = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>().eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_NEW));
Assert.isTrue(CollectionUtils.isEmpty(outingList), "鏈夋鍦ㄦ墽琛屽嚭鐗囩殑浠诲姟锛岀粨鏉熷綋鍓嶅嚭鐗囩嚎绋�");
@@ -308,10 +317,18 @@
List<BigStorageCageDetails> list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
.eq(BigStorageCageDetails::getSlot, first.getSlot()).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN));
List<BigStorageCageOutTask> outTasks = list.stream().map(e -> new BigStorageCageOutTask(e.getGlassId(), first.getSlot(), second.getSlot(),
- slotWidth, 0, 0, 1)).collect(Collectors.toList());
+ e.getWidth() * 10, e.getHeight() * 10, 0, 0, 1)).collect(Collectors.toList());
bigStorageCageOutTaskService.saveBatch(outTasks);
- S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
- log.info("宸插悜plc鍙戦�佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{}", mesToPLCAddress);
+
+ //鍚憄lc鍐欏叆纭瀛�
+ int returnData = 0;
+ int count = 1;
+ while (returnData == 0) {
+ log.info("宸插悜plc绗瑊}娆¢�佸崗璁�", count);
+ S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
+ returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
+ log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
+ }
Date endDate = new Date();
log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
return;
@@ -459,8 +476,15 @@
}
//鍚憄lc鍙戦�佽繘鐗囩‘璁�
if (flag) {
- S7object.getinstance().plccontrol.writeWord(mesAddress, 1);
- log.info("杩涘崸杞珛鍙戦�佺‘璁ゅ瓧瀹屾垚锛屽湴鍧�涓簕}", mesAddress);
+ //鍚憄lc鍐欏叆纭瀛�
+ int returnData = 0;
+ int count = 1;
+ while (returnData == 0) {
+ S7object.getinstance().plccontrol.writeWord(mesAddress, 1);
+ returnData = S7object.getinstance().plccontrol.readWord(mesAddress, 1).get(0);
+ log.info("杩涘崸杞珛绗瑊}娆″彂閫佺‘璁ゅ瓧瀹屾垚锛屽湴鍧�涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesAddress, returnData);
+
+ }
}
//璁板綍鏃犳硶鏀句笅鐜荤拑锛屽悗缁垽鏂惎鍔�
return flag;
@@ -567,8 +591,13 @@
s7control.writeWord(plcMesObject.getPlcParameter("StartAddToImport" + i).getAddress(), taskList.get(i - 1).getLine());
s7control.writeWord(plcMesObject.getPlcParameter("TargetAddToImport" + i).getAddress(), taskList.get(i - 1).getTargetSlot());
}
- s7control.writeWord(outLine, 2);
- log.info("閫佺墖浠诲姟宸插彂閫佸畬鎴愶紝浠诲姟绾胯矾涓猴細{}锛屽惎鍔ㄥ湴鍧�涓簕},纭瀛椾负{}", line, outLine, 2);
+ int returnData = 0;
+ int count = 1;
+ while (returnData == 0) {
+ s7control.writeWord(outLine, 2);
+ returnData = s7control.readWord(outLine, 1).get(0);
+ log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, outLine, returnData);
+ }
}
private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list, Boolean isTempering, String mesToPLCAddress) {
@@ -576,17 +605,25 @@
List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>();
//鎵撹溅鍓╀綑灏哄
Integer remainWidth = carWidth;
+ int maxX = 0;
for (T e : list) {
if (bigStorageCageOutTaskList.size() >= outCarMaxSize || e.getWidth() > remainWidth) {
break;
}
remainWidth = remainWidth - (int) e.getWidth() - glassGap;
if (isTempering) {
- bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
- (int) e.getWidth() * 10, 0, 0, 1));
+ int minLength = Math.min((int) e.getWidth(), (int) e.getHeight());
+ if (maxX + minLength <= xMaxSize) {
+ bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
+ e.getWidth() * 10, e.getHeight() * 10, 0, 0, 1));
+ maxX = Math.max(maxX, e.getXCoordinate());
+ } else {
+ break;
+ }
+
} else {
bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
- (int) e.getWidth() * 10, 0, 0, 1));
+ e.getWidth() * 10, e.getHeight(), 0, 0, 1));
}
}
@@ -600,8 +637,14 @@
.in(BigStorageCageDetails::getGlassId, glassIds));
//鏇存柊绗煎瓙鍐呮牸瀛愮殑鍓╀綑灏哄
updateSlotRemain(list, glassIds);
- S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
- log.info("宸插悜plc鍙戦�佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{}", mesToPLCAddress);
+
+ int returnData = 0;
+ int count = 1;
+ while (returnData == 0) {
+ S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
+ returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
+ log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
+ }
return Boolean.TRUE;
}
--
Gitblit v1.8.0