SICS Hardware Configuration

Hardware is configured into the SICS system by executing special hardware configuration commands from the server initialisation file. These commands are described here. Much SICS hardware is hooked up to the system via RS-232 interfaces. The SICS server communicates with such devices through a serial port server program running on a Macintosh PC. All such devices require on initialisation the following parameters:

Motors

The following commands are available to install motors into the system:

Motor name SIM lowlim uplim err speed
This command creates a simulated motor with the lower limits lowlim, the upper limit uplim, an ratio of randomly generated errors err and a driving speed of speed. Use this for testing and instrument simulation. If err is less then 0, the motor will not create failures and thus can be used in a instrument simulation server.
Motor name EL734 host port chan no
This command creates a stepper motor named name which is controlled through a El734 motor controller. The parameters host, port, chan have the meanings defined above. no is the number of the motor in the EL734 motor controller.
Motor name EL734DC host port chan no
This command creates an analog motor named name which is controlled through a El734DC motor controller. The parameters host, port, chan have the meanings defined above. no is the number of the motor in the EL734DC motor controller.
MakePIMotor name c804 pararray
Creates a motr name connected to a C804 motor controller from the manufacturer Physik Instrumente. Pararray is a Tcl array holding the initialization information. The follwoing elements are required in this array:
Computer, port, channel
The standard connection parameters.
upperlimit, lowerlimit
The limits for this motor.
motor
The number of the motor in the motor controller.
Motor name pipiezo pararray
Creates a piezo electric positioning device. Again the controller is a Physik Instrumente controller. pararray has the same meaning as for the C804 controller given above.

Counting Devices

MakeCounter name SIM failrate
This command creates a simulated single counter accessible as object name. Failrate is the per centage of invocations at which the counter will generate a random failure for testing error treatment code. If failrate is less then 0, there are no failures. This can be used in a instrument simulation server.
MakeCounter name EL737 host port chan
This command creates a single counter name, using an EL737 driver. The counter is at host host, listening at port port and sits at serial port chan.
MakeHMControl name counter hm1 hm2 hm3
At some instruments (for instance TRICS) multiple counters or histogram memories are controlled by a master counter which watches over presets and the like. This command installs a virtual counter which does exactly that. The parameters are:
name
The name of the virtual counter in SICS
counter The name of the master counter
hm1, hm2, hm3
Up to three slave counting devices.

Histogram Memory

Due to the large amount of parameters, histogram memories are configured differently. A histogram memory object is created using a special creation command. This command is described below. Then a lot of options need to be configured. The commands used for setting these options and their meanings are defined in the user documentation because histogram memories may be reconfigured at runtime. The sequence of configuartion options is ended with the command hmname init. This last command actually initialises the HM. Histogram memory objects can be created using the command:

MakeHM name type
The parameter name specifies the name under which the HM will be avialable in the system. type specifies which type of driver to use. Currently two types of drivers are supported: SIM for a simulated HM and SINQHM for the SINQ histogram memory. Please care to note, that the SINQHM requires a EL737 counter box for count control. This counter must have been defined before creating the HM object.
As an example the configuration of a SINQHM HM with the name banana will be shown:
MakeHM banana SINQHM         
banana configure HistMode Normal
banana configure OverFlowMode    Ceil
banana configure Rank     1
banana configure Length   400
banana configure BinWidth 4
banana preset 100.
banana CountMode Timer
banana configure HMComputer psds04.psi.ch
banana configure HMPort 2400
banana configure Counter counter
banana init

Velocity Selectors

A velocity selector is configured in a three step process. First a Tcl array is filled with the necessary configuration options for the actual velocity selector driver. In a second step the velocity selector is created with a special command. In a third step the forbidden regions for the velocity selector are defined. Currently two drivers for velocity selctors are known: a SIM driver for a simulated velocity selector and a DORNIER driver for a Dornier velocity selector hooked to a SINQ serial port setup. The last one needs a parameter array containing the fields Host, Port, Channel and Timeout. Host, Port and Channel have the meanings as defined at the very top of this section. Timeout is the maximum time to wait for responses from the velocity selector. A large value is required as the dornier velocity selector is very slow. The second step is performed through the following commands:

VelocitySelector name tilt-motor SIM
This command installs a simulated velocity selector with the name name into the system. tilt-motor is used for driving the tilt angle of the selector. tilt-motor must exist before this command can be executed successfully.
VelocitySelector name tilt-motor DORNIER arrayname
This command installs a dornier velocity selector into the system. name and tilt-motor have the same meanings as described above. arrayname is the Tcl-array with the driver configuration parameters.
As an example the configuration of a dornier velocity selector named nvs is shown:
set dornen(Host) lnsp25.psi.ch
set dornen(Port) 4000
set dornen(Channel) 6
set dornen(Timeout) 5000
VelocitySelector nvs tilt DORNIER dornen
nvs add -20 28800
nvs add 3800 4500
nvs add 5900 6700
nvs add 8100 9600

Chopper

Chopper systems are handled via a generic controller object. This basicly consists of two components: One object represents the actual controller. This basic object allows to query parameters only. Then there is for each parameter which can be controlled from SICS in this controller an adapter object. These adapter object are virtual motors which can be driven with the normal run or drive commands. Currently two drivers for this scheme exists: one for a simulated device, the other for the Dornier Chopper Controller at FOCUS. The first step when initializing this system is the installation of the general controller object into SICS. This is done with the commands:

MakeChopper name sim
MakeChopper name docho mac port channel
The first command simply installs a simulated controller. The second command install a controller with a driver for the FOCUS Dornier Chopper system. Mac, port and channel are the usual Macintosh terminal server parameters which describe where the chopper controller is connected to through its RS-232 interface. After both commands the controller is available as command name within SICS.

A drivable parameter at this controller is installed with a command similar to this:

ChopperAdapter vname cname pname lower upper
vname is the name under which the virtual motor will appear in SICS. cname is the name of the controller object installed into SICS with the commands in the previous paragraph. pname is the name of the drivable parameter in the controller. upper and lower are the upper and lower limits for this parameter. More then one of these commands can be given for each general controller.

After this, the parameter can be modified by a command like:

drive vname newvalue

RS232 Controller Direct Access

RS232 controllers connected to a terminal server can be directly accessed by SICS through the TCP/IP network, bypassing the SerPortServer program. See the description of this facility for more details. Such a controller can be configured into the system through the command:

MakeRS232Controller name terminalserver port
For example:
MakeRS232Controller hugo psts213 3004
name is the SICS name for the controller, terminalserver is the name of the terminal server the device is connected to and port is the port number at which the terminal server publishes the RS232 channel to which the device is connected. This is usally the port number plus 3000.

To be expanded. Please note, that environment devices such as temperature controllers are dynamically configured into the system at run time. Therefore the necessary commands are described in the user documentation.