grenton-ts 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +86 -0
- package/dist/analog-din/fv02_01/analog-in.ts +271 -0
- package/dist/clu/calendar/v1/calendar.ts +308 -0
- package/dist/clu/clu-zwave-2/fv515_03/clu-zwave-2.ts +1302 -0
- package/dist/clu/event-scheduler/v1/event-scheduler.ts +537 -0
- package/dist/clu/multi-fan-ac-thermostat/v1/multi-fan-ac-thermostat.ts +1163 -0
- package/dist/clu/pid-controller/v1/pid-controller.ts +536 -0
- package/dist/clu/presence-sensor/v1/presence-sensor.ts +313 -0
- package/dist/clu/presence-sensor/v2/presence-sensor.ts +470 -0
- package/dist/clu/push/v1/push.ts +261 -0
- package/dist/clu/scheduler/v1/scheduler.ts +304 -0
- package/dist/clu/statistics/v1/statistics.ts +413 -0
- package/dist/clu/statistics-pulse/v1/statistics-pulse.ts +218 -0
- package/dist/clu/sunrise-sunset-calendar/v1/sunrise-sunset-calendar.ts +389 -0
- package/dist/clu/sunrise-sunset-calendar/v2/sunrise-sunset-calendar.ts +659 -0
- package/dist/clu/sunrise-sunset-calendar/v3/sunrise-sunset-calendar.ts +659 -0
- package/dist/clu/thermostat/v1/thermostat.ts +768 -0
- package/dist/clu/thermostat/v2/thermostat.ts +861 -0
- package/dist/clu/timer/v1/timer.ts +369 -0
- package/dist/core/execution-builder.ts +55 -0
- package/dist/core/remote-gate.ts +17 -0
- package/dist/digital-in-din/fv02_01/din.ts +310 -0
- package/dist/examples/light_turned_on_by_calendar/Clu_OnInit.ts +26 -0
- package/dist/examples/light_turned_on_by_presence_sensor/Clu_OnInit.ts +35 -0
- package/dist/examples/light_turned_on_by_switch/Clu_OnInit.ts +16 -0
- package/dist/gate/cool-master/v1/cool-master.ts +782 -0
- package/dist/gate/cool-master-net/v1/cool-master-net.ts +334 -0
- package/dist/gate/denon-marantz-avr/v1/denon-marantz-avr.ts +724 -0
- package/dist/gate/heos/v1/heos.ts +1224 -0
- package/dist/gate/http/fv1000_03/clu-gate-http.ts +405 -0
- package/dist/gate/http/fv1000_03_hv1/clu-gate-http.ts +352 -0
- package/dist/gate/http/fv1100_03/clu-gate-http.ts +589 -0
- package/dist/gate/http/fv1110_03/clu-gate-http.ts +589 -0
- package/dist/gate/http/fv1300_03/clu-gate-http.ts +589 -0
- package/dist/gate/http/fv1400_03/clu-gate-http.ts +677 -0
- package/dist/gate/http-listener/v1/http-listener.ts +299 -0
- package/dist/gate/http-listener/v2/http-listener.ts +325 -0
- package/dist/gate/http-request/v1/http-request.ts +645 -0
- package/dist/gate/http-request/v2/http-request.ts +709 -0
- package/dist/gate/input/v1/input.ts +171 -0
- package/dist/gate/jablotron/v1/jablotron.ts +100 -0
- package/dist/gate/jablotron-device/v1/jablotron-device.ts +171 -0
- package/dist/gate/jablotron-output/v1/jablotron-output.ts +240 -0
- package/dist/gate/jablotron-section/v1/jablotron-section.ts +260 -0
- package/dist/gate/modbus/v1/modbus.ts +609 -0
- package/dist/gate/modbus/v2/modbus.ts +690 -0
- package/dist/gate/modbus-client/v1/modbus-client.ts +827 -0
- package/dist/gate/modbus-rtu/v1/modbus-rtu.ts +911 -0
- package/dist/gate/modbus-server/v1/modbus-server.ts +405 -0
- package/dist/gate/modbus-slave-config-rtu/v1/modbus-slave-config-rtu.ts +160 -0
- package/dist/gate/modbus-slave-rtu/v1/modbus-slave-rtu.ts +371 -0
- package/dist/gate/modbus-value/v1/modbus-value.ts +856 -0
- package/dist/gate/music-cast/v1/music-cast.ts +1298 -0
- package/dist/gate/output/v1/output.ts +240 -0
- package/dist/gate/satel/v1/satel.ts +359 -0
- package/dist/gate/satel-input/v1/satel-input.ts +171 -0
- package/dist/gate/satel-output/v1/satel-output.ts +240 -0
- package/dist/gate/satel-zone/v1/satel-zone.ts +235 -0
- package/dist/gate/sonos/v1/sonos.ts +934 -0
- package/dist/gate/timer/v2/timer.ts +253 -0
- package/dist/gate/zone/v1/zone.ts +235 -0
- package/dist/io-module-din-8/fv02_02/din.ts +354 -0
- package/dist/io-module-din-8/fv02_02/dout.ts +360 -0
- package/dist/one-wire/fv01_10/onew-sensor.ts +269 -0
- package/dist/one-wire/fv01_28/onew-sensor.ts +269 -0
- package/dist/one-wire/fv02_28/onew-sensor.ts +350 -0
- package/dist/one-wire/fv03_28/onew-sensor.ts +435 -0
- package/dist/relay-din-2/fv02_02/dout.ts +544 -0
- package/dist/relay-din-4/fv01_02/dout.ts +340 -0
- package/dist/relay-din-4/fv02_02/dout.ts +368 -0
- package/dist/roller-shutter-din-3/fv03_02/roller-shutter.ts +1078 -0
- package/dist/smart-panel-fm-4/fv03_03/panel-button.ts +550 -0
- package/dist/smart-panel-fm-4/fv03_03/panel-sens-light.ts +238 -0
- package/dist/smart-panel-fm-4/fv03_03/panel-sens-temp.ts +239 -0
- package/dist/smart-panel-fm-4/fv03_03/panel.ts +700 -0
- package/dist/smart-panel-fm-4/fv04_03/panel-button.ts +567 -0
- package/dist/smart-panel-fm-4/fv04_03/panel-page.ts +516 -0
- package/dist/smart-panel-fm-4/fv04_03/panel-sens-light.ts +238 -0
- package/dist/smart-panel-fm-4/fv04_03/panel-sens-temp.ts +239 -0
- package/dist/smart-panel-fm-4/fv04_03/panel.ts +1026 -0
- package/dist/smart-panel-fm-4/fv05_03/panel-button.ts +567 -0
- package/dist/smart-panel-fm-4/fv05_03/panel-page.ts +620 -0
- package/dist/smart-panel-fm-4/fv05_03/panel-sens-light.ts +238 -0
- package/dist/smart-panel-fm-4/fv05_03/panel-sens-temp.ts +266 -0
- package/dist/smart-panel-fm-4/fv05_03/panel.ts +1109 -0
- package/dist/smart-panel-fm-4/fv06_03/panel-button.ts +567 -0
- package/dist/smart-panel-fm-4/fv06_03/panel-page.ts +877 -0
- package/dist/smart-panel-fm-4/fv06_03/panel-sens-light.ts +238 -0
- package/dist/smart-panel-fm-4/fv06_03/panel-sens-temp.ts +297 -0
- package/dist/smart-panel-fm-4/fv06_03/panel.ts +1138 -0
- package/dist/smart-panel-fm-4/fv07_03/panel-button.ts +567 -0
- package/dist/smart-panel-fm-4/fv07_03/panel-page.ts +864 -0
- package/dist/smart-panel-fm-4/fv07_03/panel-sens-light.ts +238 -0
- package/dist/smart-panel-fm-4/fv07_03/panel-sens-temp.ts +297 -0
- package/dist/smart-panel-fm-4/fv07_03/panel.ts +1135 -0
- package/dist/touch-panel-fm-4/fv01_02/panel-button.ts +418 -0
- package/dist/touch-panel-fm-4/fv01_02/panel-sens-light.ts +238 -0
- package/dist/touch-panel-fm-4/fv01_02/panel-sens-temp.ts +257 -0
- package/dist/touch-panel-fm-4/fv01_02/panel.ts +75 -0
- package/dist/touch-panel-fm-4/fv01_02/power-supply-voltage.ts +322 -0
- package/dist/touch-panel-fm-8/fv01_02/panel-button.ts +418 -0
- package/dist/touch-panel-fm-8/fv01_02/panel-sens-light.ts +238 -0
- package/dist/touch-panel-fm-8/fv01_02/panel-sens-temp.ts +270 -0
- package/dist/touch-panel-fm-8/fv01_02/panel.ts +75 -0
- package/dist/touch-panel-fm-8/fv01_02/power-supply-voltage.ts +322 -0
- package/package.json +16 -0
|
@@ -0,0 +1,536 @@
|
|
|
1
|
+
// Created from: packages/grenton-api/interfaces/object_PIDcontroller_v1.xml, object name="PIDcontroller" version="1"
|
|
2
|
+
|
|
3
|
+
import { rawExecutionBuilderFactory } from "../../../core/execution-builder"
|
|
4
|
+
import { RemoteGate } from "../../../core/remote-gate"
|
|
5
|
+
|
|
6
|
+
enum EventType {
|
|
7
|
+
OnChange = 0,
|
|
8
|
+
OnStart = 1,
|
|
9
|
+
OnStop = 2,
|
|
10
|
+
OnOutOn = 4,
|
|
11
|
+
OnOutOff = 5
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
enum PropertyType {
|
|
15
|
+
ControlOut = 0,
|
|
16
|
+
State = 1,
|
|
17
|
+
SetPoint = 2,
|
|
18
|
+
Kp = 3,
|
|
19
|
+
Ki = 4,
|
|
20
|
+
Kd = 5,
|
|
21
|
+
SwitchTime = 6,
|
|
22
|
+
Alpha = 7,
|
|
23
|
+
Gamma = 8,
|
|
24
|
+
Mode = 9,
|
|
25
|
+
A = 10,
|
|
26
|
+
B = 11
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
enum MethodType {
|
|
30
|
+
Source = 0,
|
|
31
|
+
Start = 1,
|
|
32
|
+
Stop = 2
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
enum ModeType {
|
|
36
|
+
NormalPID = 1,
|
|
37
|
+
AutoKaczmarz = 2
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
declare class PIDcontrollerRaw {
|
|
41
|
+
add_event(event: EventType, callback: () => void): void;
|
|
42
|
+
get(property: PropertyType): any;
|
|
43
|
+
set(property: PropertyType, value: any): void;
|
|
44
|
+
execute(method: MethodType, ...args: any[]): any;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
interface IPIDcontroller {
|
|
48
|
+
/**
|
|
49
|
+
* Zdarzenie wywoływane w momencie zmiany wartości cechy ControlOut
|
|
50
|
+
* @param callback
|
|
51
|
+
*/
|
|
52
|
+
addOnChange: (callback: () => void) => void
|
|
53
|
+
/**
|
|
54
|
+
* Zdarzenie wywoływane w momencie uruchomienia regulatora
|
|
55
|
+
* @param callback
|
|
56
|
+
*/
|
|
57
|
+
addOnStart: (callback: () => void) => void
|
|
58
|
+
/**
|
|
59
|
+
* Zdarzenie wywoływane przy zablokowaniu pracy
|
|
60
|
+
* @param callback
|
|
61
|
+
*/
|
|
62
|
+
addOnStop: (callback: () => void) => void
|
|
63
|
+
/**
|
|
64
|
+
* Zdarzenie wywoływane w momencie przełączenia wartości cechy ControlOut na 1
|
|
65
|
+
* @param callback
|
|
66
|
+
*/
|
|
67
|
+
addOnOutOn: (callback: () => void) => void
|
|
68
|
+
/**
|
|
69
|
+
* Zdarzenie wywoływane w momencie przełączenia wartości cechy ControlOut na 0
|
|
70
|
+
* @param callback
|
|
71
|
+
*/
|
|
72
|
+
addOnOutOff: (callback: () => void) => void
|
|
73
|
+
/**
|
|
74
|
+
* Podanie nowej wartości wejścia dla sterownika (pętla sprzężenia zwrotnego)
|
|
75
|
+
* @param {number} value
|
|
76
|
+
*/
|
|
77
|
+
source: (value: number) => void
|
|
78
|
+
/** Przełącza w stan aktywny (State=1) */
|
|
79
|
+
start: () => void
|
|
80
|
+
/** Przełącza w stan zatrzymania (State=0) */
|
|
81
|
+
stop: () => void
|
|
82
|
+
/** Wartość wyjścia sterującego (binarna, przełączana w cyklu określonym przez SwitchTime) */
|
|
83
|
+
readonly controlOut: number
|
|
84
|
+
/** Stan działania regulatora: 1 - aktywny, 0 - nieaktywny */
|
|
85
|
+
readonly state: number
|
|
86
|
+
/** Ustawia wartość regulatora - wartość docelowa */
|
|
87
|
+
setPoint: number
|
|
88
|
+
/** Wzmocnienie członu proporcjonalnego regulatora PID */
|
|
89
|
+
readonly kp: number
|
|
90
|
+
/** Wzmocnienie członu całkującego regulatora PID */
|
|
91
|
+
readonly ki: number
|
|
92
|
+
/** Wzmocnienie członu różniczkującego regulatora PID */
|
|
93
|
+
readonly kd: number
|
|
94
|
+
/** Czas przełączenia */
|
|
95
|
+
readonly switchTime: number
|
|
96
|
+
/** Parametr alpha w algorytmie Kaczmarza (zabezpieczenie przed dzieleniem przez 0) */
|
|
97
|
+
alpha: number
|
|
98
|
+
/** Parametr gamma w algorytmie Kaczmarza (dynamika zmian oszacowania a i b) */
|
|
99
|
+
gamma: number
|
|
100
|
+
/** Tryb pracy regulatora: 1 - ręczny PID, 2 - automatyczny algorytm Kaczmarza/ */
|
|
101
|
+
mode: ModeType
|
|
102
|
+
/** Parametr a w algorytmie Kaczmarza */
|
|
103
|
+
readonly a: number
|
|
104
|
+
/** Parametr b w algorytmie Kaczmarza */
|
|
105
|
+
readonly b: number
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
class PIDcontroller implements IPIDcontroller {
|
|
109
|
+
private onChangeCallbacks: Array<() => void> = [];
|
|
110
|
+
private onStartCallbacks: Array<() => void> = [];
|
|
111
|
+
private onStopCallbacks: Array<() => void> = [];
|
|
112
|
+
private onOutOnCallbacks: Array<() => void> = [];
|
|
113
|
+
private onOutOffCallbacks: Array<() => void> = [];
|
|
114
|
+
|
|
115
|
+
constructor(private raw: PIDcontrollerRaw) {
|
|
116
|
+
this.raw.add_event(EventType.OnChange, () => {
|
|
117
|
+
this.onChangeCallbacks.forEach(callback => { callback(); });
|
|
118
|
+
});
|
|
119
|
+
this.raw.add_event(EventType.OnStart, () => {
|
|
120
|
+
this.onStartCallbacks.forEach(callback => { callback(); });
|
|
121
|
+
});
|
|
122
|
+
this.raw.add_event(EventType.OnStop, () => {
|
|
123
|
+
this.onStopCallbacks.forEach(callback => { callback(); });
|
|
124
|
+
});
|
|
125
|
+
this.raw.add_event(EventType.OnOutOn, () => {
|
|
126
|
+
this.onOutOnCallbacks.forEach(callback => { callback(); });
|
|
127
|
+
});
|
|
128
|
+
this.raw.add_event(EventType.OnOutOff, () => {
|
|
129
|
+
this.onOutOffCallbacks.forEach(callback => { callback(); });
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Zdarzenie wywoływane w momencie zmiany wartości cechy ControlOut
|
|
135
|
+
* @param callback
|
|
136
|
+
*/
|
|
137
|
+
addOnChange(callback: () => void): void {
|
|
138
|
+
this.onChangeCallbacks.push(callback);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Zdarzenie wywoływane w momencie uruchomienia regulatora
|
|
142
|
+
* @param callback
|
|
143
|
+
*/
|
|
144
|
+
addOnStart(callback: () => void): void {
|
|
145
|
+
this.onStartCallbacks.push(callback);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Zdarzenie wywoływane przy zablokowaniu pracy
|
|
149
|
+
* @param callback
|
|
150
|
+
*/
|
|
151
|
+
addOnStop(callback: () => void): void {
|
|
152
|
+
this.onStopCallbacks.push(callback);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Zdarzenie wywoływane w momencie przełączenia wartości cechy ControlOut na 1
|
|
156
|
+
* @param callback
|
|
157
|
+
*/
|
|
158
|
+
addOnOutOn(callback: () => void): void {
|
|
159
|
+
this.onOutOnCallbacks.push(callback);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Zdarzenie wywoływane w momencie przełączenia wartości cechy ControlOut na 0
|
|
163
|
+
* @param callback
|
|
164
|
+
*/
|
|
165
|
+
addOnOutOff(callback: () => void): void {
|
|
166
|
+
this.onOutOffCallbacks.push(callback);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Podanie nowej wartości wejścia dla sterownika (pętla sprzężenia zwrotnego)
|
|
170
|
+
* @param {number} value
|
|
171
|
+
*/
|
|
172
|
+
source(value: number): void {
|
|
173
|
+
this.raw.execute(MethodType.Source, value);
|
|
174
|
+
}
|
|
175
|
+
/** Przełącza w stan aktywny (State=1) */
|
|
176
|
+
start(): void {
|
|
177
|
+
this.raw.execute(MethodType.Start);
|
|
178
|
+
}
|
|
179
|
+
/** Przełącza w stan zatrzymania (State=0) */
|
|
180
|
+
stop(): void {
|
|
181
|
+
this.raw.execute(MethodType.Stop);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Wartość wyjścia sterującego (binarna, przełączana w cyklu określonym przez SwitchTime)
|
|
185
|
+
* @returns {number}
|
|
186
|
+
*/
|
|
187
|
+
get controlOut(): number {
|
|
188
|
+
return this.raw.get(PropertyType.ControlOut);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Stan działania regulatora: 1 - aktywny, 0 - nieaktywny
|
|
192
|
+
* @returns {number}
|
|
193
|
+
*/
|
|
194
|
+
get state(): number {
|
|
195
|
+
return this.raw.get(PropertyType.State);
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Ustawia wartość regulatora - wartość docelowa
|
|
199
|
+
* @returns {number}
|
|
200
|
+
*/
|
|
201
|
+
get setPoint(): number {
|
|
202
|
+
return this.raw.get(PropertyType.SetPoint);
|
|
203
|
+
}
|
|
204
|
+
set setPoint(value: number) {
|
|
205
|
+
this.raw.set(PropertyType.SetPoint, value);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Wzmocnienie członu proporcjonalnego regulatora PID
|
|
209
|
+
* @returns {number}
|
|
210
|
+
*/
|
|
211
|
+
get kp(): number {
|
|
212
|
+
return this.raw.get(PropertyType.Kp);
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Wzmocnienie członu całkującego regulatora PID
|
|
216
|
+
* @returns {number}
|
|
217
|
+
*/
|
|
218
|
+
get ki(): number {
|
|
219
|
+
return this.raw.get(PropertyType.Ki);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Wzmocnienie członu różniczkującego regulatora PID
|
|
223
|
+
* @returns {number}
|
|
224
|
+
*/
|
|
225
|
+
get kd(): number {
|
|
226
|
+
return this.raw.get(PropertyType.Kd);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Czas przełączenia
|
|
230
|
+
* @returns {number}
|
|
231
|
+
*/
|
|
232
|
+
get switchTime(): number {
|
|
233
|
+
return this.raw.get(PropertyType.SwitchTime);
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Parametr alpha w algorytmie Kaczmarza (zabezpieczenie przed dzieleniem przez 0)
|
|
237
|
+
* @returns {number}
|
|
238
|
+
*/
|
|
239
|
+
get alpha(): number {
|
|
240
|
+
return this.raw.get(PropertyType.Alpha);
|
|
241
|
+
}
|
|
242
|
+
set alpha(value: number) {
|
|
243
|
+
this.raw.set(PropertyType.Alpha, value);
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Parametr gamma w algorytmie Kaczmarza (dynamika zmian oszacowania a i b)
|
|
247
|
+
* @returns {number}
|
|
248
|
+
*/
|
|
249
|
+
get gamma(): number {
|
|
250
|
+
return this.raw.get(PropertyType.Gamma);
|
|
251
|
+
}
|
|
252
|
+
set gamma(value: number) {
|
|
253
|
+
this.raw.set(PropertyType.Gamma, value);
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Tryb pracy regulatora: 1 - ręczny PID, 2 - automatyczny algorytm Kaczmarza/
|
|
257
|
+
* @returns {ModeType}
|
|
258
|
+
*/
|
|
259
|
+
get mode(): ModeType {
|
|
260
|
+
return this.raw.get(PropertyType.Mode);
|
|
261
|
+
}
|
|
262
|
+
set mode(value: ModeType) {
|
|
263
|
+
this.raw.set(PropertyType.Mode, value);
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Parametr a w algorytmie Kaczmarza
|
|
267
|
+
* @returns {number}
|
|
268
|
+
*/
|
|
269
|
+
get a(): number {
|
|
270
|
+
return this.raw.get(PropertyType.A);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Parametr b w algorytmie Kaczmarza
|
|
274
|
+
* @returns {number}
|
|
275
|
+
*/
|
|
276
|
+
get b(): number {
|
|
277
|
+
return this.raw.get(PropertyType.B);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
class PIDcontrollerRemote implements IPIDcontroller {
|
|
282
|
+
constructor(private objectName: string, private gate: RemoteGate) {
|
|
283
|
+
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Zdarzenie wywoływane w momencie zmiany wartości cechy ControlOut
|
|
288
|
+
* @param callback
|
|
289
|
+
*/
|
|
290
|
+
addOnChange(_callback: () => void): void {
|
|
291
|
+
// Remote events are not supported
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Zdarzenie wywoływane w momencie uruchomienia regulatora
|
|
295
|
+
* @param callback
|
|
296
|
+
*/
|
|
297
|
+
addOnStart(_callback: () => void): void {
|
|
298
|
+
// Remote events are not supported
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Zdarzenie wywoływane przy zablokowaniu pracy
|
|
302
|
+
* @param callback
|
|
303
|
+
*/
|
|
304
|
+
addOnStop(_callback: () => void): void {
|
|
305
|
+
// Remote events are not supported
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Zdarzenie wywoływane w momencie przełączenia wartości cechy ControlOut na 1
|
|
309
|
+
* @param callback
|
|
310
|
+
*/
|
|
311
|
+
addOnOutOn(_callback: () => void): void {
|
|
312
|
+
// Remote events are not supported
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Zdarzenie wywoływane w momencie przełączenia wartości cechy ControlOut na 0
|
|
316
|
+
* @param callback
|
|
317
|
+
*/
|
|
318
|
+
addOnOutOff(_callback: () => void): void {
|
|
319
|
+
// Remote events are not supported
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* Podanie nowej wartości wejścia dla sterownika (pętla sprzężenia zwrotnego)
|
|
324
|
+
* @param {number} value
|
|
325
|
+
*/
|
|
326
|
+
source(value: number): void {
|
|
327
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
328
|
+
.execute()
|
|
329
|
+
.addParameter(MethodType.Source)
|
|
330
|
+
.addParameter(value)
|
|
331
|
+
.build();
|
|
332
|
+
this.gate.runScript(cmd!);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/** Przełącza w stan aktywny (State=1) */
|
|
336
|
+
start(): void {
|
|
337
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
338
|
+
.execute()
|
|
339
|
+
.addParameter(MethodType.Start)
|
|
340
|
+
.build();
|
|
341
|
+
this.gate.runScript(cmd!);
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
/** Przełącza w stan zatrzymania (State=0) */
|
|
345
|
+
stop(): void {
|
|
346
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
347
|
+
.execute()
|
|
348
|
+
.addParameter(MethodType.Stop)
|
|
349
|
+
.build();
|
|
350
|
+
this.gate.runScript(cmd!);
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
/**
|
|
354
|
+
* Wartość wyjścia sterującego (binarna, przełączana w cyklu określonym przez SwitchTime)
|
|
355
|
+
* @returns {number}
|
|
356
|
+
*/
|
|
357
|
+
get controlOut(): number {
|
|
358
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
359
|
+
.get()
|
|
360
|
+
.addParameter(PropertyType.ControlOut)
|
|
361
|
+
.build();
|
|
362
|
+
return this.gate.runScript(cmd!);
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Stan działania regulatora: 1 - aktywny, 0 - nieaktywny
|
|
367
|
+
* @returns {number}
|
|
368
|
+
*/
|
|
369
|
+
get state(): number {
|
|
370
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
371
|
+
.get()
|
|
372
|
+
.addParameter(PropertyType.State)
|
|
373
|
+
.build();
|
|
374
|
+
return this.gate.runScript(cmd!);
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* Ustawia wartość regulatora - wartość docelowa
|
|
379
|
+
* @returns {number}
|
|
380
|
+
*/
|
|
381
|
+
get setPoint(): number {
|
|
382
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
383
|
+
.get()
|
|
384
|
+
.addParameter(PropertyType.SetPoint)
|
|
385
|
+
.build();
|
|
386
|
+
return this.gate.runScript(cmd!);
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
set setPoint(value: number) {
|
|
390
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
391
|
+
.set()
|
|
392
|
+
.addParameter(PropertyType.SetPoint)
|
|
393
|
+
.addParameter(value)
|
|
394
|
+
.build();
|
|
395
|
+
this.gate.runScript(cmd!);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
/**
|
|
399
|
+
* Wzmocnienie członu proporcjonalnego regulatora PID
|
|
400
|
+
* @returns {number}
|
|
401
|
+
*/
|
|
402
|
+
get kp(): number {
|
|
403
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
404
|
+
.get()
|
|
405
|
+
.addParameter(PropertyType.Kp)
|
|
406
|
+
.build();
|
|
407
|
+
return this.gate.runScript(cmd!);
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
/**
|
|
411
|
+
* Wzmocnienie członu całkującego regulatora PID
|
|
412
|
+
* @returns {number}
|
|
413
|
+
*/
|
|
414
|
+
get ki(): number {
|
|
415
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
416
|
+
.get()
|
|
417
|
+
.addParameter(PropertyType.Ki)
|
|
418
|
+
.build();
|
|
419
|
+
return this.gate.runScript(cmd!);
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* Wzmocnienie członu różniczkującego regulatora PID
|
|
424
|
+
* @returns {number}
|
|
425
|
+
*/
|
|
426
|
+
get kd(): number {
|
|
427
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
428
|
+
.get()
|
|
429
|
+
.addParameter(PropertyType.Kd)
|
|
430
|
+
.build();
|
|
431
|
+
return this.gate.runScript(cmd!);
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
/**
|
|
435
|
+
* Czas przełączenia
|
|
436
|
+
* @returns {number}
|
|
437
|
+
*/
|
|
438
|
+
get switchTime(): number {
|
|
439
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
440
|
+
.get()
|
|
441
|
+
.addParameter(PropertyType.SwitchTime)
|
|
442
|
+
.build();
|
|
443
|
+
return this.gate.runScript(cmd!);
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
/**
|
|
447
|
+
* Parametr alpha w algorytmie Kaczmarza (zabezpieczenie przed dzieleniem przez 0)
|
|
448
|
+
* @returns {number}
|
|
449
|
+
*/
|
|
450
|
+
get alpha(): number {
|
|
451
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
452
|
+
.get()
|
|
453
|
+
.addParameter(PropertyType.Alpha)
|
|
454
|
+
.build();
|
|
455
|
+
return this.gate.runScript(cmd!);
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
set alpha(value: number) {
|
|
459
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
460
|
+
.set()
|
|
461
|
+
.addParameter(PropertyType.Alpha)
|
|
462
|
+
.addParameter(value)
|
|
463
|
+
.build();
|
|
464
|
+
this.gate.runScript(cmd!);
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* Parametr gamma w algorytmie Kaczmarza (dynamika zmian oszacowania a i b)
|
|
469
|
+
* @returns {number}
|
|
470
|
+
*/
|
|
471
|
+
get gamma(): number {
|
|
472
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
473
|
+
.get()
|
|
474
|
+
.addParameter(PropertyType.Gamma)
|
|
475
|
+
.build();
|
|
476
|
+
return this.gate.runScript(cmd!);
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
set gamma(value: number) {
|
|
480
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
481
|
+
.set()
|
|
482
|
+
.addParameter(PropertyType.Gamma)
|
|
483
|
+
.addParameter(value)
|
|
484
|
+
.build();
|
|
485
|
+
this.gate.runScript(cmd!);
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
/**
|
|
489
|
+
* Tryb pracy regulatora: 1 - ręczny PID, 2 - automatyczny algorytm Kaczmarza/
|
|
490
|
+
* @returns {ModeType}
|
|
491
|
+
*/
|
|
492
|
+
get mode(): ModeType {
|
|
493
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
494
|
+
.get()
|
|
495
|
+
.addParameter(PropertyType.Mode)
|
|
496
|
+
.build();
|
|
497
|
+
return this.gate.runScript(cmd!);
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
set mode(value: ModeType) {
|
|
501
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
502
|
+
.set()
|
|
503
|
+
.addParameter(PropertyType.Mode)
|
|
504
|
+
.addParameter(value)
|
|
505
|
+
.build();
|
|
506
|
+
this.gate.runScript(cmd!);
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
/**
|
|
510
|
+
* Parametr a w algorytmie Kaczmarza
|
|
511
|
+
* @returns {number}
|
|
512
|
+
*/
|
|
513
|
+
get a(): number {
|
|
514
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
515
|
+
.get()
|
|
516
|
+
.addParameter(PropertyType.A)
|
|
517
|
+
.build();
|
|
518
|
+
return this.gate.runScript(cmd!);
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
/**
|
|
522
|
+
* Parametr b w algorytmie Kaczmarza
|
|
523
|
+
* @returns {number}
|
|
524
|
+
*/
|
|
525
|
+
get b(): number {
|
|
526
|
+
const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
|
|
527
|
+
.get()
|
|
528
|
+
.addParameter(PropertyType.B)
|
|
529
|
+
.build();
|
|
530
|
+
return this.gate.runScript(cmd!);
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
export {
|
|
535
|
+
PIDcontroller, PIDcontrollerRaw, PIDcontrollerRemote, ModeType
|
|
536
|
+
}
|