KAGRA VIS Operations Manual - MEDM Screens

See http://www.aps.anl.gov/epics/extensions/medm/

LIGO Version - Edit Me!!!

Information on MEDM screens for Suspensions

Back to Operation Manual main page

MEDM is a system for creating user interface screens that can display and set EPICS channels. It provides for many standard UI elements including read-only and read-write text fields, dials, sliders, buttons, etc. See the MEDM documentation for detailed info. Screens are defined by text files with extension .adl. The medm program allows screens to be edited in a GUI which is approximately WYSIWYG (what-you-see-is-what-you-get). (However due to limited support for cut and paste, some changes are more easily made with a plain text editor such as gedit.)

MEDM supports generic screens, which are customized on the fly by arguments passed in by the screen which invokes them. See [[#CallingConventions]|Calling Conventions] below for information on the recommended argument list for SUS screens. The medm main window has an Execute button which is meant to make a newly created/edited screen live and start it displaying EPICS data. However because of the extensive use of generic screens, it is rarely much use. Rather it is necessary to start at the so-called SITEMAP screen for a site in a separate, execute-only instance of medm and click through to the screen being edited. See below.

Screens of Importance


The SITEMAP is the master MEDM screen for an entire site. It can be accessed with the sitemap command, or via various GUI shortcuts. It has a large number of buttons linking to screens for individual suspensions and other subsystems of interest.

The traditional location for the SITEMAP at /opt/rtcds/${site}/${ifo}/medm/SITEMAP.adl. The terminal command sitemap is defined to open the screen at that location. However it should not be edited directly because it is a symlink to a version-controlled file at /opt/rtcds/userapps/release/cds/${ifo}/medm/SITEMAP.adl.

The version-controlled copy should only be edited with extreme care and following consultation with CDS personnel. Most other screens cannot usefully be opened except directly or indirectly from the SITEMAP, because they rely on macro arguments passed in, so breaking the SITEMAP breaks MEDM for everyone.

As of 4/4/13 at LLO and 4/30/13 at LHO, most of the macro arguments for SUS screens were offloaded from the SITEMAP.adl file to separate per-suspension files (see below). (However the location of those files is still specified in the SITEMAP.)

For more, see HowToEditTheSitemapMedmScreen

Custom Screens

Most SUS MEDM screens are hand-made custom ones which are generic to all suspensions of the same type (QUAD/BSFM/etc) and are particularized to an individual suspension by macro arguments. The common screens for most suspension types live at /opt/rtcds/userapps/release/sus/common/medm/ in subdirectories quad, bsfm, hxts, omcs, tmts and haux.

Tip-Tilts (HTTS) are owned by ASC and files for them live at /opt/rtcds/userapps/release/asc/common/medm/asctt (note: asc).

HSTS and HLTS are similar enough to be handled by a single set of "HXTS" screens.

The macro files live in the top-level directory /opt/rtcds/userapps/trunk/sus/common/medm and have names of the form sus${susid}_overview_macro.txt, e.g., susetmx_overview_macro.txt.

Automatically Generated Screens (especially *_GDS_TP and *_IOP_TP)

When a model is compiled, a large number of MEDM screens are automatically generated by RCG and placed in directories /opt/rtcds/${site}/${ifo}/medm/${site}sus${susid} e.g., /opt/rtcds/lho/h1/medm/h1susmc2/

Most of the custom screens were created originally by cutting and pasting elements from the automatically generated screens into more convenient arrangements.

Of the automatically generated screens about the only one that is normally used as-is is the GDS_TP screen, which gives an overview of housekeeping info like the CPU ID of the computer running the model, the loop time, the GPS time (as reported by the model), the ADC, DAC and test point status, etc:

/opt/rtcds/${site}/${ifo}/medm/${site}sus${susid}/${SITE}SUS${SUSID}_GDS_TP.adl /opt/rtcds/lho/h1/medm/h1susmc2/H1SUSMC2_GDS_TP.adl

The IOP_TP screen gives similar information for the IOP process running on the same computer, and can be found in the automatically generated screens for the IOP model, e.g., /opt/rtcds/lho/h1/medm/h1iopsush34/H1IOPSUSH34_GDS_TP.adl for h1susmc2.

See the [Detailed Overview] link on the SITEMAP for info on which IOP model corresponds to which suspension model.

Calling Conventions

An MEDM screen can allow for the opening of a second one by having a "Related Display" button (or a popup menu of them). In the dialog that allows setting the properties of the button/popup, there are fields "Display File" and "Arguments". These show up in the underlying .adl file as a pair of lines that look like

name="$(USERAPPS)/sus/common/medm/hxts/SUS_CUST_HXTS_MONITOR_OVERVIEW.adl" args="%(read $(USERAPPS)/sus/common/medm/susmc1_overview_macro.txt),USERAPPS=$(USERAPPS),SITE=$(SITE),si te=$(site),IFO=$(IFO),ifo=$(ifo)"


explicitly with IFO=$(IFO) or the like.

and ifo=h1.


combination of macro text files and macros=value.

in explicitly.

Currently USERAPPS is the only macro guaranteed to be defined in SITEMAP.adl (it is passed in with the -macro argument of medm by the sitemap alias). SITE/site/IFO/ifo have to be given explicit values (LHO/lho/H1/h1 or the like). There is a proposal afoot to add more macros to the standard set, but since the SITEMAPs are highly site-specific in any case, it's not a big deal. From the SITEMAP to a generic screen particularized for a single suspension SUS screens in the SITEMAP should be called per the following example (the main screen for ITMx): name="$(USERAPPS)/sus/common/medm/quad/SUS_CUST_QUAD_OVERVIEW.adl" args="%(read $(USERAPPS)/sus/common/medm/susitmx_overview_macro.txt),USERAPPS=$(USERAPPS),SITE=LHO,site= lho,IFO=H1,ifo=h1"

From the SITEMAP to a summary screen for all suspensions of the same type

Some suspension types like HAUX have summary screens showing an overview of all suspensions of that type. These have special macro text files with only the common information:


From one generic suspension screen to another

Copy the following example (SUS_CUST_HSTS_OVERVIEW.adl, with say, optic=mc1, is calling SUS_CUST_HXTS_MONITOR_OVERVIEW.adl): name="SUS_CUST_HXTS_MONITOR_OVERVIEW.adl" args="%(read $(USERAPPS)/sus/common/medm/sus$(optic)_overview_macro.txt),USERAPPS=$(USERAPPS),SITE=$(SIT E),site=$(site),IFO=$(IFO),ifo=$(ifo)"


need to be passed in unchanged.

special macro text files with only the common information:


need to be passed in unchanged.

KAGRA/Subgroups/VIS/OpsManual/MEDM (last edited 2017-10-31 11:31:04 by MarkBarton)