EBSILON®Professional Online Dokumentation
EbsScript / EbsScript Funktionen / Externe Ein-/Ausgabe-Funktionen
In diesem Thema
    Externe Ein-/Ausgabe-Funktionen
    In diesem Thema

    Externe Ein/Ausgabe-Funktionen

    Diese Funktionen bieten einen Zugriff auf die Datenschnittstellen von EBSILON®Professional. Im allgemeinen können sie innerhalb des EBSILON®Professional Performance Optimization Systems (EPOS) für Datenaustausch mit dem Prozess oder mit Datenbanken verwendet werden (für die Standard Excel Schnittstelle lesen Sie Excel Funktionen)

    Die User-DLL Funktionen können für Ein- und Ausgabe verwendet werden.

    Für die User-Excel und die ASCII-Schnittstelle gibt es unterschiedliche Funktionen für Ein- und Ausgabe. Das Verhalten der Funktionen entspricht dem grafischen Benutzeroberfläche, mit folgenden Unterschieden

    Wichtig: ”readInputFile” und ”readUserExcel” verhalten sich bezüglich Messwerten unterschiedlich. Wenn Sie ”readInputFile” verwenden, muss Ihre Datei einen kompletten Satz von Messwerten enthalten (Komponente 46). In der Datei fehlende Werte werden als leer gesetzt. Wenn Sie ”readUserExcel” benutzen, werden nur die Werte ersetzt, die in der Datei verfügbar sind. Werte, die in der Datei fehlen, bleiben unverändert.

    Name

    Zweck

    Argumente

    Rückgabe­wert

    Beispiel

    callEbsScriptServer

     

    Aufruf einer vom Anwender erstellten DLL im Rahmen der ATL-Schnittstelle, in der Regel um einen Dialog zur Eingabe von Parametern aufzuschalten

    1: STRING:
    DLL-Name.Methode

    2: beliebiger Typ:
    1. Argument

    3: beliebiger Typ:
    2. Argument

    4: Prozedur
    Von der DLL aufgerufene Callback-Prozedur

    BOOLEAN: true: o.k.
    false: Fehler

    callEbsScriptServer( "CoalSelection.Input", strCoalNameField, r2, procInit );

    callUserDll

    Einfacher Aufruf an die Benutzer DLL ohne zusätzliche Argumente

    1: INTEGER: Programm Id innerhalb der Benutzer DLL

    INTEGER,
    wie von der Benutzer DLL gesetzt

    callUserDll(2);

    callUserDllArgs

    Aufruf an die Benutzer DLL mit drei zusätzlichen Argumenten

    1: INTEGER: Programm Id innerhalb der Benutzer DLL

    2: INTEGER

    3: REAL

    4: STRING

    INTEGER,
    wie von der Benutzer DLL gesetzt

    callUserDll(1, 3, 7.5, "d:\\temp\\out.txt"); 

    eposReadAverage FromArchive

    analog zu "readAverage FromArchive", jedoch unter Verwendung dynamischer Arrays

    1: REAL: Startzeit für die Mittelung

    2: REAL: Endezeit für die Mittelung

    3: array of PointFilter:

    4: BOOLEAN: siehe "ReadAverageFrom Archive"

    INTEGER:

     

    eposReadAverage FromArchiveForOneId

    analog zu "readAverage FromArchiveForOneId", jedoch unter Verwendung dynamischer Arrays

    1: INTEGER: Id des Archivtopfs

    2: REAL: Startzeit für die Mittelung

    3: REAL: Endezeit für die Mittelung

    4: array of PointFilter:

    5: BOOLEAN:
    true=
    false=

    INTEGER:

     

    eposReadAverage Trend

    analog zu "readAverage Trend", jedoch unter Verwendung dynamischer Arrays

     

    1: STRING
    Name des Datenpunkts

    2: REAL: Startzeit für den gesamten Trend

    3: REAL: Endezeit für den gesamten Trend

    4: REAL: Intervall für die Mittelung (Zeitschritt)

    5: array of PointFilter:

    6: array of ValueAtTime
     

    INTEGER:

     

    eposReadTrend FromArchive

    analog zu "readTrendFrom Archive", jedoch unter Verwendung dynamischer Arrays

    1: STRING
    Name des Datenpunkts

    2: REAL: Startzeit für den gesamten Trend

    3: REAL: Endezeit für den gesamten Trend

    4: array of ValueAtTime
     

    INTEGER:

     

    getEposArchiveId

    Liefert den Archivtopf (EposArchive-Id), für den der spezifizierte Punkt konfiguriert ist.

    1:EBSCLASS: zu untersuchendes Ebsilon-Objekt

    INTEGER: Archivtopf

    id:=getEposArchiveId (TestDP_S1.MEASM);

    getSRxInfo

     

    Liefert die SRx-Konfigurations-Informationen, die für den spezifizierten Punkt in der Ebsilon-Schaltung hinterlegt sind.

    1:EBSCLASS: zu untersuchendes Ebsilon-Objekt

    2:BOOLEAN:
    true: Punkt ist zum Lesen konfiguriert
    false: Punkt ist nicht zum Lesen konfiguriert

    3:BOOLEAN:
    true: Punkt ist zum Schreiben konfiguriert
    false: Punkt ist nicht zum Schreiben konfiguriert

    4:STRING: hinterlegtes SRx-Tag

    5:strArchives: hinterlegte SRxArchive

    BOOLEAN:
    true: alles o.k.
    false: Fehler

    ePoint:=Test_DP009.RESULT;

    bOk:=getSRxInfo (ePoint, bRead, bWrite, strTag, strArchives);

    playSound

    Wiedergabe einer .wav-Datei, z.B. zur Ansage von Hinweisen

    1:STRING:
    Pfad der Sounddatei bzw.  Name des System-Sounds

    2:BOOLEAN:
    true: synchron (Ausführung von EbsScript wird erst nach Beendigung des Abspielens fortgesetzt)
    false (Standardeinstellung, EbsScript wird während des Abspielens fortgesetzt)

    3:BOOLEAN:
    true: Abspielen wird permanent wiederholt (bis zum nächsten playSound-Aufruf mit leerem Pfad)
    false (Standardeinstellung): einmaliges Abspielen

    4:BOOLEAN:
    true: 1. Argument wird immer als Dateiname interpretiert
    false (Standardeinstellung): 1. Argument kann Datei oder Systemsound sein

    BOOLEAN:
    true: alles o.k.
    false: Fehler

    playSound ("C:\\Temp\\Hallo.wav");

    readAverageFrom Archive

     

    Mit dieser Funktion kann ein über einen Zeitraum gemittelter Datensatz aus dem EposArchive geladen werden.

    Bei der Mittelung ist auch die Anwendung von Filtern möglich. Zu jedem Filter ist anzugeben der Name des Punktes, die untere Grenze, die obere Grenze, die maximale relative Abweichung im Vergleich zum vorhergehenden Zeitpunkt und eine Filter-Id. Durch die Filter-Id können UND- bzw. ODER-Verknüpfungen realisiert werden: alle Filter mit gleicher Id werden mit ODER verknüpft, Filter mit unterschiedlicher Id mit UND.

    Hinweis: die Filterung ist nur möglich, wenn sich die Punkte für die Filterkriterien im selben Archivtopf befinden wie die angeforderten Daten.

    Im Beispiel wird ein Stundenmittelwert für die Generatorleistung BAA20CE003A.MEASM und den Rechenstatus @model.iStatus gebildet. Zur Mittelung herangezogen werden nur Datensätze, bei denen der Rechenstatus <= 6 ist und die Generatorleistung größer als 90 MW ist und die Generatorleistung sich in den letzten 5 Minuten nicht mehr als 3 % verändert hat.

    1: REAL: Startzeit für die Mittelung

    2: REAL: Endezeit für die Mittelung

    3: INTEGER: Zahl der Filterkriterien

    4: STRING: Feld mit den Namen der Filtergrößen

    5: REAL: Feld mit den zulässigen unteren Grenzen

    6: REAL: Feld mit den zulässigen oberen Grenzen

    7: REAL: Feld mit den maximal zulässigen Abweichungen zum vorherigen Datensatz

    8: INTEGER: Feld mit den Filter-Ids (siehe links)

    9: BOOLEAN:
    true =v or dem Einlesen werden alle Messwerte gelöscht, d.h. Messwerte, die nicht aus dem Archiv geladen werden, sind dann leer
    false = Messwerte werden nicht gelöscht, d.h. Messwerte, die nicht aus dem Archiv geladen werden, haben dann ihren alten Wert

    INTEGER: Anzahl der für die Mittelung heran-gezogenen Datensätze

    var

        rStartTime:real;

        rStopTime:real;

        nFilterSize:integer;

        arstrFilterPointNameArray:array[0..3] of string;

        arrFilterLowLimitArray:array[0..3] of real;

        arrFilterHighLimitArray:array[0..3] of real;

        arrFilterDeviationArray:array[0..3] of real;

        arnFilterIdArray:array[0..3] of integer;

        nRet:integer;

    begin

        rStartTime:=convertTime ("25.04.2003 08:00");

        rStopTime:=convertTime ("25.04.2003 09:00");

        nFilterSize:=2;

        arstrFilterPointNameArray[0]:= "@model.iStatus";

        arrFilterLowLimitArray[0]:=0;

        arrFilterHighLimitArray[0]:=6;

        arrFilterDeviationArray[0]:=-1;

        arnFilterIdArray[0]:=1;

        arstrFilterPointNameArray[1]:=

                                    "BAA20CE003A.MEASM";

        arrFilterLowLimitArray[1]:=90000;

        arrFilterHighLimitArray[1]:=-1;

        arrFilterDeviationArray[1]:=0.03;

        arnFilterIdArray[1]:=2;

        nRet:=readAverageFromArchive (rStartTime,

                     rStopTime, nFilterSize,

                     arstrFilterPointNameArray,

                     arrFilterLowLimitArray,

                     arrFilterHighLimitArray,

                     arrFilterDeviationArray,

                     arnFilterIdArray );

        print ("readAverageFromArchive liefert ",nRet,"\n");

        print ("BAA20CE003A.MEASM = ",

                 BAA20CE003A.MEASM,

               " @model.iStatus = ", @model.iStatus,"\n");

    end.

    readAverageFrom ArchiveForOneId

    Wie readAverageFromArchive, bei Archiven mit mehreren Zeittöpfen werden jedoch nur die Daten aus einem Zeittopf eingelesen

    1: INTEGER
    Id des Archivtopfs

    2-10 entsprechen den Argumenten 1-9 von readAverageFromArchive

    INTEGER: Anzahl der für die Mittelung heran-gezogenen Datensätze

    nRet:=readAverageFromArchiveForOneId (9999,  rStartTime, rStopTime, nFilterSize,                 arstrFilterPointNameArray,                 arrFilterLowLimitArray,                 arrFilterHighLimitArray,                 arrFilterDeviationArray, arnFilterIdArray );

    readAverageTrend

     

    Mit dieser Funktion können für einen Datenpunkt gefilterte und zeitlich gemittelte Werte innerhalb eines vorgegebenen Zeitraums abgerufen werden. Das Intervall für die Mittelung ist anzugeben. Die Vorgabe der Filterkriterien erfolgt wie bei der Funktion readAverageFromArchive. Bei der Mittelung werden Punkte, die nicht den Filterkriterien entsprechen, ignoriert. Die Zeitstempel (jeweils die Mitte des Intervalls) und die Werte werden in Arrays eingetragen, die im EbsScript zuvor angelegt sein müssen.

    Beispiel: Ermittlung der Stundenmittelwerte des Messpunkts PAB12CT001 am 15.11.2003 zwischen 8:00 und 16:00 Uhr, wobei in die Mittelung nur Werte eingehen sollen, bei denen die Rechnung erfolgreich (@model.iStatus < 7) und die Anlage in Betrieb (BAA20CE003A > 90000) und stationär war (BAA20CE003A nicht mehr als 3% Variation zum vorhergehenden Datensatz) .

    1: STRING
    Name des Datenpunkts

    2: REAL: Startzeit für den gesamten Trend

    3: REAL: Endezeit für den gesamten Trend

    4: REAL: Intervall für die Mittelung (Zeitschritt)

    5: INTEGER: Zahl der Filterkriterien

    6: STRING: Feld mit den Namen der Filtergrößen

    7: REAL: Feld mit den zulässigen unteren Grenzen

    8: REAL: Feld mit den zulässigen oberen Grenzen

    9: REAL: Feld mit den maximal zulässigen Abweichungen zum vorherigen Datensatz

    10: INTEGER: Feld mit den Filter-Ids (siehe oben)

    11: INTEGER: Größe der bereitgestellten Felder für die Ergebnisse

    12: REAL (Ergebnis): Feld mit den Zeiten für die Trendpunkte

    13: REAL (Ergebnis): Feld mit den Werten für die Ergebnisse

    INTEGER: Zahl der gefundenen Trendpunkte. Wenn diese Zahl die Größe der Ergebnisarrays überschreitet, werden die übrigen Punkte verworfen.

    var
    strPointName:string;
    rStartTime,rStopTime,rTimeStep:real;
    nFilterSize:integer;
    arstrFilterPointNameArray:array[0..3] of string;
    arrFilterLowLimitArray:array[0..3] of real;
    arrFilterHighLimitArray:array[0..3] of real;
    arrFilterDeviationArray:array[0..3] of real;
    arnFilterIdArray:array[0..3] of integer;
    nArraySize:integer;
    arrTime:array[1..100] of real;
    arrValue:array[1..100] of real;
    i,nRet,nCount:integer;
    begin
    strPointName:="PAB12CT001.MEASM";
    rStartTime:=convertTime ("15.11.2003 08:00");
    rStopTime:=convertTime ("15.11.2003 16:00");
    rTimeStep:=1.0/24.0; // 1 Stunde
    nFilterSize:=2;
    arstrFilterPointNameArray[0]:= "@model.iStatus";
    arrFilterLowLimitArray[0]:=0;
    arrFilterHighLimitArray[0]:=6;
    arrFilterDeviationArray[0]:=-1;
    arnFilterIdArray[0]:=1;
    arstrFilterPointNameArray[1]:=
           "BAA20CE003A.MEASM";
    arrFilterLowLimitArray[1]:=90000;
    arrFilterHighLimitArray[1]:=-1;
    arrFilterDeviationArray[1]:=0.03;
    arnFilterIdArray[1]:=2;
    nArraySize:=100;
    nRet:=readAverageTrend (strPointName,
    rStartTime, rStopTime, rTimeStep, nFilterSize,
    arstrFilterPointNameArray,
    arrFilterLowLimitArray,   
    arrFilterHighLimitArray, arrFilterDeviationArray,
    arnFilterIdArray, nArraySize, arrTime,
    arrValue);
    print ("nRet = ",nRet,"\n");
    nCount:=min(nRet, nArraySize);
    for i:=1 to nCount do
    begin
    print (i," time ",arrTime[i]," value ",
       arrValue[i],"\n");
    end;
    end.

    readDatasetFromSRx

     

    lädt einen kompletten Datensatz zu einem gegebenen Zeitpunkt in die Schaltung

    1: REAL : Zeitpunkt

    2: STRING: SRxArchive

    3: STRING: SRxHost

    4: STRING: SRxPort

    BOOLEAN:
    true: alles o.k.
    false: Fehler

    rTime:=convertTime ("26.01.2006 10:15:00");
    readDatasetFromSRx (rTime, "V", "localhost", "8001");

    readFromExcelFile

     

    Diese Funktion ermöglicht das direkte Lesen von spezifizierten Zellen aus einer Excel-Datei.

    1: STRING: Pfad der Excel-Datei

    2: INTEGER: Nummer des einzulesenden Blattes der Excel-Datei

    3: STRING: einzulesender Bereich der Excel-Datei

    4: STRING: Feld für die gelesenen Daten

    5: INTEGER: Größe des Feldes für die gelesenen Daten

    BOOLEAN:
    true: alles o.k.
    false: Fehler

    bOk:=readFromExcelFile( strFullExcelPath, 1, "A4:J26", arstrResults, iSize);

    readFromExcelFileNew

    Diese Funktion ermöglicht das direkte Lesen von spezifizierten Zellen aus einer Excel-Datei unter Verwendung von dynamischen Arrays

     

    1: STRING: Pfad der Excel-Datei

    2: INTEGER: Nummer des einzulesenden Blattes der Excel-Datei

    3: STRING: einzulesender Bereich der Excel-Datei

    4: STRING: dyn. Feld für die gelesenen Daten

    5: INTEGER: Größe des Feldes für die gelesenen Daten

    BOOLEAN:
    true: alles o.k.
    false: Fehler

    var
      ar:array of string;
    begin
      if (readFromExcelFileNew("D:\\temp\\test.xls", 1,
         "B2:C3", ar)) then
      begin
        println ("ar ",length(ar)," ",ar[0]);
      end;
    end;

    readFromExcelFileVariant

    Diese Funktion ermöglicht das direkte Lesen von spezifizierten Zellen aus einer Excel-Datei unter Verwendung von dynamischen Arrays,

    wie readFromExcelFileNew nur dass die Daten der Zellen als VARIANT-Typ übergeben werden (d.h. die Information des Typs (Integer, Real, Text, leer) bleibt erhalten; bis Release 10 wurde immer alles als Text gelesen)

     

                   

     

     

     

    readFromExcelFileVariant2

    Diese Funktion ermöglicht das direkte Lesen von spezifizierten Zellen aus einer Excel-Datei unter Verwendung von dynamischen Arrays,

    wie readFromExcelFileVariant, , nur dass die Daten als “array of array of VARIANT” übergeben werden

     

                   

     

     

     

    readInpFile

    Liest eine Datei mit Messwerten. Dies kann eine Textdatei oder eine Excel Datei sein. Im Falle einer Excel Datei sind in der ersten Reihe Formatierungsanweisungen erforderlich.

    1: STRING: Pfadname der Eingabedatei

    2: BOOLEAN:
    true =v or dem Einlesen werden alle Messwerte gelöscht, d.h. Messwerte, die nicht aus dem Archiv geladen werden, sind dann leer
    false = Messwerte werden nicht gelöscht, d.h. Messwerte, die nicht aus dem Archiv geladen werden, haben dann ihren alten Wert

    Wenn kein Name eingegeben wird, erscheint ein Dialog zur Auswahl einer Datei

    BOOLEAN:
    true: o.k.
    false: Fehler

    readInpFile ("D:\\temp\\Block750.inp”);

    readKeyFromSRx

    ermöglichen einen direkten Zugriff auf in SRx gespeicherte Daten, ohne das entsprechende Objekte in der Ebsilon-Schaltung angelegt und konfiguriert sein müssen.

    1: STRING: SRxKeyName

    2: REAL: Time

    3: var real: Value

    4: STRING: Unit
    (Standard = "-")

    5: STRING: SRxArchive (Standard = "")

    6: STRING: SRxHost (Standard = "")

    7: STRING: SRxPort (Standard = "")

    BOOLEAN:
    true: lesen erfolgreich
    false: lesen nicht erfolgreich

    readKeyFromSRx("TestKey", 123, returnvalue, "-", "", "", "" );

    readLineFromFile

     

    Diese EbsScript-Funktion erlaubt das Lesen einer Zeile aus einer Textdatei.

    Die Funktion ist so implementiert, dass bei jedem Lesezugriff die Datei neu geöffnet, die Zeile gesucht und die Datei wieder geschlossen wird.

    Im Beispiel wird die erste Zeile der Datei test.txt eingelesen und angezeigt.

    1: STRING: Pfadname der Datei, aus der gelesen werden soll

    2: STRING(Ergebnis): gelesene Textzeile

    3: INTEGER: Nummer der einzulesenden Zeile

    4: encoding:textEncodingEnum = textEncodingASCII: Wie die Zeichen kodiert werden (ASCII, UTF8, UTF16 (LE))

    BOOLEAN:
    true: o.k.
    false: Fehler

    var
    b:boolean;
    s:string;
    begin
    b:=readLineFromFile( "c:\\temp\\test.txt", s, 1 );
    print (b," ",s,"\n");
    end;

    readLinesFromFile Diese EbsScript-Funktion liest alle Zeilen aus einer Textdatei.

    1: STRING: Pfadname der Datei, aus der gelesen werden soll

    2: STRING(Ergebnis): gelesene Textzeile

    3: INTEGER: Nummer der ersten einzulesenden Zeile

    4: INTEGER: Nummer der letzten einzulesenden Zeile (bis zum Ende)

    5: encoding:textEncodingEnum = textEncodingASCII: Wie die Zeichen kodiert werden  (ASCII, UTF8, UTF16 (LE))

    BOOLEAN:
    true: o.k.
    false: Fehler
    var s:string;
        i:integer;
        lines:array of String;
    begin
     println (readLinesFromFile("Log.txt", lines, 1, -1));
     for i:=0 to length(lines)-1 do begin
        s := printtostring (lines[i]);
        println(s);
     end;
    end.

    readPointFromSRx

     

    liefert den Wert eines einzelnen Punktes zu einem gegebenen Zeitpunkt

    1: EBSCLASS: einzulesendes Objekt der Schaltung

    2: REAL: Zeitpunkt

    3: STRING: SRxArchive

    4: STRING: SRxHost

    5: STRING: SRxPort

    REAL:
    Rückgabewert des Datenpunktes

    rTime:=convertTime ("26.01.2006 11:15:00");
    rVal:=readPointFromSRx(TestDP_S1.MEASM, rTime, "V", "localhost", "8001");

    readTrendFromArchive

    Mit dieser Funktion kann ein Trend für einen Datenpunkt aus dem EposArchive eingelesen werden. Im Unterschied zu readAverageTrend findet hierbei weder Mittelung noch Filterung statt.

    1: STRING
    Name des Datenpunkts

    2: REAL: Startzeit für den gesamten Trend

    3: REAL: Endezeit für den gesamten Trend

    4: INTEGER: Größe der bereitgestellten Felder für die Ergebnisse

    5: REAL (Ergebnis): Feld mit den Zeiten für die Trendpunkte

    6: REAL (Ergebnis): Feld mit den Werten für die Ergebnisse

    INTEGER: Zahl der gefundenen Trendpunkte. Wenn diese Zahl die Größe der Ergebnisarrays überschreitet, werden die übrigen Punkte verworfen.

    nRet:=readTrendFromArchive (strPointName,
    rStartTime, rStopTime, nArraySize, arrTime,
    arrValue);

    readUserExcel

    Liest Komponenten- Spezifikationswerte aus der spezifizierten Excel Datei. Das Layout der Datei muss entsprechend der Regeln der Benutzer Excel Schnittstelle definiert sein.

    1: STRING: Pfadname der Eingabedatei

    boolean:
    true: o.k.
    false: Fehler

    readUserExcel ("D:\\temp\\Block750_Data.xls”);

    readUserExcelFormatted

    Wie readUserExcel, aber mit Vorgabe eines Formatierungsstrings an die direkte User-Excel-Schnittstelle. Die Excel-Datei braucht dann keine Formatierungsangaben mehr zu enthalten. Die Syntax des Formatierungsstrings entspricht der Formatzeile. Zusätzlich ist das Schlüsselwort ”EbsClear” verfügbar, das ein Löschen aller Messwerte vor dem Einlesen bewirkt.

    1: STRING: Pfadname der Eingabedatei

    2: STRING: Formatstring mit Schlüsselwörtern EbsNames, EbsProfiles, EbsUnits (optional), EbsClear (optional). Die Reihenfolge ist einzuhalten.

    boolean:
    true: o.k.
    false: Fehler

    readUserExcelFormatted ("D:\\temp\\Block750_Data.xls”, "EbsNames Col A EbsProfiles Col B to F EbsUnits Col G");

    removeSRxInfo

    löscht die bei den Ebsilon-Objekten hinterlegten SRx-Informationen. Dabei kann wahlweise über den Namen des Ebsilon-Objekts oder den SRx-Tag vorgegeben werden, was gelöscht werden soll.

    1: ebsclass: Objekt, dessen SRx-Informationen gelöscht werden sollen. Enthält dieses Argument eine leere ebsclass-Variable, werden alle SRx-Informationen gelöscht, sofern dies nicht durch die Argumente 2 und 3 wieder eingeschränkt wird.

    2: STRING: SRx-Tag für das Objekts, dessen SRx-Informationen gelöscht werden sollen. Enthält dieses Objekte einen leeren String, werden alle SRx-Informationen gelöscht, sofern dies nicht durch die Argumente 1 und 3 wieder eingeschränkt wird.

    3: STRING: Name (Kennbuchstabe) des SRx-Archivs, das von der Löschung betroffen sein soll. Es werden nur die SRx-Informationen gelöscht, die sich auf das angegebene Archiv beziehen.

    INTEGER:

    0: Eintrag konnte nicht gelöscht werden

    1: Löschen erfolgreich

    begin

        if (removeSRxInfo(Measuring_point, "", "5" )) then

        begin

            println ("removeSRxInfo successful");

        end;

    end.

     

    oder:

     

    var

        e:ebsobject;

    begin

        if (removeSRxInfo(e, "TagM2", "5" )) then

        begin

            println ("removeSRxInfo successful");

        end;

    end.

    setArchive

     

    setzt das für die folgenden Operationen zu verwendende EposArchive. Die Einstellungen bleiben bis zum nächsten Aufruf von setArchive gültig.

    1:STRING: Name des Rechners, auf dem das zu verwendende EposArchive läuft

    2:STRING: Servicename (Portnummer) des zu verwendenden EposArchives

    -

    setEposArchive ("Einhausen", "EposArchive");

    setSRxInfo

     

    Ändert die SRx-Konfigurations-informationen, die für den spezifizierten Punkt in der Ebsilon-Schaltung hinterlegt sind.

    1: EBSCLASS: Objekt der Schaltung, dessen Einstellungen geändert werden sollen

    2:BOOLEAN:
    true: Punkt soll zum Lesen konfiguriert werden
    false: Punkt soll nicht zum Lesen konfiguriert werden

    3:BOOLEAN:
    true: Punkt soll zum Schreiben konfiguriert werden
    false: Punkt soll nicht zum Schreiben konfiguriert werden

    4:STRING: zu verwendendes SRx-Tag

    5:strArchives: zu verwendende SRxArchive

    6:BOOLEAN:
    true: Datensatz wird nicht auf doppelte Einträge überprüft
    false: Datensatz wird nicht auf doppelte Einträge überprüft

    BOOLEAN:
    true: o.k.
    false: Fehler

    bOk:=setSRxInfo (ePoint, bRead, bWrite, strTag, strArchives,bNoCheckForDuplicateTags);

    shellExecute

     

    Ausführung eines externen Programms

    (Die optionalen Parameter werden lediglich an die Windows-Funktion ::ShellExecuteEx weitergereicht. Einzelheiten entnehmen Sie bitte der Dokumentation von Microsoft)

    1: STRING: Pfadname des Programms

    2: STRING: Parameterzeile (Defaultwert:"")

    3: BOOLEAN: Flag, ob Ausführung synchron erfolgen soll (Defaultwert: false)

    4: STRING: Arbeitsverzeichnis für  Programmausführung (Defaultwert:"", d.h. aktuelles Verzeichnis))

    5: INTEGER: Anzeigeflag nShow  (Defaultwert:10)

    6: STRING: Operation lpVerb (Defaultwert: "")

    BOOLEAN:
    true: o.k.
    false: Fehler

    shellExecute("notepad");

    writeDatasetToSRx

    überträgt einen kompletten Datensatz für einen gegebenen Zeitpunkt an SRx.

    Es ist ebenfalls möglich Modellvariablen zu verwenden. Ist der Wert in Ebsilon leer wird "naN" (not a number) übergeben.

    1: REAL: Zeitpunkt

    2: STRING: SRxArchive

    3: STRING: SRxHost

    4: STRING: SRxPort

    BOOLEAN:
    true: alles o.k.
    false: Fehler

    rTime:=convertTime ("26.01.2006 10:15:00");
    writeDatasetToSRx (rTime, "V", "localhost", "8001");

    writeKeyToSRx

    ermöglichen einen direkten Zugriff auf in SRx gespeicherte Daten, ohne das entsprechende Objekte in der Ebsilon-Schaltung angelegt und konfiguriert sein müssen.

    1: STRING: SRxKeyName

    2:REAL: Time

    3:REAL: Value

    4:STRING: Unit
    (Standard = "-")

    5:STRING: SRxArchive
    (Standard = "")

    6:STRING: SRxHost
    (Standard = "")

    7:STRING: SRxPort
    (Standard = "")

    BOOLEAN:
    true: schreiben erfolgreich
    false: schreiben nicht erfolgreich

    writeKeyToSRx("TestKey", 123, 512, "-", "", "", "");

    writePointToSRx

    schreibt einen einzelnen Wert für einen gegebenen Zeitpunkt.

    Es ist ebenfalls möglich Modellvariablen zu verwenden. Ist der Wert in Ebsilon leer wird "-999" übergeben.

    1: EBSCLASS: an SRx zu übergebendes Objekt der Schaltung

    2: REAL: Zeitpunkt

    3: REAL: Wert des Objekts

    4: STRING: SRxArchive

    5: STRING: SRxHost

    6: STRING: SRxPort

    BOOLEAN:
    true: alles o.k.
    false: Fehler

    rTime:=convertTime ("26.01.2006 11:15:00");
    rVal:=writePointToSRx(TestDP_S1.MEASM, rTime, 50.8, "V", "localhost", "8001");

    writeToArchive

    Mit dieser Funktion kann ein Datensatz in das EposArchive geschrieben werden.

    1: INTEGER: Id des Archivtopfs, in den geschrieben werden soll

    2: REAL: Zeitpunkt

    BOOLEAN:
    true: alles o.k.
    false: Fehler

    bOk:=writeToArchive (300, rTime)

    writeToExcelFile

    Diese Funktion ermöglicht das direkte Schreiben von spezifizierten Zellen in eine Excel-Datei.

    1: STRING: Pfad der Excel-Datei

    2: INTEGER: Nummer des einzulesenden Blattes der Excel-Datei

    3: STRING: zu übertragender Bereich der Excel-Datei

    4: STRING: Feld mit den zu übertragenden Daten

    5: INTEGER: Größe des Feldes für die zu übertragenden Daten

    BOOLEAN:
    true: alles o.k.
    false: Fehler

    bOk:=writeToExcelFile( strFullExcelPath, 1, "A4:J26", arstrValues, iSize);

    writeToExcelFileNew

    Diese Funktion ermöglicht das direkte Schreiben von spezifizierten Zellen in eine Excel-Datei unter Verwendung von dynamischen Arrays

     

    1: STRING: Pfad der Excel-Datei

    2: INTEGER: Nummer des einzulesenden Blattes der Excel-Datei

    3: STRING: zu übertragender Bereich der Excel-Datei

    4: STRING-ARRAY: Feld mit den zu übertragenden Daten

    BOOLEAN:
    true: alles o.k.
    false: Fehler

    var
      ar:array of string;
      i:integer;
    begin
      setLength (ar, 100);
      for i:=0 to 99 do
      begin
        ar[i]:=printToString ("Test",i);
      end;
      if (writeToExcelFileNew("D:\\temp\\test.xls", 1,
          "D11:G35", ar)) then
      begin
        println ("write successful");
      end;
    end;

    writeToExcelFileVariant

    Diese Funktion ermöglicht das direkte Schreiben von spezifizierten Zellen in eine Excel-Datei unter Verwendung von dynamischen Arrays,
    wie writeToExcelFileNew,nur dass die Daten der Zellen als VARIANT-Typ übergeben werden (d.h. die Information des Typs (Integer, Real, Text, leer) bleibt erhalten; bis Release 10 wurde immer alles als Text geschrieben)

     

                   

     

     

     

    writeToExcelFileVariant2

    Diese Funktion ermöglicht das direkte Schreiben von spezifizierten Zellen in eine Excel-Datei unter Verwendung von dynamischen Arrays
    wie writeToExcelFileVariant,
    nur dass die Daten als “array of array of VARIANT” übergeben werden

     

                   

     

     

     

    writeToFile

    Ermöglicht die Ausgabe von Texten in eine Datei, wahlweise in eine neue Datei oder an eine bestehende angehängt.

    1: STRING: Pfadname der Datei, die beschrieben werden soll

    2: STRING: Einzutragender Text

    3: BOOLEAN:
    true: Text wird ans Ende angehängt, falls die Datei schon existiert
    false: Datei von Anfang an beschrieben

    4: encoding:textEncodingEnum = textEncodingASCII Wie die Zeichen kodiert werden (ASCII, UTF8, UTF16 (LE))

    BOOLEAN:
    true: o.k.
    false: Fehler

    writeToFile("c:\\temp\\Result.log","Calculation successful",true);

     writeUserExcel

    Schreibt Spezifikations- und Ergebniswerte in eine  Excel Datei entsprechend einer Vorlagendatei.

    1: STRING: Pfadname der Excel Vorlagendatei, die das zu verwendende Layout definiert

    2: STRING: Pfadname der Excel Datei, in die der Bericht geschrieben werden soll

    BOOLEAN:
    true: o.k.
    false: Fehler

    writeUserExcel ("D:\\temp\\Block750.inp”, "EbsNames Col A EbsProfiles Col B to F EbsUnits Col G");

    writeUserExcelFormatted

    Wie writeUserExcel, aber mit Vorgabe eines Formatierungsstrings an die direkte User-Excel-Schnittstelle. Die Excel-Datei braucht dann keine Formatierungsangaben mehr zu enthalten. Die Syntax des Formatierungsstrings entspricht der Formatzeile.

    1: STRING: Pfadname der Excel Datei, in die der Bericht geschrieben werden soll

    2: STRING: Formatstring mit Schlüsselwörtern EbsNames, EbsProfiles, EbsUnits (optional). Die Reihenfolge ist einzuhalten.

    BOOLEAN:
    true: o.k.
    false: Fehler

    writeUserExcelFormatted ("D:\\temp\\Block750_Data.xls”, "EbsNames Col A EbsProfiles Col B to F EbsUnits Col G");

     writeValFile

    Schreibt den Validierungsbericht in die spezifizierte Datei. Dies ist immer eine Textdatei, ungeachtet der Erweiterung.

    1: STRING: Pfadname der zu erstellenden Textdatei

    BOOLEAN:
    true: o.k.
    false: Fehler

    writeValFile ("D:\\temp\\Block750.val”);