Datenschnittstelle
XTC

 © TARCUS GmbH

PROCONTROL P


Prozessbedienstation
PBS30


Version: 6.1
Stand: September 2011



 
ABB Firmen Logo
ABB Utility Automation GmbH TARCUS GmbH




Einführung
Systemarchitektur

 
Installation
und Lizenzierung
Funktionen
Erstellen einer
Client-Applikation
Testen der
Schnittstelle

Fehler-
meldungen

 

Info-Meldungen
beim Lesen von
Wertänderungen

 




Einführung

Dieses Dokument beschreibt die Datenschnittstelle XTC der PROCONTROL P Prozeßbedienstation PBS30. Es richtet sich in erster Linie an die Anwender dieser Schnittstelle, also an die Ersteller von Applikationen zur Übertragung von Daten von und zur PBS30.

Grundkenntnisse des Leitsystems PROCONTROL P und der Prozeßbedienstation PBS30 werden vorausgesetzt.

Die Datenschnittstelle XTC ergänzt die PBS30-Funktionen OMS (Operation and Monitoring Services) und IMS (Information Management Services) um die Möglichkeit des einfachen Zugriffs auf alle aktuellen und historischen Informationen der PBS30-Datenhaltung über eine TCP/IP-Verbindung. Weiterhin ist es über XTC möglich, Informationen von anderen Rechnersystemen über TCP/IP an die PBS30 zu übermitteln.

Prozeßbedienungen und Eingriffe in das Leitsystem PROCONTROL, die von den OMS-Funktionen der PBS30 unterstützt werden, sind über XTC nicht möglich.

Neue Funktion in Version 6.1:

Verbesserungen in Version 6.0:

Neue Funktionen und Verbesserungen in Version 5.3:

Neue Funktionen und Verbesserungen in Version 5.2:

Verbesserungen in Version 5.1:

Neue Funktionen und Verbesserungen in Version 5.0:

Neue Funktionen und Verbesserungen in Version 4.9:

Neue Funktionen und Verbesserungen in Version 4.8:

Neue Funktionen und Verbesserungen in Version 4.7:

Neue Funktionen und Verbesserungen in Version 4.6:

Neue Funktionen und Verbesserungen in Version 4.5 (Juli 2000):

Neue Funktionen und Verbesserungen in Version 4.5:

Neue Funktionen und Verbesserungen in Version 4.4:

Neue Funktionen und Verbesserungen in Version 4.3:

Neue Funktionen und Verbesserungen in Version 4.2:

Neue Funktionen und Verbesserungen in Version 4.1:

Neue Funktionen in Version 4.0:






Systemarchitektur

XTC ist als Client-Server-Architektur implementiert: Auf dem PBS30-Server wird, zusätzlich zur PBS30-Software, ein Serverprozeß XTD (XTC-Daemon) für die PBS30-Datenschnittstelle installiert. Dieser Prozeß regelt den kontrollierten und gesicherten Zugriff von einem oder mehreren externen Anwendungen (Clients) auf die Datenhaltung der PBS30.
Architektur

Da der XTC Server-Daemon "XTD" ein "ganz normaler Daemon" ist, können sich theoretisch beliebig viele Client-Applikationen anmelden und quasi gleichzeitig den Service dieser Datenschnittstelle in Anspruch nehmen. Innerhalb von XTC werden jedoch alle Aufträge nacheinander, in der Reihenfolge ihres Eintreffens bearbeitet. Somit erhöht sich (wie in jedem Multi-User-System) die Reaktionszeit des Systems, je mehr Zugriffe verschiedener Clients gleichzeitig erfolgen.

Durch die Verwendung von TCP/IP als Übertragungsprotokoll ist XTC universell, d.h. praktisch von jedem Rechnersystem aus verwendbar. Die einzige Voraussetzung auf dem Client-System ist die Möglichkeit, eine Socket-Verbindung über TCP/IP aufbauen zu können.

Um die Schnittstelle auch inhaltlich transparent und einfach anwendbar zu machen, erfolgt die Kommunikation zwischen Client und XTC-Daemon im ASCII-Format. Es werden nur lesbare Zeichenfolgen ausgetauscht. Dadurch ist auch eine plattformunabhängige Kompatibilität der Dateninhalte sichergestellt.

Eine typische XTC-Applikation hat folgenden Ablauf:

Als Beispiel für die Anwendung von XTC auf PCs unter MS-Windows, kann eine OLE/ActiveX Automation in Form einer Dynamic Link Library (DLL) bereitgestellt werden. Diese DLL ist allerdings nur für Demonstrationszwecke gedacht und gehört nicht zum offiziellen Lieferumfang der XTC-Schnittstelle.

Die DLL enthält folgende Funktionen:

OPEN

Aufbau einer Windows Socket-Verbindung über TCP/IP

EXECUTE

Ausführen einer Datenübertragung (Lesen oder Schreiben)

CLOSE

Schließen der Verbindung

 

Über eine solche Komponente kann XTC sehr einfach und schnell in alle OLE/ActiveX-fähigen Applikationen per VBA (Excel), Visual Basic, Visual C++ usw. eingebunden werden.






Installation und Lizenzierung

XTC wird zusammen mit der PBS30-Software (ab R4.0-0) auf bereitgestellt. Die Installation unterscheidet sich aus Sicht des Anwenders nicht von einer PBS30-Standardinstallation. Alle XTC-Komponenten werden nach erfolgreicher Installation der PBS30-Software automatisch hinzugefügt. Die Aktivierung von XTC erfolgt jedoch erst nach Freischaltung der Funktion mit einem gültigen Lizenz-Code durch ABB-Personal.






Funktionen

Nachfolgend sind alle Funktionen von XTC zunächst in einer Kurzbeschreibung aufgelistet. Später folgt dann die detaillierte Beschreibung der Syntax aller Aufrufe und Antworten mit Beispielen.

Anforderung von
Hierarchiedaten
Anforderung von
Kennzeichen-Listen

Lesen von aktuellen und
historischen Werten

 
Lesen von
Wertänderungen
Schreiben von Werten
Prozessbedienung
in Fremdsystemen

 
Überwachung
der Verbindungen
Anforderung von Informationen
über das PBS30 System



Anforderung von Hierarchiedaten





Anforderung von Kennzeichen-Listen





Lesen von aktuellen und historischen Werten

Diese Betriebsart erlaubt den Zugriff auf alle relevanten Informationen der PBS30-Datenhaltung. Es können aktuelle und historische Daten beliebiger Signale einmalig oder zyklisch bzw. sporadisch abgefragt werden.

Folgende Funktionen sind verfügbar:





Lesen von Wertänderungen

PBS30-XTC kann auch als universelle Ankopplung an PROCONTROL zum "Mithören" aller Wertänderungen genutzt werden. Hierbei werden alle in der PBS30 enthaltenen Signale auf Änderungen überwacht, aufbereitet (analog/Zähler: physikalische Werte, Schrittnummer: Zahl 0-99, binär/Rückmeldungen: 0 oder 1) und über einen Zwischenpuffer zur Client-Applikation gesendet. Zur Handhabung dieser Funktionalität stehen die nachfolgend aufgelisteten Befehle zur Verfügung. Details der Implementierung sind in Erstellen einer Client-Applikation beschrieben.





Schreiben von Werten

Häufig besteht der Wunsch, auch Zählerstände sowie analoge und binäre Informationen, die nicht aus PROCONTROL kommen, über XTC zugänglich zu machen. Daher wird auch eine Funktion zum Schreiben von Werten in die PBS30-Datenhaltung bereitgestellt. Zu diesem Zweck sind in der PBS30 entsprechende analoge bzw. binäre Meßkreise über die Engineering-Tools der PBS30 (MKS bzw. EDS) zu definieren. Diese erhalten dann natürlich keine PROCONTROL-Quelladresse, sondern die schreibende Client-Applikation referenziert diese Informationen über das jeweilige Signalkennzeichen.

Folgende Funktionen sind verfügbar:

Selbstverständlich gehen diese Informationen prinzipiell genauso wie "echte" Messungen von PROCONTROL in die PBS30-Datenhaltung ein. Daher können auch alle Funktionen der PBS30 (Darstellung in Standard- und Fließbildern, Kurvenanzeige, Berechnungen, Archivierung usw.) darauf angewendet werden.





Prozessbedienung in Fremdsystemen

PBS30-XTC kann zur Ankopplung eines fremden Leitsystems an die PBS30 verwendet werden. Dabei wird jedes Fremdsystem über einen PC als Client der Datenschnittstelle XTC an die PBS30 angeschlossen. Von der PBS30 aus können die Prozessbedienungen und Eingriffe, die von den OMS-Funktionen der PBS30 unterstützt werden, in den Fremdsystemen durchgeführt werden.

Die Unterscheidung, ob eine Bedienung aus der PBS30 zu einem Fremdsystem oder ins PROCONTROL-System geschickt werden soll, erfolgt über die konfigurierte Signaladresse des Bediensignals:

Für jede auf der PBS30 mögliche Bedienung wird ein ASCII-Bedienungstext definiert.

Die Bedienaufträge von der PBS30 in das Fremdsystem werden als "Rucksack" bei jedem Rückgabewert eines beliebigen XTC-Befehls mitgeschickt und können vom anfordernden PC-Client ausgewertet werden.

Zur Abfrage von Bedienaufträgen außerhalb beliebiger XTC-Befehle wird der neue XTC-Befehl "PollData" definiert.





Überwachung der Verbindungen

Ein Client kann seine Verbindung mit dem Kommando WatchMe zur Überwachung anmelden.

Wenn auf dem Client das für PING benötigte ICMP-Protokoll aktiv ist, wird er vom XTC Server mit PING überwacht. Falls der Client mit PING zweimal hintereinander nicht erreichbar ist, wird die Verbindung abgebrochen. Wartezeit in PING ist ca. 10 Sekunden.

