1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Collections.ObjectModel;
namespace FLY.FeedbackRenZiJia.IService
{
public interface IHeatCell : INotifyPropertyChanged
{
#region 参数
/// <summary>
/// HeatOffset = ThickPercent * Kp
/// </summary>
double Kp { get; set; }
/// <summary>
/// 自动对位
/// </summary>
bool IsAutoONo { get; set; }
/// <summary>
/// 自动对位的Kp
/// </summary>
double AutoONoKp { get; set; }
/// <summary>
/// 输出平滑的阀值,只有超出阀值,才平滑
/// </summary>
double ThresholdHeatSigma { get; set; }
/// <summary>
/// 自控时,不能调整总体上升下降
/// </summary>
bool IsForbidUpDown { get; set; }
/// <summary>
/// 厚度控制线 , 厚度% 大于 厚度控制线 自动才会加热控制
/// </summary>
int CtrlLine { get; set; }
/// <summary>
/// 开启打散模式, 打散模式下,以打散度小为目标,控制2sigma在 控制线内
/// </summary>
bool IsBreakUpMode { get; set; }
#endregion
#region 状态
/// <summary>
/// 对应的100% 数据,单位是% 数量是BoltCnt
/// </summary>
int[] ThickPercents { get; }
/// <summary>
/// 当前方向的加热策略,必须保证 0~100
/// </summary>
int[] Heats { get; }
/// <summary>
/// 加热偏移量
/// </summary>
int[] Offsets { get; }
/// <summary>
/// Heats+Offsets+Base, 必须保证0~100
/// </summary>
int[] PreHeats { get; }
/// <summary>
/// PreHeat 每3个计算的sigma, 最大值
/// </summary>
double MaxHeatSigma { get; }
/// <summary>
/// 当前正在自动对位模式
/// </summary>
bool IsInAutoONo { get; }
#endregion
#region 功能
/// <summary>
/// 参数应用
/// </summary>
void Apply();
/// <summary>
/// 手动调整加热增量
/// </summary>
/// <param name="idx"></param>
/// <param name="change"></param>
void ModifyOffset(int idx, int change);
/// <summary>
/// 参数是 baseheatoffset 的增量
/// </summary>
/// <param name="change"></param>
void ModifyBase(int change);
/// <summary>
/// 清空HeatOffset
/// </summary>
void ClearOffsets();
/// <summary>
/// 清空PreHeats
/// </summary>
void ClearPreHeats();
/// <summary>
/// 调整PreHeats
/// </summary>
/// <param name="heats"></param>
//void ModifyPreHeats(int[] heats);
/// <summary>
/// 执行 HeatOffset = ThickPercent * Factor
/// </summary>
void Cal();
/// <summary>
/// 平滑 PreHeats
/// </summary>
void Smooth();
/// <summary>
/// 加热输出应用
/// Heats = PreHeats, Offsets = 0, Base = 0
/// </summary>
void HeatApply();
#endregion
}
}