Sie sind auf Seite 1von 11

SECO Program

(Authors: Klaus Ehrenfried, October 2000; C. Willert, June 2004)

OVERVIEW
The seco program is a utility to program the Hardsoft sequencers. The seco program can run
under Windows (Windows 98 or higher) and on Linux platforms.
The programmable sequencer needs input data which tell it, when output pulses on certain
channels should occur. These data is called in the following a sequence.
The utility reads an input file, where the sequence is defined. The format of the input file is
described below. Depending on the definitions which are made in the input file several control
panels are generated. On these control panels parameters can be selected which determine the
resulting sequence. The sequence is stored in a so call timing table. This timing table is
written to the output file. The format of the timing table is described below. The output filename is passed to the interface program which transfers the timing table to the sequencer. The
seco program checks the return code of the interface program, which indicates if the transfer
was successful or not.

MENUS
File menu
New

(Ctrl+N)
Creates a new SEQ file in 'Edit Mode.
Open (Ctrl+O)
This item opens a file dialog in which the input file name can be selected. Then this
file is loaded. The old information is overwritten. For security reasons the sequencer is
stopped before a new file is loaded.
Save (Ctrl+S)
Saves an edited SEQ file.
Edit Mode
Change to 'Edit Mode'.
Working Mode
Change to 'Working Mode'.
Quit (Ctrl+Q)
This item terminates the program. For security reasons the sequencer is stopped and an
empty sequence is sended to it. If the connection to the sequencer is lost an error box
is displayed. Then the program stops.

Edit menu
The edit menu contains the following commands:
Undo (Ctrl+Z)
Undo the last action just performed.
Redo (Ctrl+Y)
Redo the last undone action.

Cut

(Ctrl+X)
Cuts the highlighted text and copies it to the clipboard.
Copy (Ctrl+C)
Copies the highlighted text to the clipboard.
Paste (Ctrl+V)
Pastes the previously copied or cut text.
Find (Ctrl+F)
Searches Text.

Preference menu
Preferences
Opens a preferences dialog.
Set Frequency
Opens a dialog to set the internal generator frequency.
Starting sequence
Opens a dialog to set the Start Sequence.
Configuration
Shows information about connection to Sequencer.

Arrange menu
Arrange
The seco program generates up to three panels following the definitions in the input
file. These paneles are displayed in a scrollable area. Using the arrange item the
arrangement of this panels can be changed. By that the appearence of the panels can
be optimized.

Help menu
The help menu contains the following commands:
Contents (F1)
Opens Online Help.
What's this (Shift+F1)
Provides users with information about functionality, usage, background, etc.
About
This item shows an "about" message-box .

BUTTONS
Start
Starts the sequencer. A green triangle indicates, that the sequencer is running.
Stop
Stops the sequencer.
Send
Send the current timing table to the sequencer.

INDICATORS
The status of the seco program is indicated by symbols in the status bar.
Cross (red)
Input data not ready (Error in input file). Sequence transmittal is only possible, when
this is not visible.
Flash (red)
No connection to sequencer.
Arrows (yellow)
Settings modified. Current timing table has not been sent to the sequencer.
Triangle (green)
Sequencer running.

REMARKS
The running status of the sequencer may not be indicated correctly, when the sequencer is
started or stopped using the control buttons on the device.

SEQUENCER WORKING MODES


The sequencer can work in one of five (six) Working Modes which differ in using Arming
and Trigger inputs for starting sequences. In all the modes after starting the sequencer outputs
are set to their initial states. When the sequence finishes, outputs are set to logical 0. When the
sequencer is stopped all outputs are set to logical 0.
If the sequencer has the RUN status, the sequence is generated. In this time pulses on trigger
input and arming input are ignored (except for the Working Mode Alternative).
Working Mode

Arming Input

Trigger Input

Single

If the sequencer has the STOP status,


the arming initializes WAIT status of
the sequencer. No action on outputs is
performed.

Restart

Arming has no meaning.

Continue

Arming has no meaning.

Trickle

If the sequencer has the STOP status,


the arming initializes WAIT status of
the sequencer. No action on outputs is
performed.

Arming-Continue

If the sequencer has the STOP status,


the arming initializes WAIT status of
the sequencer and the device goes to
the Starting Sequence. No action on
outputs is performed.

Alternative
(for Sequencer 5.1
only)

If the sequencer has the RUN status,


the device goes to the next sequence. If
the sequencer has WAIT status, the
device to the next sequence is set after
the next trigger

If the sequencer has the WAIT status, the trigger