Falls auf dem Client das ICMP-Protokoll nicht aktiv ist bzw. wenn auf dem XTC Server die rechnerspezifische Konfigurationsdatei XTD_NOPING vorhanden ist, wird der Client nicht mit PING überwacht.

Mit dem neuen Kommando "WatchSignal <signal> 1" kann bestimmt werden, dass ein Signal bei Abbau oder Abbruch der aktuellen Clientverbindung in der PBS30 auf Störung (Senkenzeitüberwachung) gesetzt wird.

Mit "WatchSignal <signal> 0" kann dieses Verhalten wieder ausgeschaltet werden.

Ein Signal kann nur dann überwacht werden, wenn der Client zuvor das Kommando "WatchMe <clientname>" gesendet hat. <clientname> ist ein beliebiger string. Es können bis zu 5 Clients überwacht werden. Bei Beendigung der Clientverbindung werden nur solche Signale auf gestört gesetzt, die zuvor von diesem Client mit "WatchSignal <signal> 1" gesetzt wurden.





Anforderung von Informationen über das PBS30 System

Folgende Informationen über den PBS30 Server können abgerufen werden:






Erstellen einer Client-Applikation

Client-Server
Verbindung aufbauen
und verwenden

Grundsätzlicher Aufbau
eines Befehls und
einer Rückgabe

 
Anforderung von
Hierarchiedaten
Anforderung von
Kennzeichen-Listen
Lesen von aktuellen und
historischen Werten
Lesen von
Wertänderungen
Schreiben von Werten
Prozessbedienung
in Fremdsystemen

 
Überwachung
der Verbindungen
Anforderung von
Informationen
über das PBS30 System



Client-Server Verbindung aufbauen und verwenden

Für die Erstellung einer Client-Applikation z.B. in Visual Basic oder C++ kann die ActiveX (OLE) Automation "channel" als DLL (Dynamic Link Library) zur Verfügung gestellt werden. Diese DLL ist allerdings nur für Demonstrationszwecke gedacht und gehört nicht zum offiziellen Lieferumfang der XTC-Schnittstelle. Die DLL muß in der Applikation referenziert werden und ermöglicht das Erzeugen eines "channel"-Objektes, über dessen Methoden (Funktionen) die Verbindung zum PBS30-XTC-Server verwaltet und Daten angefordert werden können.

Folgende Methoden stehen zur Verfügung:

open:
Beschreibung: Verbindung zum PBS30-XTC-Server herstellen
Parameter: Name des PBS30-XTC-Servers
Portnummer (ist auf dem PBS30-XTC-Server fest auf 2000 eingestellt)
Rückgabe: "OK" oder Klartext-Fehlermeldung

exec:
Beschreibung: Befehl zum PBS30-XTC-Server schicken
Parameter: Befehl als ASCII-String
(Beschreibung aller Befehle nachfolgend)
Rückgabe: Antwort vom PBS30-XTC-Server als ASCII-String
(Werteliste oder "OK" bzw. Klartext-Fehlermeldung)

VB-Beispiel:
' Erzeugen eines channel-Objektes
Set Channel = CreateObject("Channel.Channel")

' Verbindung zum PBS30-XTC-Server herstellen
Result = Channel.Open("<PBS30-XTC-Server Name>", 2000)

' Kennzeichen-Liste anfordern (mit Filterkriterium "*")
Result = Channel.Exec("GetSigList " & "*")

close:
Beschreibung: Verbindung zum PBS30-XTC-Server schließen.
Parameter: - keine -
Rückgabe: "OK" bzw. Klartext-Fehlermeldung

VB-Beispiel:
' Verbindung zum PBS30-XTC-Server schließen
Result = Channel.Close





Grundsätzlicher Aufbau eines Befehls und einer Rückgabe

Befehl:

Ein Befehl ist ein ASCII String und besteht aus einem Befehlsnamen (wie z.B. "GetSigList") und eventuell einem oder mehreren Parametern, die durch Leerzeichen getrennt werden. Falls ein Parameter selbst Leerzeichen enthält, muß er in Hochkommata oder geschweifte Klammern gesetzt werden.

Beispiele:
GetSigList 01*
GetSigList "01 HFE*"
GetSigList {01 HFE*}

Rückgabe:

Die Rückgabe ist ebenfalls ein ASCII String und enthält die Werte in Form einer Liste. Eine Liste ist grundsätzlich wie folgt aufgebaut:

Beispiel:
";3;Wert1;Wert2;Wert3;"

Das erste Zeichen in dem String gibt an, durch welches Zeichen die einzelnen Listenelemente in dieser Listenebene voneinander getrennt werden. Dieses Trennzeichen kann jedes beliebige Zeichen sein, das selbst nicht in den Werten auftritt (im obigen Beispiel das Semikolon ";"). Das erste Listenelement ist eine Zahl, die angibt, wie viele Elemente in der Liste folgen. Es folgt wieder das Trennzeichen, danach die einzelnen Datenelemente, jeweils abgeschlossen durch das Trennzeichen.

Ein Element der Liste kann nun wiederum eine Liste sein. Diese zweite Liste wird mit einem neuen Trennzeichen versehen. Es folgt ein Beispiel für eine geschachtelte Liste, wobei das Trennzeichen der Liste in Ebene 1 ein Semikolon ";" ist, während das Trennzeichen der Unterliste ein Komma "," ist:

Beispiel:
";3;,2,Wert11,Wert12,;,2,Wert21,Wert22,;,2,Wert31,Wert32,;"

Sonderfälle:





