Herunterladen Inhalt Inhalt Diese Seite drucken

Sprünge; Ringpuffer-Modus - Scanlab RTC 5 Installation Und Inbetriebnahme

Inhaltsverzeichnis

Werbung

6.5.3 Sprünge
Durch die Befehle
list_jump_pos
set_list_jump) und
list_jump_rel
zu einer angegebenen Adresse definiert werden, die
im Programmablauf von der RTC
werden.
Beim Befehl
list_jump_pos
cheradresse innerhalb des konfigurierten Listenbe-
reichs ("Liste 1" und "Liste 2") angegeben werden.
Sprünge in den geschützten Speicherbereich
("Liste 3") und aus dem geschützten Speicherbereich
heraus sind bei diesem Befehl verboten. Ein
list_jump_pos-Befehl mit einer solchen unerlaubten
Sprungadresse wird beim Abarbeiten ignoriert.
Beim Befehl
list_jump_rel
(relative Speicheradressen) angegeben werden.
Dieser Befehl kann in allen Speicherbereichen, also
auch im geschützten Speicherbereich ("Liste 3"),
verwendet werden. Bei der Angabe der Sprung-
adresse muss aber darauf geachtet werden, dass der
Sprung nicht über die Grenzen des jeweiligen
Speicherbereichs hinaus erfolgt. Andernfalls wird der
®
Befehl von der RTC
5 beim Abarbeiten ignoriert. Falls
der Befehl in einem indizierten Unterprogramm
eingesetzt wird, muss zusätzlich darauf geachtet
werden, dass der Sprung nicht über die Grenzen des
Unterprogramms hinaus geht. Relative Sprünge, die
über die Grenzen eines indizierten Unterprogramms
hinausgehen, werden von der RTC
beiten des Unterprogramms ignoriert.
Hinweise
• Beim Umkonfigurieren des Listenspeichers oder
bei der Konvertierung eines Unterprogramms
kann es passieren, dass eine ursprünglich legale
Sprungadresse aufgrund neuer Listengrenzen
oder einer veränderten Speicherposition des
Unterprogramms zu einer illegalen Sprung-
adresse wird. In diesem Fall wird der entspre-
chende Sprungbefehl von der RTC
und das Programm funktioniert vermutlich nicht
mehr wie gewünscht. Bei der Programmierung
mit Sprungbefehlen muss daher mit einer
entsprechenden Sorgfalt vorgegangen werden.
• Wenn konditionale Sprungbefehle verwendet
werden, hängt die Ausführung eines Sprungs von
einem externen Steuersignal ab (siehe
Befehlsausführung", Seite
®
®
RTC
5 PCI-Karte, RTC
5 PCI-Express-Karte, RTC
Rev. 1.10 d
6 Programmierung von Anwenderprogrammen
(synonym zu
können Sprünge
®
5 ausgeführt
kann eine absolute Spei-
können Sprungweiten
®
5 beim Abar-
®
5 ignoriert
"Bedingte
236).
®
5 PC/104-Plus-Karte, RTC
• Sprungbefehle wie list_jump_rel( 0 ), die einen
Sprung auf sich selbst veranlassen werden zur
Laufzeit ignoriert, sonst würden sie bei der
Ausführung eine Endlosschleife ohne weitere
Aktivitäten ergeben.
Konditionale Sprungbefehle wie
list_jump_rel_cond( Mask1, Mask0, 0 ) sind
dagegen erlaubt, z.B. zum Warten auf die Bestä-
tigung eines Signals.

6.5.4 Ringpuffer-Modus

Der Ringpuffer-Modus (circular queue mode), der bei
®
®
der RTC
3/RTC
4 mit dem Befehl set_list_mode
aktiviert werden konnte, wird nicht von der RTC
unterstützt. Effektiv lässt sich dieser Betriebsmodus
®
aber bei der RTC
5 einfach mit Hilfe eines
alternierenden Listenwechsels und des Befehls
load_list
realisieren.
Mit load_list ( 3, 0 ) ist dabei – wie im
®
®
RTC
3/RTC
4-Ringpuffer-Modus – sichergestellt,
dass neue Befehle nur in eine bereits abgearbeitete
Liste (die nicht BUSY ist) geladen werden, ohne dass
die Nummer der Liste explizit angegeben werden
muss, und dass das kontinuierliche Abarbeiten von
Listenbefehlen nicht durch das gleichzeitige
Nachladen neuer Befehle gestört wird (siehe auch
"Alternierender Listenwechsel", Seite 80
mit Schutzfunktion", Seite
Benutzer, die einfach nur – wie im RTC
Ringpuffer-Modus – die volle Kapazität des Listen-
speichers einer einzigen Liste zuweisen wollen,
können dies einfach mit dem Befehl
sieren.
®
5 PCIe/104-Karte
®
5
und
"Laden
75).
®
®
3/RTC
4-
config_list
reali-
88

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis