RTC
®
5 PC Interface Board
Rev. 1.9 e
9 Programming Peripheral Interfaces
212
Regular (Periodic) External List Starts
Note
• This functionality requires a firmware file in
version 507 or higher (see get_rtc_version) and a
DSP program file in version 511 or higher (see
get_hex_version).
Via set_control_mode and set_control_mode_list
(bit #10), equidistant external list starts can be
created that are independent of the time point of the
start trigger as long as they occur within the specified
track delay. This strongly periodic list processing is –
independently of a list’s actual duration of execution
and the exact time point of the external list start –
exactly synchronized to the RTC
®
5’s 10 µs clock.
If desired, set bit #10 = 1 (
Mode|Bit#10
) to configure
the internal encoder-counter’s processing so that the
track delay of an external list start will not be counted
only beginning with the time point of the triggering
external start signal or simulate_ext_start command
(bit #10 = 0) but already beginning with the most
recently executed external list start (also executed via
an external start signal or simulate_ext_start
command) – see figure 59.
For activation of this mode, an external list start must
have successfully occurred (only one-time) in mode
bit #10=0 (
Mode &
~
Bit#10
). Each subsequent
external list start must be requested within the spec-
ified track delay.
Example (in PASCAL) of a typical command sequence
(without use of an external start signal):
set_control_mode(Mode &
~
Bit#10);
// (one-time) reset (disable) bit #10 (initialization)
set_start_list_pos(ListNo, Pos);
// open some list
// afterward: some commands
simulate_ext_start(Delay,EncoderNo);
// first time start in mode bit #10 = 0, otherwise in
// mode bit #10 = 1
set_control_mode_list(Mode|Bit#10);
// set bit #10 = 1
// afterward: further commands
set_end_of_list;
// close the list
execute_list_pos(ListNo,Pos);
// (one-time) start the list
If the first start is to be triggered externally (e.g. via
/START or via simulate_ext_start_ctrl) rather than via
an execute_list_pos command, but all subsequent
starts triggered via simulate_ext_start, then
set_control_mode_list in the above example must
be called before simulate_ext_start.
As of Version DLL 528, OUT 530, after setting
set_control_mode bit#1 = 1, the external start
queue’s entries get explicitly cancelled upon an
external list stop (thereby, external starts can be
permanently stopped via an external list stop).
For older versions and for set_control_mode,
bit #1 = 0 (default setting) – after an otherwise infi-
nitely repetitive series has been stopped (e.g. via
set_control_mode, bit #0 = 0) – you should deac-
tivate the track delay and cancel the queue of not-
yet-executed external list starts via
set_ext_start_delay (
Delay
= 0). Otherwise, the next
“equidistant“ external start won’t have the correct
Bit #10 = 1:
Bit #10 = 0:
1
1 2
2
1 2
Start
Execution
time
Start Start
Execution
time
Execution
time
Start
Start
simulate_ext_start /START, /START2 or /Slave-START
Track delay
Start
Execution
time
Track delay
Start
Execution
time
Track delay
Track delay Track delay
Time
Time
Regular and irregular external list starts (see text for description)