Anforderung von Hierarchidaten

  1. Segment des aktuellen Servers

    Anforderungsbefehl: GetSegment
    Parameter: - keine -
    Rückgabewert: ;3;Segmentkennzeichen;Segmentbezeichnung;Segmentnummer;

    Die Funktion benötigt keinen Parameter. Es werden Informationen zu dem Segment geliefert, für das Standardkonfigurationsdaten auf dem aktuellen Server geladen sind.

    Wenn kein Segment auf dem aktuellen Server geladen ist, wird als Rückgabewert ";0;" geliefert.

    Beispiel:
    Segmentdaten anfordern:

    GetSegment


  2. Liste aller Sichten des Segments

    Anforderungsbefehl: GetViewsOfSegment
    Parameter: optional Segmentkennzeichen
    Rückgabewert: ;n;Sicht1;Sicht2;...;Sicht n;
    (sortiert nach Position der Sicht im Segment)
    Sicht: ,5,Position,Kennzeichen,Bezeichnung,Summenstatus,Sichtnummer,

    Die Funktion benötigt im Grunde keinen Parameter. Falls ein Segmentkennzeichen als Parameter angegeben wird, wird geprüft, ob es das auf dem Server geladene Segment ist.

    Wenn kein Segment auf dem aktuellen Server geladen ist bzw. wenn dem Segment keine Sichten zugeordnet sind oder wenn das als Parameter vorgegebene Segmentkennzeichen nicht das des aktuell geladenen Segments ist, wird als Rückgabewert ";0;" geliefert.

    Beispiel:
    Sichten des aktuellen Segments anfordern:

    GetViewsOfSegment


  3. Liste aller Sichten

    Anforderungsbefehl: GetViewList
    Parameter: Filterkriterium (Führende "*" stehen für einzelne Zeichen, ein folgendes "*" steht für alle folgenden Zeichen)
    Rückgabewert: ;n;KKS1;KKS2;...;KKSn; (alphabetisch sortiert)

    Die Funktion kann ohne Parameter verwendet werden. Dann werden alle Sichten der PBS30-Datenbank geliefert.

    Bei Verwendung der Funktion mit einem Parameter werden alle Sichten der PBS30-Datenbank geliefert, die dem vorgegebenen Filterkriterium entsprechen.

    Die Kennzeichen in der Rückgabeliste können unterschiedlich lang sein, da Leerzeichen am Ende abgeschnitten werden. Ein Kennzeichen endet immer mit einem Zeichen ungleich Leerzeichen.

    Beispiel:
    Sichten-Liste anfordern (mit Filterkriterium "SICHT1"):

    GetViewList "SICHT1"


  4. Liste aller Bereiche einer Sicht

    Anforderungsbefehl: GetAreasOfView
    Parameter: Sichtkennzeichen
    Rückgabewert: ;n;Bereich1;Bereich2;...;Bereich n;
    (sortiert nach Position des Bereichs in der Sicht)
    Bereich: ,4,Position,Kennzeichen,Bezeichnung,Summenstatus,

    Die Funktion benötigt ein Sichtkennzeichen als Parameter.

    Wenn das vorgegebene Sichtkennzeichen in der PBS30-Datenbank nicht vorhanden ist, wird als Rückgabewert ";0;" geliefert.

    Beispiel:
    Bereiche der Sicht "SICHT1" anfordern:

    GetAreasOfView "SICHT1"


  5. Liste aller Bereiche

    Anforderungsbefehl: GetAreaList
    Parameter: Filterkriterium (Führende "*" stehen für einzelne Zeichen, ein folgendes "*" steht für alle folgenden Zeichen)
    Rückgabewert: ;n;KKS1;KKS2;...;KKSn; (alphabetisch sortiert)

    Die Funktion kann ohne Parameter verwendet werden. Dann werden alle Bereiche der PBS30-Datenbank geliefert.

    Bei Verwendung der Funktion mit einem Parameter werden alle Bereiche der PBS30-Datenbank geliefert, die dem vorgegebenen Filterkriterium entsprechen.

    Die Kennzeichen in der Rückgabeliste können unterschiedlich lang sein, da Leerzeichen am Ende abgeschnitten werden. Ein Kennzeichen endet immer mit einem Zeichen ungleich Leerzeichen.

    Beispiel:
    Bereichs-Liste anfordern (mit Filterkriterium "RAUCH"):

    GetAreaList "RAUCHG"


  6. Liste aller Funktionsgruppen eines Bereichs

    Anforderungsbefehl: GetFunctionGrpsOfArea
    Parameter: Bereichskennzeichen
    Rückgabewert: ;n;FG1;FG2;...;FG n;
    (sortiert nach Position der Funktionsgruppe im Bereich)
    FG: ,4,Position,Kennzeichen,Bezeichnung,Summenstatus,

    Die Funktion benötigt ein Bereichskennzeichen als Parameter.

    Wenn das vorgegebene Bereichskennzeichen in der PBS30-Datenbank nicht vorhanden ist, wird als Rückgabewert ";0;" geliefert.

    Beispiel:
    Funktionsgruppen des Bereichs "RAUCHGAS" anfordern:

    GetFunctionGrpsOfArea "RAUCHGAS"


  7. Liste aller Funktionsgruppen

    Anforderungsbefehl: GetFunctionGrpList
    Parameter: Filterkriterium (Führende "*" stehen für einzelne Zeichen, ein folgendes "*" steht für alle folgenden Zeichen)
    Rückgabewert: ;n;KKS1;KKS2;...;KKSn; (alphabetisch sortiert)

    Die Funktion kann ohne Parameter verwendet werden. Dann werden alle Funktionsgruppen der PBS30-Datenbank geliefert.

    Bei Verwendung der Funktion mit einem Parameter werden alle Funktionsgruppen der PBS30-Datenbank geliefert, die dem vorgegebenen Filterkriterium entsprechen.

    Die Kennzeichen in der Rückgabeliste können unterschiedlich lang sein, da Leerzeichen am Ende abgeschnitten werden. Ein Kennzeichen endet immer mit einem Zeichen ungleich Leerzeichen.

    Beispiel:
    Funktionsgruppen-Liste anfordern (mit Filterkriterium "10HFE"):

    GetFunctionGrpList "10HFE"


  8. Liste aller Kreise einer Funktionsgruppe

    Anforderungsbefehl: GetLoopsOfFunctionGrp
    Parameter: Funktionsgruppenkennzeichen
    Rückgabewert: ;n;Kreis1;Kreis2;...;Kreis n;
    (sortiert nach Position des Kreises in der Funktionsgruppe)
    Kreis: ,4,Position,Kennzeichen,Bezeichnung,Summenstatus,

    Die Funktion benötigt ein Funktionsgruppenkennzeichen als Parameter.

    Wenn das vorgegebene Funktionsgruppenkennzeichen in der PBS30-Datenbank nicht vorhanden ist, wird als Rückgabewert ";0;" geliefert.

    Beispiel:
    Kreise der Funktionsgruppe "10HFE10EA" anfordern:

    GetLoopsOfFunctionGrp "10HFE10EA"

  9. Liste aller Kreise

    Anforderungsbefehl: GetLoopList
    Parameter: Filterkriterium (Führende "*" stehen für einzelne Zeichen, ein folgendes "*" steht für alle folgenden Zeichen)
      Kreistyp ( [ amk | ark | bmk | esk | gsa | hst | ken | prk | vwk |
    zmk | fba | all ] für
    [ Analoge Messkreise | Analoge Regelkreise |
    Binäre Messkreise | Einzelsteuerkreise |
    Gruppenablaufsteuerungen | Handstationen |
    Kennlinienkreise | Profilkreise | Vorwahlkreise |
    Zählermesskreise | Freibetragsanzeigen | alle Kreistypen ] )
    Rückgabewert: ;n;KKS1;KKS2;...;KKSn; (alphabetisch sortiert)

    Die Funktion kann ohne Parameter verwendet werden. Dann werden alle Kreise der PBS30-Datenbank geliefert.

    Bei Verwendung der Funktion nur mit dem ersten Parameter werden alle Kreise der PBS30-Datenbank geliefert, die dem vorgegebenen Filterkriterium entsprechen.

    Bei Angabe des zweiten Parameters (Kreistyp) muß auch für den ersten Parameter (Filterkriterium) eine Angabe vorhanden sein (mindestens * oder "" oder {} ). Die Rückgabeliste enthält dann die Kreise, die dem Filterkriterium entsprechen und vom vorgegebenen Kreistyp sind.

    Die Kennzeichen in der Rückgabeliste können unterschiedlich lang sein, da Leerzeichen am Ende abgeschnitten werden. Ein Kennzeichen endet immer mit einem Zeichen ungleich Leerzeichen.

    Beispiel:
    Kreis-Liste anfordern (mit Filterkriterium "**HNA*"):

    GetLoopList "**HNA*"

  10. Daten eines Kreises

    Anforderungsbefehl: GetLoop
    Parameter: Kreiskennzeichen | Kreiskennzeichen-Liste
    Rückgabewert: ;3;Kreistyp;Kreisbezeichnung;Summenstatus;
    (bei einem Kreiskennzeichen)
    oder: ;n;Kreis 1;Kreis 2; ... ; Kreis n;
    (bei einer Kreiskennzeichen-Liste)
    Kreis: ,3,Kreistyp,Kreisbezeichnung,Summenstatus,
    Summenstatus: "OK" oder Kombination aus
    ANST_QUIT_1,ANST_QUIT_2,...,
    ANST_UNQUIT_1,ANST_UNQUIT_2,...,
    NANST_UNQUIT_1,NANST_UNQUIT_2,...

    Bei Angabe einer Kreiskennzeichen-Liste enthält der Rückgabewert für jedes Kreiskennzeichen in der vorgegebenen Reihenfolge eine Rückgabeliste, auch für solche Kreise, die nicht in der PBS30-Datenbank gefunden wurden. In diesem Fall (nur bei Kreiskennzeichen-Liste) bedeutet
    Kreis: ,1,NoVal,

    Beispiel:
    Daten von Kreis "KKS 1" anfordern:

    GetLoop "KKS 1"

  11. Daten eines Kreises (erweiterter Rückgabewert)

    Anforderungsbefehl: GetLoopExt
    Parameter: Kreiskennzeichen | Kreiskennzeichen-Liste
    Rückgabewert: ;n;Kreistyp;Kreisbezeichnung;Summenstatus;<typspezifisch>;
    (bei einem Kreiskennzeichen)
    oder: ;n;Kreis 1;Kreis 2; ... ; Kreis n;
    (bei einer Kreiskennzeichen-Liste)
    Kreis: ,m,Kreistyp,Kreisbezeichnung,Summenstatus,<typspezifisch>;
    Summenstatus: "OK" oder Kombination aus
    ANST_QUIT_1,ANST_QUIT_2,...,
    ANST_UNQUIT_1,ANST_UNQUIT_2,...,
    NANST_UNQUIT_1,NANST_UNQUIT_2,...

    Typspezifischer Anteil der Rückgabeliste:

    Bei Angabe einer Kreiskennzeichen-Liste enthält der Rückgabewert für jedes Kreiskennzeichen in der vorgegebenen Reihenfolge eine Rückgabeliste, auch für solche Kreise, die nicht in der PBS30-Datenbank gefunden wurden. In diesem Fall (nur bei Kreiskennzeichen-Liste) bedeutet
    Kreis: ,1,NoVal,

    Beispiel:
    Erweiterte Daten von Kreis "KKS 1" anfordern:

    GetLoopExt "KKS 1"


  12. Liste aller Signale eines Kreises

    Anforderungsbefehl: GetSignalsOfLoop
    Parameter: Kreiskennzeichen
    Rückgabewert: ;n;Signal1;Signal2;...;Signal n;
    Signal: ,6,sigpos,SignalKKS,Bezeichnung,Einheit,abmin,abmax, (analoge Signale)
    ,10,sigpos,SignalKKS,Bezeichnung,Grenzwert,Einheit,ZusText0,ZusText1,
    Aktivzustand,Grenzwerttyp,Prio, (binäre Signale)
    sigpos: ANX, ANY, RMW, ...
    Grenzwerttyp: HIGH/LOW

    Die Funktion benötigt ein Kreiskennzeichen als Parameter.

    Wenn das vorgegebene Kreiskennzeichen in der PBS30-Datenbank nicht vorhanden ist, wird als Rückgabewert ";0;" geliefert.

    Beispiel:
    Signale des Kreises "10HFE10EA100 XQ50" anfordern:

    GetSignalsOfLoop "10HFE10EA100 XQ50"


  13. Liste aller Signale eines Kreises (erweiterter Rückgabewert)

    Anforderungsbefehl: GetSignalsOfLoopExt
    Parameter: Kreiskennzeichen
    Rückgabewert: ;n;Signal1;Signal2;...;Signal n;
    Signal: ,10,sigpos,SignalKKS,Bezeichnung,Einheit,Anzeigebereich Anfang,
    Anzeigebereich Ende,P14-Adresse,Messbereich Anfang,Messbereich Ende,
    projektierte Datenart, (analoge Signale)

    ,16,sigpos,SignalKKS,Bezeichnung,Grenzwert,Einheit,ZusText0,ZusText1,
    Aktivzustand,Grenzwerttyp,Prio,P14-Adresse,Bitnummer,projektierte Datenart,
    Erläuterungstext,Oder-Verknüpfungsnummer,GSA-Schrittnummer, (binäre Signale)
    sigpos: ANX, ANY, RMW, ...
    Grenzwerttyp: HIGH/LOW

    Die Funktion benötigt ein Kreiskennzeichen als Parameter.

    Wenn das vorgegebene Kreiskennzeichen in der PBS30-Datenbank nicht vorhanden ist, wird als Rückgabewert ";0;" geliefert.

    Beispiel:
    Signale des Kreises "10HFE10EA100 XQ50" anfordern:

    GetSignalsOfLoopExt "10HFE10EA100 XQ50"


  14. Liste aller Schritte einer Gruppenablaufsteuerung

    Anforderungsbefehl: GetStepsOfGsa
    Parameter: Kreiskennzeichen
    Rückgabewert: ;n;Schritt1;Schritt2;...;Schritt n;
    Schritt: ,5,Schrittnummer,Bezeichnung,Alternativschritt,Überwachungszeit,Wartezeit,

    Die Funktion benötigt ein Kreiskennzeichen als Parameter.

    Beispiel:
    Schritte des GSA-Kreises "HFE33 EA100" anfordern:

    GetStepsOfGsa "HFE33 EA100"





