From 80d97d40c44165674ee0168be5f08c8ca52d3c06 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 09 六月 2025 09:36:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jxgtwcs' into jxgtwcs
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/JxgtDevpThread.java | 56 ++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 40 insertions(+), 16 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/JxgtDevpThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/JxgtDevpThread.java
index 338f581..191bf6d 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/JxgtDevpThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/JxgtDevpThread.java
@@ -109,7 +109,8 @@
ArrayList<BasConveyorSta> staNos = getStaNo();
int staNoSize = staNos.size();
OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.20", (short) (staNoSize * 18));
- if (result.IsSuccess) {
+ OperateResultExOne<byte[]> resultInable = siemensS7Net.Read("DB100.186", (short) 2);
+ if (result.IsSuccess && resultInable.IsSuccess) {
for (int i = 0; i < staNoSize; i++) {
BasConveyorSta siteStation = staNos.get(i);
int siteId = siteStation.getSiteNo();// 绔欑偣缂栧彿
@@ -119,7 +120,7 @@
staProtocol.setSiteId(siteId);
station.put(siteId, staProtocol);
}
-
+ Thread.sleep(300);
staProtocol.setAutoing(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18) == 1); // 鑷姩
staProtocol.setLoading(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 2) == 1); // 鏈夌墿
staProtocol.setInEnable(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 4) == 1); // 鍙叆
@@ -131,6 +132,8 @@
// staProtocol.setWorkMode((int) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 40 + 8));// 宸ヤ綔妯″紡
staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt32(result.Content, i * 18 + 10)); // 宸ヤ綔鍙�
staProtocol.setStaNo((short) siemensS7Net.getByteTransform().TransInt32(result.Content, i * 18 + 14)); // 鐩爣绔�
+
+ staProtocol.setIsIn( siemensS7Net.getByteTransform().TransInt16(resultInable.Content, 0));
if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
@@ -156,6 +159,8 @@
}
}
}
+
+
if (!Cools.isEmpty(result) && result.IsSuccess) {
@@ -269,20 +274,39 @@
OperateResult write1 = null; // 宸ヤ綔鍙�
OperateResult write2 = null; // 鐩爣绔�
-// write1 = siemensS7Net.Write(workNoAddress, workNo); // 宸ヤ綔鍙�
-// write2 = siemensS7Net.Write(staNoAddress, staNo); // 鐩爣绔�
-
- write1 = siemensS7Net.Write(workNoAddress, (int) workNo); // 宸ヤ綔鍙�
- write2 = siemensS7Net.Write(staNoAddress, (int) staNo); // 鐩爣绔�
-
- if ((write1.IsSuccess && write2.IsSuccess)) {
- log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋},{}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo));
- return true;
- }else {
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", device.getId(), JSON.toJSON(array)));
- log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", device.getId(), JSON.toJSON(array));
- return false;
- }
+ //浠诲姟涓嬪彂娆℃暟
+ int writeCount = 0;
+ do {
+ write1 = siemensS7Net.Write(workNoAddress, (int) workNo); // 宸ヤ綔鍙�
+ write2 = siemensS7Net.Write(staNoAddress, (int) staNo);
+ if ((write1.IsSuccess && write2.IsSuccess)) {
+ OperateResultExOne<byte[]> readResult = siemensS7Net.Read(staNoAddress, (short) 8);
+ if (readResult.IsSuccess) {
+ int staNo2 = siemensS7Net.getByteTransform().TransInt32(readResult.Content, 0);
+ int workNo2 = siemensS7Net.getByteTransform().TransInt32(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 {
+ writeCount++;
+ }
+ }while (writeCount < 5) ;
+// StaProtocol staProtocol = station.get(siteId);
+// if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
+// staProtocol.setPakMk(true);
+// }
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", device.getId(), JSON.toJSON(array)));
+ log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", device.getId(), JSON.toJSON(array));
+ return false;
}
@Override
--
Gitblit v1.9.1