Herunterladen Inhalt Inhalt Diese Seite drucken

R&S FSP3 Bedienhandbuch Seite 467

Inhaltsverzeichnis

Werbung

FSP
Programmierbeispiel:
Im folgenden C-Beispielprogramm wird auf dem Gerät mit der IP-Adresse 89.10.38.97 ein Single
Sweep gestartet und anschließend ein Marker auf den maximalen Pegel gesetzt. Vor der Suche
nach dem Maximum wird eine Synchronisierung auf das Sweepende durchgeführt. Hierzu wird mit
dem Befehl "*OPC" (Operation complete) ein Service Request am Ende des Sweeps ausgelöst, auf
den das Steuerprogramm mit der Funktion RSDLLWaitSrq() wartet. Anschließend wird das
Maximum bestimmt ("CALC:MARK:MAX") und der Pegel ausgelesen ("Y?").
#define MAX_RESP_LEN 100
short
unsigned long
short
short
char
char
// Handle fuer das Gerät ermitteln
ud = RSDLLibfind( "89.10.38.97", &ibsta, &iberr, &ibcntl );
// falls Gerät existiert
if ( ud >= 0 )
{
// Timeout fuer RSDLLWaitSrq() auf 10 Sekunden einstellen
RSDLLibtmo( ud, 10, &ibsta, &iberr, &ibcntl );
// SRQ-Erzeugung durch Event-Status-Register (ESR) aktivieren
// und ESB-Bit im SRE-Register freigeben
RSDLLibwrt( ud, "*ESE 1;*SRE 32", &ibsta, &iberr, &ibcntl );
// Single Sweep einstellen, Sweep auslösen und mit "*OPC" die
// Erzeugung eines Service Requests am Ende des Sweeps veranlassen
RSDLLibwrt( ud, "INIT:CONT off;INIT;*OPC", &ibsta, &iberr, &ibcntl );
// auf SRQ (Ende des Sweeps) warten
RSDLLWaitSrq( ud, &srq, &ibsta, &iberr, &ibcntl );
// RQS/MSS Bit loeschen
RSDLLibrsp( ud, &spr, &ibsta, &iberr, &ibcntl );
// falls Sweep beendet
if (srq)
{
// dann Marker auf erstes Maximum setzen und den Pegel abfragen
RSDLLibwrt( ud, "CALC:MARK:MAX;Y?", &ibsta, &iberr, &ibcntl );
RSDLLilrd( ud, MaxPegel, MAX_RESP_LEN, &ibsta, &iberr, &ibcntl );
MaxPegel[ibcntl] = 0;
}
// Verbindung zum Gerät beenden
RSDLLibonl (ud, 0, &ibsta, &iberr, &ibcntl ) ;
}
else
{
; // Fehler Geraet nicht gefunden
}
1164.4556.11
ibsta, iberr;
ibcntl;
ud;
srq;
MaxPegel[MAX_RESP_LEN];
spr;
4.23-51
RSIB-Schnittstelle
D-1

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis