From be88cb18eeca37171e1dad3ce7d5209700a42d29 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 19 九月 2022 14:09:02 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/BarcodeThread.java | 122 +++++-------------------------
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 6
src/main/java/com/zy/core/thread/SteThread.java | 7 +
src/main/java/com/zy/core/model/protocol/SteProtocol.java | 2
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 58 +++++++------
src/main/webapp/views/ste.html | 4
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java | 2
src/main/java/com/zy/core/enums/SteTaskModeType.java | 4
src/main/resources/mapper/WrkMastMapper.xml | 4
9 files changed, 66 insertions(+), 143 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index 1b184b7..f8b2f7e 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -43,7 +43,7 @@
// 鍑哄簱绗竴姝ワ紝浠庡簱浣嶅埌鍫嗗灈鏈哄嚭搴撶珯
// @Select("select top 1 * from dbo.asr_wrk_mast where crn_no=#{crnNo} and wrk_sts=11 and io_type>100 order by io_pri desc,io_time,wrk_no asc")
- WrkMast selectPakOutStep11(@Param("crnNo")Integer crnNO, @Param("sourceStaNo")Integer sourceStaNo);
+ WrkMast selectPakOutStep111215(@Param("crnNo")Integer crnNO, @Param("sourceStaNo")Integer sourceStaNo);
// 鍑哄簱绗簩姝ワ紝浠庡爢鍨涙満鍑哄簱绔欏埌鐩爣鍑哄簱绔欙紝鍫嗗灈鏈哄嚭搴撶珯鏈夌墿鏃舵墽琛�
// @Select("select top 1 * from dbo.asr_wrk_mast where source_sta_no=#{sourceStaNo} and wrk_sts=12 and io_type>100 order by io_pri desc,io_time desc,wrk_no ASC")
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 2994deb..a11a2ea 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -454,7 +454,7 @@
// 鑾峰彇宸ヤ綔鐘舵�佷负 2,3,4,5,6 鐨勫叆搴撳伐浣滄。
WrkMast wrkMast = wrkMastMapper.selectPakInStep23456(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
if(null == wrkMast) {
- log.error("{}绔欑偣鏌ヨ鏃犲緟鍏ュ簱鏁版嵁 宸ヤ綔鍙�={}", crnStn.getStaNo(), staProtocol.getWorkNo());
+// log.error("{}绔欑偣鏌ヨ鏃犲緟鍏ュ簱鏁版嵁 宸ヤ綔鍙�={}", crnStn.getStaNo(), staProtocol.getWorkNo());
continue;
}
if (wrkMast.getWrkSts() < 3) {
@@ -609,7 +609,7 @@
public boolean locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol){
for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
// 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
- WrkMast wrkMast = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo());
+ WrkMast wrkMast = wrkMastMapper.selectPakOutStep111215(slave.getId(), crnStn.getStaNo());
if (wrkMast == null) {
continue;
}
@@ -700,6 +700,10 @@
steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙�
steCommand.setTaskMode(SteTaskModeType.findOutByLoc(wrkMast.getSourceLocNo())); // 浠诲姟妯″紡: 鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
+ steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue());
+ steCommand.setBay(steProtocol.getBay());
+ steCommand.setLev(steProtocol.getLev());
+
if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand));
} else {
@@ -727,7 +731,7 @@
crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosX(Utils.getGroupRow(sourceSta.getRow1()).shortValue()); // 婧愬簱浣嶆帓
crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪
crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰
crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺�
@@ -819,7 +823,7 @@
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
SteCommand steCommand = new SteCommand();
steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
- steCommand.setTaskNo(9999); // 宸ヤ綔鍙�
+ steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙�
steCommand.setTaskMode(SteTaskModeType.findWaiting(steProtocol.getRow().intValue())); // 浠诲姟妯″紡: 鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue());
@@ -1133,33 +1137,33 @@
SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
SteProtocol steProtocol = steThread.getSteProtocol();
if (steProtocol == null) { continue; }
- if (steProtocol.isIdle()) {
+// if (steProtocol.isIdle()) {
// 绌挎杞﹂噸鏂板畾浣嶆帓鍒楀眰
- if (!steThread.confirmPos()) {
- log.error("{}鍙风┛姊溅閲嶆柊瀹氫綅澶辫触锛佷綔涓氬伐浣滄。浠诲姟鍙凤細{}", wrkMast.getSteNo(), wrkMast.getWrkNo());
- }
- // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- SteCommand steCommand = new SteCommand();
- steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
- steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙�
- steCommand.setTaskMode(SteTaskModeType.findOutByLoc(wrkMast.getSourceLocNo())); // 浠诲姟妯″紡: 鎼嚭搴�
- if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
- log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand));
+ if (!steThread.confirmPos()) {
+ log.error("{}鍙风┛姊溅閲嶆柊瀹氫綅澶辫触锛佷綔涓氬伐浣滄。浠诲姟鍙凤細{}", wrkMast.getSteNo(), wrkMast.getWrkNo());
+ }
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ SteCommand steCommand = new SteCommand();
+ steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
+ steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙�
+ steCommand.setTaskMode(SteTaskModeType.findOutByLoc(wrkMast.getSourceLocNo())); // 浠诲姟妯″紡: 鎼嚭搴�
+ if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
+ log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand));
+ } else {
+ // 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴�
+ wrkMast.setWrkSts(14L);
+ Date now = new Date();
+ wrkMast.setCrnEndTime(now);
+ wrkMast.setModiTime(now);
+ // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
+ if (wrkMastMapper.updateById(wrkMast) > 0) {
+ // 鍫嗗灈鏈哄浣�
+ crnThread.setResetFlag(true);
} else {
- // 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴�
- wrkMast.setWrkSts(14L);
- Date now = new Date();
- wrkMast.setCrnEndTime(now);
- wrkMast.setModiTime(now);
- // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
- if (wrkMastMapper.updateById(wrkMast) > 0) {
- // 鍫嗗灈鏈哄浣�
- crnThread.setResetFlag(true);
- } else {
- log.error("淇敼宸ヤ綔妗g姸鎬� 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
- }
+ log.error("淇敼宸ヤ綔妗g姸鎬� 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
}
}
+// }
}
}
}
diff --git a/src/main/java/com/zy/core/enums/SteTaskModeType.java b/src/main/java/com/zy/core/enums/SteTaskModeType.java
index 3ed25fe..8f1ea3b 100644
--- a/src/main/java/com/zy/core/enums/SteTaskModeType.java
+++ b/src/main/java/com/zy/core/enums/SteTaskModeType.java
@@ -11,8 +11,8 @@
OUT_RIGHT(2, "鍙冲嚭搴�"), // 鍙冲嚭搴�
IN_LEFT(3, "宸﹀叆搴�"), // 宸﹀叆搴�
IN_RIGHT(4, "鍙冲叆搴�"), // 鍙冲叆搴�
-// MOVE_LEFT(5, "宸︾Щ搴�"), // 宸︾Щ搴�
-// MOVE_RIGHT(6, "鍙崇Щ搴�"), // 鍙崇Щ搴�
+ MOVE_LEFT(5, "宸︾Щ搴�"), // 宸︾Щ搴�
+ MOVE_RIGHT(6, "鍙崇Щ搴�"), // 鍙崇Щ搴�
GO_ORIGIN(7, "鍘诲彸绔�"), // 鍥炲師鐐�
BACK_ORIGIN(8, "鍘诲乏绔�"), // 鍥炲弽鍘熺偣
WAITING_RIGHT(9, "鍙冲緟鏈�"), // A鐐�
diff --git a/src/main/java/com/zy/core/model/protocol/SteProtocol.java b/src/main/java/com/zy/core/model/protocol/SteProtocol.java
index 0b053fc..3593f8e 100644
--- a/src/main/java/com/zy/core/model/protocol/SteProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/SteProtocol.java
@@ -236,7 +236,7 @@
// 鏄惁澶勪簬鎶ヨ鐘舵��
public Boolean isAlarm() {
- return this.alarm > 0;
+ return this.alarm > 1;
}
}
diff --git a/src/main/java/com/zy/core/thread/BarcodeThread.java b/src/main/java/com/zy/core/thread/BarcodeThread.java
index 571c438..00ffb2a 100644
--- a/src/main/java/com/zy/core/thread/BarcodeThread.java
+++ b/src/main/java/com/zy/core/thread/BarcodeThread.java
@@ -9,13 +9,6 @@
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.SocketAddress;
-import java.net.SocketTimeoutException;
import java.util.Date;
/**
@@ -27,119 +20,44 @@
public class BarcodeThread implements Runnable, ThreadHandler {
private Slave slave;
- private String barcode;
- private Socket socket;
- private DataOutputStream dataOutputStream;
- private DataInputStream dataInputStream;
+ private StringBuffer barcode = new StringBuffer();
public BarcodeThread(Slave slave) {
this.slave = slave;
}
- @Override
- @SuppressWarnings("InfiniteLoopStatement")
- public void run() {
- connect();
- while (true) {
- try {
- byte[] read = read(8, 100);
- if (null != read) {
- String s = new String(read);
- if (!Cools.isEmpty(s)) {
- barcode = new String(read);
- log.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}", slave.getId(), this.barcode);
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
- jsonObject.put("barcode", barcode);
- OutputQueue.BARCODE.offer(jsonObject);
- }
- }
- Thread.sleep(100);
- } catch (SocketTimeoutException ignore) {
- } catch (Exception e) {
-// e.printStackTrace();
+ public String getBarcode() {
+ return barcode.toString();
+ }
+
+ public void setBarcode(String barcode) {
+ this.barcode.delete(0, this.barcode.length());
+ this.barcode.append(barcode);
+ if(!Cools.isEmpty(barcode)) {
+ log.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}", slave.getId(), this.barcode);
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
+ jsonObject.put("barcode", barcode);
+ if (OutputQueue.BARCODE.size() >= 32) {
+ OutputQueue.BARCODE.poll();
}
+ OutputQueue.BARCODE.offer(jsonObject);
}
}
@Override
public boolean connect() {
- try {
- close(); //1.涓诲姩閲婃斁杩炴帴 //2.鏌愪簺鏈嶅姟鍣ㄥ鎸囧畾ip鏈夐摼璺暟闄愬埗
- socket = new Socket();
- //socket.setKeepAlive(true);
- SocketAddress socketAddress = new InetSocketAddress(slave.getIp(), slave.getPort());
- socket.connect(socketAddress, 1000); //鏌愪簺鏈嶅姟鍣╬ing寤惰繜楂樻椂瑕佸鍔�,鍚﹀垯浼氭姤閿檆onnect timeout
- dataOutputStream = new DataOutputStream(socket.getOutputStream());
- dataInputStream = new DataInputStream(socket.getInputStream());
-// log.info("鏉$爜鎵弿浠繛鎺ユ垚鍔� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
- } catch (Exception e) {
- socket = null;
-// log.error("鏉$爜鎵弿浠繛鎺ュけ璐ワ紒锛侊紒 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
- return false;
- }
- return true;
+ return false;
}
@Override
public void close() {
- try {
- if (null != dataOutputStream) {
- dataOutputStream.close();
- }
- if (null != dataInputStream) {
- dataInputStream.close();
- }
-// if (null != socket && !socket.isClosed()) {
-// socket.close();
-// }
- if (null != socket){
- socket.close();
- }
- socket = null;
- } catch (IOException e) {
- log.error("SocketClient close Exception:" + e.getMessage());
- }
+
}
- public void write(byte[] msg, int len) throws IOException {
- if (null != dataInputStream)
- {
- dataOutputStream.write(msg, 0, len);
- dataOutputStream.flush();
- }
- }
+ @Override
+ public void run() {
- public byte[] read(int bufferSize, int timeOut) throws IOException {
-// if (socket == null) {
-// connect();
-// }
- connect();
- socket.setSoTimeout(timeOut);
- byte[] bytes = new byte[bufferSize];
- int len = dataInputStream.read(bytes);
- byte[] tempBytes = null;
- if (len > 0) {
- tempBytes = new byte[len];
- System.arraycopy(bytes, 0, tempBytes, 0, len);
- }
- return tempBytes;
- }
-
- public boolean valid() throws Exception {
- if (null == socket || socket.isClosed() || socket.isInputShutdown() || socket.isOutputShutdown()) {
- if (dataInputStream != null) {
- dataInputStream.close();
- }
- if (dataOutputStream != null) {
- dataOutputStream.close();
- }
- if (socket != null) {
- socket.close();
- }
- return false;
- }
- return true;
}
}
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 6e43a34..c886c18 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -196,12 +196,12 @@
} else {
initCrn();
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- log.error("璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+// log.error("璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
}
} catch (Exception e) {
- e.printStackTrace();
+// e.printStackTrace();
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- log.error("璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+// log.error("璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
initCrn();
}
}
diff --git a/src/main/java/com/zy/core/thread/SteThread.java b/src/main/java/com/zy/core/thread/SteThread.java
index d02a3f3..49bc3a9 100644
--- a/src/main/java/com/zy/core/thread/SteThread.java
+++ b/src/main/java/com/zy/core/thread/SteThread.java
@@ -200,9 +200,9 @@
throw new CoolException(MessageFormat.format( "绌挎杞lc鐘舵�佷俊鎭け璐� ===>> [id:{0}] [ip:{1}] [port:{2}]", slave.getId(), slave.getIp(), slave.getPort()));
}
} catch (Exception e) {
- e.printStackTrace();
+// e.printStackTrace();
OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆戣鍙栫┛姊溅plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- log.error("璇诲彇绌挎杞lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+// log.error("璇诲彇绌挎杞lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
initSte();
}
@@ -258,7 +258,8 @@
// 浠诲姟瀹屾垚
} else {
- siemensS7Net.Write("V1000",(short) 0);
+ siemensS7Net.Write("V998", (short) 0);
+ siemensS7Net.Write("V1000", (short) 0);
result = siemensS7Net.Write("V2000.1", true);
}
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 5698997..db50b46 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -109,8 +109,8 @@
select top 1 * from asr_wrk_mast where barcode=#{barcode} and wrk_sts=17 and (io_type=103 or io_type=107 or io_type=104)
</select>
- <select id="selectPakOutStep11" resultMap="BaseResultMap">
- select top 1 * from dbo.asr_wrk_mast where crn_no=#{crnNo} and source_sta_no=#{sourceStaNo} and wrk_sts=11 and io_type>100 order by io_pri desc,io_time,wrk_no asc
+ <select id="selectPakOutStep111215" resultMap="BaseResultMap">
+ select top 1 * from dbo.asr_wrk_mast where crn_no=#{crnNo} and source_sta_no=#{sourceStaNo} and wrk_sts in (11,12,15) and io_type>100 order by io_pri desc,io_time,wrk_no asc
</select>
<select id="selectPakOutStep16" resultMap="BaseResultMap">
diff --git a/src/main/webapp/views/ste.html b/src/main/webapp/views/ste.html
index 3edb7d3..0c5cc2c 100644
--- a/src/main/webapp/views/ste.html
+++ b/src/main/webapp/views/ste.html
@@ -111,8 +111,8 @@
<button class="item" onclick="steOperator(2)">鍚戝彸鍑哄簱</button>
<button class="item" onclick="steOperator(3)">浠庡乏鍏ュ簱</button>
<button class="item" onclick="steOperator(4)">浠庡彸鍏ュ簱</button>
-<!-- <button class="item" onclick="steOperator(5)">宸︾Щ搴�</button>-->
-<!-- <button class="item" onclick="steOperator(6)">鍙崇Щ搴�</button>-->
+ <button class="item" onclick="steOperator(5)">宸︾Щ搴�</button>
+ <button class="item" onclick="steOperator(6)">鍙崇Щ搴�</button>
<button class="item" onclick="steOperator(8)">鍘诲乏绔�</button>
<button class="item" onclick="steOperator(7)">鍘诲彸绔�</button>
<button class="item" onclick="steOperator(10)">宸﹀緟鏈�</button>
--
Gitblit v1.9.1