From acc22eabcb1296bf7a3072b36ebd66d136c9a466 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 29 九月 2020 08:54:45 +0800
Subject: [PATCH] #堆垛机版本
---
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 8 ++--
src/main/java/com/zy/asrs/controller/ConsoleController.java | 6 +-
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 70 ++++++++++++++++++++++++++---------
src/main/java/com/zy/core/CrnThread.java | 11 +++++
src/main/java/com/zy/asrs/controller/CrnController.java | 2
src/main/resources/application.yml | 9 ++++
src/main/java/com/zy/core/ServerBootstrap.java | 13 +++++-
7 files changed, 90 insertions(+), 29 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java
index e637dc3..d84ee24 100644
--- a/src/main/java/com/zy/asrs/controller/ConsoleController.java
+++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -24,7 +24,7 @@
import com.zy.core.properties.SlaveProperties;
import com.zy.core.properties.SystemProperties;
import com.zy.core.thread.BarcodeThread;
-import com.zy.core.thread.CrnThread;
+import com.zy.core.thread.SiemensCrnThread;
import com.zy.core.thread.DevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -111,7 +111,7 @@
List<CrnLatestDataVo> vos = new ArrayList<>();
for (CrnSlave crn : slaveProperties.getCrn()) {
// 鑾峰彇鍫嗗灈鏈轰俊鎭�
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+ SiemensCrnThread crnThread = (SiemensCrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
if (crnThread == null) {
continue;
}
@@ -224,7 +224,7 @@
CrnDetailVo vo = new CrnDetailVo();
for (CrnSlave crnSlave : slaveProperties.getCrn()) {
if (crnSlave.getId().equals(crnNo)) {
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId());
+ SiemensCrnThread crnThread = (SiemensCrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId());
CrnProtocol crnProtocol = crnThread.getCrnProtocol();
vo.setCrnNo(crnNo);
vo.setWorkNo(crnProtocol.getTaskNo());
diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index 79fda80..6277cca 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -28,7 +28,7 @@
import com.zy.core.model.command.CrnCommand;
import com.zy.core.model.protocol.CrnProtocol;
import com.zy.core.properties.SlaveProperties;
-import com.zy.core.thread.CrnThread;
+import com.zy.core.CrnThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 14e9a7c..8c131ef 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -26,7 +26,7 @@
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.BarcodeThread;
-import com.zy.core.thread.CrnThread;
+import com.zy.core.CrnThread;
import com.zy.core.thread.DevpThread;
import com.zy.core.thread.LedThread;
import lombok.extern.slf4j.Slf4j;
@@ -112,9 +112,11 @@
}
// 鑾峰彇鍏ュ簱绔欎俊鎭�
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()).clone();
+ StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
if (staProtocol == null) {
continue;
+ } else {
+ staProtocol = staProtocol.clone();
}
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
@@ -218,8 +220,12 @@
for (DevpSlave.Sta inSta : devp.getInSta()) {
// 鑾峰彇鍏ュ簱绔欎俊鎭�
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()).clone();
- if (staProtocol == null) { continue; }
+ StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (staProtocol.isAutoing() && staProtocol.isLoading()
&& !staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 0
@@ -264,8 +270,12 @@
for (DevpSlave.Sta pickSta : devp.getPickSta()) {
// 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo()).clone();
- if (staProtocol == null) { continue; }
+ StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
&& staProtocol.getWorkNo() > 0 && staProtocol.isPakMk()){
WrkMast wrkMast = wrkMastMapper.selectPickStep(staProtocol.getWorkNo().intValue());
@@ -350,8 +360,12 @@
for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
// 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()).clone();
- if (staProtocol == null) { continue; }
+ StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
// 鏌ヨ宸ヤ綔妗�
WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(staProtocol.getSiteId());
@@ -452,8 +466,12 @@
boolean flag = false;
// 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()).clone();
- if (staProtocol == null) { continue; }
+ StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
// 鏌ヨ绔欑偣璇︾粏淇℃伅
BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
if (staDetl == null) {
@@ -540,8 +558,12 @@
}
// 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()).clone();
- if (staProtocol == null) { continue; }
+ StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
// 鏌ヨ绔欑偣璇︾粏淇℃伅
BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
if (staDetl == null) {
@@ -712,8 +734,12 @@
for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
// 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
- StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo()).clone();
- if (staProtocol == null) { continue; }
+ StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
// 绔欑偣鏉′欢鍒ゆ柇
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
&& staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk()) {
@@ -790,8 +816,12 @@
List<WrkMast> wrkMasts = new ArrayList<>();
for (Integer staNo : led.getStaArr()) {
// 鑾峰彇鍙夎溅绔欑偣
- StaProtocol staProtocol = devpThread.getStation().get(staNo).clone();
- if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) { continue; }
+ StaProtocol staProtocol = devpThread.getStation().get(staNo);
+ if (null == staProtocol || null == staProtocol.getWorkNo() || 0 == staProtocol.getWorkNo() || !staProtocol.isLoading()) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
// 鑾峰彇宸ヤ綔妗f暟鎹�
WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; }
@@ -877,8 +907,12 @@
boolean reset = true;
for (Integer staNo : led.getStaArr()) {
// 鑾峰彇鍙夎溅绔欑偣
- StaProtocol staProtocol = devpThread.getStation().get(staNo).clone();
- if (staProtocol == null) {continue;}
+ StaProtocol staProtocol = devpThread.getStation().get(staNo);
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
if (staProtocol.getWorkNo() != 0) {
reset = false;
break;
diff --git a/src/main/java/com/zy/core/CrnThread.java b/src/main/java/com/zy/core/CrnThread.java
new file mode 100644
index 0000000..70c3d75
--- /dev/null
+++ b/src/main/java/com/zy/core/CrnThread.java
@@ -0,0 +1,11 @@
+package com.zy.core;
+
+import com.zy.core.model.protocol.CrnProtocol;
+
+public interface CrnThread extends ThreadHandler {
+
+ CrnProtocol getCrnProtocol();
+
+ void setResetFlag(boolean flag);
+
+}
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index ac5207a..85bb881 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -8,7 +8,7 @@
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.BarcodeThread;
import com.zy.core.thread.CarThread;
-import com.zy.core.thread.CrnThread;
+import com.zy.core.thread.SiemensCrnThread;
import com.zy.core.thread.DevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -76,8 +76,15 @@
// 鍒濆鍖栧爢鍨涙満绾跨▼
log.info("鍒濆鍖栧爢鍨涙満绾跨▼...................................................");
for (CrnSlave crn : slaveProperties.getCrn()) {
- CrnThread crnThread = new CrnThread(crn);
- new Thread(crnThread).start();
+ CrnThread crnThread = null;
+ switch (crn.getId()) {
+ case 1:
+ crnThread = new SiemensCrnThread(crn);
+ break;
+ default:
+ break;
+ }
+ new Thread((Runnable) crnThread).start();
SlaveConnection.put(SlaveType.Crn, crn.getId(), crnThread);
}
diff --git a/src/main/java/com/zy/core/thread/CrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
similarity index 98%
rename from src/main/java/com/zy/core/thread/CrnThread.java
rename to src/main/java/com/zy/core/thread/SiemensCrnThread.java
index e548e0f..afabb67 100644
--- a/src/main/java/com/zy/core/thread/CrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -9,7 +9,7 @@
import com.core.common.SpringUtils;
import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.service.BasCrnpService;
-import com.zy.core.ThreadHandler;
+import com.zy.core.CrnThread;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.enums.CrnStatusType;
@@ -31,14 +31,14 @@
*/
@Data
@Slf4j
-public class CrnThread implements Runnable, ThreadHandler {
+public class SiemensCrnThread implements Runnable, CrnThread {
private SiemensS7Net siemensNet;
private CrnSlave slave;
private CrnProtocol crnProtocol;
private boolean resetFlag = false;
- public CrnThread(CrnSlave slave) {
+ public SiemensCrnThread(CrnSlave slave) {
this.slave = slave;
}
@@ -218,7 +218,7 @@
slave.setIp("192.168.6.9");
slave.setRack(0);
slave.setSlot(0);
- CrnThread crnThread = new CrnThread(slave);
+ SiemensCrnThread crnThread = new SiemensCrnThread(slave);
crnThread.connect();
crnThread.readStatus();
System.out.println(JSON.toJSONString(crnThread.crnProtocol));
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 63b7175..1a806c2 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -62,6 +62,15 @@
row: 1
bay: 0
lev: 1
+ # 鍫嗗灈鏈�2
+ crn[1]:
+ id: 1
+ ip: 192.168.6.10
+ port: 102
+ rack: 0
+ slot: 0
+ # 鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
+ offset: 2
# 杈撻�佺嚎
devp[0]:
id: 1
--
Gitblit v1.9.1