1 | OBJECT: Drive |
---|
2 | DESCRIPTION: |
---|
3 | This object provides an interface to the elevation/azimuth |
---|
4 | drive system(ECA). |
---|
5 | THEORY OF OPERATION: |
---|
6 | This object encapsulates the turret drive. The object provides |
---|
7 | an interface to control the turret drive. A method is provided |
---|
8 | to set the azimuth and elevation rate of the drive. Methods are |
---|
9 | provided to request the drive to run in stabilized or power mode |
---|
10 | and set the drive speed to high or low. A method is also provided |
---|
11 | to allow for drift adjust. |
---|
12 | |
---|
13 | This object also tracks drive system on hours. It gets the hours |
---|
14 | from the EEPROM data, allows the hours to be set, updates the |
---|
15 | hours via the activation and deactivation of the drive, and |
---|
16 | provides access to the hours. |
---|
17 | |
---|
18 | + This is the first bullet. |
---|
19 | + This is the second bullet. |
---|
20 | + This is the third bullet. |
---|
21 | + This is the fourth bullet. |
---|
22 | + This is the fifth bullet. |
---|
23 | |
---|
24 | The object also provides methods to access azimuth and elevation |
---|
25 | displacement, and methods to process changes in the hardware |
---|
26 | discretes drive on, stabilized mode, thermal fault and fault. |
---|
27 | |
---|
28 | The object also provides methods to enable and disable |
---|
29 | both the remote and turret power interlocks which determine if |
---|
30 | the drive can be driven by the remote or turret handstation |
---|
31 | respectively. |
---|
32 | |
---|
33 | ATTRIBUTE DESCRIPTIONS: |
---|
34 | |
---|
35 | |
---|
36 | ATTRIBUTE: Azimuth_displacement |
---|
37 | DESCRIPTION: |
---|
38 | This attribute represents the current azimuth displacement |
---|
39 | of the turret. |
---|
40 | TYPE: floating point |
---|
41 | RANGE: 0-0 |
---|
42 | UNITS: degrees |
---|
43 | REQUIREMENTS: |
---|
44 | AFS 8.2.11 Receive Azimuth Displacement and Elevation Displacement |
---|
45 | AIS 5.2.6 Azimuth Displacement analog |
---|
46 | |
---|
47 | |
---|
48 | ATTRIBUTE: Azimuth_rate |
---|
49 | DESCRIPTION: |
---|
50 | Azimuth rate command for movement of the turret. |
---|
51 | TYPE: floating point |
---|
52 | RANGE: X-Y |
---|
53 | UNITS: degrees / second |
---|
54 | DEFAULT: none |
---|
55 | REQUIREMENTS: |
---|
56 | AFS 8.2.3 Send Azimuth and Elevation Rate to ECA |
---|
57 | AIS 5.3.4 Elevation Rate analog |
---|
58 | AIS 5.3.5 Azimuth Rate analog |
---|
59 | |
---|
60 | |
---|
61 | ATTRIBUTE: Drift_adjust |
---|
62 | DESCRIPTION: |
---|
63 | This attribute represents the current drift adjustment mode |
---|
64 | of the ECA turret drive. |
---|
65 | TYPE: enumerated |
---|
66 | MEMBERS: |
---|
67 | ADJUST_OFF - drift adjust mode is OFF |
---|
68 | ADJUST_ON - drift adjust mode is ON |
---|
69 | REQUIREMENTS: |
---|
70 | AFS 8.2.6 Capable of turret drift adjustment |
---|
71 | AIS 5.3.1 Drift Adjust discrete |
---|
72 | |
---|
73 | |
---|
74 | ATTRIBUTE: Drive_on |
---|
75 | DESCRIPTION: |
---|
76 | Current status of the turret drive. The turret drive may either be |
---|
77 | switched on or off. |
---|
78 | TYPE: boolean |
---|
79 | MEMBERS: |
---|
80 | FALSE - turret drive is off |
---|
81 | TRUE - turret drive is on |
---|
82 | DEFAULT: FALSE |
---|
83 | REQUIREMENTS: |
---|
84 | AFS 8.2.9 Monitor Drive System On |
---|
85 | AIS 5.2.1 Drive System On discrete |
---|
86 | |
---|
87 | |
---|
88 | ATTRIBUTE: Drive_system_hours |
---|
89 | DESCRIPTION: |
---|
90 | Total number of hours drive has been activated. |
---|
91 | TYPE: integer |
---|
92 | RANGE: 0 - +INFINITY |
---|
93 | UNITS: seconds |
---|
94 | REQUIREMENTS: |
---|
95 | AFS 4.11 Respond to CDT elapsed time indicator key |
---|
96 | |
---|
97 | |
---|
98 | ATTRIBUTE: Elevation_displacement |
---|
99 | DESCRIPTION: |
---|
100 | This attribute represents the current elevation displacement |
---|
101 | of the turret. |
---|
102 | TYPE: floating point |
---|
103 | RANGE: 0-0 |
---|
104 | UNITS: degrees |
---|
105 | REQUIREMENTS: |
---|
106 | AFS 8.2.11 Receive Azimuth Displacement and Elevation Displacement |
---|
107 | AIS 5.2.7 Elevation Displacement analog |
---|
108 | |
---|
109 | |
---|
110 | ATTRIBUTE: Elevation_rate |
---|
111 | DESCRIPTION: |
---|
112 | Elevation rate command for movement of the turret. |
---|
113 | TYPE: floating point |
---|
114 | RANGE: X - Y |
---|
115 | UNITS: degrees / second |
---|
116 | DEFAULT: none |
---|
117 | REQUIREMENTS: |
---|
118 | AFS 8.2.3 Send Azimuth and Elevation Rate to ECA |
---|
119 | AIS 5.3.4 Elevation Rate analog |
---|
120 | AIS 5.3.5 Azimuth Rate analog |
---|
121 | |
---|
122 | |
---|
123 | ATTRIBUTE: Fault |
---|
124 | DESCRIPTION: |
---|
125 | This attribute denotes whether a turret malfunction has occurred. |
---|
126 | TYPE: boolean |
---|
127 | MEMBERS: |
---|
128 | TRUE - a turret malfunction has occurred |
---|
129 | FALSE - no turret malfunction has occurred |
---|
130 | DEFAULT: FALSE |
---|
131 | REQUIREMENTS: |
---|
132 | AFS 8.2.7 Check for ECA failure indication |
---|
133 | AIS 5.2.4 Turret Drive Malfunction discrete |
---|
134 | |
---|
135 | |
---|
136 | ATTRIBUTE: Mode |
---|
137 | DESCRIPTION: |
---|
138 | Current requested drive mode. |
---|
139 | TYPE: enumerated |
---|
140 | MEMBERS: |
---|
141 | POWER - operate in POWER mode |
---|
142 | STAB - operate in STABILIZED mode |
---|
143 | DEFAULT: POWER |
---|
144 | REQUIREMENTS: |
---|
145 | bogus requirement |
---|
146 | |
---|
147 | |
---|
148 | ATTRIBUTE: Remote_power_interlock_position |
---|
149 | DESCRIPTION: |
---|
150 | This is the status of the remote's power interlock. |
---|
151 | TYPE: enumerated |
---|
152 | MEMBERS: |
---|
153 | OPEN - relay is open |
---|
154 | CLOSED - relay is closed |
---|
155 | REQUIREMENTS: |
---|
156 | AFS 8.2.12 Control Power Interlock |
---|
157 | |
---|
158 | |
---|
159 | ATTRIBUTE: Speed |
---|
160 | DESCRIPTION: |
---|
161 | Current speed mode of the ECA turret drive. |
---|
162 | TYPE: enumerated |
---|
163 | MEMBERS: |
---|
164 | LOW_SPEED - turret drive does not allow the maximum rate |
---|
165 | HIGH_SPEED - turret drive allows the maximum rate |
---|
166 | DEFAULT: HIGH |
---|
167 | REQUIREMENTS: |
---|
168 | AFS 8.2.5 Control Turret |
---|
169 | AIS 5.3.3 Turret High Speed Mode discrete |
---|
170 | |
---|
171 | |
---|
172 | ATTRIBUTE: Stabilized_mode |
---|
173 | DESCRIPTION: |
---|
174 | Current drive mode indicating whether the ECA electronics are |
---|
175 | operating in Stabilized mode or Power mode. |
---|
176 | TYPE: boolean |
---|
177 | MEMBERS: |
---|
178 | FALSE - not operating in STABILIZED mode |
---|
179 | TRUE - operating in STABILIZED mode |
---|
180 | DEFAULT: FALSE |
---|
181 | REQUIREMENTS: |
---|
182 | AFS 8.2.8 Monitor Turret Stab Mode Indicate |
---|
183 | AIS 5.2.3 Turret Stab Mode Indicate discrete |
---|
184 | |
---|
185 | |
---|
186 | ATTRIBUTE: State |
---|
187 | DESCRIPTION: |
---|
188 | Current state of the turret drive. |
---|
189 | TYPE: enumerated |
---|
190 | MEMBERS: |
---|
191 | ACTIVATED - turret drive is ON and active |
---|
192 | DEACTIVATED - turret drive is ON but deactivated |
---|
193 | DEFAULT: DEACTIVATED |
---|
194 | REQUIREMENTS: |
---|
195 | AFS 8.2.4 Set Plam Grips Active |
---|
196 | AIS 5.3.2 Palm Grips Active discrete |
---|
197 | |
---|
198 | |
---|
199 | ATTRIBUTE: Thermal_fault |
---|
200 | DESCRIPTION: |
---|
201 | This attribute denotes whether a turret thermal fault has occurred. |
---|
202 | TYPE: boolean |
---|
203 | MEMBERS: |
---|
204 | TRUE - a turret thermal fault has occurred |
---|
205 | FALSE - no turret thermal fault has occurred |
---|
206 | DEFAULT: FALSE |
---|
207 | REQUIREMENTS: |
---|
208 | AFS 8.2.7 Check for ECA failure indication |
---|
209 | AIS 5.2.2 Turret ECA Thermal Failure discrete |
---|
210 | |
---|
211 | |
---|
212 | ATTRIBUTE: Turret_power_interlock_position |
---|
213 | DESCRIPTION: |
---|
214 | This is the status of the turret's power interlock. |
---|
215 | TYPE: enumerated |
---|
216 | MEMBERS: |
---|
217 | OPEN - relay is open |
---|
218 | CLOSED - relay is closed |
---|
219 | REQUIREMENTS: |
---|
220 | AFS 8.2.12 Control Power Interlock |
---|
221 | |
---|
222 | |
---|
223 | ASSOCIATION DESCRIPTIONS: none |
---|
224 | |
---|
225 | ABSTRACT TYPE DESCRIPTIONS: |
---|
226 | |
---|
227 | ABSTRACT TYPE: Drift_adjust_t |
---|
228 | DESCRIPTION: |
---|
229 | This abstract type represents the current drift adjustment mode |
---|
230 | of the ECA turret drive. |
---|
231 | VISIBILITY: public |
---|
232 | DERIVATION: enumerated |
---|
233 | MEMBERS: |
---|
234 | ADJUST_OFF = 0 - drift adjust mode is OFF |
---|
235 | ADJUST_ON = 1 - drift adjust mode is ON |
---|
236 | REQUIREMENTS: |
---|
237 | AIS 5.3.1 Drift Adjust discrete |
---|
238 | |
---|
239 | ABSTRACT TYPE: Interlock_status |
---|
240 | DESCRIPTION: |
---|
241 | An interlock state being OPEN or CLOSED. |
---|
242 | VISIBILITY: private |
---|
243 | DERIVATION: enumerated |
---|
244 | MEMBERS: |
---|
245 | OPEN - interlock relay is in the open state |
---|
246 | CLOSED - interlock relay is in the closed state |
---|
247 | REQUIREMENTS: |
---|
248 | AFS 8.2.12 Control Power Interlock |
---|
249 | |
---|
250 | ABSTRACT TYPE: Mode |
---|
251 | DESCRIPTION: |
---|
252 | This type specifies the drive mode of the ECA turret drive. |
---|
253 | VISIBILITY: public |
---|
254 | DERIVATION: enumerated |
---|
255 | MEMBERS: |
---|
256 | POWER - operate in POWER mode |
---|
257 | STAB - operate in STABILIZED mode |
---|
258 | |
---|
259 | ABSTRACT TYPE: Speed |
---|
260 | DESCRIPTION: |
---|
261 | This type specifies the Speed mode of the ECA turret drive. |
---|
262 | VISIBILITY: public |
---|
263 | DERIVATION: enumerated |
---|
264 | MEMBERS: |
---|
265 | LOW_SPEED = 0 - turret drive does not allow the maximum rate |
---|
266 | HIGH_SPEED = 1 - turret drive allows the maximum rate |
---|
267 | REQUIREMENTS: |
---|
268 | AIS 5.3.3 Turret High Speed Mode discrete |
---|
269 | |
---|
270 | ABSTRACT TYPE: State_t |
---|
271 | DESCRIPTION: |
---|
272 | This type specifies the state of the turret drive. |
---|
273 | VISIBILITY: private |
---|
274 | DERIVATION: enumerated |
---|
275 | MEMBERS: |
---|
276 | DEACTIVATED - turret drive is ON but deactivated |
---|
277 | ACTIVATED - turret drive is ON and active |
---|
278 | |
---|
279 | DATA ITEM DESCRIPTIONS: |
---|
280 | |
---|
281 | DATA ITEM: Azimuth_displacement_control |
---|
282 | DESCRIPTION: |
---|
283 | This data item contains the Azimuth_displacement analog control |
---|
284 | information. |
---|
285 | TYPE: handle |
---|
286 | |
---|
287 | |
---|
288 | DATA ITEM: Azimuth_rate_control |
---|
289 | DESCRIPTION: |
---|
290 | This data item contains the Azimuth_rate analog control |
---|
291 | information. |
---|
292 | TYPE: handle |
---|
293 | |
---|
294 | |
---|
295 | DATA ITEM: Drift_adjust_control |
---|
296 | DESCRIPTION: |
---|
297 | This data item contains the Drift_adjust discrete control |
---|
298 | information. |
---|
299 | TYPE: handle |
---|
300 | |
---|
301 | |
---|
302 | DATA ITEM: Drive_activate_control |
---|
303 | DESCRIPTION: |
---|
304 | This data item contains the activate drive relay control information. |
---|
305 | TYPE: handle |
---|
306 | |
---|
307 | |
---|
308 | DATA ITEM: Drive_activated_timestamp |
---|
309 | DESCRIPTION: |
---|
310 | This data item stores the timestamp of the last time the drive was |
---|
311 | activated. It will be used to compute the activated time when a |
---|
312 | deactivate is received. |
---|
313 | TYPE: time_t |
---|
314 | DEFAULT: none |
---|
315 | NOTES: |
---|
316 | see C library for data type information |
---|
317 | |
---|
318 | |
---|
319 | DATA ITEM: Drive_on |
---|
320 | DESCRIPTION: |
---|
321 | The current status of the turret drive representing whether |
---|
322 | the drive is on or off. |
---|
323 | TYPE: boolean |
---|
324 | DEFAULT: FALSE |
---|
325 | |
---|
326 | |
---|
327 | DATA ITEM: Drive_on_control |
---|
328 | DESCRIPTION: |
---|
329 | This data item contains the Drive_on discrete flag control |
---|
330 | information. |
---|
331 | TYPE: handle |
---|
332 | |
---|
333 | |
---|
334 | DATA ITEM: Drive_system_hours |
---|
335 | DESCRIPTION: |
---|
336 | This data item stores the actual time the drive has been active. |
---|
337 | This value will be output by the Get_time method and will be set |
---|
338 | by the Set_time method. |
---|
339 | TYPE: integer |
---|
340 | RANGE: 0 - +INFINITY |
---|
341 | UNITS: seconds |
---|
342 | DEFAULT: 0 |
---|
343 | |
---|
344 | |
---|
345 | DATA ITEM: Elevation_rate_control |
---|
346 | DESCRIPTION: |
---|
347 | This data item contains the Elevation_rate analog control |
---|
348 | information. |
---|
349 | TYPE: handle |
---|
350 | |
---|
351 | |
---|
352 | DATA ITEM: Elevation_displacement_control |
---|
353 | DESCRIPTION: |
---|
354 | This data item contains the Elevation_displacement analog control |
---|
355 | information. |
---|
356 | TYPE: handle |
---|
357 | |
---|
358 | |
---|
359 | DATA ITEM: Fault_control |
---|
360 | DESCRIPTION: |
---|
361 | This data item contains the Fault discrete flag control |
---|
362 | information. |
---|
363 | TYPE: handle |
---|
364 | |
---|
365 | |
---|
366 | DATA ITEM: Remote_power_interlock_control |
---|
367 | DESCRIPTION: |
---|
368 | This data item contains the Remote_power_interlock relay control |
---|
369 | information. |
---|
370 | TYPE: handle |
---|
371 | |
---|
372 | |
---|
373 | DATA ITEM: Stabilized_mode_control |
---|
374 | DESCRIPTION: |
---|
375 | This data item contains the Stabilized_mode discrete flag control |
---|
376 | information. |
---|
377 | TYPE: handle |
---|
378 | |
---|
379 | |
---|
380 | DATA ITEM: State |
---|
381 | DESCRIPTION: |
---|
382 | The current state of the turret drive representing an activated or |
---|
383 | deactivated drive. |
---|
384 | TYPE: State_t |
---|
385 | DEFAULT: DEACTIVATED |
---|
386 | |
---|
387 | |
---|
388 | DATA ITEM: Thermal_fault_control |
---|
389 | DESCRIPTION: |
---|
390 | This data item contains the Thermal_fault discrete flag control |
---|
391 | information. |
---|
392 | TYPE: handle |
---|
393 | |
---|
394 | |
---|
395 | DATA ITEM: Turret_power_interlock_control |
---|
396 | DESCRIPTION: |
---|
397 | This data item contains the Turret_power_interlock relay control |
---|
398 | information. |
---|
399 | TYPE: handle |
---|
400 | |
---|
401 | |
---|
402 | DATA ITEM: Turret_power_interlock_status |
---|
403 | DESCRIPTION: |
---|
404 | The accurate status of the turret power interlock relay. This value |
---|
405 | will be used to control the relay during a transition from the remote |
---|
406 | back to the turret console. |
---|
407 | TYPE: Interlock_status |
---|
408 | DEFAULT: none |
---|
409 | |
---|
410 | |
---|
411 | METHOD DESCRIPTIONS: |
---|
412 | |
---|
413 | METHOD: Activate |
---|
414 | DESCRIPTION: |
---|
415 | This method activates the turret drive system. A timestamp of the |
---|
416 | activation is recorded to keep a running count of hours the drive has |
---|
417 | been active. |
---|
418 | VISIBILITY: public |
---|
419 | INPUTS: none |
---|
420 | OUTPUTS: none |
---|
421 | REQUIREMENTS: |
---|
422 | AFS 8.2.4 Set Palm Grips Active |
---|
423 | AIS 5.3.2 Palm Grips Active discrete |
---|
424 | PDL: |
---|
425 | |
---|
426 | if Drive_on |
---|
427 | if State is DEACTIVATED |
---|
428 | close the Drive_activate_control relay using the Relay object |
---|
429 | timestamp Drive_activated_timestamp for Drive_system_hours |
---|
430 | running total |
---|
431 | set State to ACTIVATED |
---|
432 | else |
---|
433 | already in the ACTIVATED state |
---|
434 | |
---|
435 | |
---|
436 | METHOD: Create |
---|
437 | DESCRIPTION: |
---|
438 | This method initializes the Turret Drive object. All monitors of |
---|
439 | turret drive signals are initialized and/or registered. All turret |
---|
440 | drive characteristics are set to their initial values. |
---|
441 | VISIBILITY: public |
---|
442 | INPUTS: none |
---|
443 | OUTPUTS: none |
---|
444 | PDL: |
---|
445 | |
---|
446 | set State to DEACTIVATED |
---|
447 | |
---|
448 | get Drive_system_hours to initialize the elapsed drive time |
---|
449 | from the Statistics (eeprom database) object - this is |
---|
450 | stored upon shutdown in eeprom |
---|
451 | |
---|
452 | create Fault_control using Discrete_flag object with the |
---|
453 | following attributes |
---|
454 | true_sense - DISCRETE_FLAG_TRUE_IS_1 |
---|
455 | is_buffered - false |
---|
456 | is_monitored - true |
---|
457 | period - 10ms |
---|
458 | change_routine - Change_fault |
---|
459 | change fault using initial value returned from create Fault_control |
---|
460 | |
---|
461 | create Thermal_fault_control using Discrete_flag object with |
---|
462 | the following attributes |
---|
463 | true_sense - DISCRETE_FLAG_TRUE_IS_0 |
---|
464 | is_buffered - false |
---|
465 | is_monitored - true |
---|
466 | period - 10ms |
---|
467 | change_routine - Change_thermal_fault |
---|
468 | change thermal fault using initial value returned from create |
---|
469 | Thermal_fault_control |
---|
470 | |
---|
471 | create Stabilized_mode_control using Discrete_flag object with the |
---|
472 | following attributes |
---|
473 | true_sense - DISCRETE_FLAG_TRUE_IS_1 |
---|
474 | is_buffered - false |
---|
475 | is_monitored - true |
---|
476 | period - 10ms |
---|
477 | change_routine - Change_stabilized_mode |
---|
478 | change stabilized mode using initial value returned from create |
---|
479 | Stabilized_mode_control |
---|
480 | |
---|
481 | create Drive_on_control using Discrete_flag object with the |
---|
482 | following attributes |
---|
483 | true_sense - DISCRETE_FLAG_TRUE_IS_1 |
---|
484 | is_buffered - false |
---|
485 | is_monitored - true |
---|
486 | period - 10ms |
---|
487 | change_routine - Change_drive_on |
---|
488 | change drive on using initial value returned from create |
---|
489 | Drive_on_control |
---|
490 | |
---|
491 | create Azimuth_rate_control using the Linear_dac object |
---|
492 | with the following attributes: |
---|
493 | voltage_low - -10 |
---|
494 | voltage_high - +10 |
---|
495 | logical_low - -60 |
---|
496 | logical_high - +60 |
---|
497 | is_buffered - false |
---|
498 | period - none |
---|
499 | initial_value - 0 |
---|
500 | |
---|
501 | create Elevation_rate_control using the Linear_dac object with the |
---|
502 | following attributes: |
---|
503 | voltage_low - -10 |
---|
504 | voltage_high - +10 |
---|
505 | logical_low - -60 |
---|
506 | logical_high - +60 |
---|
507 | is_buffered - false |
---|
508 | period - none |
---|
509 | initial_value - 0 |
---|
510 | |
---|
511 | create Azimuth_displacement_control using the Linear_adc object with |
---|
512 | the following attributes: |
---|
513 | voltage low - |
---|
514 | voltage high - |
---|
515 | logical low - |
---|
516 | logical high - |
---|
517 | is_buffered - false |
---|
518 | is_monitored - false |
---|
519 | period - none |
---|
520 | change_routine - none |
---|
521 | delta - none |
---|
522 | |
---|
523 | create Elevation_displacement_control using the Linear_adc object |
---|
524 | with the following attributes: |
---|
525 | voltage low - |
---|
526 | voltage high - |
---|
527 | logical low - |
---|
528 | logical high - |
---|
529 | is_buffered - false |
---|
530 | is_monitored - false |
---|
531 | period - none |
---|
532 | change_routine - none |
---|
533 | delta - none |
---|
534 | |
---|
535 | create Drive_activate_control using the Relay object with the |
---|
536 | following attributes: |
---|
537 | open_sense - RELAY_OPEN_IS_0 |
---|
538 | is_buffered - false |
---|
539 | period - none |
---|
540 | initial_state - RELAY_OPEN |
---|
541 | |
---|
542 | create Turret_power_interlock_control using the Relay object with |
---|
543 | the following attributes: |
---|
544 | open_sense - RELAY_OPEN_IS_0 |
---|
545 | is_buffered - false |
---|
546 | period - none |
---|
547 | initial_state - RELAY_OPEN |
---|
548 | set Turret_power_interlock_status to OPEN |
---|
549 | |
---|
550 | create Remote_power_interlock_control using the Relay |
---|
551 | object with the following attributes: |
---|
552 | open_sense - RELAY_OPEN_IS_0 |
---|
553 | is_buffered - false |
---|
554 | period - none |
---|
555 | initial_state - RELAY_OPEN |
---|
556 | |
---|
557 | create Drift_adjust_control using the Discrete_out object with |
---|
558 | following attributes: |
---|
559 | is_buffered - false |
---|
560 | period - 10ms |
---|
561 | initial_value - ADJUST_OFF |
---|
562 | |
---|
563 | |
---|
564 | METHOD: Deactivate |
---|
565 | DESCRIPTION: |
---|
566 | This method deactivates the turret drive system. A timestamp of the |
---|
567 | activation is recorded to keep a running count of hours the drive |
---|
568 | has been active. |
---|
569 | VISIBILITY: public |
---|
570 | INPUTS: none |
---|
571 | OUTPUTS: none |
---|
572 | REQUIREMENTS: |
---|
573 | AFS 8.2.4 Set Plam Grips Active |
---|
574 | AIS 5.3.2 Palm Grips Active discrete |
---|
575 | PDL: |
---|
576 | |
---|
577 | if Drive_on |
---|
578 | if State is DEACTIVATED |
---|
579 | timestamp deactivate for Drive_system_hours running total |
---|
580 | deactivate drive by opening the Drive_activate_control relay |
---|
581 | using the Relay object |
---|
582 | compute running time since last activate |
---|
583 | add running time to Drive_system_hours |
---|
584 | set State to DEACTIVATED |
---|
585 | else |
---|
586 | already in the DEACTIVATED state |
---|
587 | |
---|
588 | |
---|
589 | METHOD: Disable_remote_power_interlock |
---|
590 | DESCRIPTION: |
---|
591 | This method disables the turret power interlock safety preventing |
---|
592 | the turret from being driven by the remote's handstation. |
---|
593 | VISIBILITY: public |
---|
594 | INPUTS: none |
---|
595 | OUTPUTS: none |
---|
596 | REQUIREMENTS: |
---|
597 | AFS 8.2.12 Control Power Interlock |
---|
598 | PDL: |
---|
599 | |
---|
600 | open the remote power interlock relay |
---|
601 | return the turret relay to its designated state defined by the |
---|
602 | Turret_power_interlock_status |
---|
603 | |
---|
604 | |
---|
605 | METHOD: Disable_turret_power_interlock |
---|
606 | DESCRIPTION: |
---|
607 | This method disables the turret power interlock safety preventing |
---|
608 | the turret from being driven by the turret's handstation. |
---|
609 | VISIBILITY: public |
---|
610 | INPUTS: none |
---|
611 | OUTPUTS: none |
---|
612 | REQUIREMENTS: |
---|
613 | AFS 8.2.12 Control Power Interlock |
---|
614 | PDL: |
---|
615 | |
---|
616 | Deactivate the Drive object |
---|
617 | open the turret power interlock relay |
---|
618 | set Turret_power_interlock_status to OPEN |
---|
619 | |
---|
620 | |
---|
621 | METHOD: Enable_remote_power_interlock |
---|
622 | DESCRIPTION: |
---|
623 | This method will enable the remote power interlock to allow |
---|
624 | the turret to be driven from the remote station. |
---|
625 | VISIBILITY: public |
---|
626 | INPUTS: none |
---|
627 | OUTPUTS: none |
---|
628 | REQUIREMENTS: |
---|
629 | AFS 8.2.12 Control Power Interlock |
---|
630 | NOTES: |
---|
631 | At this time the turret's power interlock is opened to avoid |
---|
632 | having both relays closed at a time. |
---|
633 | PDL: |
---|
634 | |
---|
635 | if Drive_on |
---|
636 | open the turret power interlock relay using the Relay object |
---|
637 | close the remote power interlock relay using the Relay object |
---|
638 | |
---|
639 | |
---|
640 | METHOD: Enable_turret_power_interlock |
---|
641 | DESCRIPTION: |
---|
642 | This method will enable the turret power interlock to allow |
---|
643 | the turret to be driven from the turret station. |
---|
644 | VISIBILITY: public |
---|
645 | INPUTS: none |
---|
646 | OUTPUTS: none |
---|
647 | REQUIREMENTS: |
---|
648 | AFS 8.2.12 Control Power Interlock |
---|
649 | NOTES: |
---|
650 | At this time the closed state is saved to allow the correct state |
---|
651 | to be returned to in the event a remote overrides the turret and the |
---|
652 | remote gives up its control, we must return to the previous state of |
---|
653 | the turret power interlock. |
---|
654 | PDL: |
---|
655 | |
---|
656 | if Drive_on |
---|
657 | close the turret power interlock relay using the Relay object |
---|
658 | |
---|
659 | set the Turret_power_interlock_status to CLOSED to return to |
---|
660 | when remote gives up control |
---|
661 | |
---|
662 | |
---|
663 | METHOD: Get_AZ_EL_displacement |
---|
664 | DESCRIPTION: |
---|
665 | This method returns the current azimuth displacement and elevation |
---|
666 | displacement from the ECA. |
---|
667 | VISIBILITY: public |
---|
668 | INPUTS: none |
---|
669 | OUTPUTS: |
---|
670 | current azimuth displacement value |
---|
671 | current elevation displacement value |
---|
672 | REQUIREMENTS: |
---|
673 | AFS 8.2.11 Receive Azimuth Displacement and Elevation Displacement |
---|
674 | AIS 5.2.6 Azimuth Displacement analog |
---|
675 | AIS 5.2.7 Elevation Displacement analog |
---|
676 | NOTES: |
---|
677 | Currently supported as an on-demand type of signal. May change to a |
---|
678 | monitored analog signal. |
---|
679 | PDL: |
---|
680 | |
---|
681 | if Drive_on |
---|
682 | get and return current azimuth displacement and current elevation |
---|
683 | displacement from ECA using the Linear_ADC object |
---|
684 | |
---|
685 | |
---|
686 | METHOD: Get_hours |
---|
687 | DESCRIPTION: |
---|
688 | This method returns the current value contained in the elapsed |
---|
689 | turret drive active time. |
---|
690 | VISIBILITY: public |
---|
691 | INPUTS: none |
---|
692 | OUTPUTS: |
---|
693 | elapsed turret drive time - the current elasped turret drive time |
---|
694 | REQUIREMENTS: |
---|
695 | bogus requirements |
---|
696 | REFERENCES: |
---|
697 | AFS 4.11 Respond to CDT elapsed time indicator key |
---|
698 | NOTES: |
---|
699 | bogus notes |
---|
700 | PDL: |
---|
701 | |
---|
702 | return the current value for Drive_system_hours |
---|
703 | |
---|
704 | |
---|
705 | METHOD: Set_drift_adjust |
---|
706 | DESCRIPTION: |
---|
707 | This method provides the ability to set the drift adjust to the |
---|
708 | value represented by the handstation. Drift adjust is either ON |
---|
709 | or OFF. |
---|
710 | VISIBILITY: public |
---|
711 | INPUTS: |
---|
712 | value - new drift adjust value |
---|
713 | ADJUST_OFF - drift adjust mode is OFF |
---|
714 | ADJUST_ON - drift adjust mode is ON |
---|
715 | OUTPUTS: none |
---|
716 | REQUIREMENTS: |
---|
717 | AFS 8.2.6 Capable of turret drift adjustment |
---|
718 | AIS 5.3.1 Drift Adjust discrete |
---|
719 | PDL: |
---|
720 | |
---|
721 | if Drive_on |
---|
722 | set drift adjust discrete to value using Discrete_out object |
---|
723 | |
---|
724 | METHOD: Set_hours |
---|
725 | DESCRIPTION: |
---|
726 | This method will set the turret drive activated elapsed time value |
---|
727 | to the specified value. |
---|
728 | VISIBILITY: public |
---|
729 | INPUTS: |
---|
730 | new_elapsed_time_value - specified turret drive elapsed time value |
---|
731 | OUTPUTS: none |
---|
732 | REQUIREMENTS: |
---|
733 | AFS 4.11 Respond to CDT elapsed time indicator key |
---|
734 | PDL: |
---|
735 | |
---|
736 | set the value of Drive_system_hours to the value specified by |
---|
737 | new_elapsed_time_value |
---|
738 | |
---|
739 | |
---|
740 | METHOD: Set_mode |
---|
741 | DESCRIPTION: |
---|
742 | This method sets the requested mode of the turret drive. |
---|
743 | VISIBILITY: public |
---|
744 | INPUTS: |
---|
745 | mode - new requested mode |
---|
746 | POWER - operating in POWER mode |
---|
747 | STAB - operating in STABILIZED mode |
---|
748 | OUTPUTS: none |
---|
749 | REQUIREMENTS: |
---|
750 | bogus requirements |
---|
751 | PDL: |
---|
752 | if mode is POWER |
---|
753 | set drive mode switchlight to PWR_LAMP using the Console object |
---|
754 | else if mode is STAB |
---|
755 | set drive mode switchlight to STB_LAMP using the Console object |
---|
756 | |
---|
757 | |
---|
758 | METHOD: Set_rate |
---|
759 | DESCRIPTION: |
---|
760 | This method provides the ability to send azimuth and elevation rates |
---|
761 | to the drive. Two parameters are used as input to designate the |
---|
762 | corresponding rates. These parameters must be in degrees per second. |
---|
763 | VISIBILITY: public |
---|
764 | INPUTS: |
---|
765 | azimuth rate - new azimuth rate in degress per second |
---|
766 | elevation rate - new elevation rate in degress per second |
---|
767 | OUTPUTS: none |
---|
768 | REQUIREMENTS: |
---|
769 | AFS 8.2.3 Send Azimuth and Elevation Rate to ECA |
---|
770 | AIS 5.3.4 Elevation Rate analog |
---|
771 | AIS 5.3.5 Azimuth Rate analog |
---|
772 | NOTES: |
---|
773 | May need to couple these analogs with an interface driver to close |
---|
774 | the window between writes and conversions. |
---|
775 | PDL: |
---|
776 | |
---|
777 | if Drive_on |
---|
778 | send the new azimuth rate to the Azimuth analog |
---|
779 | send the new elevation rate to Elevation analog |
---|
780 | |
---|
781 | |
---|
782 | METHOD: Set_speed |
---|
783 | DESCRIPTION: |
---|
784 | This method sets the turret drive speed mode to the specified value |
---|
785 | either high or low based on user input. |
---|
786 | VISIBILITY: public |
---|
787 | INPUTS: |
---|
788 | new_speed_value - new value to set the turret speed to |
---|
789 | LOW_SPEED - turret drive does not allow the maximum rate |
---|
790 | HIGH_SPEED - turret drive allows the maximum rate |
---|
791 | OUTPUTS: none |
---|
792 | REQUIREMENTS: |
---|
793 | AFS 8.2.5 Control Turret |
---|
794 | AIS 5.3.3 Turret High Speed Mode discrete |
---|
795 | PDL: |
---|
796 | |
---|
797 | if Drive_on |
---|
798 | set turret drive high speed mode discrete to the new_speed_value |
---|
799 | using Discrete_out object |
---|
800 | |
---|
801 | |
---|
802 | METHOD: Change_drive_on |
---|
803 | DESCRIPTION: |
---|
804 | This method will be used to report a transition of the drive system |
---|
805 | on discrete. |
---|
806 | VISIBILITY: private |
---|
807 | INPUTS: |
---|
808 | value - new drive system on value |
---|
809 | FALSE - indicates drive not on |
---|
810 | TRUE - indicates drive on |
---|
811 | OUTPUTS: none |
---|
812 | REQUIREMENTS: |
---|
813 | AFS 8.2.9 Monitor Drive System On |
---|
814 | AIS 5.2.1 Drive System On discrete |
---|
815 | REFERENCES: |
---|
816 | bogus references |
---|
817 | NOTES: |
---|
818 | bogus notes |
---|
819 | PDL: |
---|
820 | |
---|
821 | set Drive_on to value |
---|
822 | if Drive_on is FALSE |
---|
823 | deactivate the turret drive using the Drive object |
---|
824 | |
---|
825 | |
---|
826 | METHOD: Change_fault |
---|
827 | DESCRIPTION: |
---|
828 | This method will be used to indicate that a turret malfunction |
---|
829 | has been recognized by the turret drive. |
---|
830 | VISIBILITY: private |
---|
831 | INPUTS: |
---|
832 | value - new value resulting from a fault discrete change |
---|
833 | FALSE - indicates no fault |
---|
834 | TRUE - indicates fault |
---|
835 | OUTPUTS: none |
---|
836 | REQUIREMENTS: |
---|
837 | AFS 8.2.7 Check for ECA failure indication |
---|
838 | AIS 5.2.4 Turret Drive Malfunction discrete |
---|
839 | PDL: |
---|
840 | |
---|
841 | if value |
---|
842 | send turret fault message using the Display object |
---|
843 | else |
---|
844 | return |
---|
845 | |
---|
846 | |
---|
847 | METHOD: Change_stabilized_mode |
---|
848 | DESCRIPTION: |
---|
849 | This method will determine a transition from STAB mode to POWER mode. |
---|
850 | It will set the stab mode lamp on the console. |
---|
851 | VISIBILITY: private |
---|
852 | INPUTS: |
---|
853 | value - new value resulting from a stab mode discrete change |
---|
854 | FALSE - indicates not stabilized mode |
---|
855 | TRUE - indicates stabilized mode |
---|
856 | OUTPUTS: none |
---|
857 | REQUIREMENTS: |
---|
858 | AFS 8.2.8 Monitor Turret Stab Mode Indicate |
---|
859 | AIS 5.2.3 Turret Stab Mode Indicate discrete |
---|
860 | PDL: |
---|
861 | |
---|
862 | if value |
---|
863 | set STAB mode light to LAMP_ON using the Console object |
---|
864 | else value indicates not stabilized mode |
---|
865 | set STAB mode light to LAMP_OFF using the Console object |
---|
866 | |
---|
867 | |
---|
868 | METHOD: Change_thermal_fault |
---|
869 | DESCRIPTION: |
---|
870 | This method will be used to indicate that a thermal fault has been |
---|
871 | recognized by the turret drive. |
---|
872 | VISIBILITY: private |
---|
873 | INPUTS: |
---|
874 | value - new value resulting from a thermal fault discrete change |
---|
875 | FALSE - indicates no thermal fault |
---|
876 | TRUE - indicates thermal fault |
---|
877 | OUTPUTS: none |
---|
878 | REQUIREMENTS: |
---|
879 | AFS 8.2.7 Check for ECA failure indication |
---|
880 | AIS 5.2.2 Turret ECA Thermal Failure discrete |
---|
881 | PDL: |
---|
882 | |
---|
883 | if value |
---|
884 | send thermal fault message using the Display object |
---|
885 | else |
---|
886 | return |
---|
887 | |
---|
888 | TASK DESCRIPTIONS: none |
---|
889 | |
---|
890 | ENDOBJECT: Drive |
---|