From c42a7c76e24940db9e81307dc67104d9068c3119 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期二, 07 四月 2026 15:04:21 +0800
Subject: [PATCH] 1
---
zy-acs-charge/src/main/java/com/zy/acs/charge/impl/AiPowerChargeServiceImpl.java | 88 +++++++++++++++++++++++++------------------
1 files changed, 51 insertions(+), 37 deletions(-)
diff --git a/zy-acs-charge/src/main/java/com/zy/acs/charge/impl/AiPowerChargeServiceImpl.java b/zy-acs-charge/src/main/java/com/zy/acs/charge/impl/AiPowerChargeServiceImpl.java
index 1dfa120..7c6c445 100644
--- a/zy-acs-charge/src/main/java/com/zy/acs/charge/impl/AiPowerChargeServiceImpl.java
+++ b/zy-acs-charge/src/main/java/com/zy/acs/charge/impl/AiPowerChargeServiceImpl.java
@@ -1,17 +1,15 @@
package com.zy.acs.charge.impl;
-import com.github.xingshuangs.iot.protocol.modbus.service.ModbusTcp;
+import com.github.xingshuangs.iot.protocol.modbus.service.ModbusRtuOverTcp;
import com.zy.acs.charge.ChargeCoreService;
import com.zy.acs.charge.constant.AiPowerChargerCoilEnum;
import com.zy.acs.charge.constant.AiPowerChargerRegisterEnum;
import com.zy.acs.charge.model.ChargerStatus;
import com.zy.acs.common.utils.ByteUtils;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
-import javax.annotation.PostConstruct;
import java.util.List;
/**
@@ -22,30 +20,46 @@
@Slf4j
public class AiPowerChargeServiceImpl implements ChargeCoreService {
-
-
-
-
@Override
- public boolean startCharging(ModbusTcp modbusTcp) {
+ public boolean startCharging(ModbusRtuOverTcp client) {
// AGV杞︽姤鍛婂埌浣� -> true
- modbusTcp.writeCoil(AiPowerChargerCoilEnum.AGV_REPORTED_IN_POSITION.getAddr(), true);
+ client.writeCoil(AiPowerChargerCoilEnum.AGV_REPORTED_IN_POSITION.getAddr(), true);
return true;
}
@Override
- public boolean stopCharging(ModbusTcp modbusTcp) {
- modbusTcp.writeCoil(AiPowerChargerCoilEnum.AGV_REPORTED_IN_POSITION.getAddr(), false);
+ public boolean stopCharging(ModbusRtuOverTcp client) {
+ client.writeCoil(AiPowerChargerCoilEnum.AGV_REPORTED_IN_POSITION.getAddr(), false);
return true;
}
@Override
- public ChargerStatus getStatus(ModbusTcp modbusTcp) {
+ public boolean checkForwardRelayOnline(ModbusRtuOverTcp client) {
+ return client.readBoolean(AiPowerChargerCoilEnum.FORWARD_RELAY_ONLINE.getAddr(), 1);
+ }
+
+ @Override
+ public boolean checkBackwardRelayOffline(ModbusRtuOverTcp client) {
+ return client.readBoolean(AiPowerChargerCoilEnum.BACKWARD_RELAY_OFFLINE.getAddr(), 1);
+ }
+
+ @Override
+ public double getVoltage(ModbusRtuOverTcp client) {
+ return client.readInt16(AiPowerChargerRegisterEnum.CHARGE_VOLTAGE.getAddr(), 1) * AiPowerChargerRegisterEnum.CHARGE_CURRENT.getRaw();
+ }
+
+ @Override
+ public double getCurrent(ModbusRtuOverTcp client) {
+ return client.readInt16(AiPowerChargerRegisterEnum.CHARGE_CURRENT.getAddr(), 1) * AiPowerChargerRegisterEnum.CHARGE_CURRENT.getRaw();
+ }
+
+ @Override
+ public ChargerStatus getStatus(ModbusRtuOverTcp client) {
ChargerStatus status = new ChargerStatus();
// ---------- 鎵归噺璇诲彇绾垮湀锛堝湴鍧�100~115鍏�16涓級 ----------
- List<Boolean> coils = modbusTcp.readCoil(100, 16);
+ List<Boolean> coils = client.readCoil(100, 16);
status.setWorking(coils.get(0)); // 鍦板潃100
status.setOverheat(coils.get(0)); // 101
status.setFault(coils.get(0)); // 102
@@ -64,24 +78,24 @@
status.setCommBmsSuccess(!coils.get(15)); // 115
// ---------- 鎵归噺璇诲彇淇濇寔瀵勫瓨鍣紙鍦板潃100~116鍏�17涓級 ----------
- byte[] bytes = modbusTcp.readHoldRegister(100, 16);
- status.setVoltage(ByteUtils.getInt(bytes,0) * AiPowerChargerRegisterEnum.CHARGE_VOLTAGE.getRaw());
- status.setCurrent(ByteUtils.getInt(bytes,0) * AiPowerChargerRegisterEnum.CHARGE_CURRENT.getRaw());
- status.setChargingTime(ByteUtils.getInt(bytes,0));
- status.setCapacity(ByteUtils.getInt(bytes,0) * AiPowerChargerRegisterEnum.CHARGE_CAPACITY.getRaw());
- status.setEnergy(ByteUtils.getInt(bytes,0) * AiPowerChargerRegisterEnum.CHARGE_ENERGY.getRaw());
- status.setCellMaxVoltage(ByteUtils.getInt(bytes,0));
- status.setCellMinVoltage(ByteUtils.getInt(bytes,0));
- status.setPackVoltage(ByteUtils.getInt(bytes,0) * AiPowerChargerRegisterEnum.BMS_PACK_VOLTAGE.getRaw());
- status.setVoltageDemand(ByteUtils.getInt(bytes,0) * AiPowerChargerRegisterEnum.BMS_VOLTAGE_DEMAND.getRaw());
- status.setCurrentDemand(ByteUtils.getInt(bytes,0) * AiPowerChargerRegisterEnum.BMS_CURRENT_DEMAND.getRaw());
- status.setTemperature(ByteUtils.getInt(bytes,0));
- status.setSoc(ByteUtils.getInt(bytes,0) * AiPowerChargerRegisterEnum.BMS_SOC.getRaw());
- status.setEndFlag(ByteUtils.getInt(bytes,0));
- status.setChargerId(ByteUtils.getInt(bytes,0));
- status.setFaultCode(ByteUtils.getInt(bytes,0));
- status.setChargeMode(ByteUtils.getInt(bytes,0));
- status.setScheduleFlag(ByteUtils.getInt(bytes,0));
+ byte[] bytes = client.readHoldRegister(100, 16);
+ status.setVoltage(ByteUtils.getInt(bytes, 0) * AiPowerChargerRegisterEnum.CHARGE_VOLTAGE.getRaw());
+ status.setCurrent(ByteUtils.getInt(bytes, 0) * AiPowerChargerRegisterEnum.CHARGE_CURRENT.getRaw());
+ status.setChargingTime(ByteUtils.getInt(bytes, 0));
+ status.setCapacity(ByteUtils.getInt(bytes, 0) * AiPowerChargerRegisterEnum.CHARGE_CAPACITY.getRaw());
+ status.setEnergy(ByteUtils.getInt(bytes, 0) * AiPowerChargerRegisterEnum.CHARGE_ENERGY.getRaw());
+ status.setCellMaxVoltage(ByteUtils.getInt(bytes, 0));
+ status.setCellMinVoltage(ByteUtils.getInt(bytes, 0));
+ status.setPackVoltage(ByteUtils.getInt(bytes, 0) * AiPowerChargerRegisterEnum.BMS_PACK_VOLTAGE.getRaw());
+ status.setVoltageDemand(ByteUtils.getInt(bytes, 0) * AiPowerChargerRegisterEnum.BMS_VOLTAGE_DEMAND.getRaw());
+ status.setCurrentDemand(ByteUtils.getInt(bytes, 0) * AiPowerChargerRegisterEnum.BMS_CURRENT_DEMAND.getRaw());
+ status.setTemperature(ByteUtils.getInt(bytes, 0));
+ status.setSoc(ByteUtils.getInt(bytes, 0) * AiPowerChargerRegisterEnum.BMS_SOC.getRaw());
+ status.setEndFlag(ByteUtils.getInt(bytes, 0));
+ status.setChargerId(ByteUtils.getInt(bytes, 0));
+ status.setFaultCode(ByteUtils.getInt(bytes, 0));
+ status.setChargeMode(ByteUtils.getInt(bytes, 0));
+ status.setScheduleFlag(ByteUtils.getInt(bytes, 0));
return status;
}
@@ -89,22 +103,22 @@
// 娓呴櫎鏁呴殰
@Override
- public boolean clearFault(ModbusTcp modbusTcp) {
- modbusTcp.writeInt16(AiPowerChargerRegisterEnum.SCHEDULE_FLAG.getAddr(), (short) 1);
+ public boolean clearFault(ModbusRtuOverTcp client) {
+ client.writeInt16(AiPowerChargerRegisterEnum.SCHEDULE_FLAG.getAddr(), (short) 1);
return true;
}
// 瀹屾垚閫�鍥炲懡浠�
@Override
- public boolean finishRetract(ModbusTcp modbusTcp) {
- modbusTcp.writeInt16(AiPowerChargerRegisterEnum.SCHEDULE_FLAG.getAddr(), (short) 2);
+ public boolean finishRetract(ModbusRtuOverTcp client) {
+ client.writeInt16(AiPowerChargerRegisterEnum.SCHEDULE_FLAG.getAddr(), (short) 2);
return true;
}
// 鎭㈠寰呮満鐘舵��
@Override
- public boolean restoreStandby(ModbusTcp modbusTcp) {
- modbusTcp.writeInt16(AiPowerChargerRegisterEnum.SCHEDULE_FLAG.getAddr(), (short) 3);
+ public boolean restoreStandby(ModbusRtuOverTcp client) {
+ client.writeInt16(AiPowerChargerRegisterEnum.SCHEDULE_FLAG.getAddr(), (short) 3);
return true;
}
}
--
Gitblit v1.9.1