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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
using FLY.OBJComponents.IService;
using Misc;
using System.ComponentModel;
using System.Windows.Media;
namespace FLY.Weight2.Common
{
public class WeighterC : INotifyPropertyChanged, IPropertyOpt
{
public WeighterC(string number, int index)
{
Number = number;
Index = index;
}
#region IWeighterC实现
/// <summary>
/// 名称:A,B,C,D,E
/// </summary>
public string Number { get; set; }
/// <summary>
/// 序号 0,1,2,3,4.....
/// </summary>
public int Index { get; set; }
/// <summary>
/// 颜色
/// </summary>
public Brush Color { get; set; }
#endregion
#region 辅助代码生成
/// <summary>
/// 当前流量(kg/h) xxx.x
/// </summary>
[Description("当前流量(kg/h) xxx.x")]
public float CurrentFlow{ get; set; }
/// <summary>
/// 运行比例(%) xx.x
/// </summary>
[Description("运行比例(%) xx.x")]
public float ScrewPDisp{ get; set; }
/// <summary>
/// 自动模式时,当前流量(kg/h) xxx.x
/// </summary>
[Description("自动模式时,当前流量(kg/h) xxx.x")]
public float CurrentFlowAuto{ get; set; }
/// <summary>
/// 自动模式时,运行比例(%) xx.x
/// </summary>
[Description("自动模式时,运行比例(%) xx.x")]
public float ScrewPDispAuto{ get; set; }
/// <summary>
/// 当前重量(Kg) x.xxx
/// </summary>
[Description("当前重量(Kg) x.xxx")]
public float BinWeight{ get; set; }
/// <summary>
/// 电机运行频率(Hz) xx.x
/// </summary>
[Description("电机运行频率(Hz) xx.x")]
public float ScrewMotorFreq{ get; set; }
/// <summary>
/// 电机设定频率(Hz)
/// </summary>
[Description("电机设定频率(Hz)")]
public float ScrewManualFreq{ get; set; }
/// <summary>
/// 设定频率确定(取反)
/// </summary>
[Description("设定频率确定(取反)")]
public bool ScrewManualFreqIsSet{ get; set; }
/// <summary>
/// 螺杆自动
/// </summary>
[Description("螺杆自动")]
public bool ScrewIsAutoMode{ get; set; }
/// <summary>
/// 螺杆操作
/// </summary>
[Description("螺杆操作")]
public bool ScrewMotorIsOn{ get; set; }
/// <summary>
/// 螺杆启动设置(┴)
/// </summary>
[Description("螺杆启动设置(┴)")]
public bool ScrewMotorOnSet{ get; set; }
/// <summary>
/// 最高频率(Hz) xxx.x
/// </summary>
[Description("最高频率(Hz) xxx.x")]
public float MaxFreq{ get; set; }
/// <summary>
/// 稳定时间(s) xxx.x
/// </summary>
[Description("稳定时间(s) xxx.x")]
public float StableTime{ get; set; }
/// <summary>
/// 采样时间(s) xxx.x
/// </summary>
[Description("采样时间(s) xxx.x")]
public float SampleTime{ get; set; }
/// <summary>
/// 料位上限(kg) xxx.x
/// </summary>
[Description("料位上限(kg) xxx.x")]
public float BinUpperLimit{ get; set; }
/// <summary>
/// 料位下限(kg) xxx.x
/// </summary>
[Description("料位下限(kg) xxx.x")]
public float BinLowerLimit{ get; set; }
/// <summary>
/// 螺杆下限(kg) xxx.x
/// </summary>
[Description("螺杆下限(kg) xxx.x")]
public float ScrewLowerLimit{ get; set; }
/// <summary>
/// 加料时间(s) xxx.x
/// </summary>
[Description("加料时间(s) xxx.x")]
public float ChargeTime{ get; set; }
/// <summary>
/// 快速标准(s) xxx.x
/// </summary>
[Description("快速标准(s) xxx.x")]
public float FastStandard{ get; set; }
/// <summary>
/// 稳定级别 xxx.x
/// </summary>
[Description("稳定级别 xxx.x")]
public float StableLv{ get; set; }
/// <summary>
/// 调整级别 xxx.x
/// </summary>
[Description("调整级别 xxx.x")]
public float AdjustLv{ get; set; }
/// <summary>
/// 高系数 xxx.x
/// </summary>
[Description("高系数 xxx.x")]
public float HighFactor{ get; set; }
/// <summary>
/// 低系数 xxx.x
/// </summary>
[Description("低系数 xxx.x")]
public float LowFactor{ get; set; }
/// <summary>
/// 调节限制 xxxx
/// </summary>
[Description("调节限制 xxxx")]
public float AdjustLimit{ get; set; }
/// <summary>
/// 比例系数 xxx.x
/// </summary>
[Description("比例系数 xxx.x")]
public float Pc{ get; set; }
/// <summary>
/// 积分时间(s) xxx
/// </summary>
[Description("积分时间(s) xxx")]
public float It{ get; set; }
/// <summary>
/// 微分增益 xxx.x
/// </summary>
[Description("微分增益 xxx.x")]
public float Dg{ get; set; }
/// <summary>
/// 微分时间(s) xxx.x
/// </summary>
[Description("微分时间(s) xxx.x")]
public float Dt{ get; set; }
/// <summary>
/// 滤波常数 xxx.x
/// </summary>
[Description("滤波常数 xxx.x")]
public float Filter{ get; set; }
/// <summary>
/// 快速频率(Hz) xxx.x
/// </summary>
[Description("快速频率(Hz) xxx.x")]
public float FastFreq{ get; set; }
/// <summary>
/// 快速时间(s) xxx.x
/// </summary>
[Description("快速时间(s) xxx.x")]
public float FastTime{ get; set; }
/// <summary>
/// 计算运用 xxx.x
/// </summary>
[Description("计算运用 xxx.x")]
public float Cal{ get; set; }
/// <summary>
/// 偏差报警(%) xxx
/// </summary>
[Description("偏差报警(%) xxx")]
public float Tolerance{ get; set; }
/// <summary>
/// PID输出 xxx
/// </summary>
[Description("PID输出 xxx")]
public float PIDResult{ get; set; }
/// <summary>
/// PID调节 xxx
/// </summary>
[Description("PID调节 xxx")]
public float PIDAdjust{ get; set; }
/// <summary>
/// 螺杆缺料!!
/// </summary>
[Description("螺杆缺料!!")]
[IsError()]
public bool IsErrorOfScrewLack{ get; set; }
/// <summary>
/// 料仓缺料!!
/// </summary>
[Description("料仓缺料!!")]
[IsError()]
public bool IsErrorOfBinLack{ get; set; }
/// <summary>
/// 流量超偏差!!
/// </summary>
[Description("流量超偏差!!")]
[IsError()]
public bool IsErrorOfFlow{ get; set; }
#endregion
public event PropertyChangedEventHandler PropertyChanged;
public string[] GetSyncPropNames()
{
return null;
}
public string[] GetNoSyncPropNames()
{
return new string[] {
"Number",
"Color"
};
}
}
}