starts generating the Starting Sequence - RUN
status. After finishing the sequence, the
sequencer has the STOP status. The next trigger
starts the same sequence.
If the sequencer has the WAIT status, the trigger
starts generating the Starting Sequence - RUN
status. After finishing the sequence, the
sequencer has the WAIT status. The next trigger
starts the same sequence.
If the sequencer has the WAIT status, the trigger
starts generating the Starting Sequence - RUN
status. After finishing the sequence, the
sequencer has the WAIT status. The next trigger
starts the next sequence. After finishing all
programmed sequences the device goes to the
Starting Sequence.
If the sequencer has the WAIT status, the trigger
starts generating the Starting Sequence - RUN
status. After finishing the sequence, the
sequencer has the STOP status. The next trigger
starts the next sequence. After finishing all
programmed sequences the device goes to the
Starting Sequence.
If the sequencer has the WAIT status, the trigger
starts generating the Starting Sequence - RUN
status. After finishing the sequence, the
sequencer has the WAIT status. The next trigger
starts the next sequence. After finishing all
programmed sequences the sequencer has STOP
status.
If the sequencer has the WAIT status, the trigger
starts generating the current sequence - RUN
status. After finishing the sequence, the
sequencer has the WAIT status.

Installation
Part 1 Installation of PCI-Sequencer Card
1. Install PCI-sequencer card into a free PCI slot of your computer system. Make sure power
has been removed from the system and that your are free of static charge. (Damage to the
card due to electrostatic discharge is not covered by the warranty.)
2. Turn on the system and log on with system administration priviledges.
3. The system will detect the PCI card and display the new Hardware found dialog. the
card will be identified as: SI-DDK-AMCC-WDDM Driver for PCI Devices.
4. Put the CD-ROM that came with the card in the CD-drive. Select CD-ROM drives for
the search of the appropriate driver.
5. After the scan the hardware installation dialog should display the file:
<CD-Drive>:\driver\sequencer-v801-bm.inf

6. The driver siwdm.sys will be installed into the windows driver directory.
7. The sequencer card should now be fully functional.
Part 2 Installation of PIV sequencer software
1. From the CD-ROM copy all files from the Seco2004 directory to a directory of your
choice.
2. Install a short-cut to seco2004.exe for quick-starting the program.

TROUBLESHOOTING
In case of a configuration error or a cable problem the connection to the sequencer may not
work. When an error occurs a message box is shown by the seco program. The interface
program returns an exit code. The value of this code can be used to identify the error. In the
message box the exit code is listed as return code. The following table gives an overwiev:
Problem

return code

Solution

Interface program not


found

-1

check configuration file and interface program

Error reading timing


table

check configuration (file read/write possible?)

No connection to
sequencer

check cable; switch on sequencer

To big time step in


sequence

insert extra pules on dummy channels in the


sequence

Error transmitting bytes


to sequencer

check sequencer; possible timing or hardware


problem

Error changing
sequencer settings

check sequencer; possible timing or hardware


problem

Format of the SECO input files


SYNTAX
The input file can contain comments. These comments begin with the '#' symbol and end at
the end of the line.
The file should contain four sections. Each section begins with on of these keywords:
variables
channels
menus
sequence

(required)
(required)

A '{' must follow the keywords. The sections end with the '}' symbol.
Other keywords are completely ignored.
Variables Section
In the variables section some variables can be defined. Example:
variables {
a, "Tau [us]",
tol, Tolerance,
}

10,
0,

1,
5000,

1000;
1000;

The definition of a variable follows the syntax:


Name, Description, default value, minimum value, maximum value;

The ',' (comma) symbol separates the fields. The ';' (semicolon) indicates the end of the
definition. Name and Description are strings. Quotation marks can be used to include blanks,
comment symbols '#' and commas in the strings. The default value, minimum value and
maximum value are integers. These three numbers can be given in any order. The highest
number is taken as maximum, the lowest as minimum value.
Channels Section
In the channels section channels are defined. Undefined channels cannot be used. Example:
channels {
17, "Brilliant red flashlamp";
24, Camera, X;
}

The definition of a channel follows the syntax:


Number, Description;

or
Number, Description ,X;

The ',' symbol separates the fields. The ';' indicates the end of the definition. Number is an
integer number which identifies the channel. Description is a string, which appears in the
channels control panel. In the second case (,X) the channel is protected. It cannot be switched
off in the channels control panel.
Note: For the Euro-Module only channels (1 8) and (17 24) are allowed, for the PCI-Card
channels 116 are available.

Menus Section
In the menus section menu items can be defined. Example:
menus {
"High Energy",
"Low Energy",
"Flash-lamps only",
"Laser off",
}

c=250,
c=450,
c=500,
c=500,

d=250;
d=450;
d=500,
d=500,

18, 20;
17, 18, 19, 20;

The definition of a menu item has the following syntax:


Description, [variable name]=value, ... , [channel number],.;