Anforderung von Kennzeichen-Listen

  1. Liste aller Signale

    Anforderungsbefehl: GetSigList
    Parameter: Filterkriterium (Führende "*" stehen für einzelne Zeichen, ein folgendes "*" steht für alle folgenden Zeichen)
      Signaltyp ( [ ana | bin | calc | cnt | step | rm | bed ] für
    [ Analogsignale | Binärsignale | Rechenwerte | Zähler |
    Schritte | Rückmeldungen | Bediensignale ] )
    Rückgabewert: ;n;KKS1;KKS2;...;KKSn; (alphabetisch sortiert)

    Die Funktion kann ohne Parameter verwendet werden. Dann werden alle Signale der PBS30-Datenbank geliefert.

    Bei Verwendung der Funktion nur mit dem ersten Parameter werden alle Signale der PBS30-Datenbank geliefert, die dem vorgegebenen Filterkriterium entsprechen.

    Bei Angabe des zweiten Parameters (Signaltyp) muß auch für den ersten Parameter (Filterkriterium) eine Angabe vorhanden sein (mindestens * oder "" oder {} ). Die Rückgabeliste enthält dann die Signale, die dem Filterkriterium entsprechen und vom vorgegebenen Signaltyp sind.

    Die Kennzeichen in der Rückgabeliste können unterschiedlich lang sein, da Leerzeichen am Ende abgeschnitten werden. Ein Kennzeichen endet immer mit einem Zeichen ungleich Leerzeichen.

    Beispiel:
    Kennzeichen-Liste anfordern (mit Filterkriterium "**HNA*"):

    GetSigList "**HNA*"


  2. Liste aller Signale (erweiterter Rückgabewert)

    Anforderungsbefehl: GetSigListExt
    Parameter: - wie bei "GetSigList" -
    Rückgabewert: ;n;,2,KKS1,sigtyp1,;,2,KKS2,sigtyp2,;...;,2,KKSn,sigtypn,;
    (alphabetisch nach KKS sortiert)

    Der Unterschied dieser Funktion zu "GetSigList" besteht darin, daß hier der Rückgabewert aus Einzellisten pro Signal besteht, die das Signalkennzeichen und den Signaltyp enthalten.

    Beispiel:
    Kennzeichen-Liste inkl. Signaltyp anfordern (mit Filterkriterium "**HNA*"):

    GetSigListExt "**HNA*"


  3. Liste aller Analogsignale aus der Analogwertspeicherung des Delta Archivs

    Anforderungsbefehl: GetDeltaSigList
    Parameter: Filterkriterium (optional; Führende "*" stehen für einzelne Zeichen, ein folgendes "*" steht für alle folgenden Zeichen)
    Rückgabewert: ;n;,2,KKS1,SW1,;,2,KKS2,SW2,;...;,2,KKSn,SWn,;
    (alphabetisch nach KKS sortiert;
    SW = Schwellwert, mit dem das Signal archiviert wird)

    Beispiel:
    Kennzeichen aller Analogsignale im Delta-Archiv anfordern:

    GetDeltaSigList


  4. Liste aller Analogsignale aus der Analogwertspeicherung der Prozeßführung

    Anforderungsbefehl: GetHistorySigList
    Parameter: Filterkriterium (optional; Führende "*" stehen für einzelne Zeichen, ein folgendes "*" steht für alle folgenden Zeichen)
    Rückgabewert: ;n;,2,KKS1,CA11,;,4,KKS2,CA21,CA22,CA23,;...;,3,KKSn,CAn1,CAn2,;
    (alphabetisch nach KKS sortiert;
    CA = Verdichtungsverfahren, mit denen das Signal archiviert wird:
    [ avg | min | max ] )

    Die Einzellisten pro KKS in der Rückgabeliste können unterschiedlich lang sein, da ein Signal mit bis zu drei Verdichtungsverfahren in die Analogwertspeicherung der Prozeßführung eingehen kann.

    Beispiel:
    Kennzeichen aller Analogsignale der Prozeßführung anfordern:

    GetHistorySigList





