添加PLC MSG,添加注解,连接读取PLC数据,显示plc数据

master
CZ 7 months ago
parent cc308f360a
commit 8e2218c450

Binary file not shown.

@ -208,6 +208,14 @@
}
}
},
"Microsoft.Extensions.Logging.Abstractions/6.0.0": {
"runtime": {
"lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
}
},
"Microsoft.Extensions.Primitives/7.0.0": {
"dependencies": {
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
@ -347,6 +355,17 @@
}
}
},
"Pipelines.Sockets.Unofficial/2.2.8": {
"dependencies": {
"System.IO.Pipelines": "5.0.1"
},
"runtime": {
"lib/net5.0/Pipelines.Sockets.Unofficial.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "2.2.8.1080"
}
}
},
"SQLitePCLRaw.bundle_e_sqlite3/2.1.4": {
"dependencies": {
"SQLitePCLRaw.lib.e_sqlite3": "2.1.4",
@ -551,6 +570,18 @@
}
}
},
"StackExchange.Redis/2.7.33": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "6.0.0",
"Pipelines.Sockets.Unofficial": "2.2.8"
},
"runtime": {
"lib/net6.0/StackExchange.Redis.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.7.33.41805"
}
}
},
"System.Collections/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0",
@ -703,6 +734,14 @@
"System.Threading.Tasks": "4.3.0"
}
},
"System.IO.Pipelines/5.0.1": {
"runtime": {
"lib/netcoreapp3.0/System.IO.Pipelines.dll": {
"assemblyVersion": "5.0.0.1",
"fileVersion": "5.0.120.57516"
}
}
},
"System.Memory/4.5.3": {},
"System.Reflection/4.3.0": {
"dependencies": {
@ -895,6 +934,7 @@
"Microsoft.Extensions.Configuration.Abstractions": "7.0.0",
"Microsoft.Extensions.Configuration.Json": "7.0.0",
"Newtonsoft.Json": "13.0.3",
"StackExchange.Redis": "2.7.33",
"log4net": "2.0.15"
},
"runtime": {
@ -1022,6 +1062,13 @@
"path": "microsoft.extensions.filesystemglobbing/7.0.0",
"hashPath": "microsoft.extensions.filesystemglobbing.7.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==",
"path": "microsoft.extensions.logging.abstractions/6.0.0",
"hashPath": "microsoft.extensions.logging.abstractions.6.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/7.0.0": {
"type": "package",
"serviceable": true,
@ -1127,6 +1174,13 @@
"path": "oracle.manageddataaccess.core/3.21.100",
"hashPath": "oracle.manageddataaccess.core.3.21.100.nupkg.sha512"
},
"Pipelines.Sockets.Unofficial/2.2.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==",
"path": "pipelines.sockets.unofficial/2.2.8",
"hashPath": "pipelines.sockets.unofficial.2.2.8.nupkg.sha512"
},
"SQLitePCLRaw.bundle_e_sqlite3/2.1.4": {
"type": "package",
"serviceable": true,
@ -1183,6 +1237,13 @@
"path": "sqlsugarcore.kdbndp/7.4.0",
"hashPath": "sqlsugarcore.kdbndp.7.4.0.nupkg.sha512"
},
"StackExchange.Redis/2.7.33": {
"type": "package",
"serviceable": true,
"sha512": "sha512-2kCX5fvhEE824a4Ab5Imyi8DRuGuTxyklXV01kegkRpsWJcPmO6+GAQ+HegKxvXAxlXZ8yaRspvWJ8t3mMClfQ==",
"path": "stackexchange.redis/2.7.33",
"hashPath": "stackexchange.redis.2.7.33.nupkg.sha512"
},
"System.Collections/4.3.0": {
"type": "package",
"serviceable": true,
@ -1260,6 +1321,13 @@
"path": "system.io/4.3.0",
"hashPath": "system.io.4.3.0.nupkg.sha512"
},
"System.IO.Pipelines/5.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-qEePWsaq9LoEEIqhbGe6D5J8c9IqQOUuTzzV6wn1POlfdLkJliZY3OlB0j0f17uMWlqZYjH7txj+2YbyrIA8Yg==",
"path": "system.io.pipelines/5.0.1",
"hashPath": "system.io.pipelines.5.0.1.nupkg.sha512"
},
"System.Memory/4.5.3": {
"type": "package",
"serviceable": true,

@ -0,0 +1,136 @@
using HybirdFrameworkCore.Autofac.Attribute;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HybirdFrameworkServices.Plc
{
/// <summary>
/// 可读可写区
/// </summary>
public class PlcReadAndWritten
{
/// <summary>
/// 写编程使能 写 0x5AA5,打开写使能
/// </summary>
[Property(0, 2, PropertyReadConstant.Byte)]
public ushort ProgrammingEnable { get; set; }
/// <summary>
/// 本机modbus地址
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public ushort Modbus1Addres { get; set; }
/// <summary>
/// 波特率
/// <para>01200</para>
/// <para>12400</para>
/// <para>24800</para>
/// <para>39600</para>
/// <para>419200</para>
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public ushort BaudRate { get; set; }
/// <summary>
/// 校验位
/// <para>0无</para>
/// <para>1奇</para>
/// <para>2偶</para>
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public ushort CheckBit { get; set; }
/// <summary>
/// 秒
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public byte Seconds { get; set; }
/// <summary>
/// 分
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public byte Points { get; set; }
/// <summary>
/// 时
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public byte When { get; set; }
/// <summary>
/// 周
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public byte Weeks { get; set; }
/// <summary>
/// 日
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public byte Day { get; set; }
/// <summary>
/// 月
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public byte Month { get; set; }
/// <summary>
/// 年
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public byte Years { get; set; }
public string time
{
get
{
return Years + "-" +
Month.ToString().PadLeft(2, '0') + "-" +
Day.ToString().PadLeft(2, '0') + " " +
When.ToString().PadLeft(2, '0') + ":" +
Points.ToString().PadLeft(2, '0') + ":" +
Seconds.ToString().PadLeft(2, '0');
}
set
{
}
}
/// <summary>
/// 本机modbus地址
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public ushort Modbus1Addres2 { get; set; }
/// <summary>
/// 保留
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public ushort Reserve { get; set; }
/// <summary>
/// 电压变比
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public ushort VoltageRatio { get; set; }
/// <summary>
/// 电流变比
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public ushort CurrentRatio { get; set; }
/// <summary>
/// 秒脉冲/无功电能选择
/// 0x5A02:秒脉冲输出
/// 其他:无功电能输出)
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public ushort PulsePerSecond { get; set; }
/// <summary>
/// 电流接线反向
/// <para>0x00:不反接(默认值) </para>
/// <para>0x01:反接</para>
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public ushort CurrentReversal { get; set; }
/// <summary>
/// 电表清零
/// 写 0x0000 清零,其他不清
/// </summary>
[Property(2, 2, PropertyReadConstant.Byte)]
public ushort MeterReset { get; set; }
}
}

@ -0,0 +1,364 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HybirdFrameworkServices.Plc
{
/// <summary>
/// 只读数据区
/// </summary>
public class PlcReadonly
{
/// <summary>
/// 组合有功总电能
/// </summary>
public float GroupHaveAll { get; set; }
/// <summary>
/// 组合有功尖电能
/// </summary>
public float GroupHaveTip { get; set; }
/// <summary>
/// 组合有功峰电能
/// </summary>
public float GroupHavePeak { get; set; }
/// <summary>
/// 组合有功平电能
/// </summary>
public float GroupHaveFlat { get; set; }
/// <summary>
/// 组合有功谷电能
/// </summary>
public float GroupHaveValley { get; set; }
/// <summary>
/// 正向有功总电能
/// </summary>
public float ForwardHaveAll { get; set; }
/// <summary>
/// 正向有功尖电能
/// </summary>
public float ForwardHaveTip { get; set; }
/// <summary>
/// 正向有功峰电能
/// </summary>
public float ForwardHavePeak { get; set; }
/// <summary>
/// 正向有功平电能
/// </summary>
public float ForwardHaveFlat { get; set; }
/// <summary>
/// 正向有功谷电能
/// </summary>
public float ForwardHaveValley { get; set; }
/// <summary>
/// 反向有功总电能
/// </summary>
public float ReverseHaveAll { get; set; }
/// <summary>
/// 反向有功尖电能
/// </summary>
public float ReverseHaveTip { get; set; }
/// <summary>
/// 反向有功峰电能
/// </summary>
public float ReverseHavePeak { get; set; }
/// <summary>
/// 反向有功平电能
/// </summary>
public float ReverseHaveFlat { get; set; }
/// <summary>
/// 反向有功谷电能
/// </summary>
public float ReverseHaveValley { get; set; }
/// <summary>
/// 组合无功1总电能
/// </summary>
public float GroupNoAll1 { get; set; }
/// <summary>
/// 组合无功1尖电能
/// </summary>
public float GroupNoTip1 { get; set; }
/// <summary>
/// 组合无功1峰电能
/// </summary>
public float GroupNoPeak1 { get; set; }
/// <summary>
/// 组合无功1平电能
/// </summary>
public float GroupNoFlat1 { get; set; }
/// <summary>
/// 组合无功1谷电能
/// </summary>
public float GroupNoValley1 { get; set; }
/// <summary>
/// 组合无功2总电能
/// </summary>
public float GroupNoAll2 { get; set; }
/// <summary>
/// 组合无功2尖电能
/// </summary>
public float GroupNoTip2 { get; set; }
/// <summary>
/// 组合无功2峰电能
/// </summary>
public float GroupNoPeak2 { get; set; }
/// <summary>
/// 组合无功2平电能
/// </summary>
public float GroupNoFlat2 { get; set; }
/// <summary>
/// 组合无功2谷电能
/// </summary>
public float GroupNoValley2 { get; set; }
/// <summary>
/// 一象限无功总电能
/// </summary>
public float QuadrantNoAll1 { get; set; }
/// <summary>
/// 一象限无功尖电能
/// </summary>
public float QuadrantNoTip1 { get; set; }
/// <summary>
/// 一象限无功峰电能
/// </summary>
public float QuadrantNoPeak1 { get; set; }
/// <summary>
/// 一象限无功平电能
/// </summary>
public float QuadrantNoFlat1 { get; set; }
/// <summary>
/// 一象限无功谷电能
/// </summary>
public float QuadrantNoValley1 { get; set; }
/// <summary>
/// 二象限无功总电能
/// </summary>
public float QuadrantNoAll2 { get; set; }
/// <summary>
/// 二象限无功尖电能
/// </summary>
public float QuadrantNoTip2 { get; set; }
/// <summary>
/// 二象限无功峰电能
/// </summary>
public float QuadrantNoPeak2 { get; set; }
/// <summary>
/// 二象限无功平电能
/// </summary>
public float QuadrantNoFlat2 { get; set; }
/// <summary>
/// 二象限无功谷电能
/// </summary>
public float QuadrantNoValley2 { get; set; }
/// <summary>
/// 三象限无功总电能
/// </summary>
public float QuadrantNoAll3 { get; set; }
/// <summary>
/// 三象限无功尖电能
/// </summary>
public float QuadrantNoTip3 { get; set; }
/// <summary>
/// 三象限无功峰电能
/// </summary>
public float QuadrantNoPeak3 { get; set; }
/// <summary>
/// 三象限无功平电能
/// </summary>
public float QuadrantNoFlat3 { get; set; }
/// <summary>
/// 三象限无功谷电能
/// </summary>
public float QuadrantNoValley3 { get; set; }
/// <summary>
/// 四象限无功总电能
/// </summary>
public float QuadrantNoAll4 { get; set; }
/// <summary>
/// 四象限无功尖电能
/// </summary>
public float QuadrantNoTip4 { get; set; }
/// <summary>
/// 四象限无功峰电能
/// </summary>
public float QuadrantNoPeak4 { get; set; }
/// <summary>
/// 四象限无功平电能
/// </summary>
public float QuadrantNoFlat4 { get; set; }
/// <summary>
/// 四象限无功谷电能
/// </summary>
public float QuadrantNoValley4 { get; set; }
/// <summary>
/// 正向视在总电能
/// </summary>
public float ForwardHaveApparentAll { get; set; }
/// <summary>
/// 正向视在尖电能
/// </summary>
public float ForwardHaveApparentTip { get; set; }
/// <summary>
/// 正向视在峰电能
/// </summary>
public float ForwardHaveApparentPeak { get; set; }
/// <summary>
/// 正向视在平电能
/// </summary>
public float ForwardHaveApparentFlat { get; set; }
/// <summary>
/// 正向视在谷电能
/// </summary>
public float ForwardHaveApparentValley { get; set; }
/// <summary>
/// 反向视在总电能
/// </summary>
public float ReverseHaveApparentAll { get; set; }
/// <summary>
/// 反向视在尖电能
/// </summary>
public float ReverseHaveApparentTip { get; set; }
/// <summary>
/// 反向视在峰电能
/// </summary>
public float ReverseHaveApparentPeak { get; set; }
/// <summary>
/// 反向视在平电能
/// </summary>
public float ReverseHaveApparentFlat { get; set; }
/// <summary>
/// 反向视在谷电能
/// </summary>
public float ReverseHaveApparentValley { get; set; }
/// <summary>
/// A 相电压
/// </summary>
public float PhaseVoltageA { get; set; }
/// <summary>
/// B 相电压
/// </summary>
public float PhaseVoltageB { get; set; }
/// <summary>
/// C 相电压
/// </summary>
public float PhaseVoltageC { get; set; }
/// <summary>
/// A 相电流
/// </summary>
public float PhaseElectricityA { get; set; }
/// <summary>
/// B 相电流
/// </summary>
public float PhaseElectricityB { get; set; }
/// <summary>
/// C 相电流
/// </summary>
public float PhaseElectricityC { get; set; }
/// <summary>
/// 有功总功率
/// </summary>
public float TotalActivePower { get; set; }
/// <summary>
/// A 相有功总功率
/// </summary>
public float TotalActivePowerA { get; set; }
/// <summary>
/// B 相有功总功率
/// </summary>
public float TotalActivePowerB { get; set; }
/// <summary>
/// C 相有功总功率
/// </summary>
public float TotalActivePowerC { get; set; }
/// <summary>
/// 无功总功率
/// </summary>
public float TotalReactivePower { get; set; }
/// <summary>
/// A 相无功总功率
/// </summary>
public float TotalReactivePowerA { get; set; }
/// <summary>
/// B 相无功总功率
/// </summary>
public float TotalReactivePowerB { get; set; }
/// <summary>
/// C 相无功总功率
/// </summary>
public float TotalReactivePowerC { get; set; }
/// <summary>
/// 总视在功率
/// </summary>
public float TotalApparentPower { get; set; }
/// <summary>
/// A 相视在功率
/// </summary>
public float TotalApparentPowerA { get; set; }
/// <summary>
/// B 相视在功率
/// </summary>
public float TotalApparentPowerB { get; set; }
/// <summary>
/// C 相视在功率
/// </summary>
public float TotalApparentPowerC { get; set; }
/// <summary>
/// 总功率因数
/// </summary>
public short OverallPowerFactor { get; set; }
/// <summary>
/// A 相功率因数
/// </summary>
public short OverallPowerFactorA { get; set; }
/// <summary>
/// B 相功率因数
/// </summary>
public short OverallPowerFactorB { get; set; }
/// <summary>
/// C 相功率因数
/// </summary>
public short OverallPowerFactorC { get; set; }
/// <summary>
/// A 相相角
/// </summary>
public ushort PhaseAngleA { get; set; }
/// <summary>
/// B 相相角
/// </summary>
public ushort PhaseAngleB { get; set; }
/// <summary>
/// C 相相角
/// </summary>
public ushort PhaseAngleC { get; set; }
/// <summary>
/// 电网频率
/// </summary>
public ushort LineFrequency { get; set; }
/// <summary>
/// A 相线电压
/// </summary>
public float PhaseLineVoltageA { get; set; }
/// <summary>
/// B 相线电压
/// </summary>
public float PhaseLineVoltageB { get; set; }
/// <summary>
/// C 相线电压
/// </summary>
public float PhaseLineVoltageC { get; set; }
/// <summary>
/// 三相平均线电压
/// </summary>
public float ThreePhaseMeanLineVoltage { get; set; }
/// <summary>
/// 三相平均相电压
/// </summary>
public float ThreePhaseMeanPhaseVoltage { get; set; }
}
}

@ -0,0 +1,238 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HybirdFrameworkServices.Plc
{
/// <summary>
/// 乘变比电能数据区(浮点数)(乘变比)
/// </summary>
public class PlcTurnsRatio
{
/// <summary>
/// 组合有功总电能
/// </summary>
public float GroupHaveAll { get; set; }
/// <summary>
/// 组合有功尖电能
/// </summary>
public float GroupHaveTip { get; set; }
/// <summary>
/// 组合有功峰电能
/// </summary>
public float GroupHavePeak { get; set; }
/// <summary>
/// 组合有功平电能
/// </summary>
public float GroupHaveFlat { get; set; }
/// <summary>
/// 组合有功谷电能
/// </summary>
public float GroupHaveValley { get; set; }
/// <summary>
/// 正向有功总电能
/// </summary>
public float ForwardHaveAll { get; set; }
/// <summary>
/// 正向有功尖电能
/// </summary>
public float ForwardHaveTip { get; set; }
/// <summary>
/// 正向有功峰电能
/// </summary>
public float ForwardHavePeak { get; set; }
/// <summary>
/// 正向有功平电能
/// </summary>
public float ForwardHaveFlat { get; set; }
/// <summary>
/// 正向有功谷电能
/// </summary>
public float ForwardHaveValley { get; set; }
/// <summary>
/// 反向有功总电能
/// </summary>
public float ReverseHaveAll { get; set; }
/// <summary>
/// 反向有功尖电能
/// </summary>
public float ReverseHaveTip { get; set; }
/// <summary>
/// 反向有功峰电能
/// </summary>
public float ReverseHavePeak { get; set; }
/// <summary>
/// 反向有功平电能
/// </summary>
public float ReverseHaveFlat { get; set; }
/// <summary>
/// 反向有功谷电能
/// </summary>
public float ReverseHaveValley { get; set; }
/// <summary>
/// 组合无功1总电能
/// </summary>
public float GroupNoAll1 { get; set; }
/// <summary>
/// 组合无功1尖电能
/// </summary>
public float GroupNoTip1 { get; set; }
/// <summary>
/// 组合无功1峰电能
/// </summary>
public float GroupNoPeak1 { get; set; }
/// <summary>
/// 组合无功1平电能
/// </summary>
public float GroupNoFlat1 { get; set; }
/// <summary>
/// 组合无功1谷电能
/// </summary>
public float GroupNoValley1 { get; set; }
/// <summary>
/// 组合无功2总电能
/// </summary>
public float GroupNoAll2 { get; set; }
/// <summary>
/// 组合无功2尖电能
/// </summary>
public float GroupNoTip2 { get; set; }
/// <summary>
/// 组合无功2峰电能
/// </summary>
public float GroupNoPeak2 { get; set; }
/// <summary>
/// 组合无功2平电能
/// </summary>
public float GroupNoFlat2 { get; set; }
/// <summary>
/// 组合无功2谷电能
/// </summary>
public float GroupNoValley2 { get; set; }
/// <summary>
/// 一象限无功总电能
/// </summary>
public float QuadrantNoAll1 { get; set; }
/// <summary>
/// 一象限无功尖电能
/// </summary>
public float QuadrantNoTip1 { get; set; }
/// <summary>
/// 一象限无功峰电能
/// </summary>
public float QuadrantNoPeak1 { get; set; }
/// <summary>
/// 一象限无功平电能
/// </summary>
public float QuadrantNoFlat1 { get; set; }
/// <summary>
/// 一象限无功谷电能
/// </summary>
public float QuadrantNoValley1 { get; set; }
/// <summary>
/// 二象限无功总电能
/// </summary>
public float QuadrantNoAll2 { get; set; }
/// <summary>
/// 二象限无功尖电能
/// </summary>
public float QuadrantNoTip2 { get; set; }
/// <summary>
/// 二象限无功峰电能
/// </summary>
public float QuadrantNoPeak2 { get; set; }
/// <summary>
/// 二象限无功平电能
/// </summary>
public float QuadrantNoFlat2 { get; set; }
/// <summary>
/// 二象限无功谷电能
/// </summary>
public float QuadrantNoValley2 { get; set; }
/// <summary>
/// 三象限无功总电能
/// </summary>
public float QuadrantNoAll3 { get; set; }
/// <summary>
/// 三象限无功尖电能
/// </summary>
public float QuadrantNoTip3 { get; set; }
/// <summary>
/// 三象限无功峰电能
/// </summary>
public float QuadrantNoPeak3 { get; set; }
/// <summary>
/// 三象限无功平电能
/// </summary>
public float QuadrantNoFlat3 { get; set; }
/// <summary>
/// 三象限无功谷电能
/// </summary>
public float QuadrantNoValley3 { get; set; }
/// <summary>
/// 四象限无功总电能
/// </summary>
public float QuadrantNoAll4 { get; set; }
/// <summary>
/// 四象限无功尖电能
/// </summary>
public float QuadrantNoTip4 { get; set; }
/// <summary>
/// 四象限无功峰电能
/// </summary>
public float QuadrantNoPeak4 { get; set; }
/// <summary>
/// 四象限无功平电能
/// </summary>
public float QuadrantNoFlat4 { get; set; }
/// <summary>
/// 四象限无功谷电能
/// </summary>
public float QuadrantNoValley4 { get; set; }
/// <summary>
/// 正向视在总电能
/// </summary>
public float ForwardHaveApparentAll { get; set; }
/// <summary>
/// 正向视在尖电能
/// </summary>
public float ForwardHaveApparentTip { get; set; }
/// <summary>
/// 正向视在峰电能
/// </summary>
public float ForwardHaveApparentPeak { get; set; }
/// <summary>
/// 正向视在平电能
/// </summary>
public float ForwardHaveApparentFlat { get; set; }
/// <summary>
/// 正向视在谷电能
/// </summary>
public float ForwardHaveApparentValley { get; set; }
/// <summary>
/// 反向视在总电能
/// </summary>
public float ReverseHaveApparentAll { get; set; }
/// <summary>
/// 反向视在尖电能
/// </summary>
public float ReverseHaveApparentTip { get; set; }
/// <summary>
/// 反向视在峰电能
/// </summary>
public float ReverseHaveApparentPeak { get; set; }
/// <summary>
/// 反向视在平电能
/// </summary>
public float ReverseHaveApparentFlat { get; set; }
/// <summary>
/// 反向视在谷电能
/// </summary>
public float ReverseHaveApparentValley { get; set; }
}
}

@ -11,5 +11,7 @@ public partial class Form2 : Form
_server = server;
InitializeComponent();
_server.Start(9000);
new FrmPLCConnect().Show();
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,291 @@
using HslCommunication;
using HslCommunication.Core.Address;
using HslCommunication.ModBus;
using HybirdFrameworkCore.Utils;
using HybirdFrameworkServices.Plc;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Button;
namespace WinFormStarter
{
public partial class FrmPLCConnect : Form
{
#region 连接参数
/// <summary>
/// ModbusTcp客户端
/// </summary>
public static ModbusTcpNet _client = null;
public string _ipaddr
{
get
{
return TxtIp.Text;
}
set { }
}
public int _port
{
get
{
return Convert.ToInt32(TxtPort.Text);
}
set { }
}
public byte _site
{
get
{
return Convert.ToByte(TxtSite.Text);
}
set { }
}
#endregion
PlcReadAndWritten PlcReadAndWritten;
PlcReadonly PlcReadonly;
PlcTurnsRatio PlcTurnsRatio;
public FrmPLCConnect()
{
InitializeComponent();
}
private void BtnConnect_Click(object sender, EventArgs e)
{
//简单判断
if (string.IsNullOrEmpty(_ipaddr))
{
MessageBox.Show("IP地址不能为空");
return;
}
if (string.IsNullOrEmpty(TxtPort.Text))
{
MessageBox.Show("端口号不能为空");
return;
}
if (string.IsNullOrEmpty(TxtSite.Text))
{
MessageBox.Show("站号不能为空");
return;
}
_client = new ModbusTcpNet(_ipaddr, _port, _site);
OperateResult OptRet = _client.ConnectServer();
if (OptRet.IsSuccess)
{
LblConState.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "连接成功";
BtnCollectionAssignment.Enabled = true;
//OperateResult writeResult = _client.Write("x=6;1", "");
}
if (OptRet.IsSuccess)
{
LblConState.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "连接失败";
}
}
private void BtnCollectionAssignment_Click(object sender, EventArgs e)
{
OperateResult<byte[]> read1 = _client.Read("x=3;100", 164);
OperateResult<byte[]> read2 = _client.Read("x=3;39424", 110);
OperateResult<byte[]> read3 = _client.Read("x=3;40960", 18);
PlcReadAndWritten = ModelConvert.Decode<PlcReadAndWritten>(read1.Content);
PlcReadonly = ModelConvert.Decode<PlcReadonly>(read1.Content);
PlcTurnsRatio = ModelConvert.Decode<PlcTurnsRatio>(read1.Content);
textBox1.Text = PlcReadAndWritten.ProgrammingEnable.ToString();
textBox2.Text = PlcReadAndWritten.Modbus1Addres.ToString();
textBox3.Text = PlcReadAndWritten.BaudRate.ToString();
textBox4.Text = PlcReadAndWritten.CheckBit.ToString();
textBox5.Text = PlcReadAndWritten.Seconds.ToString();
textBox6.Text = PlcReadAndWritten.Points.ToString();
textBox7.Text = PlcReadAndWritten.When.ToString();
textBox8.Text = PlcReadAndWritten.Weeks.ToString();
textBox9.Text = PlcReadAndWritten.Day.ToString();
textBox10.Text = PlcReadAndWritten.Month.ToString();
textBox11.Text = PlcReadAndWritten.Years.ToString();
textBox12.Text = PlcReadAndWritten.Modbus1Addres2.ToString();
textBox13.Text = PlcReadAndWritten.Reserve.ToString();
textBox14.Text = PlcReadAndWritten.VoltageRatio.ToString();
textBox17.Text = PlcReadAndWritten.CurrentRatio.ToString();
textBox18.Text = PlcReadAndWritten.PulsePerSecond.ToString();
textBox19.Text = PlcReadAndWritten.CurrentReversal.ToString();
textBox20.Text = PlcReadAndWritten.MeterReset.ToString();
}
bool now;
private void BtnToggle_Click(object sender, EventArgs e)
{
now = !now;
if (now)
{
#region
label31.Text = PlcReadonly.GroupHaveAll.ToString();
label29.Text = PlcReadonly.GroupHaveTip.ToString();
label27.Text = PlcReadonly.GroupHavePeak.ToString();
label25.Text = PlcReadonly.GroupHaveFlat.ToString();
label19.Text = PlcReadonly.GroupHaveValley.ToString();
label40.Text = PlcReadonly.ForwardHaveAll.ToString();
label38.Text = PlcReadonly.ForwardHaveTip.ToString();
label36.Text = PlcReadonly.ForwardHavePeak.ToString();
label34.Text = PlcReadonly.ForwardHaveFlat.ToString();
label32.Text = PlcReadonly.ForwardHaveValley.ToString();
label50.Text = PlcReadonly.ReverseHaveAll.ToString();
label48.Text = PlcReadonly.ReverseHaveTip.ToString();
label46.Text = PlcReadonly.ReverseHavePeak.ToString();
label44.Text = PlcReadonly.ReverseHaveFlat.ToString();
label42.Text = PlcReadonly.ReverseHaveValley.ToString();
label60.Text = PlcReadonly.GroupNoAll1.ToString();
label58.Text = PlcReadonly.GroupNoTip1.ToString();
label56.Text = PlcReadonly.GroupNoPeak1.ToString();
label54.Text = PlcReadonly.GroupNoFlat1.ToString();
label52.Text = PlcReadonly.GroupNoValley1.ToString();
label70.Text = PlcReadonly.GroupNoAll2.ToString();
label68.Text = PlcReadonly.GroupNoTip2.ToString();
label66.Text = PlcReadonly.GroupNoPeak2.ToString();
label64.Text = PlcReadonly.GroupNoFlat2.ToString();
label62.Text = PlcReadonly.GroupNoValley2.ToString();
label80.Text = PlcReadonly.QuadrantNoAll1.ToString();
label78.Text = PlcReadonly.QuadrantNoTip1.ToString();
label76.Text = PlcReadonly.QuadrantNoPeak1.ToString();
label74.Text = PlcReadonly.QuadrantNoFlat1.ToString();
label72.Text = PlcReadonly.QuadrantNoValley1.ToString();
label90.Text = PlcReadonly.QuadrantNoAll2.ToString();
label88.Text = PlcReadonly.QuadrantNoTip2.ToString();
label86.Text = PlcReadonly.QuadrantNoPeak2.ToString();
label84.Text = PlcReadonly.QuadrantNoFlat2.ToString();
label82.Text = PlcReadonly.QuadrantNoValley2.ToString();
label100.Text = PlcReadonly.QuadrantNoAll3.ToString();
label98.Text = PlcReadonly.QuadrantNoTip3.ToString();
label96.Text = PlcReadonly.QuadrantNoPeak3.ToString();
label94.Text = PlcReadonly.QuadrantNoFlat3.ToString();
label92.Text = PlcReadonly.QuadrantNoValley3.ToString();
label110.Text = PlcReadonly.QuadrantNoAll4.ToString();
label108.Text = PlcReadonly.QuadrantNoTip4.ToString();
label106.Text = PlcReadonly.QuadrantNoPeak4.ToString();
label104.Text = PlcReadonly.QuadrantNoFlat4.ToString();
label102.Text = PlcReadonly.QuadrantNoValley4.ToString();
label120.Text = PlcReadonly.ForwardHaveApparentAll.ToString();
label118.Text = PlcReadonly.ForwardHaveApparentTip.ToString();
label116.Text = PlcReadonly.ForwardHaveApparentPeak.ToString();
label114.Text = PlcReadonly.ForwardHaveApparentFlat.ToString();
label112.Text = PlcReadonly.ForwardHaveApparentValley.ToString();
label130.Text = PlcReadonly.ReverseHaveApparentAll.ToString();
label128.Text = PlcReadonly.ReverseHaveApparentTip.ToString();
label126.Text = PlcReadonly.ReverseHaveApparentPeak.ToString();
label124.Text = PlcReadonly.ReverseHaveApparentFlat.ToString();
label122.Text = PlcReadonly.ReverseHaveApparentValley.ToString();
label140.Text = PlcReadonly.PhaseVoltageA.ToString();
label138.Text = PlcReadonly.PhaseVoltageB.ToString();
label136.Text = PlcReadonly.PhaseVoltageC.ToString();
label134.Text = PlcReadonly.PhaseElectricityA.ToString();
label132.Text = PlcReadonly.PhaseElectricityB.ToString();
label172.Text = PlcReadonly.PhaseElectricityC.ToString();
label150.Text = PlcReadonly.TotalActivePower.ToString();
label148.Text = PlcReadonly.TotalActivePowerA.ToString();
label146.Text = PlcReadonly.TotalActivePowerB.ToString();
label144.Text = PlcReadonly.TotalActivePowerC.ToString();
label160.Text = PlcReadonly.TotalReactivePower.ToString();
label158.Text = PlcReadonly.TotalReactivePowerA.ToString();
label156.Text = PlcReadonly.TotalReactivePowerB.ToString();
label144.Text = PlcReadonly.TotalReactivePowerC.ToString();
label170.Text = PlcReadonly.TotalApparentPower.ToString();
label168.Text = PlcReadonly.TotalApparentPowerA.ToString();
label166.Text = PlcReadonly.TotalApparentPowerB.ToString();
label164.Text = PlcReadonly.TotalApparentPowerC.ToString();
label192.Text = PlcReadonly.OverallPowerFactor.ToString();
label190.Text = PlcReadonly.OverallPowerFactorA.ToString();
label188.Text = PlcReadonly.OverallPowerFactorB.ToString();
label184.Text = PlcReadonly.OverallPowerFactorC.ToString();
label174.Text = PlcReadonly.PhaseAngleA.ToString();
label162.Text = PlcReadonly.PhaseAngleB.ToString();
label152.Text = PlcReadonly.PhaseAngleC.ToString();
label142.Text = PlcReadonly.LineFrequency.ToString();
label184.Text = PlcReadonly.PhaseLineVoltageA.ToString();
label182.Text = PlcReadonly.PhaseLineVoltageB.ToString();
label180.Text = PlcReadonly.PhaseLineVoltageC.ToString();
label178.Text = PlcReadonly.ThreePhaseMeanLineVoltage.ToString();
label176.Text = PlcReadonly.ThreePhaseMeanPhaseVoltage.ToString();
#endregion
}
if (now)
{
#region
label31.Text = PlcTurnsRatio.GroupHaveAll.ToString();
label29.Text = PlcTurnsRatio.GroupHaveTip.ToString();
label27.Text = PlcTurnsRatio.GroupHavePeak.ToString();
label25.Text = PlcTurnsRatio.GroupHaveFlat.ToString();
label19.Text = PlcTurnsRatio.GroupHaveValley.ToString();
label40.Text = PlcTurnsRatio.ForwardHaveAll.ToString();
label38.Text = PlcTurnsRatio.ForwardHaveTip.ToString();
label36.Text = PlcTurnsRatio.ForwardHavePeak.ToString();
label34.Text = PlcTurnsRatio.ForwardHaveFlat.ToString();
label32.Text = PlcTurnsRatio.ForwardHaveValley.ToString();
label50.Text = PlcTurnsRatio.ReverseHaveAll.ToString();
label48.Text = PlcTurnsRatio.ReverseHaveTip.ToString();
label46.Text = PlcTurnsRatio.ReverseHavePeak.ToString();
label44.Text = PlcTurnsRatio.ReverseHaveFlat.ToString();
label42.Text = PlcTurnsRatio.ReverseHaveValley.ToString();
label60.Text = PlcTurnsRatio.GroupNoAll1.ToString();
label58.Text = PlcTurnsRatio.GroupNoTip1.ToString();
label56.Text = PlcTurnsRatio.GroupNoPeak1.ToString();
label54.Text = PlcTurnsRatio.GroupNoFlat1.ToString();
label52.Text = PlcTurnsRatio.GroupNoValley1.ToString();
label70.Text = PlcTurnsRatio.GroupNoAll2.ToString();
label68.Text = PlcTurnsRatio.GroupNoTip2.ToString();
label66.Text = PlcTurnsRatio.GroupNoPeak2.ToString();
label64.Text = PlcTurnsRatio.GroupNoFlat2.ToString();
label62.Text = PlcTurnsRatio.GroupNoValley2.ToString();
label80.Text = PlcTurnsRatio.QuadrantNoAll1.ToString();
label78.Text = PlcTurnsRatio.QuadrantNoTip1.ToString();
label76.Text = PlcTurnsRatio.QuadrantNoPeak1.ToString();
label74.Text = PlcTurnsRatio.QuadrantNoFlat1.ToString();
label72.Text = PlcTurnsRatio.QuadrantNoValley1.ToString();
label90.Text = PlcTurnsRatio.QuadrantNoAll2.ToString();
label88.Text = PlcTurnsRatio.QuadrantNoTip2.ToString();
label86.Text = PlcTurnsRatio.QuadrantNoPeak2.ToString();
label84.Text = PlcTurnsRatio.QuadrantNoFlat2.ToString();
label82.Text = PlcTurnsRatio.QuadrantNoValley2.ToString();
label100.Text = PlcTurnsRatio.QuadrantNoAll3.ToString();
label98.Text = PlcTurnsRatio.QuadrantNoTip3.ToString();
label96.Text = PlcTurnsRatio.QuadrantNoPeak3.ToString();
label94.Text = PlcTurnsRatio.QuadrantNoFlat3.ToString();
label92.Text = PlcTurnsRatio.QuadrantNoValley3.ToString();
label110.Text = PlcTurnsRatio.QuadrantNoAll4.ToString();
label108.Text = PlcTurnsRatio.QuadrantNoTip4.ToString();
label106.Text = PlcTurnsRatio.QuadrantNoPeak4.ToString();
label104.Text = PlcTurnsRatio.QuadrantNoFlat4.ToString();
label102.Text = PlcTurnsRatio.QuadrantNoValley4.ToString();
label120.Text = PlcTurnsRatio.ForwardHaveApparentAll.ToString();
label118.Text = PlcTurnsRatio.ForwardHaveApparentTip.ToString();
label116.Text = PlcTurnsRatio.ForwardHaveApparentPeak.ToString();
label114.Text = PlcTurnsRatio.ForwardHaveApparentFlat.ToString();
label112.Text = PlcTurnsRatio.ForwardHaveApparentValley.ToString();
label130.Text = PlcTurnsRatio.ReverseHaveApparentAll.ToString();
label128.Text = PlcTurnsRatio.ReverseHaveApparentTip.ToString();
label126.Text = PlcTurnsRatio.ReverseHaveApparentPeak.ToString();
label124.Text = PlcTurnsRatio.ReverseHaveApparentFlat.ToString();
label122.Text = PlcTurnsRatio.ReverseHaveApparentValley.ToString();
#endregion
}
}
}
}

@ -0,0 +1,60 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

@ -22,6 +22,12 @@
<ProjectReference Include="..\HybirdFrameworkServices\HybirdFrameworkServices.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="HybirdFrameworkServices">
<HintPath>..\HybirdFrameworkServices\bin\Debug\net6.0\HybirdFrameworkServices.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Content Update="log4net.xml">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>

@ -1,5 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
<ItemGroup />
<ItemGroup>
<Compile Update="FrmPLCConnect.cs">
<SubType>Form</SubType>
</Compile>
</ItemGroup>
</Project>

@ -107,6 +107,18 @@
}
}
},
"HslCommunication/11.1.1": {
"dependencies": {
"Newtonsoft.Json": "13.0.3",
"System.IO.Ports": "4.7.0"
},
"runtime": {
"lib/netstandard2.1/HslCommunication.dll": {
"assemblyVersion": "11.1.1.0",
"fileVersion": "11.1.1.0"
}
}
},
"log4net/2.0.15": {
"dependencies": {
"System.Configuration.ConfigurationManager": "6.0.0"
@ -302,7 +314,7 @@
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "5.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0",
"Microsoft.Extensions.Logging.Abstractions": "5.0.0",
"Microsoft.Extensions.Logging.Abstractions": "6.0.0",
"Microsoft.Extensions.Options": "5.0.0"
},
"runtime": {
@ -312,11 +324,11 @@
}
}
},
"Microsoft.Extensions.Logging.Abstractions/5.0.0": {
"Microsoft.Extensions.Logging.Abstractions/6.0.0": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
"lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
}
},
@ -491,6 +503,61 @@
}
}
},
"Pipelines.Sockets.Unofficial/2.2.8": {
"dependencies": {
"System.IO.Pipelines": "5.0.1"
},
"runtime": {
"lib/net5.0/Pipelines.Sockets.Unofficial.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "2.2.8.1080"
}
}
},
"runtime.linux-arm.runtime.native.System.IO.Ports/4.7.0": {
"runtimeTargets": {
"runtimes/linux-arm/native/System.IO.Ports.Native.so": {
"rid": "linux-arm",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"runtime.linux-arm64.runtime.native.System.IO.Ports/4.7.0": {
"runtimeTargets": {
"runtimes/linux-arm64/native/System.IO.Ports.Native.so": {
"rid": "linux-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"runtime.linux-x64.runtime.native.System.IO.Ports/4.7.0": {
"runtimeTargets": {
"runtimes/linux-x64/native/System.IO.Ports.Native.so": {
"rid": "linux-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"runtime.native.System.IO.Ports/4.7.0": {
"dependencies": {
"runtime.linux-arm.runtime.native.System.IO.Ports": "4.7.0",
"runtime.linux-arm64.runtime.native.System.IO.Ports": "4.7.0",
"runtime.linux-x64.runtime.native.System.IO.Ports": "4.7.0",
"runtime.osx-x64.runtime.native.System.IO.Ports": "4.7.0"
}
},
"runtime.osx-x64.runtime.native.System.IO.Ports/4.7.0": {
"runtimeTargets": {
"runtimes/osx-x64/native/System.IO.Ports.Native.dylib": {
"rid": "osx-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"SQLitePCLRaw.bundle_e_sqlite3/2.1.4": {
"dependencies": {
"SQLitePCLRaw.lib.e_sqlite3": "2.1.4",
@ -695,6 +762,18 @@
}
}
},
"StackExchange.Redis/2.7.33": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "6.0.0",
"Pipelines.Sockets.Unofficial": "2.2.8"
},
"runtime": {
"lib/net6.0/StackExchange.Redis.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.7.33.41805"
}
}
},
"System.Collections/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0",
@ -868,6 +947,46 @@
"System.Threading.Tasks": "4.3.0"
}
},
"System.IO.Pipelines/5.0.1": {
"runtime": {
"lib/netcoreapp3.0/System.IO.Pipelines.dll": {
"assemblyVersion": "5.0.0.1",
"fileVersion": "5.0.120.57516"
}
}
},
"System.IO.Ports/4.7.0": {
"dependencies": {
"Microsoft.Win32.Registry": "4.7.0",
"runtime.native.System.IO.Ports": "4.7.0"
},
"runtime": {
"lib/netstandard2.0/System.IO.Ports.dll": {
"assemblyVersion": "4.0.3.0",
"fileVersion": "4.700.19.56404"
}
},
"runtimeTargets": {
"runtimes/linux/lib/netstandard2.0/System.IO.Ports.dll": {
"rid": "linux",
"assetType": "runtime",
"assemblyVersion": "4.0.3.0",
"fileVersion": "4.700.19.56404"
},
"runtimes/osx/lib/netstandard2.0/System.IO.Ports.dll": {
"rid": "osx",
"assetType": "runtime",
"assemblyVersion": "4.0.3.0",
"fileVersion": "4.700.19.56404"
},
"runtimes/win/lib/netstandard2.0/System.IO.Ports.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "4.0.3.0",
"fileVersion": "4.700.19.56404"
}
}
},
"System.Memory/4.5.3": {},
"System.Reflection/4.3.0": {
"dependencies": {
@ -1209,6 +1328,13 @@
"path": "dotnetty.transport/0.7.5",
"hashPath": "dotnetty.transport.0.7.5.nupkg.sha512"
},
"HslCommunication/11.1.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+HUfjin0STcIuiSsZ7ksohWBbeTFW7XbkDR+/jK19/ikmzCoRwwB8688dWc4szTruuF00URB998SU8snPxtIKQ==",
"path": "hslcommunication/11.1.1",
"hashPath": "hslcommunication.11.1.1.nupkg.sha512"
},
"log4net/2.0.15": {
"type": "package",
"serviceable": true,
@ -1321,12 +1447,12 @@
"path": "microsoft.extensions.logging/5.0.0",
"hashPath": "microsoft.extensions.logging.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/5.0.0": {
"Microsoft.Extensions.Logging.Abstractions/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NxP6ahFcBnnSfwNBi2KH2Oz8Xl5Sm2krjId/jRR3I7teFphwiUoUeZPwTNA21EX+5PtjqmyAvKaOeBXcJjcH/w==",
"path": "microsoft.extensions.logging.abstractions/5.0.0",
"hashPath": "microsoft.extensions.logging.abstractions.5.0.0.nupkg.sha512"
"sha512": "sha512-/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==",
"path": "microsoft.extensions.logging.abstractions/6.0.0",
"hashPath": "microsoft.extensions.logging.abstractions.6.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Options/5.0.0": {
"type": "package",
@ -1440,6 +1566,48 @@
"path": "oracle.manageddataaccess.core/3.21.100",
"hashPath": "oracle.manageddataaccess.core.3.21.100.nupkg.sha512"
},
"Pipelines.Sockets.Unofficial/2.2.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==",
"path": "pipelines.sockets.unofficial/2.2.8",
"hashPath": "pipelines.sockets.unofficial.2.2.8.nupkg.sha512"
},
"runtime.linux-arm.runtime.native.System.IO.Ports/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-pCaX07mRrO11GfUb+whjn2AJgCofx26slw0sI3XC9v0pEZO8101iK6q4ymZOiI2M4a9sQxLr2LawAEDvF4RNXg==",
"path": "runtime.linux-arm.runtime.native.system.io.ports/4.7.0",
"hashPath": "runtime.linux-arm.runtime.native.system.io.ports.4.7.0.nupkg.sha512"
},
"runtime.linux-arm64.runtime.native.System.IO.Ports/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/J6A4bexUUJciGUwrhtzrFW4tIHqoJYlCsz5RudRmqUaqvuG2tjrbn6bEopOFs7CU4gZqAKWcU9pkp180c3DkQ==",
"path": "runtime.linux-arm64.runtime.native.system.io.ports/4.7.0",
"hashPath": "runtime.linux-arm64.runtime.native.system.io.ports.4.7.0.nupkg.sha512"
},
"runtime.linux-x64.runtime.native.System.IO.Ports/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aaaiH4ttfkLizo0OKf++5kPN0yxKbgzcyAD3w52Y3YP96aB/M79fm0r06SedXJGv86Iou6ipj3wUQBMFaL8LnQ==",
"path": "runtime.linux-x64.runtime.native.system.io.ports/4.7.0",
"hashPath": "runtime.linux-x64.runtime.native.system.io.ports.4.7.0.nupkg.sha512"
},
"runtime.native.System.IO.Ports/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-yidiZEGEIOyGnRkZvoV6XbeqzEBg9L47PyZNBymLIsu9HHseF98wiOxR6RnHmMqQMTBlc/EONfw4NT3pw0S6YQ==",
"path": "runtime.native.system.io.ports/4.7.0",
"hashPath": "runtime.native.system.io.ports.4.7.0.nupkg.sha512"
},
"runtime.osx-x64.runtime.native.System.IO.Ports/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-c1h87v6gopjfeAu3WhVGguUhzCdpZFqX8oXrevO1ciuH4g/mFrxnzlo5POlp+TtZdQ1i8yu0ZzBMKbmX2bJJ0g==",
"path": "runtime.osx-x64.runtime.native.system.io.ports/4.7.0",
"hashPath": "runtime.osx-x64.runtime.native.system.io.ports.4.7.0.nupkg.sha512"
},
"SQLitePCLRaw.bundle_e_sqlite3/2.1.4": {
"type": "package",
"serviceable": true,
@ -1496,6 +1664,13 @@
"path": "sqlsugarcore.kdbndp/7.4.0",
"hashPath": "sqlsugarcore.kdbndp.7.4.0.nupkg.sha512"
},
"StackExchange.Redis/2.7.33": {
"type": "package",
"serviceable": true,
"sha512": "sha512-2kCX5fvhEE824a4Ab5Imyi8DRuGuTxyklXV01kegkRpsWJcPmO6+GAQ+HegKxvXAxlXZ8yaRspvWJ8t3mMClfQ==",
"path": "stackexchange.redis/2.7.33",
"hashPath": "stackexchange.redis.2.7.33.nupkg.sha512"
},
"System.Collections/4.3.0": {
"type": "package",
"serviceable": true,
@ -1580,6 +1755,20 @@
"path": "system.io/4.3.0",
"hashPath": "system.io.4.3.0.nupkg.sha512"
},
"System.IO.Pipelines/5.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-qEePWsaq9LoEEIqhbGe6D5J8c9IqQOUuTzzV6wn1POlfdLkJliZY3OlB0j0f17uMWlqZYjH7txj+2YbyrIA8Yg==",
"path": "system.io.pipelines/5.0.1",
"hashPath": "system.io.pipelines.5.0.1.nupkg.sha512"
},
"System.IO.Ports/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-tNHiZcdskfRpxU7LBBlA69YYgBqWMBE/JDdmrEIDa4iw944VK1u4+B0FeSls1FUm+Pm4X/Fl0fSGqi8MDhb8/Q==",
"path": "system.io.ports/4.7.0",
"hashPath": "system.io.ports.4.7.0.nupkg.sha512"
},
"System.Memory/4.5.3": {
"type": "package",
"serviceable": true,

Loading…
Cancel
Save