From bb4d085716e0587745240543ad77e451cdade402 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期四, 17 十月 2024 17:59:30 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SuopaiSiemensDevpThread.java | 68 +++++++++++++++++++++++++++-------
1 files changed, 54 insertions(+), 14 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SuopaiSiemensDevpThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SuopaiSiemensDevpThread.java
index 63f85b3..d154f42 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SuopaiSiemensDevpThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SuopaiSiemensDevpThread.java
@@ -11,15 +11,20 @@
import com.zy.asrs.framework.common.SpringUtils;
import com.zy.asrs.wcs.core.entity.BasConveyor;
import com.zy.asrs.wcs.core.entity.BasConveyorSta;
+import com.zy.asrs.wcs.core.entity.DeviceBarcode;
import com.zy.asrs.wcs.core.service.BasConveyorService;
import com.zy.asrs.wcs.core.service.BasConveyorStaService;
+import com.zy.asrs.wcs.core.service.DeviceBarcodeService;
import com.zy.asrs.wcs.core.utils.RedisUtil;
import com.zy.asrs.wcs.rcs.News;
import com.zy.asrs.wcs.rcs.cache.OutputQueue;
+import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
import com.zy.asrs.wcs.rcs.entity.Device;
import com.zy.asrs.wcs.rcs.model.dto.WorkModeTypeDto;
+import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
import com.zy.asrs.wcs.rcs.model.enums.WorkModeType;
import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol;
+import com.zy.asrs.wcs.rcs.thread.BarcodeThread;
import com.zy.asrs.wcs.rcs.thread.DevpThread;
import lombok.extern.slf4j.Slf4j;
@@ -121,6 +126,21 @@
staProtocol.setInEnable(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 40 + 14) == 1); // 鍙叆
staProtocol.setOutEnable(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 40 + 14) == 2);// 鍙嚭
staProtocol.setWorkMode((int) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 40 + 8));// 宸ヤ綔妯″紡
+
+ String barcode = siemensS7Net.getByteTransform().TransString(result.Content,58,8, "UTF-8");// 鏉$爜
+ BasConveyorStaService basConveyorStaService = SpringUtils.getBean(BasConveyorStaService.class);
+ DeviceBarcodeService deviceBarcodeService = SpringUtils.getBean(DeviceBarcodeService.class);
+ BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>().eq(BasConveyorSta::getSiteNo, siteId));
+ if (basConveyorSta != null) {
+ DeviceBarcode deviceBarcode = deviceBarcodeService.getById(basConveyorSta.getBarcodeId());
+ if (deviceBarcode != null) {
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, Integer.parseInt(deviceBarcode.getDeviceId()));
+ if (barcodeThread != null) {
+ barcodeThread.setBarcode(barcode);
+ }
+ }
+ }
+
// staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿
// staProtocol.setFullPlt(status[5]); // 婊℃墭鐩�
// staProtocol.setHigh(status[6]); // 楂樺簱浣�
@@ -236,21 +256,41 @@
String workNoAddress = "DB1001." + (index * 20 + 100 + 2);
String staNoAddress = "DB1001." + (index * 20 + 100 + 4);
- OperateResult write1 = siemensS7Net.Write(workNoAddress, workNo); // 宸ヤ綔鍙�
- OperateResult write2 = siemensS7Net.Write(staNoAddress, staNo); // 鐩爣绔�
+ OperateResult write1 = null; // 宸ヤ綔鍙�
+ OperateResult write2 = null; // 鐩爣绔�
- if (!(write1.IsSuccess && write2.IsSuccess)) {
- StaProtocol staProtocol = station.get(siteId);
- if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
- staProtocol.setPakMk(true);
+ //浠诲姟涓嬪彂娆℃暟
+ int writeCount = 0;
+ do {
+ write1 = siemensS7Net.Write(workNoAddress, workNo); // 宸ヤ綔鍙�
+ write2 = siemensS7Net.Write(staNoAddress, staNo); // 鐩爣绔�
+ if ((write1.IsSuccess && write2.IsSuccess)) {
+ OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB1000." + (index * 40 + 100 + 2), (short) 4);
+ if (readResult.IsSuccess) {
+ short workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
+ short staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2);
+ 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++;
}
- 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));
- return true;
+ }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(staProtocol)));
+ log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", device.getId(), JSON.toJSON(staProtocol));
return false;
}
@@ -290,8 +330,8 @@
WorkModeType workModeType = workModeTypeDto.getWorkModeType();
if (workModeType != WorkModeType.NONE) {
if (!siemensS7Net.Write(workModeTypeDto.getAddress(), workModeType.id).IsSuccess) {
- OutputQueue.DEVP.offer(MessageFormat.format("鍐欏叆杈撻�佺嚎{1}鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎缂栧彿={0}", device.getId(), workModeTypeDto.getSiteId()));
- log.error("鍐欏叆杈撻�佺嚎{1}鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎缂栧彿={0}", device.getId(), workModeTypeDto.getSiteId());
+ OutputQueue.DEVP.offer(MessageFormat.format("鍐欏叆杈撻�佺嚎{}鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎缂栧彿={}", workModeTypeDto.getSiteId(), device.getId()));
+ log.error("鍐欏叆杈撻�佺嚎{}鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎缂栧彿={}", workModeTypeDto.getSiteId(), device.getId());
}
}
}
--
Gitblit v1.9.1