PITZ Laser Beam Line Control


Back to Index

LBL Axis configuration files

The following private conventions are adopted for the LBL server :

- The file name has to be composed from three parts separated by dots: <DeviceType>.<TypeName>.<Direction>. It is also called AxisName.
- Only capital letters and numbers are allowed in the three parts
- The extension has to be .cfg.
- The part <DeviceType>.<TypeName> should coincide with one of the DeviceNames in the file <localname>dv.csv (cf. TINE configuration files).
- The part <Direction> may be only HOR or VER.
- For every device listed in <localname>dv.csv there should exist two and only two files, <DeviceType>.<TypeName>.HOR.cfg and <DeviceType>.<TypeName>.VER.cfg.

Below follows the lines list with explanations together and also some examples.
 

#

ID string

Format

Legend

1

DeviceUsage

int

Defines the way the given axis will be used by the server :
1 REAL pointing to a really existing device
2 SCAN with 1 REAL equivalent, scan on 1 device in 2 directions
3 DOUBLE with 2 REAL equivalents, correlated displacement of 2 devices in 1 direction
4 DOUBLESCAN with 2 REAL equivalents, for 2dimens. scan, correlated displacement of 2 devices in 2 directions
2 AxisName

char[20]

Composed from <DeviceName>.<Direction>, the <DeviceName> itself being composed from <DeviceType>.<TypeName>. In Example1 here it is MIRROR.M3.VER. The AxisName MUST be equal to the file name, a crosscheck is performed.
3 Steps_per_Revolution

int

Number of full steps needed for a full turn of the stepper motor.
4 Gear_Reduction

float

As it reads, normally >1.0, but may be also <1.0.
5 Screw_Pitch_mkm

float

Pitch of the micrometric screw in micrometers
6 Speed_Max_Hz

int

Maximum pulse frequency (for full step mode) on top of the trapezoidal speed curve.
7 Speed_Min_Hz

int

Starting pulse frequency (for full step mode) at ramp up of the trapezoidal speed curve, end frequency (for full step mode) at ramp down.
8 Speed_Slow_Hz

int

Pulse frequency (for full step mode) in constant speed mode (used for small displacements).
9 Micro_Steps

int