Lesen von aktuellen und historischen Werten

  1. Lesen eines aktuellen Signalwertes

    Anforderungsbefehl: GetVal
    Parameter: Signalkennzeichen | Signalkennzeichen-Liste
    Rückgabewert: ;n;<typspezifisch>;
    (bei einem Signalkennzeichen;
    die Elemente der typspezifischen Rückgabeliste sind durch ";" getrennt)
    oder: ;m;,n1,<typspez1>,;,n2,<typspez2>,;.....;,nm,<typspezm>,;
    (bei einer Signalkennzeichen-Liste;
    die Elemente der typspezifischen Rückgabelisten sind jeweils durch "," getrennt)

    Bei Angabe einer Signalkennzeichen-Liste enthält der Rückgabewert für jedes Signalkennzeichen in der vorgegebenen Reihenfolge eine typspezifische Rückgabeliste (auch für solche Signale, die nicht in der PBS30-Datenbank gefunden wurden).

    Typspezifische Rückgabelisten:


    Beispiel:
    aktuellen Wert von Kennzeichen "KKS 1" anfordern:

    GetVal "KKS 1"


  2. Lesen eines aktuellen Signalwertes mit Rückgabe ähnlich Stream

    Anforderungsbefehl: GetValStream
    Parameter: Signalkennzeichen | Signalkennzeichen-Liste
    Rückgabewert: ;n;<typspezifisch>;
    (bei einem Signalkennzeichen;
    die Elemente der typspezifischen Rückgabeliste sind durch ";" getrennt)
    oder: ;m;,n1,<typspez1>,;,n2,<typspez2>,;.....;,nm,<typspezm>,;
    (bei einer Signalkennzeichen-Liste;
    die Elemente der typspezifischen Rückgabelisten sind jeweils durch "," getrennt)

    Die Formate der Elemente der Rückgabewerte entsprechen den Formaten bei StreamRead. Falls ein Signal gestört ist, wird der Signaltyp in Großbuchstaben angegeben.

    Bei Angabe einer Signalkennzeichen-Liste enthält der Rückgabewert für jedes Signalkennzeichen in der vorgegebenen Reihenfolge eine typspezifische Rückgabeliste (auch für solche Signale, die nicht in der PBS30-Datenbank gefunden wurden).

    Typspezifische Rückgabelisten:


    Beispiel:
    aktuellen Wert von Kennzeichen "KKS 1" anfordern:

    GetValStream "KKS 1"


  3. Lesen von Einträgen der PBS30-Meldefolge

    1. Lesen einer Meldung der PBS30 Meldefolge ab einer bestimmten Position

      Anforderungsbefehl: GetSOE
      Parameter: Anzahl Meldungen
      Prio1 (0/1)
      Prio2 (0/1)
      Prio3 (0/1)
      Wartungshinweismeldung (0/1)
      Rückgabewert: ;1;eine Meldefolgezeile;

      Achtung: Es wird immer nur eine Meldung geliefert !

      Erläuterungen zu den Parametern:

      • Anzahl Meldungen = 0 bedeutet, daß die nächste auftretende Meldung mit der selektierten Priorität geliefert wird.

      • Anzahl Meldungen > 0 bedeutet, daß von der neuesten Meldung ausgehend diese Anzahl Meldungen in der Meldefolge zurückpositioniert wird und ab dort nach der ersten Meldung mit dem übergebenen Selektionskriterium gesucht wird. Falls eine solche Meldung gefunden wird, wird diese geliefert.

      Beispiel:
      30 Meldungen zurück und die nächste Prio1 Meldung liefern:

      GetSOE 30 1 0 0 0


    2. Lesen von Meldungen aus der PBS30 Meldefolge, die innerhalb eines Zeitbereiches liegen.

      Anforderungsbefehl: GetSOESince
      Parameter: Startzeit (im Format: "TT-MON-JJJJ HH:MM:SS.HH")
        Endezeit (im Format: "TT-MON-JJJJ HH:MM:SS.HH"
      oder Anzahl Sekunden).
        Selektionsliste (optional)
      Rückgabewert: ;n;Meldung1;...;Meldung n;

      Diese Funktion kann auf zwei Arten aufgerufen werden:

      1. mit Start- und Endezeit
      2. mit Startzeit und einem Zeitbereich in Sekunden.

      Optional kann ein Selektionsliste mitgegeben werden. Diese Liste enthält einen oder mehrere der folgenden Strings: "prio1", "prio2", "prio3" oder "maint". Falls keine Selektionsliste mitgegeben wird, liefert GetSOESince alle Meldungen, die in dem angegebenen Zeitbereich liegen.

      Das Format einer Meldung in der Liste sieht wie folgt aus:

      ,6,<Symbol>,<Ereignis>,<Zeitstempel>,<Kennung>,<Bezeichnung>,<Zustand>,

      <Symbol>: "+" Kommt-Meldung
        "-" Geht-Meldung
        " " Kommt/Geht-Kriterium ist nicht anwendbar

      <Ereignis>: "1", "2", "3" Prio 1 bis Prio 3
        "0" Steuerungsbedingung
        "S" Störmeldung
        "P" PBS Meldung
        "B" Bedienmeldung
        "w" Wartungshinweismeldung
        " " Zustandsmeldung

      <Zeitstempel>: TT-MON-JJJJ HH:MM:SS.HH
      Das Format des Zeitstempels stimmt mit dem Format der Zeitangabe für Start- und Endezeit überein.

      <Kennung>: Signalkennzeichen
      <Bezeichnung>: Signalbezeichnung
      <Zustandstext>: Zustandstext

      Beispiel:
      ab 14-OCT-1998 11:15:00.00 alle Prio1- und Prio2-Meldungen anfordern, die in den
      folgenden 30 Sekunden aufgetreten sind:

      GetSOESince "14-OCT-1998 11:15:00.00" 30 "prio1 prio2"


    3. Lesen von Meldungen aus den PBS30 Meldefolge-Archiven, die innerhalb eines Zeitbereiches liegen.

      Anforderungsbefehl: GetSOESinceExt
      Parameter: Startzeit (im Format: "TT-MON-JJJJ HH:MM:SS.HH")
        Endezeit (im Format: "TT-MON-JJJJ HH:MM:SS.HH"
      oder Anzahl Sekunden).
        Selektionsliste (optional)
      Rückgabewert: ;n;Meldung1;...;Meldung n;

      Im Unterschied zu der Funktion GetSOESince werden zusätzlich die Meldefolge-Archive beim Suchen und Lesen der Meldungen des Zeitbereiches einbezogen. Meldefolge-Archive können auf dem lokalen PBS30-Server, der erweiterten Datenablage und auf DVD liegen. Der eingegebene Zeitbereich darf mehrere Meldefolge-Archive überlappen.

      Aus Resource- und Performance-Gründen ist die Anzahl der zurückzugebenden Meldungen auf maximal 100000 begrenzt. Dieser Wert kann durch Konfiguration mit der rechnerspezifischen Konfigurationsdatei XTC_SOE_MAX_MSG verkleinert bzw. bis auf 200000 vergrößert werden. Falls die maximale Anzahl der Meldungen überschritten wird, wird folgende Meldung zurückgegeben:
      "* Too many messages, max. number is <nn>, last message is: <Meldung> " (Format der Meldung s.u.).
      Der Anwender sollte dann die Anforderung mit einem kleineren Zeitbereich wiederholen.

      Die Funktion kann auf zwei Arten aufgerufen werden:

      1. mit Start- und Endezeit
      2. mit Startzeit und einem Zeitbereich in Sekunden.

      Optional kann ein Selektionsliste mitgegeben werden. Diese Liste enthält einen oder mehrere der folgenden Strings: "prio1", "prio2", "prio3" oder "maint". Falls keine Selektionsliste mitgegeben wird, liefert GetSOESince alle Meldungen, die in dem angegebenen Zeitbereich liegen.

      Das Format einer Meldung in der Liste sieht wie folgt aus:

      ,6,<Symbol>,<Ereignis>,<Zeitstempel>,<Kennung>,<Bezeichnung>,<Zustand>,

      <Symbol>: "+" Kommt-Meldung
        "-" Geht-Meldung
        " " Kommt/Geht-Kriterium ist nicht anwendbar

      <Ereignis>: "1", "2", "3" Prio 1 bis Prio 3
        "0" Steuerungsbedingung
        "S" Störmeldung
        "P" PBS Meldung
        "B" Bedienmeldung
        "w" Wartungshinweismeldung
        " " Zustandsmeldung

      <Zeitstempel>: TT-MON-JJJJ HH:MM:SS.HH
      Das Format des Zeitstempels stimmt mit dem Format der Zeitangabe für Start- und Endezeit überein.

      <Kennung>: Signalkennzeichen
      <Bezeichnung>: Signalbezeichnung
      <Zustandstext>: Zustandstext

      Beispiel:
      ab 14-OCT-1998 11:15:00.00 alle Prio1- und Prio2-Meldungen anfordern, die in den
      folgenden 30 Sekunden aufgetreten sind:

      GetSOESinceExt "14-OCT-1998 11:15:00.00" 30 "prio1 prio2"


    4. Information über die PBS30 Meldefolge anfordern

      Anforderungsbefehl: GetSOEInfo
      Parameter: Angeforderte Information: z. Zt. nur "times"
      Rückgabewert: ;2;Startzeit;Endezeit;

      "GetSOEInfo times" liefert den Zeitstempel der ältesten und der jüngsten Meldung in der Meldefolge. Das Format der Zeitstempel ist "TT-MON-JJJJ HH:MM:SS.HH".

      Beispiel:
      Zeitstempel der ältesten und der jüngsten Meldung aus der Meldefolge anfordern:

      GetSOEInfo times


    5. Lesen der neuesten Meldungen aus der PBS30-Meldefolge

      Anforderungsbefehl: GetSOENewest
      Parameter: Anzahl zu lesender Meldungen "n" (Integer)
        Selektionsmaske (optional)
      Rückgabewert: ;n;Meldung1;...;Meldung n;

      "GetSOENewest" liefert die "n" neuesten Meldungen aus der PBS30- Meldefolge.
      Optional kann ein Selektionsmaske mitgegeben werden. Der Inhalt dieser Maske wird noch beschrieben. Falls keine Selektionsmaske mitgegeben wird, liefert GetSOENewest die neuesten Meldungen ohne Einschränkung.

      Das Format einer Meldung in der Liste sieht wie folgt aus:

      ,7,<Meldungs-Id>,<Symbol>,<Ereignis>,<Zeitstempel>,<Kennzeichen>,<Bezeichnung>,<Zustand>,

      <Meldungs-Id>: Identifikations-Nummer der jeweiligen Meldung zur Weiterverwendung in "GetSOEPrevious" und "GetSOENext".

      Beispiel:
      Anfordern der 5 neuesten Meldungen:

      GetSOENewest 5


    6. Lesen der ältesten Meldungen aus der PBS30-Meldefolge

      Anforderungsbefehl: GetSOEOldest
      Parameter: Anzahl zu lesender Meldungen "n" (Integer)
        Selektionsmaske (optional)
      Rückgabewert: ;n;Meldung1;...;Meldung n;

      "GetSOEOldest" liefert die "n" ältesten Meldungen aus der PBS30-Meldefolge.
      Optional kann ein Selektionsmaske mitgegeben werden. Der Inhalt dieser Maske ist der gleiche wie bei GetSOENewest. Falls keine Selektionsmaske mitgegeben wird, liefert GetSOEOldest die ältesten Meldungen ohne Einschränkung.

      Das Format einer Meldung in der Liste entspricht dem Format, wie es bei GetSOENewest beschrieben ist.

      Beispiel:
      Anfordern der 5 ältesten Meldungen:

      GetSOEOldest 5


    7. Lesen der nächsten Meldungen nach einer bestimmten Meldung aus der PBS30-Meldefolge

      Anforderungsbefehl: GetSOENext
      Parameter: Anzahl zu lesender Meldungen "n" (Integer)
        Meldungs-Id
        Selektionsmaske (optional)
      Rückgabewert: ;n;Meldung1;...;Meldung n;

      <Meldungs-Id>: Identifikations-Nummer einer Meldung aus "GetSOENewest" und "GetSOEOldest".

      "GetSOENext" liefert maximal "n" Meldungen aus der PBS30- Meldefolge, die nach der durch die <Meldungs-Id> identifizierten Meldung vorhanden sind. Falls weniger als "n" Meldungen vorhanden sind, werden nur diese geliefert.
      Optional kann ein Selektionsmaske mitgegeben werden. Der Inhalt dieser Maske ist der gleiche wie bei GetSOENewest. Falls keine Selektionsmaske mitgegeben wird, liefert GetSOENext die Meldungen ohne Einschränkung.

      Das Format einer Meldung in der Liste entspricht dem Format, wie es bei GetSOENewest beschrieben ist.

      Beispiel:
      Anfordern von maximal 5 Meldungen nach der Meldung 3742_3:

      GetSOENext 5 3742_3


    8. Lesen der Meldungen vor einer bestimmten Meldung aus der PBS30-Meldefolge

      Anforderungsbefehl: GetSOEPrevious
      Parameter: Anzahl zu lesender Meldungen "n" (Integer)
        Meldungs-Id
        Selektionsmaske (optional)
      Rückgabewert: ;n;Meldung1;...;Meldung n;

      <Meldungs-Id>: Identifikations-Nummer einer Meldung aus "GetSOENewest" und "GetSOEOldest".

      "GetSOEPrevious" liefert maximal "n" Meldungen aus der PBS30- Meldefolge, die vor der durch die <Meldungs-Id> identifizierten Meldung vorhanden sind. Falls weniger als "n" Meldungen vorhanden sind, werden nur diese geliefert.
      Optional kann ein Selektionsmaske mitgegeben werden. Der Inhalt dieser Maske ist der gleiche wie bei GetSOENewest. Falls keine Selektionsmaske mitgegeben wird, liefert GetSOEPrevious die Meldungen ohne Einschränkung.

      Das Format einer Meldung in der Liste entspricht dem Format, wie es bei GetSOENewest beschrieben ist.

      Beispiel:
      Anfordern von maximal 5 Meldungen vor der Meldung 3742_3:

      GetSOEPrevious 5 3742_3


  4. Lesen aus der Analogwertspeicherung der Prozeßführung

    1. Lesen der Historie eines Analogsignals aus der Analogwertspeicherung der Prozeßführung

      Anforderungsbefehl: GetHistory
      Parameter: Signalkennzeichen
      Verdichtungsverfahren (avg/min/max)
      Startzeit (Format = "TT.MM.JJJJ HH:MM:SS")
      Anzahl Werte
      Rückgabewert: ;2;,3,Startdatum,Startzeit,Puffer;,n,Wert1,Wert2,...,Wertn,;
       
      (Startdatum: Format = TT.MM.JJJJ
      Startzeit: Format = HH:MM:SS
      Puffer: 1 : Werte stammen aus dem 1-Sek. Puffer
                16 : Werte stammen aus dem 16-Sek. Puffer)

      Beispiel:
      die Mittelwerte für Kennzeichen "KKS 1" anfordern (ein Wert pro Sekunde):

      GetHistory "KKS 1" avg "28.09.1998 17:00:00" 15*60


  5. Lesen aus dem Delta Archiv

    1. Lesen der Historie eines Analogsignals aus dem Delta Archiv

      Anforderungsbefehl: GetDeltaHistory
      Parameter: Signalkennzeichen
      Startzeit (Format = "TT.MM.JJJJ HH:MM:SS")
      Endezeit (Format = "TT.MM.JJJJ HH:MM:SS")
      Rückgabewert: ;n;,4,Zeit1,Wert1,Status1,Quality1,;...;,4,Zeitn,Wertn,Statusn,Qualityn,;
      (Zeit: Format = JJMMTTHHMMSSMMM
      Wert: Format = physikalischer Wert als Floatwert
      Status: Format = 0 (OK) oder 1 (gestört)
      Quality:
      = 0 (Wert ist zuverlässig: es gab keinen Ausfall der PBS30-Prozessdatenerfassung; falls es sich um einen Zähler handelt, wurde dieser nicht manuell geändert),
      = 2 (Vor dem Auftreten des Wertes gab es mindestens einen Ausfall der PBS30-Prozessdatenerfassung)
      = 3 (wie 2; es handelt sich aber um einen Betriebsstundenzähler, und das Aggregat hatte vor und nach dem Ausfall der PBS30-Prozessdatenerfassung den gleichen Zustand)
      = 4 (wie 2; es handelt sich aber um einen Betriebsstundenzähler, und das Aggregat hatte vor und nach dem Ausfall der PBS30-Prozessdatenerfassung unterschiedliche Zustände)
      = 5 (es handelt sich um einen Zähler, dessen Zählerwert manuell geändert wurde, d.h. dessen aktueller Wert kleiner ist als der vorherige Wert). )

      Beispiel:
      die Werte für Kennzeichen "KKS 1" vom 28.09.1998 von 10 bis 17 Uhr anfordern:

      GetDeltaHistory "KKS 1" "28.09.1998 10:00:00" "28.09.1998 17:00:00"


    2. Informationen über ein Analogsignal aus dem Delta Archiv lesen

      Anforderungsbefehl: GetDeltaInfo
      Parameter: Signalkennzeichen
      Art der angeforderten Information; z. Zt. nur "times"
      Rückgabewert: ;n;,3,DT1,Startzeit1,Endezeit1,;...;,3,DTn,Startzeitn,Endezeitn,;
      (DT = Datenträger: "MO" oder "Disk"
      Startzeit: Format = TT.MM.JJJJ HH:MM:SS
      Endezeit: Format = TT.MM.JJJJ HH:MM:SS)

      Diese Funktion liefert für ein Signal die Zeitbereiche der Archivdaten auf MO und/oder Festplatte. Das Format der Start- und Endezeiten in der Rückgabeliste entspricht dem Format der Eingabe-Parameter Start- und Endezeit der Funktion GetDeltaHistory.

      Beispiel:
      Archivzeiten für Kennzeichen "KKS 1" anfordern:

      GetDeltaInfo "KKS 1" times


    3. Werte eines Analogsignals aus dem Delta Archiv lesen

      Anforderungsbefehl: GetDeltaValue
      Parameter: Signalkennzeichen
      Verdichtungsfunktion (MIN | MAX | AVG | INT | TMIN | TMAX)
      Startzeit (Format = "TT.MM.JJJJ HH:MM:SS")
      Endezeit (Format = "TT.MM.JJJJ HH:MM:SS" oder <intervall>)
      optional: Intervall (Format = <intervall>)
      (<intervall> : Format = m<unit>
      <unit> = sec | min | hour | day | week | month | year
      Beispiel: 15min)
      Rückgabewert: ;n;,4,Zeit1,Wert1,Status1,Quality1,;...;,4,Zeitn,Wertn,Statusn,Qualityn,;
      (Zeit: Format = JJMMTTHHMMSSMMM
      Wert: Format = physikalischer Wert als Floatwert
      Status: Format
      = 0 (alle Werte im Intervall sind OK) oder
      = 1 (mindestens ein Wert im Intervall ist gestört)
      Quality:
      = 0 (Wert ist zuverlässig: es gab keinen Ausfall der PBS30-Prozessdatenerfassung; die Daten für das Intervall liegen vollständig vor bzw. seit dem letzten Auftreten des Wertes ist eine entsprechend lange Zeit (als Cache-Zeit QUALITY_TIME konfigurierbar) vergangen),
      = 1 (Wert ist nicht zuverlässig, weil für den angeforderten Zeitraum die Daten noch nicht vollständig vorliegen),
      = 2 (Wert ist nicht zuverlässig, weil es im abgefragten Zeitraum mindestens einen Ausfall der PBS30-Prozessdatenerfassung gab). )

      Diese Funktion liefert für ein Signal Werte mit der vorgegebenen Verdichtungsfunktion aus dem Delta Archiv. Es werden so viele Werte geliefert, wie die im Parameter Intervall angegebene Intervallzeit vollständig in die Zeitspanne von Startzeit bis Endezeit paßt.

      Die im Rückgabewert gelieferten Zeiten entsprechen der Endezeit des jeweiligen Intervalls. Ausnahme: Bei den Funktionen "TMIN" und "TMAX" entspricht die gelieferte Zeit dem Zeitpunkt, an dem der Minimal- bzw. Maximalwert aufgetreten ist.
      Falls für den Parameter Intervall kein Wert angegeben wurde, wird die komplette Zeitspanne von Startzeit bis Endezeit als Intervall angenommen, es wird nur ein Zeit-Wert-Paar geliefert.

      Beispiel:
      Mittelwerte für Kennzeichen "KKS 1" vom 28.09.1998 von 10 bis 17 Uhr anfordern
      für Intervalle von 15 Minuten:

      GetDeltaValue "KKS 1" avg "28.09.1998 10:00:00" "28.09.1998 17:00:00" 15min


    4. Werte eines Zählersignals aus dem Delta Archiv lesen

      Anforderungsbefehl: GetCounterValue
      Parameter: Signalkennzeichen
      Funktion (REL | ABS)
      Startzeit (Format = "TT.MM.JJJJ HH:MM:SS")
      Endezeit (Format = "TT.MM.JJJJ HH:MM:SS" oder <intervall>)
      optional: Intervall (Format = <intervall>)
      (<intervall> : Format = m<unit>
      <unit> = sec | min | hour | day | week | month | year
      Beispiel: 15min)
      Rückgabewert: ;n;,3,,Zeit1,Wert1,Status1,;...;,3,Zeitn,Wertn,Statusn,;
      (Zeit: Format = JJMMTTHHMMSSMMM
      Wert: Format = physikalischer Wert als Floatwert
      Status: Format
      = 0 (alle Werte im Intervall sind OK) oder
      = 1 (mindestens ein Wert im Intervall ist gestört)
      Quality:
      = 0 (Wert ist zuverlässig: es gab keinen Ausfall der PBS30-Prozessdatenerfassung; die Daten für das Intervall liegen vollständig vor bzw. seit dem letzten Auftreten des Wertes ist eine entsprechend lange Zeit (als Cache-Zeit QUALITY_TIME konfigurierbar) vergangen; der Zähler wurde nicht manuell geändert),
      = 1 (Wert ist nicht zuverlässig, weil für den angeforderten Zeitraum die Daten noch nicht vollständig vorliegen),
      = 2 (Wert ist nicht zuverlässig, weil es im abgefragten Zeitraum mindestens einen Ausfall der PBS30-Prozessdatenerfassung gab)
      = 3 (wie 2; es handelt sich aber um einen Betriebsstundenzähler, und das Aggregat hatte vor und nach dem Ausfall der PBS30-Prozessdatenerfassung den gleichen Zustand, sodass für die Berechnung der Betriebsstunden angenommen wird, dass das Aggregat ununterbrochen in diesem Zustand war)
      = 4 (wie 2; es handelt sich aber um einen Betriebsstundenzähler, und das Aggregat hatte vor und nach dem Ausfall der PBS30-Prozessdatenerfassung unterschiedliche Zustände, sodass für die Berechnung der Betriebsstunden angenommen wird, dass sich der Schaltzustand des Aggregats unmittelbar nach Ende der Unterbrechung geändert hat.)
      = 5 (Zählerwert wurde manuell geändert, d.h. bei der Berechnung des Intervallwertes wurde ein Wert verwendet, der kleiner war als der vorherige Wert). )

      Diese Funktion liefert für ein Signal Werte mit der vorgegebenen Funktion aus dem Delta Archiv. Es werden so viele Werte geliefert, wie die im Parameter Intervall angegebene Intervallzeit vollständig in die Zeitspanne von Startzeit bis Endezeit paßt.

      Im Parameter "Funktion" wird definiert, ob für das Zählersignal der jeweils am Ende des Zeitintervalls anstehende Zählerwert ( = ABS) oder die Differenz des Zählerwerts ( = REL) zwischen Anfang und Ende des Zeitintervalls geliefert werden soll.

      Die im Rückgabewert gelieferten Zeiten entsprechen der Endezeit des jeweiligen Intervalls. Falls für den Parameter Intervall kein Wert angegeben wurde, wird die komplette Zeitspanne von Startzeit bis Endezeit als Intervall angenommen, es wird nur ein Zeit-Wert-Paar geliefert.

      Beispiel:
      Absolutwerte für Kennzeichen "KKS 1" vom 28.09.1998 von 10 bis 17 Uhr anfordern
      für Intervalle von 15 Minuten:

      GetCounterValue "KKS 1" ABS "28.09.1998 10:00:00" "28.09.1998 17:00:00" 15min


  6. Lesen aus dem Binär-Archiv

    1. Lesen der Historie eines Binärsignals oder RM-Telegramms aus dem Binär-Archiv

      Anforderungsbefehl: GetBinHistory
      Parameter: Signalkennzeichen
      Startzeit (Format = "TT.MM.JJJJ HH:MM:SS")
      Endezeit (Format = "TT.MM.JJJJ HH:MM:SS")
      Rückgabewert: ;n;,4,Zeit1,Wert1,Status1,Quality1,;...;,4,Zeitn,Wertn,Statusn,Qualityn,;
      (Zeit: Format = JJMMTTHHMMSSMMM
      Wert:
      Format bei Typ "Binär" = 0|1,
      bei Typ "RM" = Telegrammwert als Integer,
      Status: Format = 0 (OK) oder 1 (gestört)
      Quality:
      = 0 (Wert ist zuverlässig: es gab keinen Ausfall der PBS30-Prozessdatenerfassung),
      = 2 (Vor dem Auftreten des Wertes gab es mindestens einen Ausfall der PBS30-Prozessdatenerfassung). )

      Beispiel:
      die Werte für Kennzeichen "KKS 1" vom 28.09.1998 von 10 bis 17 Uhr anfordern:

      GetBinHistory "KKS 1" "28.09.1998 10:00:00" "28.09.1998 17:00:00"


    2. Informationen über ein Binärsignal oder RM-Telegramm aus dem Binär-Archiv lesen

      Anforderungsbefehl: GetBinInfo
      Parameter: Signalkennzeichen
      Art der angeforderten Information; z. Zt. nur "times"
      Rückgabewert: ;n;,3,DT1,Startzeit1,Endezeit1,;...;,3,DTn,Startzeitn,Endezeitn,;
      (DT = Datenträger: "MO" oder "Disk"
      Startzeit: Format = TT.MM.JJJJ HH:MM:SS
      Endezeit: Format = TT.MM.JJJJ HH:MM:SS)

      Diese Funktion liefert für ein Signal die Zeitbereiche der Archivdaten auf MO und/oder Festplatte. Das Format der Start- und Endezeiten in der Rückgabeliste entspricht dem Format der Eingabe-Parameter Start- und Endezeit der Funktion GetBinHistory.

      Beispiel:
      Archivzeiten für Kennzeichen "KKS 1" anfordern:

      GetBinInfo "KKS 1" times


    3. Werte eines Binärsignals oder RM-Telegramms aus dem Binär-Archiv lesen

      Anforderungsbefehl: GetBinValue
      Parameter: Signalkennzeichen
      Startzeit (Format = "TT.MM.JJJJ HH:MM:SS")
      Endezeit (Format = "TT.MM.JJJJ HH:MM:SS" oder <intervall>)
      optional: Intervall (Format = <intervall>)
      (<intervall> : Format = m<unit>
      <unit> = sec | min | hour | day | week | month | year
      Beispiel: 15min)
      Rückgabewert: ;n;,4,,Zeit1,Wert1,Status1,Quality1,;...;,4,Zeitn,Wertn,Statusn,Qualityn,;
      (Zeit: Format = JJMMTTHHMMSSMMM
      Wert:
      Format bei Typ "Binär"
      = 0 (falls konstant 0 innerhalb des Intervalls)
      = 1 (falls konstant 1 innerhalb des Intervalls)
      = ? (falls Wert nicht eindeutig innerhalb des Intervalls)
      bei Typ "RM"
      = Telegrammwert als Integer (falls konstant innerhalb des Intervalls)
      = ? (falls nicht eindeutig innerhalb des Intervalls)
      Status: Format
      = 0 (alle Werte im Intervall sind OK) oder
      = 1 (mindestens ein Wert im Intervall ist gestört)
      Quality:
      = 0 (Wert ist zuverlässig: es gab keinen Ausfall der PBS30-Prozessdatenerfassung; die Daten für das Intervall liegen vollständig vor),
      = 1 (Wert ist nicht zuverlässig, weil für den angeforderten Zeitraum die Daten noch nicht vollständig vorliegen),
      = 2 (Wert ist nicht zuverlässig, weil es im abgefragten Zeitraum mindestens einen Ausfall der PBS30-Prozessdatenerfassung gab). )

      Diese Funktion liefert für ein Signal Werte aus dem Binär-Archiv. Es werden so viele Werte geliefert, wie die im Parameter Intervall angegebene Intervallzeit vollständig in die Zeitspanne von Startzeit bis Endezeit paßt.

      Die im Rückgabewert gelieferten Zeiten entsprechen der Endezeit des jeweiligen Intervalls. Falls für den Parameter Intervall kein Wert angegeben wurde, wird die komplette Zeitspanne von Startzeit bis Endezeit als Intervall angenommen, es wird nur ein Zeit-Wert-Paar geliefert.

      Beispiel:
      Werte für Kennzeichen "KKS 1" vom 28.09.1998 von 10 bis 17 Uhr anfordern
      für Intervalle von 15 Minuten:

      GetBinValue "KKS 1" "28.09.1998 10:00:00" "28.09.1998 17:00:00" 15min





