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_ST_Data.java | 61 ++++++++++++++++++++++++++++++ 1 files changed, 60 insertions(+), 1 deletions(-) diff --git a/Central_Monitor/src/com/data/Central_ST_Data.java b/Central_Monitor/src/com/data/Central_ST_Data.java index e8be985..d9d58f5 100644 --- a/Central_Monitor/src/com/data/Central_ST_Data.java +++ b/Central_Monitor/src/com/data/Central_ST_Data.java @@ -2,10 +2,17 @@ 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_ST_Data { private int dev_id; //'设备id', private Date record_time; //'更新时间', + private int switch_close_1st_2500A; //'1号2500A进线屏开关合闸状态', private int switch_open_1st_2500A; //'1号2500A进线屏开关分闸状态', private int switch_fault_1st_2500A; //'1号2500A进线屏开关故障状态', @@ -26,6 +33,59 @@ private float curr_b; //'B排电流', private float vol_b; //'B排电压', 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.createInputLocator(4,master)); //'2号2500A进线屏开关合闸状态', + batch.addLocator(4,MyModbusUtils.createInputLocator(5,master)); //'2号2500A进线屏开关分闸状态', + batch.addLocator(5,MyModbusUtils.createInputLocator(6,master)); //'2号2500A进线屏开关故障状态', + batch.addLocator(6,MyModbusUtils.createInputLocator(7,master)); //'母联屏合闸状态', + batch.addLocator(7,MyModbusUtils.createInputLocator(8, master)); //'母联屏分闸状态', + batch.addLocator(8,MyModbusUtils.createInputLocator(9, master)); //'母联屏开关故障', + batch.addLocator(9,MyModbusUtils.createInputLocator(10,master)); //'1号2500A负载屏开关合闸状态', + batch.addLocator(10,MyModbusUtils.createInputLocator(11,master)); //'1号2500A负载屏开关分闸状态', + batch.addLocator(11,MyModbusUtils.createInputLocator(12,master)); //'1号2500A负载屏开关故障状态', + batch.addLocator(12,MyModbusUtils.createInputLocator(13,master)); //'2号2500A负载屏开关合闸状态', + batch.addLocator(13,MyModbusUtils.createInputLocator(14,master)); //'2号2500A负载屏开关分闸状态', + batch.addLocator(14,MyModbusUtils.createInputLocator(15,master)); //'2号2500A负载屏开关故障状态', + + + batch.addLocator(15,MyModbusUtils.createBaseLocator(1,DataType.TWO_BYTE_INT_SIGNED,master)); //'A排电流', + batch.addLocator(16,MyModbusUtils.createBaseLocator(2,DataType.TWO_BYTE_INT_SIGNED,master)); //'A排电压', + batch.addLocator(17,MyModbusUtils.createBaseLocator(3,DataType.TWO_BYTE_INT_SIGNED,master)); //'B排电流', + batch.addLocator(18,MyModbusUtils.createBaseLocator(4,DataType.TWO_BYTE_INT_SIGNED,master)); //'B排电压', + + return batch; + } + + public void putBatchResult(BatchResults<Integer> res) { + if(null != res) { + switch_close_1st_2500A = (int) res.getValue(0); //'1号2500A进线屏开关合闸状态', + switch_open_1st_2500A = (int) res.getValue(1); //'1号2500A进线屏开关分闸状态', + switch_fault_1st_2500A = (int) res.getValue(2); //'1号2500A进线屏开关故障状态', + switch_close_2st_2500A = (int) res.getValue(3); //'2号2500A进线屏开关合闸状态', + switch_open_2st_2500A = (int) res.getValue(4); //'2号2500A进线屏开关分闸状态', + switch_fault_2st_2500A = (int) res.getValue(5); //'2号2500A进线屏开关故障状态', + switch_close_bus_screen = (int) res.getValue(6); //'母联屏合闸状态', + switch_open_bus_screen = (int) res.getValue(7); //'母联屏分闸状态', + switch_fault_bus_screen = (int) res.getValue(8); //'母联屏开关故障', + switch_close_1st_2500A_load = (int) res.getValue(9); //'1号2500A负载屏开关合闸状态', + switch_open_1st_2500A_load = (int) res.getValue(10); //'1号2500A负载屏开关分闸状态', + switch_fault_1st_2500A_load = (int) res.getValue(11); //'1号2500A负载屏开关故障状态', + switch_close_2st_2500A_load = (int) res.getValue(12); //'2号2500A负载屏开关合闸状态', + switch_open_2st_2500A_load = (int) res.getValue(13); //'2号2500A负载屏开关分闸状态', + switch_fault_2st_2500A_load = (int) res.getValue(14); //'2号2500A负载屏开关故障状态', + curr_a = (float)res.getValue(15); //'A排电流', + vol_a = (float)res.getValue(16); //'A排电压', + curr_b = (float)res.getValue(17); //'B排电流', + vol_b = (float)res.getValue(18); //'B排电压', + } + + } + public Central_ST_Data() { @@ -183,5 +243,4 @@ + ", switch_fault_2st_2500A_load=" + switch_fault_2st_2500A_load + ", curr_a=" + curr_a + ", vol_a=" + vol_a + ", curr_b=" + curr_b + ", vol_b=" + vol_b + ", note=" + note + "]"; } - } -- Gitblit v1.9.1