EasyManua.ls Logo

Scanlab RTC 5 PC Interface Board - 9.3.2 Conditional Command Execution

Scanlab RTC 5 PC Interface Board
622 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
RTC
®
5 PC Interface Board
Rev. 1.9 e
9 Programming Peripheral Interfaces
213
innovators for industry
gap. set_control_mode( bit #2 = 1 ) alone isn’t
sufficient for termination, because the track delay is
reactivated by any not-yet-executed
simulate_ext_start command.
If a further external start is missed within the track
delay, then you should delete the wait loop
(otherwise the encoder counter will need to run
through a full 31-bit sequence before a start can
again be successfully triggered). Deletion can be
accomplished via resetting the track delay with
set_ext_start_delay. In any case, bit #10 needs to
first be reset (disabled) for initialization and then a
(one-time) external start must be triggered (for
external start signals bit #0 must be set) before
bit #10 can again be set (see example). Otherwise,
the first track delay in the wait loop will be undefined.
9.3.2 Conditional Command Execu-
tion
The RTC
®
5 provides so-called conditional commands
that also allow the execution of individual list
commands to be made dependent on external
control signals. These commands read the current
value of the 16-bit digital input port at the
EXTENSION 1 connector (see page 49) and act in
accordance with the obtained value:
Conditional Jumps:
The commands list_jump_pos_cond (synony-
mous with list_jump_cond) and
list_jump_rel_cond result in – depending on the
queried value – either a jump within a buffer area
or no jump. The thereby specified jump addresses
must fulfill the same conditions as with the
list_jump_pos and list_jump_rel commands.
Variable-distance jump:
The switch_ioport command produces a relative
list jump whose jump distance depends on the
queried value.
Conditional Calls of Non-Indexed Subroutines:
The commands list_call_cond and
list_call_abs_cond either call or don’t call –
depending on the queried value – a non-indexed
subroutine at a specified memory address.
Conditional Calls of Indexed Subroutines:
The commands sub_call_cond and
sub_call_abs_cond either call or don’t call –
depending on the queried value – an indexed
subroutine with a specified index.
Conditional output of peripheral signals:
The set_io_cond_list and clear_io_cond_list
commands associate the output value of the
16-bit digital output port at the EXTENSION 1
connector (see page 49) directly with the signals
of the digital input port: Depending on the
current value of the digital input, individual bits
of the output port are set or cleared.
Conditional execution of any desired list
commands:
The commands if_cond and if_not_cond have no
effect if the condition for the queried value is
fulfilled (or not fulfilled). Otherwise, they result in
skipping the next list command. This means any
list command can be made conditionally execut-
able.
Example: the command sequence
if_cond(…)
list_call(…)
is functionally identical to the command
list_call_cond(…)
The execution of any desired list command can also
be made dependent on the current value of the
LASER connector’s 2-bit digital input port. Therefore,
the commands if_pin_cond and if_not_pin_cond
are provided (these commands are functionally
similar to the commands if_cond and if_not_cond).
Reliable functioning of these conditional commands
requires that the signals at the 2-bit digital input port
remain unchanged for at least 10 µs.

Table of Contents

Related product manuals