FB_ScopeServerControl

FB_ScopeServerControl 1:

Der Funktionsbaustein FB_ScopeServerControl ermöglicht der SPS Daten zu sammeln, die dann später mit TwinCAT Scope 2 angezeigt werden sollen.

FB_ScopeServerControl 2: Eingänge

VAR_INPUT
    sNetId      : T_AmsNetId;
    eReqState   : E_ScopeServerState := SCOPE_SERVER_IDLE;
    sConfigFile : STRING;
    sSaveFile   : STRING;
    tTimeout    : TIME := DEFAULT_ADS_TIMEOUT;
END_VAR

Name

Typ

Beschreibung

sNetID

T_AmsNetID

Hier kann ein String angegeben werden, der die Netzwerkadresse des TwinCAT Zielsystems beinhaltet. Für den lokalen Rechner kann auch ein Leerstring angegeben werden.

eReqState

E_ScopeServerState

Angeforderter Scope Server Status

sConfigFile

STRING

Vollständiger Pfad mit dem Namen der Konfigurations-Datei (z. B.: C:\TwinCAT\TwinCATScope2\First.sv2').

sSaveFile

STRING

Vollständiger Pfad mit dem Namen der Daten-Datei (z. B: C:\TwinCAT\TwinCATScope2\First.svd).

tTimeout

TIME 

Gibt die Timeout-Zeit an, die bei der Ausführung des ADS-Kommandos nicht überschritten werden darf.

FB_ScopeServerControl 3: Ausgänge

VAR_OUTPUT
    bBusy    : BOOL;
    bDone    : BOOL;
    bError   : BOOL;
    nErrorId : UDINT;
END_VAR

Name

Typ

Beschreibung

bBusy

BOOL

Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.

bDone

BOOL

Wird gesetzt, wenn der angeforderte Status aktiviert wurde.

bError

BOOL

Sollte ein Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde.

nErrorId

UDINT

Zeigt die Fehlernummer, wenn der Fehlerausgang bError gesetzt ist. Grundsätzlich kann dies eine ADS-Fehlernummer oder ein spezifischer Fehler-Code dieser Bibliothek sein..

FB_ScopeServerControl 4:

Es ist nur ein Zielsystem für die Konfigurationsdatei (*.sv2) zugelassen.

Status-Diagramm:

FB_ScopeServerControl 5:

*) 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
);

Beispiel:

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 Triggerereignis (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

Zielplattform

Einzubindende SPS-Bibliotheken (Kategoriegruppe)

TwinCAT v3.1.0

PC oder CX (x86, x64, Arm®)

Tc2_Utilities (System)