From 9608f4a428d522c04da21c6b6eea9fa76d01b136 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 31 三月 2026 16:05:16 +0800
Subject: [PATCH] #输送线异常信息采集
---
src/main/java/com/zy/core/network/real/ZyStationV4RealConnect.java | 99 ++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 92 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/zy/core/network/real/ZyStationV4RealConnect.java b/src/main/java/com/zy/core/network/real/ZyStationV4RealConnect.java
index 6e91763..ea6e8c9 100644
--- a/src/main/java/com/zy/core/network/real/ZyStationV4RealConnect.java
+++ b/src/main/java/com/zy/core/network/real/ZyStationV4RealConnect.java
@@ -39,6 +39,33 @@
private static final int TASK_AREA_LENGTH = 48;
private static final int TASK_AREA_SLOT_SIZE = 12;
private static final int TASK_AREA_SLOT_COUNT = 3;
+ private static final String[] CONVEYOR_COMMON_ALARM_MESSAGES = {
+ "鎬ュ仠",
+ "浣庝綅鏂矾鍣ㄦ柇寮�",
+ "浣庝綅鍙橀鍣ㄦ晠闅�",
+ "杈撻�佽繍琛岃秴鏃�",
+ "椤跺崌杩愯瓒呮椂",
+ "鐢宠浠诲姟瓒呮椂",
+ "鎵樼洏绐佸嚭鎶ヨ",
+ "浠诲姟杩愯瓒呮椂",
+ "FWD鏃嬭浆闄愪綅鎶ヨ",
+ "REV鏃嬭浆闄愪綅鎶ヨ",
+ "鎵爜妫�楠屽紓甯�",
+ "瀹夊叏闂ㄦ墦寮�鎶ヨ",
+ "浠诲姟閲嶅鎶ヨ",
+ "鍏ョ珯杩囩▼涓墠缃潯浠跺紓甯�",
+ "鍏ョ珯鍓嶇疆鏉′欢绛夊緟瓒呮椂",
+ "鍑虹珯杩囩▼涓墠缃潯浠跺紓甯�",
+ "鍑虹珯鍓嶇疆鏉′欢绛夊緟瓒呮椂",
+ "楂樹綅鏂矾鍣ㄦ柇寮�",
+ "楂樹綅鍙橀鍣ㄦ晠闅�",
+ "椤跺崌闄愪綅淇″彿寮傚父",
+ "鍏ョ珯杩愯涓紝涓婄珯鍚屾杩愯璇锋眰娑堝け",
+ "鍑虹珯瀹屾垚鍚庯紝浠嶇劧妫�娴嬪埌鎵樼洏",
+ "鍏ョ珯瀹屾垚鍚庯紝娌℃湁妫�娴嬪埌鎵樼洏",
+ "涓嬬珯绔欏彿寮傚父",
+ "璺緞鏌ヨ寮傚父"
+ };
private List<ZyStationStatusEntity> statusList;
private List<StationObjModel> barcodeOriginList;
@@ -138,6 +165,7 @@
statusEntity.setPalletHeight(palletHeight);//楂樹綆淇″彿
statusEntity.setError(0);//榛樿鏃犳姤璀�
+ statusEntity.setErrorMsg("");
statusEntity.setTaskWriteIdx((int) siemensNet.getByteTransform().TransInt16(result.Content, i * 10 + 8));//浠诲姟鍙啓鍖�
fillTaskBufferStatus(taskBufferRaw, i, statusEntity);
@@ -171,7 +199,7 @@
}
}
- // 鎶ヨ淇℃伅
+ // 鏉$爜绔欐姤璀︿俊鎭�
OperateResultExOne<byte[]> result4 = siemensNet.Read("DB103.2", (short) (barcodeOriginList.size() * 2));
if (result4.IsSuccess) {
for (int i = 0; i < barcodeOriginList.size(); i++) {
@@ -209,12 +237,22 @@
sb.append("鎵爜寮傚父;");
}
- if(sb.length() > 0) {
- barcodeEntity.setError(1);
- }else {
- barcodeEntity.setError(0);
- }
- barcodeEntity.setErrorMsg(sb.toString());
+ applyAlarmMessage(barcodeEntity, sb.toString());
+ }
+ }
+
+ // 杈撻�佺珯鐐归�氱敤鎶ヨ淇℃伅
+ OperateResultExOne<byte[]> result5 = siemensNet.Read("DB25.0", (short) (statusList.size() * 4));
+ if (result5.IsSuccess) {
+ for (int i = 0; i < statusList.size(); i++) {
+ ZyStationStatusEntity statusEntity = statusList.get(i); // 绔欑偣缂栧彿
+ boolean[] status1 = siemensNet.getByteTransform().TransBool(result5.Content, i * 4, 1);
+ boolean[] status2 = siemensNet.getByteTransform().TransBool(result5.Content, i * 4 + 1, 1);
+ boolean[] status3 = siemensNet.getByteTransform().TransBool(result5.Content, i * 4 + 2, 1);
+ boolean[] status4 = siemensNet.getByteTransform().TransBool(result5.Content, i * 4 + 3, 1);
+
+ String alarmMsg = buildConveyorCommonAlarmMessage(status1, status2, status3, status4);
+ applyAlarmMessage(statusEntity, mergeAlarmMessages(statusEntity.getErrorMsg(), alarmMsg));
}
}
@@ -418,4 +456,51 @@
return -1;
}
+ static String buildConveyorCommonAlarmMessage(boolean[] status1, boolean[] status2, boolean[] status3, boolean[] status4) {
+ StringBuilder sb = new StringBuilder();
+ appendConveyorCommonAlarmMessages(sb, status1, 0);
+ appendConveyorCommonAlarmMessages(sb, status2, 8);
+ appendConveyorCommonAlarmMessages(sb, status3, 16);
+ appendConveyorCommonAlarmMessages(sb, status4, 24);
+ return sb.toString();
+ }
+
+ static String mergeAlarmMessages(String currentMsg, String appendMsg) {
+ String current = currentMsg == null ? "" : currentMsg;
+ String append = appendMsg == null ? "" : appendMsg;
+ if (append.isEmpty()) {
+ return current;
+ }
+ if (current.isEmpty()) {
+ return append;
+ }
+ if (!current.endsWith(";")) {
+ current += ";";
+ }
+ return current + append;
+ }
+
+ private static void appendConveyorCommonAlarmMessages(StringBuilder sb, boolean[] status, int startIdx) {
+ if (status == null) {
+ return;
+ }
+ int limit = Math.min(status.length, 8);
+ for (int i = 0; i < limit; i++) {
+ int alarmIdx = startIdx + i;
+ if (!status[i] || alarmIdx >= CONVEYOR_COMMON_ALARM_MESSAGES.length) {
+ continue;
+ }
+ sb.append(CONVEYOR_COMMON_ALARM_MESSAGES[alarmIdx]).append(";");
+ }
+ }
+
+ private static void applyAlarmMessage(ZyStationStatusEntity statusEntity, String alarmMsg) {
+ if (statusEntity == null) {
+ return;
+ }
+ String message = alarmMsg == null ? "" : alarmMsg;
+ statusEntity.setError(message.isEmpty() ? 0 : 1);
+ statusEntity.setErrorMsg(message);
+ }
+
}
--
Gitblit v1.9.1