diff options
Diffstat (limited to 'doc/tools/pdl2texi/drive.d')
-rw-r--r-- | doc/tools/pdl2texi/drive.d | 874 |
1 files changed, 874 insertions, 0 deletions
diff --git a/doc/tools/pdl2texi/drive.d b/doc/tools/pdl2texi/drive.d new file mode 100644 index 0000000000..ff41d5ad38 --- /dev/null +++ b/doc/tools/pdl2texi/drive.d @@ -0,0 +1,874 @@ +OBJECT: Drive + DESCRIPTION: + This object provides an interface to the elevation/azimuth + drive system(ECA). + THEORY OF OPERATION: + This object encapsulates the turret drive. The object provides + an interface to control the turret drive. A method is provided + to set the azimuth and elevation rate of the drive. Methods are + provided to request the drive to run in stabilized or power mode + and set the drive speed to high or low. A method is also provided + to allow for drift adjust. + + This object also tracks drive system on hours. It gets the hours + from the EEPROM data, allows the hours to be set, updates the + hours via the activation and deactivation of the drive, and + provides access to the hours. + + The object also provides methods to access azimuth and elevation + displacement, and methods to process changes in the hardware + discretes drive on, stabilized mode, thermal fault and fault. + + The object also provides methods to enable and disable + both the remote and turret power interlocks which determine if + the drive can be driven by the remote or turret handstation + respectively. + +ATTRIBUTE DESCRIPTIONS: + + +ATTRIBUTE: Azimuth_displacement + DESCRIPTION: + This attribute represents the current azimuth displacement + of the turret. + TYPE: floating point + RANGE: ??? + UNITS: degrees + REQUIREMENTS: + AFS 8.2.11 Receive Azimuth Displacement and Elevation Displacement + AIS 5.2.6 Azimuth Displacement analog + + +ATTRIBUTE: Azimuth_rate + DESCRIPTION: + Azimuth rate command for movement of the turret. + TYPE: floating point + UNITS: degrees / second + DEFAULTS: none + REQUIREMENTS: + AFS 8.2.3 Send Azimuth and Elevation Rate to ECA + AIS 5.3.4 Elevation Rate analog + AIS 5.3.5 Azimuth Rate analog + + +ATTRIBUTE: Drift_adjust + DESCRIPTION: + This attribute represents the current drift adjustment mode + of the ECA turret drive. + TYPE: enumerated + MEMBERS: + ADJUST_OFF - drift adjust mode is OFF + ADJUST_ON - drift adjust mode is ON + REQUIREMENTS: + AFS 8.2.6 Capable of turret drift adjustment + AIS 5.3.1 Drift Adjust discrete + + +ATTRIBUTE: Drive_on + DESCRIPTION: + Current status of the turret drive. The turret drive may either be + switched on or off. + TYPE: boolean + MEMBERS: + FALSE - turret drive is off + TRUE - turret drive is on + DEFAULTS: FALSE + REQUIREMENTS: + AFS 8.2.9 Monitor Drive System On + AIS 5.2.1 Drive System On discrete + + +ATTRIBUTE: Drive_system_hours + DESCRIPTION: + Total number of hours drive has been activated. + TYPE: integer + RANGE: 0 - +INFINITY + UNITS: seconds + REQUIREMENTS: + AFS 4.11 Respond to CDT elapsed time indicator key + + +ATTRIBUTE: Elevation_displacement + DESCRIPTION: + This attribute represents the current elevation displacement + of the turret. + TYPE: floating point + RANGE: ??? + UNITS: degrees + REQUIREMENTS: + AFS 8.2.11 Receive Azimuth Displacement and Elevation Displacement + AIS 5.2.7 Elevation Displacement analog + + +ATTRIBUTE: Elevation_rate + DESCRIPTION: + Elevation rate command for movement of the turret. + TYPE: floating point + UNITS: degrees / second + DEFAULTS: none + REQUIREMENTS: + AFS 8.2.3 Send Azimuth and Elevation Rate to ECA + AIS 5.3.4 Elevation Rate analog + AIS 5.3.5 Azimuth Rate analog + + +ATTRIBUTE: Fault + DESCRIPTION: + This attribute denotes whether a turret malfunction has occurred. + TYPE: boolean + MEMBERS: + TRUE - a turret malfunction has occurred + FALSE - no turret malfunction has occurred + DEFAULTS: FALSE + REQUIREMENTS: + AFS 8.2.7 Check for ECA failure indication + AIS 5.2.4 Turret Drive Malfunction discrete + + +ATTRIBUTE: Mode + DESCRIPTION: + Current requested drive mode. + TYPE: enumerated + MEMBERS: + POWER - operate in POWER mode + STAB - operate in STABILIZED mode + DEFAULTS: POWER + REQUIREMENTS: + + +ATTRIBUTE: Remote_power_interlock_position + DESCRIPTION: + This is the status of the remote's power interlock. + TYPE: enumerated + MEMBERS: + OPEN - relay is open + CLOSED - relay is closed + REQUIREMENTS: + AFS 8.2.12 Control Power Interlock + + +ATTRIBUTE: Speed + DESCRIPTION: + Current speed mode of the ECA turret drive. + TYPE: enumerated + MEMBERS: + LOW_SPEED - turret drive does not allow the maximum rate + HIGH_SPEED - turret drive allows the maximum rate + DEFAULTS: HIGH + REQUIREMENTS: + AFS 8.2.5 Control Turret + AIS 5.3.3 Turret High Speed Mode discrete + + +ATTRIBUTE: Stabilized_mode + DESCRIPTION: + Current drive mode indicating whether the ECA electronics are + operating in Stabilized mode or Power mode. + TYPE: boolean + MEMBERS: + FALSE - not operating in STABILIZED mode + TRUE - operating in STABILIZED mode + DEFAULTS: FALSE + REQUIREMENTS: + AFS 8.2.8 Monitor Turret Stab Mode Indicate + AIS 5.2.3 Turret Stab Mode Indicate discrete + + +ATTRIBUTE: State + DESCRIPTION: + Current state of the turret drive. + TYPE: enumerated + MEMBERS: + ACTIVATED - turret drive is ON and active + DEACTIVATED - turret drive is ON but deactivated + DEFAULTS: DEACTIVATED + REQUIREMENTS: + AFS 8.2.4 Set Plam Grips Active + AIS 5.3.2 Palm Grips Active discrete + + +ATTRIBUTE: Thermal_fault + DESCRIPTION: + This attribute denotes whether a turret thermal fault has occurred. + TYPE: boolean + MEMBERS: + TRUE - a turret thermal fault has occurred + FALSE - no turret thermal fault has occurred + DEFAULTS: FALSE + REQUIREMENTS: + AFS 8.2.7 Check for ECA failure indication + AIS 5.2.2 Turret ECA Thermal Failure discrete + + +ATTRIBUTE: Turret_power_interlock_position + DESCRIPTION: + This is the status of the turret's power interlock. + TYPE: enumerated + MEMBERS: + OPEN - relay is open + CLOSED - relay is closed + REQUIREMENTS: + AFS 8.2.12 Control Power Interlock + + +ASSOCIATION DESCRIPTIONS: none + +ABSTRACT TYPE DESCRIPTIONS: + +ABSTRACT TYPE: Drift_adjust_t + DESCRIPTION: + This abstract type represents the current drift adjustment mode + of the ECA turret drive. + VISIBILITY: public + DERIVATION: enumerated + MEMBERS: + ADJUST_OFF = 0 - drift adjust mode is OFF + ADJUST_ON = 1 - drift adjust mode is ON + REQUIREMENTS: + AIS 5.3.1 Drift Adjust discrete + +ABSTRACT TYPE: Interlock_status + DESCRIPTION: + An interlock state being OPEN or CLOSED. + VISIBILITY: private + DERIVATION: enumerated + MEMBERS: + OPEN - interlock relay is in the open state + CLOSED - interlock relay is in the closed state + REQUIREMENTS: + AFS 8.2.12 Control Power Interlock + +ABSTRACT TYPE: Mode + DESCRIPTION: + This type specifies the drive mode of the ECA turret drive. + VISIBILITY: public + DERIVATION: enumerated + MEMBERS: + POWER - operate in POWER mode + STAB - operate in STABILIZED mode + +ABSTRACT TYPE: Speed + DESCRIPTION: + This type specifies the Speed mode of the ECA turret drive. + VISIBILITY: public + DERIVATION: enumerated + MEMBERS: + LOW_SPEED = 0 - turret drive does not allow the maximum rate + HIGH_SPEED = 1 - turret drive allows the maximum rate + REQUIREMENTS: + AIS 5.3.3 Turret High Speed Mode discrete + +ABSTRACT TYPE: State_t + DESCRIPTION: + This type specifies the state of the turret drive. + VISIBILITY: private + DERIVATION: enumerated + MEMBERS: + DEACTIVATED - turret drive is ON but deactivated + ACTIVATED - turret drive is ON and active + +DATA ITEM DESCRIPTIONS: + +DATA ITEM: Azimuth_displacement_control + DESCRIPTION: + This data item contains the Azimuth_displacement analog control + information. + TYPE: handle + + +DATA ITEM: Azimuth_rate_control + DESCRIPTION: + This data item contains the Azimuth_rate analog control + information. + TYPE: handle + + +DATA ITEM: Drift_adjust_control + DESCRIPTION: + This data item contains the Drift_adjust discrete control + information. + TYPE: handle + + +DATA ITEM: Drive_activate_control + DESCRIPTION: + This data item contains the activate drive relay control information. + TYPE: handle + + +DATA ITEM: Drive_activated_timestamp + DESCRIPTION: + This data item stores the timestamp of the last time the drive was + activated. It will be used to compute the activated time when a + deactivate is received. + TYPE: time_t + DEFAULT: none + NOTES: + see C library for data type information ??? + + +DATA ITEM: Drive_on + DESCRIPTION: + The current status of the turret drive representing whether + the drive is on or off. + TYPE: boolean + DEFAULT: FALSE + + +DATA ITEM: Drive_on_control + DESCRIPTION: + This data item contains the Drive_on discrete flag control + information. + TYPE: handle + + +DATA ITEM: Drive_system_hours + DESCRIPTION: + This data item stores the actual time the drive has been active. + This value will be output by the Get_time method and will be set + by the Set_time method. + TYPE: integer + RANGE: 0 - +INFINITY + UNITS: seconds + DEFAULT: 0 + + +DATA ITEM: Elevation_rate_control + DESCRIPTION: + This data item contains the Elevation_rate analog control + information. + TYPE: handle + + +DATA ITEM: Elevation_displacement_control + DESCRIPTION: + This data item contains the Elevation_displacement analog control + information. + TYPE: handle + + +DATA ITEM: Fault_control + DESCRIPTION: + This data item contains the Fault discrete flag control + information. + TYPE: handle + + +DATA ITEM: Remote_power_interlock_control + DESCRIPTION: + This data item contains the Remote_power_interlock relay control + information. + TYPE: handle + + +DATA ITEM: Stabilized_mode_control + DESCRIPTION: + This data item contains the Stabilized_mode discrete flag control + information. + TYPE: handle + + +DATA ITEM: State + DESCRIPTION: + The current state of the turret drive representing an activated or + deactivated drive. + TYPE: State_t + DEFAULT: DEACTIVATED + + +DATA ITEM: Thermal_fault_control + DESCRIPTION: + This data item contains the Thermal_fault discrete flag control + information. + TYPE: handle + + +DATA ITEM: Turret_power_interlock_control + DESCRIPTION: + This data item contains the Turret_power_interlock relay control + information. + TYPE: handle + + +DATA ITEM: Turret_power_interlock_status + DESCRIPTION: + The accurate status of the turret power interlock relay. This value + will be used to control the relay during a transition from the remote + back to the turret console. + TYPE: Interlock_status + DEFAULT: none + + +METHODS DESCRIPTIONS: + +METHOD: Activate + DESCRIPTION: + This method activates the turret drive system. A timestamp of the + activation is recorded to keep a running count of hours the drive has + been active. + VISIBILITY: public + INPUTS: none + OUTPUTS: none + REQUIREMENTS: + AFS 8.2.4 Set Palm Grips Active + AIS 5.3.2 Palm Grips Active discrete + PDL: + + if Drive_on + if State is DEACTIVATED + close the Drive_activate_control relay using the Relay object + timestamp Drive_activated_timestamp for Drive_system_hours + running total + set State to ACTIVATED + else + already in the ACTIVATED state + + +METHOD: Create + DESCRIPTION: + This method initializes the Turret Drive object. All monitors of + turret drive signals are initialized and/or registered. All turret + drive characteristics are set to their initial values. + VISIBILITY: public + INPUTS: none + OUTPUTS: none + PDL: + + set State to DEACTIVATED + + get Drive_system_hours to initialize the elapsed drive time + from the Statistics (eeprom database ???) object - this is + stored upon shutdown in eeprom + + create Fault_control using Discrete_flag object with the + following attributes + true_sense - DISCRETE_FLAG_TRUE_IS_1 + is_buffered - false + is_monitored - true + period - 10ms + change_routine - Change_fault + change fault using initial value returned from create Fault_control + + create Thermal_fault_control using Discrete_flag object with + the following attributes + true_sense - DISCRETE_FLAG_TRUE_IS_0 + is_buffered - false + is_monitored - true + period - 10ms + change_routine - Change_thermal_fault + change thermal fault using initial value returned from create + Thermal_fault_control + + create Stabilized_mode_control using Discrete_flag object with the + following attributes + true_sense - DISCRETE_FLAG_TRUE_IS_1 + is_buffered - false + is_monitored - true + period - 10ms + change_routine - Change_stabilized_mode + change stabilized mode using initial value returned from create + Stabilized_mode_control + + create Drive_on_control using Discrete_flag object with the + following attributes + true_sense - DISCRETE_FLAG_TRUE_IS_1 + is_buffered - false + is_monitored - true + period - 10ms + change_routine - Change_drive_on + change drive on using initial value returned from create + Drive_on_control + + create Azimuth_rate_control using the Linear_dac object + with the following attributes: + none voltage_low - -10 + voltage_high - +10 + logical_low - -60 + logical_high - +60 + is_buffered - false + period - none + initial_value - 0 + + create Elevation_rate_control using the Linear_dac object with the + following attributes: + voltage_low - -10 + voltage_high - +10 + logical_low - -60 + logical_high - +60 + is_buffered - false + period - none + initial_value - 0 + + create Azimuth_displacement_control using the Linear_adc object with + the following attributes: + voltage low - + voltage high - + logical low - + logical high - + is_buffered - false + is_monitored - false + period - none + change_routine - none + delta - none + + create Elevation_displacement_control using the Linear_adc object + with the following attributes: + voltage low - + voltage high - + logical low - + logical high - + is_buffered - false + is_monitored - false + period - none + change_routine - none + delta - none + + create Drive_activate_control using the Relay object with the + following attributes: + open_sense - RELAY_OPEN_IS_0 + is_buffered - false + period - none + initial_state - RELAY_OPEN + + create Turret_power_interlock_control using the Relay object with + the following attributes: + open_sense - RELAY_OPEN_IS_0 + is_buffered - false + period - none + initial_state - RELAY_OPEN + set Turret_power_interlock_status to OPEN + + create Remote_power_interlock_control using the Relay + object with the following attributes: + open_sense - RELAY_OPEN_IS_0 + is_buffered - false + period - none + initial_state - RELAY_OPEN + + create Drift_adjust_control using the Discrete_out object with + following attributes: + is_buffered - false + period - 10ms + initial_value - ADJUST_OFF + + +METHOD: Deactivate + DESCRIPTION: + This method deactivates the turret drive system. A timestamp of the + activation is recorded to keep a running count of hours the drive + has been active. + VISIBILITY: public + INPUTS: none + OUTPUTS: none + REQUIREMENTS: + AFS 8.2.4 Set Plam Grips Active + AIS 5.3.2 Palm Grips Active discrete + PDL: + + if Drive_on + if State is DEACTIVATED + timestamp deactivate for Drive_system_hours running total + deactivate drive by opening the Drive_activate_control relay + using the Relay object + compute running time since last activate + add running time to Drive_system_hours + set State to DEACTIVATED + else + already in the DEACTIVATED state + + +METHOD: Disable_remote_power_interlock + DESCRIPTION: + This method disables the turret power interlock safety preventing + the turret from being driven by the remote's handstation. + VISIBILITY: public + INPUTS: none + OUTPUTS: none + REQUIREMENTS: + AFS 8.2.12 Control Power Interlock + PDL: + + open the remote power interlock relay + return the turret relay to its designated state defined by the + Turret_power_interlock_status + + +METHOD: Disable_turret_power_interlock + DESCRIPTION: + This method disables the turret power interlock safety preventing + the turret from being driven by the turret's handstation. + VISIBILITY: public + INPUTS: none + OUTPUTS: none + REQUIREMENTS: + AFS 8.2.12 Control Power Interlock + PDL: + + Deactivate the Drive object + open the turret power interlock relay + set Turret_power_interlock_status to OPEN + + +METHOD: Enable_remote_power_interlock + DESCRIPTION: + This method will enable the remote power interlock to allow + the turret to be driven from the remote station. + VISIBILITY: public + INPUTS: none + OUTPUTS: none + REQUIREMENTS: + AFS 8.2.12 Control Power Interlock + NOTES: + At this time the turret's power interlock is opened to avoid + having both relays closed at a time. + PDL: + + if Drive_on + open the turret power interlock relay using the Relay object + close the remote power interlock relay using the Relay object + + +METHOD: Enable_turret_power_interlock + DESCRIPTION: + This method will enable the turret power interlock to allow + the turret to be driven from the turret station. + VISIBILITY: public + INPUTS: none + OUTPUTS: none + REQUIREMENTS: + AFS 8.2.12 Control Power Interlock + NOTES: + At this time the closed state is saved to allow the correct state + to be returned to in the event a remote overrides the turret and the + remote gives up its control, we must return to the previous state of + the turret power interlock. + PDL: + + if Drive_on + close the turret power interlock relay using the Relay object + + set the Turret_power_interlock_status to CLOSED to return to + when remote gives up control + + +METHOD: Get_AZ_EL_displacement + DESCRIPTION: + This method returns the current azimuth displacement and elevation + displacement from the ECA. + VISIBILITY: public + INPUTS: none + OUTPUTS: + current azimuth displacement value + current elevation displacement value + REQUIREMENTS: + AFS 8.2.11 Receive Azimuth Displacement and Elevation Displacement + AIS 5.2.6 Azimuth Displacement analog + AIS 5.2.7 Elevation Displacement analog + NOTES: + Currently supported as an on-demand type of signal. May change to a + monitored analog signal. + PDL: + + if Drive_on + get and return current azimuth displacement and current elevation + displacement from ECA using the Linear_ADC object + + +METHOD: Get_hours + DESCRIPTION: + This method returns the current value contained in the elapsed + turret drive active time. + VISIBILITY: public + INPUTS: none + OUTPUTS: + elapsed turret drive time - the current elasped turret drive time + REQUIREMENTS: + REFERENCES: + AFS 4.11 Respond to CDT elapsed time indicator key + NOTES: + PDL: + + return the current value for Drive_system_hours + + +METHOD: Set_drift_adjust + DESCRIPTION: + This method provides the ability to set the drift adjust to the + value represented by the handstation. Drift adjust is either ON + or OFF. + VISIBILITY: public + INPUTS: + value - new drift adjust value + ADJUST_OFF - drift adjust mode is OFF + ADJUST_ON - drift adjust mode is ON + OUTPUTS: none + REQUIREMENTS: + AFS 8.2.6 Capable of turret drift adjustment + AIS 5.3.1 Drift Adjust discrete + PDL: + + if Drive_on + set drift adjust discrete to value using Discrete_out object + +METHOD: Set_hours + DESCRIPTION: + This method will set the turret drive activated elapsed time value + to the specified value. + VISIBILITY: public + INPUTS: + new_elapsed_time_value - specified turret drive elapsed time value + OUTPUTS: none + REQUIREMENTS: + AFS 4.11 Respond to CDT elapsed time indicator key + PDL: + + set the value of Drive_system_hours to the value specified by + new_elapsed_time_value + + +METHOD: Set_mode + DESCRIPTION: + This method sets the requested mode of the turret drive. + VISIBILITY: public + INPUTS: + mode - new requested mode + POWER - operating in POWER mode + STAB - operating in STABILIZED mode + OUTPUTS: none + REQUIREMENTS: + PDL: + if mode is POWER + set drive mode switchlight to PWR_LAMP using the Console object + else if mode is STAB + set drive mode switchlight to STB_LAMP using the Console object + + +METHOD: Set_rate + DESCRIPTION: + This method provides the ability to send azimuth and elevation rates + to the drive. Two parameters are used as input to designate the + corresponding rates. These parameters must be in degrees per second. + VISIBILITY: public + INPUTS: + azimuth rate - new azimuth rate in degress per second + elevation rate - new elevation rate in degress per second + OUTPUTS: none + REQUIREMENTS: + AFS 8.2.3 Send Azimuth and Elevation Rate to ECA + AIS 5.3.4 Elevation Rate analog + AIS 5.3.5 Azimuth Rate analog + NOTES: + May need to couple these analogs with an interface driver to close + the window between writes and conversions. + PDL: + + if Drive_on + send the new azimuth rate to the Azimuth analog + send the new elevation rate to Elevation analog + + +METHOD: Set_speed + DESCRIPTION: + This method sets the turret drive speed mode to the specified value + either high or low based on user input. + VISIBILITY: public + INPUTS: + new_speed_value - new value to set the turret speed to + LOW_SPEED - turret drive does not allow the maximum rate + HIGH_SPEED - turret drive allows the maximum rate + OUTPUTS: none + REQUIREMENTS: + AFS 8.2.5 Control Turret + AIS 5.3.3 Turret High Speed Mode discrete + PDL: + + if Drive_on + set turret drive high speed mode discrete to the new_speed_value + using Discrete_out object + + +METHOD: Change_drive_on + DESCRIPTION: + This method will be used to report a transition of the drive system + on discrete. + VISIBILITY: private + INPUTS: + value - new drive system on value + FALSE - indicates drive not on + TRUE - indicates drive on + OUTPUTS: none + REQUIREMENTS: + AFS 8.2.9 Monitor Drive System On + AIS 5.2.1 Drive System On discrete + REFERENCES: + NOTES: + PDL: + + set Drive_on to value + if Drive_on is FALSE + deactivate the turret drive using the Drive object + + +METHOD: Change_fault + DESCRIPTION: + This method will be used to indicate that a turret malfunction + has been recognized by the turret drive. + VISIBILITY: private + INPUTS: + value - new value resulting from a fault discrete change + FALSE - indicates no fault + TRUE - indicates fault + OUTPUTS: none + REQUIREMENTS: + AFS 8.2.7 Check for ECA failure indication + AIS 5.2.4 Turret Drive Malfunction discrete + PDL: + + if value + send turret fault message using the Display object + else + return + + +METHOD: Change_stabilized_mode + DESCRIPTION: + This method will determine a transition from STAB mode to POWER mode. + It will set the stab mode lamp on the console. + VISIBILITY: private + INPUTS: + value - new value resulting from a stab mode discrete change + FALSE - indicates not stabilized mode + TRUE - indicates stabilized mode + OUTPUTS: none + REQUIREMENTS: + AFS 8.2.8 Monitor Turret Stab Mode Indicate + AIS 5.2.3 Turret Stab Mode Indicate discrete + PDL: + + if value + set STAB mode light to LAMP_ON using the Console object + else value indicates not stabilized mode + set STAB mode light to LAMP_OFF using the Console object + + +METHOD: Change_thermal_fault + DESCRIPTION: + This method will be used to indicate that a thermal fault has been + recognized by the turret drive. + VISIBILITY: private + INPUTS: + value - new value resulting from a thermal fault discrete change + FALSE - indicates no thermal fault + TRUE - indicates thermal fault + OUTPUTS: none + REQUIREMENTS: + AFS 8.2.7 Check for ECA failure indication + AIS 5.2.2 Turret ECA Thermal Failure discrete + PDL: + + if value + send thermal fault message using the Display object + else + return + +END OBJECT: Drive |