FCS User Manual

LSSTlogo

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
  1. 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.

  1. Contents

[section]

1. Change History Log 1

2. Contents 1

3. Summary 2

4. Applicable Documents and Reference Documents 2

5. Acronyms 2

6. FCS Overview 3

6.1. Standalone subsystems 3

6.2. FCS 3

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

8. FCS Commands 5

8.1. Action commands 5

8.2. Query commands 11

9. FCS States 28

9.1. Operational states 28

9.2. Filter States 29

9.3. Filter Readiness 30

10. FCS Alerts 30

11. FCS Configuration 31

11.1. Configurable parameters for autochanger 31

11.2. Configurable parameters for carousel 34

11.3. Configurable parameters for loader 34

12. FCS Telemetry 35

12.1. Telemetry for drivers 35

12.2. Telemetry for autochanger 35

12.3. Telemetry for carousel 38

12.4. Telemetry for loader 39

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

14. Outstanding Issues 46

15. Relevant CCS requirements 46

16. CAN open errors 46

16.1. Error register errors 46

16.2. Communication errors 47

16.3. Devices error 48

  1. Summary

This document aims at providing

  1. 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
  1. 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
  1. 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.

  1. 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.

  1. List of hardware / CAN open devices to control and monitor

    1. 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))

    1. 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.

    1. 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

    1. Action commands

      1. 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.
  1. 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.
  1. 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.
  1. 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.
  1. 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.
  1. 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.
  1. FCS States

The subsystem publishes a superposition of states : subsystem operational state, filter state, filter readiness state.

  1. 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
  1. 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.
  1. Filter Readiness
Name Meaning
READY hardware READY for OCS control
NOT_READY hardware NOT READY for OCS control
  1. 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.
  1. FCS Configuration

In this section, the configurable parameters have been extracted automatically with a python script from fcs Java code.

  1. 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 maxTimeToClose Max time for current ramp when closing a clamp in milliseconds
AutochangerOnlineClamp maxTimeToUnlock Max time for current ramp when unlocking a clamp in milliseconds
AutochangerOnlineClamp maxTimeToLock Max time for current ramp when locking a clamp in milliseconds
AutochangerOnlineClamp maxTimeToOpen Max time for current ramp when opening a clamp in milliseconds
AutochangerOnlineClamp targetPositionToClose Absolute target position to close clamp
AutochangerOnlineClamp waitTimeToOpen Wait time for current ramp when opening a clamp in milliseconds
AutochangerOnlineClamp waitTimeToClose Wait time for current ramp when closing a clamp in milliseconds
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
  1. Configurable parameters for carousel

  2. Configurable parameters for loader

    1. 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
  1. 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
  1. FCS Telemetry

    1. Telemetry for drivers

      1. Telemetry for motor controllers

TBD

  1. Telemetry for autochanger

    1. Telemetry for latches

    2. 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
  1. 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
  1. Telemetry for trucks

  2. 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
  1. 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
  1. Telemetry for online clamps

  2. 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
  1. 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
  1. Telemetry for carousel

    1. 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
  1. 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
  1. Telemetry for loader

    1. 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
  1. Telemetry for loader clamp

  2. 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
  1. 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
  1. Screenshots of important GUI Panels

    1. Screenshot of important GUI for whole fcs

      1. List of CAN open devices in whole fcs

fcs_GUI.png

  1. Screenshot of important GUI for autochanger

    1. autochanger general view GUI

autochanger_general_view_GUI.png

  1. autochanger latches GUI

autochanger_latches_GUI.png

  1. autochanger trucks GUI

autochanger_trucks_GUI.png

  1. autochanger online clamps GUI

autochanger_online_clamps_GUI.png

  1. Screenshot of important GUI for carousel

    1. carousel general view GUI

carousel_general_view_GUI.png

  1. carousel socket GUI

carousel_socket_GUI.png

  1. Screenshot of important GUI for loader

    1. loader general view GUI

loader_general_view_GUI.png

  1. loader carrier GUI

loader_carrier_GUI.png

  1. loader clamp GUI

loader_clamp_GUI.png

  1. Outstanding Issues

  2. Relevant CCS requirements

  3. CAN open errors

    1. 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

  1. 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

  1. 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