using S7.Net; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RIZO.Model.PLC { /// /// 单个数据点模型 /// public class PlcDataItem { /// /// 数据项的唯一标识符 "产品计数", "温度值", "电机状态" /// public string Name { get; set; } /// /// 存储PLC返回的原始数据,类型根据实际VarType动态变化 /// public object Value { get; set; } /// /// 最后一次成功读取数据的时间戳 /// public DateTime LastUpdateTime { get; set; } /// /// 最近一次读取操作是否成功 /// public bool IsSuccess { get; set; } /// /// 读取失败时保存的错误信息 /// public string ErrorMessage { get; set; } } /// /// 工站完整数据模型 /// public class StationData { /// /// 工站的唯一标识符 /// public string StationName { get; set; } /// /// 该工站所有数据项的集合 /// public Dictionary DataItems { get; set; } = new(); /// /// S7.Net库的PLC连接实例 /// public Plc PlcConnection { get; set; } /// /// 当前PLC连接状态 /// public bool IsConnected { get; set; } /// /// 最后一次成功读取所有数据项的时间 /// public DateTime LastReadTime { get; set; } public DateTime LastConnectTime { get; set; } public int ReadFailureCount { get; set; } } // API响应DTO public class StationDataDto { /// /// 工站名称(直接传递) /// public string StationName { get; set; } /// /// 仅包含数据值的简化字典 ///{ ///"产品计数": { Value: 100, IsSuccess: true, LastUpdateTime: ..., ErrorMessage: "" }, ///"温度值": { Value: 25.6f, IsSuccess: true, LastUpdateTime: ..., ErrorMessage: "" } ///} /// public Dictionary CurrentValues { get; set; } = new(); /// /// 工站连接状态 /// public bool IsConnected { get; set; } public DateTime LastUpdateTime { get; set; } public DateTime LastReadTime { get; set; } public DateTime LastConnectTime { get; set; } public int ReadFailureCount { get; set; } } /// /// 所有工站数据的集合 /// public class AllStationsDataDto { public Dictionary Stations { get; set; } = new(); public DateTime ServerTime { get; set; } = DateTime.Now; public int TotalStations { get; set; } public int ConnectedStations { get; set; } } }