EBSILON®Professional Online Dokumentation
EbsScript / EbsScript Funktionen / Modell-Funktionen
In diesem Thema
    Modell-Funktionen
    In diesem Thema

    Modell-Funktionen

    Diese Funktionen dienen zum Drucken, Speichern und Aktualisieren des Modells.

    Insbesondere zur Erstellung einer Serie von Dokumenten für unterschiedliche Zustände kann ein automatisches Drucken aus EbsScript von Nutzen sein.

    Name

    Zweck

    Argumente

    Rückgabe­wert

    Beispiel

    changeObjectName

    Mit der Funktion changeObjectName kann man den Namen von Objekten umbenennen. Dabei kann über ein Flag gesteuert werden, wie verfahren werden soll, falls der gewünschte Name schon existiert. Beispiel:

    strNew:="Throttle_5";
    changeObjectName("Throttle_3", strNew);

    benennt „Throttle_3“ in „Throttle_5“ um, allerdings nur, wenn des in der Schaltung noch kein Objekt mit dem Namen „Throttle_5“ gibt. Ob die Umbenennung erfolgreich war, kann man am Rückkehrcode von changeObjectName erkennen. Alternativ kann man auch das Flag „allowModify“ (das 3. Argument von changeObjectName) verwenden:

    strNew:="Throttle_5";
    changeObjectName("Throttle_3", strNew, true);

    In diesem Fall enthält strNew nach dem Aufruf den Namen des Bauteils, das vorher „Throttle_3“ hieß, also „Throttle_5“, wenn die Umbenennung durchgeführt werden konnte, andernfalls „Throttle_3“.

    Ein 4. Parameter „checkOnly“ ermöglicht es, lediglich zu testen, ob eine Umbenennung möglich wäre, ohne das Objekt wirklich umzubenennen:

    strNew:="Throttle_5";
    changeObjectName("Throttle_3", strNew, false, true);

    liefert true, wenn die Umbenennung möglich wäre, ändert aber nichts am Namen des Objekts.

    1: STRING: aktueller Name

    2: STRING: neuer Name

    3: BOOLEAN: allowModify-Flag (siehe Zweck)

    4: BOOLEAN: checkOnly-Flag (siehe Zweck)

     

    BOOLEAN:
    true=ok
    false=Fehler

    siehe Zweck

    getAllCompNames

    Wie getCompNames, jedoch werden auch Komponenten geliefert, die für die Berechnung deaktiviert sind.

    1: INTEGER: Bauteil-Nummer

    2: ARRAY OF STRING: Feld für die Komponentennamen

    3: INTEGER: Größe des übergebenen Feldes

    4: BOOLEAN: Flag, ob bei Anwesenheit von Makros auch die Objekte der untergeordneten Kontexte geliefert werden soll (standardmäßig wird nur der aktuelle Kontext betrachtet)

    INTEGER: Gesamtzahl der gefundenen Komponenten (davon werden aber nur so viele in die Felder eingetragen, wie hineinpassen)

    nCount:=getAllCompNames( 46, arstrMeasmNames, 1000);

    getAllPipeNames

    Wie getPipeNames, jedoch werden auch Komponenten geliefert, die für die Berechnung deaktiviert sind.

    1: INTEGER: Leitungstyp (siehe unten)

    2: ARRAY OF STRING: Feld für die Leitungsnamen

    3: INTEGER: Größe des übergebenen Feldes

    4: BOOLEAN: Flag, ob bei Anwesenheit von Makros auch die Objekte der untergeordneten Kontexte geliefert werden soll (standardmäßig wird nur der aktuelle Kontext betrachtet)

    INTEGER: Gesamtzahl der gefundenen Leitungen (davon werden aber nur so viele in die Felder eingetragen, wie hineinpassen)

    nCount:=getAllPipeNames( 3, arstrNames, 100 );

    getCalcState

    liefert den Berechnungsstatus einer Komponente, d.h. ob eine Komponente für die Berechnung herangezogen wird oder lediglich als passive Grafik verwendet wird

    1: STRING
    Name der Komponente

    INTEGER:
    0: nicht berechnen
    1: berechnen
    2: nicht berechnen, aber ausgeben

    iStatus:=getCalcState( "Randwert" );

    getCompNames

    Mit dieser Funktion ist es möglich, in einer Schleife eine Komponente nach der anderen abzuarbeiten. Sie liefert ein Array mit den Namen aller Komponenten eines Typs. Das Array muss zuvor in passender Größe angelegt worden sein.

    1: INTEGER: Bauteil-Nummer

    2: ARRAY OF STRING: Feld für die Komponentennamen

    3: INTEGER: Größe des übergebenen Feldes

    4: BOOLEAN: Flag, ob bei Anwesenheit von Makros auch die Objekte der untergeordneten Kontexte geliefert werden soll (standardmäßig wird nur der aktuelle Kontext betrachtet)

    INTEGER: Gesamtzahl der gefundenen Komponenten (davon werden aber nur so viele in die Felder eingetragen, wie hineinpassen)

    nCount:=getCompNames( 46, arstrMeasmNames, 200);

    getEbsScriptOutputfilename

    Gibt den EbsScript-Ausgabedateipfad zurück.

    -

    STRING:
    Dateiname

    var

      str:string;

    begin

        str:=getEbsScriptOutputfilename;

        println (str);

        setEbsScriptOutputfilename
               ("D:\\temp\\ebsscript.txt", true );

        str:=getEbsScriptOutputfilename;

        println (str);

     

        if (getEbsScriptOutputfilenameAddTimestamp)
         then

        begin

          println ("Timestamp will be added");

        end;

    end;

    getEbsScriptOutputfilename
    AddTimestamp

    Gibt zurück, ob an die EbsScriptausgabe-Datei ein Zeitstempel angehängt wird.

    -

    BOOLEAN:
    "true" wenn Timestamp gesetzt ist, anderenfalls "false"

    getModelEbsScriptOutputfilename

    Liefert den Namen der für dieses Modell spezifizierten EbsScript-Ausgabedatei

    -

    STRING:
    Dateiname

    getModelEbsScriptOutputfilename();

    getObjects

    Liefert alle Objekte eines bestimmten Typs aus der Schaltung

    1: STRING: Typ (Klasse) der gewünschten Objekte

    2: BOOLEAN:
    true: einschließlich der Objekte innerhalb von Makros

    false: nur Objekte im aktuellen Kontext (Standardeinstellung)

    3: BOOLEAN:
    true: nur aktive Objekte

    false: alle Objekte (Standardeinstellung)

     

    ARRAY of EBSOBJECT: gewünschte Objekte

    var

      are:array of ebsobject;

      i,n:integer;

      strName:string;

    begin

      are:=getObjects("ebscomp1");

      n:=length(are);

      for i:=0 to n-1 do

      begin

        println (are[i]);

      end;

    end;

    getPipeNames

    Mit dieser Funktion ist es möglich, in einer Schleife eine Leitung nach der anderen abzuarbeiten. Sie liefert ein Array mit den Namen aller Leitungen eines Typs (Typ-Nummern siehe unten). Das Array muss zuvor in passender Größe angelegt worden sein.

    1: INTEGER: Leitungstyp (siehe unten)

    2: ARRAY OF STRING: Feld für die Leitungsnamen

    3: INTEGER: Größe des übergebenen Feldes

    4: BOOLEAN: Flag, ob bei Anwesenheit von Makros auch die Objekte der untergeordneten Kontexte geliefert werden soll (standardmäßig wird nur der aktuelle Kontext betrachtet)

    INTEGER: Gesamtzahl der gefundenen Leitungen (davon werden aber nur so viele in die Felder eingetragen, wie hineinpassen)

    nCount:=getPipeNames ( 3,
        arstrNames, 100 );

    getText

    liefert den Text, der in einem Textobjekt eingetragen ist

    1: STRING:
    Name des Textobjekts

    STRING:
    hinterlegter Text

    strText:=getText( "Textobjekt" );

    getTextNames

    Mit dieser Funktion ist es möglich, in einer Schleife ein Textfeld nach dem anderen abzuarbeiten. Sie liefert ein Array mit den Namen aller Textfelder (einschließlich aller Knöpfe und Alarmfelder). Das Array muss zuvor in passender Größe angelegt worden sein.

    1: ARRAY OF STRING: Feld für die Textfeldnamen

    2: INTEGER: Größe des übergebenen Feldes

    3: BOOLEAN: Flag, ob bei Anwesenheit von Makros auch die Objekte der untergeordneten Kontexte geliefert werden soll (standardmäßig wird nur der aktuelle Kontext betrachtet)

    INTEGER: Gesamtzahl der gefundenen Textfelder (davon werden aber nur so viele in das Feld eingetragen, wie hineinpassen)

    var
      arstrNames:array[1..1000] of string;
      i,nSize,nCount:integer;

    begin
      nSize:=1000;
      nCount:=getTextNames(arstrNames,nSize);
      for i:=1 to nCount do
      begin
        print (arstrNames[i],"\n");
      end;
    end.

    getVisibleState

    liefert den Sichtbarkeitsstatus eines Objekts, d.h. ob ein Objekt in der Schaltung sichtbar oder unsichtbar ist

    1: STRING:
    Name des Objekts

    INTEGER:
    0: Objekt ist unsichtbar
    1: Objekt ist sichtbar

    iStatus:=getVisibleState( "Randwert" );

    printModel

    Druckt das Modell mit den  Standarddruckeinstellungen, unter Verwendung des spezifizierten Layout.

    1: STRING: Name des Layouts, das zum Drucken benutzt wird (siehe Druckvorschau, Layouts)

    2: STRING: Name des Drucker (optional;
    wenn leer, wird der Standarddrucker verwendet)

    3: STRING: bei Umlenkung in Datei Name der Ausgabedatei (optional)

    BOOLEAN:
    true: ok
    false: Fehler

    printModel ("SmallFrameLandscape");

    restoreModelVariables

    siehe saveModelVariables und saveProfileVariables

    1: INTEGER: Index, welcher gespeicherte Satz verwendet werden soll

    2: BOOLEAN:
    true: gespeicherten Satz für zukünftige Wiederherstellungen beibehalten

    false: gespeicherten Satz nach dem Laden verwerfen

    BOOLEAN:
    true: ok
    false: Fehler

     

    restoreProfileVariables

    1: INTEGER: Index, welcher gespeicherte Satz verwendet werden soll

    2: BOOLEAN:
    true: ins aktive Profil zurückschreiben

    false: in das ursprüngliche Profil zurückschreiben (Standardeinstellung)

    3: BOOLEAN:
    true: gespeicherten Satz für zukünftige Wiederherstellungen beibehalten

    false: gespeicherten Satz nach dem Laden verwerfen (Standardeinstellung)

    BOOLEAN:
    true: ok
    false: Fehler

     

    saveModel

    Speichert den aktuellen Zustand der Schaltung auf der Festplatte ab.

    Bei dieser Funktion wurde ein weiterer optionaler Parameter „copy“ implementiert. Ist dieser Parameter „true“, verhält sich die Funktion wie der Menübefehl „Kopie speichern unter“, d.h. eine Kopie des Modells wird unter einem anderen Namen abgespeichert, ohne zu dieser Datei zu wechseln. .

    1: STRING: Dateiname mit Pfad (optional; wenn leer, wird die Datei an derselben Stelle wie zuvor gespeichert)

    2:BOOLEAN: "copy=true":
    (optionaler Parameter)eine Kopie des Modells wird
    abgespeichert, wird der Parameter nicht angegeben, wird der Standardwert false verwendet

     

    BOOLEAN:
    true: ok
    false: Fehler

    saveModel;

    saveModelVariables

    Mit den Funktionen saveModelVariables und saveProfileVariables kann man die aktuellen Werte aller Modell- bzw. Profilvariablen intern zwischenspeichern. Mit den Funktionen restoreModelVariables bzw. restoreProfileVariables kann man sie dann zu einem späteren Zeitpunkt herstellen.

    Es ist auch möglich, mehrere Stände zwischenzuspeichern. Die Funktionen saveModelVariables und saveProfileVariables liefern zu diesem Zweck einen Index als Rückgabewert, der dann bei den Restore-Funktionen angegeben werden muss.

    Standardmäßig wird nach einem Restore der Zwischenstand gelöscht. Man kann sich den Zwischenstand jedoch sichern (falls später eine erneute Wiederherstellung erforderlich ist), in dem man das 2. Argument der Restore-Funktion „keepEntryForFurtherRestores“ auf „true“ setzt.

    -

    INTEGER: Index für die Wiederherstellung

     

    saveProfileVariables

    -

    INTEGER: Index für die Wiederherstellung

     

    setCalcState

    setzt den Berechnungsstatus einer Komponente, d.h. ob eine Komponente für die Berechnung herangezogen oder lediglich als passive Grafik verwendet werden soll

    1: STRING
    Name der Komponente

    2:INTEGER:
    Berechnungsstatus:
    0: nur passive Grafik
    1: aktiv für Berechnung

    BOOLEAN:

    setCalcState( "Randwert", 1 );

    setColor

    Diese Funktion ermöglicht es, die Farben eines Objekts (Komponente, Leitung, Textfeld) zu setzen.

    Durch den dritten optionalen Parameter „colorIndex“ wird gesteuert, welche der vier Farben „Farbe 1“ – „Farbe 4“ geändert wird:
    colorIndex = 0 : Farbe 1
    colorIndex = 1 : Farbe 2
    colorIndex = 2 : Farbe 3
    colorIndex = 3 : Farbe 4
    Wird der Parameter „colorIndex“ weggelassen, dann wird Farbe 1 geändert.
    Die Farbe muss als RGB-Wert im Format $00bbggrr angegeben werden, wobei bb, gg, rr jeweils von 0 bis $ff laufen können und den Blau-, Grün- bzw. Rotanteil angeben.
    Beispiele:
    $00ff0000 = 16711680 reines Blau
    $0000ff00 = 65280 reines Grün
    $000000ff = 255 reines Rot
    $00ffffff = 16777215 Weiß
    Alternativ kann auch eine der Farben der Standard-Palette angegeben werden. Hierzu geben Sie einen Wert von  $01000000 + Palettenindex vor.  
    (Diese entsprechen den Werten der Standardfarben in der Eigenschaften-Leiste unter Layout.)

    1: STRING:
    Name des Objekts

    2: INTEGER:
    Farbkennung (siehe links)

    3: INTEGER:
    Colorindex

    -

    setColor ( "Randwert", $000000ff);
    // ändert Hintergrundfarbe des Bauteils in rot
    setColor ( "Heliostatenfeld", $00ffffc0, 1 );
    // ändert Farbe der Heliostaten in helles türkis
    setColor ( "Heliostatenfeld", 01000000 );
    // ändert Hintergrundfarbe der Heliostaten auf Palettenindex 0 (schwarz)

    setColor ( "Heliostatenfeld", $01000001, 1 );
    // ändert Farbe der Heliostaten auf Palettenindex 1 (weiß)
    setColor( "Boundary Value", 255 );

    setEbsScriptOutputfilename

    Setzt den EbsScript-Ausgabedateipfad auf einen bestimmten Pfad und bestimmt, ob ein Zeitstempel an die Ausgabe-Datei angehängt wird.

    1: STRING:
    Gewünschter Pfad

    2:BOOLEAN
    true: Timestamp anhängen
    false: Kein Timestamp

    -

    setEbscriptOutpufilename ("C:\\Temp\\Test", false);

    setModelEbsScriptOutputfilename

    Leitet für dieses Modell die EbsScript-Ausgabe in die angegebene Datei um. Die für die übrigen Modelle gesetzte EbsScript-Ausgabedatei wird dadurch nicht geändert.

    1: STRING: Name (mit Pfad) der gewünschten Ausgabedatei

    -

    setModelEbsScriptOutputfilename ("D:\\Temp\\EbsScript.txt");

    setModelTime

    Diese Funktion ermöglicht das Setzen der Modellzeit. Diese wird normalerweise beim Empfang von Daten von EposInterface oder EposArchive gesetzt, kann aber bei Bedarf auch explizit modifiziert werden.

    1: STRING:
    Gewünschte Modellzeit als Text im Format
    Tag.Monat.Jahr
    Stunde:Minute:Sekunde

    -

    setModelTime( "01.12.2004 16:30:00" );

    setModelTimeForArchiveId

    Diese Funktion ermöglicht das Setzen der Modellzeit für einen bestimmten Archivtopf.

    1: INTEGER:
    Id des Archivtopfes

    2: STRING:
    Gewünschte Modellzeit als Text im Format
    Tag.Monat.Jahr
    Stunde:Minute:Sekunde

    -

    setModelTimeForArchiveId(300, "01.12.2024 16:30:00" );

    setStandard Color

    Diese Funktion setzt die Farben des Objekts wieder auf den ursprünglichen Zustand zurück

    1: STRING:
    Name des Objekts

    2: INTEGER:

    -

    setStandardColor ( "Randwert" );

    setText

    setzt den Text, der in ein Textobjekt eingetragen wird

    1: STRING:
    Name des Textobjekts

    2: STRING:
    Einzutragender Text

    -

    setText( "Textobjekt",  "Dies ist ein Test-Text" );

    setVisibleState

    setzt den Sichtbarkeitsstatus eines Objekts, d.h. blendet Objekte aus oder macht sie sichtbar.

    1: STRING:
    Name des Objekts

    2:INTEGER:
    Sichtbarkeitszustand:
    0: Objekt ist unsichtbar
    1: Objekt ist sichtbar

    -

    setVisibleState( "Randwert", 1);

    switchShiftView

    Mit der Funktion switchShiftView kann die Wartenansicht auf ein bestimmtes Bild umgeschaltet werden.

    1: INTEGER: Index des gewünschten Bildes

    BOOLEAN:

     

    updateModel

    Aktualisiert die Anzeige auf dem Bildschirm.

    1: BOOLEAN:

    2: BOOLEAN:

    -

    updateModel;

    Im Gegensatz zu "printModel" erzeugen die Funktionen ”print” und ”printToString” keine Ausgabe auf dem Drucker, sondern werden lediglich intern verwendet. Sie finden diese Funktionen in den Kapiteln Einfache Ein-/Ausgabe-Funktionen beziehungsweise String-Funktionen.

    Für die Leitungstypen sind folgende Kennzahlen definiert:

    0

    Alle Leitungen

    1

    Luft

    2

    Rauchgas

    3

    Dampf

    4

    Wasser

    5

    Sollwert

    6

    Istwert

    7

    Rohgas

    8

    Öl

    9

    Elektro

    10

    Mechanische Welle

    11

    Kohle

    12

    Gas

    13

    Logik

    14

    Benutzerdefiniert

    15

    2-Phasen Fluid gasförmig

    16

    2-Phasen Fluid flüssig

    17

    Salzwasser

    18

    Universalfluid

    19

    Binäres Gemisch

    20

    Thermoliquid (Öl / Schmelze)

    21

    Feuchte Luft

    22

    NASA