using CapMachine.Model; using HslCommunication; using Prism.Mvvm; namespace CapMachine.Wpf.Models { /// /// 仪表实时数据 /// public class MeterRtDataModel : BindableBase { public delegate void MeterStepTrackDelegate(string MeterName, int NextStep); public event MeterStepTrackDelegate MeterStepTrackEvent; /// /// 实例化函数 /// public MeterRtDataModel() { ListProStepExecuteInfo = new List(); ListQuickProStepExecuteInfo = new List(); QuickRunTimeInfo = new QuickRunTime(); QuickNextMeterStep = new QuickProStepExecute(); RunTimeInfo = new MeterRunTime(); NextMeterStep = new ProStepExecute(); } /// /// 仪表类型 /// public MeterType MeterTypeInfo { get; set; } private int _MeterStepTrack; /// /// 步骤追踪 /// public int MeterStepTrack { get { return _MeterStepTrack; } set { if (value != _MeterStepTrack)//步骤改动 { _MeterStepTrack = value; //MeterStepTrackEvent(MeterName, value);//开始动作 } _MeterStepTrack = value; } } ////////////////////////////////////////////////// /////////////////仪表实时数据/////////////////// ////////////////////////////////////////////////// #region 仪表实时数据 private OperateResult _RtOperateResultContinuousData; /// /// 通信结果长度连续值 /// public OperateResult RtOperateResultContinuousData { get { return _RtOperateResultContinuousData; } set { _RtOperateResultContinuousData = value; } } /// /// 通信结果PV值 /// private OperateResult _RtOperateResultPV; public OperateResult RtOperateResultPV { get { return _RtOperateResultPV; } set { _RtOperateResultPV = value; } } private double _RtPV; /// /// 实时值PV /// public double RtPV { get { return _RtPV; } set { _RtPV = value; } } /// /// 通信结果MV值 /// private OperateResult _RtOperateResultMV; public OperateResult RtOperateResultMV { get { return _RtOperateResultMV; } set { _RtOperateResultMV = value; } } private double _RtMV; /// /// 实时值MV /// public double RtMV { get { return _RtMV; } set { _RtMV = value; } } /// /// 通信结果SV值 /// private OperateResult _RtOperateResultSV; public OperateResult RtOperateResultSV { get { return _RtOperateResultSV; } set { _RtOperateResultSV = value; } } private double _RtSV; /// /// 实时值SV /// public double RtSV { get { return _RtSV; } set { _RtSV = value; } } /// /// PV值的地址 /// public string RtAddressPV; /// /// MV值的地址 /// public string RtAddressMV; /// /// SV值的地址 /// public string RtAddressSV; ///// ///// MV值的UI展示名称 ///// //public string RtMVUIControlIndex; ///// ///// PV值的UI展示名称 ///// //public string RtPVUIControlIndex; ///// ///// SV值的UI展示名称 ///// //public string RtSVUIControlIndex; /// /// UI展示名称标题 /// public string RtUIControlTitle; /// /// UI展示名称控件 /// public string RtUIControlTitleIndex; #endregion ////////////////////////////////////////////////// ////////////////////////////////////////////////// /////////////////仪表整体信息/////////////////// ////////////////////////////////////////////////// #region 仪表整体信息 /// /// 仪表连接状态 /// public bool LinkState { get; set; } /// /// 仪表名称 中文 /// public string MeterName { get; set; } /// /// 仪表名称 英文 /// public string MeterEnName { get; set; } /// /// 仪表站号 /// public byte Station { get; set; } /// /// 最大值 /// public double MaxValue { get; set; } /// /// 最小值 /// public double MinValue { get; set; } /// /// 精度 /// public short Precision { get; set; } /// /// 单位 /// public string Unit { get; set; } /// /// 采样周期 /// public int SamplingPeriod { get; set; } #endregion ////////////////////////////////////////////////// /////////////////仪表程序使能////////////////// ////////////////////////////////////////////////// /// /// 当前仪表使能状态 /// 根据程序步骤里面有没有涉及到本仪表的步骤个数 /// public bool MeterEnableState = false; /// /// 当前仪表使能状态 ///需要在执行时发送数据给PLC /// public string MeterEnableStatePLCAddress = string.Empty; ////////////////////////////////////////////////// /////////////////程序段////////////////////////// ////////////////////////////////////////////////// /// /// 程序段和程序步骤执行具体方法 /// public List ListProStepExecuteInfo { get; set; } /// /// 快速设置程序段和程序步骤执行具体方法 /// public List ListQuickProStepExecuteInfo { get; set; } /// /// 仪表当前步骤执行时间信息 /// public MeterRunTime RunTimeInfo { get; set; } /// /// Quick仪表当前步骤执行时间信息 /// public QuickRunTime QuickRunTimeInfo { get; set; } /// /// 仪表当前步骤是否存在下一步 /// public bool IsExistMeterNextStep { get; set; } = false; /// /// 仪表下一步具体程序步骤 /// public ProStepExecute NextMeterStep { get; set; } /// /// Quick仪表下一步具体程序步骤 /// public QuickProStepExecute QuickNextMeterStep { get; set; } /// /// Quick仪表【当前步骤】具体程序步骤 /// 给看步骤是否变化使用 /// public QuickProStepExecute QuickCurrentMeterStep { get; set; } /// /// 当前程序段名称 /// public string CurrentProName { get; set; } /// /// 当前程序段步骤 /// public int CurrentProStep { get; set; } /// /// 当前程序段时间长 /// public int CurrentProTimeSum { get; set; } /// /// 当前程序段开始时间 /// public DateTime CurrentProStartTime { set; get; } ////////////////////////////////////////////////// /////////////////仪表步骤数据/////////////////// ////////////////////////////////////////////////// /// /// 当前仪表步骤 /// public int CurrentMeterStep { get; set; } /// /// 当前仪表步骤时间长 /// public int CurrentMeterTimeSum { get; set; } /// /// 当前仪表开始时间 /// public DateTime CurrentMeterStartTime { get; set; } /// /// 当前仪表步骤剩余时间 /// public int CurrentMeterRemainTime { get; set; } } }