Herunterladen Inhalt Inhalt Diese Seite drucken

Error-Handling - Scanlab RTC 5 Installation Und Inbetriebnahme

Inhaltsverzeichnis

Werbung

6.8 Error-Handling

Damit bei der Programmierung der RTC
Fehler im Programmablauf aufgefangen werden
®
können, führt die RTC
5 zum einen eine allgemeine
Fehlerbehandlung durch, zum anderen bei einigen
Befehlen auch eine individuelle.
Allgemeine Fehler treten z.B. auf, wenn das Anwen-
derprogramm keine Zugriffsberechtigung für die
Karte besitzt (RTC5_ACCESS_DENIED), wenn die Karte
auf einen Kontrollbefehl nicht reagiert
(RTC5_TIMEOUT) oder wenn beim Laden ein PCI-
Kommunikationsproblem auftritt
(RTC5_SEND_ERROR).
Individuelle Fehler können z.B. auftreten, wenn ein
Befehl mit einem (nicht korrigierbaren) unzulässigen
Parameter aufgerufen wird (RTC5_PARAM_ERROR,
siehe z.B.
get_value
oder write_da_x), wenn das
Laden eines Listenbefehls verweigert wird
(RTC5_REJECTED, z.B. bei illegalem Inputpointer)
oder ein Kontrollbefehl zum falschen Zeitpunkt
gesendet wird (RTC5_BUSY, z.B. goto_xy, wenn noch
eine Liste läuft).
Kontrollbefehle werden in diesen Fällen nicht ausge-
führt, für die Listenbefehle wird meist ein list_nop-
Befehl gesendet (z.B. bei RTC5_PARAM_ERROR oder
RTC5_IGNORED, siehe z.B. set_end_of_list).
Die diesen Fehlern zugeordneten Bits werden in der
DLL bei jedem Befehl in (kartenspezifischen) Fehlerva-
riablen LastError und AccError gesetzt bzw. akku-
muliert.
• Der Fehlercode LastError wird am Anfang eines
jeden Befehls automatisch zurückgesetzt und
entspricht daher einer Auflistung der beim zuletzt
ausgeführten Befehl aufgetretenen Fehler.
LastError kann mit dem Befehl
(1)
ausgelesen werden
.
• Der akkumulierte Fehlercode AccError wird
dagegen beim Initialisieren der DLL zurückge-
setzt, kann aber auch von der Anwendung selbst
durch den Befehl
reset_error
werden. AccError entspricht einer Auflistung der
seit dem letzten Error-Reset (reset_error) aufge-
tretenen Fehler und kann mit
(1)
lesen werden
.
(1) Der beschriebene Mechanismus wirkt nur bei Befehlen, die eine
®
Kommunikation mit der RTC
®
Kommunikation mit der RTC
rtc5_count_cards,
set_rtc4_mode
erzeugen bzw. verändern weder
AccError
(siehe auch Hinweis bei den entsprechenden
Befehlsbeschreibungen).
®
®
RTC
5 PCI-Karte, RTC
5 PCI-Express-Karte, RTC
Rev. 1.10 d
6 Programmierung von Anwenderprogrammen
®
5-Karte
get_last_error
zurückgesetzt
get_error
ausge-
5 aufbauen. Befehle, die keine
5 aufbauen (wie z. B.
oder get_serial_number)
LastError
noch
®
5 PC/104-Plus-Karte, RTC
Die Fehlerbehandlung erfolgt für jede Karte und für
jedes Anwenderprogramm separat. Ein
löscht nicht den Fehlercode eines anderen Anwender-
programms, die gerade für die angegebene Karte
zugriffsberechtigt ist. Beim Austausch von Zugriffs-
berechtigungen werden diese Daten nicht mitge-
tauscht, ebenso wenig alle anderen
kartenspezifischen Daten.
Die Fehlerbehandlung geschieht ausschließlich beim
Initialisieren und beim Laden auf die RTC
der Ausführung eines Listenprogramms.
Ein Beispielprogramm zur Einbindung der karten-
eigenen Fehlervariablen finden Sie bei der Befehlsbe-
schreibung des Befehls get_error.
Einige Kontrollbefehle (wie init_rtc5_dll,
load_correction_file
oder load_program_file)
liefern zusätzlich einen speziellen Fehlercode als
Returnwert. Dieser wird nicht zwischengespeichert
und muss von der Anwendung sofort ausgewertet
oder verworfen werden.
®
5 PCIe/104-Karte
reset_error
®
5, nicht bei
95

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis