From 6b1b6b46fad3c7357706670994e1a23620d6c5c3 Mon Sep 17 00:00:00 2001 From: whyclj <1525436766@qq.com> Date: 星期六, 05 十二月 2020 16:58:49 +0800 Subject: [PATCH] 添加数据读取 --- Central_Monitor/src/com/data/Central_RT_Data.java | 38 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 38 insertions(+), 0 deletions(-) diff --git a/Central_Monitor/src/com/data/Central_RT_Data.java b/Central_Monitor/src/com/data/Central_RT_Data.java index 2745c2c..747139d 100644 --- a/Central_Monitor/src/com/data/Central_RT_Data.java +++ b/Central_Monitor/src/com/data/Central_RT_Data.java @@ -2,17 +2,55 @@ import java.util.Date; +import com.modbus.data.MyModbusMaster; +import com.modbus.data.MyModbusUtils; +import com.serotonin.modbus4j.BatchRead; +import com.serotonin.modbus4j.BatchResults; +import com.serotonin.modbus4j.code.DataType; + public class Central_RT_Data { private int dev_id; // '设备id', private Date record_time; //'更新时间', + private int switch_close; // '开关合闸状态', private int switch_open; // '开关分闸状态', private int switch_fault; // '开关故障状态', private float panel_vol ; // '进线屏电压', private float panel_curr ; // '进线屏电流', + private String note; //'备用', + public BatchRead<Integer> createBatchRead(MyModbusMaster master) { + BatchRead<Integer> batch = new BatchRead<Integer>(); + batch.addLocator(0,MyModbusUtils.createInputLocator(1,master)); //'1号2500A进线屏开关合闸状态', + batch.addLocator(1,MyModbusUtils.createInputLocator(2,master)); //'1号2500A进线屏开关分闸状态' + batch.addLocator(2,MyModbusUtils.createInputLocator(3, master)); //'1号2500A进线屏开关故障状态', + + batch.addLocator(3,MyModbusUtils.createBaseLocator(1,DataType.TWO_BYTE_INT_SIGNED,master)); //'A排电流', + if(10001 == dev_id) { + batch.addLocator(4,MyModbusUtils.createBaseLocator(2,DataType.TWO_BYTE_INT_SIGNED,master)); //'A排电压', + } + + + return batch; + } + + public void putBatchResult(BatchResults<Integer> res) { + if(null != res) { + switch_close = (int)res.getValue(0); // '开关合闸状态', + switch_open = (int)res.getValue(1); // '开关分闸状态', + switch_fault = (int)res.getValue(2); // '开关故障状态', + if(10001 == dev_id) { + panel_vol = (int)res.getValue(3); // '进线屏电压', + panel_curr = (int)res.getValue(4) ; // '进线屏电流', + }else { + panel_curr = (int)res.getValue(3) ; // '进线屏电流', + } + } + } + + public Central_RT_Data() { } -- Gitblit v1.9.1