From 50435a81915932eda06b7f1afd48f9ff1ae84f19 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期四, 10 四月 2025 17:50:28 +0800
Subject: [PATCH] 1
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 258 +++++++++++++++++++++++-------------
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java | 2
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/ServerBootstrap.java | 1
zy-asrs-flow/src/app.jsx | 0
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java | 2
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java | 116 ++++++++++------
zy-asrs-wcs/src/main/resources/application.yml | 6
7 files changed, 241 insertions(+), 144 deletions(-)
diff --git a/zy-asrs-flow/src/App.jsx b/zy-asrs-flow/src/app.jsx
similarity index 100%
rename from zy-asrs-flow/src/App.jsx
rename to zy-asrs-flow/src/app.jsx
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
index ce2f0fd..e5efb23 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
@@ -28,13 +28,17 @@
import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol;
import com.zy.asrs.wcs.rcs.service.DeviceService;
-import com.zy.asrs.wcs.rcs.thread.*;
+import com.zy.asrs.wcs.rcs.thread.DevpThread;
+import com.zy.asrs.wcs.rcs.thread.LedThread;
+import com.zy.asrs.wcs.rcs.thread.LiftThread;
+import com.zy.asrs.wcs.rcs.thread.ShuttleThread;
import com.zy.asrs.wcs.system.entity.Dict;
import com.zy.asrs.wcs.system.service.DictService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+
import java.util.*;
/**
@@ -89,6 +93,71 @@
@Autowired
private ShuttleStandbyService shuttleStandbyService;
+
+ private boolean isInEnable(DevpThread devpThread, Integer staNo) {
+ if (staNo == null) {
+ return false;
+ }
+ // 鑾峰彇鍏ュ簱绔欎俊鎭�
+ switch (staNo) {
+ case 1011:
+ case 1012:
+ devpThread.getStation().get(1012).isInEnable();
+ break;
+ case 1021:
+ case 1022:
+ case 1023:
+ devpThread.getStation().get(1022).isInEnable();
+ break;
+ case 1031:
+ case 1032:
+ devpThread.getStation().get(1032).isInEnable();
+ break;
+ case 1025:
+ case 1026:
+ devpThread.getStation().get(1025).isInEnable();
+ break;
+ case 1013:
+ case 1014:
+ case 1015:
+ devpThread.getStation().get(1014).isInEnable();
+ break;
+ }
+ return false;
+ }
+
+ private boolean isOutEnable(DevpThread devpThread, Integer staNo) {
+ if (staNo == null) {
+ return false;
+ }
+ // 鑾峰彇鍏ュ簱绔欎俊鎭�
+ switch (staNo) {
+ case 1011:
+ case 1012:
+ devpThread.getStation().get(1012).isOutEnable();
+ break;
+ case 1021:
+ case 1022:
+ case 1023:
+ devpThread.getStation().get(1022).isOutEnable();
+ break;
+ case 1031:
+ case 1032:
+ devpThread.getStation().get(1032).isOutEnable();
+ break;
+ case 1025:
+ case 1026:
+ devpThread.getStation().get(1025).isOutEnable();
+ break;
+ case 1013:
+ case 1014:
+ case 1015:
+ devpThread.getStation().get(1014).isOutEnable();
+ break;
+ }
+ return false;
+ }
+
/**
* 缁勬墭
* 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
@@ -104,7 +173,7 @@
// 閬嶅巻鍏ュ簱鍙�
for (StaDto inSta : JSON.parseArray(basConveyor.getInSta(), StaDto.class)) {
BasConveyorSta basConveyorSta = basConveyorStaService.selectBySiteNo(inSta.getStaNo().toString());
- if(basConveyorSta == null) {
+ if (basConveyorSta == null) {
continue;
}
@@ -160,7 +229,7 @@
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (staProtocol.isAutoing() && staProtocol.isLoading()
- && staProtocol.isInEnable()
+ && isInEnable(devpThread, inSta.getStaNo())
&& !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999))
&& staProtocol.isPakMk()
) {
@@ -197,7 +266,7 @@
if (task1 != null) {
News.error("宸ヤ綔妗e凡瀛樺湪,宸ヤ綔鍙�={}", task1.getTaskNo());
if (staProtocol.getWorkNo().intValue() != Integer.parseInt(task1.getTaskNo())) {
- devpThread.writeWorkSta(staProtocol.getSiteId(), Short.parseShort(task1.getTaskNo()), Short.parseShort(task1.getOriginSite()));
+ devpThread.writeWorkSta(staProtocol.getSiteId(), Short.parseShort(task1.getTaskNo()), Short.parseShort(task1.getDestSite()));
devpThread.setPakMk(staProtocol.getSiteId(), false);
News.info("杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(task1));
}
@@ -262,7 +331,7 @@
// }
redisUtil.set(DeviceRedisConstant.LIFT_PALLET_INBOUND + inSta.getStaNo(), "in", 10);
- }else {
+ } else {
String msg = jsonObject.getString("msg");
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("msg", msg);
@@ -339,10 +408,10 @@
mapNode.setXBase(object.getInteger("refx"));
mapNode.setYBase(object.getInteger("refy"));
- if(mapNode.getValue() == MapNodeType.CONVEYOR.id) {
+ if (mapNode.getValue() == MapNodeType.CONVEYOR.id) {
//杈撻�佺嚎,鍒ゆ柇灏忚溅鏄惁鍙蛋
if (object.containsKey("conveyorHasGo")) {
- if(object.getBoolean("conveyorHasGo")) {
+ if (object.getBoolean("conveyorHasGo")) {
//灏忚溅鍙蛋
mapNode.setValue(MapNodeType.CONVEYOR_CAR_GO.id);
}
@@ -436,7 +505,7 @@
ArrayList<MapNode> headNodes = new ArrayList<>();
ArrayList<MapNode> footerNodes = new ArrayList<>();
- for (int i = 0; i < row+2; i++) {
+ for (int i = 0; i < row + 2; i++) {
headNodes.add(mapNode.clone());
footerNodes.add(mapNode.clone());
}
@@ -473,7 +542,7 @@
// 閬嶅巻鍏ュ簱鍙�
for (StaDto inSta : JSON.parseArray(basConveyor.getDeviceInSta(), StaDto.class)) {
BasConveyorSta basConveyorSta = basConveyorStaService.selectBySiteNo(inSta.getStaNo().toString());
- if(basConveyorSta == null) {
+ if (basConveyorSta == null) {
continue;
}
@@ -485,94 +554,93 @@
} else {
staProtocol = staProtocol.clone();
}
- int workNo = staProtocol.getWorkNo().intValue();
-
+ int workNo = 0;
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
- if (staProtocol.isAutoing()
- && staProtocol.isLoading()
- && staProtocol.isInEnable()
- && (workNo >= 0)
-// && staProtocol.isPakMk()
- ) {
+ if ((staProtocol.getSiteId() == 1015 || staProtocol.getSiteId() == 1023 || staProtocol.getSiteId() == 1026 || staProtocol.getSiteId() == 1032) &&
+ staProtocol.isAutoing() && staProtocol.isLoading()) {
+ workNo = staProtocol.getFinishWorkNo().intValue();
+ } else if ((staProtocol.getSiteId() == 1012) && staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()) {
+ workNo = staProtocol.getWorkNo().intValue();
+ } else {
+ continue;
+ }
- Task task = taskService.getOne(new LambdaQueryWrapper<Task>()
- .in(Task::getTaskSts, TaskStsType.NEW_INBOUND.sts)
- .eq(Task::getTaskNo, workNo));
- if (task != null) {
- if (!Cools.isEmpty(task.getLiftNo())) {
- if (task.getLiftNo() > 0) {
- task.setLiftNo(0);
- task.setUpdateTime(new Date());
- if (!taskService.updateById(task)) {
- News.info("{}浠诲姟鏇存柊閲婃斁鎻愬崌鏈哄け璐�", task.getTaskNo());
- }
- }
- }
-
- //鑾峰彇璺濈鐩爣浣嶇疆鏈�杩戠殑鍙崲灞傛彁鍗囨満(鍙兘涓嶇┖闂�)
- LiftThread liftThread = liftDispatcher.searchLift(task.getDestLoc(), task.getHostId(), true);
- if (liftThread == null) {
- continue;
- }
- Device transferLiftDevice = liftThread.getDevice();
- //鑾峰彇灏忚溅寰呮満搴撲綅 ==> 杩涙彁鍗囨満
- ShuttleStandby shuttleStandbyTo = shuttleStandbyService.getOne(new LambdaQueryWrapper<ShuttleStandby>()
- .eq(ShuttleStandby::getDeviceId, transferLiftDevice.getId())
- .eq(ShuttleStandby::getDeviceLev, Utils.getLev(task.getDestLoc()))
- .eq(ShuttleStandby::getStatus, 1));
- //绌挎杞﹁繘鎻愬崌鏈哄簱浣嶅彿
- String liftLocNoTo = shuttleStandbyTo.getDeviceLoc();
- //绌挎杞﹁繘鎻愬崌鏈哄緟鏈轰綅搴撲綅鍙� 杈撻�佺嚎浣嶇疆
- String standbyLocNoTo = shuttleStandbyTo.getDeviceStandbyLoc();
-
- //涓嶈蛋鎻愬崌鏈�
- if (staProtocol.getSiteId() == 1015 || staProtocol.getSiteId() == 1026) {
- standbyLocNoTo = staProtocol.getLocNo();
- }
-
- if (Cools.isEmpty(task.getShuttleNo())) {
- //鍒嗛厤灏忚溅
- //璋冨害绌洪棽杞﹀幓鍙栬揣寰呮満浣�
- Device shuttleDevice = shuttleDispatcher.dispatchShuttle(task, standbyLocNoTo);
- if (shuttleDevice == null) {
- News.info("{}浠诲姟鏈壘鍒扮┖闂茬┛姊溅", task.getTaskNo());
- continue;
- }
-
- task.setShuttleNo(Integer.valueOf(shuttleDevice.getDeviceNo()));//淇濆瓨绌挎杞﹀彿
+ Task task = taskService.getOne(new LambdaQueryWrapper<Task>()
+ .in(Task::getTaskSts, TaskStsType.NEW_INBOUND.sts)
+ .eq(Task::getTaskNo, workNo));
+ if (task != null) {
+ if (!Cools.isEmpty(task.getLiftNo())) {
+ if (task.getLiftNo() > 0) {
+ task.setLiftNo(0);
task.setUpdateTime(new Date());
if (!taskService.updateById(task)) {
- News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo());
+ News.info("{}浠诲姟鏇存柊閲婃斁鎻愬崌鏈哄け璐�", task.getTaskNo());
}
- continue;
}
-
- //鍒ゆ柇灏忚溅鏄惁鍒拌揪鍙栬揣寰呮満浣嶇疆
- String shuttleLocNo = shuttleDispatcher.findShuttleLocNo(task.getShuttleNo(), task.getHostId());
- if (shuttleLocNo == null) {
- continue;
- }
-
- if (!standbyLocNoTo.equals(shuttleLocNo)) {
- continue;
- }
-
- // generate motion list
- List<Motion> motionList = analyzeService.generateMotion(task);
- if (motionList.isEmpty()) {
- continue;
- }
- motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
-
- // 鏇存柊宸ヤ綔涓绘。
- task.setTaskSts(TaskStsType.ANALYZE_INBOUND.sts); // 宸ヤ綔鐘舵��
- task.setUpdateTime(new Date());
- if (!taskService.updateById(task)) {
- News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", task.getTaskNo());
- }
- break;
}
+ //鑾峰彇璺濈鐩爣浣嶇疆鏈�杩戠殑鍙崲灞傛彁鍗囨満(鍙兘涓嶇┖闂�)
+ LiftThread liftThread = liftDispatcher.searchLift(task.getDestLoc(), task.getHostId(), true);
+ if (liftThread == null) {
+ continue;
+ }
+ Device transferLiftDevice = liftThread.getDevice();
+ //鑾峰彇灏忚溅寰呮満搴撲綅 ==> 杩涙彁鍗囨満
+ ShuttleStandby shuttleStandbyTo = shuttleStandbyService.getOne(new LambdaQueryWrapper<ShuttleStandby>()
+ .eq(ShuttleStandby::getDeviceId, transferLiftDevice.getId())
+ .eq(ShuttleStandby::getDeviceLev, Utils.getLev(task.getDestLoc()))
+ .eq(ShuttleStandby::getStatus, 1));
+ //绌挎杞﹁繘鎻愬崌鏈哄簱浣嶅彿
+ String liftLocNoTo = shuttleStandbyTo.getDeviceLoc();
+ //绌挎杞﹁繘鎻愬崌鏈哄緟鏈轰綅搴撲綅鍙� 杈撻�佺嚎浣嶇疆
+ String standbyLocNoTo = shuttleStandbyTo.getDeviceStandbyLoc();
+
+ //涓嶈蛋鎻愬崌鏈�
+ if (staProtocol.getSiteId() == 1015 || staProtocol.getSiteId() == 1026) {
+ standbyLocNoTo = staProtocol.getLocNo();
+ }
+
+ if (Cools.isEmpty(task.getShuttleNo())) {
+ //鍒嗛厤灏忚溅
+ //璋冨害绌洪棽杞﹀幓鍙栬揣寰呮満浣�
+ Device shuttleDevice = shuttleDispatcher.dispatchShuttle(task, standbyLocNoTo);
+ if (shuttleDevice == null) {
+ News.info("{}浠诲姟鏈壘鍒扮┖闂茬┛姊溅", task.getTaskNo());
+ continue;
+ }
+
+ task.setShuttleNo(Integer.valueOf(shuttleDevice.getDeviceNo()));//淇濆瓨绌挎杞﹀彿
+ task.setUpdateTime(new Date());
+ if (!taskService.updateById(task)) {
+ News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo());
+ }
+ continue;
+ }
+
+ //鍒ゆ柇灏忚溅鏄惁鍒拌揪鍙栬揣寰呮満浣嶇疆
+ String shuttleLocNo = shuttleDispatcher.findShuttleLocNo(task.getShuttleNo(), task.getHostId());
+ if (shuttleLocNo == null) {
+ continue;
+ }
+
+ if (!standbyLocNoTo.equals(shuttleLocNo)) {
+ continue;
+ }
+
+ // generate motion list
+ List<Motion> motionList = analyzeService.generateMotion(task);
+ if (motionList.isEmpty()) {
+ continue;
+ }
+ motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
+
+ // 鏇存柊宸ヤ綔涓绘。
+ task.setTaskSts(TaskStsType.ANALYZE_INBOUND.sts); // 宸ヤ綔鐘舵��
+ task.setUpdateTime(new Date());
+ if (!taskService.updateById(task)) {
+ News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", task.getTaskNo());
+ }
+ break;
}
}
}
@@ -678,7 +746,7 @@
}
BasConveyor basConveyor = basConveyorService.getById(destStaObj.getConveyorId());
- if(basConveyor == null) {
+ if (basConveyor == null) {
continue;
}
@@ -1069,8 +1137,8 @@
staProtocol = staProtocol.clone();
}
String taskNo = "0";
- if (staProtocol.isOutEnable() && staProtocol.getSiteId() == 31001 ){
- if (0 != staProtocol.getWorkNo()){
+ if (staProtocol.isOutEnable() && staProtocol.getSiteId() == 31001) {
+ if (0 != staProtocol.getWorkNo()) {
Motion motion = motionService.getOne(new LambdaQueryWrapper<Motion>().eq(Motion::getMotionCtg, 9).eq(Motion::getTemp, staProtocol.getWorkNo()));
// 鑾峰彇宸ヤ綔妗f暟鎹�
Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskNo, motion.getTaskNo()));
@@ -1092,7 +1160,7 @@
HashMap<String, Object> param = new HashMap<>();
param.put("taskNo", taskNo);
- param.put("sta",staNo);
+ param.put("sta", staNo);
String response = new HttpHandler.Builder()
.setUri(wmsUrl)
.setPath("/rpc/led/getTask")
@@ -1174,7 +1242,9 @@
for (Integer staNo : staArr) {
// 鑾峰彇鍙夎溅绔欑偣
StaProtocol staProtocol = devpThread.getStation().get(staNo);
- if (staProtocol == null) { continue; }
+ if (staProtocol == null) {
+ continue;
+ }
if (staProtocol.getWorkNo() != 0) {
reset = false;
break;
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java
index 0b3cf6a..55dbc98 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java
@@ -74,7 +74,7 @@
}
}
- ProcessBuilder processBuilder = new ProcessBuilder("python", pythonScriptPath, maps, startStr, targetStr, mapDirection);
+ ProcessBuilder processBuilder = new ProcessBuilder("python3", pythonScriptPath, maps, startStr, targetStr, mapDirection);
processBuilder.redirectErrorStream(true);
try {
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java
index 4d998c0..3958d5d 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java
@@ -380,7 +380,7 @@
second.add(new int[]{node.getX(), node.getY()});
}
- ProcessBuilder processBuilder = new ProcessBuilder("python", pythonCalcSimilarity, JSON.toJSONString(first), JSON.toJSONString(second));
+ ProcessBuilder processBuilder = new ProcessBuilder("python3", pythonCalcSimilarity, JSON.toJSONString(first), JSON.toJSONString(second));
processBuilder.redirectErrorStream(true);
Process process = processBuilder.start();
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/ServerBootstrap.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/ServerBootstrap.java
index 90934c5..a8da832 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/ServerBootstrap.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/ServerBootstrap.java
@@ -88,6 +88,7 @@
Constructor<?> constructor = clazz.getConstructor(Device.class, RedisUtil.class);
Object instance = constructor.newInstance(device, redisUtil);
new Thread((Runnable) instance).start();
+
SlaveConnection.put(SlaveType.findInstance(type.getFlag()), device.getId().intValue(), (ThreadHandler) instance);
} catch (Exception e) {
e.printStackTrace();
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java
index eced132..a01dcdd 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java
@@ -47,11 +47,31 @@
public static ArrayList<BasConveyorSta> stationList = new ArrayList<>();
public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
- add(1012);add(1014);add(1015);add(1022);
- add(1023);add(1025);add(1026);add(1031);
+ add(1012);
+ add(1014);
+ add(1015);
+ add(1022);
+ add(1023);
+ add(1025);
+ add(1026);
+ add(1031);
add(1032);
+ }};
-
+ public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
+ add(1011);
+ add(1012);
+ add(1013);
+ add(1014);
+ add(1015);
+ add(1021);
+ add(1022);
+ add(1023);
+ add(1024);
+ add(1025);
+ add(1026);
+ add(1031);
+ add(1032);
}};
/**
@@ -84,7 +104,7 @@
BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>()
.eq(BasConveyor::getDeviceId, device.getId())
.eq(BasConveyor::getHostId, device.getHostId()));
- if(basConveyor != null) {
+ if (basConveyor != null) {
List<BasConveyorSta> stations = basConveyorStaService.list(new LambdaQueryWrapper<BasConveyorSta>()
.eq(BasConveyorSta::getConveyorId, basConveyor.getId())
.eq(BasConveyorSta::getHostId, device.getHostId()));
@@ -128,14 +148,14 @@
if (siteId == 1015) {
staProtocol.setLocNo("1200301");
- }else if (siteId == 1026) {
+ } else if (siteId == 1026) {
staProtocol.setLocNo("1200305");
}
station.put(siteId, staProtocol);
}
Thread.sleep(300);
- boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*26, 2);
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i * 26, 2);
staProtocol.setAutoing(status[0]); // 鑷姩
staProtocol.setIdle(status[1]); //绌洪棽
staProtocol.setLoading(status[2]); // 鏈夌墿
@@ -151,15 +171,15 @@
staProtocol.setOutEnable(status[14]);// 鍙嚭
- staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*26+2)); // 宸ヤ綔鍙�
- staProtocol.setFinishWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*26+6)); //宸插畬鎴愬伐浣滃彿
- staProtocol.setBarcode(siemensS7Net.getByteTransform().TransString(result.Content,i*26+10,12, "UTF-8").trim()); //鏉$爜
- staProtocol.setWeight(siemensS7Net.getByteTransform().TransInt32(result.Content, i*26+22)); //閲嶉噺
+ staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 26 + 2)); // 宸ヤ綔鍙�
+ staProtocol.setStaNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 26 + 4)); // 鐩爣绔�
+ staProtocol.setFinishWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 26 + 6)); //宸插畬鎴愬伐浣滃彿
+ staProtocol.setBarcode(siemensS7Net.getByteTransform().TransString(result.Content, i * 26 + 10, 12, "UTF-8").trim()); //鏉$爜
+ staProtocol.setWeight(siemensS7Net.getByteTransform().TransInt32(result.Content, i * 26 + 22)); //閲嶉噺
// staProtocol.setWorkMode((int) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 40 + 8));// 宸ヤ綔妯″紡
- staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 10)); // 宸ヤ綔鍙�
- staProtocol.setStaNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 12)); // 鐩爣绔�
+ //staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 10)); // 宸ヤ綔鍙�
if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
staProtocol.setPakMk(true);
@@ -170,7 +190,7 @@
OperateResultExOne<byte[]> resultBarcode = siemensS7Net.Read("DB100.166", (short) 9);
if (resultBarcode.IsSuccess) {
//鏉$爜鏁版嵁
- String barcode = siemensS7Net.getByteTransform().TransString(resultBarcode.Content,0,9, "UTF-8");// 鏉$爜
+ String barcode = siemensS7Net.getByteTransform().TransString(resultBarcode.Content, 0, 9, "UTF-8");// 鏉$爜
BasConveyorStaService basConveyorStaService = SpringUtils.getBean(BasConveyorStaService.class);
DeviceBarcodeService deviceBarcodeService = SpringUtils.getBean(DeviceBarcodeService.class);
BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>().eq(BasConveyorSta::getSiteNo, 31002));
@@ -187,7 +207,7 @@
if (!Cools.isEmpty(result) && result.IsSuccess) {
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), device.getId()));
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), device.getId()));
// 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
try {
@@ -224,12 +244,12 @@
siemensS7Net.setRack(device.getRack().byteValue());
siemensS7Net.setSlot(device.getSlot().byteValue());
OperateResult connect = siemensS7Net.ConnectServer();
- if(connect.IsSuccess){
+ if (connect.IsSuccess) {
result = true;
- OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort(), device.getRack(), device.getSlot()));
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣緭閫佺嚎plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort(), device.getRack(), device.getSlot()));
News.info("杈撻�佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", device.getId(), device.getIp(), device.getPort());
} else {
- OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort(), device.getRack(), device.getSlot()));
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣緭閫佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort(), device.getRack(), device.getSlot()));
News.error("杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", device.getId(), device.getIp(), device.getPort());
}
// siemensS7Net.ConnectClose();
@@ -246,44 +266,45 @@
int index = staNos1.indexOf(siteId);
index += 1;
- OperateResult write = siemensS7Net.Write("DB83." + (index *8+6),(int) workNo); // 宸ヤ綔鍙�
+ OperateResult write = siemensS7Net.Write("DB83." + (index * 8 + 6), (int) workNo); // 宸ヤ綔鍙�
if (!write.IsSuccess) {
StaProtocol staProtocol = station.get(siteId);
- if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
+ if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() == 0) {
staProtocol.setPakMk(true);
}
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", device.getId(), JSON.toJSON(staProtocol)));
log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", device.getId(), JSON.toJSON(staProtocol));
} else {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), device.getId(), JSON.toJSON(workNo)));
- log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", device.getId(), JSON.toJSON(workNo));
+ log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", device.getId(), JSON.toJSON(workNo));
return true;
}
return false;
}
@Override
- public boolean writeStaNo(int siteId,short staNo) {
+ public boolean writeStaNo(int siteId, short staNo) {
int index = staNos1.indexOf(siteId);
index += 1;
- OperateResult write = siemensS7Net.Write("DB101." + (index * 8 + 4),(int) staNo); // 鐩爣绔�
+ OperateResult write = siemensS7Net.Write("DB101." + (index * 8 + 4), (int) staNo); // 鐩爣绔�
if (!write.IsSuccess) {
StaProtocol staProtocol = station.get(siteId);
- if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
+ if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() == 0) {
staProtocol.setPakMk(true);
}
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", device.getId(), JSON.toJSON(staProtocol)));
log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", device.getId(), JSON.toJSON(staProtocol));
} else {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), device.getId(), JSON.toJSON(staNo)));
- log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", device.getId(), JSON.toJSON(staNo));
+ log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", device.getId(), JSON.toJSON(staNo));
return true;
}
return false;
}
+
@Override
public boolean writeWorkSta(int siteId, short workNo, short staNo) {
@@ -294,37 +315,42 @@
array[0] = workNo;
array[1] = staNo;
- String workNoAddress = "DB83." + (index * 8 + 6);
String staNoAddress = "DB83." + (index * 8 + 4);
+ String workNoAddress = "DB83." + (index * 8 + 6);
OperateResult write1 = null; // 宸ヤ綔鍙�
OperateResult write2 = null; // 鐩爣绔�
//浠诲姟涓嬪彂娆℃暟
int writeCount = 0;
do {
- write1 = siemensS7Net.Write(workNoAddress, workNo); // 宸ヤ綔鍙�
+ write1 = siemensS7Net.Write(workNoAddress, workNo); // 宸ヤ綔鍙�
write2 = siemensS7Net.Write(staNoAddress, staNo);
if ((write1.IsSuccess && write2.IsSuccess)) {
- OperateResultExOne<byte[]> readResult = siemensS7Net.Read(staNoAddress, (short) 8);
- if (readResult.IsSuccess) {
- int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
- int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4);
- if (workNo == workNo2 && staNo == staNo2) {
- //浠诲姟鍛戒护鍐欏叆鎴愬姛
- log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
- return true;
- } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓
- writeCount++;
- log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
- }
- } else {
- writeCount++;
- log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},{},鍐欏叆娆℃暟={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
- }
- }else {
+ log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
+ return true;
+// OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB82.14", (short) (staNos2.indexOf(siteId) * 26));
+// //OperateResultExOne<byte[]> readResult = siemensS7Net.Read(staNoAddress, (short) 8);
+// if (readResult.IsSuccess) {
+// int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2); // 宸ヤ綔鍙�
+// int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4); // 鐩爣绔�
+// // int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
+// //int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
+// if (workNo == workNo2 && staNo == staNo2) {
+// //浠诲姟鍛戒护鍐欏叆鎴愬姛
+// log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
+// return true;
+// } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓
+// writeCount++;
+// log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
+// }
+// } else {
+// writeCount++;
+// log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},{},鍐欏叆娆℃暟={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
+// }
+ } else {
writeCount++;
}
- }while (writeCount < 5) ;
+ } while (writeCount < 5);
// StaProtocol staProtocol = station.get(siteId);
// if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
// staProtocol.setPakMk(true);
@@ -380,7 +406,7 @@
@Override
public boolean switchWorkMode(int siteId, int workMode) {
WorkModeTypeDto workModeTypeDto = workModeTypes.get(siteId);
- if(workModeTypeDto == null) {
+ if (workModeTypeDto == null) {
return false;
}
diff --git a/zy-asrs-wcs/src/main/resources/application.yml b/zy-asrs-wcs/src/main/resources/application.yml
index 2f2fc6e..e16a303 100644
--- a/zy-asrs-wcs/src/main/resources/application.yml
+++ b/zy-asrs-wcs/src/main/resources/application.yml
@@ -20,7 +20,7 @@
# password: zy@123
url: jdbc:mysql://127.0.0.1:3306/fyxcasrs?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
- password: root
+ password: zhangchao
# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
# url: jdbc:sqlserver://47.97.1.152:51433;databasename=jkasrs
# username: sa
@@ -63,5 +63,5 @@
config:
token-key: KUHSMcYQ4lePt3r6bckz0P13cBJyoonYqInThvQlUnbsFCIcCcZZAbWZ6UNFztYNYPhGdy6eyb8WdIz8FU2Cz396TyTJk3NI2rtXMHBOehRb4WWJ4MdYVVg2oWPyqRQ2
-pythonCalcPath: D:\\path\\cpu.py
-pythonCalcSimilarity: D:\\path\\similarity.py
\ No newline at end of file
+pythonCalcPath: /Users/zhangc/workspace/zoneyang/cpu.py
+pythonCalcSimilarity: /Users/zhangc/workspace/zoneyang/similarity.py
\ No newline at end of file
--
Gitblit v1.9.1