The ',' symbol separates the fields. The ';' indicates the end of the definition. Description is a
string, which appears in the channels control panel. By "c=250" the variable c is set to the
value 279, when the menu item "High Energy" is selected. The variables have to be defined in
the variables section. If the given value exceeds the range of the variable, its value is set to the
minimum or maximum. The given channels are switched off, when the menu item is selected.
In the example channels 18 and 20 are switched off, when "Flash-lamps only" is selected. The
channels have to be defined in the channels section. Also protected channels can be switched
off using the menu items.
Sequence Section
In the sequence section the actual sequence is defined. Example:
sequence {
17,
500 - a,
23,
500 + 2 * tol,
}

50;
50;

The sequence consists of so called sequence lines. The definition of a sequence line follows
the syntax:
Channel, Expression, Length;

Channel is an integer, which gives the channel number. The channel has to be defined in the
channels section. Expression is a formula to compute the time at which the pulse begins.
Length is an integer which defines the length of the pulse. The Length is ignored for the
channels 1 to 8, when an external sequencer is used.
The Expression can contain constants and variables. When the sequence is submitted (sended)
to the sequencer the variables are replaced by the current values, and the expression is
computed. The operators +, - and * are permitted. Between the variables, constants and
operators a blank is required:
3 * a
3*a

(O.K.)
(not allowed)

A constant can have a minus sign but not a variable:


a * -2
2 * -a

(O.K.)
(not allowed)

REMARKS
Overlapping pulses on the same channel should be avoided. Example:

sequence {
14,
500,
14,
520,
}

50;
50;

# This will not work!

This results in a pulse which starts at time 500 and ends at time 550. The second line has no
effect.
If it is required to have an adjustable pulse length a trick can be used. Example:
sequence {
14,
500,
14,
500 + a,
}

-50;
50;

# NEGATIVE pulse length, use with caution!

This results in a pulse which starts at time 500 and ends at time (550 + a). Thus, the pulse
length depends on the value of the variable 'a'. Note that usually a negative pulse length
results in an unpredicted long pulse on the respective channel.

EXAMPLE
The following describes the PIV timing sequence configuration for driving a 10Hz double
oscillator pulsed laser with a PCO Sensicam CCD camera. This requires a total of five output
channels:
Description
Flashlamp No.1
Q-Switch No.1
Flashlamp No.2
Q-Switch No.2
Camera Trigger

Channel Number
PCI-Card
1
2
3
4
8

Channel Number
Euro Module
17
18
19
20
24

Given that the PCO-Camera can only acquire image pairs at around 3 Hz the Q-Switches
should be fired at less than the 10 Hz flashlamp firings, that is, every fourth cycle (2.5 Hz).
The following timing sequence is therefore necessary:

The Variables section


variables {
a, "Tau,[us]",
c, "Flashlamp 1 Delay",
d, "Flashlamp 2 Delay",
f, "Laser Period",
tol, "Tolerance",
pre, "PreTrigger",
}

10,
250,
250,
90000,
0,
600,

1,
1000;
150,
550;
150,
550;
100000, 110000;
5000,
1000;
600,
1000;

results in this part of the


menu.
Note: The Tolerance variable is
used to generate a dummy
trigger at the end of the sequence
to prevent premature retriggering
of the sequencer after the last
flash lamp No.2 pulse.

The Channels section


channels {
1, "Flashlamp 1";
2, "Q-Switch 1";
3, "Flashlamp 2";
4, "Q-Switch 2";
7, Dummy, X;
8, "Camera Trigger";
}

The Menus section


menus {
"High Energy",
"Low Energy",
"Flash-lamps only",
"Laser off",
4;
}

c=250,
c=450,
c=500,
c=500,

d=250;
d=450;
d=500,
d=500,

2, 4;
1, 2, 3,

The sequence section


sequence
1,
2,
3,
4,
8,

{
pre
- c,
pre,
pre + a - d,
pre + a,
pre - 218,

50;
50;
50;
50;
50;

#
#
#
#
#

1,
1,
1,

pre + f,
pre + 2 * f,
pre + 3 * f,

50;
50;
50;

# Flashlamp No.1
# Flashlamp No.1
# Flashlamp No.1

3,
3,
3,

pre + a + f,
50;
pre + a + 2 * f, 50;
pre + a + 3 * f, 50;

# Flashlamp No.2
# Flashlamp No.2
# Flashlamp No.2

7,

pre + 4 * f - tol, 50;

# dummy pulse at end of sequence

Flashlamp No.1
Q-Switch No.1
Flashlamp No.2
Q-Switch No.2
Camera trigger

In this sequence a pre-trigger of 600s is used with respect to the Q-Switch No.1 signal. This
is necessary because the flashlamp needs to be fired earlier (about 250 s for high energy
output).
The adjustment of the camera trigger requires a little trial and error and is best performed
using a live image display and alternating between the two Q-Switch outputs. For easier
adjustment it is advisable to temporarily make this parameter variable:
cam, "Camera Trigger",

218,

100,

1000;

(add to the variables section)


8,

pre - cam,

50;

# Camera trigger

(modified line in the sequence section)

Das könnte Ihnen auch gefallen