Files
DMS/DMS.Core/Models/Variable.cs

168 lines
4.1 KiB
C#
Raw Normal View History

using DMS.Core.Enums;
2025-07-19 09:25:01 +08:00
namespace DMS.Core.Models;
2025-07-03 13:17:25 +08:00
/// <summary>
/// 表示变量数据信息。
/// </summary>
public partial class Variable
{
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-04 13:40:14 +08:00
/// 变量唯一标识符。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-04 13:40:14 +08:00
public int Id { get; set; }
2025-07-04 13:40:14 +08:00
/// <summary>
/// 变量名称。
/// </summary>
2025-07-19 09:25:01 +08:00
public string Name { get; set; }
2025-07-03 13:17:25 +08:00
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-04 13:40:14 +08:00
/// 节点ID用于标识变量在设备或系统中的唯一路径。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-04 13:40:14 +08:00
public string NodeId { get; set; }
/// <summary>
/// 节点ID用于标识变量在设备或系统中的唯一路径。
/// </summary>
public string S7Address { get; set; }
2025-07-08 17:33:20 +08:00
/// <summary>
/// OPC UA Endpoint URL。
/// </summary>
public string? OpcUaEndpointUrl { get; set; }
/// <summary>
/// OPC UA Node ID。
/// </summary>
public string? OpcUaNodeId { get; set; }
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-04 13:40:14 +08:00
/// 变量描述。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-19 09:25:01 +08:00
public string Description { get; set; } = String.Empty;
2025-07-04 13:40:14 +08:00
/// <summary>
/// 协议类型例如Modbus、OPC UA等。
/// </summary>
public ProtocolType ProtocolType { get; set; }
/// <summary>
/// 信号类型,例如模拟量、数字量等。
/// </summary>
public SignalType SignalType { get; set; }
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-03 13:17:25 +08:00
/// 数据类型例如Int、Float、String等。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-03 13:17:25 +08:00
public string DataType { get; set; }
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-03 13:17:25 +08:00
/// 变量当前原始数据值。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-19 09:25:01 +08:00
public string DataValue { get; set; } = String.Empty;
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-04 13:40:14 +08:00
/// 变量经过转换或格式化后的显示值。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-19 09:25:01 +08:00
public string DisplayValue { get; set; } = String.Empty;
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-04 13:40:14 +08:00
/// 指示变量是否处于激活状态。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-19 09:25:01 +08:00
public bool IsActive { get; set; }
2025-07-03 12:55:00 +08:00
2025-07-09 19:38:36 +08:00
/// <summary>
/// 指示变量是否被选中
/// </summary>
2025-07-19 09:25:01 +08:00
public bool IsSelect { get; set; }
2025-07-09 19:38:36 +08:00
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-04 13:40:14 +08:00
/// 指示是否需要保存变量数据。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-04 13:40:14 +08:00
public bool IsSave { get; set; }
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-03 13:17:25 +08:00
/// 指示是否需要对变量进行报警监测。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-03 13:17:25 +08:00
public bool IsAlarm { get; set; }
2025-07-03 12:55:00 +08:00
2025-07-05 12:29:10 +08:00
/// <summary>
/// 轮询级别例如1秒、5秒等。
/// </summary>
2025-07-19 09:25:01 +08:00
public PollLevelType PollLevelType { get; set; } = PollLevelType.ThirtySeconds;
2025-07-05 12:29:10 +08:00
/// <summary>
/// OPC UA更新类型例如轮询或订阅。
/// </summary>
2025-07-19 09:25:01 +08:00
public OpcUaUpdateType OpcUaUpdateType { get; set; } = OpcUaUpdateType.OpcUaPoll;
/// <summary>
/// 最后一次轮询时间。
/// </summary>
public DateTime LastPollTime { get; set; } = DateTime.MinValue;
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-03 13:17:25 +08:00
/// 指示变量是否已被逻辑删除。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-03 13:17:25 +08:00
public bool IsDeleted { get; set; }
2025-07-03 12:55:00 +08:00
/// <summary>
/// 指示变量是否已被修改了。
/// </summary>
2025-07-19 09:25:01 +08:00
public bool IsModified { get; set; }
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-04 13:40:14 +08:00
/// 报警的最大值阈值。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-04 13:40:14 +08:00
public double AlarmMax { get; set; }
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-04 13:40:14 +08:00
/// 报警的最小值阈值。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-04 13:40:14 +08:00
public double AlarmMin { get; set; }
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-04 13:40:14 +08:00
/// 数据转换规则或表达式。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-19 09:25:01 +08:00
public string Converstion { get; set; } = String.Empty;
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-03 13:17:25 +08:00
/// 数据保存的范围或阈值。
2025-07-03 12:55:00 +08:00
/// </summary>
public double SaveRange { get; set; }
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-04 13:40:14 +08:00
/// 变量数据创建时间。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-19 09:25:01 +08:00
public DateTime CreateTime { get; set; }
2025-07-04 13:40:14 +08:00
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-03 13:17:25 +08:00
/// 变量数据最后更新时间。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-19 09:25:01 +08:00
public DateTime UpdateTime { get; set; } = DateTime.Now;
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-03 13:17:25 +08:00
/// 最后更新变量数据的用户。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-03 13:17:25 +08:00
public User UpdateUser { get; set; }
2025-07-03 12:55:00 +08:00
/// <summary>
2025-07-03 13:17:25 +08:00
/// 关联的变量表ID。
2025-07-03 12:55:00 +08:00
/// </summary>
2025-07-03 13:17:25 +08:00
public int VariableTableId { get; set; }
/// <summary>
/// 关联的变量表实体。
/// </summary>
public VariableTable? VariableTable { get; set; }
2025-07-04 13:40:14 +08:00
/// <summary>
/// 关联的MQTT配置列表。
/// </summary>
public List<VariableMqtt>? VariableMqtts { get; set; }
2025-07-04 13:40:14 +08:00
}