From b0a96a43d99eb5baf708c4fa0d0482696d7b0823 Mon Sep 17 00:00:00 2001
From: Administrator <zc857179121@qq.com>
Date: 星期一, 13 四月 2026 19:55:26 +0800
Subject: [PATCH] 1
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/ChargeService.java | 2
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/model/SafeSignal.java | 6 ++
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/service/Snap7Service.java | 41 ++++++++++++--------
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/ClearSingleOperationHandler.java | 8 ++--
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/SendTaskOperationHandler.java | 4 +-
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/SiteController.java | 3 -
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/OutOperationHandler.java | 6 +--
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/AppleLocOperationHandler.java | 2
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/StartUpOperationHandler.java | 2
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/thread/SiemensDevpThread.java | 19 +++++++--
10 files changed, 57 insertions(+), 36 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/ChargeService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/ChargeService.java
index 707c4f5..2a24f93 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/ChargeService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/ChargeService.java
@@ -34,7 +34,7 @@
List<FuncSta> list = funcStaService.list(new LambdaQueryWrapper<FuncSta>()
.eq(FuncSta::getType, FuncStaType.CHARGE.toString()));
for (FuncSta funcSta : list) {
- if (Cools.isEmpty(funcSta.getProtocol()) && funcSta.getProtocol().equalsIgnoreCase(ProtocolType.MODBUS.toString())) {
+ if (!Cools.isEmpty(funcSta.getProtocol()) && funcSta.getProtocol().equalsIgnoreCase(ProtocolType.MODBUS.toString())) {
if (!Cools.isEmpty(funcSta.getIp()) && !Cools.isEmpty(funcSta.getPort()))
add(funcSta);
}
diff --git a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/SiteController.java b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/SiteController.java
index b7cd673..d55b003 100644
--- a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/SiteController.java
+++ b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/SiteController.java
@@ -126,8 +126,7 @@
@ManagerAuth(memo = "淇敼绔欑偣鏁版嵁")
public R siteDetlUpdate(@RequestParam Integer siteId,
@RequestParam Integer workNo,
- @RequestParam Integer staNo,
- @RequestParam String pakMk) {
+ @RequestParam Integer staNo) {
for (DevpSlave devp : slaveProperties.getDevp()) {
Map<Integer, StaProtocol> station = stationService.getStationMap(devp.getId());
for (Map.Entry<Integer, StaProtocol> entry : station.entrySet()) {
diff --git a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/model/SafeSignal.java b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/model/SafeSignal.java
index db95fcf..2012ef6 100644
--- a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/model/SafeSignal.java
+++ b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/model/SafeSignal.java
@@ -9,10 +9,14 @@
private Integer index;
+ private short value;
+
private Boolean flag;
- public SafeSignal(Integer index, Boolean flag) {
+
+ public SafeSignal(Integer index,Short value, Boolean flag) {
this.index = index;
+ this.value =value;
this.flag = flag;
}
}
diff --git a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/AppleLocOperationHandler.java b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/AppleLocOperationHandler.java
index 6fafd4f..1e9198d 100644
--- a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/AppleLocOperationHandler.java
+++ b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/AppleLocOperationHandler.java
@@ -78,7 +78,7 @@
staProtocol = staProtocol.clone();
}
// 鍒ゆ柇鏄惁婊¤冻鏉′欢
- if (staProtocol.isInEnable()) {
+ if (staProtocol.getWorkNo() == 0) {
continue;
}
if (!staProtocol.isLoading()) {
diff --git a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/ClearSingleOperationHandler.java b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/ClearSingleOperationHandler.java
index 960e0af..bfa7433 100644
--- a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/ClearSingleOperationHandler.java
+++ b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/ClearSingleOperationHandler.java
@@ -5,6 +5,7 @@
import com.zy.acs.common.utils.RedisSupport;
import com.zy.acs.conveyor.core.constant.RedisConveyorConstant;
import com.zy.acs.conveyor.core.enums.ConveyorStateType;
+import com.zy.acs.conveyor.core.model.SafeSignal;
import com.zy.acs.conveyor.core.model.StaProtocol;
import com.zy.acs.conveyor.core.operation.OperationHandler;
import com.zy.acs.conveyor.core.properties.CtuOperationConfig;
@@ -71,7 +72,7 @@
News.error("{}锛氱珯鐐癸細{}锛岄潪鑷姩", config.getMark(), staProtocol.getSiteId());
continue;
}
- if (staProtocol.getWorkNo() > 0) {
+ if (staProtocol.getWorkNo() > 0 && !staProtocol.isLoading()) {
Job job = jobService.getJobByJobNo(staProtocol.getWorkNo());
if (job == null) {
News.error("{}锛氱珯鐐癸細{}锛屾壘涓嶅埌浠诲姟", config.getMark(), staProtocol.getSiteId());
@@ -85,9 +86,8 @@
continue;
}
//String s = ctuMainService.checkStationStatus(takeSta.getStaNo());
- staProtocol.setWorkNo(0);
- staProtocol.setStaNo(0);
- redis.push(RedisConveyorConstant.CONVEYOR_TASK_FLAG, staProtocol);
+ staProtocol.setSafeSignal(new SafeSignal( devp.getPutSta().indexOf(takeSta) ,(short)1,false));
+
job.setJobSts(ConveyorStateType.CLEARSIGNAL.getStatus());
if (!jobService.updateById(job)){
diff --git a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/OutOperationHandler.java b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/OutOperationHandler.java
index 58cffdc..1e3e4cf 100644
--- a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/OutOperationHandler.java
+++ b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/OutOperationHandler.java
@@ -79,8 +79,8 @@
if (staProtocol.getWorkNo() == 0 && staProtocol.isLoading()) {
String seqNum = ctuMainService.checkStationStatus(putSta.getStaNo());
if (seqNum != null) {
- staProtocol.setSafeSignal(new SafeSignal( devp.getPutSta().indexOf(putSta) ,true));
- redis.push(RedisConveyorConstant.CONVEYOR_SAFE_FLAG,staProtocol );
+ staProtocol.setSafeSignal(new SafeSignal( devp.getPutSta().indexOf(putSta) ,(short)1,true));
+ //redis.push(RedisConveyorConstant.CONVEYOR_SAFE_FLAG,staProtocol );
Job job = jobService.getJobByTaskNo(seqNum);
if (job != null) {
@@ -102,8 +102,6 @@
} else {
News.error("{},绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 璋冪敤RCS妫�楠屾湭閫氳繃,绔欑偣锛歿}", config.getMark(), staProtocol.getSiteId());
}
- } else {
- News.error("{},绔欑偣锛歿},寮傚父鐘舵�侊紝璇疯ˉ鍏�", config.getMark(), staProtocol.getSiteId());
}
}
}
diff --git a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/SendTaskOperationHandler.java b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/SendTaskOperationHandler.java
index 7a2e31d..6532e8a 100644
--- a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/SendTaskOperationHandler.java
+++ b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/SendTaskOperationHandler.java
@@ -85,8 +85,8 @@
News.error("{}锛氱珯鐐癸細{}锛岄潪鑷姩", config.getMark(), staProtocol.getSiteId());
continue;
}
- if (staProtocol.isInEnable()) {
- News.error("{},绔欑偣锛歿},娌℃湁鍙叆淇″彿", config.getMark(), staProtocol.getSiteId());
+ if (!staProtocol.isInEnable()) {
+ //News.error("{},绔欑偣锛歿},娌℃湁鍙叆淇″彿", config.getMark(), staProtocol.getSiteId());
continue;
}
Job jobByJobNo = jobService.getJobByJobNo(staProtocol.getWorkNo());
diff --git a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/StartUpOperationHandler.java b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/StartUpOperationHandler.java
index e4ff50b..ce57209 100644
--- a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/StartUpOperationHandler.java
+++ b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/operation/handler/StartUpOperationHandler.java
@@ -65,7 +65,7 @@
// 鍒ゆ柇鏄惁婊¤冻鏉′欢
if (!staProtocol.isStartup() || !staProtocol.isAutoing() || !staProtocol.isLoading()) {
if (!staProtocol.isStartup()) {
- News.error("{}锛氱珯鐐癸細{}锛屾湭鍚姩鍏ュ簱", config.getMark(), staProtocol.getSiteId());
+ //News.error("{}锛氱珯鐐癸細{}锛屾湭鍚姩鍏ュ簱", config.getMark(), staProtocol.getSiteId());
continue;
}
if (!staProtocol.isAutoing()) {
diff --git a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/service/Snap7Service.java b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/service/Snap7Service.java
index 1db417c..563287d 100644
--- a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/service/Snap7Service.java
+++ b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/service/Snap7Service.java
@@ -63,36 +63,45 @@
}
SafeSignal safeSignal = staProtocol.getSafeSignal();
- int baseOffset = SafeSignalField.SAFE_SIGNAL_FROM_CONVEYOR.getOffset() + safeSignal.getIndex() * SafeSignalField.SAFE_SIGNAL_FROM_CONVEYOR.getByteLength();
- String workNoAddr = TaskField.TASK_NUMBER.getAddressPattern() + PlcConstant.ADDRESS_CONCATENATION
- + (baseOffset + TaskField.TASK_NUMBER.getOffset());
- String destStaAddr = TaskField.DEST_STATION.getAddressPattern() + PlcConstant.ADDRESS_CONCATENATION
- + (baseOffset + TaskField.DEST_STATION.getOffset());
+ int baseOffset = 0;
+ short[] array = new short[6];
+ array[0] = (short) 1;
+ array[1] = (short) 0;
+ array[2] = (short) 0;
+ array[5] = (short) 0;
+ if (safeSignal.getFlag()){
+ array[3] = (short) 0;
+ array[4] =safeSignal.getValue();
+ baseOffset = SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getOffset() + safeSignal.getIndex() * SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getByteLength();
+ }else {
+ array[3] = safeSignal.getValue();
+ array[4] = (short) 0;
+ baseOffset = SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getOffset() +2 + safeSignal.getIndex() * SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getByteLength();
+ }
+ String flagAddr = TaskField.TASK_NUMBER.getAddressPattern() + PlcConstant.ADDRESS_CONCATENATION
+ + baseOffset;
// 浠诲姟涓嬪彂閲嶈瘯鏈哄埗
int writeCount = 0;
boolean success = false;
while (writeCount < WRITE_RETRY_MAX) {
- OperateResult writeResult = siemensS7Net.Write(workNoAddr, staProtocol.getWorkNo());
- Thread.sleep(WRITE_RETRY_INTERVAL_MS);
+ OperateResult writeResult = siemensS7Net.Write(flagAddr, array);
- OperateResult writeResult1 = siemensS7Net.Write(destStaAddr, staProtocol.getStaNo().shortValue());
-
- if (writeResult.IsSuccess && writeResult1.IsSuccess) {
- log.info("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛 [id:{}] [siteId:{}] [workNo:{}] [destSta:{}] [retry:{}]",
+ if (writeResult.IsSuccess) {
+ log.info("鍐欏叆瀹夊叏淇″彿杈撻�佺嚎鍛戒护鎴愬姛 [id:{}] [siteId:{}] [workNo:{}] [destSta:{}] [retry:{}]",
staProtocol.getPlcId(), staProtocol.getSiteId(), staProtocol.getWorkNo(),
staProtocol.getStaNo(), writeCount);
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}",
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ畨鍏ㄤ俊鍙疯緭閫佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}",
staProtocol.getPlcId(), JSON.toJSON(staProtocol)));
success = true;
break;
}
writeCount++;
- log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触 [id:{}] [siteId:{}] [retry:{}] [workErr:{}] [destErr:{}]",
+ log.error("鍐欏叆瀹夊叏淇″彿杈撻�佺嚎鍛戒护澶辫触 [id:{}] [siteId:{}] [retry:{}] [workErr:{}] ",
staProtocol.getPlcId(), staProtocol.getSiteId(), writeCount,
- writeResult.Message, writeResult1.Message);
+ writeResult.Message);
if (writeCount < WRITE_RETRY_MAX) {
Thread.sleep(WRITE_RETRY_INTERVAL_MS);
@@ -100,10 +109,10 @@
}
if (!success) {
- String errorMsg = MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}",
+ String errorMsg = MessageFormat.format("銆恵0}銆戝啓鍏ュ畨鍏ㄤ俊鍙疯緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}",
staProtocol.getPlcId(), JSON.toJSON(staProtocol));
OutputQueue.DEVP.offer(errorMsg);
- News.error("SiemensDevp - 4 - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}",
+ News.error("SiemensDevp - 4 - 鍐欏叆瀹夊叏淇″彿杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}",
staProtocol.getPlcId(), JSON.toJSON(staProtocol));
log.error(errorMsg);
}
diff --git a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/thread/SiemensDevpThread.java b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/thread/SiemensDevpThread.java
index 14cba8a..8c3e641 100644
--- a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/thread/SiemensDevpThread.java
+++ b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/thread/SiemensDevpThread.java
@@ -3,10 +3,9 @@
import HslCommunication.Core.Types.OperateResultExOne;
import HslCommunication.Profinet.Siemens.SiemensS7Net;
import com.zy.acs.common.utils.News;
-import com.zy.acs.conveyor.core.constant.DeviceField;
-import com.zy.acs.conveyor.core.constant.PlcAlarmDefinition;
-import com.zy.acs.conveyor.core.constant.SafeSignalField;
-import com.zy.acs.conveyor.core.constant.StationStatusField;
+import com.zy.acs.common.utils.RedisSupport;
+import com.zy.acs.conveyor.core.constant.*;
+import com.zy.acs.conveyor.core.model.SafeSignal;
import com.zy.acs.conveyor.core.model.StaProtocol;
import com.zy.acs.conveyor.core.properties.DevpSlave;
import com.zy.acs.conveyor.core.service.DevpS7Service;
@@ -37,6 +36,9 @@
private SiemensS7Net siemensS7Net;
private Map<Integer, StaProtocol> station;
+
+ private final RedisSupport redis = RedisSupport.defaultRedisSupport;
+
private static final int WRITE_RETRY_MAX = 5;
@@ -369,6 +371,15 @@
staProtocolTake.setAllowPut(status2[2]);
staProtocolTake.setInComplete(status2[3]);
staProtocolTake.setOutComplete(status2[4]);
+ //
+ if (status[3]){
+ redis.push(RedisConveyorConstant.CONVEYOR_SAFE_FLAG, new SafeSignal(i,(short)0,true));
+ }
+ if (status2[4]){
+ redis.push(RedisConveyorConstant.CONVEYOR_SAFE_FLAG, new SafeSignal(i, (short) 0,false));
+
+ }
+
}
}
--
Gitblit v1.9.1