From 013fa08f64639a4a722dbb709a746a4561a02964 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期日, 08 六月 2025 14:45:33 +0800
Subject: [PATCH] feat(service): 添加压缩空气和水表数据模拟器

---
 src/main/java/com/zhitan/service/impl/WaterMeterSimulator.java    |   83 ++++++++++++++++
 src/main/java/com/zhitan/service/impl/CompressedAirSimulator.java |   81 ++++++++++++++++
 src/main/java/com/zhitan/service/impl/OpcServiceImpl.java         |   29 ++++-
 src/main/resources/application-prod.yml                           |   44 ++------
 src/main/java/com/zhitan/service/impl/DataServiceImpl.java        |   29 +++++
 5 files changed, 227 insertions(+), 39 deletions(-)

diff --git a/src/main/java/com/zhitan/service/impl/CompressedAirSimulator.java b/src/main/java/com/zhitan/service/impl/CompressedAirSimulator.java
new file mode 100644
index 0000000..2c150b5
--- /dev/null
+++ b/src/main/java/com/zhitan/service/impl/CompressedAirSimulator.java
@@ -0,0 +1,81 @@
+package com.zhitan.service.impl;
+
+import com.influxdb.client.domain.WritePrecision;
+import com.influxdb.client.write.Point;
+import com.zhitan.config.influxdb.InfluxdbConfig;
+import com.zhitan.influxdb.InfluxdbRepository;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Service;
+
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.Random;
+
+@Slf4j
+@Service
+public class CompressedAirSimulator {
+    private final String TAG = "tag";
+    private final String FIELD_VALUE = "value";
+    private final String TAGNAME = "yasuokongqi01_StTotal";
+    private final InfluxdbRepository repository;
+    private final InfluxdbConfig influxdbConfig;
+    private double lastAirTotal = 0;
+    private final Random random = new Random();
+
+    @Autowired
+    public CompressedAirSimulator(InfluxdbRepository repository, InfluxdbConfig influxdbConfig) {
+        this.repository = repository;
+        this.influxdbConfig = influxdbConfig;
+        loadLastAirData();
+    }
+
+    private void loadLastAirData() {
+        double lastValue = repository.getLastPoint(influxdbConfig.getMeasurement(), TAG, TAGNAME);
+        if (lastValue > 0) {
+            log.info("鏌ヨ鍑烘渶鍚庝竴娆″啓鍏nfluxdb鐨勫帇缂╃┖姘旀暟鎹�:{}", lastValue);
+            lastAirTotal = lastValue;
+        }
+    }
+
+    @Scheduled(fixedRate = 60000) // 姣忓垎閽熸墽琛屼竴娆�
+    public void simulateAirUsage() {
+        LocalDateTime now = LocalDateTime.now();
+        double airUsage = calculateAirUsage(now);
+        lastAirTotal += airUsage;
+
+        Point point = Point
+                .measurement(influxdbConfig.getMeasurement())
+                .addTag(TAG, TAGNAME)
+                .addField(FIELD_VALUE, lastAirTotal)
+                .time(Instant.now(), WritePrecision.S);
+
+        repository.writePoint(point);
+        log.info("鍐欏叆鍘嬬缉绌烘皵琛ㄦ暟鎹�: {}", lastAirTotal);
+    }
+
+    private double calculateAirUsage(LocalDateTime time) {
+        int hour = time.getHour();
+        boolean isWeekend = time.getDayOfWeek().getValue() > 5;
+        
+        // 鍩虹鐢ㄦ皵閲�
+        double baseUsage = 0.1;
+        
+        // 宸ヤ綔鏃堕棿(8-20鐐�)鐢ㄦ皵閲忓鍔�
+        if (hour >= 8 && hour < 20) {
+            baseUsage += 0.3;
+            
+            // 宸ヤ綔鏃ョ敤姘旈噺鏇村ぇ
+            if (!isWeekend) {
+                baseUsage += 0.2;
+            }
+        }
+        
+        // 娣诲姞闅忔満娉㈠姩
+        baseUsage += random.nextDouble() * 0.8;
+        
+        return baseUsage;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/zhitan/service/impl/DataServiceImpl.java b/src/main/java/com/zhitan/service/impl/DataServiceImpl.java
index 18d8376..e977412 100644
--- a/src/main/java/com/zhitan/service/impl/DataServiceImpl.java
+++ b/src/main/java/com/zhitan/service/impl/DataServiceImpl.java
@@ -129,6 +129,35 @@
     @Override
     public void writeTimeSeriesData(@NotNull PowerEntity powerEntity) {
         List<IndexTemplate> templates = getIndexTemplate();
+        // 鍒ゆ柇鎬绘湁鍔熸槸鍚︿负绌猴紝濡傛灉涓虹┖鍒ゆ柇姝e悜鏈夊姛鍜屽弽鍚戞湁鍔熸槸鍚︿负绌猴紝濡傛灉鍚庝袱涓换鎰忎竴涓笉涓虹┖锛屽垯浠庢椂搴忔暟鎹簱涓幏鍙栦负绌虹殑閭d竴涓紝鐒跺悗灏嗘�绘湁鍔熻兘鐢佃兘璧嬪�间负姝e悜鏈夊姛鑳界數鑳藉噺鍘诲弽鍚戞湁鍔熻兘鐢佃兘
+        if (powerEntity.getEps() == null) {
+            if (powerEntity.getEpsp() != null && powerEntity.getEpsn() != null) {
+                powerEntity.setEps(powerEntity.getEpsp() - powerEntity.getEpsn());
+            } else if (powerEntity.getEpsp() != null) {
+                double lastValue = repository.getLastPoint(influxdbConfig.getMeasurement(),
+                        TAG, powerEntity.getSn() + "_" + "Exp");
+                powerEntity.setEps(powerEntity.getEpsp() - lastValue);
+
+            } else if (powerEntity.getEpsn() != null) {
+                double lastValue = repository.getLastPoint(influxdbConfig.getMeasurement(),
+                        TAG, powerEntity.getSn() + "_" + "ActiveZT");
+                powerEntity.setEps(lastValue - powerEntity.getEpsn());
+            }
+        }
+        // 鍒ゆ柇鎬绘棤鍔熸槸鍚︿负绌猴紝濡傛灉涓虹┖鍒ゆ柇姝e悜鏃犲姛鍜屽弽鍚戞棤鍔熸槸鍚︿负绌猴紝濡傛灉鍚庝袱涓换鎰忎竴涓笉涓虹┖锛屽垯浠庢椂搴忔暟鎹簱涓幏鍙栦负绌虹殑閭d竴涓紝鐒跺悗灏嗘�绘棤鍔熺數鑳借祴鍊间负姝e悜鏃犲姛鐢佃兘鍜屽弽鍚戞棤鍔熺數鑳界殑缁濆鍊间箣鍜�
+        if (powerEntity.getEqs() == null) {
+            if (powerEntity.getEqsp() != null && powerEntity.getEqsn() != null) {
+                powerEntity.setEqs(Math.abs(powerEntity.getEqsp()) + Math.abs(powerEntity.getEqsn()));
+            } else if (powerEntity.getEqsp() != null) {
+                double lastValue = repository.getLastPoint(influxdbConfig.getMeasurement(),
+                        TAG, powerEntity.getSn() + "_" + "ExpZN");
+                powerEntity.setEqs(Math.abs(lastValue) + Math.abs(powerEntity.getEqsp()));
+            } else if (powerEntity.getEqsn() != null) {
+                double lastValue = repository.getLastPoint(influxdbConfig.getMeasurement(),
+                        TAG, powerEntity.getSn() + "_" + "ActiveZN");
+                powerEntity.setEqs(Math.abs(lastValue) + Math.abs(powerEntity.getEqsn()));
+            }
+        }
         // 鑾峰彇绫讳腑鎵�鏈夊0鏄庣殑瀛楁
         Field[] fields = powerEntity.getClass().getDeclaredFields();
         List<Point> points = new ArrayList<>();
diff --git a/src/main/java/com/zhitan/service/impl/OpcServiceImpl.java b/src/main/java/com/zhitan/service/impl/OpcServiceImpl.java
index b456832..e75289f 100644
--- a/src/main/java/com/zhitan/service/impl/OpcServiceImpl.java
+++ b/src/main/java/com/zhitan/service/impl/OpcServiceImpl.java
@@ -366,12 +366,29 @@
             // 1. 鐩存帴閫氳繃InfluxDB瀛樺偍搴撳啓鍏�
             for (OpcData data : dataList) {
                 if (data.getValue() != null) {
-                    Point point = Point
-                            .measurement(influxdbConfig.getMeasurement())
-                            .addTag(TAG, data.getName())
-                            .addField(FIELD_VALUE, data.getValue())
-                            .time(data.getTimestamp(), WritePrecision.NS);
-                    points.add(point);
+                    // 濡傛灉鏄數鍘嬶紝鍥涜矾鍏辩敤锛岄渶瑕佸鐞� 1-1#yijidiankonggui_1_VoltageA
+                    if (data.getName().contains("_Voltage")) {
+                        String prefix = data.getName().split("_")[0];
+                        String suffix = data.getName().split("_")[2];
+                        // 寰幆鍥涙
+                        for (int i = 1; i <= 4; i++) {
+                            String name = prefix + "_" + i + "_" + suffix;
+                            Point point = Point
+                                    .measurement(influxdbConfig.getMeasurement())
+                                    .addTag(TAG, name)
+                                    .addField(FIELD_VALUE, data.getValue())
+                                    .time(data.getTimestamp(), WritePrecision.NS);
+                            points.add(point);
+                        }
+                    } else {
+                        Point point = Point
+                                .measurement(influxdbConfig.getMeasurement())
+                                .addTag(TAG, data.getName())
+                                .addField(FIELD_VALUE, data.getValue())
+                                .time(data.getTimestamp(), WritePrecision.NS);
+                        points.add(point);
+                    }
+
                     log.debug("閲囬泦OPC UA鏁版嵁: {} = {}", data.getName(), data.getValue());
                 } else if (data.getErrorMessage() != null) {
                     log.warn("閲囬泦OPC UA鏁版嵁澶辫触: {} - {}", data.getName(), data.getErrorMessage());
diff --git a/src/main/java/com/zhitan/service/impl/WaterMeterSimulator.java b/src/main/java/com/zhitan/service/impl/WaterMeterSimulator.java
new file mode 100644
index 0000000..a795d59
--- /dev/null
+++ b/src/main/java/com/zhitan/service/impl/WaterMeterSimulator.java
@@ -0,0 +1,83 @@
+package com.zhitan.service.impl;
+
+import com.influxdb.client.domain.WritePrecision;
+import com.influxdb.client.write.Point;
+import com.zhitan.config.influxdb.InfluxdbConfig;
+import com.zhitan.influxdb.InfluxdbRepository;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Service;
+
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.Random;
+
+@Slf4j
+@Service
+public class WaterMeterSimulator {
+    private final String TAG = "tag";
+    private final String FIELD_VALUE = "value";
+    private final String TAGNAME = "shuibiao01_StTotal";
+    private final InfluxdbRepository repository;
+    private final InfluxdbConfig influxdbConfig;
+    private double lastWaterTotal = 0;
+    private final Random random = new Random();
+
+    @Autowired
+    public WaterMeterSimulator(InfluxdbRepository repository, InfluxdbConfig influxdbConfig) {
+        this.repository = repository;
+        this.influxdbConfig = influxdbConfig;
+        // 鍒濆鍖栨椂浠庢椂搴忔暟鎹簱鍔犺浇涓婃鐨勬暟鎹�
+        loadLastWaterData();
+    }
+
+    private void loadLastWaterData() {
+        // 杩欓噷搴旇瀹炵幇浠嶪nfluxDB鏌ヨ鏈�鍚庝竴娆¤褰曠殑閫昏緫
+        double lastValue = repository.getLastPoint(influxdbConfig.getMeasurement(),TAG, TAGNAME);
+        if (lastValue>0) {
+            log.info("鏌ヨ鍑烘渶鍚庝竴娆″啓鍏nfluxdb鐨勬暟鎹�:{}", lastValue);
+            lastWaterTotal = lastValue;
+        }
+    }
+
+    @Scheduled(fixedRate = 60000) // 姣忓垎閽熸墽琛屼竴娆�
+    public void simulateWaterUsage() {
+        LocalDateTime now = LocalDateTime.now();
+        double waterUsage = calculateWaterUsage(now);
+        lastWaterTotal += waterUsage;
+
+        Point point = Point
+                .measurement(influxdbConfig.getMeasurement())
+                .addTag(TAG, TAGNAME)
+                .addField(FIELD_VALUE, lastWaterTotal)
+                .time(Instant.now(), WritePrecision.S);
+
+        repository.writePoint(point);
+        log.info("鍐欏叆姘磋〃鏁版嵁: {}", lastWaterTotal);
+    }
+
+    private double calculateWaterUsage(LocalDateTime time) {
+        int hour = time.getHour();
+        boolean isWeekend = time.getDayOfWeek().getValue() > 5;
+        
+        // 鍩虹鐢ㄦ按閲�
+        double baseUsage = 0.05;
+        
+        // 宸ヤ綔鏃堕棿(8-20鐐�)鐢ㄦ按閲忓鍔�
+        if (hour >= 8 && hour < 20) {
+            baseUsage += 0.15;
+            
+            // 宸ヤ綔鏃ョ敤姘撮噺鏇村ぇ
+            if (!isWeekend) {
+                baseUsage += 0.1;
+            }
+        }
+        
+        // 娣诲姞闅忔満娉㈠姩
+        baseUsage += random.nextDouble() * 0.5;
+        
+        return baseUsage;
+    }
+}
\ No newline at end of file
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 69a92ef..6137809 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -106,9 +106,7 @@
     - "1-1#yijidiankonggui_1_Exp=ns=2;s=modbus.1-1#yijidiankonggui.tag15"
     - "1-1#yijidiankonggui_1_ExpZN=ns=2;s=modbus.1-1#yijidiankonggui.tag17"
     # 灏佺綈闂� CanSeamerRoom
-    - "1-1#yijidiankonggui_2_VoltageA=ns=2;s=modbus.1-1#yijidiankonggui.tag1"
-    - "1-1#yijidiankonggui_2_VoltageB=ns=2;s=modbus.1-1#yijidiankonggui.tag2"
-    - "1-1#yijidiankonggui_2_VoltageC=ns=2;s=modbus.1-1#yijidiankonggui.tag3"
+
     - "1-1#yijidiankonggui_2_CurrentA=ns=2;s=modbus.1-1#yijidiankonggui.tag21"
     - "1-1#yijidiankonggui_2_CurrentB=ns=2;s=modbus.1-1#yijidiankonggui.tag22"
     - "1-1#yijidiankonggui_2_CurrentC=ns=2;s=modbus.1-1#yijidiankonggui.tag23"
@@ -119,9 +117,7 @@
     - "1-1#yijidiankonggui_2_Exp=ns=2;s=modbus.1-1#yijidiankonggui.tag29"
     - "1-1#yijidiankonggui_2_ExpZN=ns=2;s=modbus.1-1#yijidiankonggui.tag31"
     # 鎴愬搧搴� FinishedStore
-    - "1-1#yijidiankonggui_3_VoltageA=ns=2;s=modbus.1-1#yijidiankonggui.tag1"
-    - "1-1#yijidiankonggui_3_VoltageB=ns=2;s=modbus.1-1#yijidiankonggui.tag2"
-    - "1-1#yijidiankonggui_3_VoltageC=ns=2;s=modbus.1-1#yijidiankonggui.tag3"
+
     - "1-1#yijidiankonggui_3_CurrentA=ns=2;s=modbus.1-1#yijidiankonggui.tag35"
     - "1-1#yijidiankonggui_3_CurrentB=ns=2;s=modbus.1-1#yijidiankonggui.tag36"
     - "1-1#yijidiankonggui_3_CurrentC=ns=2;s=modbus.1-1#yijidiankonggui.tag37"
@@ -132,9 +128,7 @@
     - "1-1#yijidiankonggui_3_Exp=ns=2;s=modbus.1-1#yijidiankonggui.tag43"
     - "1-1#yijidiankonggui_3_ExpZN=ns=2;s=modbus.1-1#yijidiankonggui.tag45"
     # 娓呮礂闂� RightWorkshop
-    - "1-1#yijidiankonggui_4_VoltageA=ns=2;s=modbus.1-1#yijidiankonggui.tag1"
-    - "1-1#yijidiankonggui_4_VoltageB=ns=2;s=modbus.1-1#yijidiankonggui.tag2"
-    - "1-1#yijidiankonggui_4_VoltageC=ns=2;s=modbus.1-1#yijidiankonggui.tag3"
+
     - "1-1#yijidiankonggui_4_CurrentA=ns=2;s=modbus.1-1#yijidiankonggui.tag49"
     - "1-1#yijidiankonggui_4_CurrentB=ns=2;s=modbus.1-1#yijidiankonggui.tag50"
     - "1-1#yijidiankonggui_4_CurrentC=ns=2;s=modbus.1-1#yijidiankonggui.tag51"
@@ -158,9 +152,7 @@
     - "1-2#yijidiankonggui_1_Exp=ns=2;s=modbus.1-2#yijidiankonggui.tag15"
     - "1-2#yijidiankonggui_1_ExpZN=ns=2;s=modbus.1-2#yijidiankonggui.tag17"
     # 鍘熸潗鏂欎粨搴� RawMaterialWarehouse
-    - "1-2#yijidiankonggui_2_VoltageA=ns=2;s=modbus.1-2#yijidiankonggui.tag1"
-    - "1-2#yijidiankonggui_2_VoltageB=ns=2;s=modbus.1-2#yijidiankonggui.tag2"
-    - "1-2#yijidiankonggui_2_VoltageC=ns=2;s=modbus.1-2#yijidiankonggui.tag3"
+
     - "1-2#yijidiankonggui_2_CurrentA=ns=2;s=modbus.1-2#yijidiankonggui.tag21"
     - "1-2#yijidiankonggui_2_CurrentB=ns=2;s=modbus.1-2#yijidiankonggui.tag22"
     - "1-2#yijidiankonggui_2_CurrentC=ns=2;s=modbus.1-2#yijidiankonggui.tag23"
@@ -171,9 +163,7 @@
     - "1-2#yijidiankonggui_2_Exp=ns=2;s=modbus.1-2#yijidiankonggui.tag29"
     - "1-2#yijidiankonggui_2_ExpZN=ns=2;s=modbus.1-2#yijidiankonggui.tag31"
     # 鎭掓俯瀹� ThermostaticChamber
-    - "1-2#yijidiankonggui_3_VoltageA=ns=2;s=modbus.1-2#yijidiankonggui.tag1"
-    - "1-2#yijidiankonggui_3_VoltageB=ns=2;s=modbus.1-2#yijidiankonggui.tag2"
-    - "1-2#yijidiankonggui_3_VoltageC=ns=2;s=modbus.1-2#yijidiankonggui.tag3"
+
     - "1-2#yijidiankonggui_3_CurrentA=ns=2;s=modbus.1-2#yijidiankonggui.tag35"
     - "1-2#yijidiankonggui_3_CurrentB=ns=2;s=modbus.1-2#yijidiankonggui.tag36"
     - "1-2#yijidiankonggui_3_CurrentC=ns=2;s=modbus.1-2#yijidiankonggui.tag37"
@@ -184,9 +174,7 @@
     - "1-2#yijidiankonggui_3_Exp=ns=2;s=modbus.1-2#yijidiankonggui.tag43"
     - "1-2#yijidiankonggui_3_ExpZN=ns=2;s=modbus.1-2#yijidiankonggui.tag45"
     # 鍖呰兌闂� PackGlueRoom
-    - "1-2#yijidiankonggui_4_VoltageA=ns=2;s=modbus.1-2#yijidiankonggui.tag1"
-    - "1-2#yijidiankonggui_4_VoltageB=ns=2;s=modbus.1-2#yijidiankonggui.tag2"
-    - "1-2#yijidiankonggui_4_VoltageC=ns=2;s=modbus.1-2#yijidiankonggui.tag3"
+
     - "1-2#yijidiankonggui_4_CurrentA=ns=2;s=modbus.1-2#yijidiankonggui.tag49"
     - "1-2#yijidiankonggui_4_CurrentB=ns=2;s=modbus.1-2#yijidiankonggui.tag50"
     - "1-2#yijidiankonggui_4_CurrentC=ns=2;s=modbus.1-2#yijidiankonggui.tag51"
@@ -210,9 +198,7 @@
     - "2-1#yijidiankonggui_2_Exp=ns=2;s=modbus.2-1#yijidiankonggui.tag29"
     - "2-1#yijidiankonggui_2_ExpZN=ns=2;s=modbus.2-1#yijidiankonggui.tag31"
     # 杞﹂棿鍔炲叕瀹� WorkshopOffice
-    - "2-1#yijidiankonggui_3_VoltageA=ns=2;s=modbus.2-1#yijidiankonggui.tag1"
-    - "2-1#yijidiankonggui_3_VoltageB=ns=2;s=modbus.2-1#yijidiankonggui.tag2"
-    - "2-1#yijidiankonggui_3_VoltageC=ns=2;s=modbus.2-1#yijidiankonggui.tag3"
+
     - "2-1#yijidiankonggui_3_CurrentA=ns=2;s=modbus.2-1#yijidiankonggui.tag35"
     - "2-1#yijidiankonggui_3_CurrentB=ns=2;s=modbus.2-1#yijidiankonggui.tag36"
     - "2-1#yijidiankonggui_3_CurrentC=ns=2;s=modbus.2-1#yijidiankonggui.tag37"
@@ -223,9 +209,7 @@
     - "2-1#yijidiankonggui_3_Exp=ns=2;s=modbus.2-1#yijidiankonggui.tag43"
     - "2-1#yijidiankonggui_3_ExpZN=ns=2;s=modbus.2-1#yijidiankonggui.tag45"
     # 1銆�2妤间笢鍔炲叕瀹� EastOffice
-    - "2-1#yijidiankonggui_4_VoltageA=ns=2;s=modbus.2-1#yijidiankonggui.tag1"
-    - "2-1#yijidiankonggui_4_VoltageB=ns=2;s=modbus.2-1#yijidiankonggui.tag2"
-    - "2-1#yijidiankonggui_4_VoltageC=ns=2;s=modbus.2-1#yijidiankonggui.tag3"
+
     - "2-1#yijidiankonggui_4_CurrentA=ns=2;s=modbus.2-1#yijidiankonggui.tag49"
     - "2-1#yijidiankonggui_4_CurrentB=ns=2;s=modbus.2-1#yijidiankonggui.tag50"
     - "2-1#yijidiankonggui_4_CurrentC=ns=2;s=modbus.2-1#yijidiankonggui.tag51"
@@ -249,9 +233,7 @@
     - "3-1#yijidiankonggui_1_Exp=ns=2;s=modbus.3-1#yijidiankonggui.tag15"
     - "3-1#yijidiankonggui_1_ExpZN=ns=2;s=modbus.3-1#yijidiankonggui.tag17"
     # 杞﹂棿2妤� SecondFloorWorkshop
-    - "3-1#yijidiankonggui_2_VoltageA=ns=2;s=modbus.3-1#yijidiankonggui.tag1"
-    - "3-1#yijidiankonggui_2_VoltageB=ns=2;s=modbus.3-1#yijidiankonggui.tag2"
-    - "3-1#yijidiankonggui_2_VoltageC=ns=2;s=modbus.3-1#yijidiankonggui.tag3"
+
     - "3-1#yijidiankonggui_2_CurrentA=ns=2;s=modbus.3-1#yijidiankonggui.tag21"
     - "3-1#yijidiankonggui_2_CurrentB=ns=2;s=modbus.3-1#yijidiankonggui.tag22"
     - "3-1#yijidiankonggui_2_CurrentC=ns=2;s=modbus.3-1#yijidiankonggui.tag23"
@@ -262,9 +244,7 @@
     - "3-1#yijidiankonggui_2_Exp=ns=2;s=modbus.3-1#yijidiankonggui.tag29"
     - "3-1#yijidiankonggui_2_ExpZN=ns=2;s=modbus.3-1#yijidiankonggui.tag31"
     # 鐢熶骇鍔炲叕瀹� ProductionOffice
-    - "3-1#yijidiankonggui_3_VoltageA=ns=2;s=modbus.3-1#yijidiankonggui.tag1"
-    - "3-1#yijidiankonggui_3_VoltageB=ns=2;s=modbus.3-1#yijidiankonggui.tag2"
-    - "3-1#yijidiankonggui_3_VoltageC=ns=2;s=modbus.3-1#yijidiankonggui.tag3"
+
     - "3-1#yijidiankonggui_3_CurrentA=ns=2;s=modbus.3-1#yijidiankonggui.tag35"
     - "3-1#yijidiankonggui_3_CurrentB=ns=2;s=modbus.3-1#yijidiankonggui.tag36"
     - "3-1#yijidiankonggui_3_CurrentC=ns=2;s=modbus.3-1#yijidiankonggui.tag37"
@@ -275,9 +255,7 @@
     - "3-1#yijidiankonggui_3_Exp=ns=2;s=modbus.3-1#yijidiankonggui.tag43"
     - "3-1#yijidiankonggui_3_ExpZN=ns=2;s=modbus.3-1#yijidiankonggui.tag45"
     # 楂樹綆娓╄瘯楠屽尯 HLTempTest
-    - "3-1#yijidiankonggui_4_VoltageA=ns=2;s=modbus.3-1#yijidiankonggui.tag1"
-    - "3-1#yijidiankonggui_4_VoltageB=ns=2;s=modbus.3-1#yijidiankonggui.tag2"
-    - "3-1#yijidiankonggui_4_VoltageC=ns=2;s=modbus.3-1#yijidiankonggui.tag3"
+
     - "3-1#yijidiankonggui_4_CurrentA=ns=2;s=modbus.3-1#yijidiankonggui.tag49"
     - "3-1#yijidiankonggui_4_CurrentB=ns=2;s=modbus.3-1#yijidiankonggui.tag50"
     - "3-1#yijidiankonggui_4_CurrentC=ns=2;s=modbus.3-1#yijidiankonggui.tag51"

--
Gitblit v1.9.3