-
Notifications
You must be signed in to change notification settings - Fork 2
System components
Alexandru Dascalu edited this page Oct 10, 2019
·
36 revisions
This is a table of the major components of IBEX server.
Name | Console Name | Type | What it does |
---|---|---|---|
Active MQ | JMS | Java | ActiveMQ used to transmit log and alarm data |
Alarm server | ALARM | Java | Serves alarms which appear in the alarms perspective. It checks to PVs to see if they are in alarm mode and relays that information to the client. Actual range checking is done a EPICS server. |
Archive Access | ARACCESS | python | Creates log files based on the MySQL database for some devices with special needs. |
Archive Engine | ARBLOCK | Java | Archives (in mysql db) blocks set in a configuration (restarted when blocks change) see CSS-Archive-Engine |
Block Cache | BLOCKCACHE | Python | Program which caches block values and provides them via a CS:BLOCKSERVER:BLOCKVALUES . This is done to avoid genie python etc making too many calls to the various block PVs. |
Block Gateway | GWBLOCK | EPICS Gateway | Aliases the dynamically created block PVs e.g. CS:SB:FURNACE_TEMP to the underlying PV e.g. EUROTHRM_01:A01:TEMP see Block server |
Block server | BLOCKSRV | Python | Manages configurations and blocks associated with them see Settings-and-Configurations. It configures the Archive Engine and starts the IOCs read from the configuration files. |
CA Repeater | CAREP | Executable | A epics CA repeater that is started before all other processes. This repeats UDP broadcasts to CA clients on the same machine |
Database server | DBSVR | Python | Intermediary between MySQL and the GUI, only used for PVs that hold instrument information, such as experiment data, which IOCs are used and information about PVs of an instrument. Legacy software, not that necessary now. |
Experiment DB | EXPDB | Python | Similar to DB server but for PVs for the experimental database which contains users and run numbers. |
External/Access Gateway | GWEXT | EPICS Gateway | Gateway to allow access to PVs from outside localhost |
Inst etc | INSTETC_01 | Epics IOC | PVs which are for instrument level, e.g. motors moving and security pvs |
Instrument Archive | ARINST | Java | Archives (in mysql db) pvs with archive property see CSS-Archive-Engine |
IOC Message Logger | IOCLOG | Java | Instrument level software that collects messages sent by any IOC, logs it in the database and put it on the JMS message queue. |
ISIS DAE | ISISDAE_01 | Epics IOC | Controls the ISIS ICP program which collects data. It is an IOC-like needed because ICP can not talk over Channel Access. |
MySQL | runs as a service | Service | My SqlDatabase is used for persisting data |
Nicos | NICOSDAEMON | Python | Process which runs and queues users's python scripts on an instrument |
Proc Serve Control | PSCTRL | Epics IOC | Control proc serves (start, stop and status). A wrapper that makes starting and stopping IOCs much easier. |
Reflectometry Server | REFL | pcaspy | Complex reflectometry motion |
Run Control | RUNCTRL_01 | Epics IOC | Add run control to blocks. Run Control is a feature of IBEX that allows users to configure the instrument so when a PV is out of a certain range, neutron data is not being gathered. Needed because neutron data has an extremely large volume and sometimes that data would not be needed so it is better to not pollute the Nexus files with it. |
Script server (Interface to Nicos) | SCRIPTSERVER | Python | Script server is a proxy in front of nicos to allow communication with it. |
All components are started via Startup and Shutdown