From 5a10e832b6b63a10ff7479789577a4100a440d5b Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期二, 28 四月 2026 15:31:17 +0800
Subject: [PATCH] 充电逻辑
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java | 33 ++++++++++++++++++++++-----------
1 files changed, 22 insertions(+), 11 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java
index d727e99..c6da001 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java
@@ -1,7 +1,7 @@
package com.zy.acs.manager.core.scheduler;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.github.xingshuangs.iot.protocol.modbus.service.ModbusRtuOverTcp;
+import com.ghgande.j2mod.modbus.facade.ModbusTCPMaster;
import com.zy.acs.charge.ChargeCoreService;
import com.zy.acs.common.constant.RedisConstant;
import com.zy.acs.common.enums.AgvStatusType;
@@ -250,6 +250,8 @@
/**
* 璋冨害瀵规帴鍏呯數妗�
+ * 鐘舵��1锛氬紑濮嬪厖鐢�
+ * 鐘舵��2锛氬厖鐢典腑
*/
@Scheduled(cron = "0/5 * * * * ? ")
private synchronized void startCharge() {
@@ -260,23 +262,32 @@
continue;
}
AgvDetail agvDetail = agvDetailService.selectByAgvNo(key);
+ if (agvDetail == null){
+ log.error("{} 鍙峰緟鍏呯數灏忚溅涓嶅瓨鍦�", key);
+ continue;
+ }
if (agvDetail.getCode() == null) {
+ log.error("{} 鍙峰緟鍏呯數灏忚溅鏃犲湴鍧�鐮�", key);
continue;
}
FuncSta funcSta = funcStaService.getByCodeAndType(agvDetail.getCode(), FuncStaType.CHARGE.toString());
- ModbusRtuOverTcp modbusTcp = chargeService.get(funcSta.getUuid());
- if (null == agvDetail || null == agvDetail.getSoc() || null == agvDetail.getAgvStatus() || funcSta == null || null == modbusTcp) {
+ ModbusTCPMaster modbusTCPMaster = chargeService.get(funcSta.getUuid());
+ if (null == agvDetail || null == agvDetail.getSoc() || null == agvDetail.getAgvStatus() || funcSta == null || null == modbusTCPMaster) {
continue;
+ }
+ if (chargeCoreService.getChargeMode(modbusTCPMaster) != 0) {
+ log.info("{} 璇ュ厖鐢垫満涓嶆槸鑷姩鍏呯數妯″紡", funcSta.getName());
+ continue;
}
switch (status) {
case 1:
// 鍚庨��淇″彿娑堝け锛岃鏄庨┈杈炬鍦ㄥ墠杩�
- if (chargeCoreService.checkBackwardRelayOffline(modbusTcp)) {
- chargeCoreService.startCharging(modbusTcp);
+ if (chargeCoreService.checkBackwardRelayOffline(modbusTCPMaster)) {
+ chargeCoreService.startCharging(modbusTCPMaster);
}
- if (chargeCoreService.checkForwardRelayOnline(modbusTcp)) {
- double current = chargeCoreService.getCurrent(modbusTcp);
- double voltage = chargeCoreService.getVoltage(modbusTcp);
+ if (chargeCoreService.checkForwardRelayOnline(modbusTCPMaster)) {
+ double current = chargeCoreService.getCurrent(modbusTCPMaster);
+ double voltage = chargeCoreService.getVoltage(modbusTCPMaster);
if (current > 0 && voltage > 0) {
redis.setMap(RedisConstant.AGV_CHARGE_FLAG, key, 2);
log.info("charge complete");
@@ -290,10 +301,10 @@
AgvModel agvModel = agvModelService.getByAgvId(agvDetail.getAgvId());
if (agvDetail.getSoc() >= agvModel.getQuaBattery()) {
// 鍓嶈繘淇″彿瀛樺湪锛岃鏄庢満姊拌噦鏈几鍥�
- if (chargeCoreService.checkForwardRelayOnline(modbusTcp)) {
- chargeCoreService.stopCharging(modbusTcp);
+ if (chargeCoreService.checkForwardRelayOnline(modbusTCPMaster)) {
+ chargeCoreService.stopCharging(modbusTCPMaster);
}
- if (chargeCoreService.checkBackwardRelayOffline(modbusTcp)) {
+ if (chargeCoreService.checkBackwardRelayOffline(modbusTCPMaster)) {
redis.deleteMap(RedisConstant.AGV_CHARGE_FLAG, key);
log.info("charge over");
}
--
Gitblit v1.9.1