using FLY.FeedbackRenZiJia.Common; using FObjBase; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; namespace FLY.FeedbackRenZiJia.IService { public interface IHeatBuf: INotifyPropertyChanged { #region 参数 /// /// 加热生效曲线 [2,5,8,5,2] /// List HeatEffectCurve { get; set; } /// /// 厚度稳定范围 %, 偏差在范围内,都是稳定的 /// int StableRange { get; set; } /// /// 厚度稳定范围 %, 加热量变化为0时,偏差在范围内,都是稳定的 /// int StableRange0 { get; set; } /// /// 对位模式, 加热与厚度相关性阀值, 相关性 >=0.7 /// double ThresholdR { get; set; } /// /// 对位模式 厚度%差 的极差 >= +4%-4%=8%, 单位% /// int ThresholdMaxMin { get; set; } /// /// % /// 最大sigma, 只有当前的sigma 在 最大sigma 与 最小 sigma 内,才能控制 /// int ThresholdSigmaMax { get; set; } /// /// 使用这里独立的Kp, 与 HeatCell 不一样 /// bool IsUsedLocalKp { get; set; } /// /// 本地Kp, 用于判断稳定性 /// double LocalKp { get; set; } #endregion #region 状态 /// /// 延时 /// TimeSpan Delay { get; } #region 对位 /// /// 进入了对位模式 /// bool IsIntoAutoONo { get; } /// /// 对位模式结果 /// EAutoONoResult AutoONoResult { get; } /// /// 计算的最佳复位区号 /// int BestOrgBoltNo { get; } /// /// 计算的最佳复位区号 对应的 加热/厚度 /// double BestKp { get; } /// /// 计算的最佳复位区号 对应的 加热与厚度相关性 /// double MaxR { get; } /// /// 计算的最佳复位区号 对应的 厚度%变化极差 单位% /// double MaxMin { get; } #endregion #region 稳定性 /// /// 当前检测出来的厚度数据 稳定状态 /// STABILITY Stability { get; } /// /// 当前检测出来的厚度数据 的稳定性 /// double CurrR { get; } /// /// 当前检测出来的厚度数据 2Sigma /// double Curr2Sigma { get; } /// /// 当前检测出来的厚度数据,时间 /// DateTime CurrTime { get; } /// /// 当前检测出来的厚度数据,方向 /// Misc.DIRECTION CurrDirection { get; } /// /// 当前打散程度。 /// 连续N点都在平均值同一侧为一个块; /// 这些块的长度平均值/总长度, 为打散度; /// 打散度越小越好, 最小为 1/NBolts /// double CurrBreakUp { get; } #endregion #region 列表 /// /// 列表最后1个BM /// int LastBM { get; } /// /// 列表第1个BM /// int FirstBM { get; } #endregion #region 每个分区状态 bool[] BoltIsStable { get; } #endregion #endregion #region 功能 /// /// 参数应用 /// void Apply(); /// /// 获取记录历史 返回类型为 FlyData_FeedbackHeat /// /// 记录点 /// /// void GetHeatsData(int bookmark, AsyncCBHandler AsyncDelegate, object AsyncState); /// /// 清空每个分区的加热记录 /// void ClearBoltHeat(); /// /// 获取每个分区的加热历史 返回 FlyData_BoltHeatRecord /// /// 分区号 /// /// void GetBoltHeatRecord(int no, AsyncCBHandler AsyncDelegate, object AsyncState); #endregion } /// /// 自动对位模式结果 /// public enum EAutoONoResult { /// /// 没开始 /// Idle, /// /// 计算成功 /// OK, /// /// 失败,厚度变化%极差太小 /// Err_MaxMin, /// /// 失败,厚度变化% 与 加热变化 相关性 不够大 /// Err_MaxR, /// /// 失败,不稳定,被打断 /// Err_Break } }