Telescope Control System
TCS is controlling the LBTO observatory. It's various subsystems control and provides a readout of sensors on the building, mount, rotators, autoguiders and optics support. Most of the telescope hardware is controlled through
MCSPU,
UMAC motion controllers (M3, hexapods,..) are controlled directly from
TCS subsystems. See
README.md for details.
TCS is versioned in
GitHub -
https://github.com/LBTO/tcs
Subsystems
- AOS - Adaptive Optics System
- ECS - Enclosure Control System
- ENV - ENViromental subsytem
- GCS - Guiding Control System
- IIF - Instrument InterFace
- LSS - Logging SubSystem
- MCS - Mount Control System
- OSS - Optical Support Structure
- PCS - Pointing Control System
- PMC - Primary Mirror Control
- PSF - Point Spread Function
TCS Configuration
- TCS configuration - short document about TCS networking, subsystem management, important file paths, etc.
Communication
Instruments shall communicate with
TCS using
ZeroC ICE. The interface is defined in
iif/ice/IIFServer.ice file.
TCS submodules communicate with each other using LBTO's RPC (remote procedure calls) mechanisms. The request is encoded in XML, transferred to the server. Responses are again XML encoded and send on the same socket to a client.
TCS uses a custom XML parser to encode and decode strings.
Shared memory
TCS uses shared memory to store the actual telemetry data.
Where,..
Runs on
TCS cluster (tcs1 & tcs2 machines at CRA). Logs are stored in /lbt/data/logs/tcs/..., telemetry in /lbt/data/telemetry/...
Troubleshooting
Restart something
%CODE{lang="sh"}%
netconfig stop
netconfig start
%ENDCODE%
Replace "stop" with the "kill" to kill the process instead. You can also use kill command with a process ID, or use killall. Processes are running either on tcs1 or tcs2.
%CODE{lang="sh"}%
netconfig ps
netconfig start all
netconfig stop all
# restarts rpc & shared memory servers
netconfig stop
netconfig start
%ENDCODE%
Change binaries
%CODE{lang="sh"}%
cd /lbt/tcs/current
./tcs-build show
./tcs-buidl activate <name(s)>
%ENDCODE%
Operating (driving) the TCS
Switching the TCS
Software Releases
64 Bit TCS
- Performance monitoring notes
- As of early 2015, we have released the CentOS 7, 64 bit version of the TCS. The 64 bit mountain cluster has two computers (tcs1 and tcs2) which have only two users: tcs, and observer. ssh keys are used to authenticate access, allowing user telescope on any obs computer to ssh to a 64 bit computer as user tcs or user observer without using a password. The tcs user has sudo privileges. All the subsystems except IIF are split between tcs1 and tcs2, the IIF runs on tcs2, and all the GUIs run on tcs1.
- The DNS entries iif, dds, and tcslog must be changed for third party applications (instruments, big displays, etc) to work properly.
- Stephen has made a 'transport' mechanism to allow commands used on the 32 bit obs computers to be executed on the 64 bit cluster. In order to activate these 'transport' commands, the TCS build on the obs computers must be switched to build tcs64 using the lbtswitcher. (The command lbtswitcher64 is provided to run the lbtswitcher on the 64 bit cluster.) Once this is done, the TO should start the TCSGUI from the icon as normal, and then start subsystems and GUIs as normal. Just be aware that the TCSGUI is actually running on tcs1. The 'transport' mechanism treats user telescope specially: the access is made as user tcs, while for other users the access is made as user observer. We expect normal users will never need to login directly to any of the 64 bit computers. The list of supported commands is
AOSGUI DDBrowser ddsclient DDViewer ECSGUI ENVGUI gcsclient GCSGUI gshmconfig gshmmonitor IIFGUI LSSGUI lbtswitcher mcsclient
MCSGUI netconfig OSSGUI PCSGUI pmac PMCGUI psfclient PSFGUI ptincrement ptlist ptmodify ptreset rpcconfig TCSGUI
- As of build 2016A the locale is back to mountain.
- TCS sounds are now played by the LSS subsystem (not the GUI) and will emanate from one of the available computers in the control room.
Software Testing Status
TCS SW Status Reports 2008 and 2009
Building, Patching and Installing Software
Subsystem Development Documentation
Common Software Documentation
GUI Development Documentation
Documents