Lesen von Wertänderungen

Auf dem PBS30-XTC-Server läuft ein Prozeß MIC, der alle Telegramme vom Leitsystem PROCONTROL empfängt und bearbeitet. Dieser Prozeß führt eine Tabelle, die alle aktuellen Signalwerte enthält.

Wertänderungen

  1. Lesen von Wertänderungen starten

    Wenn das Lesen von Wertänderungen gestartet wird, beginnt der Prozeß MIC alle Wertänderungen, die er von nun an empfängt, in einen Meldungspuffer einzutragen. Der Meldungspuffer wird vorher geleert. Wenn der Meldungspuffer nicht schnell genug vom Client ausgelesen wird, können Zwischenwerte (die ältesten Werte im Puffer) verloren gehen.

    Der Meldungspuffer kann beliebig gro▀ definiert werden.

    Es können bis zu 4 verschiedene Clients (von verschiedenen IP-Adressen) Stream-Anfragen an einen PBS30-XTC-Server stellen.

    Anforderungsbefehl: StreamStart
    Parameter: - keine -
    Rückgabewert: OK oder Fehlermeldung

    Der frühere Parameter "block" oder "nonblock" kann mitgegeben werden, wird aber ignoriert. Der Prozeß MIC arbeitet weiter, auch wenn der Meldungspuffer voll ist. Die ältesten Wertänderungen werden dann überschrieben und gehen damit verloren.


  2. Lesen von Wertänderungen beenden

    Der Prozeß MIC beendet das Eintragen von Wertänderungen in den Meldungspuffer.

    Anforderungsbefehl: StreamStop
    Parameter: - keine -
    Rückgabewert: OK oder Fehlermeldung


  3. Aktuellen Stand aller Signale anfordern

    Der Prozeß MIC schreibt alle aktuellen Werte aus der Signaltabelle in den Meldungspuffer.

    Anforderungsbefehl: StreamRequestSnapshot
    Parameter: - keine -
    Rückgabewert: OK oder Fehlermeldung


  4. Aktuellen Stand aller Signale anfordern und Lesen von Wertänderungen starten

    Der Prozeß MIC schreibt alle aktuellen Werte aus der Signaltabelle in den Meldungspuffer und beginnt anschließend mit dem Eintragen aller auftretenden Wertänderungen in den Meldungspuffer.

    Anforderungsbefehl: StreamStartWithSnapshot
    Parameter: - keine -
    Rückgabewert: OK oder Fehlermeldung

    Der frühere Parameter "block" oder "nonblock" kann mitgegeben werden, wird aber ignoriert.


  5. Selektionskriterien für StreamRead setzen

    Es werden Selektionskriterien definiert, die den Umfang der Signale eingrenzen, die durch StreamRead geliefert werden.

    Hinweis: Wenn eine Selektion aktiv ist, ist die Anzahl Elemente in einem snapshot zwischen "[" und "]" möglicherweise kleiner als in "[ <number-of-items>" angegeben ist.
    StreamRead <number> liefert möglicherweise weniger als <number> Meldungen.

    Anforderungsbefehl: StreamSelect
    Parameter: Selektionsart (pattern | list | all | info )
      Zeichenmuster (bei pattern) |
    Signalkennzeichenliste (bei list) |
    - (bei all/info)
    Rückgabewert: OK, aktuelle Einstellungen oder Fehlermeldung

    Selektionsart: pattern StreamRead liefert danach die Werte der Kennzeichen, die dem vorgegebenen Muster entsprechen (* und ? sind erlaubt).
      list StreamRead liefert danach die Werte der Kennzeichen, die in der vorgegebenen Kennzeichenliste enthalten sind.
      all StreamRead liefert danach die Werte aller Kennzeichen (dies ist die default Einstellung bei StreamStart).
      info Es werden die aktuellen Einstellungen geliefert, z.B.
    ;2;all;,1,*,;
    ;2;pattern;,1,A PATTERN CONTAINING * AND ?,;
    ;2;list;,7,THIS,IS,A,LIST,WITH,7,ELEMENTS,;


  6. Wertänderungen lesen

    Falls kein Parameter angegeben wird, werden alle Wertänderungen geliefert, die sich in dem Meldungspuffer befinden. Der Meldungspuffer wird dadurch vollständig geleert.

    Optional kann spezifiziert werden, wie viele Meldungen maximal aus dem Puffer ausgelesen werden sollen. Die übrigen Wertänderungen bleiben in dem Meldungspuffer erhalten.

    Die Wertänderungen werden in Form einer Liste bereitgestellt.

    Anforderungsbefehl: StreamRead
    Parameter: (optional: maximale Anzahl Wertänderungen)
    Rückgabewert: bei Snapshotliste: ;[n;Signalwert1;...;Signalwertn;]; oder
    bei Wertänderungsliste: ;Signalwert1;...;Signalwertn;;
       
    Die gelieferte Liste unterscheidet sich von den bereits beschriebenen Rückgabelisten:
       
    Snapshotliste: ;[n;Signalwert1;...;Signalwertn;];
    Die Snapshot-Liste beginnt mit einem Trennzeichen und einem "["-Zeichen (eckige Klammer auf). Danach folgt die Anzahl der Listenelemente, dann die Signalwerte,jeweils durch das Trennzeichen getrennt. Nach dem letzten Signalwert steht ein Trennzeichen und "]" (eckige Klammer zu).
       
    Wertänderungsliste: ;Signalwert1;...;Signalwertn;;
    Bei der Wertänderungsliste steht am Anfang der Liste keine Anzahl der Listenelemente. Die Liste beginnt mit dem Trennzeichen, es folgen die Signalwerte durch Trennzeichen voneinander getrennt. Die Liste endet mit zwei Trennzeichen.
    Falls seit dem letzten StreamRead keine Wertänderungen aufgetreten sind, stehen in der Wertänderungsliste nur zwei Trennzeichen: ";;".

    Ein Signalwert ist wiederum eine Liste, die aus "Typ,KKS,Wert,Zeitstempel" besteht. Je nach Signaltyp wird ein anderes Format für den Wert verwendet:

    Für Rückmeldetelegramme steht jetzt ein ausführlicher Typ "x" zur Verfügung, dessen Signalwert ebenfalls eine Liste ist, die aus

    "aktuellerTyp,KKS,Datenart,aktueller Wert,alterTyp,alter Wert,Zeitstempel" besteht. Die Datenart wird zweistellig, aktueller Wert und alter Wert werden als vierstelliger Hexadezimalwert dargestellt:

     

    Der Typ wird in Großbuchstaben ("A", "B", "N", "Z", &wquot;C", "R", "X") angegeben, wenn das Signal gestört ist.

    Der Zeitstempel wird im Format "JJMMTTHHMMSSMMM" angegeben.

    Außerdem können Fehler- oder Informationsmeldungen in der Liste erscheinen, diese beginnen mit "#".


  7. XTC-Versionen vor 6.0: Unterschiede in der Funktionalität

    Der Meldungspuffer kann nicht beliebig gro▀ definiert werden..

    Es kannn nur 1 Client Stream-Anfragen an einen PBS30-XTC-Server stellen.

    Beim StreamStarrt bzw. StreamStartWithSnapshot kann als Parameter der Modus "block" oder "nonblock" angegeben werden:

    Anforderungsbefehl: StreamStart
    Parameter: block | nonblock
    Rückgabewert: OK oder Fehlermeldung


    Anforderungsbefehl: StreamStartWithSnapshot
    Parameter: block | nonblock
    Rückgabewert: OK oder Fehlermeldung

    Mit den Parametern "block" und "nonblock" kann man steuern, wie der Prozeß reagieren soll, wenn der Meldungspuffer überläuft und keine neuen Meldungen mehr eingetragen werden können:

    "block": MIC wartet so lange, bis der Puffer wieder Meldungen aufnehmen kann.

    "nonblock": MIC arbeitet weiter. Die Meldungen gehen verloren, da sie nicht in den Puffer eingetragen werden können. Die Signaltabelle wird jedoch weiterhin aktualisiert. Wenn in diesem Modus der Meldungspuffer nicht schnell genug vom Client ausgelesen wird, können Zwischenwerte verloren gehen.

    Im "block"-Modus können im Normalfall keine Werte verloren gehen. Wenn allerdings der Meldungspuffer vom Client über längere Zeit nicht ausgelesen wird, (d.h. der Prozeß MIC sich über längere Zeit im Wartezustand befindet), läuft der Empfangspuffer, über den der PBS30-Server die Wertänderungen von PROCONTROL erhält, voll (Puffergröße = 22.000 Wertänderungen). Das Koppelgerät TS50 sendet dann keine weiteren Wertänderungen an den PBS30-Server. Sobald der Meldungspuffer wieder ausgelesen wird und im Empfangspuffer wieder Platz entsteht, sendet das Koppelgerät TS50 die aktuellen Werte für alle Signale. Somit ist der Stand der Prozeßwerte wieder aktuell, es sind allerdings Zwischenwerte verloren gegangen.

    Informationsmeldung "!" in der Rückgabeliste von StreamRead: In dem Meldungspuffer sind Wertänderungen im Modus "nonblock" verlorengegangen. Es empfiehlt sich, einen Snapshot anzufordern, um wieder auf den aktuellen Stand der Werte zu kommen.





Schreiben von Werten

Schreibbefehle: SetSignalPhysical (Analogwert physikalisch mit 12-bit-Genauigkeit schreiben)
SetSignalPhysicalExact (Analogwert physikalisch mit float-Genauigkeit schreiben)
SetSignalPercent (Analogwert prozentual schreiben)
SetSignalBinary (Binärwert schreiben)
SetSignalRM (Rückmeldetelegramm schreiben)
SetSignalNumber (Zählerwert schreiben)
SetSignalBit (bestimmtes Bit eines RM-Telegramms schreiben, andere Bits bleiben unverändert)
SetSignalStep (GSA Schrittnummer setzen)
Parameter: Signalkennzeichen
[Bitnummer] (nur bei SetSignalBit)
Wert
Zeitstempel mit Sommerzeitkennung (optional)
Störbitangabe (optional)
Erstübertagung (optional)
Rückgabewert: OK oder Fehlermeldung

Parameter Wert:

Parameter Zeitstempel:

Parameter Störbitangabe:

Parameter Erstübertagung:

Beispiel:
Wert von Kennzeichen "KKS 1" auf 23.4 (physikalisch) setzen:

SetSignalPhysical "KKS 1" 23.4





Prozessbedienung in Fremdsystemen

Befehle: PollData und
alle in diesem Dokument beschriebenen Anforderungs- und Schreibbefehle (außer Befehle der Stream-Funktionalität)
Parameter: bei PollData: - keine -
Sonstige Befehle: s. jeweilige Beschreibung
Rückgabewert:  

  Keine Bedienaufträge vorhanden Bedienaufträge vorhanden
PollData ;0; ;1;<m Bedienaufträge>;
Sonstige Befehle
  • ;n;Wert1; ... ;Wertn;
  • OK oder sonstiger Text
  • ;n+1;Wert1; ... ;Wertn;<m Bedienaufträge>;
  • ;2;<Text>;<m Bedienaufträge>;

<m Bedienaufträge> ist eine Liste, die wie folgt aufgebaut ist:

Beispiel für den Rückgabewert eines Schreibbefehls "SetSignal....":

 

Bedienungstexte für die von der PBS30 aus möglichen Bedienungen:





Überwachung der Verbindungen

  1. Initialisierung der Verbindungsüberwachung

    Anforderungsbefehl: WatchMe
    Parameter: clientname
    Rückgabewert: OK

    "clientname" ist ein frei wählbarer Name der XTC-Client-Applikation.

    Für alle Signale, die nach diesem Kommando mit "WatchSignal <signal> 1" angemeldet werden, wird festgelegt, dass sie bei Abbruch oder Abbau der aktuellen Clientverbindung in der PBS30 auf Störung (Senkenzeitüberwachung) gesetzt werden.

    Es können bis zu 5 Clients überwacht werden.

    Beispiel:
    Verbindungsüberwachung für client1 starten:

    WatchMe client1


  2. Anmelden/Abmelden eines Signals

    Anforderungsbefehl: WatchSignal
    Parameter: Signalkennzeichen
      value [0/1]
    Rückgabewert: OK

    Mit diesem Kommando wird bestimmt, dass das Signal bei Abbruch oder Abbau der aktuellen Clientverbindung in der PBS30 auf Störung (Senkenzeitüberwachung) gesetzt und in die PBS30 Meldefolge eingetragen wird (value = 1) bzw. dass dieses Verhalten wieder ausgeschaltet wird (value = 0).
    Ein Signal kann jedoch nur dann überwacht werden, wenn der Client zuvor das Kommando "WatchMe <clientname>" gesendet hat.

    Beispiel:
    Signal "SIGNALKKS1" für die Überwachung anmelden:

    WatchSignal "SIGNALKKS1" 1





Anforderung von Informationen über das PBS30 System

Folgende Informationen können abgerufen werden:

Anforderungsbefehl: GetInfo
Parameter: "version" oder
"pbsVersion" oder
"startTime" oder
"currentTime" oder
"license <Lizenztyp> (Lizenztyp ist "xb", "xd" oder "xe") oder
"stdActTime" oder
"currentTime2"
Rückgabewert: Zeichenkette mit angeforderter Information






Testen der Schnittstelle

Die XTC Datenschnittstelle kann direkt mit "telnet" getestet werden:

telnet> open localhost 2000

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

GetSigList

;n;KKS1;KKS2;...;KKSn;

^]

telnet> quit

 

Statt "localhost" kann auch der Name eines Rechners angegeben werden, der über eine TCP/IP Verbindung erreichbar ist.

Nach dem Verbindungsaufbau kann jeder XTC Befehl ausgeführt werden. Der Rückgabewert ist ein beliebig langer Zeichenstring, der durch ein Newline Zeichen (Ascii 10) beendet wird. Innerhalb des Strings erscheinen nur druckbare Zeichen.

Die Verbindung kann beendet werden, indem man die Control-Taste hält und ']' (eckige Klammer zu) eingibt.






Fehlermeldungen

Hinweise:






Info-Meldungen beim Lesen von Wertänderungen

Folgende Info-Meldungen werden nach einem StreamStart in den Stream Meldungspuffer eingetragen:

Weitere Info-Meldungen: