blob: 82c3de020ef5888df40e92c586444c9d5a8f1a07 (
plain) (
tree)
|
|
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.
+ This is the first bullet.
+ This is the second bullet.
+ This is the third bullet.
+ This is the fourth bullet.
+ This is the fifth bullet.
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: 0-0
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
RANGE: X-Y
UNITS: degrees / second
DEFAULT: 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
DEFAULT: 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: 0-0
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
RANGE: X - Y
UNITS: degrees / second
DEFAULT: 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
DEFAULT: 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
DEFAULT: POWER
REQUIREMENTS:
bogus requirement
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
DEFAULT: 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
DEFAULT: 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
DEFAULT: 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
DEFAULT: 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
METHOD 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:
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:
bogus requirements
REFERENCES:
AFS 4.11 Respond to CDT elapsed time indicator key
NOTES:
bogus 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:
bogus 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:
bogus references
NOTES:
bogus 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
TASK DESCRIPTIONS: none
ENDOBJECT: Drive
|