The driver units allow 4 different modes - 1, 2, 4 and 8 micro steps per full step. The number inserted here schould correspond to the jumper settings in the driver unit. The server corrects the frequencies and step numbers (##6-8, 9-10) accordingly.
10 Max_Steps

int

Maximum number of steps (for full step mode) allowed by the server. With ##3-5 it defines the range of the drive im mkm.
11 Overdrive_Steps

int

Number of steps (for full step mode) used for "Schlupf" correction (set by experience equivalent to a half turn of the micrometric screw): In counterclockwise action the wanted displacement is increased by this number of steps and then the overdrive is taken out again in clockwise direction.
12 Base_Length_Mirror_mm

float

Distance between rotation point and action point of the micrometric screw in the mirror mechanics. The value is needed to calculate the displacement of the laser spot at some distance. For real XY-mechanics (like pinhole) it has to be set to 0.
13 Distance_to_Next

float

Distance to the next point of interest, for ex. M3=>M4 or M4=>Cathode. The value is needed to calculate the displacement of the laser spot at that point. For real XY-mechanics (like PINHOL) it has to be set to 0.
14 Factor_to_Next

float

As at present all mirrors reflect the laser beam by about 45 degree in horizontal direction, the inclination in vertical direction takes effect on the "next device" only in part. The factor corrects for that being set to sqrt(2) for the vertical direction of all mirrors. For all horizontal directions and for all non-mirror devices it has to be set to 1.
15 VME_Base_Addr_hex

hex

As it reads. With the VME units and the private conventions used it should have the form "6abc" with a = 0 - 3, b = 0 and c = 0 for "HOR" and c = 8 for "VER". The parameter "a" should correspond to the arrangement of the IndustryPack modules inside the VME IPCarrier unit.
16 Direction_Inversion

int

This parameter is used to bring the internal displacement direction (CW or CCW) in correspondence to the visible displacement with respect to the PITZ coordinate system. The parameter may have the value +1 or -1.
17 Connection_Status

int

Obsolete, will be removed.
18 AxisText1

char[20]

To be displayed in the PITZ LBL GUI windows
19 AxisText2

char[20]

To be displayed in the PITZ LBL GUI windows
20 AxisText3

char[20]

To be displayed in the PITZ LBL GUI windows
21 AxisText4

char[20]

To be displayed in the PITZ LBL GUI windows
22 NextDevice

char[20]

To be displayed in the PITZ LBL GUI windows
23 MirOrPin

int

Must be 1 for MIRROR, 0 for PINHOL.
24 MinScanRange

float

Minimal scan range set per default. Used only for DeviceUsage=SCAN and DOUBLESCAN. For DeviceUsage= REAL or DOUBLE any floating point number (unused).
25 FirstDevice

char[20]

For DeviceUsage=SCAN the AxisName of the REAL device which should in fakt be used. For DeviceUsage=DOUBLE or DOUBLESCAN the first REAL device of the pair. For DeviceUsage= REAL any character string (unused).
26 FirstFactor

float

Similar to #23, a numerical value needed for the calculations. For DeviceUsage= REAL any floating point number (unused).
27 SecondDevice

char[20]

For DeviceUsage=DOUBLE or DOUBLESCAN the second REAL device of the pair. For DeviceUsage= REAL or SCAN any character string (unused)
28 SecondFactor

float

Similar to #25, a numerical value needed for the calculations. For DeviceUsage= REAL or SCAN any floating point number (unused). 


Note :

  • The order of lines in the file and hence the numbering given above is arbitrary, but all lines should be present with their correct ID string
  • Any line starting with '#' in first position is ignored
  • The ID strings should start from first position
  • There should be at least one blank or TAB between ID string and the corresponding parameter
  • There should be at least one blank or TAB after the parameter value, any text following is ignored
  • Parameters of type float should contain a dot.
  • The parameter "AxisName" in a file should coincide with the file name.
  • If the strings for "AxisText<1...4>" and "NextDevice" contain the character '_', it is replaced by a blank for display on the GUI screen
  • For axes with DeviceUsage = REAL the parameters #24-28 are unused, but they should be present in the file and be given in the correct format.
  • For axes with DeviceUsage = SCAN only parameters #1 and #2 and parameters #24-26 are used, but all other parameters should be present in the file and be given in the correct format.
  • For axes with DeviceUsage = DOUBLE and DOUBLESCAN only parameters #1 and #2 and parameters #24-28 are used, but all other parameters should be present in the file and be given in the correct format.
  • The parameters #25 (FirstDevice) and #27 (SecondDevice) must be valid AxisNames for axes with DeviceUsage=REAL.

Example 1, REAL : MIRROR.M3.VER.cfg

# The order of lines in this file is arbitrary.
# The line names, however, are mandatory, they are checked against
# an internal list for correctness and completeness and are used to 
# sort lines according to the programs needs.
# The variable types (int, float, hex, char) are checked as well.
# Any error is FATAL and stops further Database initialization and hence
# the startup of the server.
DeviceUsage		1       !1=REAL,2=SCAN,3=DOUBLE,4=DOUBLESCAN
AxisName	MIRROR.M3.VER	!Crosscheck,upper case,digits or dots, char[20]
Steps_per_Revolution	20	!Stepper motor parameter, int
Gear_Reduction		256.0	!Can be also < 1.0, float
Screw_Pitch_mkm		250.0	!Displacement per full screw turn, float
Speed_Max_Hz		400	!Max freq for StepMot trapez operation, int
Speed_Min_Hz		8	!Min freq for StepMot trapez operation, int
Speed_Slow_Hz		40	!Freq for StepMot const speed oper., int
Max_Steps		163840	!Displacement range of the device(8.0mm), int
Overdrive_Steps		2560	!Overdrive for CCW displacemement, int
Micro_Steps		8	!Microsteps per full step, int
Base_Length_Mirror_mm	100.0	!For mirrors only, otherwise 0.0, float
Distance_to_Next	3412.0	!Dist to NextDevice (M3->M4,M4->Cath...), float
Factor_to_Next		1.4142  !Fact. to correct vertical on next, float
VME_Base_Addr_hex	6008	!Should be XXXabb (a=0..f,bb=00 or 08), hex
Direction_Inversion	-1	!Connect int. and ext. coord. syst (1/-1),int
Connection_Status	1	!If -1 device disconnected from IPS, int
AxisText1       MIRROR          !For display on GUI screen, char[20]
AxisText2       M3              !For display on GUI screen, char[20]
AxisText3       Vert._direction !For display on GUI screen, char[20]
AxisText4       on_M4(mm)       !For display on GUI screen, char[20]
NextDevice      MIRR._M4        !For display on GUI screen, char[20]
MirOrPin		1       !0=PINHOLE,1=MIRROR, int
FirstDevice     DUMMY           !REAL device to be used, char[20]
FirstFactor		0.      !See docu, float
SecondDevice    DUMMY           !REAL device to be used, char[20]
SecondFactor		0.      !See docu, float
MinScanRange		0.	!Minimal scan range, float

 

Example 2, SCAN : MIRROR.S5.VER.cfg

# The order of lines in this file is arbitrary.
# The line names, however, are mandatory, they are checked against
# an internal list for correctness and completeness and are used to 
# sort lines according to the programs needs.
# The variable types (int, float, hex, char) are checked as well.
# Any error is FATAL and stops further Database initialization and hence
# the startup of the server.
DeviceUsage             2       !1=REAL,2=SCAN,3=DOUBLE,4=DOUBLESCAN
AxisName	MIRROR.S5.VER	!Crosscheck,upper case,digits or dots, char[20]
Steps_per_Revolution	20	!Stepper motor parameter, int
Gear_Reduction		256.0	!Can be also < 1.0, float
Screw_Pitch_mkm		250.0	!Displacement per full screw turn, float
Speed_Max_Hz		400	!Max freq for StepMot trapez operation, int
Speed_Min_Hz		8	!Min freq for StepMot trapez operation, int
Speed_Slow_Hz		40	!Freq for StepMot const speed oper., int
Max_Steps		163840	!Displacement range of the device(8.0mm), int
Overdrive_Steps		2560	!Overdrive for CCW displacemement, int
Micro_Steps             8	!Microsteps per full step, int
Base_Length_Mirror_mm	100.0	!For mirrors only, otherwise 0.0, float
Distance_to_Next	2300.0	!Dist to NextDevice (M3->M4,M4->Cath...), float
Factor_to_Next          1.4142  !Fact. to correct vertical on next, float
VME_Base_Addr_hex	6108	!Should be XXXabb (a=0..f,bb=00 or 08), hex
Direction_Inversion	-1	!Connect int. and ext. coord. syst (1/-1),int
Connection_Status	1	!If -1 device disconnected from IPS, int
AxisText1       MIRROR          !For display on GUI screen, char[20]
AxisText2       M5              !For display on GUI screen, char[20]
AxisText3       Vert._direction !For display on GUI screen, char[20]
AxisText4       on_VC(mm)       !For display on GUI screen, char[20]
NextDevice      VIRT._CATH      !For display on GUI screen, char[20]
MirOrPin                1       !0=PINHOLE,1=MIRROR, int
FirstDevice     MIRROR.M5.VER   !REAL device to be used, char[20]
FirstFactor             1.      !See docu, float
SecondDevice    DUMMY           !REAL device to be used, char[20]
SecondFactor            0.      !See docu, float
MinScanRange           0.1	!Minimal scan range, float

 

Example 3, DOUBLE : MIRROR.34.HOR.cfg

# The order of lines in this file is arbitrary.
# The line names, however, are mandatory, they are checked against
# an internal list for correctness and completeness and are used to 
# sort lines according to the programs needs.
# The variable types (int, float, hex, char) are checked as well.
# Any error is FATAL and stops further Database initialization and hence
# the startup of the server.
DeviceUsage             3       !1=REAL,2=SCAN,3=DOUBLE,4=DOUBLESCAN
AxisName	MIRROR.34.HOR	!Crosscheck,upper case,digits or dots, char[20]
Steps_per_Revolution	20	!Stepper motor parameter, int
Gear_Reduction		256.0	!Can be also < 1.0, float
Screw_Pitch_mkm		250.0	!Displacement per full screw turn, float
Speed_Max_Hz		400	!Max freq for StepMot trapez operation, int
Speed_Min_Hz		8	!Min freq for StepMot trapez operation, int
Speed_Slow_Hz		40	!Freq for StepMot const speed oper., int
Max_Steps		163840	!Displacement range of the device(8.0mm), int
Overdrive_Steps		2560	!Overdrive for CCW displacemement, int
Micro_Steps             8	!Microsteps per full step, int
Base_Length_Mirror_mm	100.0	!For mirrors only, otherwise 0.0, float
Distance_to_Next	3162.0	!Dist to NextDevice (M3->M4,M4->Cath...), float
Factor_to_Next          1.      !Fact. to correct vertical on next, float
VME_Base_Addr_hex	6000	!Should be XXXabb (a=0..f,bb=00 or 08), hex
Direction_Inversion	1	!Connect int. and ext. coord. syst. (1/-1),int
Connection_Status	1	!If -1 device disconnected from IPS, int
AxisText1       M3&M4           !For display on GUI screen, char[20]
AxisText2       CORRELATED      !For display on GUI screen, char[20]
AxisText3       Hor._direction  !For display on GUI screen, char[20]
AxisText4       on_Cathode(mm)  !For display on GUI screen, char[20]
NextDevice      NONE            !For display on GUI screen, char[20]
MirOrPin                1       !0=PINHOLE,1=MIRROR, int
FirstDevice     MIRROR.M3.HOR   !REAL device to be used, char[20]
FirstFactor            0.06672  !See docu, float
SecondDevice    MIRROR.M4.HOR   !REAL device to be used, char[20]
SecondFactor           0.2264   !See docu, float
MinScanRange           0.	!Minimal scan range, float

 

Example 4, DOUBLESCAN : CATHOD.34.HOR.cfg

# The order of lines in this file is arbitrary.
# The line names, however, are mandatory, they are checked against
# an internal list for correctness and completeness and are used to 
# sort lines according to the programs needs.
# The variable types (int, float, hex, char) are checked as well.
# Any error is FATAL and stops further Database initialization and hence
# the startup of the server.
DeviceUsage             4       !1=REAL,2=SCAN,3=DOUBLE,4=DOUBLESCAN
AxisName	CATHOD.34.HOR	!Crosscheck,upper case,digits or dots, char[20]
Steps_per_Revolution	20	!Stepper motor parameter, int
Gear_Reduction		256.0	!Can be also < 1.0, float
Screw_Pitch_mkm		250.0	!Displacement per full screw turn, float
Speed_Max_Hz		1000	!Max freq for StepMot trapez operation, int
Speed_Min_Hz		20	!Min freq for StepMot trapez operation, int
Speed_Slow_Hz		200	!Freq for StepMot const speed oper., int
Max_Steps		163840	!Displacement range of the device(8.0mm), int
Overdrive_Steps		2560	!Overdrive for CCW displacemement, int
Micro_Steps             8	!Microsteps per full step, int
Base_Length_Mirror_mm	100.0	!For mirrors only, otherwise 0.0, float
Distance_to_Next	3162.0	!Dist to NextDevice (M3->M4,M4->Cath...), float
Factor_to_Next		1.      !Fact. to correct vertical on next, float
VME_Base_Addr_hex	6000	!Should be XXXabb (a=0..f,bb=00 or 08), hex
Direction_Inversion	1	!Connect int. and ext. coord. syst. (1/-1),int
Connection_Status	1	!If -1 device disconnected from IPS, int
AxisText1       M3&M4           !For display on GUI screen, char[20]
AxisText2       CORRELATED      !For display on GUI screen, char[20]
AxisText3       Hor._direction  !For display on GUI screen, char[20]
AxisText4       on_Cathode(mm)  !For display on GUI screen, char[20]
NextDevice      NONE            !For display on GUI screen, char[20]
MirOrPin		1       !0=PINHOLE,1=MIRROR, int
FirstDevice     MIRROR.M3.HOR   !REAL device to be used, char[20;
FirstFactor		0.06672	!See docu, float
SecondDevice    MIRROR.M4.HOR   !REAL device to be used, char[20]
SecondFactor		0.2264	!See docu, float
MinScanRange		0.1	!Minimal scan range, float

Back to Index


Last update by R. Leiste on 26.02.2004 (leiste@ifh.de)