FCS User Manual
Document # LCA-17560 | Date Effective | Status | |
20 May 2019 | Draft 2 | ||
Author(s) | |||
Françoise Virieux, Alexandre Boucaud | |||
Subsystem/Office | |||
Camera Control System / Filter Exchange System | |||
Document Title | |||
Manual for FCS, Filter Exchange Control System |
- Change History Log
Revision | Effective Date | Description of Changes |
Draft 1 | May 20th, 2019 | Initial draft |
Draft 2 | Sep 27th, 2019 | Revised draft for Preship Review Update of the current FCS commands with their arguments and level Completion of a few paragraphs, addition of screenshots and the list of available CCS scripts to run sequences of actions. |
- Contents
[section]
4. Applicable Documents and Reference Documents 2
7. List of hardware / CAN open devices to control and monitor 3
7.1. List of hardware for the carousel 3
7.2. List of hardware for the autochanger 4
7.3. List of hardware for the loader 4
11.1. Configurable parameters for autochanger 31
11.2. Configurable parameters for carousel 34
11.3. Configurable parameters for loader 34
12.1. Telemetry for drivers 35
12.2. Telemetry for autochanger 35
12.3. Telemetry for carousel 38
13. Screenshots of important GUI Panels 41
13.1. Screenshot of important GUI for whole fcs 41
13.2. Screenshot of important GUI for autochanger 41
13.3. Screenshot of important GUI for carousel 43
13.4. Screenshot of important GUI for loader 44
15. Relevant CCS requirements 46
16.1. Error register errors 46
- Summary
This document aims at providing
- Applicable Documents and Reference Documents
LCA-231 | ICD document for FCS |
---|---|
LCA-17567 | FCS Verification and Validation Plan |
LCA-13492 | Filter Numbering & Identification |
LCA-286 | Exchange System—I&T ICD |
LCA-139 | Camera Protection System |
- Acronyms
EDMS | Engineering Data Management System |
CCS | Camera Control system |
FCS | Filter Control System |
HCU | Hardware Control Unit |
CPPM | Centre de Physique des Particules de Marseille |
APC | AstroParticules et Cosmologie |
LPNHE | Laboratoire de Physique Nucléaire et de Hautes Energies |
LPS | Local Protection System |
- FCS Overview
The FCS is the software used to monitor and control the Filter Exchange System. It includes several CCS subsystems for the Filter Exchanger hardware as defined next. A few screenshots of the various subsystem can be seen on section 13.
- Standalone subsystems
These subsystems can control each independent module. For each module, there are several hardware configuration that correspond to a given version of the module. The configurations that will be made available in the future are written in italics.
-
the “autochanger” subsystem, with 3 configurations:
-
autochanger_PROTO
-
autochanger_AC1
-
autochanger_AC2
-
-
the “carousel” subsystem, with 2 configurations:
-
carousel_PROTO
-
carousel
-
-
the “loader” subsystem, with 3 configurations:
-
loader_PROTO
-
loader_LO1
-
loader_LO2
-
FCS
-
There is one subsystem called “fcs” which operates the whole filter exchanger and controls simultaneously the carousel, the autochanger as well as the loader when connected to the autochanger.
The “fcs” subsystem can be loaded with the configurations listed in the above paragraph.
-
List of hardware / CAN open devices to control and monitor
- List of hardware for the carousel
All the sensors in the carousel are analog sensors.
The devices to control are :
-
carousel rotation: MAXON EPOS2 70/10 controller + EC90 motor + encoder + 3 brakes
-
carousel unlocking mechanism: 2 actuators at STANDBY position : 2x (MAXON EPOS2 24/5 controller + EC45 motor)
-
carousel brakes status + brakes temperature : CAN-CBX-AI814
-
carousel reducer temperature: CAN-CBX-PT100
-
carousel clamps sensors and Local Protection Module : HY-TTC-580
-
20 position analog sensors + 10 thermal sensors + 5 safety switches
-
(for each socket : 2 clamps ( 2x (2 position sensors + 1 thermal + 1 offset) ) + 1 socket (safety switch))
- List of hardware for the autochanger
The devices to control are :
-
2 motors and 2 controllers EPOS2 70/10 to move the autochanger trucks,
-
1 absolute linear encoder for the control of the linear rail,
-
2 incremental encoder for the synchronization of the two linear rail motors,
-
6 digital sensors to know the position of the trucks on the rails : 2 sensors at STANDBY, 2 sensors at HANDOFF, 2 sensors at ONLINE,
-
4 digital limit switches : 2 for each linear rails,
-
2 actuators to open or close the latches, controllers to be defined, very low current (0.2A-12V)
-
6 digital sensors : 3 sensors for each latch : filter engaged, latch open, latch close,
-
3 digital sensors for the filter ID one truck,
-
3 motors and 3 controllers EPOS2 25/5 to lock and unlock the on-line clamps,
-
12 digitals sensors for the on-line clamps: for each clamps 2 for the locked position and 2 for the unlocked position,
-
2 digital sensors for the mounting of the loader on the autochanger,
-
8 temperature sensors connected to a CAN open module SYSTEC IO-X5.
- List of hardware for the loader
All the sensors in the loader are digital sensors.
-
1 motor Maxon EC040/GP42C/HEDL/AB32 + 1 controller EPOS2 70/10 to move the loader carrier (carrier motor)
-
1 motor Maxon ECMAX40L/PM42/HEDL + 1 controller EPOS2 24/5 to move the loader filter hooks (clamps motor)
-
1 linear table (carrier motion) : passive
-
1 actuator (clamping) : passive
-
1 encoder for the carrier motion : linear absolute encoder AMO LMK1110
-
1 safe brake for the carrier motor : in case of loss of current stops any motion. Connected directly on EPOS 70. EPOS 70 needs to be configured.
-
1 encoder for the carrier motor: incremental rotating encoder,
-
1 encoder for the hooks motor: incremental rotating encoder,
-
2 sensors to check if the carrier is at HANDOFF. Used for LPS.
-
2 sensors to check if the carrier is at STORAGE. Used for LPS.
-
2 limit switches on the linear table for the carrier motion. Connected on the EPOS 70. Used as a security limit, NOT by the LPS.
-
4 loader Hooks : 1 motor for the 4 hooks. The 4 hooks move simultaneously.
-
4 sensors for the opening state of the hooks : hooks are UNLOCKED. Used by the LPS.
-
4 sensors for the closing state of the hooks : hooks are LOCKED. Used by the LPS.
-
2 filter presence sensors. Check that the filter is present. Used by the LPS
-
2 loader on autochanger presence sensors. Check that the loader is mechanically connected to the auto changer. Used by the LPS.
-
1 force measurement sensor. Analogique 0-10V. Redundant system. Used by the LPS.
-
1 filter ID sensor (to be confirmed)
-
FCS Commands
-
Action commands
- Action commands for whole FCS (require interaction between several subsystems)
-
FcsMain | setFilter | NORM | Move filter to ONLINE position. |
---|---|---|---|
FcsMain | connectLoader | ENG1 | Connect the loader hardware. |
FcsMain | disconnectLoader | ENG1 | Disconnect the loader hardware. |
FcsMain | storeFilterOnCarousel | ENG1 | Store the filter in the carousel and move the empty autochanger to HANDOFF position. |
FcsMain | disengageFilterFromCarousel | ENG1 | Unclamp filter from carousel, move autochanger to approachStandby position and release the carousel clamps. |
- Action commands for autochanger
class | name | level | description |
---|---|---|---|
Autochanger | dockingAtStandbyPositionWithoutFilter | ENG1 | Move to approach position with high velocity then move to standby with low velocity |
Autochanger | ungrabFilterAtStandby | ENG1 | Ungrab filter at standby |
Autochanger | leavingStandbyPositionWithoutFilterToHandoff | ENG1 | Open latches then go to approach position with low speed and move to handoff with highspeed. |
Autochanger | grabFilterAtStandby | ENG1 | Go to standby to grab filter and stay at standby. |
AutochangerLatch | close | ENG1 | Close latch. |
AutochangerLatch | open | ENG1 | Open latch. |
AutochangerOnlineClamp | configureDigitalOutputOfOnlineClamps | ENG1 | To configure the online clamps controllers. |
AutochangerOnlineClamp | configureDigitalInputOfOnlineClamps | ENG1 | To configure the online clamps controllers. |
AutochangerOnlineClamp | sendCurrentToControllerAndSaveValue | ENG3 | Sent current to control and save this value |
AutochangerOnlineClamp | unlock | ENG1 | Unlocks the online clamp : sends currentToClamp to the controller with a ramp of current from currentToClamp to currentToClose. |
AutochangerOnlineClamp | openInCurrentModeAndHoming | ENG1 | Open clamp in current mode and do homing |
AutochangerOnlineClamp | open | ENG1 | Opens the online clamp in profile_position. |
AutochangerOnlineClamp | openClampInCurrentMode | ENG1 | Opens the online clamp. |
AutochangerOnlineClamp | close | ENG1 | Closes the online clamp in mode profile_position. |
AutochangerOnlineClamp | closeClampInCurrentMode | ENG1 | Closes the online clamp. |
AutochangerOnlineClamp | updateState | ENG1 | Update state from sensors values. |
AutochangerOnlineClamp | configureController | ENG1 | Configure controller. |
AutochangerOnlineClamp | lock | ENG1 | Locks the online clamp : sends currentToClamp to the controller with a ramp of current from currentToClose to currentToClamp. |
AutochangerThreeOnlineClamps | unlockAndOpenClamps | NORM | Unlock and open the online clamps. |
AutochangerThreeOnlineClamps | unlockClamps | ENG1 | Unlocks clamps : decreases current in controller to decrease pressure. |
AutochangerThreeOnlineClamps | lockClamps | ENG1 | Locks clamps : closed with a strong pressure (high current). |
AutochangerThreeOnlineClamps | openClamps | ENG1 | Opens the 3 online clamps in mode profile_position. |
AutochangerThreeOnlineClamps | closeClamps | ENG1 | close clamps in mode profile_position for ac1 and ac2 |
AutochangerThreeOnlineClamps | closeAndLockClamps | NORM | Closes and locks the online clamps. |
AutochangerThreeOnlineClamps | homing | ENG3 | Do homing of the 3 online clamps : open in current mode and homing of controller |
AutochangerThreeOnlineClamps | updateState | ENG1 | Update state from sensors values. |
AutochangerThreeOnlineClampsProto | closeAndLockClampsInModeCurrent | NORM | Closes and locks the online clamps. |
AutochangerThreeOnlineClampsProto | unlockAndOpenClamps | NORM | Unlock and open the online clamps. |
AutochangerThreeOnlineClampsProto | closeClampsInModeCurrent | ENG1 | Close the 3 online clamps. |
AutochangerThreeOnlineClampsProto | openClampsXInCurrentMode | ENG3 | Open clamps X for proto only. |
AutochangerThreeOnlineClampsProto | openClampsInCurrentMode | ENG1 | Opens the 3 online clamps with a small pressure. |
AutochangerThreeOnlineClampsProto | closeClampsXInModeCurrent | ENG3 | Close clamps x |
AutochangerTwoLatches | open | ENG1 | Open both latches. |
AutochangerTwoLatches | close | ENG1 | Close latches. |
AutochangerTwoTrucks | configureControllers | ENG1 | Configure autochanger trucks master and slave controllers. |
AutochangerTwoTrucks | moveFilterToStandby | ENG2 | Move filter to approachposition with high speed and move to standby with lowspeed. |
AutochangerTwoTrucks | slowProfileDeceleration | ENG1 | Change profileacceleration parameter to lowacceleration |
AutochangerTwoTrucks | raiseProfileDeceleration | ENG1 | Change profileacceleration parameter to highacceleration |
AutochangerTwoTrucks | slowProfileAcceleration | ENG1 | Change profileacceleration parameter to lowacceleration |
AutochangerTwoTrucks | raiseProfileVelocity | ENG1 | Change profilevelocity and profileacceleration and profiledeceleration parameters to highspeed |
AutochangerTwoTrucks | slowProfileVelocity | ENG1 | Change profilevelocity parameter to lowspeed and slowprofileacceleration and slowprofiledeceleration |
AutochangerTwoTrucks | raiseProfileAcceleration | ENG1 | Change profileacceleration parameter to highacceleration |
AutochangerTwoTrucks | alignSlave | ENG1 | Align slave controller position to master controller position. |
AutochangerTwoTrucks | homing | ENG1 | Do homing for both controllers. |
AutochangerTwoTrucks | goToHandOff | ENG1 | Move autochanger trucks to the handoff position. |
AutochangerTwoTrucks | enableControllersAndReleaseBrake | ENG1 | Enable and release brake for the 2 controllers. |
AutochangerTwoTrucks | activateBrakesAndDisable | ENG1 | Activate brakes and disable the 2 controllers. |
AutochangerTwoTrucks | moveAndClampFilterOnline | ENG2 | Gotoonline with filter then adjust position then close and finally lock clamps |
AutochangerTwoTrucks | moveToAbsoluteTargetPositionDangerous | ENG3 | Move autochanger trucks to the absolute position given as argument. at the end of motion : doesn't align slave then activate brakes and disable controllers very dangerous command. only for tests with prototype. |
AutochangerTwoTrucks | moveToAbsoluteTargetPosition | ENG1 | Move autochanger trucks to the absolute position given as argument. at the end of motion : doesn't align slave then activate brakes and disable controllers. |
AutochangerTwoTrucks | goToStandby | ENG1 | Move autochanger trucks to the standby position. |
AutochangerTwoTrucks | goToOnline | ENG1 | Move autochanger trucks to the online position. |
- Action commands for carousel
Carousel | updatePosition | ENG1 | Update carousel position in reading controller. |
---|---|---|---|
Carousel | releaseClamps | ENG1 | Release clamps at standby position to get ready to clamp again |
Carousel | unlockClamps | ENG3 | Unlock the clamps at standby. |
Carousel | rotateToAbsolutePosition | ENG1 | Rotate carousel to a new absolute position. |
Carousel | rotateSocketToStandby | ENG1 | Move a socket which name is given as argument to standby position. |
Carousel | homing | ENG1 | Carousel homing |
Carousel | changeFilterID | ENG1 | To change filterID on socket which id is given as argument. |
CarouselClamp | unlock | ENG3 | Unlock the clamp |
CarouselClamp | isReleased | ENG3 | Check if controller has been disabled. |
CarouselClamp | release | ENG3 | Release clamp in order to get ready to clamp a filter again |
CarouselMain | updateFCSStateToReady | ENG1 | Update fcs state and fcs readiness state and publishes on the status bus. |
CarouselSocket | releaseClamps | ENG1 | Release the 2 clamps of this socket if the socket is at standby position. |
CarouselSocket | unlockClamps | ENG1 | Unlock the 2 clamps of this socket if the socket is at standby position. |
- Action commands for loader
Loader | locateHardware | ENG1 | Attention ! this commands does the homing of the controllers and might move hardware. initialize loader hardware. |
---|---|---|---|
Loader | updateStateWithSensors | ENG1 | Update clamp state in reading sensors. |
Loader | moveFilterToHandoff | ENG1 | Move a filter from storage to handoff. this command executes sequence of actions :\n- check initial conditions (a filter is at storage) \n- move carrier to engaged with high speed\n- unclamp filter \n- move slowly filter to handoff. |
Loader | moveFilterToStorage | ENG1 | Move a filter from handoff to storage : move filter slowly to engagedthen clamp and move filter to storage with high speed |
Loader | openClampAndMoveEmptyToStorage | ENG1 | Open clamp and move empty to storage position at high speed. |
Loader | moveEmptyToHandoffAndClose | ENG1 | Move empty from storage to handoff at high speed and then close clamp. |
LoaderCarrier | initializeHardware | ENG1 | Check if hardware is ready to be started. |
LoaderCarrier | slowProfileVelocity | ENG1 | Change profilevelocity parameter to lowspeed |
LoaderCarrier | raiseProfileVelocity | ENG1 | Change profilevelocity parameter to highspeed |
LoaderCarrier | goToEngaged | ENG1 | Move the carrier to engaged position. |
LoaderCarrier | slowProfileAcceleration | ENG1 | Change profileacceleration parameter to lowacceleration |
LoaderCarrier | slowProfileDeceleration | ENG1 | Change profileacceleration parameter to lowacceleration |
LoaderCarrier | goToHandOff | ENG1 | Move the carrier to handoff position. |
LoaderCarrier | raiseProfileDeceleration | ENG1 | Change profileacceleration parameter to highacceleration |
LoaderCarrier | raiseProfileAcceleration | ENG1 | Change profileacceleration parameter to highacceleration |
LoaderCarrier | printHardwareState | ENG1 | Return a printed list of hardware with initialization information. |
LoaderCarrier | readProfileVelocity | ENG1 | Read profilevelocity parameter in carriercontroller cpu |
LoaderCarrier | homing | ENG3 | Homing of carrier controller. should be done only if necessary. |
LoaderCarrier | goToAbsolutePosition | ENG1 | Move the carrier to absolute position given as argument (in decimal format). |
LoaderCarrier | goToStorage | ENG1 | Move the carrier to storage position. |
LoaderClamp | unclamp | ENG1 | Unclamp filter and return to closed position. |
LoaderClamp | open | ENG1 | Open clamp. |
LoaderClamp | printHardwareState | ENG1 | Return a printed list of hardware with initialization information. |
LoaderClamp | clamp | ENG1 | Clamp to hold tightly a filter. |
LoaderClamp | close | ENG1 | Closes clamp. |
LoaderHook | updateState | ENG1 | Update state from sensors values. |
- Action commands for drivers
EPOSController | writeParameters | ENG3 | Write in the cpu of the epos device the values of the parameters set for the mode. |
---|---|---|---|
EPOSController | shutdownController | ENG1 | Shutdown the controller. |
EPOSController | enableAndWriteAbsolutePosition | ENG3 | Enable controller and go to absolute position. doesn't check condition. danger !!!! |
EPOSController | writeTargetVelocity | ENG1 | In profile_velocity mode this methods set the target velocity. |
EPOSController | stopPosition | ENG1 | Stop motion when in mode profile_position. |
EPOSController | stopVelocity | ENG1 | Stop motion when in mode profile_velocity. |
EPOSController | enableAndWriteRelativePosition | ENG3 | Enable controller and go to relative position. doesn't check condition. danger !!!! |
EPOSController | writeTargetPosition | ENG1 | In profile_position mode this methods set the target position. |
EPOSController | disableVoltage | ENG1 | Disable voltage. this command does not activate holding brake. cf doc epos2_firmware_specification § 3.2 device control |
EPOSController | disableOperation | ENG1 | Disable operation. this command activates holding brake. cf doc epos2_firmware_specification § 3.2 device control |
EPOSController | switchOnEnableOperation | ENG1 | Switch on and enable controller. |
EPOSController | stopAction | ENG1 | Stop action and disable(shutdown) controller. |
EPOSController | quickStop | ENG1 | Quickstop. |
EPOSController | enable | ENG1 | This methods enables the controller : i.e. this makes it able to receive commands. |
EPOSController | checkEnabled | ENG1 | Check if controller is enabled otherwise throw an exception. |
EPOSController | writeCurrent | ENG1 | In current mode this methods send a current to the motor. |
EPOSController | enableAndWriteCurrent | ENG3 | Enables controller and sets the current value in the epos cpu. |
EPOSController | defineAbsolutePosition | ENG3 | Define the actual position as position given as argument. |
EPOSController | checkHomingDone | ENG3 | Check if homing has been done otherwise throws an exception. |
EPOSController | switchOn | ENG1 | Switch on the controller. |
EPOSControllerForCarousel | defineAbsolutePosition | ENG3 | Define the actual position as position given as argument. |
EPOSControllerForCarousel | setPositionSensorTypeEncoderSSI | ENG1 | Set positionsensortype to absolute encoder ssi (value is 4) |
EPOSControllerForCarousel | setPositionSensorTypeSinusIncrementalEncoder | ENG1 | Set positionsensortype to sinus incremental encoder(value is 8) |
EPOSControllerWithBrake | enableAndReleaseBrake | ENG1 | Enable and release brake to permit motion. not allowed in master_encoder mode. |
EPOSControllerWithBrake | activateBrake | ENG1 | Activate brake to prevent motion. |
- Query commands
class | name | level | description |
---|---|---|---|
FcsMain | printFilterONLINEName | NORM | Returns the name of the filter which is at onl... |
FcsMain | getFilterByName | NORM | Returns the filter which has for name the stri... |
FcsMain | isChangerConnected | NORM | Return true if the changer is connected. |
FcsMain | isLoaderConnected | NORM | Return true if the loader is connected. |
FcsMain | isChangerReady | NORM | Return true if the hardware of the changer is ... |
FcsMain | isLoaderReady | NORM | Return true if the hardware of the loader is r... |
FcsMain | listLoaderHardwareNames | ENG1 | Return the list of loader CANopen hardware tha... |
LoaderHook | toString | ENG1 | Display sensors info |
LoaderCarrier | getPosition | NORM | Returns carrier position. |
LoaderCarrier | isInitialized | ENG1 | Returns true if carrier is initialized and rea... |
LoaderCarrier | getMaxSpeed | ENG1 | Return the max speed in rpm/mn (format decimal). |
LoaderCarrier | getMaxCurrent | ENG1 | Return the max current in ma (format decimal). |
LoaderCarrier | getHandoffPosition | ENG1 | Return the handoff position in microns (format... |
LoaderCarrier | getStoragePosition | ENG1 | Return the storage position in microns (format... |
LoaderCarrier | getTimeoutForGoingToHandOff | ENG1 | Return the timeout for going to handoff in mil... |
LoaderCarrier | getTimeoutForGoingToStorage | ENG1 | Return the timeout for going to storage in mil... |
LoaderCarrier | isStorageSensorsInError | ENG1 | Return false if the 2 redondant position senso... |
LoaderCarrier | isHandoffSensorsInError | ENG1 | Return false if the 2 redondant position senso... |
LoaderCarrier | isAtStorage | NORM | Return true if the carrier is at storage posit... |
LoaderCarrier | isAtHandoff | NORM | Return true if the carrier is at handoff posit... |
LoaderCarrier | isAtEngaged | NORM | Return true if the carrier is at handoff posit... |
LoaderCarrier | updatePosition | ENG1 | Update carrier position in reading controller. |
LoaderCarrier | readPosition | ENG1 | To update and display position for end user.up... |
CarouselMain | updateStateWithSensors | NORM | Update state in reading sensors. |
CarouselSocket | isAtStandby | ENG1 | Returns true if this socket is at standby posi... |
CarouselSocket | myDevicesReady | ENG1 | Returns true if hardware is connected and ready. |
CarouselSocket | getClampsState | NORM | Return clamps state - doesn't read again sensors. |
CarouselSocket | isEmpty | NORM | Returns true if there is no filter in the socket. |
CarouselSocket | isClampedOnFilter | NORM | Returns true if there is a filter in the socke... |
CarouselSocket | isUnclampedOnFilter | NORM | Returns true if there is a filter in the socke... |
CarouselSocket | isUnclampedEmpty | NORM | Returns true if there is no filter in the sock... |
CarouselSocket | isReadyToClamp | NORM | Returns true if this socket is ready to clamp ... |
CarouselSocket | toString | ENG1 | Returns a string representation of a carousels... |
DigitalSensor | isOn | ENG1 | Return true if the sensor is on |
DigitalSensor | toString | ENG1 | Returns a string representation of digitalsensor |
AutochangerLatch | getControllerName | ENG1 | Returns this latch controller name. |
AutochangerLatch | isInitialized | ENG1 | Returns true if latch is initialized. |
AutochangerLatch | isClosed | ENG1 | Returns true if locked. doesn't read again sen... |
AutochangerLatch | isOpened | ENG1 | Returns true if unlocked. doesn't read again s... |
AutochangerLatch | isInError | ENG1 | Returns true if in error this means that opens... |
AutochangerLatch | isEmpty | ENG1 | Returns true if autochanger is empty. doesn't ... |
AutochangerLatch | updateCurrent | ENG1 | Update latch current in reading controller. |
AutochangerLatch | myDevicesReady | ENG1 | Returns true if autochanger canopen hardware i... |
AutochangerLatch | publishData | ENG1 | Publish data on the status bus. |
AutochangerThreeOnlineClamps | isLockStatusInitialized | NORM | Returns true if lockstatus has been first init... |
AutochangerThreeOnlineClamps | isHomingDone | NORM | Returns true if homing has been done for the 3... |
AutochangerThreeOnlineClamps | isLocked | NORM | Returns true if the 3 clamps are locked. |
AutochangerThreeOnlineClamps | isClosed | NORM | Returns true if the 3 clamps are closed. |
AutochangerThreeOnlineClamps | isOpened | NORM | Returns true if the 3 clamps are opened. |
AutochangerThreeOnlineClamps | isInError | NORM | Returns true if one of the clamp is in error. |
AutochangerThreeOnlineClamps | isInitialized | NORM | Return true if the 3 onlineclamps hardware is ... |
AutochangerThreeOnlineClamps | myDevicesReady | NORM | Return true if the 3 onlineclamps hardware is ... |
AutochangerThreeOnlineClamps | computeStrainGaugeLockStatus | ENG1 | Return a lock status computed from onlineclamp... |
AutochangerThreeOnlineClamps | initializeHardware | ENG1 | Initialize ac online clamps hardware after ini... |
CarouselClamp | getLockStatus | ENG1 | Return the lockstatus |
CarouselClamp | getFilterPresenceStatus | ENG1 | Return filterpresencestatus |
CarouselClamp | myDevicesReady | ENG1 | Returns true if canopen hardware is connected ... |
CarouselClamp | isLocked | ENG1 | Returns true if the clamp is locked |
CarouselClamp | isFilterEngaged | ENG1 | Returns true if filter is engaged on the clamp... |
FakeFilterHolder | isHoldingFilter | NORM | Return true if the fake autochanger is holding... |
FakeFilterHolder | isNotHoldingFilter | NORM | Return true if the fake autochanger is holding... |
Inclinometer | getInclinaison | ENG1 | Returns inclinaison value in degrees. doesn't ... |
LoaderMain | updateStateWithSensors | NORM | Update loader state in reading the sensors. |
LoaderMain | updateFCSStateToReady | ENG1 | Update fcs state and fcs readyness state and p... |
LoaderMain | printHardwareState | ENG1 | Print the list of hardware with initialization... |
ForceSensor | toString | ENG1 | Returns a string representation of forcesensor |
Loader | isInitialized | NORM | Return true if hardware (controllers and pluto... |
Loader | isEmpty | NORM | Return true if there is no filter in the loade... |
Loader | isConnectedOnCamera | NORM | Return true if the loader is connected on the ... |
Loader | isAutochangerHoldingFilter | NORM | Return true if the autochanger is holding the ... |
Loader | isHoldingFilter | NORM | Return true if a filter is present and it is h... |
Loader | isNotHoldingFilter | NORM | Return true if loader clamp is openened. |
Loader | initializeHardware | ENG1 | Initialize loader hardware after initializatio... |
Loader | checkConditionsForCarrierMotion | ENG1 | Check if the carrier can move. |
Loader | checkConditionsForOpeningHooks | ENG1 | Check if the clamp can be opened. |
Loader | checkLoaderNotEmpty | ENG1 | Check if the clamp can be closed. |
Loader | printHardwareState | ENG1 | Print list of hardware with initialization inf... |
ComplementarySensors | isInError | NORM | Return true if this couple of sensors are in e... |
ComplementarySensors | isOn | NORM | Return true if sensor's value is 1 and sensorc... |
LoaderClamp | getPosition | ENG1 | Display position for end user.do not read agai... |
LoaderClamp | isHomingDone | ENG1 | Returns true if homing of loader clamp has bee... |
LoaderClamp | isClosed | ENG1 | Returns true if closed |
LoaderClamp | isOpened | ENG1 | Returns true if opened |
LoaderClamp | isClamped | ENG1 | Returns true if clamped |
LoaderClamp | isInError | ENG1 | Returns true if in error or unknown. |
LoaderClamp | updateCurrent | ENG1 | Update clamp current in reading controller. |
LoaderClamp | updatePosition | ENG1 | Update clamp position in reading controller. |
LoaderClamp | readPosition | ENG1 | To update and display position for end user.up... |
LoaderClamp | toString | ENG1 | List and display clamp info. |
CarouselSensor | getValue | NORM | Return sensor value in mv |
AutochangerOnlineClamp | isCloseSensorsInError | ENG1 | Returns true if locksensor and locksensorc ret... |
AutochangerOnlineClamp | isOpenSensorsInError | ENG1 | Returns true if unlocksensor and unlocksensorc... |
AutochangerOnlineClamp | isInError | ENG1 | Returns true if in error which means that clos... |
AutochangerOnlineClamp | isClosed | ENG1 | Returns true if closed. doesn't read again sen... |
AutochangerOnlineClamp | isHomingDone | ENG1 | Returns true if homing of controller has been ... |
AutochangerOnlineClamp | isLocked | ENG1 | Returns true if locked. doesn't read again sen... |
AutochangerOnlineClamp | isOpened | ENG1 | Returns true if opened. doesn't read again sen... |
AutochangerOnlineClamp | isInTravel | ENG1 | Returns true if intravel. doesn't read again s... |
AutochangerOnlineClamp | getControllerName | ENG1 | Returns controller name. |
AutochangerOnlineClamp | isInitialized | ENG1 | Returns true if clamp is initialized : control... |
AutochangerOnlineClamp | myDevicesReady | ENG1 | Returns true if controller is initialized and ... |
AutochangerOnlineClamp | checkConditionsForOpening | ENG1 | Check if the onlineclamp can be locked. |
AutochangerOnlineClamp | checkConditionsForClosing | ENG1 | Check if the onlineclamp can be locked. |
AutochangerOnlineClamp | enableAndCheckControllerBeforeAction | ENG1 | Read in the cpu of the controller parameters f... |
Carousel | isInitialized | NORM | Return true if canopen devices are booted and ... |
Carousel | isClampsStateInitialized | NORM | Return true if clamp state is initialized for ... |
Carousel | isHomingDone | NORM | Return true if carouselcontroller homing is done. |
Carousel | getPosition | NORM | Return carousel position. |
Carousel | isAtStandby | NORM | Return true if a socket is halted at standby p... |
Carousel | getFilterAtStandbyName | NORM | Returns name of filter at standby position or... |
Carousel | isAutochangerHoldingFilter | NORM | Return true if autochanger is holding filter a... |
Carousel | initializeHardware | ENG1 | Initialize carousel hardware after initializat... |
Carousel | isReadyToGrabAFilterAtStandby | ENG1 | Returns true if carousel is stopped and no fil... |
Carousel | isHoldingFilterAtStandby | ENG1 | Returns true if a filter is clamped at standby... |
Carousel | isRotating | ENG1 | Returns true if carousel is rotating. |
Carousel | updateCurrent | ENG1 | Update field current in reading controller. |
Carousel | initializeClampsState | ENG1 | Update clamps state in sending 5 sync. |
Carousel | initializeClampsOffset | ENG1 | Update clamp offsets. |
Carousel | checkConditionsForRotation | ENG1 | Check if carousel rotation is permitted. |
Carousel | getFilterID | ENG1 | Return the id of filter at standby |
Carousel | updateStateWithSensors | ENG1 | Read sensors and update state |
Carousel | updateSocketAtStandbyWithSensors | ENG1 | Update socket at standby state from hyttc580 d... |
Carousel | updateState | ENG1 | Update state from hyttc580 data. |
FilterManager | getFilterNameByID | NORM | Return filter name which correspond to id. |
FilterManager | toString | NORM | Return a printed list of filters. |
MainModule | allDevicesBooted | ENG1 | Return true if all hardware is booted with the... |
MainModule | listHardwareNames | NORM | Returns the list of canopen hardware managed b... |
MainModule | listLoaderHardwareNames | NORM | Return the list of loader canopen hardware man... |
MainModule | getFilterNames | NORM | Return the list of names of filters that this... |
MainModule | updateStateWithSensors | NORM | Update state in reading sensors. |
MainModule | initializeHardware | ENG1 | Check hardware after initialization. to be exe... |
MainModule | publishData | NORM | Publish data to populate gui. |
AutochangerTruck | isAtHandoff | ENG1 | Return true if truck is at handoff position. |
AutochangerTruck | isAtOnline | ENG1 | Return true if truck is at online position. |
AutochangerTruck | isAtStandby | ENG1 | Return true if truck is at standby position. |
AutochangerTruck | isStandbySensorsInError | ENG1 | Return false if the 2 redondant position senso... |
AutochangerTruck | isHandoffSensorsInError | ENG1 | Return false if the 2 redondant position senso... |
AutochangerTruck | isOnlineSensorsInError | ENG1 | Return false if the 2 redondant position senso... |
AutochangerTruck | isPositionSensorsInError | ENG1 | Return true if position sensors are in error.d... |
AutochangerTruck | getPosition | ENG1 | Return truck position. |
AutochangerTruck | getControllerName | ENG1 | Return controller name. |
AutochangerTruck | updatePosition | ENG1 | Update truck position in reading controller. |
Autochanger | isSensorsInError | ENG1 | Return true if an error has been detected on s... |
Autochanger | getFilterID | NORM | If autochanger holds a filter return filterid ... |
Autochanger | getFilterOnTrucksName | NORM | If a filter is in autochanger return filter na... |
Autochanger | isLoaderConnected | NORM | Return true if the loader is connected to the ... |
Autochanger | isCarouselHoldingFilterAtStandby | NORM | Return true if the carousel is holding the fil... |
Autochanger | isLoaderHoldingFilterAtHandoff | NORM | Return true if loader is connected and holding... |
Autochanger | isCANDevicesReady | NORM | Return true if all autochanger canopen devices... |
Autochanger | isHardwareReady | NORM | Return true if all autochanger canopen devices... |
Autochanger | isInitialized | NORM | Return true if all autochanger hardware is ini... |
Autochanger | initializeHardware | NORM | Return true if all autochanger hardware is ini... |
Autochanger | checkLinearRailMotionAllowed | ENG1 | Check if local protection module allows linear... |
Autochanger | checkLatchMotionAllowed | ENG1 | Check if local protection module allows latche... |
Autochanger | checkOnlineClampMotionAllowed | ENG1 | Check if local protection module allows online... |
Autochanger | checkConditionsForOpeningLatches | ENG1 | Check if the latches can be opened. |
Autochanger | checkConditionsForClosingLatches | ENG1 | Check if autochanger latches can be closed. |
Autochanger | checkConditionsForActioningOnlineClamps | NORM | Log if actions on online clamps are allowedthr... |
Autochanger | checkFilterSafetyBeforeMotion | ENG1 | Check if its safe for filters to move autochan... |
Autochanger | updateStateWithSensors | ENG1 | Update clamp state in reading sensors. |
Autochanger | updateFilterOnTrucksID | ENG1 | Update filterontrucksid. |
Autochanger | isHoldingFilter | ENG1 | Return true if a filter is in trucks and latch... |
Autochanger | isAtHandoff | NORM | Return true if autochanger trucks are at hando... |
Autochanger | isAtStandby | NORM | Return true if autochanger trucks are at stand... |
Autochanger | isAtOnline | NORM | Return true if autochanger trucks are at onlin... |
Autochanger | isEmpty | NORM | Return true if there is no filter in the autoc... |
Autochanger | setFastAcqRateLinearRails | ENG1 | Set a new value for the acquisition frequency ... |
Autochanger | setFastAcqRateOnlineClamps | ENG1 | Set a new value for the acquisition frequency ... |
FilterIdentificator | getFilterId | ENG1 | Return filterid. |
AutochangerMain | updateStateWithSensors | NORM | Update autochanger state in reading the sensors. |
AutochangerMain | initializeHardware | ENG1 | Check hardware after initialization. to be exe... |
AutochangerTwoLatches | isInitialized | ENG1 | Returns true if the 2 latches are initialized. |
AutochangerTwoLatches | getFilterPresenceStatus | NORM | Return filterpresencestatus |
AutochangerTwoLatches | getTimeoutForClosing | ENG1 | Return the max time for closing in millisecond. |
AutochangerTwoLatches | getTimeoutForOpening | ENG1 | Return the max time for opening in millisecond. |
AutochangerTwoLatches | isClosed | ENG1 | Returns true if both latches are closed. |
AutochangerTwoLatches | isOpened | ENG1 | Returns true if both latches are opened. |
AutochangerTwoLatches | isInError | ENG1 | Returns true if one of the latches is in error... |
AutochangerTwoLatches | isEmpty | ENG1 | Returns true if there is no filter is latches. |
AutochangerTwoLatches | isHoldingFilter | ENG1 | Return true if autochanger is holding a filter. |
AutochangerTwoLatches | initializeHardware | ENG1 | Initialize ac latches hardware after initializ... |
AutochangerTwoTrucks | getPosition | ENG1 | Return actual trucks position (master position... |
AutochangerTwoTrucks | getHandoffPosition | ENG1 | Return handoff position. doesn't read again th... |
AutochangerTwoTrucks | getStandbyPosition | ENG1 | Return standby position. doesn't read again th... |
AutochangerTwoTrucks | getOnlinePosition | ENG1 | Return online position. doesn't read again the... |
AutochangerTwoTrucks | getTimeoutForTrucksMotion | ENG1 | Return timeout for trucks motion. |
AutochangerTwoTrucks | isAtHandoff | NORM | Return true if the carrier is at handoff posit... |
AutochangerTwoTrucks | isAtOnline | NORM | Return true if the carrier is at online positi... |
AutochangerTwoTrucks | isAtStandby | NORM | Return true if the carrier is at standby posit... |
AutochangerTwoTrucks | isHomingDone | NORM | Return true if the homing of the trucks has be... |
AutochangerTwoTrucks | isPositionSensorsInError | NORM | Return true if truckxminus position sensors or... |
AutochangerTwoTrucks | isInitialized | NORM | Return true if both controllers are initialize... |
AutochangerTwoTrucks | checkConditionsForTrucksMotion | ENG1 | Check if the motion of trucks are allowed. |
AutochangerTwoTrucks | moveTruckXminus | ENG3 | Move truckxminus (slave controller) independen... |
AutochangerTwoTrucks | updatePosition | ENG1 | Update trucks position in reading controller. |
AutochangerTwoTrucks | checkDeltaPosition | ENG1 | Read position on controllers then compute diff... |
AutochangerTwoTrucks | readPosition | NORM | Update trucks position in reading controller a... |
AutochangerTwoTrucks | readProximitySensorDevice | NORM | Return a voltage in mv which represents a dist... |
Filter | getFilterID | NORM | Returns filter id. |
CanCBXAI420 | readVoltage | ENG1 | Read voltage in volts for the input chanel inp... |
CanOpenEPOSCarousel | printValuesUpdatedByPDOs | ENG1 | Print values updated by pdos to debug and test |
CanOpenEPOS | readMode | ENG1 | Reads the epos mode in the cpu of the epos dev... |
CanOpenEPOS | changeEPOSParameter | ENG1 | Changes an epos parameter for this controller.... |
CanOpenEPOS | initializeAndCheckHardware | ENG1 | Read controller's parameter in the cpu for eac... |
CanOpenEPOS | printControlWord | ENG1 | Read control world (index: 6040 subindex: 0 si... |
CanOpenEPOS | readControlWord | ENG1 | Read control world (index: 6040 subindex: 0 si... |
CanOpenEPOS | readStatusWord | ENG1 | Read status world (index: 6041 subindex: 0 siz... |
CanOpenEPOS | readCurrent | ENG1 | In current mode this methods returns the curre... |
CanOpenEPOS | readCurrentAverageValue | ENG1 | In current mode this methods returns the avera... |
CanOpenEPOS | readVelocity | ENG1 | Return motor velocity read on controller cpu. ... |
CanOpenEPOS | readFollowingError | ENG1 | Return following error actual value read on co... |
CanOpenEPOS | checkFault | ENG1 | Check if the controller is in fault. |
CanOpenEPOS | checkParameters | ENG1 | For every parameter to be defined for this mod... |
CanOpenEPOS | publishData | NORM | Publish data for the controller on the status ... |
CanOpenDevice | getSerialNB | ENG1 | Returns this canopen device's serial number. |
CanOpenDevice | getNodeID | ENG1 | Returns this canopen device's node id and prin... |
CanOpenDevice | isBooted | ENG1 | Returns true if this canopen node is booted. |
CanOpenDevice | isInitialized | ENG1 | Returns true if this canopen node is initialized. |
CanOpenDevice | readSDO | ENG3 | Read can open device with a command rsdo. |
CanOpenDevice | printSerialNumber | ENG3 | Return a hexadecimal representation of serial ... |
CanOpenDevice | readErrorRegister | ENG3 | Reads error register on the controller (index ... |
CanOpenDevice | displayErrorRegister | ENG3 | Display error register on the controller (inde... |
CanOpenDevice | displayErrorHistory | ENG1 | Display error history for this device (index 1... |
CanOpenDevice | readNumberOfErrors | ENG1 | Read and returns the number of errors registre... |
CanOpenDevice | toString | ENG1 | Print canopen device. |
CanOpenDevice | publishData | ENG1 | Publish data for the device on the status bus. |
PlutoGateway | toString | ENG1 | Return the string representation of plutogateway |
CanOpenEPOSOnlineClamp | isHomingDone | ENG1 | Return true if homing is done: the controller ... |
CanOpenThermometer | readTemperature | NORM | Read temperature on the termometer and returns... |
CanOpenTTC580 | readOffsetPresenceSensorSDO | ENG1 | Test and debug |
CanOpenTTC580 | readOffsetLockSensorSDO | ENG1 | Test and debug |
CanOpenTTC580 | getOffsetPresenceSensorXplus | ENG1 | Test and debug |
CanOpenTTC580 | getOffsetPresenceSensorXminus | ENG1 | Test and debug |
CanOpenTTC580 | getOffsetLockSensorXminus | ENG1 | Test and debug |
CanOpenTTC580 | getOffsetLockSensorXplus | ENG1 | Test and debug |
CanOpenTTC580 | toString | ENG1 | Return the string representation of the pdos |
CanOpenTTC580 | printSensorsValues | ENG1 | For tests and debug. |
CanOpenSystecIO | initialize | ENG1 | Initialize and configure the device in order t... |
CanOpenSystecIO | readChannel | ENG1 | Read channel and return its value |
CanOpenProxy | listBootedNodes | ENG3 | Print the list of canopen nodes which are boot... |
CanOpenProxy | sync | ENG3 | Send a command sync to can bus to read sensors... |
CanOpenProxy | init | ENG3 | init can interface. |
CanOpenProxy | addReceivedPDO | ENG3 | Add a received pdo to caninterface. |
CanOpenProxy | clearReceivedPDOs | ENG3 | Clear all received pdo from caninterface. \nto... |
CanOpenProxy | scan | ENG3 | Scan can bus. |
CanOpenProxy | info | ENG3 | Send a command info to can bus for nodeid to r... |
CanOpenProxy | wsdo | ENG3 | Send a command wsdo to device. |
CanOpenProxy | rsdo | ENG3 | Send a command rsdo to device and return a val... |
CanOpenProxy | ssta | ENG3 | Send a command ssta (slave start) to device. |
CanOpenProxy | ssto | ENG3 | Send a command ssto (slave stop) to device. |
CanOpenProxy | reset | ENG3 | Send a command reset to device. |
CanOpenProxy | quit | ENG3 | Send a command quit to caninterface to device. |
CanOpenProxy | retrieveHardwareInfo | NORM | Identification of the hardware : we want to re... |
CanOpenProxy | allDevicesBooted | NORM | Return true if all canopen devices are booted ... |
CanOpenProxy | printHardwareList | ENG1 | Return a printed list of hardware expected in ... |
CanOpenProxy | printHardwareState | ENG1 | Return a printed list of hardware with the ini... |
CanOpenProxy | listHardwareNames | ENG1 | Return an array containing hardware names hand... |
CanOpenProxy | publishData | ENG1 | Publish booting information for all canopen de... |
CanCBXAI814 | printInputs | ENG1 | Print input values. for test and debug. |
CanCBXAI814 | toString | ENG1 | Return the string representation of cancbxai814. |
CanOpenEPOSLinearRailTruck | isHomingDone | ENG1 | Return true if homing is done: the controller ... |
CanOpenEPOSLinearRailTruck | homing | ENG1 | Do homing of the controller. |
CanOpenEPOSLinearRailTruck | isBrakeActivated | ENG1 | Return true if brake if activated. |
CanOpenEPOSLinearRailTruck | checkConfigDigitalInputOfLinearRails | ENG1 | Check configuration of digital input of linear... |
CanOpenEPOSLinearRailTruck | checkConfigDigitalOutputOfLinearRails | ENG1 | Check configuration of digital output of linea... |
CanOpenEPOSLinearRailTruck | printValuesUpdatedByPDOs | ENG1 | Print values updated by pdos to debug and test |
CanOpenEPOSCarouselClamp | printValuesUpdatedByPDOs | ENG1 | Print values updated by pdos to debug and test |
CanOpenPlutoGateway | readNewValues | ENG1 | Return values read on the device. |
Sensor14bits | printValue | ENG1 | Returns the value of the sensor stored in fcs ... |
Sensor14bits | toString | ENG1 | Returns a printed format of this sensor. |
BridgeToHardware | isCanbusConnected | NORM | Return true if canbus is connected. |
EPOSController | printStatusWordInBinary | ENG1 | Print status word in binary. |
EPOSController | isEnabled | ENG1 | Returns true if the controller is enabled. |
EPOSController | readPosition | ENG1 | In profile_position mode this methods returns ... |
EPOSController | readSSIPosition | ENG1 | Read the position returned by the absolute enc... |
EPOSController | readProfileVelocity | ENG1 | In profile_position returns the value of the p... |
EPOSController | readPositionSensorType | ENG1 | Read positionsensortype. |
EPOSController | readParameter | ENG1 | Reads in the epos cpu the decimal value of the... |
EPOSController | readParameters | ENG1 | Read the parameters for the actual mode. |
EPOSController | readParameters | ENG1 | This methods reads in the cpu of the epos the ... |
EPOSController | isTargetReached | ENG1 | In homing mode and profile_position mode this ... |
EPOSControllerWithBrake | isBrakeActivated | ENG1 | Return true if brake if activated. |
- FCS States
The subsystem publishes a superposition of states : subsystem operational state, filter state, filter readiness state.
- Operational states
The subsystem publishes the following operational states :
State | Meaning | Comments |
---|---|---|
NORMAL | System is ready for OCS controlled data taking. This subsystem will only enter NORMAL mode when all CAN open devices are booted and initialized and no error have been detected when reading sensors. | implemented in core |
ENGINEERING_OK | Whenever we are not yet ready for OCS control. | implemented in core |
ENGINEERING_FAULT | State which subsystem will enter if a hardware problem occurs, if some of CAN open devices are not booted or if an error is detected in reading sensors. This requires an operator to diagnose the problem and switch back first to ENGINEERING_OK and then to NORMAL mode. | implemented in core |
- Filter States
FCS publishes the following filter state for MCM and OCS:
State | Meaning | Comments |
---|---|---|
WAITING_FOR_HARWARE_BOOTING | State which FCS enters when starting. Subsystem should go very quickly in state CAN_DEVICES_BOOTING. | Not READY for OCS control. |
CAN_DEVICES_BOOTING | State in which fcs enters at the end of its starting process. Fcs stays in CAN_DEVICES_BOOTING until all CAN open devices are booted. Then it enters automatically READY state. | Not READY for OCS control. |
HOMING_TO_BE_DONE | Fcs enters this state when CAN open devices are booted but controllers need a homing to be done. Fcs is ready for OCS as homing is done automatically. When homing is done fcs switches to READY. | READY for OCS control. True for loader and autochanger. |
READY | READY for OCS control and no homing to be done. | READY for OCS control. |
OFF_LINE | Fcs enters this mode when during shutdown. | Not READY for OCS control. |
ROTATING | Carousel is rotating. | Not READY for OCS control |
CAROUSEL_STOPPED | Carousel is stopped and a socket is at STANDBY position. | READY for OCS control |
MOVING_TRUCKS_TO_STANDBY, MOVING_TRUCKS_TO_ONLINE, MOVING_TRUCKS_TO_HANDOFF, MOVING_TRUCKS, | FCS enters one of this state when autochanger trucks are moving. | Not READY for OCS control |
TRUCKS_STOPPED | Autochanger trucks are stopped. | READY for OCS control |
ONLINE_U, ONLINE_G, ONLINE_R, ONLINE_I, ONLINE_Z, ONLINE_Y | FCS enters ONLINE_U when filter U is at ONLINE. | |
ONLINE_NONE | No filter is at ONLINE. |
- Filter Readiness
Name | Meaning |
---|---|
READY | hardware READY for OCS control |
NOT_READY | hardware NOT READY for OCS control |
- FCS Alerts
The subsystem will issue alerts when :
-
a CAN open device is not booted
-
an error is detected on sensors. Example : 2 complementary sensors return the same value.
-
an emergency message has been sent by a device
Specific alerts:
Name | Description | Meaning |
---|---|---|
UNSYNC_BOOT | A boot message has been received for a device | The device has been rebooted or a power shutdown has happened. |
EMCY | Received an EMERGENCY message from a device. | An error code is associated with the EMERGENCY message. An error file lists all the error code for the device type (cf section Device errors) |
IN_FAULT | A controller is in fault. | |
CAN_BUS_TIMEOUT | Timeout expired while waiting to response from CANbus. | The device is responding slowly because the CANbus is over loaded or because the device is overloaded. |
HARDWARE_MISSING | HARDWARE NOT DETECTED - POWER FAILURE ? | |
HARDWARE_ERROR | HARDWARE ERROR during INITIALIZATION PHASE | |
BAD_SERIAL_NB | Serial number read in CPU different from serial number in configuration. | |
PARAMETER_ERROR | ERROR in CPU controller for a parameter | A parameter has a value different between controller CPU and configuration. |
SDO_ERROR | Error in a request to a CANopen device | |
READ_PDO_ERROR | Error in response to a sync command | |
AC_SENSOR_ERROR | Autochanger sensors are in error | |
CA_SENSOR_ERROR | Carousel sensors are in error | |
LO_SENSOR_ERROR | Loader sensors are in error | |
COMPLEMENTARY_SENSOR_ERROR | complementary sensors return same values | |
AC_TRUCKS_ERROR | Autochanger trucks ERROR | Voltage returned by proximity sensor at ONLINE is too low or is too high. |
- FCS Configuration
In this section, the configurable parameters have been extracted automatically with a python script from fcs Java code.
- Configurable parameters for autochanger
class | name | description |
---|---|---|
AutochangerLatch | timeoutForClosing | Timeout for closing a latch in milliseconds. |
AutochangerLatch | timeoutForOpening | Timeout for opening a latch in milliseconds. |
AutochangerLatch | currentToClose | Current to close autochanger latch in ma |
AutochangerLatch | currentToOpen | In ma current to be sent to the controller to open the latch. |
AutochangerOnlineClamp | targetPositionToClose | Absolute target position to close clamp |
AutochangerOnlineClamp | finalCurrentToClose | Final current to close clamp in a current ramp in ma |
AutochangerOnlineClamp | initialCurrentToClose | Initial current to close clamp in a current ramp in ma |
AutochangerOnlineClamp | targetPositionToOpen | Absolute target position to open clamp |
AutochangerOnlineClamp | incrementCurrentToClose | Increment of current to close clamp in a current ramp in ma |
AutochangerOnlineClamp | incrementCurrentToClamp | Increment of current to lock in a current ramp in ma |
AutochangerOnlineClamp | currentToOpen | Current to open online clamp in ma |
AutochangerOnlineClamp | currentToClamp | Current to clamp online clamp in ma |
AutochangerOnlineClamp | incrementCurrentToOpen | Increment of current to open clamp in a current ramp in ma |
AutochangerThreeOnlineClamps | timeoutForUnlockingClamps | Timeout in milliseconds : if unlocking the clamps last more than this amount of time then the subsystem goes in error. |
AutochangerThreeOnlineClamps | strainGain | |
AutochangerThreeOnlineClamps | maxClosedStrain | |
AutochangerThreeOnlineClamps | maxLockedStrain | |
AutochangerThreeOnlineClamps | minPeriod | Minimal period for current ramps. should be > 50 |
AutochangerThreeOnlineClamps | maxTimeToOpenClampsX | Maximum time in milliseconds to open the 3 clamps |
AutochangerThreeOnlineClamps | maxTimeToUnlockAllClamps | Maximum time in milliseconds to unlock the 3 clamps |
AutochangerThreeOnlineClamps | maxTimeToCloseClampsX | Maximum time in milliseconds to close the 3 clamps |
AutochangerThreeOnlineClamps | timeoutForLockingClamps | Timeout in milliseconds : if closing the clamps last more than this amount of time then the subsystem goes in error. |
AutochangerThreeOnlineClamps | maxTimeToLockAllClamps | Maximum time in milliseconds to lock the 3 clamps |
AutochangerTwoTrucks | lowDeceleration | Low deceleration to approach standby position |
AutochangerTwoTrucks | highDeceleration | High deceleration to approach standby position |
AutochangerTwoTrucks | approachStandbyPosition | Approach standby position |
AutochangerTwoTrucks | positionRange | Masterposition is reached if |targetposition - masterposition| \< positionrange |
AutochangerTwoTrucks | lowSpeed | Low speed to approach standby position |
AutochangerTwoTrucks | highAcceleration | High acceleration to approach standby position |
AutochangerTwoTrucks | utarget | Voltage target on proximitysensor. unit: volts |
AutochangerTwoTrucks | adjustmentFactor | Adjustment factor. unit: micrometre/volt |
AutochangerTwoTrucks | lowAcceleration | Low acceleration to approach standby position |
AutochangerTwoTrucks | umax | Maximum value of voltage read on proximitysensor. unit: volts |
AutochangerTwoTrucks | umin | Minimum value of voltage read on proximitysensor. |
AutochangerTwoTrucks | minTargetPosition | Lowest position to be used by command moveandclampfilteronline. |
AutochangerTwoTrucks | naturalPosition | Natural position at online position in micron used by process whichmoves a filter at online position. |
AutochangerTwoTrucks | minActualPositionValue | Minimal position for ac trucks |
AutochangerTwoTrucks | prelimaryTargetPosition | Prelimary online position in micron used by process whichmoves a filter at online position. |
AutochangerTwoTrucks | highSpeed | High speed to approach standby position |
AutochangerTwoTrucks | proximitySensorInput | Input number on the adc where proximity sensor is plugged |
AutochangerTwoTrucks | deltaPositionMax | An alignment of slave must be done when |deltaposition| > deltapositionmax |
AutochangerTwoTrucks | onlinePosition | Online position in micron |
AutochangerTwoTrucks | handoffPosition | Handoff position in micron |
AutochangerTwoTrucks | standbyPosition | Standby position in micron |
AutochangerTwoTrucks | maxActualPositionValue | Maximal position for ac trucks |
AutochangerTwoTrucks | timeoutForTrucksMotion | Time for trucks motion from online to standby in milliseconds |
-
Configurable parameters for carousel
-
Configurable parameters for loader
- Configurable parameters for loader carrier
LoaderCarrier | deltaPosition | Delta position in micron : used to know if carrier position is in a range of 2*deltaposition around a given position |
---|---|---|
LoaderCarrier | highSpeed | High speed to move carrier when it's empty or with a filter from engaged to storage position |
LoaderCarrier | handoffPosition | Loader handoff position in micron |
LoaderCarrier | engagedPosition | Loader engaged position in micron |
LoaderCarrier | storagePosition | Loader storage position in micron |
LoaderCarrier | maxCurrent | For the loader gui : maximum current to be sent to the loader carrier controller (in ma). |
LoaderCarrier | maxSpeed | For the loader gui : loader carrier maximum speed (in rpm/mn). |
LoaderCarrier | timeoutForGoingToHandOff | Timeout in milliseconds to go from storage to handoff on loader |
LoaderCarrier | highDeceleration | High deceleration to move carrier with a filter from engaged to storage position |
LoaderCarrier | lowDeceleration | Low deceleration to move carrier with a filter from engaged to storage position |
LoaderCarrier | highAcceleration | High acceleration to move carrier empty from engaged to storage position |
LoaderCarrier | lowAcceleration | Low acceleration to move carrier with a filter from engaged to storage position |
LoaderCarrier | timeoutForGoingToEngaged | Timeout in milliseconds to go from storage to engaged on loader |
LoaderCarrier | lowSpeed | Low speed to go with a filter from engaged to handoff position |
LoaderCarrier | timeoutForGoingToStorage | Timeout in milliseconds to go from handoff to storage on loader |
- Configurable parameters for loader clamp
LoaderClamp | currentToClamp | Current to clamp hooks in ma |
---|---|---|
LoaderClamp | minClampedVoltage | Trigger to know when action clamp is completed. if force sensor voltage is over this limit then action clamp is completed. unit is 0.1 volt |
LoaderClamp | timeoutForClosingHooks | Timeout in milliseconds : if closing the clamp last more than this amount of time then the subsystem goes in error. |
LoaderClamp | timeoutForClampingHooks | Timeout in milliseconds : if closing strongly the clamp last more than this amount of time then the subsystem goes in error. |
LoaderClamp | timeoutForOpeningHooks | Timeout in milliseconds : if opening the clamp last more than this amount of time then the subsystem goes in error. |
LoaderClamp | absolutePositionToClose | Target encoder absolute value in qc when hooks are closed |
LoaderClamp | currentToOpen | Current to open hooks in ma |
LoaderClamp | relativePositionToUnclamp | Relative position in qc to unclamp when hooks are clamped |
-
FCS Telemetry
-
Telemetry for drivers
- Telemetry for motor controllers
-
TBD
-
Telemetry for autochanger
-
Telemetry for latches
-
Data published by each of the 2 latches
-
Name | Type | Description |
---|---|---|
lockSensorValue | boolean | is the latch locked or not |
unlockSensorValue | boolean | is the latch unlocked or not |
filterPresenceSensorValue | boolean | is the filter presence detected by sensors |
lockStatus | enum | OPENED, CLOSED, IN_TRAVEL or ERROR |
inError | boolean | are the latch sensors in error |
controllerInFault | boolean | is the latch controller in fault |
lockSensorsInError | boolean | are the lock sensors in error |
unlockSensorsInError | boolean | are the unlock sensors in error |
filterEngagedSensorsInError | boolean | are the filter engaged sensors in error |
- Data published for the 2 latches
Name | Type | Description |
---|---|---|
lockStatus | enum | OPENED, CLOSED, IN_TRAVEL, UNKNOWN or ERROR |
filterPresenceStatus | enum | ENGAGED, NO_FILTER, UNKNOWN or ERROR |
filterName | String | name of the filter in the autochanger trucks or NO_FILTER |
-
Telemetry for trucks
-
Data published by each of the 2 trucks
Name | Type | Description |
---|---|---|
controllerName | String | name of the truck controller |
controllerInFault | boolean | is the controller in fault ? |
standbySensorValue | boolean | are the position sensor at stanby on ? |
handoffSensorValue | boolean | are the position sensor at handoff on ? |
onlineSensorValue | boolean | are the position sensor at online on ? |
standbyInError | boolean | are the position sensors at standby in error ? |
handoffInError | boolean | are the position sensors at handoff in error ? |
onlineInError | boolean | are the position sensors at online in error ? |
position | integer | position of the trucks along the linear rails |
current | integer | current read on the controller truck |
averageCurrent | integer | average current read on the controller truck |
averageVelocity | integer | average velocity read on the controller truck |
followingError | integer | folowing error read on the controller truck |
- Data published by the 2 trucks
Name | Type | Description |
---|---|---|
homingDone | boolean | true if the homing of the 2 controllers has been done |
atStandby | boolean | true if standby position sensors for truckXminus and truckXplus return true |
atHandoff | boolean | true if handoff position sensors for truckXminus and truckXplus return true |
atOnline | boolean | true if online position sensors for TruckXminus and TruckXplus return true |
inError | boolean | true if an error has been detected on the position sensors |
-
Telemetry for online clamps
-
Data published by each of the 3 online clamps
Name | Type | Description |
---|---|---|
lockSensorValue | boolean | true if lock sensors return true |
unlockSensorValue | boolean | true if unlock sensors return true |
lockStatus | enum | OPENED, CLOSED, LOCKED, INTRAVEL, UNKNOWN or ERROR |
lockSensorInError | boolean | true if complementary lock sensors return the same value |
unlockSensorInError | boolean | true if complementary unlock sensors return the same value |
inError | boolean | true if sensors are in error |
controllerInFault | boolean | true if the online clamp controller is in fault |
controllerBooted | boolean | true if the online clamp controller is booted |
sentCurrent | integer | current sent to the controller by FCS |
current | integer | average current read on the online clamp controller |
position | integer | position of the online clamp |
homingDone | boolean | true if the homing of the controller has been done |
- Data published by the 3 online clamps
Name | Type | Description |
---|---|---|
homingDone | boolean | true if homing of the 3 controllers has been done |
lockStatus | enum | OPENED, CLOSED, LOCKED, INTRAVEL, UNKNOWN or ERROR |
onlineClampStrain | integer | strain value read on the clampXplus controller at ONLINE |
-
Telemetry for carousel
- Telemetry for carousel rotation
Name | Type | Description |
---|---|---|
homingDone | boolean | true if homing of the carousel controller has been done |
locked | boolean | true if carousel is locked |
atStandby | boolean | true if a socket is at STANDBY |
filterAtStandbyName | String | name of the filter at STANDBY or NO_FILTER if none |
socketAtStandbyName | String | name of the socket at STANDBY |
socketAtStandbyID | integer | ID of the socket at STANDBY. [1-5] |
filterOnAutochangerName | String | name of the filter on the autochanger trucks |
position | integer | position of the carousel |
velocity | integer | velocity of the carousel |
current | integer | current read on the carousel controller |
- Telemetry for carousel clamps
Name | Type | Description |
---|---|---|
clampState | enum | CLAMPEDONFILTER, UNCLAMPEDONFILTER, UNLOCKABLE, UNDEFINED, ERROR |
filterPresenceStatus | enum | LOCKABLE, NOT_LOCKABLE, NOFILTER, ERROR |
lockStatus | enum | LOCKED, UNLOCKED, UNKNOWN, ERROR |
filterPresenceSensorValue | integer | value returns by filter presence sensor |
lockSensorValue | integer | value returns by lock sensor |
temperature | double |
-
Telemetry for loader
- Telemetry for loader carrier
Name | Type | Description |
---|---|---|
atStorage | boolean | true if position sensors et Storage return true |
atEngaged | boolean | true if position sensors et Engaged return true |
atHandoff | boolean | true if position sensors et Handoff return true |
storageInError | boolean | true if redundant position sensors at Storage return same value |
engagedInError | boolean | true if position sensors at Engaged return same value |
handoffInError | boolean | true if position sensors at Engaged return same value |
controllerInError | boolean | true if controller is in fault |
position | integer | position of the loader carrier |
ssiPosition | integer | SSI position of the loader carrier |
profileVelocity | integer | value of the parameter profileVelocity sent to the controller |
current | integer | value of current sent to the controller |
speed | integer | average value of profile velocity read on controller |
-
Telemetry for loader clamp
-
Telemetry for each of the 4 hooks
Name | Type | Description |
---|---|---|
lockSensorValue | boolean | true if hook lock sensor returns 1 |
unlockSensorValue | boolean | true if hook unlock sensor returns 1 |
inError | boolean | true if redundant hook sensors are in error |
lockStatus | enum | OPENED, CLOSED, INTRAVEL, UNKNOWN, ERROR |
- telemetry for the whole clamp (4 hooks)
Name | Type | Description |
---|---|---|
homingDone | boolean | true if homing of the loader clamp controller is done |
clampState | enum | CLAMPED, UNCLAMPED, CLOSED, OPENED, UNKNOWN, ERROR |
forceSensorVoltage0 | integer | value returned by forceSensor0 |
forceSensorVoltage1 | integer | value returned by forceSensor1 |
forceStatus | enum | UNCLAMPED, CLAMPED, UNDER_CLAMPED, OVER_CLAMPED, ERROR |
position | integer | position of then clamp read on the clamp controller |
current | integer | current read on the clamp controller |
-
Screenshots of important GUI Panels
-
Screenshot of important GUI for whole fcs
- List of CAN open devices in whole fcs
-
-
Screenshot of important GUI for autochanger
- autochanger general view GUI
- autochanger latches GUI
- autochanger trucks GUI
- autochanger online clamps GUI
-
Screenshot of important GUI for carousel
- carousel general view GUI
- carousel socket GUI
-
Screenshot of important GUI for loader
- loader general view GUI
- loader carrier GUI
- loader clamp GUI
-
Outstanding Issues
-
Relevant CCS requirements
-
CAN open errors
- Error register errors
00=no errors
01=generic error
04=voltage error
08=temperature error
10=communication error
11=CAN communication error
20=device error
50=communication and device error
80=motion error
81=manufacturer specific error
85=manufacturer specific error, voltage
- Communication errors
00000000=No Communication Error
05030000=Toggle Error
05040000=SDO Time Out
05040001=Client / Server Specifier Error
05040005=Out of Memory Error
06010000=Access Error
06010001=Write Only
06010002=Read Only
06020000=Object does not exist Wrong Index
06040041=PDO mapping Error
06040042=PDO Length Error
06040043=General Parameter Error
06040047=General internal Incompatibility Error
06060000=Hardware Error
06070010=Service Parameter Error
06070012=Service Parameter too long Error
06070013=Service Parameter too short Error
06090011=Object Subindex Error
06090030=Value Range Error
06090031=Value too high Error
06090032=Value too low Error
06090036=Maximum less Minimum Error
08000000=General Error
08000020=Transfer or store Error
08000021=Local Control Error
08000022=Wrong Device State
08000024=Access to flash failed
0F00FFC0=Wrong NMT State Error
0F00FFBF=Illegal Command Error
0F00FFBE=Password Error
0F00FFBC=Error Service Mode
0F00FFB9=Error CAN ID
- Devices error
0000=No Error
1000=Generic Error
2310=Overcurrent Error
3110=Mains voltage Error
3120=Mains voltage too low, power-fail (systec)
3210=Overvoltage Error
3220=Undervoltage Error
4201=Internal device temperature above 60°C (overheat)
4210=Overtemperature Error
5000=Hardware error (A/D-converter defective)
5001=Hardware reset caused by watchdog or reset button
5002=CRC error on FLASH memory
5003=CRC error on RAM
5004=CRC error on EEPROM
5113=Logic Supply Voltage Too Low Error
5114=Supply Voltage Output Stage Too Low Error
6000=Software Error : EEPROM checksum error
6100=Internal Software Error
6101=Unexpected software reset
6102=Stack overflow
6103=Unused software interrupt
6110=Internal Software Error (check device documentation)
6320=Software Parameter Error
7320=Position Sensor Error
8110=CAN Overrun Error. CAN message could not be transmitted.
8111=CAN Overrun Error
8120=CAN controller in error passive mode
8130=CAN Life Guard / Heartbeat Error
8140=Recovered from Bus OFF
8150=CAN Transmit COB-ID Collision Error
81FD=CAN Bus Off Error
81FE=CAN Rx Queue Overflow Error
81FF=CAN Tx Queue Overflow Error
8210=PDO not processed due to length error
8611=Following Error
FF01=Hall Sensor Error
FF02=Index Processing Error
FF03=Encoder Resolution Error
FF04=Hall Sensor not found Error
FF06=Negative Limit Switch Error
FF07=Positive Limit Switch Error
FF08=Hall Angle Detection Error
FF09=Software Position Limit Error
#FF10=FF10Data lost (A/D-data overflow) only for CAN-CBX devices
FF0A=Position Sensor Breach Error
FF0B=System Overloaded Error
FF0C=Interpolated Position Mode Error
FF0D=Auto Tuning Identification Error
FF0F=Gear Scaling Factor Error
FF10=Controller Gain Error
FF11=Main Sensor Direction Error
FF12=Auxiliary Sensor Direction Error