Herunterladen Diese Seite drucken

Warten Auf Das Eintreffen Des Service Request - Rohde & Schwarz FSP3 Bedienhandbuch

Werbung

Grundlegende Schritte der IEC-Bus-Programmierung

Warten auf das Eintreffen des Service Request

Grundsätzlich gibt es zwei Methoden, um auf das Eintreffen eines Service Request zu warten:
1.
blockierend (keine Benutzereingabe möglich):
Diese Methode ist immer dann geeignet, wenn die Wartezeit auf das durch SRQ zu meldende Er-
eignis kurz ist (kürzer als die eingestellte Timeout-Periode), während der Wartezeit keine Reaktion
auf Benutzereingaben notwendig ist und – als wesentlichstes Kriterium – das Ereignis absolut zu-
verlässig eintrifft.
Grund:
Die verwendete Funktion WaitSRQ() läßt nach ihrem Aufruf bis zum Eintritt des erwarteten Ereig-
nisses keine Reaktion auf Mausklicks oder Tastendrücke im Programm zu. Außerdem führt sie
zum Programmabbruch, wenn das SRQ-Ereignis nicht innerhalb der vordefinierten Timeout-
Periode auftritt.
Für das Warten auf Messergebnisse, speziell bei getriggerten Messungen, ist diese Methode daher
nur sehr bedingt geeignet.
Folgende Funktionsaufrufe sind notwendig:
CALL WaitSRQ(boardID%,result%)
IF (result% = 1) THEN CALL Srq
2.
nicht-blockierend (Benutzereingaben möglich):
Diese Methode wird empfohlen, wenn die Wartezeit auf das durch SRQ zu meldende Ereignis lang
ist (größer als die eingestellte Timeout-Periode), während der Wartezeit Eingaben des Benutzers
möglich sein sollen, oder das Ereignis nicht zuverlässig eintritt. Damit ist diese Methode die bevor-
zugte Wahl für das Warten auf das Ende von Messungen bzw. das Eintreffen von Messergebnis-
sen, speziell bei getriggerten Messungen.
Benötigt wird hier eine Warteschleife, die regelmäßig den Zustand der SRQ-Leitung abprüft und,
solange das erwartete Ereignis nicht eingetreten ist, die Kontrolle an das Betriebssystem zurück-
gibt. Dadurch wird die Reaktion auf Benutzereingaben (Mausklicks auf Buttons, Eingaben über
Tastatur) während der Wartezeit möglich.
Empfehlenswert ist die Verwendung der Hilfsfunktion Hold(), die während einer einstellbaren War-
tezeit die Kontrolle an das Betriebssystem abgibt (siehe Kapitel "Warten ohne Blockieren von Tas-
tatur und Maus") und somit Benutzereingaben während des Wartens ermöglicht.
result% = 0
For i = 1 To 10
CALL TestSRQ(boardID%,result%)
If (result% <> 0) Then
CALL Srq
Else
Call Hold(20)
Endif
Next i
If result% = 0 Then
PRINT "Timeout Error; Program aborted"' Fehlermeldung ausgeben
STOP
Endif
1093.4820.11
'Warten auf Service Request
'keine Benutzereingaben waehrend der
'Wartezeit moeglich!
'Wenn SRQ erkannt =>
'Unterprogramm zur Auswertung
'Abbruch nach max. 10 Schleifen-
'durchlaeufen
'Pruefen der Service Request Leitung
'Wenn SRQ erkannt =>
'Unterprogramm zur Auswertung
'Aufruf des Wartezeitprogramms mit
'20ms Wartezeit. Benutzereingaben
'bleiben moeglich
'Software anhalten
7.8
FSP
D-1

Werbung

loading