左右侧电表及温湿度

master
CZ 1 month ago
parent dedbea8f98
commit 3c070a8074

@ -8,15 +8,15 @@ namespace Entity.Dto.Resp
{
public class HumitureResp
{
public string sn { get; set; }
/// <summary>
/// 湿度
/// </summary>
public short Humidness { get; set; }
public float Humidness { get; set; }
/// <summary>
/// 温度
/// </summary>
public short Temperature { get; set; }
public float Temperature { get; set; }
/// <summary>
/// 设备型号
/// </summary>

@ -0,0 +1,83 @@
using HslCommunication;
using HybirdFrameworkCore.Autofac.Attribute;
using HybirdFrameworkCore.Const;
using HybirdFrameworkDriver.ModbusTcpMaster;
using Service.HelpRight.ElectricMeter;
using Service.Ups.Client;
using Service.Ups.UpsMsg;
namespace Service.Help.ElectricMeter.ElectricClient;
[Scope]
public class ElectricClientLeft:ModbusTcpMaster
{
public ElectricClientLeft()
{
ReadAction = BatchRead;
Ip = "172.0.20.58";
Port = 502;
Duration = 1000;
AutoReConnect = true;
ByteSeq = EndingConst.ByteSeq.BA;
WordSeq= EndingConst.WordSeq.CD;
}
/// <summary>
/// 读取数据
/// 左1充电机电表 60
/// 左2充电机电表 61
/// 左3充电机电表 62
/// 左4充电机电表 63
/// 左5充电机电表 71
/// 左6充电机电表 72
/// 左7充电机电表 73
/// 左8充电机电表 74
/// </summary>
/// <param name="master"></param>
/// <returns></returns>
private bool BatchRead(ModbusTcpMaster master)
{
OperateResult<byte[]> bytes01 = master.Read("s=60;4106", (ushort)10);
OperateResult<byte[]> bytes02 = master.Read("s=61;4106", (ushort)10);
OperateResult<byte[]> bytes03 = master.Read("s=62;4106", (ushort)10);
OperateResult<byte[]> bytes04 = master.Read("s=63;4106", (ushort)10);
OperateResult<byte[]> bytes05 = master.Read("s=71;4106", (ushort)10);
OperateResult<byte[]> bytes06 = master.Read("s=72;4106", (ushort)10);
OperateResult<byte[]> bytes07 = master.Read("s=73;4106", (ushort)10);
OperateResult<byte[]> bytes08 = master.Read("s=74;4106", (ushort)10);
if (bytes01.Content != null)
{
ModbusDecoder.Decode<ElectricMsg>(bytes01.Content, ElectricMgr.ElectricMsg11, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
if (bytes02.Content != null)
{
ModbusDecoder.Decode<ElectricMsg>(bytes02.Content, ElectricMgr.ElectricMsg12, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
if (bytes03.Content != null)
{
ModbusDecoder.Decode<ElectricMsg>(bytes03.Content, ElectricMgr.ElectricMsg13, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
if (bytes04.Content != null)
{
ModbusDecoder.Decode<ElectricMsg>(bytes04.Content, ElectricMgr.ElectricMsg14, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
if (bytes05.Content != null)
{
ModbusDecoder.Decode<ElectricMsg>(bytes05.Content, ElectricMgr.ElectricMsg15, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
if (bytes06.Content != null)
{
ModbusDecoder.Decode<ElectricMsg>(bytes06.Content, ElectricMgr.ElectricMsg16, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
if (bytes07.Content != null)
{
ModbusDecoder.Decode<ElectricMsg>(bytes07.Content, ElectricMgr.ElectricMsg17, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
if (bytes08.Content != null)
{
ModbusDecoder.Decode<ElectricMsg>(bytes08.Content, ElectricMgr.ElectricMsg18, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
return true;
}
}

@ -0,0 +1,83 @@
using HslCommunication;
using HybirdFrameworkCore.Autofac.Attribute;
using HybirdFrameworkCore.Const;
using HybirdFrameworkDriver.ModbusTcpMaster;
using Service.HelpRight.ElectricMeter;
using Service.Ups.Client;
using Service.Ups.UpsMsg;
namespace Service.Help.ElectricMeter.ElectricClient;
[Scope]
public class ElectricClientRight:ModbusTcpMaster
{
public ElectricClientRight()
{
ReadAction = BatchRead;
Ip = "172.0.20.56";
Port = 502;
Duration = 1000;
AutoReConnect = true;
ByteSeq = EndingConst.ByteSeq.BA;
WordSeq= EndingConst.WordSeq.CD;
}
/// <summary>
/// 读取数据
/// 右1充电机电表 69
/// 右2充电机电表 75
/// 右3充电机电表 76
/// 右4充电机电表 77
/// 右5充电机电表 78
/// 右6充电机电表 84
/// 右7充电机电表 85
/// 右8充电机电表 86
/// </summary>
/// <param name="master"></param>
/// <returns></returns>
private bool BatchRead(ModbusTcpMaster master)
{
OperateResult<byte[]> bytes01 = master.Read("s=69;4106", (ushort)10);
OperateResult<byte[]> bytes02 = master.Read("s=75;4106", (ushort)10);
OperateResult<byte[]> bytes03 = master.Read("s=76;4106", (ushort)10);
OperateResult<byte[]> bytes04 = master.Read("s=77;4106", (ushort)10);
OperateResult<byte[]> bytes05 = master.Read("s=78;4106", (ushort)10);
OperateResult<byte[]> bytes06 = master.Read("s=84;4106", (ushort)10);
OperateResult<byte[]> bytes07 = master.Read("s=85;4106", (ushort)10);
OperateResult<byte[]> bytes08 = master.Read("s=86;4106", (ushort)10);
if (bytes01.Content != null)
{
ModbusDecoder.Decode<ElectricMsg>(bytes01.Content, ElectricMgr.ElectricMsg01, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
if (bytes02.Content != null)
{
ModbusDecoder.Decode<ElectricMsg>(bytes02.Content, ElectricMgr.ElectricMsg02, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
if (bytes03.Content != null)
{
ModbusDecoder.Decode<ElectricMsg>(bytes03.Content, ElectricMgr.ElectricMsg03, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
if (bytes04.Content != null)
{
ModbusDecoder.Decode<ElectricMsg>(bytes04.Content, ElectricMgr.ElectricMsg04, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
if (bytes05.Content != null)
{
ModbusDecoder.Decode<ElectricMsg>(bytes05.Content, ElectricMgr.ElectricMsg05, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
if (bytes06.Content != null)
{
ModbusDecoder.Decode<ElectricMsg>(bytes06.Content, ElectricMgr.ElectricMsg06, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
if (bytes07.Content != null)
{
ModbusDecoder.Decode<ElectricMsg>(bytes07.Content, ElectricMgr.ElectricMsg07, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
if (bytes08.Content != null)
{
ModbusDecoder.Decode<ElectricMsg>(bytes08.Content, ElectricMgr.ElectricMsg08, EndingConst.ByteSeq.AB, EndingConst.WordSeq.DC);
}
return true;
}
}

@ -1,6 +1,47 @@
namespace Service.Help.ElectricMeter.ElectricClient;
using Autofac;
using HybirdFrameworkCore.Autofac;
using Service.HelpRight.ElectricMeter;
namespace Service.Help.ElectricMeter.ElectricClient;
public class ElectricMgr
{
public static ElectricClientRight electricClientRight;
public static ElectricClientLeft electricClientLeft;
public static ElectricMsg ElectricMsg01 = new ();
public static ElectricMsg ElectricMsg02 = new ();
public static ElectricMsg ElectricMsg03 = new ();
public static ElectricMsg ElectricMsg04 = new ();
public static ElectricMsg ElectricMsg05 = new ();
public static ElectricMsg ElectricMsg06 = new ();
public static ElectricMsg ElectricMsg07 = new ();
public static ElectricMsg ElectricMsg08 = new ();
public static ElectricMsg ElectricMsg11 = new ();
public static ElectricMsg ElectricMsg12 = new ();
public static ElectricMsg ElectricMsg13 = new ();
public static ElectricMsg ElectricMsg14 = new ();
public static ElectricMsg ElectricMsg15 = new ();
public static ElectricMsg ElectricMsg16 = new ();
public static ElectricMsg ElectricMsg17 = new ();
public static ElectricMsg ElectricMsg18 = new ();
public static void InitRight()
{
if (electricClientRight == null)
{
electricClientRight = AppInfo.Container.Resolve<ElectricClientRight>();
}
Task.Run(() => electricClientRight.Connect());
}
public static void InitLeft()
{
if (electricClientLeft == null)
{
electricClientLeft = AppInfo.Container.Resolve<ElectricClientLeft>();
}
Task.Run(() => electricClientLeft.Connect());
}
}

@ -1,6 +1,15 @@
namespace Service.HelpRight.ElectricMeter;
using HybirdFrameworkDriver.ModbusTcpMaster;
namespace Service.HelpRight.ElectricMeter;
public class ElectricMsg
{
/// <summary>
/// (当前)正向有功总电能低位
/// </summary>
public ModbusProperty<long> PositivePowerLow { get; set; } = new(0x100A);
/// <summary>
/// (当前)正向有功总电能高位
/// </summary>
public ModbusProperty<long> PositivePowerHight { get; set; } = new(0x100B);
}

@ -2,15 +2,15 @@
using HybirdFrameworkCore.Const;
using HybirdFrameworkDriver.ModbusTcpMaster;
namespace Service.Help.ElectricMeter.ElectricClient;
namespace Service.Humiture.Client;
[Scope]
public class ElectricClient:ModbusTcpMaster
public class HumiturePlcClientLeft:ModbusTcpMaster
{
public ElectricClient()
public HumiturePlcClientLeft()
{
ReadAction = BatchRead;
Ip = "";
Ip = "172.0.20.52";
Port = 502;
Duration = 1000;
AutoReConnect = true;
@ -20,6 +20,12 @@ public class ElectricClient:ModbusTcpMaster
private bool BatchRead(ModbusTcpMaster master)
{
var bytes01 = master.BatchReadHolderRegister(0, 32);
if (bytes01 != null)
{
ModbusDecoder.Decode<HumitureMsg>(bytes01, HumiturePlcMgr.HumitureMsg2, EndingConst.ByteSeq.AB,
EndingConst.WordSeq.DC);
}
return true;
}

@ -7,9 +7,9 @@ namespace Service.Humiture.Client;
///
/// </summary>
[Scope]
public class HumiturePlcClient:ModbusTcpMaster
public class HumiturePlcClientRight:ModbusTcpMaster
{
public HumiturePlcClient()
public HumiturePlcClientRight()
{
ReadAction = BatchRead;
Ip = "172.0.20.51";
@ -25,7 +25,7 @@ public class HumiturePlcClient:ModbusTcpMaster
var bytes01 = master.BatchReadHolderRegister(0, 32);
if (bytes01 != null)
{
ModbusDecoder.Decode<HumitureMsg>(bytes01, HumiturePlcMgr.HumitureMsg, EndingConst.ByteSeq.AB,
ModbusDecoder.Decode<HumitureMsg>(bytes01, HumiturePlcMgr.HumitureMsg1, EndingConst.ByteSeq.AB,
EndingConst.WordSeq.DC);
}

@ -5,16 +5,27 @@ namespace Service.Humiture.Client;
public class HumiturePlcMgr
{
public static HumiturePlcClient HumiturePlcClient;
public static HumitureMsg HumitureMsg = new HumitureMsg();
public static HumiturePlcClientRight humiturePlcClientRight;
public static HumiturePlcClientLeft HumiturePlcClientLeft;
public static HumitureMsg HumitureMsg1 = new HumitureMsg();
public static HumitureMsg HumitureMsg2 = new HumitureMsg();
public static void Init()
public static void InitRight()
{
if (HumiturePlcClient == null)
if (humiturePlcClientRight == null)
{
HumiturePlcClient = AppInfo.Container.Resolve<HumiturePlcClient>();
humiturePlcClientRight = AppInfo.Container.Resolve<HumiturePlcClientRight>();
}
Task.Run(() => HumiturePlcClient.Connect());
Task.Run(() => humiturePlcClientRight.Connect());
}
public static void InitLeft()
{
if (HumiturePlcClientLeft == null)
{
HumiturePlcClientLeft = AppInfo.Container.Resolve<HumiturePlcClientLeft>();
}
Task.Run(() => HumiturePlcClientLeft.Connect());
}
}

@ -7,11 +7,11 @@ public class HumitureMsg
/// <summary>
/// 湿度
/// </summary>
public ModbusProperty<short> Humidness { get; set; } = new(0000,offset:0.1);
public ModbusProperty<float> Humidness { get; set; } = new(0000,scale:0.1,round:1);
/// <summary>
/// 温度
/// </summary>
public ModbusProperty<short> Temperature { get; set; } = new(0001,offset:0.1);
public ModbusProperty<float> Temperature { get; set; } = new(0001,scale:0.1,round:1);
public ModbusProperty<short> Reserve02 { get; set; } = new(0x0002);
public ModbusProperty<short> Reserve03 { get; set; } = new(0x0003);
public ModbusProperty<short> Reserve04 { get; set; } = new(0x0004);

@ -30,7 +30,9 @@ public class UpsClient:ModbusTcpMaster
ModbusDecoder.Decode<UpsInfoMsg>(bytes01.Content, UpsMgr.UpsInfoMsg, EndingConst.ByteSeq.AB,
EndingConst.WordSeq.DC);
//TODO::bit报警手动处理
//UpsInfoMsgHandling UpsInfoMsgHandling = new();
//UpsInfoMsgHandling.Reservation05
}

@ -9,6 +9,7 @@ public class UpsMgr
{
public static UpsClient UpsClient;
public static UpsInfoMsg UpsInfoMsg=new ();
//public static UpsInfoMsgHandling UpsInfoMsgHandling=new ();
//TODO::需要提供写入那些数据,一个不是全部写入方法都需要

@ -7,49 +7,53 @@ public class UpsInfoMsgHandling
{
#region 1警告项目
public bool Reservation05 { get; set; } = new(0x0000,start:0,length:1);
public bool Reservation04 { get; set; } = new(0x0000,start:1,length:1);
/// <summary>
/// 0:FALSE/1:TRUE
/// 充电器故障
/// </summary>
public bool Battery { get; set; } = new(0x0000,start:15,length:1);
public bool ChargerFail { get; set; } = new(0x0000,start:2,length:1);
/// <summary>
/// 电池电量过量
/// 过温
/// </summary>
public bool BatteryOverCharge { get; set; } = new(0x0000,start:9,length:1);
public bool OverTemperature{ get; set; } = new(0x0000,start:3,length:1);
/// <summary>
/// Battery低
/// 保留
/// </summary>
public bool BatteryLow { get; set; } = new(0x0000,start:8,length:1);
public bool Reservation03{ get; set; } = new(0x0000,start:4,length:1);
/// <summary>
/// 过载警告
/// EPO活跃
/// </summary>
public bool OverloadWarning { get; set; } = new(0x0000,start:7,length:1);
public bool EPOActive { get; set; } = new(0x0000,start:5,length:1);
/// <summary>
/// 保留
/// </summary>
public bool Reservation02 { get; set; } = new(0x0000,start:6,length:1);
/// <summary>
/// EPO活跃
/// 过载警告
/// </summary>
public bool EPOActive { get; set; } = new(0x0000,start:5,length:1);
public bool Reservation05 { get; set; } = new(0x0000,start:0,length:1);
public bool Reservation04 { get; set; } = new(0x0000,start:1,length:1);
public bool OverloadWarning { get; set; } = new(0x0000,start:7,length:1);
/// <summary>
/// 充电器故障
/// Battery低
/// </summary>
public bool ChargerFail { get; set; } = new(0x0000,start:2,length:1);
public bool BatteryLow { get; set; } = new(0x0000,start:8,length:1);
/// <summary>
/// 过温
/// 电池电量过量
/// </summary>
public bool OverTemperature{ get; set; } = new(0x0000,start:3,length:1);
public bool BatteryOverCharge { get; set; } = new(0x0000,start:9,length:1);
/// <summary>
/// 保留
/// 电池打开0:FALSE/1:TRUE
/// </summary>
public bool Reservation03{ get; set; } = new(0x0000,start:4,length:1);
public bool Battery { get; set; } = new(0x0000,start:15,length:1);
/// <summary>
/// 警告Battery放回
@ -325,344 +329,4 @@ public class UpsInfoMsgHandling
public bool SetingControlParameterDefaultValue2 { get; set; } = new(0x003B,start:15,length:1);
#endregion
#region 7设置参数项
public ModbusProperty<short> VoltageHigh { get; set; } = new(0x0350);
public ModbusProperty<short> VoltageLow { get; set; } = new(0x0351);
#endregion
#region 8设置参数成功或失败
/// <summary>
/// 标志旁路Freq高损点
/// </summary>
public ModbusProperty<short> BypassFreqHigh { get; set; } = new(0x0385,start:11,length:1);
/// <summary>
/// 标志旁路Freq低损耗点
/// </summary>
public ModbusProperty<short> BypassFreqLow { get; set; } = new(0x0385,start:10,length:1);
/// <summary>
/// 标志:旁路电压高损耗点
/// </summary>
public ModbusProperty<short> BypassVoltageHigh { get; set; } = new(0x0385,start:9,length:1);
/// <summary>
/// 标志:旁路电压低损耗点
/// </summary>
public ModbusProperty<short> BypassVoltageLow { get; set; } = new(0x0385,start:8,length:1);
#endregion
#region 9UPS工作状态
/// <summary>
/// Battery电流
/// </summary>
public ModbusProperty<short> BatteryCurrent { get; set; } = new(0x00A9);
/// <summary>
/// 线路电压
/// </summary>
public ModbusProperty<short> LineVoltage { get; set; } = new(0x00AA);
/// <summary>
/// 输入频率
/// </summary>
public ModbusProperty<short> InputFrequency { get; set; } = new(0x00AB);
/// <summary>
/// 输出电压
/// </summary>
public ModbusProperty<short> OutputVoltage { get; set; } = new(0x00AC);
/// <summary>
/// 输出Ut频率交流输出频率
/// </summary>
public ModbusProperty<short> OutputFrequency { get; set; } = new(0x00AD);
/// <summary>
/// 输出电流
/// </summary>
public ModbusProperty<short> OutputCurrent { get; set; } = new(0x00AE);
/// <summary>
/// 输出负载百分比
/// </summary>
public ModbusProperty<short> OutputLoadPercent { get; set; } = new(0x00AF);
/// <summary>
/// P 电池电压
/// </summary>
public ModbusProperty<short> PBatteryVoltage { get; set; } = new(0x00B2);
/// <summary>
/// UPS内部温度
/// </summary>
public ModbusProperty<short> UpsInternalTemperature { get; set; } = new(0x00B4);
/// <summary>
/// Ups状态
/// </summary>
public ModbusProperty<short> UpsStatus { get; set; } = new(0x00B5);
/// <summary>
/// Battery能力
/// </summary>
public ModbusProperty<short> BatteryCapacity { get; set; } = new(0x00BF);
/// <summary>
/// Battery保持时间
/// </summary>
public ModbusProperty<short> BatteryRemainTime { get; set; } = new(0x00C0);
/// <summary>
/// L线1L2电压
/// </summary>
public ModbusProperty<short> LineL1L2Voltage { get; set; } = new(0x00C1);
/// <summary>
/// 字母lIne L2L3电压
/// </summary>
public ModbusProperty<short> LineL2L3Voltage { get; set; } = new(0x00C2);
/// <summary>
/// 字母lIne L3L1电压
/// </summary>
public ModbusProperty<short> LineL3L1Voltage { get; set; } = new(0x00C3);
/// <summary>
/// 线路L1电压
/// </summary>
public ModbusProperty<short> LineL1Voltage { get; set; } = new(0x00C4);
/// <summary>
/// 字母lIne L2电压
/// </summary>
public ModbusProperty<short> LineL2Voltage { get; set; } = new(0x00C5);
/// <summary>
/// 字母lIne L3电压
/// </summary>
public ModbusProperty<short> LineL3Voltage { get; set; } = new(0x00C6);
/// <summary>
/// UPS模式查询
/// </summary>
public ModbusProperty<short> UpsModeInquiry { get; set; } = new(0x00D0);
/// <summary>
/// 输出L1电压
/// </summary>
public ModbusProperty<short> OutputL1Voltage { get; set; } = new(0x00D8);
/// <summary>
/// L1负载电流
/// </summary>
public ModbusProperty<short> L1LoadCurrent { get; set; } = new(0x00DC);
/// <summary>
/// L1负载百分比s
/// </summary>
public ModbusProperty<short> L1LoadPercents { get; set; } = new(0x00DD);
/// <summary>
/// L2负载电流
/// </summary>
public ModbusProperty<short> L2LoadCurrent { get; set; } = new(0x00EF);
/// <summary>
/// L3负载电流
/// </summary>
public ModbusProperty<short> L3LoadCurrent { get; set; } = new(0x00F0);
/// <summary>
/// 输出L2电压
/// </summary>
public ModbusProperty<short> OutputL2Voltage { get; set; } = new(0x00F7);
/// <summary>
/// 输出L3电压
/// </summary>
public ModbusProperty<short> OutputL3Voltage { get; set; } = new(0x00F8);
/// <summary>
/// 输出信息字母l1L2电压
/// </summary>
public ModbusProperty<short> OutputL1L2Voltage { get; set; } = new(0x00F9);
/// <summary>
/// 输出信息字母l2L3电压
/// </summary>
public ModbusProperty<short> OutputL2L3Voltage { get; set; } = new(0x00FA);
/// <summary>
/// 输出信息字母l3L1电压
/// </summary>
public ModbusProperty<short> OutputL3L1Voltage { get; set; } = new(0x00FB);
/// <summary>
/// L2负载百分比
/// </summary>
public ModbusProperty<short> L2LoadPercent { get; set; } = new(0x00FC);
/// <summary>
/// L3负载百分比
/// </summary>
public ModbusProperty<short> L3LoadPercent { get; set; } = new(0x00FD);
/// <summary>
/// 整个负载百分比
/// </summary>
public ModbusProperty<short> WholeLoadPercent { get; set; } = new(0x00FE);
/// <summary>
/// 表观负载功率
/// </summary>
public ModbusProperty<short> ApparentLoadPower { get; set; } = new(0x0127);
#endregion
#region 10UPS电池信息
/// <summary>
///Battery更换日期 单位Battery容量AH SP6KSP10K仅支持 下面的设置
/// </summary>
public ModbusProperty<long> BatteryReplacementDate { get; set; } = new(0x036B);
/// <summary>
/// 7, 9,10,12,17,26,40,65,100 SP1KSP2K仅支持以下设置7 SP3K支持以下设置9
/// </summary>
public ModbusProperty<short> SupportBelowSetting { get; set; } = new(0x036F);
#endregion
#region 11设置UPS电池信息成功或失败
/// <summary>
/// 设置电池更换数据
/// </summary>
public ModbusProperty<short> SetBatteryReplacementData { get; set; } = new(0x0386,start:0,length:1);
/// <summary>
/// 设置单位电池容量AH
/// </summary>
public ModbusProperty<short> SetUnitBatteryCapacity { get; set; } = new(0x0387, start: 15, length: 1);
#endregion
#region 12UPS故障信息
/// <summary>
/// 故障种类
/// </summary>
public ModbusProperty<short> FaultKind { get; set; } = new(0x02A3);
#endregion
#region 13远程关机和测试
/// <summary>
/// 在指定时间内进行测试 分钟ASCII
/// </summary>
public ModbusProperty<short> TestForSpecifiedTime { get; set; } = new(0x03AC);
/// <summary>
/// 关机和恢复M 0.1小时ASCII
/// </summary>
public ModbusProperty<short> ShutdownRestore1 { get; set; } = new(0x03AE);
/// <summary>
/// 在指定时间内测试
/// </summary>
public ModbusProperty<short> TestForSpecifiedTime1 { get; set; } = new(0x03DA, start: 14, length: 1);
/// <summary>
/// 关闭和恢复
/// </summary>
public ModbusProperty<short> ShutdownRestore { get; set; } = new(0x03DA,start:13,length:1);
#endregion
#region 14CPU信息
/// <summary>
/// 主CPU固件版本
/// </summary>
public ModbusProperty<string> MainCpuFirmwareVersion { get; set; } = new(0x03E1,length:10);
#endregion
#region 15UPS型号和评级信息
/// <summary>
/// 制造商ID
/// </summary>
public ModbusProperty<string> ManufacturerID { get; set; } = new(0x03EB,length:7);
/// <summary>
/// Battery件数
/// </summary>
public ModbusProperty<short> BatteryPieceNumber { get; set; } = new(0x03F2);
/// <summary>
/// 输入阶段
/// </summary>
public ModbusProperty<short> InputPhase { get; set; } = new(0x03F4);
/// <summary>
/// 输出阶段
/// </summary>
public ModbusProperty<short> OutputPhase { get; set; } = new(0x03F5);
/// <summary>
/// 标称I/P电压
/// </summary>
public ModbusProperty<short> NominalIPVoltage { get; set; } = new(0x03F6);
/// <summary>
/// 标称O/P电压
/// </summary>
public ModbusProperty<short> NominalOPVoltage { get; set; } = new(0x03F7);
/// <summary>
/// 输出额定VA
/// </summary>
public ModbusProperty<short> OutputRatedVA { get; set; } = new(0x03F9);
/// <summary>
/// 设备型号
/// </summary>
public ModbusProperty<short> DeviceModel { get; set; } = new(0x03FB);
/// <summary>
/// Battery电压
/// </summary>
public ModbusProperty<short> BatteryVoltage { get; set; } = new(0x048A);
/// <summary>
/// 额定输出电流
/// </summary>
public ModbusProperty<short> RatingOutputCurrent { get; set; } = new(0x048B);
/// <summary>
/// 额定输出频率
/// </summary>
public ModbusProperty<short> RatingOutputFrequency { get; set; } = new(0x048C);
#endregion
#region 16读取可配置参数
/// <summary>
/// 声音警报
/// </summary>
public ModbusProperty<short> AudibleAlarm { get; set; } = new(0x04F0);
/// <summary>
/// 关机延迟
/// </summary>
public ModbusProperty<short> ShutdownDelay { get; set; } = new(0x04F1);
/// <summary>
/// 打开延迟
/// </summary>
public ModbusProperty<short> Turn0nDelay { get; set; } = new(0x04F2);
#endregion
#region 17设置可配置参数成功或失败
/// <summary>
/// 旗帜:声音警报
/// </summary>
public ModbusProperty<short> AudibleAlarm1 { get; set; } = new(0x0516,start:15,length:1);
/// <summary>
/// 标志:关机延迟
/// </summary>
public ModbusProperty<short> ShutdownDelay1 { get; set; } = new(0x0516,start:14,length:1);
/// <summary>
/// 标志:打开延迟
/// </summary>
public ModbusProperty<short> TurnOnDelay { get; set; } = new(0x0516,start:13,length:1);
#endregion
#region 18阅读可配置EEPROM Parameters范围
/// <summary>
/// 旁路上部转移的注册地址电压
/// </summary>
public ModbusProperty<short> BypassUpperTransferVoltage { get; set; } = new(0x0538);
/// <summary>
/// 旁路下转移的注册地址电压
/// </summary>
public ModbusProperty<short> BypassLowerTransferVoltage { get; set; } = new(0x0539);
/// <summary>
/// 声音警报的注册地址
/// </summary>
public ModbusProperty<short> RegisterAddressOfAudibleAlarm { get; set; } = new(0x0540);
/// <summary>
/// 关机延迟的注册地址
/// </summary>
public ModbusProperty<short> RegisterAddressOfShutdownDelay { get; set; } = new(0x0541);
/// <summary>
/// 开启延迟的注册地址
/// </summary>
public ModbusProperty<short> RegisterAddressOfTurnOnDelay { get; set; } = new(0x0542);
/// <summary>
/// 参数预订的注册地址
/// </summary>
public ModbusProperty<string> ParameterReservation { get; set; } = new(0x0539,length:25);
/// <summary>
/// 参数缓冲区
/// </summary>
public ModbusProperty<string> ParameterBuffer { get; set; } = new(0x0556,length:80);
#endregion
}*/

@ -1,5 +1,4 @@

using Entity.Dto.Resp;
using Entity.Dto.Resp;
using HybirdFrameworkDriver.Session;
using log4net;
using Microsoft.AspNetCore.Mvc;
@ -24,42 +23,65 @@ public class HumitureController : ControllerBase
{
private static readonly ILog Log = LogManager.GetLogger(typeof(HumitureController));
/// <summary>
/// 获取温湿度
/// </summary>
/// <returns></returns>
[HttpGet("GetHumiture")]
public HumitureResp GetHumiture()
[HttpGet("LstGetHumiture")]
public List<HumitureResp> LstGetHumiture()
{
HumitureResp humitureResp = new HumitureResp();
if (HumiturePlcMgr.HumitureMsg!=null)
List<HumitureResp> lstLstGetHumiture = new();
if (HumiturePlcMgr.HumitureMsg1 != null)
{
humitureResp = new HumitureResp()
HumitureResp humitureResp = new HumitureResp()
{
Humidness = HumiturePlcMgr.HumitureMsg.Humidness.Value,
Temperature = HumiturePlcMgr.HumitureMsg.Temperature.Value,
EquipmentType = HumiturePlcMgr.HumitureMsg.EquipmentType.Value,
VersionNumber = HumiturePlcMgr.HumitureMsg.VersionNumber.Value,
DeviceIdHigh = HumiturePlcMgr.HumitureMsg.DeviceIdHigh.Value,
DeviceIdLower = HumiturePlcMgr.HumitureMsg.DeviceIdLower.Value,
UpperTemperatureAlarm = HumiturePlcMgr.HumitureMsg.UpperTemperatureAlarm.Value,
UpperTemperatureAlarmEnabled = HumiturePlcMgr.HumitureMsg.UpperTemperatureAlarmEnabled.Value,
LowerTemperatureAlarm = HumiturePlcMgr.HumitureMsg.LowerTemperatureAlarm.Value,
LowerTemperatureAlarmEnabled = HumiturePlcMgr.HumitureMsg.LowerTemperatureAlarmEnabled.Value,
HumidityUpperAlarm = HumiturePlcMgr.HumitureMsg.HumidityUpperAlarm.Value,
HumidityUpperAlarmEnabled = HumiturePlcMgr.HumitureMsg.HumidityUpperAlarmEnabled.Value,
HumidityLowerLimitAlarm = HumiturePlcMgr.HumitureMsg.HumidityLowerLimitAlarm.Value,
HumidityLowerLimitAlarmEnabled = HumiturePlcMgr.HumitureMsg.HumidityLowerLimitAlarmEnabled.Value,
TemperatureUpdated = HumiturePlcMgr.HumitureMsg.TemperatureUpdated.Value,
HumidityValueUpdated = HumiturePlcMgr.HumitureMsg.HumidityValueUpdated.Value,
Humidness = HumiturePlcMgr.HumitureMsg1.Humidness.Value,
Temperature = HumiturePlcMgr.HumitureMsg1.Temperature.Value,
EquipmentType = HumiturePlcMgr.HumitureMsg1.EquipmentType.Value,
VersionNumber = HumiturePlcMgr.HumitureMsg1.VersionNumber.Value,
DeviceIdHigh = HumiturePlcMgr.HumitureMsg1.DeviceIdHigh.Value,
DeviceIdLower = HumiturePlcMgr.HumitureMsg1.DeviceIdLower.Value,
UpperTemperatureAlarm = HumiturePlcMgr.HumitureMsg1.UpperTemperatureAlarm.Value,
UpperTemperatureAlarmEnabled = HumiturePlcMgr.HumitureMsg1.UpperTemperatureAlarmEnabled.Value,
LowerTemperatureAlarm = HumiturePlcMgr.HumitureMsg1.LowerTemperatureAlarm.Value,
LowerTemperatureAlarmEnabled = HumiturePlcMgr.HumitureMsg1.LowerTemperatureAlarmEnabled.Value,
HumidityUpperAlarm = HumiturePlcMgr.HumitureMsg1.HumidityUpperAlarm.Value,
HumidityUpperAlarmEnabled = HumiturePlcMgr.HumitureMsg1.HumidityUpperAlarmEnabled.Value,
HumidityLowerLimitAlarm = HumiturePlcMgr.HumitureMsg1.HumidityLowerLimitAlarm.Value,
HumidityLowerLimitAlarmEnabled = HumiturePlcMgr.HumitureMsg1.HumidityLowerLimitAlarmEnabled.Value,
TemperatureUpdated = HumiturePlcMgr.HumitureMsg1.TemperatureUpdated.Value,
HumidityValueUpdated = HumiturePlcMgr.HumitureMsg1.HumidityValueUpdated.Value,
sn = "L",
};
lstLstGetHumiture.Add(humitureResp);
}
if (HumiturePlcMgr.HumitureMsg2 != null)
{
HumitureResp humitureResp = new HumitureResp()
{
Humidness = HumiturePlcMgr.HumitureMsg2.Humidness.Value,
Temperature = HumiturePlcMgr.HumitureMsg2.Temperature.Value,
EquipmentType = HumiturePlcMgr.HumitureMsg2.EquipmentType.Value,
VersionNumber = HumiturePlcMgr.HumitureMsg2.VersionNumber.Value,
DeviceIdHigh = HumiturePlcMgr.HumitureMsg2.DeviceIdHigh.Value,
DeviceIdLower = HumiturePlcMgr.HumitureMsg2.DeviceIdLower.Value,
UpperTemperatureAlarm = HumiturePlcMgr.HumitureMsg2.UpperTemperatureAlarm.Value,
UpperTemperatureAlarmEnabled = HumiturePlcMgr.HumitureMsg2.UpperTemperatureAlarmEnabled.Value,
LowerTemperatureAlarm = HumiturePlcMgr.HumitureMsg2.LowerTemperatureAlarm.Value,
LowerTemperatureAlarmEnabled = HumiturePlcMgr.HumitureMsg2.LowerTemperatureAlarmEnabled.Value,
HumidityUpperAlarm = HumiturePlcMgr.HumitureMsg2.HumidityUpperAlarm.Value,
HumidityUpperAlarmEnabled = HumiturePlcMgr.HumitureMsg2.HumidityUpperAlarmEnabled.Value,
HumidityLowerLimitAlarm = HumiturePlcMgr.HumitureMsg2.HumidityLowerLimitAlarm.Value,
HumidityLowerLimitAlarmEnabled = HumiturePlcMgr.HumitureMsg2.HumidityLowerLimitAlarmEnabled.Value,
TemperatureUpdated = HumiturePlcMgr.HumitureMsg2.TemperatureUpdated.Value,
HumidityValueUpdated = HumiturePlcMgr.HumitureMsg2.HumidityValueUpdated.Value,
sn = "R",
};
lstLstGetHumiture.Add(humitureResp);
}
return humitureResp;
}
return lstLstGetHumiture;
}
}

@ -7,6 +7,7 @@ using HybirdFrameworkCore.Entity;
using HybirdFrameworkCore.Redis;
using log4net;
using Service.Car.Server;
using Service.Help.ElectricMeter.ElectricClient;
using Service.Humiture.Client;
using Service.TBox.Server;
using Service.Ups.Client;
@ -109,9 +110,11 @@ TBoxServerMgr.InitTBoxServer(int.Parse(tBoxListen.GetSection("Port").Value ?? "9
//UPS
UpsMgr.Init();
//温湿度
HumiturePlcMgr.Init();
HumiturePlcMgr.InitRight();
HumiturePlcMgr.InitLeft();
//电表
ElectricMgr.InitRight();
ElectricMgr.InitLeft();
TaskInit.Init();

Loading…
Cancel
Save