FB_ScopeServerControl
[Dies ist eine vorläufige Dokumentation und unterliegt noch Änderungen]
- Ab Bibliotheks-Version 2.0.52
- Erfordert die Installation des TwinCAT Scope Servers, der mit dem TwinCAT Scope View 2 geliefert wird.
Der Funktionsbaustein "FB_ScopeServerControl" ermöglicht der SPS Daten zu sammeln, die dann später mit TwinCAT Scope View 2 angezeigt werden sollen.
VAR_INPUT
VAR_INPUT
sNetId : T_AmsNetId;
eReqState : E_ScopeServerState := SCOPE_SERVER_IDLE;
sConfigFile : STRING;
sSaveFile : STRING;
tTimeout : TIME := DEFAULT_ADS_TIMEOUT;
ND_VAR
sNetId:Hier kann ein String angegeben werden der die Netzwerkadresse des TwinCAT Zielsystems beinhaltet. Für den lokalen Computer kann dieser String auch leer sein.
eReqState:: Angeforderter Scope Server Status.
sConfigFile:: Vollständiger Pfad mit dem Namen der Konfigurations-Datei (z.B.: 'C:\TwinCAT\TwinCATScopeView2\First.sv2' ).
sSaveFile: Vollständiger Pfad mit dem Namen der Daten-Datei (z.B: 'C:\TwinCAT\TwinCATScopeView2\First.svd').
tTimeout:: Maximal zulässige Zeit für die internen ADS Kommandos
VAR_OUTPUT
VAR_OUTPUT
bBusy : BOOL;
bDone : BOOL
bError : BOOL;
nErrorId : UDINT;
END_VAR
bBusy:Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.
bDone: Wird gesetzt wenn der angeforderte Status aktiviert wurde.
bError: Sollte ein ADS-Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde.
nErrorId: Zeigt die Fehlernummer, wenn der Fehlerausgang gesetzt ist. Grundsätzlich kann dies eine ADS-Fehlernummer oder eine spezifischer Fehler-Code dieser Bibliothek sein.
![]() | Es ist nur ein Zielsystem für die Konfigurationsdatei (*.sv2) zugelassen. |
Status-Diagramm:

*) eine Statusänderung zurückzusetzen ist jederzeit möglich
Dieses Status-Diagramm zeigt die möglichen Übergänge für eReqState. Falls ein anderer Statusübergang angefordert wird, wird bError gesetzt.
TYPE E_ScopeServerState
TYPE E_ScopeServerState
(
SCOPE_SERVER_IDLE,
SCOPE_SERVER_CONNECT,
SCOPE_SERVER_START,
SCOPE_SERVER_STOP,
SCOPE_SERVER_SAVE,
SCOPE_SERVER_DISCONNECT,
SCOPE_SERVER_RESET
);
Example in ST:
Deklarationsteil:
FUNCTION_BLOCK FB_ScopeServerSample
VAR_INPUT
bExternalTriggerEvent: BOOL := FALSE;
END_VAR
VAR_OUTPUT
END_VAR
VAR
fbScopeServerControl: FB_ScopeServerControl;
eReqState: E_ScopeServerState := SCOPE_SERVER_IDLE;
bBusy: BOOL := FALSE;
bDone: BOOL := FALSE;
bError: BOOL := FALSE;
nErrorId: UDINT := 0;
fbTimer: TON;
bTriggerTimer: BOOL := FALSE;
nState: UDINT := 0;
END_VAR
Implementierung des FB_ScopeServerSample
CASE nState OF
0:
eReqState := SCOPE_SERVER_START;
nState := 10;
10:
IF fbScopeServerControl.bDone AND bExternalTriggerEvent THEN
bTriggerTimer := TRUE;
nState := 20;
END_IF
20:
IF fbTimer.Q THEN
eReqState := SCOPE_SERVER_SAVE;
bTriggerTimer := FALSE;
nState := 30;
END_IF
30:
IF fbScopeServerControl.bDone THEN
eReqState := SCOPE_SERVER_DISCONNECT;
END_IF
END_CASE
fbTimer(IN:=bTriggerTimer, PT:=t#10s);
fbScopeServerControl(
sNetId:= '',
eReqState:= eReqState,
sConfigFile:= 'C:\twinCat\scope\test.sv2',
sSaveFile:= 'C:\twinCat\scope\test.svd',
tTimeout:= t#5s,
bBusy=>bBusy,
bDone=>bDone,
bError=>bError,
nErrorId=>nErrorId);
Dieses Beispiel soll zeigen, wie eine Langzeitaufzeichnung mit dem Scope Server durchgeführt werden kann.
Dafür wird eine existierende Konfiguration (Test.sv2) geladen. In diesem Beispiel wurde Test.sv2 gespeichert, um im Ring-Buffer zu laufen. So wird die Datenaufzeichnung nicht enden bis sie von FB_ScopeServerControl angesteuert wird. Falls ein internes Trigger- Ereignis (dies kann ein Fehlerereignis sein) auftritt, wird ein Timer gestartet und 10 Sekunden später werden die Daten in Test.svd gespeichert. Auf diese Weise beinhaltet die Daten-Datei Informationen vor und nach dem Trigger-Ereignis.
Voraussetzungen
Entwicklungsumgebung | Art des Zielsystems | zu inkludierende PLC-Bibliotheken |
---|---|---|
TwinCAT v2.10.0 Build >= 1329 | PC or CX (x86,ARM) | TcUtilities.Lib (Standard.Lib; TcBase.Lib; TcSystem.Lib werden automatisch inkludiert) |