IEC 61131-3 Programming Environment

IEC 61131-3 Programming Environment

Previous chapter Next chapter Show all Show all Hide all Hide all

Warnning : Not all functions and not all features listed in this document are all supported by
ICP DAS Win-GRAF PACs. Some of them are not supported.
Please refer the PAC datasheet and Win-GRAF user manual for details.

Noch in diesem Kapitel

Der Arbeitsbereich

Das Hauptfenster

Workbench Arbeitsbereich

Programme definieren

Variableneditor

Programme bearbeiten

Quick Search

Lesezeichen

Projekt Eigenschaften

Projekt kompilieren

Konfiguration

Online Change

Definitionen

Ausführung der Anwendung

Feldbus Konfiguration

Tools

Ressourcen

Applikationen vernetzen - Binding

Sourcecode des Projekts uploaden

Bibliotheken
Please contact us for any questions or comments: service@icpdas.com


Der Arbeitsbereich

IEC 61131-3 Programming Environment -> Der Arbeitsbereich

Im Arbeitsbereich können Sie mehrere Projekte editieren. Projekte eines Arbeitsbereichs werde im rechten Bereich der Workbench mit ihrem Inhalt (Programme, Listen...) angezeigt. Die Projekte welche in der Workbench editiert werden werden als "Projektliste" in den Menü-Befehlen bezeichnet.

Es wird jedes Projekt in einem Ordner auf der Festplatte gespeichert. Sämtliche relevanten Informationen über ein Projekt werde in diesem Ordner abgelegt. Die Liste selbst wir in einer Datei mit der Endung ".W5L" abgespeichert, in welcher die Liste der Projekt-Ordner und ein paar Konfigurationsdaten enthalten sind. Somit können Projekte in der Projektliste einfach verschoben und neu angeordnet werden. Projekt-Ordner werden üblicherweise im selben Ort wie die .W5L Datei abgelebt, können aber auch anderswo auf der Festplatte oder im Netzwerk liegen.

Arbeiten mit Projektlisten

Verwenden Sie den Befehl des "Datei" Menüs für die Verwaltung von Projektlisten. Es können zu Projektlisten entweder neue Projekte oder existierende Projekte hinzugefügt werden. Wird ein Projekt von der Liste entfernt, wird der Projekt-Ordner NICHT gelöscht, sondern verbleibt auf der Festplatte.

Das Start Projekt

Eines der Projekte ist im Arbeitsbereich-Fenster fett markiert. Das ist das "Start Projekt". Das Start Projekt ist jenes welches im Online- oder Simulationsmodus verwendet wird. Es kann immer nur jeweils ein Projekt getestet werden. Um das Start Projekt zu ändern, wählen Sie ein Projekt im Arbeitsbereich-Fenster und führen den Befehl "Als Start Projekt setzen" im Kontextmenü (rechter Mausklick) aus.

Verwenden von Projekten älterer Versionen

Um ein Projekt einer älteren Workbench-Version zu editieren müssen Sie:

1- Eine neue Projektliste erstellen

2- Den Befehl "Einfügen / Bestehendes Projekt" ausführen und einen Ordner auswählen in dem das Projekt gespeichert werden soll.

Bei der Erstellung einer neuen Projektliste werden Sie zur Eingabe eines .W5L Dateinamens aufgefordert. Es wird empfohlen diese Datei am selben Ort wie der des Projekt-Ordners abzulegen.


Das Hauptfenster

IEC 61131-3 Programming Environment -> Das Hauptfenster

Die Toolbar des Hauptfensters beinhaltet die wichtigsten Befehle der Workbench:

Icon | Beschreibung
 | Neues Dokument erstellen.
 | Ausgewähltes Dokument öffnen.
 | Aktives Dokument speichern.
 | Inhalt des aktiven Fensters drucken.
 | Aktuelle Auswahl ausschneiden.
 | Aktuelle Auswahl kopieren.
 | Inhalt der Zwischenablage einfügen.
 | Aktuelle Auswahl löschen.
 | Inhalt des aktiven Fensters löschen.
 | Liste der I/O Boards editieren.
 | Feldbus Konfiguration starten.
 | Syntax des aktiven Dokuments überprüfen.
 | Projekt kompilieren.
 | Batch-Download (alle editierten Projekte downloaden).
 | Simulation starten.
 | Im Online Modus debuggen.

In der Statusleiste des Fensters finden Sie eine kleine Box für die Text Suche innerhalb des Fensters.

Ebenfalls in der Statusleiste finden Sie Kommunikationsparameter zum Online Test. Mit einem Doppelklick in diesen Bereich können Sie die Kommunikationsparameter verändern.


Workbench Arbeitsbereich

IEC 61131-3 Programming Environment -> Workbench Arbeitsbereich

Previous chapter Next chapter Show all Show all Hide all Hide all

Hier sind die wichtigsten Bereiche des Workbench Arbeitsbereichs beschrieben:

  1. In diesem Bereich werden Dokumente angezeigt und bearbeitet (Programme, Watch-Listen, Grafik...).
  2. Der Arbeitsbereich: Dokumente werde in dieser Liste angelegt und geöffnet.
  3. Im Ausgabefenster zeigt Meldungen and und stellt die meisten Diagnose-Tools zur Verfügung.
  4. Im Variablen Editor werden Variablen und Instanzen deklariert.
  5. Das Eigenschaften-Raster und die Z-Anordnung werden für die Projektierung der Grafik Dokumente verwendet.
  6. Der Reiter Bibliotheken listet alle verfügbaren Funktionen und Funktionsblöcke auf.
  7. Im Spion können die Online-Werte während des Debuggings schnell dargestellt werden.
  8. Der Abschnitt Definitionen zeigt alle Definitionen.
  9. Der Abschnitt Grafik listet alle Grafischen Objekte.

Jeder Bereicht (außer Bereich 1) kann mit den Befehlen aus dem Menü Ansicht ausgeblendet oder angezeigt werden.

Im mittleren Bereich befinden sich die Dokumente des Arbeitsbereichs. Sind mehrere Dokumente gleichzeitig geöffnet, kann über die Reiter am unter Ende des Bereichs zwischen den Dokumenten umgeschaltet werden. Mit dem [image] Button in der Kopfleiste kann das aktive Dokument geschlossen werden.

Der Variablen Editor und der Dokumenten-Bereich in der Mitte können zu jeder Zeit über den Button [image] oder einen Doppelklick in der Kopfleiste maximiert werden.

Sind mehrere Dokumente im mittleren Bereich geöffnet, kann eines davon im oberen oder linken Berech fixiert werden. Dafür klicken Sie mit der rechen Maustaste auf den entsprechenden Reiter und wählen Fixieren. Mit dem selben Menü könne Sie zu jeder Zeit die Fixierung eines Dokuments aufheben oder ein anders fixieren:

Der Name des aktiven Dokuments wird im Reiter fett geschrieben. Der Name des fixierten Dokumentes wird im Reiter kursiv geschrieben.


Programme definieren

IEC 61131-3 Programming Environment -> Programme definieren

Programme werden im Arbeitsbereich auf der linken Seite des Workbench Hauptfensters verwaltet. Um Programme zu bearbeiten, aktivieren Sie den Arbeitsbereich und wählen Sie den Reiter Programme.

Hier können Sie Programme und User Defined Function Blocks (UDFBs) für Ihre Applikation anlegen und verwalten. Der Arbeitsbereich listet alle Programme und UDFBs auf und sortiert diese zunächst in alphabetischer Reihenfolge.

Programme anlegen

Icon | Beschreibung
 | Klicken Sie auf diesen Button um ein neues Programm anzulegen. Bitte wählen Sie die Programmiersprache aus in der Sie das Programm schreiben wollen. Die Programmiersprache eines Programms kann später mittels Programmkonvertierung geändert werden. Sie können auch ein Child Programm für ein ausgewähltes SFC Programm anlegen.

Wird ein Programm oder UDFB neue angelegt, müssen diverse Eigenschaften festgelegt werden. Ein Wizard hilf dabei:

  • Die Bezeichnung und Hauptattribute des Programms
  • Die erweiterten Programmeigenschaften für die Runtime Ausführung
  • Die Beschreibung

Der selbe Dialog kann später für die Umbenennung eines Programms, Änderung der Eigenschaften und der Beschreibung verwendet werden.

Der Dialog enthält nun auch einen Wizard für die Definition bzw. Anordnung der Input- und Output-Parameter von UDFBs und Unterprogrammen.

Im Dialog der Programmeigenschaften finden Sie auch die Möglichkeit Programme gegen Veränderung zu schützen.

Programme müssen eindeutige Namen haben. Der Name darf kein reserviertes Schlüsselwort der Programmiersprachen oder die Bezeichnung einer Standard- oder C-Funktion (Funktionsbaustein) sein. Eine Variable darf nicht den Namen einer bereits deklarierten Variable haben. Der Name eines Programms muss mit einem Buchstaben oder einem Underscore ("_") beginnen. Die weiteren Zeichen können Buchstaben, Ziffern oder Underscores sein. Es ist nicht erlaubt zwei aufeinander folgende Underscores in einem Namen zu führen. Auf Groß-/Kleinschreibung wird NICHT geachtet. Zwei gleich lautende Namen mit unterschiedlicher Schreibweise werden als die selben interpretiert.

Programme öffnen

Drücken Sie Enter oder klicken Sie auf ein Programm um es mit dem entsprechenden Editor zu öffnen. Ein geöffnetes Programm kann nicht umbenannt oder gelöscht werden.

Programme Kopieren

Um ein ausgewähltes Programm zu duplizieren verwenden Sie bitte den Befehl Datei/Kopieren. Der Befehl "Kopieren" kann nicht für das Entfernen eines bestehenden Programms verwendet werden. Sie müssen für die Kopie einen neuen Programmnamen eingeben.

Gruppieren von Programmen

Der Default-Arbeitsbereich zeigt alle Programme in alphabetischer Reihenfolge. Sie können die Programme frei in Ordnern gruppieren. Verwenden Sie den Neuer Ordner Befehl im Kontextmenü (rechter Mausklick) um einen neuen Ordner anzulegen. Klicken Sie einfach auf den Ordnernamen um diesen umzubenennen. Sie können mehrere Ebenen von Ordner anlegen.

Per Drag-and-Drop werden die Programme den Ordnern zugeordnet. Programme, Unterprogramme und UDFBs können gemeinsam in einem Ordner liegen. Innerhalb des Ordners werden alle Elemente in alphabetischer Reihenfolge sortiert.

Ausführungssequenz definieren

Verwenden Sie den Befehl Zyklus Kontextmenü (rechter Mausklick) um die Ausführungsreihenfolge mehrerer Programme zu definieren. Der Dialog zeigt die Liste der Hauptprogramme in der Ausführungsreihenfolge. Sie können:

  • mit dem Verschieben Button die Reihenfolgen der Programmausführung innerhalb des Zyklus' verändern.
  • mit dem Auswählen Button bestimme Sie ob ein Programm im Zyklus ausgeführt werden muss oder nicht. Nicht ausgewählte Programme werden beim Compiler-Lauf nicht berücksichtigt werden mit einem roten Kreuz im Arbeitsbereich angezeigt.
  • mit den Erhöhen/Reduzieren Buttons verändern Sie die die Periode oder die Phase (je nach Auswahl) des Programms im Scheduler. Damit kann definiert werden ob Programme jeden, jeden zweiten, jeden dritten usw. Zyklus ausgeführt werden. Weitere Details finden Sie unter Programm Eigenschaften - Erweitert.

Noch in diesem Kapitel

Programm Eigenschaften

Programm Eigenschaften - Input/Output Parameter

Programm Eigenschaften - Erweitert

Programm Eigenschaften - Beschreibung

Schützen von Programmen

Programme in andere Sprachen konvertieren


Programm Eigenschaften

IEC 61131-3 Programming Environment -> Programme definieren -> Programm Eigenschaften

Previous chapter Next chapter Show all Show all Hide all Hide all

In diesem Dialog können Sie die Eigenschaften eines Programms bzw. Funktionsblocks definieren. Sehen Sie auch die Beschreibung der Program Organization Units (POU) für nähere Angaben für die unterschiedliche Arten von of POUs.

Ein Programm wird durch einen eindeutigen Namen bezeichnet. Sie könne dem Programm eine einzeilige Beschreibung anfügen. Der Programmname darf nur mit Buchstaben oder einem Underscore ("_") beginnen. Der Programmname darf nicht mit zwei Underscores beginnen. Groß-/Kleinschreibung wird im Programmnamen nicht berücksichtigt.

Wird eine neue POU erstellt, muss die Programmiersprache ausgewählt werden. Die Programmiersprache kann später nicht gewechselt werden.

Folgende Ausführungsmodi stehen für den POU zur Verfügung:

  • Hauptprogramm (wird in jedem Zyklus aufgerufen)
  • Unterprogramm (wird ausschließlich von anderen Programmen aufgerufen)
  • UDFB (User Defined Function Block)
  • SFC Child Programm (wird durch ein SFC Parent Programm aktiviert)

Für ein SFC Child Programm muss ein SFC Parent Programm selektiert werden. Dieses SFC Parent Programm kann später gewechselt werden.


Programm Eigenschaften - Input/Output Parameter

IEC 61131-3 Programming Environment -> Programme definieren -> Programm Eigenschaften - Input/Output Parameter

Previous chapter Next chapter Show all Show all Hide all Hide all

Im Programm Eigenschaften Dialog können Input und Output Parameter von UDFB und Unterprogrammen einfach definiert und eingerichtet werden.

Der Dialog zeigt zwei Listen, jeweils für Inputs und Outputs. Jeder Parameter besitzt einen Namen, einen Datentyp, eine Dimension und einen Beschreibungstext. Verwenden Sie die folgenden Befehle im Dialog:

Editieren: Klicken Sie diesen Button um die ausgewählte Definition zu ändern. Wird dieser Button geklickt wenn die letzte Zeile (...) markiert ist, kann ein neuer Parameter hinzugefügt werden.

Löschen: Klicken Sie diesen Button um den ausgewählten Parameter zu löschen.

Zeile hinauf / Zeile Hinunter: Klicken Sie diesen Button um den ausgewählten Parameter in der Liste zu verschieben. Damit verändern Sie die Reihenfolge der Parameter. Die Reihenfolge bestimmt die Aufrufreihenfolge der Parameter im UDFB oder Unterprogramm.

info Info

Input/Output Parameter können auch direkt in der Variablenliste eingetragen werden.


Programm Eigenschaften - Erweitert

IEC 61131-3 Programming Environment -> Programme definieren -> Programm Eigenschaften - Erweitert

Previous chapter Next chapter Show all Show all Hide all Hide all

In diesem Dialog können Sie die erweiterten Eigenschaften eines Hauptprogramms verändern.

Ein Hauptprogramm kann aktiv oder inaktiv geschaltet werden. Ein inaktive Programm wird vom Compiler nicht berücksichtigt.

Ausführungsmodus

Sie können definieren in welchem Zyklus die Programme der Applikation ausgeführt werden sollen (Periodisch ausführen): Die default Periode ist "1". Das Programm wird in jedem Zyklus ausgeführt. Erhöhen Sie die Periode, so wird dieses Programm seltener und andere Programme öfter ausgeführt.

Sie könne folgendes definieren:
Den Zeitraum (die Periode - wie viele Zyklen liegen zwischen zwei Programmaufrufen - 1:keiner; 2:einer; 3:zwei,...)
Die Phase (ein Offset für seltener aufgerufenen Programme - so kann die Zykluslast verringert werden)

Erweitert

Diese Parameter sind für spezielle Runtimes reserviert und sollten bei Verwendung einer Standard Win-GRAF PAC driver nie verändert werden.


Programm Eigenschaften - Beschreibung

IEC 61131-3 Programming Environment -> Programme definieren -> Programm Eigenschaften - Beschreibung

Previous chapter Next chapter Show all Show all Hide all Hide all

Zusätzlich zur einzeiligen Beschreibung in der Programmliste kann hier eine mehrzeilige Beschreibung des Programms verfasst werden. Sie haben die Möglichkeit:

  • Das Verhalten und die Programmierweise zu beschreiben.
  • Eine Änderungshistorie einzufügen.
  • Richtlinien festzuhalten, wenn die POU in anderen Applikationen zur Anwendung kommen soll.


Schützen von Programmen

IEC 61131-3 Programming Environment -> Programme definieren -> Schützen von Programmen

Previous chapter Next chapter Show all Show all Hide all Hide all

Im Karteireiter Schutz in der Dialogbox Programmeigenschaften können Programme, Unterprogramme und UDFBs gegen Veränderung geschützt werden.

Um ein Programm zu schützen, klicken Sie auf Schutz aktivieren und geben ein Passwort ein. Danach ist das Programm verschlüsselt. Ein geschütztes Programm kann nicht mehr geöffnet und editiert werden. Die Variablen bleiben sichtbar in der Variablenliste, können aber nicht mehr verändert werden.

Um den Schutz zu entfernen klicken sie den Butten Schutz entfernen und geben das Passwort ein, welches beim Aktivieren des Schutz' eingegeben wurde. Das Programm wird so entschlüsselt und kann wieder editiert und modifiziert werden.

info Info

Ein verschlüsseltes Programm wir von folgenden Tools nicht berücksichtigt:

  • Suchen / Ersetzen in Dateien.
  • Projektvergleich.
  • Monitoring Builder.
  • HTML Dokumentation Generator.
  • Step by step Debugging.


Programme in andere Sprachen konvertieren

IEC 61131-3 Programming Environment -> Programme definieren -> Programme in andere Sprachen konvertieren

Previous chapter Next chapter Show all Show all Hide all Hide all

Die Workbench enthält die Möglichkeit Programme von einer IEC Sprache in eine andere IEC Sprache zu konvertieren. Das im Arbeitsbereich ausgewählte Programm kann mit dem Befehl Tools / Programm konvertieren in ein anders übersetzt werden.

Es sind alle Richtungen zwischen ST, IL, LD und FBD möglich. Die Konvertierung von SFC Programmen ist nicht möglich. Es können Programme, UDFBs oder Unterprogramme konvertiert werden.

Vor dem Konvertieren muss ein Programm gespeichert und ohne Fehler kompiliert worden sein.

Wurde ein Programm in eine andere Sprache konvertiert, wird der Code in der Ausgangssprache solange aufbewahrt bis im konvertierten Programm eine Änderung durchgeführt wurde. Dadurch erhält man beim sofortigen Rück-konvertieren den Inhalt des Originals.

info Info

Wird ein Programm konvertiert gehen Darstellungselemente (wie z.B. leere Linien in ST oder Anordnungen in FBD) verloren.

Es ist möglich dass durch die Konvertierung zusätzliche Zwischen-Variablen deklariert werden. Diese Variablen werden lokal deklariert und haben Prefix "_T".


Variableneditor

IEC 61131-3 Programming Environment -> Variableneditor

Variablen werden im oberen rechten Bereich des Workbench Hauptfensters deklariert.

Der Variableneditor ist ein Raster, in dem alle Variablen der Anwendung deklariert werden können. Die Variablen werden im Editor nach Gruppen sortiert:

  • Globale Variablen.
  • Nicht-flüchtige globale "retain" Variablen.
  • I/O Variablen (jede I/O Baugruppe ist eine Gruppe).
  • Programmlokale Variablen (einschließlich der In- und Outputparameter der UDFB).

Für weitere Informationen siehe auch Variablenbeschreibung in den Sprachreferenzen.

Jede Gruppe erscheint in der Variablenliste mit einer grauen Kopfzeile. Das Symbol "-" oder "+" auf der linken Seite des Gruppentitels kann benutzt werden, um die Gruppe im Detail oder komprimiert anzuzeigen:

Mit einem Doppelklick auf die Kopfleiste des Variableneditors können Sie die Spalten sortieren, sichtbar und unsichtbar schalten und Filter für jede Spalte definieren. Filter werden als Textstrings beschrieben und können '?' und '*' als Wildcards enthalten.

Gebrauch des Rasters:

Jede Variable wird beschrieben mit einem:

Neue Variablen erstellen
Bearbeitungsraster benutzen
Variablen nach Gruppen sortieren

I/O Baugruppen definieren
Textbearbeitung
Lesezeichen

Namen

Datentypen und einer Dimension

Attribut

Initialwert

Kennung und Betriebsmittelkennung

Eigenschaften

User Group (*)

info Info

In der Syb Spalte definieren Sie, ob die Variable wie in den Variableneigenschaften als Symbol eingebettet werden soll.

(*) Die User Group ermöglicht logisches Sortieren von Variablen im Raster.

Noch in diesem Kapitel

Neue Variablen erstellen

Variablenliste - Aktives Raster

Variablen sortieren

Eine Variable benennen

Datentyp und Dimension einer Variablen

Variablenattribute

Initialwert einer Variablen

Variablen-Tag und -Beschreibung

I/O Geräte

Variableneigenschaften

Variablen als Text bearbeiten


Neue Variablen erstellen

IEC 61131-3 Programming Environment -> Variableneditor -> Neue Variablen erstellen

Previous chapter Next chapter Show all Show all Hide all Hide all

Klicken Sie auf die Schaltfläche INSERT im Variableneditor, um eine neue Variable in der ausgewählten Gruppe zu erstellen. Die Variable wird am Ende der Gruppe hinzugefügt. Variablen werden mit einem Vorgabenamen erstellt. Sie können die neue Variable umbenennen oder ihr Attribut im Variablenbearbeitungsraster modifizieren.

Sie können neue Variablen nicht in eine I/O Gruppe einfügen.

Bei einer Gruppe bestehend aus lokalen Variablen eines UDFBs haben Sie die Wahl zwischen den folgenden Aktionen, wenn Sie auf INSERT klicken:

  • einen "IN" (Inputparameter) hinzufügen.
  • einen "OUT" (Outputparameter) hinzufügen.
  • eine private Variable hinzufügen.

IN- und OUT-Parameter erscheinen stets am Anfang einer UDFB-Gruppe.


Variablenliste - Aktives Raster

IEC 61131-3 Programming Environment -> Variableneditor -> Variablenliste - Aktives Raster

Previous chapter Next chapter Show all Show all Hide all Hide all

Klicken Sie auf diese Schaltfläche oder drücken Sie die LEERTASTE, um das aktive Raster zu aktivieren oder zu deaktivieren.

Der Variableneditor ermöglicht die direkte Eingabe sämtlicher Daten in den Zellen des aktiven Rasters. Das aktive Raster kann jederzeit aktiviert oder deaktiviert werden.

Wenn das Raster deaktiviert ist, erfolgt die Modifizierung einer Variablen über ein Dialogfeld. Drücken Sie ENTER, wenn das Raster inaktiv ist, um das Eingabefeld zum Stellen der Variablen zu öffnen.

Wenn das Raster aktiviert ist, erscheint der Name der ausgewählten Spalte fettgedruckt. Der Text der ausgewählten Zelle (oder ". . ." bei einer leeren Zelle) erscheint in fettgedruckter gelber Schrift:

Die Spaltentrennlinien in der Kopfzeile des Rasters können jederzeit mit der Maus verlagert werden, wenn die Grösse der Spalten verändert werden soll.

Mit Hilfe der folgenden Tastenkombinationen können Variablengruppen durchlaufen werden:

Tastenkombination | Beschreibung
Ctrl + Page Up | Verlagert die Auswahl an den Anfang der vorherigen Gruppe.
Ctrl + Page Down | Verlagert die Auswahl an den Anfang der nächsten Gruppe.


Variablen sortieren

IEC 61131-3 Programming Environment -> Variableneditor -> Variablen sortieren

Previous chapter Next chapter Show all Show all Hide all Hide all

Die Variablen einer Gruppe können jederzeit nach Name, Typ oder Dimension sortiert werden. Sie brauchen nur:

  1. Den Cursor in die Gruppenkopfzeile verlagern.
  2. Auf den Namen der gewünschten Spalte klicken.

Die Workbench behält stets die ursprüngliche Reihenfolge der deklarierten Variablen bei, damit ein Online Change sicher durchgeführt werden kann. Jedes Mal, wenn eine neue Variable eingefügt wird oder wenn eine Gruppe im Detail angezeigt oder komprimiert wird, wird die ursprüngliche Reihenfolge wiederhergestellt.


Eine Variable benennen

IEC 61131-3 Programming Environment -> Variableneditor -> Eine Variable benennen

Previous chapter Next chapter Show all Show all Hide all Hide all

Um den Namen einer Variablen zu ändern, muss der Modifizierungsmodus im Raster aktiviert werden. Dann verlagert man den Cursor auf die ausgewählte Name-Zelle und drückt ENTER oder das erste Zeichen des neuen Names. Der Name wird in ein kleines Eingabefeld eingegeben. Drücken Sie ENTER, um den Namen zu validieren, oder ESCAPE, um die Änderung zu widerrufen.

Eine Variable muss innerhalb ihrer Vatergruppe mit einem einmaligen Namen gekennzeichnet werden, der kein reserviertes Schlüsselwörter der Programmiersprachen oder ein Name von Standard- oder "C"-Funktionen oder -Funktionsbausteinen sein darf. Eine Variable darf auch nicht den gleichen Namen wie ein Programm oder wie ein benutzerdefinierter Funktionsbaustein (UDFB) haben.

Der Name einer Variablen sollte mit einem Buchstaben oder einem Unterstrichzeichen ("_") beginnen, auf das Buchstaben, Zahlen oder Unterstrichzeichen folgen können. Es ist nicht zulässig, zwei Unterstrichzeichen hintereinander in einem Namen zu benutzen. Bei der Benennung wird nicht zwischen Klein- und Glossbuchstaben unterschieden. Zwei gleich lautende Namen, ob klein oder gross geschrieben, werden als derselbe Name betrachtet.

Benennung physikalischer I/Os

Jeder I/O Kanal hat ein vordefiniertes Symbol, das seinen physikalischen Standort kennzeichnet. Dieses Symbol beginnt mit "%I" für einen Input und "%Q" für einen Output, gefolgt von einem Buchstaben, der die physikalische Grösse der Daten identifiziert. Für weitere Informationen siehe Variablen.

Der "%..."-Name einer I/O Variablen kann nicht modifiziert werden, denn er wird entsprechend der in der I/O Baugruppenliste definierten Baugruppen zugewiesen. Sie können jedoch einen Alias (lesbaren Name) für jeden I/O Kanal definieren. In diesem Fall kann entweder der "%"-Name oder der Alias in den Programmen benutzt werden. Für den Alias gelten die gleichen Regeln wie für den Variablennamen.

Wenn ein Alias für eine Variable definiert wurde, erscheinen sowohl der "%..."-Name als auch der Alias in der Name-Spalte des Rasters.


Datentyp und Dimension einer Variablen

IEC 61131-3 Programming Environment -> Variableneditor -> Datentyp und Dimension einer Variablen

Previous chapter Next chapter Show all Show all Hide all Hide all

Um den Typ und die Dimension einer Variablen zu ändern, muss der Modifizierungsmodus im Raster aktiviert werden. Dann verlagert man den Cursor auf die betreffende Zelle und drückt ENTER.

Jede Variable muss einen gültigen Datentyp haben. Das kann entweder ein Basisdatentyp oder ein Funktionsbaustein oder UDFB sein. Die Änderung des Datentyps einer I/O Variablen wird durch die physikalische Implementierung in der I/O Baugruppe beschränkt.

Wenn es sich bei dem ausgewählten Datentyp um STRING handelt, muss die maximale Länge der Zeichenfolge eingegeben werden, die 255 Zeichen nicht überschreiten darf.

Zusätzlich können für eine interne Variable Dimensionen bestimmt werden, um ein Array zu deklarieren. Arrays haben maximal 3 Dimensionen. Alle Indexe sind 0-basiert. Zum Beispiel wird das erste Element eines eindimensionalen Arrays stets durch ArrayName[0] identifiziert. Die Gesamtzahl der Elemente eines Arrays (alle Dimensionen zusammengerechnet) darf 65535 nicht überschreiten.

Mit dem Variableneditor werden ganzzahlige, durch Kommas getrennte Dimensionen eingegeben. Zum Beispiel: 3,10,5.


Variablenattribute

IEC 61131-3 Programming Environment -> Variableneditor -> Variablenattribute

Previous chapter Next chapter Show all Show all Hide all Hide all

Jede Variable besitzt ein Attribut, das in der entsprechenden Spalte des Rasters angezeigt wird. Physikalische I/Os werden entweder als Input oder Output markiert. Inputs sind read-only Variablen. Für alle internen Variablen können Sie Read Only wählen. Ansonsten ist die Attribut-Spalte einer internen Variablen leer. Die Parameter der User Defined Function Blocks werden entweder als IN oder OUT markiert.

Um das Attribut einer internen Variablen zu ändern, muss der Modifizierungsmodus im Raster aktiviert werden. Dann verlagert man den Cursor auf die ausgewählte Attribut-Zelle und drückt ENTER, um das Attribut Read Only zu stetzen oder rückzusetzen.


Initialwert einer Variablen

IEC 61131-3 Programming Environment -> Variableneditor -> Initialwert einer Variablen

Previous chapter Next chapter Show all Show all Hide all Hide all

Eine Variable kann einen Initialwert haben. Der Wert muss ein gültiger Konstantenausdruck sein, der zum Datentyp der Variable passt. Der Initialwert erscheint in rot, wenn er kein gültiger Ausdruck für den ausgewählten Datentyp ist.

Arrays und Funktionsbaustein-Instanzen haben keinen Initialwert.

Um den Initialwert einer Variablen zu modifizieren, muss der Modifizierungsmodus im Raster aktiviert werden. Dann verlagert man den Cursor auf die ausgewählte Initialwert-Zelle und drückt ENTER, um den neuen Wert einzugeben.


Variablen-Tag und -Beschreibung

IEC 61131-3 Programming Environment -> Variableneditor -> Variablen-Tag und -Beschreibung

Previous chapter Next chapter Show all Show all Hide all Hide all

In der Workbench können Sie für jede Variable zwei Zeichenfolgen eingeben, die die Variable beschreiben:

  • Das Tag ist ein kurzer Kommentar, der zusammen mit dem Variablennamen in den Grafiksprachen angezeigt werden kann.
  • Die Beschreibung ist ein längerer Kommentartext, der die Variable beschreibt.

Um das Tag oder die Beschreibung einer Variablen zu ändern, müssen Sie den Modifizierungsmodus im Raster aktivieren und den Cursor auf die entsprechende Zelle verlagern. Drücken Sie dann ENTER, um den neuen Text einzugeben.


I/O Geräte

IEC 61131-3 Programming Environment -> Variableneditor -> I/O Geräte

Previous chapter Next chapter Show all Show all Hide all Hide all
Icon | Beschreibung
 | Klicken Sie diesen Button im Hauptfenster um den I/O Geräte Editor zu öffnen.

Der I/O Geräte Editor läuft in einem eigenen Dialog. Er wird für die Deklaration und Einstellung von I/O Geräten verwendet und stellt die Verbindung zwischen den Applikations-Variablen und dem physikalischen Equipment her.

Die Liste zeigt die möglichen Steckplatznummern zwischen 0 und 255. Wählen Sie einen Steckplatz aus und:

  • Drücken Sie ENTER, um den Typ der I/O Baugruppe, die an diesem Steckplatz untergebracht werden soll, auszuwählen oder zu ändern. Im Selektionsfeld sind die Baugruppen nach Kategorien sortiert. Klicken Sie auf Alle, um die vollständige Liste der verfügbaren Baugruppen anzuzeigen. Die Beschreibung der ausgewählten Baugruppe wird im Selektionsfenster angezeigt. Doppelklicken Sie auf die Baugruppe oder drücken Sie ENTER, um diese Baugruppe auszuwählen. Drücken der ESC-Taste bricht die Operation ab.
  • Drücken Sie F2 oder leiten Sie den Menübefehl Bearbeiten / Umbenennen ein, wenn Sie den Namen der Baugruppe ändern wollen. I/O Baugruppen können beliebige Namen haben.
  • Drücken Sie die Tastenkombination Alt+ENTER oder leiten Sie den Menübefehl Bearbeiten / Eigenschaften ein, um die physikalischen Eigenschaften der Baugruppe einzurichten. Siehe OEM Anleitung für ausführliche Informationen zu den Eigenschaften der I/O Baugruppe.
  • Drücken Sie die LEERTASTE oder stellen Sie die ausgewählte Baugruppe auf Virtuell oder Reell (normal). Eine virtuelle Baugruppe ist nicht an physikalische Operationen angeschlossen und wird bei der Ausführung als eine Gruppe interner Variablen verarbeitet. Der Gebrauch virtueller Baugruppen ermöglicht das Testen Ihrer Anwendung, selbst wenn die eigentliche Hardware noch nicht zur Verfügung steht. Virtuelle Baugruppe erscheinen in der Baugruppenliste in blau und in Klammern:

Es gibt einfache und komplexe I/O Baugruppen. Eine einfache I/O Baugruppe besteht aus einer Gruppe von I/O Kanälen. Alle Kanäle dieser Baugruppe haben konsistente Datentypen, die gleiche Richtung (Input oder Output) und sind ab 0 nummeriert. Eine komplexe I/O Baugruppe ist eine Liste einfacher Baugruppen und besteht gewöhnlich aus Baugruppen verschiedener Typen/Richtungen.


Variableneigenschaften

IEC 61131-3 Programming Environment -> Variableneditor -> Variableneigenschaften

Previous chapter Next chapter Show all Show all Hide all Hide all

Die Workbench gibt Ihnen die Möglichkeit, für jede Variable zusätzliche Informationen in den Anwendungscode einzubetten. Leiten Sie den Befehl Bearbeiten / Eigenschaften ein, wenn eine Variable im Raster ausgewählt ist, um ihre Eigenschaften in einem separaten Dialogfeld zu bearbeiten. Sie können auch die Menüoption Ansicht / Eigenschaften aktivieren, um die Variableneigenschaften in einer zusätzlichen Rasterspalte anzuzeigen.

Publishing-Eigenschaften

Wählen Sie die Registerkarte Publishing, um die Informationen einzugeben, die in die Zielsystem-Anwendung eingebettet und publiziert werden sollen. Für jede Variable können folgende Daten eingebettet werden:

  • Das Variablensymbol.
  • Ein Profilname.
  • Eine Liste OEM-definierter Eigenschaften.

Die Liste der Eigenschaften wird in einem Raster unten im Dialogfeld eingegeben und entspricht dem ausgewählten Profil. Siehe OEM-Anleitung für eine ausführliche Beschreibung der verfügbaren Profile.

Wenn ein Wert in der Liste der Eigenschaften geändert werden soll, doppelklickt man auf eine Zeile oder drückt das erste Zeichen des Werts. Drücken Sie ENTER, um den Wert zu validieren oder ESCAPE, um die Änderung zu widerrufen.


Variablen als Text bearbeiten

IEC 61131-3 Programming Environment -> Variableneditor -> Variablen als Text bearbeiten

Previous chapter Next chapter Show all Show all Hide all Hide all

Als Alternative zur Variablenbearbeitung im benutzerfreundlichen Raster können Variablen auch als Text deklarieren werden. Die Textbearbeitung bezieht sich auf alle Variablen einer Gruppe. Diese Gruppe darf keine I/O Gruppe sein. Während der Textbearbeitung bleibt die Gruppe mit allen dazugehörigen Variablen im Raster verriegelt, so dass keine Änderungen über andere Fenster eingegeben werden können.

Um eine Gruppe von Variablen als Text zu bearbeiten, wählen Sie die Gruppe im Raster aus und wählen Sie den Befehl Tools / Variablen als Text bearbeiten.

Für die Variablenbeschreibung stehen verschiedene Syntaxformen zur Verfügung:

Syntax | Beschreibung
IEC61131-3 | Die ursprüngliche IEC61131-3 Syntax für die Variablendeklaration
XML tags | Eine einfache XML Struktur mit Identifizierer und Attributen
CSV | Das CSV Format (Trennzeichen: Semikolon)

Noch in diesem Kapitel

Variablen als Text bearbeiten (IEC61131-3 Syntax)

Variablen als XML Identifizierer bearbeiten

Variablen als Text bearbeiten (CSV Format)


Variablen als Text bearbeiten (IEC61131-3 Syntax)

IEC 61131-3 Programming Environment -> Variableneditor -> Variablen als Text bearbeiten -> Variablen als Text bearbeiten (IEC61131-3 Syntax)

Previous chapter Next chapter Show all Show all Hide all Hide all

In der IEC61131-3 Syntax werden die Variablen innerhalb von strukurierten Blöcken deklariert. Jeder Block beginnt mit dem Schlüsselwort VAR, VAR_INPUT, VAR_OUTPUT oder VAR_EXTERNAL und endet mit dem Schlüsselwort END_VAR (ohne nachfolgendes Semikolon). Es folgen die Bedeutungen der einzelnen Schlüsselwörter:

Schlüsselwort | Bedeutung
VAR | Speichervariablen. Sie können, abhängig von der bearbeiteten Gruppe, global, lokal oder nicht-flüchtig (RETAIN) sein.
VAR_INPUT | Inputparameter eines Bausteins. Sind nur verfügbar, wenn es sich bei der bearbeiteten Gruppe um einen UDFB handelt.
VAR_OUTPUT | Outputparameter eines Bausteins. Sind nur verfügbar, wenn es sich bei der bearbeiteten Gruppe um einen UDFB handelt.
VAR_EXTERNAL | Externe Variablen. Sie können, abhängig von der bearbeiteten Gruppe, global, lokal oder nicht-flüchtig (RETAIN) sein.

Basissyntax der Variablendeklaration

Um eine Variable zu deklarieren, gibt man einfach ihr Symbol ein, gefolgt von ":" und ihrem Datentyp. Wenn der Datentyp STRING ist, wird die maximale Länge der Zeichenfolge in Klammern dahintergeschrieben.

Example Example

MyVar : BOOL;
MyString : STRING(255);

Um zu kennzeichnen, dass eine Variable das read-only Attribut besitzt, wird das Schlüsselwort CONSTANT an den Anfang der Variablendeklaration gesetzt:

CONSTANT VarName : DataType;

Um ein Array zu deklarieren, muss dem Datentyp "ARRAY [ dimensions ] OF" vorangehen. Es gibt maximal 3 Dimensionen, die durch Kommas getrennt werden. Jede Dimension wird als "0 .. MaxBound" spezifiziert.

Example Example

Array1 : ARRAY [0 .. 99] OF DINT;
Matrix : ARRAY [0 .. 9, 0 .. 9, 0 .. 9] OF REAL;

Zusätzlich kann für eine einzelne Variable ein Initialwert deklariert werden. Der Initialwert wird nach dem Datentyp geschrieben, ihm geht das Zeichen ":=" voran. Der Initialwert muss ein gültiger Konstantenausdruck sein, der zum Datentyp passt.

Example Example

MyBool : BOOL := TRUE;
MyString : STRING(80) := 'Hello';
MyLongReal : LREAL := lreal#1.0E300;

Zusätzliche Informationen und Beschreibungstexte

Da eine Variable zusätzliche Eigenschaften und Kommentartexte in der Workbench haben kann, werden spezielle Anweisungen benutzt, die als IEC Kommentare NACH der Deklaration der Variablen eingegeben werden, um zusätzliche Informationen zu spezifizieren. Folgende Anweisungen stehen zur Verfügung:

Anweisung | Beschreibung
(*$tag=Text*) | Variablenidentifizierer (kurzer Kommentar).
(*$desc=Text*) | Variablenbeschreibung.
(*$profile=ProfileName*) | Eingebettetes Variablenprofil.
(*$embed=Text*) | Eingebettete Variableneigenschaften (die Syntax erscheint im Variablenraster in der Spalte Eigenschaften).

Sie können auch einzeilige Kommentare "//" benutzen, um die Anweisungen einzugeben:

//$tag=Text
//$desc=Text
//$profile=ProfileName
//$embed=Text


Variablen als XML Identifizierer bearbeiten

IEC 61131-3 Programming Environment -> Variableneditor -> Variablen als Text bearbeiten -> Variablen als XML Identifizierer bearbeiten

Previous chapter Next chapter Show all Show all Hide all Hide all

Variablen können mit Hilfe einer einfachen XML Struktur beschrieben werden, in der jede Variable als ein XML Identifizierer (tag) beschrieben wird. Die Datei muss der XML Basissyntax entsprechen. Die Werte der Identifizierer-Attribute werden zwischen doppelten Anführungszeichen eingegeben. Die Zeichen < > " ' & sind reservierte Zeichen der XML und dürfen nicht in den Werten der Identifizierer-Attribute erscheinen. Ersatzweise werden die folgenen Sequenzen benutzt:

Symbol | Sequenz
< | &lt;
> | &gt;
" | &quot;
' | &apos;
& | &amp;

Es folgt die Identifiziererstruktur für die Variablendeklaration:

<k5project>
|
+-<vargroup>
|
+-<var>*
|
+-<varinfo>*

(Das Zeichen "*" kennzeichnet, dass der Identifizierer 0-mal oder öfter erscheinen kann.)

Die restlichen Informationen dieser Seite beziehen sich auf das Format und die Bedeutung eines jeden Identifizierers:

<k5project>

Dieser Identifizierer muss auf der obersten Ebene stehen und ist einmalig. Er ist für Erweiterungen (Anreicherung der XML Struktur) reserviert und spezifiziert die Syntaxversion. Seine Attribute sind:

Attribut | Beschreibung
version | Reserviert für zukünftige Erweiterungen. Dieses Attribut ist zwingend und muss lauten "1.0".

Der <K5Project> Identifizierer enthält einen <vargroup> Identifizierer.

<vargroup>

Dieser Identifizierer muss mit dem <K5Project> erscheinen und enthält alle <var> Identifizierer für die Variablen der Gruppe. In dieser Version hat der Identifizierer kein Attribut (der Gruppenname ist impliziert).

<var>

Dieser Identifizierer beschreibt die Basisdefinition einer Variablen. Seine Attribute sind:

Attribut | Beschreibung
name | Symbol der Variablen. Dieses Attribut ist zwingend.
type | Name des Datentyps der Variablen. Dieses Attribut ist zwingend.
len | Maximale Länge, wenn der Datentyp STRING ist. Dieses Attribut ist zwingend für STRING Variablen, darf bei anderen Datentypen jedoch nicht erscheinen.
dim | Dimension(en), wenn die Variable ein Array ist. Es gibt maximal 3 Dimensionen, die durch Kommas getrennt werden.
attr | Attribut der Variablen, getrennt durch Kommas. Mögliche Werte sind: IN : steht für einen INPUT-Parameter (nur für UDFBs). OUT : steht für einen OUTPUT-Parameter (nur für UDFBs). external : steht für eine externe Variable. constant : steht für eine read-only Variable. Dieses Attribut ist optionell.
init | Initialwert der Variablen. Muss ein gültiger Konstantenausdruck sein, der zum Datentyp passt. Dieses Attribut ist optionell.

Der Identifizierer <var> enthält null oder mehr <varinfo> Identifizierer.

<varinfo>

Dieser Identifizierer kennzeichnet zusätzliche Informationen zur betreffenden Variablen. Seine Attribute sind:

Attribut | Beschreibung
type | Typ der im data Attribut enthaltenen Informationen. Mögliche Werte sind: tag : Variablenidentifizierer (kurzer Kommentar). desc : Beschreibung. profile : Name des eingebetteten Profils. embed : Satz der eingebetteten Eigenschaften. Dieses Attribut ist zwingend.
data | Vom type Attribut spezifizierte Daten im Textformat. Dieses Attribut ist zwingend.


Variablen als Text bearbeiten (CSV Format)

IEC 61131-3 Programming Environment -> Variableneditor -> Variablen als Text bearbeiten -> Variablen als Text bearbeiten (CSV Format)

Previous chapter Next chapter Show all Show all Hide all Hide all

Im CSV Format wird jede Variable auf einer Textzeile definiert. Jeder Komponent der Variablendefinition wird als ein CSV Element eingegeben. Die CSV Elemente werden durch Semikolen getrennt. Jedes Element wird zwischen doppelte Anführungszeichen geschrieben. Um ein doppeltes Anführungszeichen innerhalb eines Elements darzustellen, benutzt man zwei doppelte Anführungszeichen. Das CSV Format ist eine einfache Methode, um Variablendeklarationen mit Tabellenprogrammen auszutauschen.

Es ist nicht zwingend, alle Elemente (alle Spalten) in den Text aufzunehmen. Die erste Zeile muss die Liste der benutzten Spalte enthalten. Folgende Schlüsselwörter werden benutzt:

Schlüsselwort | Beschreibung
name | Variablensymbol. Dieses Element ist zwingend.
type | Name des Datentyps. Dieses Element ist zwingend und muss vor den Spalten len, dim und init erscheinen.
len | Länge der Zeichenfolge, wenn der Datentyp STRING ist. Bei anderen Datentypen muss dieses Element leer sein.
dim | Dimensionen bei einem Array. Es gibt maximal 3 Dimensionen, die durch Kommas getrennt werden.
attr | Attribut der Variablen. Mögliche Attribute sind: IN: Inputparameter eines UDFB. OUT: Outputparameter eines UDFB. external: externe Variable.
RO | YES kennzeichnet, dass die Variable das read-only Attribut besitzt. (Hinweis: Es können die Werte TRUE oder 1 benutzt werden.)
init | Initialwert der Variablen. Muss ein gültiger Konstantenausdruck sein, der zum Datentyp passt.
tag | Identifizierer (kurzer Beschreibungstext).
desc | Beschreibungstext.
profile | Name des eingebetteten Profils.
embed | Eingebettete Eigenschaften (die Syntax gleicht der Syntax im Variablenraster).

Hier das Beispiel eines CSV Texts mit der Deklaration von 3 Variablen, in der bestimmte Spalten ausgelassen wurden:

Example Example

"name","type","len","attr","RO"
"MyVar","BOOL","","","NO"
"ExtVar","DINT","","external","YES"
"MyStr","STRING","10","","NO"


Programme bearbeiten

IEC 61131-3 Programming Environment -> Programme bearbeiten

Die Programmierumgebung verfügt über dedizierte Editoren für die folgenden Sprachen:

Sequential Function Chart (SFC)
Function Block Diagram (FBD)
Ladder Diagram (LD)
Structured Text (ST) und Instruction List (IL)

Siehe folgende Themen für gemeinsame Funktionalitäten:

Funktionsbausteine auswählen
Variablen und Instanzen auswählen
Schnelle Suche
Lesezeichen

Der Editor stellt ein hervorragendes Programmiertool mit folgenden drag and drop-Features dar:

  • Dag and drop von Variablen aus dem Variablen Editor in das Programm.
  • Dag and drop von Definitionen in das Programm.
  • Dag and drop von Funktionsblöcken in das Programm.
  • Dag and drop von Funktionsblöcken in den Variableneditor um dessen Instanz zu deklarieren.
  • Dag and drop von Variablen vom Programm oder vom Variableneditor in den Spion.
  • Dppelklick auf eine Zeile im Ausgabefenster zum Hervorheben des korrespondierenden Codes.

Noch in diesem Kapitel

Sequential Function Chart (SFC) Editor

Function Block Diagram (FBD) Editor

Ladder Diagram (LD) Editor

Structured Text (ST) / Instruction List (IL) Editor

Funktionsbausteine auswählen

Variablen und Instanzen auswählen


Sequential Function Chart (SFC) Editor

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Sequential Function Chart (SFC) Editor

Previous chapter Next chapter Show all Show all Hide all Hide all

Die Workbench stellt zwei verschiedene Editoren zur Eingabe von Programmen in der Ablaufsprache (Sequential Function Chart) zur Verfügung:

Gitter-Editor

Der Gitter-Editor unterstützt erweiterte Grafikfunktionalitäten wie zum Beispiel Drag and Drop. Damit können Sie schnell und ohne Einschränkung die Elemente Ihres Diagramms auf dem Gitter anordnen. Er unterstützt auch einfache Tastenkombinationen und automatische Diagrammformatierung beim Einfügen oder Löschen von Elementen. Dadurch wird die schnelle Eingabe mithilfe der Tastatur ermöglicht.

Freifrom-Editor

Der Freiform-Editor unterstützt erweiterte Grafikfunktionalitäten wie zum Beispiel Drag and Drop und lässt Sie Schritte und Transitionen völlig frei im grafischen Layout anordnen.

info Info
  • Sie wählen den Editor aus, wenn Sie das Programm erstellen.

Noch in diesem Kapitel

SFC Gitter-Editor

SFC Freiform-Editor

SFC Toolbar benutzen

Zeichnen von Verzweigungen im SFC

Ansicht von SFC Netzwerken

SFC Netzwerke verschieben und kopieren

Makroschritte im SFC

Schritte und Transitionen neu nummerieren

Aktionen eines Schritts eingeben

Die Bedingung einer Transition eingeben

Eingabe von Notizen für Schritte und Transitionen


SFC Gitter-Editor

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Sequential Function Chart (SFC) Editor -> SFC Gitter-Editor

Previous chapter Next chapter Show all Show all Hide all Hide all

Der Gitter-Editor (SFC) ist ein leistungsstarkes grafisches Werkzeug, das es Ihnen ermöglicht, Ablaufsprache nach dem IEC 61131-3 Standard einzugeben und zu verwalten. Der Gitter-Editor unterstützt erweiterte Grafikfunktionalitäten wie zum Beispiel Drag and Drop. Damit können Sie schnell und ohne Einschränkung die Elemente Ihres Diagramms anordnen. Er unterstützt auch automatische Diagrammformatierung beim Einfügen oder Löschen von Elementen. Dadurch wird die schnelle Eingabe mithilfe der Tastatur ermöglicht.

SFC-Diagramm-Komponenten | Ähnliche Abschnitte
Schritte Transitionen Abweichungen Parallelzweige Sprung zu einem Schritt Aktionen Bedingungen Timeout prüfen | SFC-Symbolleiste benutzen Abweichnugnen zeichnen Diagramm anzeigen Teile des Diagramms verschieben oder kopieren Schritte und Transitionen neu nummerieren Aktionen eines Schritts eingeben Kondition einer Transition eingeben Bemerkungen für Schritte und Transitionen Lesezeichen

info Info
  • Um die Nummer eines Schritts, einer Transition oder eines Sprungs zu ändern, wählen Sie das gewünschte Objekt aus und drücken Strg+Eingabe.
  • Durch drücken der Taste Leer, wenn sich der Cursor auf dem Haupteck (auf der linken Seite) einer Abweichung oder einer Konvergenz befindet, schalten Sie zwischen doppeltem oder einfachem horizontalen Linienstil um.


SFC Freiform-Editor

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Sequential Function Chart (SFC) Editor -> SFC Freiform-Editor

Previous chapter Next chapter Show all Show all Hide all Hide all

Der SFC Freiform-Editor ist ein vollständig mausgesteuerter Grafikeditor, der es Ihnen ermöglicht, Ablaufsprache nach dem IEC 61131-3 Standard einzugeben und zu verwalten. Der Editor unterstützt erweiterte Grafikfunktionalitäten wie zum Beispiel Drag and Drop und lässt Sie Schritte und Transitionen völlig frei im grafischen Layout anordnen.

SFC-Diagramm-Komponenten | Ähnliche Abschnitte
Schritte Transitionen Abweichungen Parallelzweige Aktionen Bedingungen Timeout prüfen | SFC-Symbolleiste benutze Diagramm anzeigen Teile des Diagramms verschieben oder kopieren Schritte und Transitionen neu nummerieren Aktionen eines Schritts eingeben Kondition einer Transition eingeben Bemerkungen für Schritte und Transitionen Lesezeichen

Um Elemente einzufügen, können Sie das gewünschte Elemente (Schritt, Transition, Sprung) einfach aus der Symbolleiste des Editors in das grafische Layout ziehen. Dort können Sie die Elemente dann mihilfe von Drag and Drop frei bewegen.

Sie erstellen Links, indem Sie mit der Maus von einem Element zu einem anderen in die gewünschte Richtung ziehen. Wenn Sie mit dem Maus-Cursor auf einen Schritt oder eine Transition fahren, zeigt Ihnen eine grüne Markierung an von wo der neue Link gezogen wurde.

Um eine Abweichung oder Konvergenz zu zeichnen, verlinken Sie einfach Elemente miteinander (z.B. von einem Schritt zu mehreren Transitionen). Der Editor wird automatisch horizontale Linien zeichnen. Wenn Sie einen Link ausgewählt haben, können Sie dessen Segmente mithilfe der Maus verschieben, um seinen Verlauf zu ändern.


SFC Toolbar benutzen

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Sequential Function Chart (SFC) Editor -> SFC Toolbar benutzen

Previous chapter Next chapter Show all Show all Hide all Hide all

Die vertikale Toolbar am linken Rand des Editors enthält Schaltflächen zum Einfügen von Elementen in das Netzwerk. Das neue Element wird stets vor dem im Netzwerk ausgewählten Element eingefügt. Nach dem Einfügen eines Elements wird das Netzwerk automatisch neu geordnet.

Icon | Beschreibung
 | Initialschritt einfügen.
 | Schritt einfügen.
 | Transition einfügen.
 | Sprung zu einem Schritt einfügen.
 | Hauptecke (linke Seite) einer Verzweigung oder Zusammenführung einfügen.
 | Verzweigungsecke einfügen.
 | Zusammenführungsecke einfügen.

Wenn ein Element ausgewählt ist, bewirken die Tasten:

  • ENTER: Ebene 2 eines Schritts oder einer Transition bearbeiten.
  • Ctrl+ENTER: Nummer eines Schritts, einer Transition oder eines Sprungs ändern.

Die letzte Schaltfläche der Toolbar ermöglicht das Wechseln zwischen den verschiedenen Ansichten:

Icon

Beschreibung

Wechseln zwischen den möglichen Ansichten der Ebene 2 im Netzwerk der Ebene 1:

  • Code der Aktionen und Bedingungen anzeigen.
  • Die mit den Schritten und Transitionen verknüpften Notizen anzeigen.


Zeichnen von Verzweigungen im SFC

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Sequential Function Chart (SFC) Editor -> Zeichnen von Verzweigungen im SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

Im SFC Editor werden die einzelnen Netzwerkelemente einfach in das Raster plaziert. Der Editor berechnet und zeichnet die Linien zur Verbindung der eingefügten Schritte, Transitionen und Sprünge automatisch.

Diese Methode kommt auch beim Zeichnen der Verzweigungen zum Einsatz. Sie brauchen die Ecken der Verzweigungen, Zusammenführungen und Zweige nur einzufügen und der Editor zeichnet die vertikalen und horizontalen Verbindungslinien automatisch. Benutzen Sie die folgenden Schaltflächen in der SFC Toolbar:

Icon | Beschreibung
 | Die Hauptecke (linke Seite) einer Verzweigung oder Zusammenführung einfügen.
 | Die Ecke einer Verzweigung einfügen.
 | Die Ecke einer Zusammenführung einfügen.

attention Attention

Verzweigungen werden immer von links nach rechts gezeichnet. Der erste Zweig auf der linken Seite enthält die Ecke, die die Verzweigung kennzeichnet. Sie wird auf den vorangehenden Schritt oder die vorangehende Transition ausgerichtet:

Arbeitsweise

  1. Eine Hauptecke (linker Zweig) der Verzweigung oder Zusammenführung einfügen.
  2. Oben an jedem Zweig Ecken ansetzen (Verzweigung).
  3. Unten an jedem Zweig Ecken ansetzen, wo eine Zusammenführung entstehen soll.

Einfache und doppelte Verzweigungslinien

Sie können die horizontale Linie einer Verzweigung oder Zusammenführung ändern, je nachdem, ob entsprechend der SFC Definition eine einfache oder doppelte Linie erforderlich ist. Hierzu verlagert man die Auswahl auf die Hauptecke (links) und drückt die LEERTASTE.


Ansicht von SFC Netzwerken

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Sequential Function Chart (SFC) Editor -> Ansicht von SFC Netzwerken

Previous chapter Next chapter Show all Show all Hide all Hide all

Das Netzwerk wird in ein logisches Raster eingegeben. Alle Objekte werden auf dem Raster ausgerichtet. Das Menü Ansicht verfügt über Befehle, mit denen die Linien des Rasters angezeigt oder verborgen werden können. Die Koordinaten (x,y) des Mauscursors erscheinen in der Zustandsleiste. Diese Funktion ist hilfreich, um die vom Compiler erkannten Fehler zu finden oder um Objekte im Diagramm auszurichten.

Mit den im Menü Ansicht enthaltenen Befehlen Zoom vergrössern und Zoom verkleinern können Sie jederzeit in das in Bearbeitung befindliche Netzwerk hinein- oder herauszoomen. Sie können auch die Tasten [+] und [-] der Zahlentastatur benutzen, um in das Netzwerk hinein- oder herauszuzoomen.

Die Grösse der Rasterzellen kann frei verändert werden, indem man die Trennlinien der vertikalen und horizontalen Lineale an eine andere Stelle zieht:

Der SFC Editor wählt die Grösse der Schriftart entsprechend zum Zoom Ratio. Wenn die Zellen breit genug sind, wird ein Text mit dem Inhalt des Schritts oder der Transition (Ebene 2) angezeigt. Die letzte Schaltfläche in der Toolbar ermöglicht das Wechseln von einer Ansichtsweise zur anderen:

Icon

Beschreibung

Wechseln zwischen verschiedenen Ansichtsweisen der Ebene 2 in der Ebene 1 des Netzwerks:

  • Den Code der Aktionen und Bedingungen anzeigen.
  • Die mit den Schritten und Transitionen verknüpften Notizen anzeigen.


SFC Netzwerke verschieben und kopieren

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Sequential Function Chart (SFC) Editor -> SFC Netzwerke verschieben und kopieren

Previous chapter Next chapter Show all Show all Hide all Hide all

Der SFC Editor unterstützt "drag-and-drop" zum Verschieben und Kopieren vonElementen. Um Elemente in einem Netzwerk zuverschieben, werden sie ausgewählt und einfach an die neue Stelle gezogen.

Um Elemente zukopieren, verfährt man genauso und hält beim Ziehen die CONTROL Taste gedrückt. Es ist auch möglich, Teile eines Netzwerks von einem Programm in ein anderes zu ziehen, wenn beide offen und auf dem Bildschirm sichtbar sind.

Die Operation kann jederzeit abgebrochen werden, wenn man beim Ziehen der Elemente die ESCAPE Taste drückt.

Sie können auch die herkömmlichen Befehle Kopieren / Ausschneiden / Einfügen im Menü Bearbeiten benutzen. Das Einfügen erfolgt am aktuellen Standort.


Schritte und Transitionen neu nummerieren

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Sequential Function Chart (SFC) Editor -> Schritte und Transitionen neu nummerieren

Previous chapter Next chapter Show all Show all Hide all Hide all

Jeder Schritt und jede Transition wird mit einer Nummer gekennzeichnet. Ein Sprung zu einem Schritt wird mit der Nummer seines Zielschritts identifiziert. Der SFC Editor weist allen Schritten und Transitionen, die in das Netzwerk eingefügt werden, neue Nummern zu.

Um die Nummer eines Schritts, einer Transition oder eines Sprungs zu ändern, wählt man das Element aus und drückt die Tastenkombination Ctrl+ENTER.

Es ist nicht möglich, die Nummer eines Schritts oder einer Transition zu ändern, wenn die Ebene 2 zur Bearbeitung geöffnet wurde, denn die Nummer wird benutzt, um den Schritt oder die Transition im Bearbeitungsfensrter der Ebene 2 zu identifizieren.

Im Compiler-Bericht wird ein Schritt durch seine Nummer mit dem Vorzeichen GS gekennzeichnet. Eine Transition erkennt man an ihrer Nummer mit dem Vorzeichen GT.


Aktionen eines Schritts eingeben

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Sequential Function Chart (SFC) Editor -> Aktionen eines Schritts eingeben

Previous chapter Next chapter Show all Show all Hide all Hide all

Die mit einem Schritt verknüpften Aktionen und Notizen (Ebene 2) werden in einem separaten Fenster eingegeben. Um das Bearbeitungsfenster der Ebene 2 eines Schritts oder einer Transition zu öffnen, doppelklicken Sie auf das Symbol des Elements im Netzwerk oder wählen es aus und drücken ENTER.

Das Bearbeitungsfenster der Ebene 2 bietet 4 Ansichten zur Eingabe der verschiedenen Informationstypen der Ebene 2:

  • Einfache, als Text eingegebene Aktionen.
  • P1 Aktionen, die in ST/IL Text, LD odr FBD programmiert werden können.
  • N Aktionen, die in ST/IL Text, LD odr FBD programmiert werden können.
  • P0 Aktionen, die in ST/IL Text, LD odr FBD programmiert werden können.
  • Textnotizen.

Benutzen Sie die Tabulationsschaltflächen des Bearbeitungsfensters der Ebene 2, um eine Ansicht auszuwählen:

Bei der Bearbeitung von P1, N oder P0 Aktionen dient der Menübefehl Bearbeiten / Sprache einstellen der Auswahl der Programmiersprache. Dieser Befehl ist nur verfügbar, wenn der Aktionsblock leer ist.

Die erste Ansicht ("Aktion") enthält alle einfachen Aktionen zur Steuerung einer Booleschen Variablen oder eines SFC Child Programms. Es ist jedoch möglich, in ST programmierte Aktionsblöcke zusammen mit anderen Aktionen in dieser Ansicht einzugeben. Benutzen Sie die folgende Syntax für die Eingabe von ST Aktionsblöcken im ersten Fenster:

ACTION ( qualifier ) :
statements...
END_ACTION;

Wobei qualifier P1, N oder P0 ist.


Die Bedingung einer Transition eingeben

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Sequential Function Chart (SFC) Editor -> Die Bedingung einer Transition eingeben

Previous chapter Next chapter Show all Show all Hide all Hide all

Die Bedingung sowie die Notizen, die mit einer Transition verknüpft sind (Ebene 2), werden in einem separaten Fenster eingegeben. Um das Bearbeitungsfenster der Ebene 2 eines Schritts oder einer Transition zu öffnen, doppelklicken Sie auf das betreffende Symbol im Netzwerk oder wählen es aus und drücken ENTER.

Das Bearbeitungsfenster der Ebene 2 bietet zwei Ansichten zur Eingabe verschiedener Informationen der Ebene 2:

  • In ST/IL Text oder LD programmierte Bedingungen.
  • Textnotizen.

Benutzen Sie die Tabulationsschaltflächen im Bearbeitungsfenster der Ebene 2, um eine Ansicht auszuwählen:

Bei der Bearbeitung einer Bedingung dient der Menübefehl Bearbeiten / Sprache einstellen der Auswahl der Programmiersprache. Dieser Befehl ist nur verfügbar, wenn die Bedingung leer ist. FBD kann nicht zur Programmierung einer Bedingung benutzt werden.


Eingabe von Notizen für Schritte und Transitionen

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Sequential Function Chart (SFC) Editor -> Eingabe von Notizen für Schritte und Transitionen

Previous chapter Next chapter Show all Show all Hide all Hide all

Der SFC Editor unterstützt die Definition von Textnotizen für jeden Schritt und jede Transition. Die Notizen werden in der Ebene 2 des Bearbeitungsfensters der Schritte und Transitionen eingegeben. Die folgenden Themen liefern nähere Informationen über das Bearbeitungsfenster der Ebene 2:

  • Ebene 2 für Schritte eingeben.
  • Ebene 2 für Transitionen eingeben.

Die Notizen können im Netzwerk angezeigt werden. Die letzte Schaltfläche in der Toolbar ermöglicht Ihnen, zwischen den verschiedenen Ansichten zu wechseln:

Icon

Beschreibung

Zwischen verschiedenen Ansichten der Ebene 2 im Netzwerk der Ebene 1 wechseln:

  • Code der Aktionen und Bedingungen anzeigen.
  • Notizen der Schritte und Transitionen anzeigen.

Notizen haben keinen Einfluss auf die Ausführung Ihres Netzwerks. Sie geben Ihnen jedoch die Möglichkeit, das SFC Programm ausführlicher zu dokumentieren und seine Spezifizierungen auszutauschen, bevor die Aktionen und Bedingungen programmiert werden.


Function Block Diagram (FBD) Editor

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Function Block Diagram (FBD) Editor

Previous chapter Next chapter Show all Show all Hide all Hide all

Der FBD Editor ist ein leistungsfähiges grafisches Tool, mit dem Function Block Diagramme gemäß der Norm IEC 61131-3 eingegeben und verwaltet werden können. Der Editor unterstützt fortschrittliche grafische Funktionalitäten, wie Drag and Drop, Objektgröße verändern und Verlauf der Verbindungslinien beeinflussen, so dass die einzelnen Elemente schnell und unproblematisch im Diagramm angeordnet werden können. Außerdem können grafische Elemente der LD Sprache, wie Spulen und Kontakte, in FBD Diagramme eingefügt werden.

FBD Diagrammkomponenten

Betreffende Abschnitte

Funktionsbausteine
Variablen-Tags
Kommentartexte
Corners
Netzwerk Breaks
Labels
Sprünge
ST Ausdrücke in LD und FBD

FBD Toolbar benutzen
Funktionsbausteine auswählen
Verbindungslinien ziehen
Variablen und FB Instanzen auswählen und eingeben
Diagrammansicht
Diagrammabschnitte verschieben oder kopieren
Ein Objekt auf einer Linie einfügen
Objektgrösse verändern
Lesezeichen

LD Komponenten

Kontakte
Spulen
"OR" vertical rail
Stromschienen

info Info

Wenn ein Kontakt oder eine Spule ausgewählt ist, kann der Typ durch Drücken der LEERTASTE geändert werden (normal, invertiert, Impuls...).

Noch in diesem Kapitel

FBD Toolbar benutzen

FBD Verbindungslinien zeichnen

FBD Variablen und Instanzen auswählen

Ansicht des FBD Diagramms

FBD Objekte verschieben oder kopieren

FBD Objekte auf einer Verbindungslinie einfügen

FBD Objekte in ihrer Größe verändern


FBD Toolbar benutzen

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Function Block Diagram (FBD) Editor -> FBD Toolbar benutzen

Previous chapter Next chapter Show all Show all Hide all Hide all

Die senkrechte Toolbar am linken Rand des Editorfensters enthält Schaltflächen für alle verfügbaren Bearbeitungsfunktionen. Klicken Sie zuerst auf die gewünschte Schaltfläche, bevor Sie mit der Maus im grafischen Feld die betreffenden Aktionen ausführen.

Icon

Beschreibung

Selektion: Im Selektionsmodus können keine Elemente in das Diagramm eingefügt werden. In diesem Modus wird die Maus dazu benutzt, Objekte, Linien oder Tag-Namensfelder auszuwählen oder Objekte im Diagramm zu verschieben oder zu kopieren. Sie können jederzeit die ESCAPE-Taste drücken, um zum Selektionsmodus zurückzukehren.

FB einfügen: In diesem Modus wird die Maus benutzt, um einen Funktionsbaustein in das Diagramm einzufügen. Klicken Sie in das Diagramm und ziehen Sie den Baustein an die gewünschte Stelle. Der eingefügte Baustein hat den Typ, der in der Liste der Hauptbefehlsleiste ausgewählt ist.

Variable einfügen: In diesem Modus wird die Maus benutzt, um Variablen-Tags einzufügen. Die Variablen-Tags können dann an die Input- oder Output-Pins der Bausteine angeschlossen werden. Klicken Sie in das Diagramm und ziehen Sie die neue Variable an die gewünschte Stelle.

Kommentar einfügen: In diesem Modus wird die Maus benutzt, um einen Kommentartext in das Diagramm einzufügen. Kommentartexte können an beliebigen Stellen in das Diagramm eingefügt werden. Klicken Sie in das Diagramm und ziehen Sie den Textblock an die gewünschte Stelle. Der Text kann ausgewählt und in seiner Größe verändert werden.

Verbindungslinie einfügen: In diesem Modus wird die Maus benutzt, um die Input- oder Output-Pins der Diagrammobjekte miteinander zu verbinden. Die Linien werden stets in Richtung des Datenflusses gezogen: von einem Output-Pin zu einem Input-Pin. Der FBD Editor wählt den günstigsten Verlauf der neuen Linie automatisch. Sie können den vorgegebenen Verlauf durch das Einfügen von Ecken und Linien verändern. (siehe unten)

Wenn Sie die neue Linie von einem Output-Pin an eine leere Stelle ziehen, beendet der Editor die Linie automatisch mit einer benutzerdefinierten Ecke (Corner), so dass Sie die Verbindungslinie bis zum gewünschten Pin verlängern können und den Verlauf während des Zeichnens forcieren können.

Corner einfügen: In diesem Modus wird die Maus benutzt, um eine benutzerdefinierte Ecke (Corner) auf einer Linie einzufügen. Solche Ecken werden benutzt, um den Verlauf der Verbindungslinien zu forcieren, da der FBD Editor den Verlauf nur zwischen zwei Pins oder benutzerdefinierten Ecken vorgibt. Ecken können im Diagramm ausgewählt und verschoben werden, um den Verlauf bestehender Linien zu verändern.

Break einfügen: In diesem Modus wird die Maus benutzt, um eine horizontale Line, die als Unterbrechnung fungiert, in das Diagramm einzufügen. Breaks haben keinen Einfluss auf die Programmausführung. Sie dienen lediglich dem besseren Verständnis des Diagramms, indem sie es in eine Reihe von Netzwerken unterteilen.

Label einfügen: In diesem Modus wird die Maus benutzt, um ein Label in das Diagramm einzufügen. Ein Label wird als Ziel für ein Sprungsymbol benutzt (siehe unten).

Sprung einfügen: In diesem Modus wird die Maus benutzt, um ein Sprungsymbol in das Diagramm einzufügen. Ein Sprung kennzeichnet, dass die Diagrammausführung zum entsprechenden Label (mit dem gleichen Namen wie das Sprungsymbol) geleitet wird. Sprünge sind bedingte Anweisungen. Sie müssen auf ihrer linken Seite an einen Booleschen Datenfluss angeschlossen werden.

Linke Stromschiene hinzufügen: In diesem Modus wird die Maus benutzt, um eine linke Stromschiene in das Diagramm einzufügen. Die linke Stromschiene ist ein Element der LD Sprache und stellt einen TRUE Zustand dar, der zur Initialisierung eines Datenflusses benutzt werden kann. Anschließend kann die Stromschiene ausgewählt und auf die erforderliche Netzwerkhöhe gebracht werden.

Kontakt hinzufügen: In diesem Modus wird die Maus benutzt, um einen Kontakt wie in einem Ladder Diagram in das Diagramm einzufügen.

Leiste hinzufügen: In diesem Modus wird die Maus benutzt, um eine Leiste anzuschließen, die mehrere Boolesche Datenflüsse in einer ODER-Operation zusammenführt, damit parallele Kontakte wie in einem Ladder Diagram angeschlossen werden können.

Spule hinzufügen: In diesem Modus wird die Maus benutzt, um eine Spule wie in einem Ladder Diagram in das Diagramm einzufügen. Es ist nicht unbedingt erforderlich, Spulen auf ihrer rechten Seite anzuschließen.

Rechte Stromschiene hinzufügen: In diesem Modus wird die Maus benutzt, um eine rechte Stromschiene in das Diagramm einzufügen. Die rechte Stromschiene ist ein Element der LD Sprache und wird gewöhnlich benutzt, um Boolesche Datenflüsse zu beenden. Es ist jedoch nicht unbedingt erforderlich, Spulen an Stromschienen anzuschließen. Rechte Stromschienen haben keinen Einfluss auf die Diagrammausführung.

Noch in diesem Kapitel

FBD Variablen

FBD Kommentare

FBD corners

FBD Netzwerk-Breaks

FBD vertikale ODER-Stromschiene


FBD Variablen

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Function Block Diagram (FBD) Editor -> FBD Toolbar benutzen -> FBD Variablen

Previous chapter Next chapter Show all Show all Hide all Hide all

Im FBD Diagramm werden alle Variablensymbole und Konstantenausdrücke in kleinen rechteckigen Feldern eingegeben. Klicken Sie auf die folgende Schaltfläche in der FBD Toolbar, um ein Variablen-Tag einzufügen:

Icon | Beschreibung
 | Variable einfügen: In diesem Modus wird die Maus benutzt, um ein Variablen-Tag einzufügen. Klicken Sie in das Diagramm und ziehen Sie die neue Variable an die gewünschte Stelle.

Doppelklicken Sie auf das Variablen-Tag, um das Variablenauswahlfeld anzuzeigen und das Symbol der gewünschten Variablen auszuwählen oder einen Konstantenausdruck einzugeben.

Anschliessend wird das Variablen-Tag anhand von Verbindungslinien an die anderen Objekten, z.B. Inputs und Outputs von Funktionsbausteinen, angeschlossen.

Sie können das Variablenfeld verlängern, um den Namen der Variablen zusammen mit ihrem Tag (kurzer Kommentartext), ihrer Beschreibung, sowie ihrer I/O Verdrahtung anzuzeigen, falls die Variable an einen I/O Kanal angeschlossen ist. Der Variablenname erscheint stets unten im Feld:

Tag

Beschreibung

% Verdrahtung

Name


FBD Kommentare

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Function Block Diagram (FBD) Editor -> FBD Toolbar benutzen -> FBD Kommentare

Previous chapter Next chapter Show all Show all Hide all Hide all

Textfelder für Kommentare können an beliebigen Stellen in FBD Diagramme eingefügt werden. Klicken Sie auf die folgende Schalfläche in der FBD Toolbar, um ein neues Kommentarfeld einzufügen:

Icon | Beschreibung
 | Kommentar hinzufügen: In diesem Modus wird die Maus benutzt, um ein Textfeld für einen Kommentar in das Diagramm einzufügen. Kommentare können an beliebigen Stellen eingefügt werden. Klicken Sie in das Diagramm und ziehen Sie das Textfeld an die gewünschte Stelle.

Doppelklicken Sie auf das Kommentarfeld, um einen Text einzugeben oder den vorhandenen Text zu ändern. Wenn ein Textfeld ausgewählt ist, kann man seine Größe verändern.


FBD corners

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Function Block Diagram (FBD) Editor -> FBD Toolbar benutzen -> FBD corners

Previous chapter Next chapter Show all Show all Hide all Hide all

Corners (Ecken) werden benutzt, um den Verlauf von Verbindungslinien zu beeinflussen, da der FBD Editor den Verlauf nur zwischen zwei Pins oder benutzerdefinierten Ecken vorgibt. Alle Variablensymbole und Konstantenausdrücke werden anhand von kleinen Kästchen in FBD Diagramme eingegeben. Klicken Sie auf die folgende Schaltfläche in der FBD Toolbar, um eine Ecke auf einer Linie einzufügen:

Icon | Beschreibung
 | Corner einfügen: In diesem Modus wird die Maus benutzt, um eine benutzerdefinierte Ecke auf einer Linie einzufügen.

Sie können eine neue Linie von einem Output Pin (Ausgangspunkt) zu einer leeren Stelle ziehen. In diesem Fall beendet der Editor die Linie automatisch mit einer benutzerdefinierten Ecke, damit Sie die Verbindungslinie zum gewünschten Pin fortsetzen können und den Verlauf beim Zeichnen der Linie forcieren können.

Corners (Ecken) können ausgewählt und verschoben werden, um den Verlauf bestehender Linie zu verändern.


FBD Netzwerk-Breaks

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Function Block Diagram (FBD) Editor -> FBD Toolbar benutzen -> FBD Netzwerk-Breaks

Previous chapter Next chapter Show all Show all Hide all Hide all

Netzwerk-Breaks können an beliebigen Stellen in FBD Diagrammen eingefügt werden. Sie sind unbedeutend für die Programmausführung und werden lediglich zum besseren Verständnis grösserer Diagramme eingefügt, die sie in mehrere Netzwerke unterteilen. Klicken Sie auf die folgende Schaltfläche in der FBD Toolbar, um einen neuen Netzwerk-Break einzufügen:

Icon | Description
 | Break hinzufügen: In diesem Modus wird die Maus benutzt, um eine horizontale Trennlinie einzufügen, die eine Diagramm-Unterteilung darstellt.

Die Breaklinie geht über das gesamte Diagramm hinweg. Ein Netzwerk-Break darf sich mit keinem anderen Objekt überschneiden. Breaklinien können ausgewählt und vertikal an eine andere Stelle verschoben/kopiert werden.

Netzwerk-Breaks können auch benutzt werden, um Diagramme zu durchsuchen. Drücken Sie auf die Tasten Ctrl+Seite nach oben oder Ctrl+Seite nach unten, um die Auswahl im Diagramm auf den nächsten oder den vorherigen Netzwerk-Break zu verlagern.


FBD vertikale ODER-Stromschiene

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Function Block Diagram (FBD) Editor -> FBD Toolbar benutzen -> FBD vertikale ODER-Stromschiene

Previous chapter Next chapter Show all Show all Hide all Hide all

Der FBD Editor ermöglicht das Zeichnen von LD Rungs. In einem derartigen Rung kann das als ODER-Stromschiene bezeichnete Objekt zur Verbindung paralleler Kontakte benutzt werden. Klicken Sie auf die folgende Schaltfläche in der FBD Toolbar, um eine neue ODER-Stromschiene in einen Rung einzufügen:

Icon | Beschreibung
 | ODER-Stromschiene hinzufügen: In diesem Modus wird die Maus zum Einfügen einer Stromschiene benutzt, die mehrere boolsche Datenflüsse in einer ODER-Operation vereint, damit parallele Kontakte, wie sie im Kontaktplan vorkommen, eingefügt werden können.

Hinsichtlich der Diagrammausführung ist die ODER-Stromschiene gleichbedeutend mit einem ODER-Baustein.


FBD Verbindungslinien zeichnen

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Function Block Diagram (FBD) Editor -> FBD Verbindungslinien zeichnen

Previous chapter Next chapter Show all Show all Hide all Hide all
Icon | Beschreibung
 | Klicken Sie auf diese Schaltfläche, bevor Sie eine neue Linie einfügen.

Verbindungslinien werden stets in Richtung des Datenflusses gezogen, von einem Output Pin zu einem Input Pin. Der FBD Editor bestimmt den günstigsten Verlauf der Linie automatisch. Eine Verbindungslinie kennzeichnet einen Datenfluss zwischen zwei Objekten. Folgende Objekte kommen in Frage:

Icon | Beschreibung
 | Baustein: Siehe Baustein-Hilfe für die Beschreibung seiner Input und Output Pins, sowie die erwarteten Datentypen, welche die Konsistenz des Diagramms gewährleisten.
 | Variable: Eine Variable kann auf ihrer rechten Seite angeschlossen werden (um einen Datenfluss zu initialisieren) oder auf ihrer linken Seite, um die Variable zu forcieren, wenn sie nicht “read only” ist. Der Datenfluss muss dem Datentyp der Variablen entsprechen.
 | Sprung: Ein Sprung muss auf seiner linken Seite an einen boolschen Datenfluss angeschlossen werden.
 | Linke Stromschiene: Eine linke Stromschiene stellt den Zustand TRUE dar und kann auf ihrer rechten Seite an eine unbegrenzte Anzahl an Objekten angeschlossen werden.
 | Kontakt: Ein Kontakt muss auf seiner linken und rechten Seite an boolsche Datenflüsse angeschlossen werden.
 | “OR” Rail: Eine solche Stromschiene sammelt boolsche Datenflüsse für eine “ODER” Operation, damit parallele Kontakte wie in einem Ladder Diagramm eingefügt werden können. Sie kann auf ihrer linken und rechten Seite mehrere Anschlüsse haben. Alle angeschlossenen Datenflüsse müssen boolsch sein.
 | Spule: Eine Spule muss auf ihrer linken Seite an einen Booleschen Datenfluss angeschlossen werden. Es ist nicht unbedingt erforderlich, sie auf ihrer rechten Seite anzuschließen.
 | Rechte Stromschiene: Die rechte Stromschiene ist ein Element der LD Sprache und wird gewöhnlich benutzt, um Boolesche Datenflüsse zu beenden. Auf ihrer linken Seite hat sie eine unbegrenzte Anzahl an Anschlüssen. Es ist nicht unbedingt erforderlich, Spulen an Stromschienen anzuschließen.

Mit der Workbench kann man eine Verbindungslinie mit einer boolschen Negation beenden, die durch einen kleinen Kreis gekennzeichnet wird. Um eine Boolesche Negation zu setzen oder zu entfernen wählt man die Linie aus und drückt die LEERTASTE.


FBD Variablen und Instanzen auswählen

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Function Block Diagram (FBD) Editor -> FBD Variablen und Instanzen auswählen

Previous chapter Next chapter Show all Show all Hide all Hide all
Icon | Beschreibung
 | Klicken Sie vor der Selektion auf diese Schaltfläche oder drücken Sie ESCAPE.

Um den Namen einer deklarierten Variablen, die mit einem grafischen Symbol verknüpft werden soll, auszuwählen wechselt man zuerst zum Selektionsmodus. Anschließend klickt man einfach auf das graue Namensfeld. Die folgenden Objekttypen müssen mit gültigen Symbolen verknüpft werden:

Icon | Beschreibung
 | Baustein: Wenn es sich um einen Funktionsblock handelt, müssen Sie den Namen einer gültigen deklarierten Instanz des entsprechenden Typs spezifizieren.
 | Variable: Muss mit einer gültigen Variablen verknüpft werden. Ein Variablenkästchen kann auch den Text eines gültigen Konstantenausdrucks enthalten.
 | Label: Muss einen Namen haben. Der Name darf innerhalb des Diagramms nur einmal vorkommen.
 | Sprung: Muss den gleichen Namen wie das Ziel-Label haben.
 | Kontakt: Muss mit einer deklarierten Booleschen Variablen verknüpft werden.
 | Spule: Muss mit einer deklarierten Booleschen Variablen verknüpft werden.

Die Symbole der Variablen und Instanzen werden mit Hilfe der Variablenliste ausgewählt. Die Liste kann auch als Variableneditor benutzt werden. Geben Sie einfach ein Symbol oder einen Konstantenausdruck in das Bearbeitungsfeld ein und klicken Sie OK. Sie können auch einen Namen in der Liste der deklarierten Objekte auswählen oder eine neue Variable deklarieren, indem Sie auf die Schaltfläche Erstellen klicken.

ausführlichere Infos...


Ansicht des FBD Diagramms

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Function Block Diagram (FBD) Editor -> Ansicht des FBD Diagramms

Previous chapter Next chapter Show all Show all Hide all Hide all

Das FBD Diagramm wird in ein logisches Raster eingegeben. Alle eingefügten Objekte werden auf dem Raster ausgerichtet. Das Menü Ansicht verfügt über Befehle, mit denen die Punkte des Rasters angezeigt oder versteckt werden können. Die Koordinaten (x,y) des Mauscursors erscheinen in der Zustandsleiste. Diese Funktion ist hilfreich, um die vom Compiler erkannten Fehler zu finden oder um Objekte im Diagramm auszurichten.

Mit den im Menü Ansicht enthaltenen Befehlen Zoom vergrössern und Zoom verkleinern können Sie jederzeit in das in Bearbeitung befindliche Diagramm hinein- oder herauszoomen. Sie können auch die Tasten [+] und [-] der Zahlentastatur benutzen, um in das Diagramm hinein- oder herauszuzoomen.


FBD Objekte verschieben oder kopieren

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Function Block Diagram (FBD) Editor -> FBD Objekte verschieben oder kopieren

Previous chapter Next chapter Show all Show all Hide all Hide all
Icon | Beschreibung
 | Klicken Sie auf diese Schaltfläcke oder drücken Sie ESCAPE, bevor Sie Objekte auswählen.

Der FBD Editor unterstützt die "Drag and Drop" Funktion zum Verschieben und Kopieren von Objekten. Um ein Objekt zu verschieben, wählt man es aus und zieht es einfach an die gewünschte Stelle.

Um ein Objekt zu kopieren, verfahren Sie genauso und drücken beim Ziehen die STRG Taste. Es ist auch möglich, Diagrammabschnitte von einem Programm in ein anderes zu ziehen, wenn beide Programme auf dem Bildschirm offen und sichtbar sind.

Beim Ziehen eines Objekts kann diese Aktion durch Drücken der ESCAPE Taste widerrufen werden.

Sie können auch die klassischen Befehle Kopieren / Ausschneiden / Einfügen im Menü Bearbeiten benutzen. Wenn der Befehl Einfügen eingeleitet wird, zeigt der Editor einen speziellen Einfügecursor an. Klicken Sie in das Diagramm und bewegen Sie den Mauscursor an die gewünschte Stelle, um das kopierte Objekt einzufügen.

Mit der Tastatur

Wenn grafische Objekte ausgewählt sind, können sie im Diagramm mit Hilfe der folgenden Tasten verschoben werden:

Tastenkombination | Beschreibung
Umschalt + hinauf | Nach oben verschieben.
Umschalt + hinunter | Nach unten verschieben.
Umschalt + links | Nach links verschieben.
Umschalt + rechts | Nach rechts verschieben.

Wenn ein Objekt ausgewählt ist, kann die aktuelle Auswahl durch Drücken der folgenden Tasten erweitert werden:

Tastenkombination | Beschreibung
Umschalt + Strg + Pos1 | Erweitern nach oben: wählt alle Objekt vor dem ausgewählten Objekt aus.
Umschalt + Strg + Ende | Erweitern nach unten: wählt alle Objekt nach dem ausgewählten Objekt aus.

Um freien Platz in das Diagramm einzufügen oder im Diagramm zu löschen, wählt man einfach ein Objekt aus und drückt Umschalt+Strg+Ende, um die Auswahl zu erweitern und die ausgewählten Objekte anschließend nach unten oder nach oben zu verschieben.

Automatische Ausrichtung

Wenn mehrere Objekte ausgewählt sind, können sie mit den folgenden Tastenkombinationen ausgerichtet werden:

Tastenkombination | Beschreibung
Strg + hinauf | Nach oben.
Strg + hinunter | Nach unten.
Strg + links | Nach links.
Strg + rechts | Nach rechts.


FBD Objekte auf einer Verbindungslinie einfügen

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Function Block Diagram (FBD) Editor -> FBD Objekte auf einer Verbindungslinie einfügen

Previous chapter Next chapter Show all Show all Hide all Hide all

Mit dem FBD Editor kann ein Objekt auf einer bestehenden Linie eingefügt werden. Es wird automatisch an die Linie angeschlossen. Diese Funktionalität ist für alle Objekte verfügbar, die ein Input oder Output Pin besitzen (Variablenkästchen, Kontakte und Spulen) und wird hauptsächlich bei der Eingabe von Elementen des Ladder Diagrams benutzt. Ziehen Sie eine horizontale Linie zwischen der linken und rechten Stromschiene: diese Linie ist ein sogenannter Rung (Strompfad). Nun fügen Sie einfach Kontakte und Spulen ein, um den LD Rung aufzubauen.


FBD Objekte in ihrer Größe verändern

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Function Block Diagram (FBD) Editor -> FBD Objekte in ihrer Größe verändern

Previous chapter Next chapter Show all Show all Hide all Hide all
Icon | Beschreibung
 | Klicken Sie auf diese Schaltfläche oder drücken Sie ESCAPE, bevor Sie ein Objekt auswählen.

Wenn ein Objekt ausgewählt ist, kann seine Größe mit Hilfe der Maus verändert werden. Klicken Sie auf die kleinen Kästchen am Objektrand und vergrößern oder verkleinern Sie das Objekt in der gewünschten Richtung.

Nicht alle Objekte können vergrößert oder verkleinert werden. Die folgende Tabelle beschreibt die möglichen Operationen:

Element | Mögliche Operationen
Variable | Horizontal und vertikal (*)
Baustein | Horizontal
Label und Sprung | Horizontal
Stromschienen | Vertikal
ODER-Leiste | Vertikal
Kommentarfeld | In allen Richtungen.

(*) Wenn Sie ein Variablenfeld verlängern, können Sie den Namen der Variablen zusammen mit ihrem Tag (kurzer Kommentartext), ihrer Beschreibung, sowie ihrer I/O Verdrahtung anzeigen, falls die Variable an einen I/O Kanal angeschlossen ist. Der Variablenname erscheint stets unten im Feld:

% Verdrahtung

Beschreibung

Tag

Name


Ladder Diagram (LD) Editor

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Ladder Diagram (LD) Editor

Previous chapter Next chapter Show all Show all Hide all Hide all

Der LD Editor ist ein leistungsfähiges Grafiktool zur Eingabe und Verwaltung von Ladder Diagrams (Kontaktplänen) gemäß der Norm IEC 61131-3. Der LD Editorermöglicht die schnelle Eingabe mit Hilfe der Tastatur und unterstützt fortschrittliche grafische Funktionen wie drag-and-drop.

LD Diagrammkomponenten | Relevante Abschnitte
Rungs Kontakte Spulen Stromschienen Funktionsbausteine Labels Sprünge Kommentare ST Ausdrücke in LD und FBD | LD Toolbar benutzen Funktionsbausteine auswählen Variablen und FB-Instanzen auswählen und eingeben Diagrammansicht Diagrammabschnitte verschieben oder kopieren Lesezeichen

info Info

Wenn ein Kontakt oder eine Spule ausgewählt ist, kann sein/ihr Typ (normal, invertiert, Implus...) durch Drücken der LEERTASTE geändert werden.

Noch in diesem Kapitel

LD Toolbar benutzen

Rungs verwalten

Kommentare in LD Diagrammen

Ansicht des LD Diagramms

LD Komponenten verschieben und kopieren


LD Toolbar benutzen

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Ladder Diagram (LD) Editor -> LD Toolbar benutzen

Previous chapter Next chapter Show all Show all Hide all Hide all

Die vertikale Toolbar am linken Rand des Editors enthält Schaltflächen zum Einfügen der Diagrammelemente. Die Elemente werden am aktuellen Standort in das Diagramm eingefügt.

Icon, Shortcut | Beschreibung
Shift+F4 | Fügt einen Kontakt vor dem ausgewählten Element ein.
F4 | Fügt einen Kontakt nach dem ausgewählten Element ein.
Ctrl+F4 | Fügt einen Kontakt parallel zu den ausgewählten Elementen ein.
Ctrl+Space | Fügt eine horizontale Linie vor dem ausgewählten Element ein, so dass es nach rechts verschoben wird.
Shift+F8 | Fügt einen Baustein vor dem ausgewählten Element ein.
F8 | Fügt einen Baustein nach dem ausgewählten Element ein.
Ctrl+F8 | Fügt einen Baustein parallel zu den ausgewählten Elementen ein.
Shift+F9 | Fügt einen Sprung parallel zur ausgewählten Spule hinzu.
F9 | Fügt eine Spule parallel zur ausgewählten Spule hinzu.
Ctrl+R | Fügt ein neues Rung in das Diagramm ein.
Ctrl+D | Fügt einen Kommentar zwischen zwei Rungs ein.


Rungs verwalten

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Ladder Diagram (LD) Editor -> Rungs verwalten

Previous chapter Next chapter Show all Show all Hide all Hide all
Icon | Beschreibung
 | Klicken Sie auf diese Schaltfläche in der LD Toolbar, um ein neues Rung einzufügen.

Ein LD Diagramm besteht aus einer Liste aufeinanderfolgender Rungs. Jedes Rung stellt einen Booleschen Datenfluss dar, der von links nach rechts verläuft. Ein Rung beginnt stets mit einer Stromschiene in der ersten Diagrammspalte und endet in einer Spule oder einem Sprungsymbol.

Jedes Rung ist mit einem Identifizierer mit Vorgabenummerierung (Rnnn) gekennzeichnet, der links neben der Stromschiene angezeigt wird. Der Rung-Identifizierer kann als Ziel für Sprunganweisungen benutzt werden. Als Alternative kann durch Doppelklicken auf die Kopfzelle in der linken Spalte ein spezielles Rung-Label eingegeben werden.

Der LD Editor ermöglicht die Manipulierung ganzer Rungs. Wenn man die Kopfzelle eines Rungs auswählt, wird die Selektion auf das gesamte Rung erweitert. Das folgende Beispiel zeigt ein ausgewähltes Rung:

Example Example

Wenn ein Rung ausgewählt ist, benutzt man die Befehle im Menü Bearbeiten, um es zu löschen, zu kopieren oder auszuschneiden.


Kommentare in LD Diagrammen

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Ladder Diagram (LD) Editor -> Kommentare in LD Diagrammen

Previous chapter Next chapter Show all Show all Hide all Hide all
Icon | Beschreibung
 | Klicken Sie auf diese Schaltfläche in der LD Toolbar, um eine neue Kommentarzeile einzufügen.

Der LD Editor ermöglicht das Einfügen von Kommentartext in das Diagramm. Ein Kommentar ist eine Textzeile zwischen zwei Rungs. Der Kommentartext wird im Diagramm auf einer doppelten Zeile angezeigt:

Kommentare nehmen keinen Einfluss auf die Diagrammausführung. Sie werden benutzt, um die Leserlichkeit der Programme zu steigern, denn jedes Rung kann einzeln beschrieben werden.

Wenn das Diagramm horizontal abgerollt wird, bleiben die Kommentare sichtbar. Um einen Kommentartext zu ändern, verlagert man die Selektion auf eine beliebige Stelle der Kommentarzeile und drückt ENTER. Man kann auch einfach auf die Zeile doppelklicken.


Ansicht des LD Diagramms

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Ladder Diagram (LD) Editor -> Ansicht des LD Diagramms

Previous chapter Next chapter Show all Show all Hide all Hide all

Das LD Diagramm wird in ein logisches Raster eingegeben. Alle Objekte werden auf dem Raster ausgerichtet. Das Menü Ansicht verfügt über Befehle, mit denen die Linien des Rasters angezeigt oder verborgen werden können. Die Koordinaten (x,y) des Mauscursors erscheinen in der Zustandsleiste. Diese Funktion ist hilfreich, um die vom Compiler erkannten Fehler zu finden oder um Objekte im Diagramm auszurichten.

Mit den im Menü Ansicht enthaltenen Befehlen "Zoom vergrössern" und "Zoom verkleinern" können Sie jederzeit in das in Bearbeitung befindliche Diagramm hinein- oder herauszoomen. Sie können auch die Tasten [+] und [-] der Zahlentastatur benutzen, um in das Diagramm hinein- oder herauszuzoomen.

Die Grösse der Rasterzellen kann frei verändert werden, indem man die Trennlinien der vertikalen und horizontalen Lineale an eine andere Stelle zieht :

Der LD Editor wählt die Grösse der Schriftart entsprechend zum Zoom Ratio, so dass die Namen der den Kontakten und Spulen zugeordneten Variablen stets lesbar sind. Wenn die Zellen hoch genug sind, erscheinen zusätzlich zum Variablennamen weitere Informationen zur Variablen:

  • Ihr Tag (kurze Beschreibung).
  • Ihr Beschreibungstext.
  • Ihr I/O Name (%...), wenn die Variable einen benutzerdefinierten Namen hat.


LD Komponenten verschieben und kopieren

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Ladder Diagram (LD) Editor -> LD Komponenten verschieben und kopieren

Previous chapter Next chapter Show all Show all Hide all Hide all

Der LD Editor unterstützt die drag-and-drop Funktion zum Verschieben und Kopieren von Objekten. Um ein Objekt zu verschieben, wird es ausgewählt und einfach an die gewünschte Stelle gezogen, ob im selben oder einem anderen Rung.

Um ein Objekt zu kopieren, verfährt man wie oben und hält beim Ziehen des Objekts die CONTROL Taste gedrückt. Es ist ebenfalls möglich, Diagrammteile von einem Programm in ein anderes zu ziehen, wenn beide Programme offen und auf dem Bildschirm sichtbar sind .

Beim Ziehen der Objekte kann die Operation jederzeit durch Drücken der ESCAPE Taste abgebrochen werden.

Sie können auch die herkömmlichen Befehle Kopieren / Ausschneiden / Einfügen im Menü Bearbeiten benutzen. Die Objekte werden am aktuellen Standort eingefügt.

Wenn man die Kopfzelle eines Rungs auswählt (die Zelle am linken Rand mit der Rung-Nummer), kann man das ganze Rung manipulieren.


Structured Text (ST) / Instruction List (IL) Editor

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Structured Text (ST) / Instruction List (IL) Editor

Previous chapter Next chapter Show all Show all Hide all Hide all

Der ST / IL Editor ist ein leistungsfähiger, sprachorientierter Texteditor, der den Sprachen der Norm IEC 61131-3 dediziert ist. Der Editor unterstützt fortschrittliche grafische Funktionalitäten, wie drag-and-drop, Syntaxfärbung und aktive Tooltips für die effiziente Eingabe und das Testen von ST und IL Programmen (deutsche Bezeichnung: "Strukturierter Text" und "Anweisungsliste").

Der ST / IL Editor unterstützt ausserdem eine themenrelevante Hilfsfunktion. Setzen Sie den Eingabecursor auf die Tastatur oder den Namen einer Funktion oder eines Funktionbausteins und drücken Sie die Taste F1, um Hilfe zum Text anzuzeigen.

Noch in diesem Kapitel

ST / IL Sprachauswahl

ST / IL Syntax editing

Automatische Wortergänzung

ST / IL "drag-and-drop" Funktionalitäten/ IL Drag and drop

Tooltips im ST / IL Editor


ST / IL Sprachauswahl

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Structured Text (ST) / Instruction List (IL) Editor -> ST / IL Sprachauswahl

Previous chapter Next chapter Show all Show all Hide all Hide all

In der Workbench können die Sprachen ST und IL gemischt in den Textprogrammen vorkommen. ST ist die Vorgabesprache. Wenn IL Anweisungen eingegeben werden, muss das Programm zwischen den Schlüsselwörtern "BEGIN_IL" und "END_IL" geschrieben werden, wie im folgenden Beispiel:

Example Example

BEGIN_IL
LD var1
ST var2
END_IL


ST / IL Syntax editing

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Structured Text (ST) / Instruction List (IL) Editor -> ST / IL Syntax editing

Previous chapter Next chapter Show all Show all Hide all Hide all

Der ST/IL-Editor unterstützt farbige Syntax gemäß der selektierten Programmiersprache (ST oder IL). Der Editor benützt verschiedene Farben für die folgenden Arten von Wörtern:

  1. Default (Identifiers, Separators, ...)
  2. Reservierte Schlüsselwörter der Sprache
  3. Konstante Ausdrücke
  4. Comments

Sie können die Farben mithilfe des Menüeintrags Tools/Options ändern.

Es sind noch einige andere Features für Smart-Editing vorhanden, die als "Intellisense" bezeichnet werden. Intellisense kann speicherintensiv sein. Sie können es über den Menüeintrag Tools/Options aktivieren/deaktivieren. Nachdem Sie das Intellisense aktiviert/deaktiviert haben, müssen Sie Ihre Projektliste schließen und erneut öffnen. The folgenden Features stehen Ihnen zur Verfügung, wenn Sie Intellisense aktiviert haben:

Conditional compiling coloring

Teil des Codes, die mit #ifdef pragmas konditioniert sind und die nicht gültig sind, werden grau dargestellt.

Auto-indentation

Zeilen werden automatisch von links formatiert (eingerückt), während Sie strukturierte ST Statements eingeben.

Auto-completion der ST Statements

Geben Sie in einer leeren Zeile nur das Schlüsselwort eines ST Statements ein wie z.B. "for", "if"... und drücken Sie danach Eingabe. Das gesamte Statement wir vervollständigt inklusive Kommentaren, die Sie durch die Syntax führen. Der Cursor wird automatisch an die Stelle platziert, an der Sie den ersten erforderlichen Term oder die erste erforderliche Bedingung eingeben müssen.

Auto-completion der Funktionsaufrufe

Geben Sie den Namen einer Funktion einfach gefolgt von einer öffnenden Klammer an und drücken Sie danach Eingabe. Der Aufruf wird vervollständigt mit der passenden Argumentenliste inklusive Kommentaren und möglichen Default-Werten. Dadurch werden Sie durch die Liste der Werte geführt, die der aufgerufenen Funktion übergeben werden.

Auto-declaration fehlender Symbole

Wenn Sie am Ende einer Zeile mit einem unbekannten Variablen-Symbol Eingabe drücken, werden Sie direkt aufgefordert es zu deklarieren.


Automatische Wortergänzung

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Structured Text (ST) / Instruction List (IL) Editor -> Automatische Wortergänzung

Previous chapter Next chapter Show all Show all Hide all Hide all

Der ST / IL Editor schliesst leistungsfähige Befehle zur automatischen Ergänzung der getippten Wörter entsprechend der deklarierten Variablen und Datentypen ein. Folgende Funktionen stehen zur Verfügung:

Automatische Ergänzung eines Variablennamens

Bei der Eingabe der ersten Buchstaben eines Variablennamens besteht die Möglichkeit, den Namen durch Drücken der Taste Strg + Leertaste automatisch zu ergänzen. Wenn mehrere deklarierte Variablen den getippten Zeichen entsprechen, wird eine Popup-Liste mit einer möglichen Auswahl angezeigt.

Auswahl eines FB Elements

Wenn Sie den Namen einer Funktionsbaustein-Instanz (als Instanz oder Datenstruktur benutzt) eingeben und anschliessend die Taste "." tippen, erscheint eine Popup-Liste mit den Namen der möglichen Elemente.

Weitere syntaxbezogene Befehle

Wenn Zeilen ausgewählt sind, können diese automatisch eingerückt werden. Drücken der Tasten TAB oder Shift+TAB verschiebt die Zeilen durch Einfügen oder Entfernen von Leerzeichen auf der linken Seite nach links oder rechts.


ST / IL "drag-and-drop" Funktionalitäten/ IL Drag and drop

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Structured Text (ST) / Instruction List (IL) Editor -> ST / IL "drag-and-drop" Funktionalitäten/ IL Drag and drop

Previous chapter Next chapter Show all Show all Hide all Hide all

Der ST / IL Editor unterstützt leistungsfähige "drag-and-drop" Funktionalitäten, die bei der Entwicklung und dem Testen von Programmen äusserst hilfreich sind. Sie können:

  • Text (Wörter oder Zeilen) vom ST / IL Editor in eine andere Anwendung ziehen (zum Beispiel in einen Texteditor).
  • Text aus einem Texteditor in den ST / IL Editor ziehen.
  • Ein Variablensymbol vom Variableneditor in den ST / IL Editor ziehen.
  • Ein Variablensymbol vom ST / IL Editor in das Überwachungsfenster (Watch List) ziehen (*).

(*) Wenn Sie das Symbol eines Felds (array) in das Überwachungsfenster ziehen, werden alle Elemente des Felds in die Liste eingefügt.


Tooltips im ST / IL Editor

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Structured Text (ST) / Instruction List (IL) Editor -> Tooltips im ST / IL Editor

Previous chapter Next chapter Show all Show all Hide all Hide all

Beim Testen eines Programms (Online- oder Simulationsmodus) zeigt der ST / IL Editor den aktuellen Wert einer Variablen in einem Tooltip, wenn der Mauscursor auf den Varieblennamen plaziert wird. Zur Anzeige des Tooltips ist kein Befehl erforderlich, er wird nach einer Sekunde automatisch angezeigt.

Der im Tooltip angezeigte Wert wird automatisch aktualisiert, solange der Tooltip offen ist.


Funktionsbausteine auswählen

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Funktionsbausteine auswählen

Previous chapter Next chapter Show all Show all Hide all Hide all

Alle zur Verfügung stehenden Operatoren, Funktionen und Funktionsblöcke sind im unteren rechten Bereich des Editors aufgelistet. Die Liste ist in Kategorien eingeteilt.

In der Kategorie Alle finden Sie alle zur Verfügung stehenden Funktionsbausteine. Die Kategorie Aktuell enthält die zuletzt benutzten Bausteine. In der Kategorie Projekt finden Sie eine Liste mit allen UDFBs und Unterprogrammen welche im Projekt deklariert sind.

Um einen Funktionsbaustein in das Programm einzufügen, wählen Sie den gewünschten Baustein mit der Maus aus und ziehen diesen per Drag and Drop zur gewünschten Stelle im Programm (Text oder Grafik).

Drücken Sie die Taste F1, wenn ein Baustein ausgewählt ist, um die Online-Hilfe zu seiner Funktion und seinen Input und Output Pins anzuzeigen. Im Selektionsmodus können Sie im Diagramm auf einen Baustein doppelklicken, um seinen Typ zu modifizieren und die Anzahl der Input Pins festzulegen, sofern der Baustein erweiterungsfähig ist.


Variablen und Instanzen auswählen

IEC 61131-3 Programming Environment -> Programme bearbeiten -> Variablen und Instanzen auswählen

Previous chapter Next chapter Show all Show all Hide all Hide all

Die Variablen- und Instanzensymbole werden in der Variablenliste ausgewählt. Diese Liste kann auch als Variableneditor benutzt werden. Die Variablenauswahl ist in allen Editoren verfügbar:

  • Im FBD Diagramm doppelklickt man auf ein Variablenkästchen, einen FB-Instanzennamen, einen Kontakt oder eine Spule, um die zugeordnete Variable auszuwählen.
  • Im LD Diagramm doppelklickt man auf einen Kontakt, eine Spule oder den Input oder Output eines Bausteins, um die Variable auszuwählen. Doppelklicken Sie auf ein FB-Rechteck, um eine Instanz auszuwählen.
  • In den ST/IL Texten leitet man den Befehl Variable einfügen/stellen im Menü Bearbeiten ein, um eine Variable auszuwählen und ihren Namen in den Text einzufügen.

Wenn der Variableneditor sichtbar ist, können Sie eine Variable per "drag and drop" in das Programmfenster einfügen.

Wird ein Variablenname manuell eingefügt, wird überprüft, ob dieser bereits existiert. Ist dies nicht der Fall, werden Sie gefragt, ob diese Variable deklariert werden soll.


Quick Search

IEC 61131-3 Programming Environment -> Quick Search

Um Text im Diagramm zu suchen und zu ersetzen, benutzen Sie die betreffenden Befehle im Menü Bearbeiten. Sie können aber auch das Quick Search Feld in der Zustandsleiste benutzen:

Diese Funktion ist in allen Fenstern der Workbench verfügbar.

Klicken Sie einfach auf das Eingabefeld, geben Sie den gesuchten Text ein und drücken Sie die ENTER Taste. Sie können auch auf die kleine Schaltfläche klicken, um das nächste Vorkommen des eingegebenen Texts zu suchen.


Lesezeichen

IEC 61131-3 Programming Environment -> Lesezeichen

Lesezeichen dienen dazu, ein Dokument zeitsparend zu durchlaufen. Sie können an beliebigen Stellen in das Dokument eingefügt werden. Anschliessend navigiert man mit einem einzigen Befehl von einem Lesezeichen zum nächsten, um das Dokument rationell zu durchlaufen. Lesezeichen werden von allen Programmeditoren sowie vom Variableneditor unterstützt.

Die folgenden Befehle sind verfügbar:

Tastenkombination | Beschreibung
Ctrl + F2 | Das Lesezeichen an der aktuellen Position umschalten.
Shift + F2 | Zum nächsten Lesezeichen übergehen.

Je nach Dokumenttyp können Lesezeichen an folgenden Stellen eingefügt werden:

  • Im Texteditor wird das Lesezeichen auf eine Textzeile gesetzt.
  • Im SFC Editor wird das Lesezeichen auf ein SFC Symbol (Schritt, Transition, Sprung...) gesetzt.
  • Im FBD Editor wird das Lesezeichen auf ein beliebiges FBD Objekt (nicht auf eine Linie) gesetzt.
  • Im LD Editor wird das Lesezeichen auf einen Rung-Anfang gesetzt.
  • Im Variableneditor wird das Lesezeichen auf eine beliebige Zeile des Rasters (Variable oder Gruppe) gesetzt.

info Info

Lesezeichen sind nur im offenen Bearbeitungsfenster gültig und werden beim Schliessen des Fensters nicht im Dokument gespeichert.


Projekt Eigenschaften

IEC 61131-3 Programming Environment -> Projekt Eigenschaften

Starten Sie Projekt / Einstellungen um zu den Einstellungen des Projekts zu gelangen:

  • Parameter
  • Zielsystem
  • Runtime
  • Compiler
  • Debug
  • Online Change
  • "C" Compiler

Noch in diesem Kapitel

Projekt Eigenschaften

Projekt Eigenschaften - Zielsystem

Projekt Eigenschaften - Runtime

Projekt Eigenschaften - Compiler

Projekt Eigenschaften - Debug

Projekt Eigenschaften - Online Change

Projekt Eigenschaften - "C" Compiler


Projekt Eigenschaften

IEC 61131-3 Programming Environment -> Projekt Eigenschaften -> Projekt Eigenschaften

Previous chapter Next chapter Show all Show all Hide all Hide all

Dieser Dialog definiert die Haupt-Parameter für das Kompilieren und für die Laufzeit einer Applikation.

Zielsystem

Bitte wählen Sie hier den Typ der Win-GRAF PAC driver aus, welche auf Ihrem Zielsystem installiert ist:

  • T5RTI: Win-GRAF PAC driver für Little Endian Prozessoren (Intel Byte-Ordering)
  • T5RTM: Win-GRAF PAC driver für Big Endian Prozessoren (Motorola Byte-Ordering)
  • Spezifisch

Um die Einstellung für eine spezifische Runtime vorzunehmen klicken Sie auf den Erweitert Button.

Code Generierung

Wenn Sie Step by Step Debugging für die Simulation oder den Online Test verwenden wollen wählen Sie bitte Debug. Wenn Step by Step Debugging nicht mehr benötigt wird wählen Sie bitte Freigeben. Damit erreichen die Runtime Applikation eine bessere Performance.

Ausführungsmodus

Hier geben Sie an wie die Zyklen zur Laufzeit getriggert werden:

  • So schnell wie möglich (Freilauf): Das Zielsystem wartet nicht zwischen zwei Zyklen. Das Zielsystem läuft einfach so schnell wie möglich.
  • Getriggert: Geben Sie eine Zykluszeit in Mikrosekunden ein. Sehen Sie in den OEM Anweisungen bezüglich der gewährleisteten Präzision des Timings der Zykluszeit ihres Zielsystems nach.

Externe Objekte

In der Workbench können Sie im aktuellen Projekt mit Objekten arbeiten, welche in einem anderen Projekt definiert wurden (z.B. UDFBs). Dadurch ergibt sich ein einfacher Weg IEC Bibliotheken aus anderen Projekten wieder zu verwenden. Zusätzlich bietet die Workbench die Möglichkeit extern definierte Objekte im lokalen Projekt zu verwenden.

Klicken Sie den Editieren Button um Externe Objekte in Ihrem Projekt zu verwalten.

Weitere Optionen

Klicken Sie den Erweitert Button um weitere Parameter und Optionen definieren zu können.


Projekt Eigenschaften - Zielsystem

IEC 61131-3 Programming Environment -> Projekt Eigenschaften -> Projekt Eigenschaften - Zielsystem

Previous chapter Next chapter Show all Show all Hide all Hide all

Mit diesem Dialog können Sie die Type der Win-GRAF PAC driver auswählen welche auf Ihrem Zielsystem installiert ist.

Zielsystem

Wählen Sie die Type der Win-GRAF PAC driver aus, welche auf Ihrem System installiert ist:

  • T5RTI: Win-GRAF PAC driver für Little Endian Prozessoren (Intel Byte-Ordering)
  • T5RTM: Win-GRAF PAC driver für Big Endian Prozessoren (Motorola Byte-Ordering)
  • Spezifisch

Wenn Sie eine T5RTI oder T5RTM Runtime auswählen, sind alle weiteren Einstellungen vorgegeben. Wenn Sie eine Spezifische Runtime einsetzten nehmen Sie bitte Bezug auf Ihre OEM Anweisungen für Einstellung der übrigen Parameter.

Identifikation

Ein Zielsystem identifiziert sich durch einen Name. Dieser Name wird im kompilierten Code inkludiert und zur Laufzeit überprüft. Weiters muss ein Suffix für die generierte Datei welche den SPS Code enthält spezifiziert werden. Der Download funktioniert nicht wenn der hier definierte Suffix nicht mit dem von der Runtime erwarteten Suffix übereinstimmt.

Prozessor

Bestimmen Sie hier die Byte-Ordering Convention des Runtime Prozessors:

  • Little Endian (Intel Byte-Ordering)
  • Big Endian (Motorola Byte-Ordering)

P-Code

Selektieren Sie Spezifisch wenn Ihr System mit einem spezifischen P-Code Anweisungssatz arbeitet.


Projekt Eigenschaften - Runtime

IEC 61131-3 Programming Environment -> Projekt Eigenschaften -> Projekt Eigenschaften - Runtime

Previous chapter Next chapter Show all Show all Hide all Hide all

In diesem Dialog können Sie die wichtigsten Compiler- und Ausführungs-Optionen einer Laufzeitapplikation einstellen.

Code Generierung

Wenn Sie Step by Step Debugging für die Simulation oder den Online Test benötigen, selektieren Sie bitte den Debug Compiler Modus. Wenn Step by Step Debugging nicht mehr benötigt wird, sollten Sie im Freigeben Compiler Modus kompilieren. Damit ist eine höhere Performance gegeben.

Execution Modus

Hier wird definiert wie die Zyklen zur Laufzeit getriggert werden:

  • So schnell wie möglich (Freilauf): Das Zielsystem wartet nicht zwischen zwei Zyklen. Das Zielsystem läuft einfach so schnell wie möglich.
  • Getriggert: Hierfür muss eine Zykluszeit angegeben werden (Mikrosekunden). Bitte nehmen Sie Bezug auf die OEM Anweisungen für die gewährleistete Präzision der Zykluszeiten Ihres Zielsystems.

Variablen verriegeln

Abhängig vom gesetzten Radio Button werden mehr oder weniger Verriegelungen zur Laufzeit unterstützt:

  • Nur I/O I/O Variablen können zur Laufzeit verriegelt und geforced werden.
  • Alle Variablen Alle Variablen können zur Laufzeit verriegelt und geforced werden.
  • Keine Variablen-Verriegelung deaktiviert.

Die Auswahl "Nur I/O" bezieht sich ausschließlich auf I/O Boards!

Arrays, Strukturen und Instanzen

Wird die Option Komplexe Variablen in separatem Segment speichern aktiviert, werden alle komplexen Variablen (Arrays, Strukturen und Funktionsblock Instanzen) getrennt von den einfachen Variablen gespeichert. Mit dieser Option kann eine größere Anzahl an komplexen Daten in Ihrer Applikation verwaltet werden. Genauere Angaben finden Sie hier.


Projekt Eigenschaften - Compiler

IEC 61131-3 Programming Environment -> Projekt Eigenschaften -> Projekt Eigenschaften - Compiler

Previous chapter Next chapter Show all Show all Hide all Hide all

In diesem Dialog werden die erweiterten Optionen für den Compiler eingestellt.

Optionen

Die folgenden Optionen stehen zur Verfügung

  • FBD Signalstatus aktivieren.
  • Warnungen anzeigen (Wenn diese Option deaktiviert wird, werden keine Warnungen im Compiler-Report ausgegeben).
  • Anweisungen für weite Sprünge erlauben(*).
  • Symbole aller Variablen einbetten.
  • Groß-/Kleinschreibung der Symbole beibehalten (Wenn nicht aktiviert, werden alle eingebetteten Symbole als großgeschrieben behandelt).
  • Sicherheit des SFC Diagramms überprüfen.
  • Array Grenzen zur Laufzeit überprüfen.
  • Code von nicht verwendeten Unterprogrammen und UDFBs entfernen (**).
  • IEC 61131-3 Konformität überprüfen (***).
  • Status Bits für Variablen mit eingebetteten Eingeschaften allokieren.

(*) Bei sehr großen Programmen können Sprung-Anweisungen (z.B. für IF-Abfragen und Schleifen) zu Compiler-Fehlern führen, weil das Sprungziel zu weit weg ist. In diesem Fall muss diese Option aktiviert werden. Warnung: Diese Option wird von Versionen älter als V2.20 nicht unterstützt.

(**) Wenn diese Option gesetzt ist, wird nicht verwendeter Code von Unterprogrammen und UDFBs im kompilierten Code nicht berücksichtigt. Damit kann die Größe des Codes welcher auf das Zielsystem geladen wird reduziert. Die Unterprogramme und UDFBs und deren Variablen existieren aber weiterhin, so dass ein möglicher späterer Online Change weiterhin möglich ist.

(***) Wenn diese Option eingeschaltet ist, wird der Programmcode auf Konformität mit dem Standard IEC 61131-3 überprüft. Werden Warnungsmeldungen ausgegeben, bedeutet dies, dass Funktionen oder Funktionsblöcke verwendet wurden, welche nicht vom Standard IEC 61131-3 definiert sind. Dies gilt nur für eingebettete Blöcke und nicht für UDFBs welche in einer IEC-Sprache geschrieben wurden.

Runtime Passwort

Optional kann ein Passwort definiert werden, welches den Zugriff über die Win-GRAF Workbench regelt. Jedes Mal wenn eine Verbindung zum Zielsystem hergestellt wird, wird das Passwort abgefragt. Das Passwort ist eine Zahl. Das Passwort "0" wird als "kein" Passwort interpretiert.

Weitere Optionen

Weiter - nicht dokumentierte - Optionen könne in dieser Box eingegeben werden. Für gewöhnlich sollten die Einträge in dieser Box nicht verändert werden, außer Sie bekommen die Anweisung von Ihrem technischen Support.

Noch in diesem Kapitel

Signalstatus von FBD Linien

Sicherheitsoptionen für das Kompilieren

Management von komplexen Variablen zur Runtime


Signalstatus von FBD Linien

IEC 61131-3 Programming Environment -> Projekt Eigenschaften -> Projekt Eigenschaften - Compiler -> Signalstatus von FBD Linien

Previous chapter Next chapter Show all Show all Hide all Hide all

Als Option kann der Debugger den Echtzeit-Signalstatus von FBD Linien während des Debuggings anzeigen.

Diese Option muss vor dem Kompilieren des Projekts aktiviert werden. Die Option befindet sich auf der Seite Erweitert der Compiler Optionen Dialogbox.

Wenn diese Option aktiv ist, fügt der Compiler automatisch Variablen und Anweisungen zum erstellten Applikations-Code, so dass der Status aller FBD Linien während des Debuggings beobachtet werden kann.

Das Aktivieren dieser Option vergrößert den downgeloadeten Code und kann die Runtime Performance verringern. Es wird empfohlen diese Option zu deaktivieren, sobald die Applikation voll getestet ist und für die endgültige Implementierung im RELEASE Modus kompiliert werden soll.


Sicherheitsoptionen für das Kompilieren

IEC 61131-3 Programming Environment -> Projekt Eigenschaften -> Projekt Eigenschaften - Compiler -> Sicherheitsoptionen für das Kompilieren

Previous chapter Next chapter Show all Show all Hide all Hide all

Der Compiler und Debugger beinhaltet einige Optionen, die es Ihnen ermöglichen die Sicherheit Ihrer Runtime Applikationen zu erhöhen. Diese Optionen können auf der Seite Erweitert der Compiler Optionen Dialogbox ausgewählt werden:

Indexgrenzen zur Runtime überprüfen

Wenn diese Option aktiviert ist, fügt der Compiler automatisch Extraanweisungen in den Applikations-Code ein, so dass Grenzen vor dem Lesen oder Schreiben eines Array-Elements automatisch überprüft werden. Es wird wärmstens empfohlen diese Option während der Entwicklung und dem Testen Ihrer Applikationen zu aktivieren.

Das Deaktivieren dieser Option erlaubt es die Codegröße der Applikation zu verringern und führt zu einer höheren Runtime Performance.

Sicherheit von SFC Diagrammen überprüfen

Als Option kann der Compiler die Sicherheit aller SFC Diagramme während des Kompilierens überprüfen. Dies ermöglicht die Entdeckung möglicher unsicherer oder blockierender Situationen, die auf die Ausprägung des SFC Diagramms zurückgehen. Im folgenden einige Beispiele solcher Situationen.

Example Example
Mögliche unsichere Situation: Nachdem es keine "AND" Konvergenz gibt, können mehrere Schritte (wie etwa 1 und 2) zur selben Zeit aktiv sein. | Mögliche blockierende Situation: Nachdem entweder Transition 1 oder 101 überschritten wird, kann die Transition 2 nie überschritten werden.

info Info

Der Compiler gibt nur Warnhinweise aus, wenn er die SFC Diagramme überprüft. Es besteht immer noch die Möglichkeit Ihre Applikation laufen zu lassen, auch wenn unsichere Situationen gemeldet werden.


Management von komplexen Variablen zur Runtime

IEC 61131-3 Programming Environment -> Projekt Eigenschaften -> Projekt Eigenschaften - Compiler -> Management von komplexen Variablen zur Runtime

Previous chapter Next chapter Show all Show all Hide all Hide all

Die folgende Option im Erweitert Tab der Compiler Optionen definiert wie komplexe Variablen zur Runtime behandelt werden:

Icon | Beschreibung
 | Komplexe Variablen werden in eigenem Bereich abgelegt.

Wenn diese Option gesetzt ist, werden alle komplexen Variablen in einem eigenen Speicherbereich der Win-GRAF PAC driver abgelegt. Wenn diese Option nicht gesetzt ist, werden die komplexen Variablen gemeinsam mit den einfachen Variablen abgelegt.

attention Attention

Diese Option wird von Win-GRAF PAC drivers der Version 2.2.0 oder älter nicht unterstützt.

Diese Option muss mit Vorsicht angewendet werden. Die gesetzte Option stellt mehr Möglichkeiten hinsichtlich komplexer Variablen zur Verfügung und erweitert die Kapazität des Runtime Speichers. Dagegen kann es bei gesetzter Option zu einer geringeren Performance kommen. Es wird empfohlen die Option nicht einzuschalten, solange die Extra-Features nicht benötigt werden. Dadurch ist sichergestellt, dass die Applikation die höchste Performance bietet.

Komplexe Variablen sind alle Arrays, Strukturen und Instanzen von Funktionsblöcken. Wenn die Option gesetzt ist, sind folgende Features bei der Programmierung erlaubt:

  • Arrays von Strukturen.
  • Arrays von FB Instanzen.
  • Übergaben von komplexen Daten (Array, Strukturen, Instanzen) an UDFBs oder Unterprogrammen.
  • Fast keine Begrenzung hinsichtlich der Menge an komplexen Variablen.
    (theoretisch bis zu 4GB - aber praktisch beschränkt durch den Speicher der Hardware der Win-GRAF PAC driver)


Projekt Eigenschaften - Debug

IEC 61131-3 Programming Environment -> Projekt Eigenschaften -> Projekt Eigenschaften - Debug

Previous chapter Next chapter Show all Show all Hide all Hide all

Dieser Dialog enthält die Haupt-Optionen für die Simulation und das Debugging einer Applikation.

Simulation

Wenn Sie die Option Simulator immer im Kaltstart Modus starten aktivieren, wird der Dialog, welcher normalerweise bei jedem Simulatorstart aufgerufen wird, nicht angezeigt.

Diese Option gilt für jedes Projekt!

Verbunden mit Runtime

Mit diesen Optionen aktivieren Sie Meldungen zur Anwender-Bestätigung für sensible Debugging-Anweisungen:

  • Bestätigen vor de Stoppen der Applikation.
  • Bestätigen vor Download.
  • Bestätigen vor Online Change.

Diese Optionen gelten für alle Projekte!

Beim Starten der Runtime

Diese Option gibt dem Anwender die Möglichkeit auszuwählen, welche Art des Runtime Start vorgeschlagen wird. Der Anwender hat beim eigentlichen Start der Runtime weiterhin die Möglichkeit die Start-Art zu ändern.

Kommunikationsparameter

Hier können Sie die auswählen, wie Kommunikationsparameter eingestellt werden:

  • Aktuelle Einstellungen verwenden: Startet die Kommunikation mit den zuletzt verwendeten Parametern.
  • Verwenden: Alternativ können Sie hier die Kommunikationsparameter eingeben, welche für dieses Projekt verwendet werden sollen.


Projekt Eigenschaften - Online Change

IEC 61131-3 Programming Environment -> Projekt Eigenschaften -> Projekt Eigenschaften - Online Change

Previous chapter Next chapter Show all Show all Hide all Hide all

In diesem Dialog können Sie Haupt-Einstellungen für den Online Change vornehmen. Eine genauere Beschreibung dieses Features finden Sie unter Online Change.

Sie können in diesem Dialog die Online Change Funktionalität aktivieren und deaktivieren. Wenn Online Change aktiviert ist, müssen Sie einen Speicherbereich definieren, welcher für die Deklaration von neuen Variablen auf dem Zielsystem für jeden Datentyp reserviert werden kann. Dies beinhaltet:

  • Die Anzahl von Variablen eines jeden Datentyps (8, 16, 32 oder 64 Bits, Strings).
  • Die Anzahl von Funktionsblock-Instanzen.
  • Die Größe des Speichers für den String Puffer.
  • Die Größe des Speichers für die privaten Variablen von Funktionsblock-Instanzen.
  • Die Anzahl der nach Außen sichtbaren Variablen (mit eingebettetem Symbol oder Profil).
  • Die Größe des Speichers für die Ablage von komplexen Variablen.

Um einen Wert einzugeben, wählen Sie bitte den entsprechenden Bereich in der Liste aus. Wählen sie die Option Wert, geben sie die neue Zahl für den Wert ein und klicken Sie auf Übernehmen. Sie können auch mehrere Bereiche in der Liste auswählen und diesen den selben Wert in einem Schritt zuordnen.

Wurde das Projekt bereits kompiliert, werden die aktuellen Werte der Applikation angezeigt. Die prozentuelle Auslastung jedes Bereichs wird als Progress-Bar angezeigt. Anstelle der Absolut-Werteingabe kann auch eine prozentuelle Grenze für den reservierten Speicherbereich eingegeben werden.

attention Attention
  • Die angezeigten "Verwendet"-Werte sind nur nach einem Compile-Vorgang gültig. Sobald in der Applikation Änderungen durchgeführt wurden, stimmen diese Werte nicht mehr!
  • Die Größe des Speichers für private Variablen von Funktionsblock-Instanzen ist ein angenommener Wert welcher auf einer Berechnung auf Basis des Simulators beruht. Diese Berechnung berücksichtigt keine Funktionsblöcke welche ausschließlich auf Ihrem Runtime System verwendet werden. Daher kann der eigentliche Wert auf Ihrem Runtime System größer sein.


Projekt Eigenschaften - "C" Compiler

IEC 61131-3 Programming Environment -> Projekt Eigenschaften -> Projekt Eigenschaften - "C" Compiler

Previous chapter Next chapter Show all Show all Hide all Hide all

Zur Steigerung der Performance kann der Compiler Maschinencode erzeugen. Dies geschieht über den "C" Compiler. In diesem Fall durchläuft der P-Code einen Post-Compiler welcher "C"-Code erzeugt. Anschließend wird der "C"-Code mittels "C" Compiler eines Drittherstellers in Maschinencode umgewandelt. In diesem Dialog finden Sie alle relevanten Optionen für den "C" Compiler.

attention Attention

Die Möglichkeit den "C" Compiler zu verwenden hängt von Ihrer Win-GRAF PAC driver Implementierung ab. Bitte lesen Sie in den OEM Anweisungen nach ob dieses Feature aktiviert ist und welcher "C" Compiler verwendet werden muss.

Den "C" Compiler verwenden

Die Liste zeigt alle zur Verfügung stehenden "C" Compiler an. Der "C" Compiler definiert auch das Laufzeitsystem. Wählen Sie keine wenn sie den "C" Compiler nicht aktivieren wollen.

Optionen

P-Code und kompilierten Code generieren und laden:
Um gewohnte Debugging-Features (Step by Step Debugging, Variablen verriegeln,...) auch im "C" Compiler Modus nützen zu können, müssen Sie diese Option aktivieren. Diese Option benötigt mehr Speicher-Ressourcen im Laufzeitsystem.

Kompilierten Code mit Win-GRAF PAC Code laden:
Mit dieser Option wird die Code Datei (meistens eine .DLL) gemeinsam mit dem Applikations-Code auf das Zielsystem geladen.

Compiler Fenster anzeigen:
Der "C" Compiler läuft in einem DOS-ähnlichen Fenster. Wenn dieses Fenster beim Postkompilieren angezeigt werden soll muss diese Option aktiviert sein.

Dritthersteller Bereich (Ordner des "C" Compilers)

Geben Sie hier den Pfad des installierten "C" Compilers an. Klicken Sie auf Überprüfen um zu verifizieren, dass die Workbench den Compiler unter diesem Pfad findet.

Name der Runtime Datei die erzeugt werden soll

Hier geben Sie den Namen der Code-Datei an welche vom "C" Compiler erzeugt werden soll. Bitte lesen Sie in den OEM Anweisungen nach ob Sie für Ihr Laufzeitsystem den Default-Namen verwenden müssen.


Projekt kompilieren

IEC 61131-3 Programming Environment -> Projekt kompilieren

Icon | Beschreibung
 | Um ein Projekt zu kompilieren, klicken Sie auf diese Schaltfläche im Hauptfenster oder drücken Sie die Funktionstaste F7. Bei der Programmverwaltung und -bearbeitung ist die Funktionstaste F7 ebenfalls verfügbar.

Das Projekt muss kompiliert werden, bevor es simuliert oder ins Zielsystem geladen werden kann.

Der Compiler zeigt Meldungen im Ausgabefenster an. Entdeckt der Compiler einen Fehler wird mit einem Doppelklick auf die Fehlermeldungen das entsprechende Programm geöffnet und die fehlerhafte Stelle angezeigt. Weitere Befehle sind im Menüpunkt Projekt verfügbar:

  • Projektsäuberung ("Clean"): Dieser Befehl löscht alle Dateien, die beim letzten Kompilieren erstellt wurden.
  • Einstellung der Compiler-Optionen.


Konfiguration

IEC 61131-3 Programming Environment -> Konfiguration

Die Workbench enthält standardmäßig viele Features und eine reichhaltige Bibliothek an Funktionen und Funktionsblöcken. Abhängig von der Runtime Konfiguration können einige Features oder Bausteine nicht verfügbar sein. Daher ist es möglich Konfigurationen für die Workbench auszuwählen um die Features hervorzuheben welche von der Runtime nicht unterstützt werden.

Icone | Description
 | Um eine Konfiguration auszuwählen starten Sie Projekt / Konfiguration im Hauptmenü.

Es wird eine Liste an möglichen Konfigurationen angezeigt. Die Auswahl <Default> bedeutet, dass kein Einschränkungen angezeigt werden.

Klicken Sie auf OK nach dem Sie die Auswahl getroffen haben. Wenn Ihr OEM ein Konfigurationsdatei (.CFG) zur Verfügung stellt, können Sie diese mit dem Button Import hinzufügen. Eine .CFG Datei beschreibt Ihr Runtime System.

Wenn Sie mit der Workbench mit dem Runtime System verbunden sind, können Sie die Konfiguration direkt laden indem Sie den Button Upload klicken.

Wurde eine Konfiguration in der Liste ausgewählt, zeigen die weiteren Karteireiter folgende Inhalte:

  • Die Identifikation des Runtime Systems.
  • Unterstützte Datentypen.
  • Unterstützte Funktionen und Funktionsblöcke der Standardbibliothek.
  • Zusätzliche OEM-spezifische Funktionen und Funktionsblöcke.

Wenn sie eine Konfiguration ausgewählt haben:

  • Färbt die Workbench alle im Code angewendeten und nicht unterstützen Funktionsbausteine rot ein.
  • Färbt die Workbench alle nicht unterstützten Elemente der Bibliothek rot ein.
  • Werden Warnungen über verwendete, nicht unterstützte Bausteine beim Kompilieren ausgegeben.


Online Change

IEC 61131-3 Programming Environment -> Online Change

Mit der Workbench haben Sie die Möglichkeit, Ihre Anwendung während des Betriebs im Zielsystem zu modifizieren. Hierzu wird die Workbench entsprechend konfiguriert und die Online Change aktiviert.

Leiten Sie den Menübefehl Erstellen / Compiler-Optionen ein und wählen Sie Seite Online Change, um die Anwendung so einzustellen, dass Änderungen akzeptiert werden.

Wenn die Option "Online Change" deaktiviert wird, ist kein Online Change möglich. Die Bearbeitungs- und Programmierfunktionen werden von der Deaktivierung des Online Change jedoch keineswegs beeinträchtigt.

Wenn die Option "Online Change" aktiviert wird, sind die folgenden Online Änderungen während des Betriebs möglich:

  • Änderung des Programmcodes.
  • Änderung der Bedingung einer SFC-Transition oder der Aktionen eines SFC-Schritts.
  • Erstellen, Umbenennen oder Löschen von globalen und lokalen Variablen.
  • Erstellen, Umbenennen oder Löschen von globalen und lokalen Funktionsblock-Instanzen.

Die folgenden Änderungen sind nicht zulässig:

  • Erstellen, Löschen oder Umbenennen eines Programms.
  • Änderung von SFC-Netzwerken.
  • Änderung der lokalen Parameter und Variablen eines UDFB (benutzerdefinierter FB).
  • Änderung des Datentyps, der Dimension oder der Stringlänge einer Variable oder einer FB-Instanz.
  • Änderung von I/O-Baugruppen.
  • Änderung der Definition von RETAIN (nicht-flüchtigen) Variablen.

Außerdem bringen die folgenden Programmierfunktionen bei Online Change Gefahren mit sich und sind daher ebenfalls nicht zulässig:

  • Puls (P oder N) -Kontakte und -Spulen (Flankenerkennung) bei Ladder Diagram (LD).
    Verwenden Sie deklarierte Instanzen der Funktionsblöcke R_TRIG und F_TRIG.
  • Schleifen im FBD ohne Verknüpfung einer deklarierten Variablen.
    Sie müssen eine Variable expliziert in die Schleife einfügen.

Online Change wird durch die Runtime abgelehnt, wenn zum Zeitpunkt des Online Change eine oder mehrere Systemressourcen geöffnet sind. Eine Systemressource ist entweder eine von der Dateiverwaltung geöffnete Datei, eine durch die TCP oder UDP -Funktion geöffnete Verbindung (open socket) oder ein dynamisches Array, das mithilfe der Funktion ARCREATE erzeugt wurde.

Die Daten für Embeded HMI (Screens, Bitmaps, Schriften, Text) werden bei Online Change nicht berücksichtigt.

Um die Deklarationen neuer Variablen und Bausteine zu ermöglichen, ist es erforderlich, den im Zielsystem für jeden Datentyp zuzuordnenden Speicherplatz zu definieren. Einschließlich:

  • Anzahl der Variablen für jeden Typ (8, 16, 32 oder 64 Variablen, Zeichenfolgen).
  • Anzahl der Funktionsblock-Instanzen.
  • Umfang des Speicherplatzes für die Zeichenfolgen.
  • Umfang des Speicherplatzes für private Variablen von Funktionsblock-Instanzen.

Die Anzahl der zurzeit in der Anwendung benutzten Variablen erscheint nach jedem Kompilieren für jeden Datentyp in einem Bericht. Änderungen werden solange akzeptiert, bis die Anzahl der Variablen für wenigstens einen Datentyp überschritten wird. Wenn jetzt noch neue Variablen deklariert werden sollen, muss die Konfiguration der Speicherplatzzuordnung geändert werden. Dann muss die Anwendung neu kompiliert und ein vollständiger Download durchgeführt werden, wobei das Zielsystem gestoppt werden muss.

Wenn die Online Change aktiviert ist, erscheinen alle neu erstellten Variablen im Variableneditor in blau. Gelöschte Variablen werden auch weiterhin angezeigt. Sie erhalten das Vorzeichen _del_ und erscheinen geghosted. Es besteht jedoch die Möglichkeit, eine geghostede Variable manuell umzubenennen, wenn sie wieder aktiviert werden soll.

info Info

Die Funktion "Online Change" kann beim Starten des Simulators im "Hot Restart"-Modus ausprobiert werden. Ein "Hot Restart" ist möglich, wenn die Option "Online Change" aktiv ist und die Anwendung gültige Änderungen enthält.


Definitionen

IEC 61131-3 Programming Environment -> Definitionen

Der Compiler unterstützt Alias-Definitionen. Ein Alias ist ein einmaliger Bezeichner, der in den Programmen benutzt werden kann, um einen Text zu ersetzen. Definitionen werden typischerweise benutzt, um Konstantenausdrücke zu ersetzen und die Wartung der Programme zu erleichtern.

Die Workbench verfügt über 3 Definitionsebenen:

  • Allgemeine, für alle auf Ihrem Gerät installierten Projekte gültige Definitionen.
  • Globale, für alle Programme eines Projekts gültige Definitionen.
  • Lokale, für nur ein Programm gültige Definitionen.

Allgemeine und globale Definitionen können über Datei / Öffnen im Hauptfenster editiert werden. Lokale Definitionen werden mit dem korrespondierenden Programm editiert. Über Ansicht / Lokale Definitionen können diese für das gerade bearbeitete Programm definiert werden.

Die Definitionen werden mit Hilfe eines Texteditors eingegeben. Jede Definition muss gemäß der folgenden Syntax auf einer Textzeile geschrieben werden:

#define Bezeichner Äquivalenz (* Kommentare *)

Example Example

#define OFF FALSE (* Neudefinierung einer FALSE Konstanten *)
#define PI 3.14 (* numerische Konstante *)
#define ALARM (bLevel > 100) (* komplexer Ausdruck *)

Es besteht auch die Möglichkeit, eine Definition innerhalb einer anderen Definition zu benutzen. Zuerst muss die Definition deklariert werden, die in der anderen Definition enthalten ist.

Example Example

#define PI 3.14
#define TWOPI (PI * 2.0)

info Info

Eine Definition kann leer sein, z.B.:

#define CONDITION

Die Definition kann als Anweisung für das bedingte Kompilieren verwendet werden.

Sie können #define Anweisungen direkt in den Source Code eines IL oder ST Programms einfügen.

Definitionen können sich bei der Programmüberwachung als störend erweisen und komplizierte Fehlerberichte bewirken. Es wird daher empfohlen, den Gebrauch der Definitionen auf einfache Ausdrücke zu beschränken, so dass beim Lesen und Debuggen eines Programms keine Missverständnisse aufkommen können.

System Definitionen

Folgende Schlüsselwörter sind vom Compiler vordefiniert und können in Programmen verwendet werden:

Schlüsselwort | Beschreibung
__DATE__ | Datumsstempel des letzen Compiler-Laufs, dargestellt als Stringkonstante. Format: Jahr/Monat/Tag-Stunde:Minuten.
__MACHINE__ | Rechnername des Computers auf dem kompiliert wurde. Dargestellt als Stringkonstante.
__USER__ | Username des Users der den Compiler-Lauf angestoßen hat. Dargestellt als Stringkonstante.

Example Example

Das folgende ST Programm beschreibt Variablen welche als STRING(255) deklariert wurden:

strDate := __DATE__;
strMachine := __MACHINE__;
strUser := __USER__;

Ergebnis:

strDate ist '2007/11/25-10:45'
strMachine ist 'LabtopJX'
strUser ist 'John'


Ausführung der Anwendung

IEC 61131-3 Programming Environment -> Ausführung der Anwendung

Previous chapter Next chapter Show all Show all Hide all Hide all

Benutzen Sie die folgenden Befehle im Hauptfenster, um Ihre Anwendung zu testen oder zu überwachen:

Icon | Beschreibung
 | Klicken Sie auf diese Schaltfläche oder drücken Sie die Tasten Ctrl+F5 um in den Onlinemodus zu wechseln und die Verbindung mit dem Remote-Zielsystem herzustellen. Die Überwachung und das Laden von Projekten ist erst verfügbar, wenn die Verbindung hergestellt ist.
 | Klicken Sie auf diese Schaltfläche oder drücken Sie die Taste F5 um die Simulation einzuleiten.

Diese Befehle beziehen sich auf das Start Projekt. Es kann immer nur jeweils ein Projekt getestet werden. Um das Start Projekt zu ändern, wählen Sie ein Projekt im Arbeitsbereich-Fenster und führen den Befehl "Als Start Projekt setzen" im Kontextmenü (rechter Mausklick) aus.

Siehe auch:

  • Kommunicationsparameter
  • Kontrollleiste
  • Log-Fenster

Wie man eine Anwendung überwacht:

  • Die Editoren im Testmodus benutzen
  • Das Watch-Fenster benutzen
  • Grafisches Monitoring
  • Kommandozeilen Debugging
  • Die digitale Sampling Aufzeichnung
  • Step by Step Debugging, Breakpoints und Call Stack
  • Soft-Oszilloskop

In der Programmliste ist es möglich die Ausführung jedes Programms zur Laufzeit zu steuern. Verwenden Sie dazu die Befehle im Menü "Projekt" um:

  • Das ausgwählte Programm zu stoppen oder zu starten.
  • Das ausgewählte Programm zu unterbrechen oder weiterlaufen zu lassen.

Gestoppte Programme werden in der Liste rot dargestellt. Angehaltene Programme werden blau dargestellt.

Noch in diesem Kapitel

Kommunikations-Parameter

Die Kontrollleiste

Die Editoren im Testmodus benutzen

Das Überwachungsfenster (Watch-Fenster)

Kommandozeilen Debugging

Die Verwendung des Watch-Fensters für die grafische Darstellung

Digitale Sampling-Aufzeichnung

Step by step debugging

Das Ausgabefenster

Soft-Oszilloskop

Test Sequences
© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


Kommunikations-Parameter

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Kommunikations-Parameter

Previous chapter Next chapter Show all Show all Hide all Hide all

Bevor Sie die Workbench online schalten (mit dem Zielsystem verbinden), müssen korrekte Kommunikations-Parameter eingestellt sein.

Im Offline-Zustand sind die Kommunikations-Parameter in der Statusleiste (unterer Bereich) dargestellt. Um diese zu ändern klicken Sie Tools / Kommunikations-Parameter oder doppelklicken Sie auf die Parameter in der Statusleiste.

Die Workbench unterstützt verschiedene Protokolle für die Kommunikation mit der Runtime.

Wählen Sie das Protokoll in der Liste aus und tragen Sie die Parameter in der Box darunter ein. Der Button "..." öffnet eine Eingabehilfe für einfaches und sicheres Eintragen der Parameter entsprechend des ausgewählten Protokolls.

Noch in diesem Kapitel

Einstellungen des "T5" Protokolls

Einstellungen für das Multiple Runtime Protokoll

Einstellungen für das Remote Access Protocol


Einstellungen des "T5" Protokolls

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Kommunikations-Parameter -> Einstellungen des "T5" Protokolls

Previous chapter Next chapter Show all Show all Hide all Hide all

Das "T5" Protokoll wird von den meisten Runtimes unterstützt und kann entweder über ETHERNET oder mit einer seriellen Peer to Peer Verbindung verwendet werden.

Ethernet Kommunikation

Für eine ETHERNET Kommunikation müssen Sie die IP Adresse des Zielsystems eingeben. Die Workbench verwendet den Default Port 1100. Benutzt Ihr Zielsystem einen anderen Port, tragen Sie diesen nach der IP Adresse - getrennt durch einen Doppelpunkt - ein. Zum Beispiel:

127.0.0.1:1102

Serielle Verbindung

Im Fall einer seriellen Verbindung muss der Kommunikationsport, welcher auf dem PC verwendet wird eingetragen werden, gefolgt von den Kommunkikationsparamtern. Folgende Syntax ist zu verwenden:

COM<np>:<baudrate>,<parity>,<data>,<stops>

Parameter | Beschreibung
<np> | Nummer des seriellen Ports, welcher am PC verwendet wird
<baudrate> | baudrate
<parity> | Parität: N (none) oder E (even) oder O (odd)
<data> | Anzahl der Datenbits (7 oder 8)
<stops> | Anzahl der Stoppbits (1 oder 2)

Das folgende Beispiel zeigt die Einstellungen für die Kommunikation über Port COM1, mit einer Baudrate von 19200, mit Even Parität, 8 Datenbits und 1 Stoppbit:

Example Example

COM1:19200,E,8,1


Einstellungen für das Multiple Runtime Protokoll

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Kommunikations-Parameter -> Einstellungen für das Multiple Runtime Protokoll

Previous chapter Next chapter Show all Show all Hide all Hide all

Diese Protokoll wird bei Runtime-Systemen verwendet, bei denen mehrere SPS Tasks (VMs) laufen. Es kann entweder über Ethernet oder über eine serielle Peer-to-peer Verbindung benutzt werden.

Zusätzlich zu den Parametern für Ethernet oder serielle Verbindung, müssen Sie die Task-Nummer in Klammern am Anfang eines Einstellungsstrings angeben. Die erste Task-Nummer ist 1. Zum Beispiel:

[1]127.0.0.1:1102

Wenn Sie Ethernet benutzen, müssen Sie die IP-Adresse des Zielsystems angeben. Die Workbench benutzt standardmäßig Port 1100. Wenn Ihr Zielsystem eine andere Port-Nummer benutzt, geben Sie sie nach der IP-Adresse an, getrennt mit einem Strichpunkt. Zum Beispiel:

Ethernet-Verbindung

Wenn Sie Ethernet benutzen, müssen Sie die IP-Adresse des Zielsystems angeben. Die Workbench benutzt standardmäßig Port 1100. Wenn Ihr Zielsystem eine andere Port-Nummer benutzt, geben Sie sie nach der IP-Adresse an, getrennt mit einem Doppelpunkt. Zum Beispiel:

[1]127.0.0.1:1102

Serielle Verbindung

Bei serieller Verbindung müssen sie den Kommunikations-Port des PC angeben, gefolgt von den Kommunikationsparametern in folgender Syntax:

[task]COM<np>:<baudrate>,<parity>,<data>,<stops>

Parameter | Beschreibung
<np> | Nummer des seriellen Port am PC
<Baudrate> | Baudrate
<Parität> | Parität: N (keine) oder E (gleich) oder O (ungleich)
<Daten> | Anzahl der Datenbits (7 oder 8)
<Stopps> | Anzahl der Stoppbits (1 oder 2)

Das folgende Beispiel zeigt die Einstellungen für die Kommunikation über Port COM1 mit 19200 Baud bei gleicher Parität, 8 Datenbits und einem Stoppbit:

Example Beispiel

[1]COM1:19200,E,8,1


Einstellungen für das Remote Access Protocol

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Kommunikations-Parameter -> Einstellungen für das Remote Access Protocol

Previous chapter Next chapter Show all Show all Hide all Hide all

Diese Protokoll wird für serielle Fernkommunikation verwendet und wurde speziell für die Kommunikation über Modems und Funkeinrichtungen entwickelt. Optional kann der Kommunikationstreiber der Workbench das Modem-Dialup übernehmen. Klicken Sie den "..." Button um Parameter in der Wizard-Box einzutragen. Folgende Parameter werden benötigt:

Parameter | Beschreibung
PC port | COM Port des PCs. Verwenden Sie ein internes Modem müssen Sie dieses an einen virtuellen COM Port binden.
Baudrate | Baudrate
Parity | Parität: N (none) oder E (even) oder O (odd)
Stop bits | Anzahl der Stoppbits (1 oder 2)
Unit number | Diese Nummer identifiziert die entfernte Einheit, sollte es sich um ein Multidrop Netzwerk handeln. Die default Nummer für einen Einheit eines Peer to Peer Netzwerks ist 1. Die Unit number muss einen Wert von 1 bis 32767 haben.
Timeout | Kommunikationstimeout in Sekunden (Zeit für einen einfachen "Question+Answer" Austausch)
Trials | Anzahl von aufeinander folgenden Versuchen im Fehlerfall
Packet size | Die Pakete welche über das Protokoll transportiert werden können bis zu 1024 Bytes lang sein. Wählen Sie die Paketgröße "small", teilt der Treiber die Pakete in Frames nicht größer als 255 Zeichen.

Zusätzlich können noch Dialup Optionen definiert werden:

Option | Beschreibung
Dialup | Ist diese Option eingeschaltet, wählt der Treiber beim Verbindungsaufbau die eingetragene Nummer.
Number | Zu wählende Nummer.
Timeout | Dialup Timeout in Sekunden.
Init. | Initialisierungsstring für das Setup des Modems.

info Info

Die zu wählende Nummer kann sich ändern wenn die Workbench die Kommunikation aufbaut.


Die Kontrollleiste

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Die Kontrollleiste

Previous chapter Next chapter Show all Show all Hide all Hide all

Im Test-Modus (Online oder Simulation) zeigt die Workbench Informationen über das Laufzeit-Zielsystem und bietet Befehle für die Steuerung des Laufzeit-Zielsystems:

  1. Status der Zielsystem-Anwendung.
  2. Steuerbefehle.
  3. Änderung der Zykluszeit.

Anwendungsstatus

Das Statusfeld liefert globale Informationen über das Zielsystem, die laufende Anwendung, sowie die Kommunikationsverbindungen. Möglich sind:

Status | Beschreibung
Verbindungsfehler | Kein Anschluss vorhanden
Verbindung herstellen | Die Workbench stellt die Kommunikation her
Verbindung unterbrochen | Die Workbench bricht die Kommunikation ab
Keine Anwendung | Das Zielsystem ist nicht in Betrieb
Andere Anwendung | Auf dem Zielsystem läuft eine andere Anwendung
Kommunikationsfehler | Es ist ein Kommunikationsfehler aufgetreten
Falsche Version | Auf dem Zielsystem läuft eine andere Version der Anwendung
RUN | Die Anwendung läuft
STOP | Die Anwendung befindet sich im Schrittmodus
AS-Stop | Die Anwendung ist bei einem SFC Break gestoppt
Fehler | Die Anwendung ist bei einem Fehler gestoppt

Wenn eine Anwendung im Zielsystem aktiv ist, können Sie den Maus-Cursor auf das Statusfeld bewegen, um detaillierte Informationen zur Version in einem Tooltip anzuzeigen.

Anwendungssteuerung - verfügbare Befehle

Icon | Beschreibung
 | Startet die Anwendung
 | Stoppt die Anwendung
 | Hält die Anwendung im Schrittmodus an
 | Startet die Anwendung wieder im Normalmodus
 | Führt einen einzigen Schritt aus
 | Laden: Lädt die Anwendung, wenn das Zielsystem gestoppt ist (keine Anwendung). Lädt neuen Code für Online Change, wenn die Anwendung läuft
 | Online Change
 | Step in (Verfügbar bei Step by Step Debugging)
 | Step over (Verfügbar bei Step by Step Debugging)
 | Step out (Verfügbar bei Step by Step Debugging)

Zykluszeit

Informationen zum Timing des Zyklus' werden in einem Tooltip angezeigt wenn der Mauscursor auf den Applikations-Status gestellt wird. Der Tooltip enthält:

  • Die zuletzt gemessene Zykluszeit.
  • Die programmierte Zykluszeit.
  • Die maximale (längste) erkannte Zykluszeit.
  • Die Anzahl der erkannten Zykluszeit-Überschreitungen.


Die Editoren im Testmodus benutzen

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Die Editoren im Testmodus benutzen

Previous chapter Next chapter Show all Show all Hide all Hide all

Im Testmodus (Online oder Simulation) werden alle Editoren mit den Echtzeitwerten der bearbeiteten Objekte versorgt:

  • In der Programmliste wird der Status der Programme angezeigt. Gestoppte Programme erscheinen in rot. Suspendierte Programme erscheinen in blau.
  • Im Variableneditor erscheinen die Echtzeitwerte der Variablen. Doppelklicken Sie auf einen Variablennamen, um die betreffende Variable zu forcen oder zu verriegeln.
  • In den FBD Diagrammen werden die Echtzeitwerte der Variablen, Kontakte und Spulen angezeigt. Doppelklicken Sie auf einen Variablennamen, um die betreffende Variable zu forcen oder zu verriegeln.
  • In den LD Diagrammen werden die Echtzeitwerte der Variablen, Kontakte und Spulen angezeigt. Doppelklicken Sie auf einen Variablennamen, um die betreffende Variable zu forcen oder zu verriegeln.
  • Im SFC Editor werden die Schrittaktivitäten (Token) angezeigt.
  • In den Texteditoren (ST oder IL) erscheint der Echtzeitwert einer Variablen in einem Tooltip, wenn Sie den Mauscursor auf den betreffenden Variablennamen platzieren. Doppelklicken Sie auf den Variablennamen, wobei Sie die SHIFT (Umschalt) -Taste gedrückt halten, um die Variable zu forcen oder zu verriegeln.

Verriegelte Variablen

Mit einem Doppelklick auf ein Variablensymbol öffnet sich eine Dialogbox mit der Sie den Wert der Variable ändern können. Mit dieser Dialogbox können Sie ein Variable auch Verriegeln und Entriegeln. Der Wert einer verriegelten Variable wird von der Runtime nicht mehr verändert. Sie können damit den Wert der Variable ungeachtet der Runtime Operationen forcen. Die Variablengruppe welche verriegelt werden kann wird in den Compiler Optionen festgelegt.

Mit dem Menüpunkt Projekt / Verriegelte Variablen erhalten Sie eine Liste der zurzeit verriegelten Variablen. In dieser Liste haben Sie die Möglichkeit alle verriegelten Variablen zu entriegeln.


Das Überwachungsfenster (Watch-Fenster)

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Das Überwachungsfenster (Watch-Fenster)

Previous chapter Next chapter Show all Show all Hide all Hide all

Zusätzlich zu den Programmen bietet die Workbench die Möglichkeit eigene Watch-Dateien zum Testen Ihrer Applikation zu erstellen. Es gibt drei Formen von Dokumenten:

  • Watch-Liste: eine Liste von Variablen.
  • Rezept: ein Rezept ist eine Liste von Variablen welche einen oder mehrere Sätzen von Soll-Werten enthält.
  • Grafische Layouts mit animierten Objekten.

Zusätzlich ist der Kommandozeilen Debugging-Mode verfügbar.

Listen, Rezepte und Grafiken werden im Arbeitsbereich auf der linken Seite der Workbench verwaltet und geöffnet. Mit dem Befehl Einfügen im Kontextmenü (rechte Maustaste) kann ein neues Dokument erstellt werden. Das Dokument wird mit einem Doppelklick geöffnet.

Listen verwalten

Um eine Variable einzufügen verwenden Sie den Befehl Variable einfügen aus dem Kontextmenü (rechte Maustaste). Alternativ kann eine Variable aus dem Programmeditor oder aus dem Variableneditor per Drag and Drop in das Watch-Fenster gezogen werden.

Mit den Befehlen aus der lokalen Toolbar kann der Inhalt der Listen modifiziert bzw. arrangiert werden. Mit dem Verschieben-Befehlen kann die Reihenfolge der Variablen in der Liste verändert werden. Listen können Offline und Online erstellt und editiert werden.

Eine Variable beschreiben (forcen)

Doppelklicken Sie zur Laufzeit eine Variable oder selektieren Sie eine Variable und drücken Sie ENTER. Ein kleines Dialogfeld wird angezeigt, in dem Sie die ausgewählte Variable beschreiben (forcen) und steuern können.

Wert-Dumping

Bei der Ausführung erscheint der Wert einer Variablen im Textformat in der Wert-Spalte. Sie können den Mauscursor auf den Wert verlagern, um ihn im Hexadezimalformat anzuzeigen. Diese Funktion ist nützlich, wenn Sie lange Zeichenfolgen oder Zeichenfolge mit nicht druckbaren Zeichen überwachen.

Rezepte

Um ein neues Rezept zu erstellen führen Sie Datei / Neu / Rezept aus. Zusätzlich zur Liste der Variablen und deren Werte können Spalten mit vordefinierten Werten angelegt werden. Um eine Wert zu setzen, wählen Sie einfach die entsprechende Zell aus und tragen den Wert ein. Zellen können auch frei von Werten bleiben. Mit der lokalen Toolbar können Spalten angelegt, umbenannt oder gelöscht werden. Mit dem Button Rezept ausführen werden die Werte der ausgewählten Spalte auf die entsprechenden Variablen geschrieben.

attention Attention
  • Die Verwendung von Rezepten in der Workbench stellt sicher, dass alle Variablen im selben Moment (d.h. zwischen zwei Zyklen) zur Runtime geschrieben werden. Dies führt zu einer Beschränkung, nach der nur 50 Variablen (oder weniger bei Strings) in einem Rezept verwendet werden können. Diese Beschränkung gilt nicht wenn das Rezept direkt vom Programm mit der Funktion ApplyRecipeColumn ausgeführt wird.
  • Das Senden von Rezepten erfordert ein eigenes Protokoll. Bei T5 Zielsystemen der Version 1.21 oder älter, wird ein Rezeptempfang verweigert.


Kommandozeilen Debugging

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Kommandozeilen Debugging

Previous chapter Next chapter Show all Show all Hide all Hide all

Mit diesem mächtigen Tool können Sie Debug- und Monitoring-Befehle während der Simulation oder im Online-Modus ausführen. Befehle werden wie in einer Konsole wie Kommandozeilen eingetippt. Es gibt Befehle für das Schreiben und Lesen aller Veriablentypen (auch komplexe Variablen) bzw. Ausdrücke.

Rufen Sie das Kommandozeilen Debugging über den Reiter Kommandozeile im Ausgabefenster auf.

Ausdrücke lesen

Um eine Variable oder einen komplexen ST (ST Sprache) Ausdruck zu lesen, muss dieser lediglich in den Texteditor eingetragen und ENTER gedrückt werden. Der Ausdruck kann jeden ST Operanden enthalten, und kann mit Variablen Indizes bei Arrays verwendet werden.

Example Example

>MyVar
= 100
>iLevel > 123.4
= FALSE
>MyArray[i+1]
= 123
>

Die folgenden ST Operanden können in Ausdrücken verwendet werden:

Operator | Beschreibung
& AND OR XOR | Boolsche Operationen
+ - / * | Arithmetische Operationen
= <> < > <= >= | Vergleiche
[ , ] | Array Index Spezifikation
. | Struktur Element Spezifikation

Der ST Ausdruck kann auch Konstanten beinhalten.

Variablen forcen

Um eine Variable zu forcen, geben Sie deren Namen ein gefolgt von ":=" und einem ST Ausdruck. Die Variable kann auch eine Array-Variable sein.

Example Example

>MyVar := 200
OK
>MyArray[i+1] := iValue + 2
OK
>

Ein Mutterprogramm definieren

Um Zugriff auf lokale Variablen zu erhalten, muss das Programm als Mutterprogramm definiert werden. Dafür geben Sie "!local=" gefolgt vom Namen des Programms ein. Wurde ein Mutterprogramm definiert, hat man Zugriff auf alle lokalen und globalen Variablen des Programms.

Example Example

>!local=PROG1
>LocalVar
= 123
>


Die Verwendung des Watch-Fensters für die grafische Darstellung

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Die Verwendung des Watch-Fensters für die grafische Darstellung

Previous chapter Next chapter Show all Show all Hide all Hide all

it dem Watch-Fenster können vollgrafische Bilder erstellt werden, welche während der Simulation oder im Online-Modus mit den Echtzeit-Werten animiert werden. Um eine neue Grafik zu erstellen verwenden Sie das Kontextmenü (rechte Maustaste) Neue Grafik einfügen im Arbeitsbereich.

Beachten Sie die Liste der verfügbaren Objekte und deren Eigenschaften für mehr Details beim Zeichnen.

  1. Grafikbereich.
  2. Eigenschaften des ausgewählten Objekts / Darstellung der Z-Anordnung.
  3. Bibliothek der Objekte.

Grafiken könne auch als HTML Seiten exportiert und in einem Browser dargestellt werden.

Um ein neues Objekt einzufügen ziehen Sie es einfach aus der Liste der verfügbaren Objekte (3) in den Grafikbereich (4). Sie können es dann auswählen um es im eingestellten Raster zu verschieben oder seine Größe zu ändern bzw. seine Eigenschaften einzustellen (2). Grafische Dokumente haben die Namenserweiterung ".gra" und können irgendwo auf der Festplatte gespeichert werden.

Im folgenden eine Liste der verfügbaren Befehle in der Toolbar des Grafik-Editors:

Icone | Description
 | Betrieb oder Editieren Modus setzen (siehe Anmerkung unten).
 | Auswahl des vorherigen Elements im Grafikbereich.
 | Auswahl des nächsten Elements im Grafikbereich.
 | Selektierte Elemente links ausrichten.
 | Selektierte Elemente oben ausrichten.
 | Selektierte Elemente rechts ausrichten.
 | Selektierte Elemente unten ausrichten.
 | Selbe Breite für alle selektierten Elemente (*).
 | Selbe Höhe für alle selektierten Elemente (*).
 | Selbe Höhe und Breite für alle selektierten Elemente (*).
 | In den Vordergrund bringen: bringt das ausgewählte Objekt um einen Schritt an den Beginn der Z-Anordnung.
 | In den Hintergrund bringen: bringt das ausgewählte Objekt um einen Schritt an das Ende der Z-Anordnung.
 | Die Hintergrundfarbe für den Grafikbereich definieren.

(*) Bei diesen Befehlen wird als Referenz für die Größe immer das Element mit den grauen Selektionsrahmen verwendet. Klicken Sie mit gedrückter STRG-Taste auf das gewünschte Element um es als Referenzelement auszuwählen.

Verwenden Sie den Betrieb/Editieren Button zum Verändern der Grafik im On Line/Simulation Modus. Im Betrieb Modus können keine Änderungen durchgeführt werden. In diesem Modus kann die Maus zum Betätigen von aktiven Objekten wie Buttons verwendet werden.

Die Z-Anordnung im Eigenschaften Bereich zeigt die Liste der grafischen Objekte wie sie nach der Z-Anordnung sortiert sind. Um sich überlappende Objekte zu arrangieren, können die Objekte in dieser Liste einfach verschoben werden.

Noch in diesem Kapitel

Grafikobjekte

Eigenschaften der Grafikobjekte

Grafik als HTML Seiten exportieren


Grafikobjekte

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Die Verwendung des Watch-Fensters für die grafische Darstellung -> Grafikobjekte

Previous chapter Next chapter Show all Show all Hide all Hide all

Im folgenden finden Sie jene Objekte, die zum Einfügen in Ihre Grafiken zur Verfügung stehen:

Grundformen

Eine Sammlung von Grundformen ist verfügbar. Jedes Objekt kann entweder statisch sein oder mit einer Variable verknüpft werden, die die Sichtbarkeit des Objekts steuert (show/hide).

Eigenschaften

  • Bezeichner
  • Ausführung
  • Symbolvariable
  • Beobachtungsverzögerung
  • Rahmengröße
  • Rahmenfarbe
  • Datenformat
  • Farbe wenn nicht verbunden
  • Hintergrundfarbe
  • Hintergrund
  • Text
  • Textfarbe
  • Textmodus
  • Schriftart
  • Schriftgröße
  • TRUE-Farbe
  • FALSE-Farbe
  • Richtung

siehe Beschreibung...

Bitmaps

Eine Bitmap Datei (BMP, GIF, JPG) kann in den Grafikbereich eingefügt werden.

Eigenschaften

  • Bezeichner
  • Rahmengröße
  • Rahmenfarbe
  • Rahmenart
  • Hintergrundfarbe
  • Hintergrund
  • Text
  • Textfarbe
  • Textmodus
  • Schriftart
  • Schriftgröße
  • Pfad
  • Bitmap Anzeigemodus

attention Attention

Große Bitmaps brauchen viel Zeit während der Animation and können zu einem Leistungsabfall des Systems führen, vor allem wenn sie die Darstellungsform STRETCH oder den Hintergrund TRANS (transparent) eingestellt haben.

siehe Beschreibung...

Skalen

Skalen sind statische Zeichnungen, die eine X- oder Y-Achse darstellen. Normalerweise werden sie dazu verwendet um andere Elemente wie etwa Trendkurven oder Bargraphen zu illustrieren.

Eigenschaften

  • Bezeichner
  • Rahmengröße
  • Rahmenfarbe
  • Rahmenart
  • Hintergrundfarbe
  • Hintergrund
  • Text
  • Textfarbe
  • Textmodus
  • Schriftart
  • Schriftgröße
  • Min. Wert
  • Max. Wert
  • Richtung
  • Ausrichtung
  • Anz. Unterteilungen (Haupt)
  • Anz. Unterteilungen (Neben)
  • Skalenfarbe

siehe Beschreibung...

Textboxen

Statische, animierte oder editierbare Textboxen stehen für das Darstellen/Setzen von Variablen zur Verfügung. In der Runtime öffnet ein Doppelklick auf das Objekt eine Eingabebox um einen neuen Wert einzugeben; drücken Sie die ENTER-Taste um die Eingabe abzuschließen.

Eigenschaften

  • Bezeichner
  • Symbolvariable
  • Beobachtungsverzögerung
  • Rahmengröße
  • Rahmenfarbe
  • Rahmenart
  • Datenformat
  • Hintergrundfarbe
  • Hintergrund
  • Text
  • Textfarbe
  • Textmodus
  • Schriftart
  • Schriftgröße
  • Aktion

siehe Beschreibung...

Schalter und binäre Zustandsanzeigen

Buttons, Schalter und binäre Zustandsanzeigen werden für die Steuerung oder Anzeige von Boolschen Variablen verwendet.

Eigenschaften

  • Bezeichner
  • Ausführung
  • Symbolvariable
  • Beobachtungsverzögerung
  • Rahmengröße
  • Rahmenfarbe
  • Datenformat
  • Farbe für Dynamikteil
  • Hintergrundfarbe
  • Hintergrund
  • Text
  • Textfarbe
  • Textmodus
  • Schriftart
  • Schriftgröße
  • Aktion
  • Pfad für TRUE Bitmap
  • Pfad für FALSE Bitmap
  • Bitmap Anzeigemodus

siehe Beschreibung...

Analoge Buttons

Analoge Buttons werden verwendet um den Wert einer Integer oder Real Variable zu setzen. Die Maus wird zum Setzen eines Wertes verwendet.

Eigenschaften

  • Bezeichner
  • Symbolvariable
  • Beobachtungsverzögerung
  • Rahmengröße
  • Rahmenfarbe
  • Rahmenart
  • Datenformat
  • Farbe für Dynamikteil
  • Hintergrundfarbe
  • Hintergrund
  • Text
  • Textfarbe
  • Textmodus
  • Schriftart
  • Schriftgröße
  • Min. Wert
  • Max. Wert
  • Skalenfarbe

siehe Beschreibung...

Bargraphen

Bargraphen sind Rechtecke die entsprechend dem Wert einer Analogvariable gefüllt sind. Bargraphen können horizontal oder vertikal sein.

Eigenschaften

  • Bezeichner
  • Symbolvariable
  • Beobachtungsverzögerung
  • Rahmengröße
  • Rahmenfarbe
  • Rahmenart
  • Datenformat
  • Farbe für Dynamikteil
  • Hintergrundfarbe
  • Hintergrund
  • Text
  • Textfarbe
  • Textmodus
  • Schriftart
  • Schriftgröße
  • Min. Wert
  • Max. Wert
  • Richtung

siehe Beschreibung...

Trendkurven

Trendkurven ermöglichen das Verfolgen des Wertes einer Variable wie mit einem Oszilloskop.

Eigenschaften

  • Bezeichner
  • Ausführung
  • Symbolvariable
  • Beobachtungsverzögerung
  • Rahmengröße
  • Rahmenfarbe
  • Rahmenart
  • Datenformat
  • Farbe für Dynamikteil
  • Hintergrundfarbe
  • Hintergrund
  • Text
  • Textfarbe
  • Textmodus
  • Schriftart
  • Schriftgröße
  • Min. Wert
  • Max. Wert
  • Anz. Punkte

siehe Beschreibung...

Zeigerinstrument

Zeigerinstrumente stellen einen analogen Wert grafisch dar.

Eigenschaften

  • Bezeichner
  • Symbolvariable
  • Beobachtungsverzögerung
  • Rahmengröße
  • Rahmenfarbe
  • Rahmenart
  • Datenformat
  • Farbe für Dynamikteil
  • Hintergrundfarbe
  • Hintergrund
  • Text
  • Textfarbe
  • Textmodus
  • Schriftart
  • Schriftgröße
  • Min. Wert
  • Max. Wert
  • Skalenfarbe
  • Anz. Unterteilungen (Haupt)
  • Anz. Unterteilungen (Neben)

siehe Beschreibung...

Regler

Regler werden verwendet um analoge Werte über eine horizontale oder vertikale Mausbewegung einzugeben.

Eigenschaften

  • Bezeichner
  • Symbolvariable
  • Beobachtungsverzögerung
  • Rahmengröße
  • Rahmenfarbe
  • Rahmenart
  • Datenformat
  • Farbe für Dynamikteil
  • Hintergrundfarbe
  • Hintergrund
  • Text
  • Textfarbe
  • Textmodus
  • Schriftart
  • Schriftgröße
  • Min. Wert
  • Max. Wert
  • Richtung
  • Scalafarbe

siehe Beschreibung...

Digitalanzeige

Digitalanzeigen stellen den Wert einer Variable mit Ziffern (7-Segment Anzeige) dar.

Eigenschaften

  • Bezeichner
  • Ausführung
  • Symbolvariable
  • Beobachtungsverzögerung
  • Rahmengröße
  • Rahmenfarbe
  • Rahmenart
  • Datenformat
  • Farbe für Dynamikteil
  • Hintergrundfarbe
  • Hintergrund
  • Text
  • Textfarbe
  • Textmodus
  • Schriftart
  • Schriftgröße
  • Min. Wert
  • Max. Wert

siehe Beschreibung...

Link

Links sind mausgesteuerte Hyperlinks, die als Shortcuts für das Öffnen anderer grafischer Dokumente verwendet werden. Die Verwendung von Verknüpfungen ermöglicht die Gestaltung mehrseitiger, animierter Anwendungen.

Eigenschaften

  • Bezeichner
  • Rahmengröße
  • Rahmenfarbe
  • Hintergrundfarbe
  • Hintergrund
  • Text
  • Textfarbe
  • Textmodus
  • Schriftart
  • Schriftgröße
  • Link

siehe Beschreibung...

Verbindungsstatus

Der Verbindungszustand ist eine Box, in der der aktuelle Zustand der Verbindung und der verbundenen Runtime-Applikation angezeigt wird. Sie dient der Diagnose.

Eigenschaften

  • Bezeichner
  • Beobachtungsverzögerung
  • Rahmengröße
  • Rahmenfarbe
  • Rahmenart
  • Datenformat
  • Farbe für Dynamikteil
  • Hintergrundfarbe
  • Hintergrund
  • Text
  • Textfarbe
  • Textmodus
  • Schriftart
  • Schriftgröße

siehe Beschreibung...


Eigenschaften der Grafikobjekte

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Die Verwendung des Watch-Fensters für die grafische Darstellung -> Eigenschaften der Grafikobjekte

Previous chapter Next chapter Show all Show all Hide all Hide all

Diese Seite erklärt im Detail alle möglichen Eigenschaften von grafischen Objekten. Informieren Sie sich in der Liste der verfügbaren Objekte darüber, welche Eigenschaften für welche Objekte verfügbar sind.

Bezeichner

Zu jedem grafischen Objekt in einem Dokument können Sie eine Textkennung definieren. Bezeichner sind sehr nützlich um überlappende Objekte auszuwählen, da der Bezeichner in der der Liste der Z-Anordnung aufscheint.

Symbolvariable

Das ist der volle Name der Applikationsvariable, die mit dem Grafikobjekt verknüpft ist. Im Fall einer lokalen Variable muss der Name des übergeordneten Programms getrennt mit einem "/" vor ihrem Symbol stehen. Beispiel: "MyProg/MyVar".

Beobachtungsverzögerung

Das ist die minimale Zeit um den Wert der verbundenen Variable upzudaten, angegeben in Millisekunden. Wird die Verzögerung nicht definiert oder ist der Wert 0, so wird der Wert so schnell wie möglich upgedatet.

Rahmengröße

Diese Eigenschaft zeigt in Anzahl der Pixel die Breite des Rahmens an, der rund um das Objekt gezeichnet wird. Wenn diese Eigenschaft 0 ist, wird kein Rahmen angezeigt.

Rahmenfarbe

Diese Eigenschaft zeigt die Farbe an, die für den Rahmen um das Objekt verwendet wird.

Rahmenart

Diese Eigenschaft zeigt den 3D Effekt an, der für den Rahmen rund um das Objekt verwendet wird. Mögliche Werte sind:

FLAT = kein 3D Effekt.
3DUP = erhöhter 3D Effekt.
3DDOWN = vertiefter 3D Effekt.
3D = Standard 3D Effekt.

Textfarbe

Diese Eigenschaft zeigt die Farbe an, die für die Darstellung der Texte im Grafikobjekt verwendet wird.

Textmodus

Diese Eigenschaft zeigt den Schrifteffekt an, der für die Darstellung der Texte im Grafikobjekt verwendet wird. Mögliche Werte sind:

HIDE = Text wird nicht dargestellt.
NORMAL = Normale Schriftart.
BOLD = Fette Schrift.
ITALIC = Kursive Schrift.
UNDERLINE = Unterstrichene Schrift.

Schriftart

Diese Eigenschaft zeigt den Namen der Schriftart an, die für die Darstellung der Texte im Grafikobjekt verwendet wird.

Schriftgröße

Diese Eigenschaft zeigt die Größe der Schriftart an, die für die Darstellung der Texte im Grafikobjekt verwendet wird. Die Größe wird als ein Prozentsatz der aktuellen Höhe des Objekts angegeben. Der maximal mögliche Wert ist 100. So wird garantiert, dass das Verhältnis beibehalten wird, wenn sich die Größe des Objekts ändert.

Hintergrundfarbe

Diese Eigenschaft zeigt die Farbe an, die für das Ausfüllen des Hintergrunds des Objekts verwendet wird. Im Zusammenhang mit einer Bitmap definiert diese Eigenschaft die Farbe, die nicht dargestellt wird, wenn der Hintergrundmodus TRANS (transparent) ausgewählt wurde.

Hintergrund

Diese Eigenschaft zeigt an, ob der Hintergrund des Objekts ausgefüllt wird oder nicht. Wenn diese Eigenschaft auf OPAQUE gesetzt ist, dann wird der Hintergrund mit der angegebenen Farbe ausgefüllt. Wenn diese Eigenschaft auf TRANS (transparent) gesetzt ist, dann wird der Hintergrund nicht ausgefüllt. Transparenter Hintergrundmodus kann vor allem bei überlappenden Objekten nützlich sein.

attention Attention

Die Auswahl des Modus TRANS (transparent) für große Bitmaps kann die Update-Geschwindigkeit der Grafik negativ beeinflussen.

Datenformat

Wenn definiert, gibt diese Eigenschaft an, dass der Wert der verknüpften Variable im grafischen Objekt auf jeden Fall angezeigt wird. Für diese Eigenschaft müssen Sie einen Formatstring für die Darstellung der Daten definieren.

attention Attention

Die Eigenschaft text wird ignoriert, wenn ein Datenformat ausgewählt wurde.

Der Formatstring hat das gleiche Format wie die bekannte Funktion "printf" aus der Programmiersprache "C". Er kann statische Zeichen genauso beinhalten wie einen der folgenden Platzhalter, die den Wert spezifizieren:

%s = Standardformatierung entsprechend der IEC Syntax
%d = integer (dezimal)
%X = hexadezimal
%g = Fließkomma
%.nf = dezimal real (n ist die Anzahl der dargestellten Nachkommastellen)

Example Example
Format | Wert | Dargestellter String
%d | 12.3 | 12
Var = %g Meter | 1.2 | Var = 1.2 Meter
%.2f | 1.12345 | 1.12

info Info

Nur ein % Platzhalter kann in einem String verwendet werden.

Text

Wenn festgelegt, definiert diese Eigenschaft den Text, der im grafischen Objekt dargestellt werden soll.

attention Attention

Diese Eigenschaft wird ignoriert, wenn ein Datenformat definiert ist.

Bitmap Anzeigemodus

Bei Objekten, die auf Bitmaps basieren, zeigt diese Eigenschaft an, ob die verknüpfte Bitmap die originalen Seitenverhältnisse beibehalten soll oder an die aktuelle Größe des Objekts angepasst werden soll. Mögliche Einstellungen sind:

ORIGINAL = originale Seitenverhältnisse beibehalten (abschneiden, wenn zu groß).
STRETCH = Bitmap an die aktuelle Größe des grafischen Objekts anpassen.

attention Attention

Große Bitmaps mit der Darstellungsform STRETCH können die Performance negativ beeinflussen.

Min. Wert

Bei analogen animierten Objekten (Zeigerinstrument, Bargraphen, Trends,...) definiert diese Eigenschaft den kleinsten möglichen Wert, der dargestellt werden kann. Bei statischen Skalen definiert diese Eigenschaft den Wert der niedrigsten Beschriftung.

Max. Wert

Bei analogen animierten Objekten (Zeigerinstrument, Bargraphen, Trends,...) definiert diese Eigenschaft den größten möglichen Wert, der dargestellt werden kann. Bei statischen Skalen definiert diese Eigenschaft den Wert der höchsten Beschriftung.

Farbe für Dynamikteil

Diese Eigenschaft gibt die Farbe an, die verwendet wird um den Wert der verbundenen Variable im Objekt anzuzeigen (zum Beispiel der gefüllte Teil eines Bargraphen).

Anz. Unterteilungen (Haupt)

Bei Objekten die eine grafische Skala beinhalten definiert diese Eigenschaft die Anzahl der Hauptunterteilungen, die in der Skala angezeigt werden.

Anz. Unterteilungen (Neben)

Bei Objekten die eine grafische Skala beinhalten definiert diese Eigenschaft die Anzahl der Nebenunterteilungen, die in der Skala jeweils zwischen den Hauptunterteilungen angezeigt werden.

Skalafarbe

Bei Objekten die eine grafische Skala beinhalten definiert diese Eigenschaft die Farbe, in der die Achse, die Unterteilungen und die Beschriftung der Skala dargestellt werden.

Pfad

Bei Bitmaps definiert diese Eigenschaft den Pfadnamen für die darzustellende Bitmap. BMP, GIF und JPG Format werden unterstützt. Wird kein Verzeichnis angegeben, wird die entsprechende Datei folgendermaßen gesucht:

  • Im Projektverzeichnis.
  • Im "\BITMAP" Verzeichnis der Workbench.

Pfad für "TRUE" Bitmap

Bei Schaltern oder Buttons mit dem Aspekt CUSTOM gibt diese Eigenschaft den Pfadnamen des Bitmaps an, das dargestellt werden soll, wenn der Wert der verknüpften Variable TRUE (oder nicht null für Analogwerte) ist. BMP, GIF und JPG Format werden unterstützt. Wird kein Verzeichnis angegeben, wird die entsprechende Datei folgendermaßen gesucht:

  • Im Projektverzeichnis.
  • Im "\BITMAP" Verzeichnis der Workbench.

Pfad für "FALSE" Bitmap

Bei Schaltern oder Buttons mit der Ausführung CUSTOM gibt diese Eigenschaft den Pfadnamen der Bitmap an, die dargestellt werden soll, wenn der Wert der verknüpften Variable FALSE (oder null für Analogwerte) ist. BMP, GIF und JPG Format werden unterstützt. Wird kein Verzeichnis angegeben, wird die entsprechende Datei folgendermaßen gesucht:

  • Im Projektverzeichnis.
  • Im "\BITMAP" Verzeichnis der Workbench.

Farbe wenn nicht verbunden

Bei Grundformen definiert diese Eigenschaft die Farbe, mit der das Objekt gefüllt wird, wenn keine Variable mit der Grundform verknüpft ist.

TRUE-Farbe

Bei Grundformen definiert diese Eigenschaft die Farbe, die zum Füllen des Objekts verwendet wird, wenn die verbundene Variable den Wert TRUE oder ungleich 0 bei Analogwerten hat.

FALSE-Farbe

Bei Grundformen definiert diese Eigenschaft die Farbe, die zum Füllen des Objekts verwendet wird, wenn die verbundene Variable den Wert FALSE oder 0 bei Analogwerten hat.

Richtung (Grundformen)

Bei orientierten Grundformen wie etwa Dreiecken, halben Ellipsen oder Zylindern zeigt diese Eigenschaft die Ausrichtung der Zeichnung an; nach links, nach rechts, nach oben oder nach unten.

Richtung (Skala)

Bei Skalen definiert diese Eigenschaft die Richtung der Achse. Mit der Einstellung LEFT ist der kleinste Wert auf der linken Seite. Mit der Einstellung RIGHT ist der kleinste Wert auf der rechten Seite.

Ausrichtung (Skala)

Bei Skalen definiert diese Eigenschaft die Ausrichtung der Skala innerhalb des rechteckigen Bereichs des Objekts: links, rechts, oben oder unten.

Aktion (Text)

Definiert die möglichen Mausaktionen für Textboxen. Die folgenden Werte sind möglich:

STATIC = keine Mausaktion.
EDIT = ein Doppelklick öffnet eine Eingabebox für den Variablenwert.

Aktion (Schalter)

Definiert die möglichen Mausaktionen für Schalter. Die folgenden Werte sind möglich:

STATIC = keine Mausaktion.
PUSHBUTTON = die Variable wird bei gedrücktem Schalter auf TRUE und bei nicht gedrücktem auf FALSE gesetzt.
SWITCH = der Status der Variablen wird invertiert, wenn der Button gedrückt wird.
ONESHOTBUTTON = selbe Darstellung wie SWITCH, aber die Darstellung bleibt erhoben, wenn die Maus losgelassen wird.

Richtung (Bargraph)

Bei Bargraphen definiert diese Eigenschaft die Laufrichtung: nach links, nach rechts, nach oben oder nach unten.

Anz. Punkte (Trends)

Bei Trendkurven definiert diese Eigenschaft die maximale Anzahl gespeicherter Punkte. Wenn die Breite des Objekts (in Pixel) kleiner als diese Anzahl ist, dann sind die ältesten Punkte nicht sichtbar.

Richtung (Regler)

Bei Reglern definiert diese Eigenschaft, ob der Regler horizontal (RIGHT) oder vertikal (TOP) ist.

Link

Diese Eigenschaft zeigt den Namen des animierten .GRA Zieldokuments für eine Verknüpfung an. Wenn in der Verknüpfung kein Verzeichnis definiert ist, wird die Datei im Projektordner gesucht.

Ausführung (Grundformen)

Diese Eigenschaft definiert die Art der Grundform, die gezeichnet werden soll. Mögliche Ausführungen sind:

CYLINDER = Ein 3D Zylinder.
ELLIPSE = Eine Ellipse.
HALFELLPISE = Eine Hälfte einer Ellipse.
GATE = Eine einfache Vektorzeichnung für ein Ventil.
RECTANGLE = Ein Rechteck.
ROUNDRECT = Ein Rechteck mit abgerundeten Ecken.
TRIANGLE = Ein Dreieck.

Ausführung (Schalter)

Diese Eigenschaft definiert die Art des Schalters, die gezeichnet werden soll. Mögliche Ausführungen sind:

DEFAULT = Ein normaler, Windows-konformer Button.
CUSTOM = Ein Button, bei dem die Darstellung von TRUE und FALSE durch zwei Bitmaps festgelegt wird.

Ausführung (Trendkurven)

Diese Eigenschaft definiert die Darstellungsart für eine Trendkurve. Mögliche Ausführungen sind:

POINT = Nur relevante Punkte werden gezeichnet.
LINE = Linien werden von Punkt zu Punkt gezeichnet.
HISTO = Histogrammstil (Balkendarstellung).

Ausführung (Digitalanzeige)

Diese Eigenschaft zeigt die Art der Darstellung für Digitalanzeigen an. Mögliche Ausführungen sind:

DEFAULT = Flache Zeichnung.
BEZEL = Alle Segmente haben einen 3D Effekt.


Grafik als HTML Seiten exportieren

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Die Verwendung des Watch-Fensters für die grafische Darstellung -> Grafik als HTML Seiten exportieren

Previous chapter Next chapter Show all Show all Hide all Hide all

Eine in der Workbench hergestellte animierte Grafik kann exportiert und als HTML Seite in einem Browser dargestellt werden. Um die Grafik darzustellen muss auf dem PC die entsprechenden ActiveX Komponenten installiert sein. Diese Komponenten werden automatisch mit der Workbench installiert.

Eine Grafik als HTML exportieren:

  1. Gehen Sie mit der Workbench Off Line.
  2. Öffnen Sie das Grafik-Dokument.
  3. Klicken Sie auf Tools / HTML Grafik generieren.

Ein Wizard führt Sie durch die Schritte zur Erstellung einer HTML Seite. Klicken Sie auf den Weiter Button im ersten Schritt. Die folgende Ansicht wird dargestellt:

Hier wählen oder erstellen Sie den Ordner für die Dateien der HTML Seite. Es wird empfohlen die Seite in einem leeren Ordner abzulegen! Wählen sie den Ordner aus und klicken Sie auf Weiter. Folgende Ansicht wird hierauf dargestellt:

Füllen Sie folgende Optionen aus:

Option | Beschreibung
HTML Dateiname | Name der erstellten HTML Datei.
Name der Zielplattform | Treiber für die Kommunikation mit der Runtime. Verwenden Sie K5NET5.DLL für eine standard Win-GRAF PAC driver.
Verbindungsparameter | Kommunikationsparameter für die Verbindung zur Runtime. Bei einer IP Adresse muss ein ":" mit dem IP Port folgen. Wird kein Port eingetragen, wird der Defaultport 1100 verwendet.
Breite / Höhe | Größe in Pixel der Fläche der Grafik in der HTML Seite.
ZIP Dateiname | Dateiname des integrierten Dokuments (sieh Hinweise) Diese Feld muss leer sein, wenn die Seite nicht zum Laufzeitsystem übertragen werden soll.
Symbolliste einschießen | Wenn diese Option eingeschaltet ist, wird die Symbolinformation mit der HTML Seite gespeichert. Wenn diese Option nicht eingeschaltet ist, werden die Symbole hochgeladen wenn die HTML Seite geöffnet wird.
Bildlaufleiste | Wenn diese Option eingeschaltet ist, wird eine Bildlaufleiste angezeigt.

Wird ein "ZIP" Dateiname angegeben, werden alle Dateien zusammen mit der HTML Seite an das Laufzeitsystem übertragen. Dies setzt voraus, dass das Laufzeitsystem einen WEB Server zur Verfügung stellt. Sehen Sie dazu in den Anweisungen Ihres OEM Partner nach ob Pfadangaben oder spezielle Dateinamen berücksichtigt werden müssen. Beachten Sie, dass die ZIP Dateien sehr groß sein können, da sie Bitmaps enthalten.

Nach dem Sie auf den Weiter Button geklickt haben erscheint folgende Ansicht:

Schalten Sie die Option HTML Grafik anzeigen ein, wenn Sie die Grafik gleich in einem Browser testen wollen.

Wenn Sie einen "ZIP" eingetragen haben, klicken Sie Beenden um die Datei auf das Laufzeitsystem zu laden. Wenn dieser Prozess abgeschlossen ist, klicken Sie auf Abbrechen um den Dialog zu schließen.


Digitale Sampling-Aufzeichnung

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Digitale Sampling-Aufzeichnung

Previous chapter Next chapter Show all Show all Hide all Hide all

Das Runtime-System und der Simulator verfügen über eine digitale Sampling-Aufzeichnung. Diese Funktion kann benutzt werden, um den Zustand von bis zu 8 boolsche Variablen in regelmäßigen Abständen aufzuzeichnen. Die Samples können entweder in jedem Zyklus oder gemäß einer konfigurierbaren Periode aufgezeichnet werden. Die digitale Sampling-Aufzeichnung ist ein nützliches Werkzeug zur Verfolgung von Störungen und Ereignissen in der Runtime-Anwendung.

Die Sampling-Aufzeichnung kann konfiguriert und vom Ausgabefenster aus beobachtet werden. Die Sampling-Aufzeichnung ist nur während der Simulation und beim Online-Debugging verfügbar.

attention Attention
  • Die digitale Sampling-Aufzeichnung ist eine Ressource des Runtime-Systems. Für alle aufgezeichneten Variablen gelten die gleichen Einstellungen.
  • Die Aufzeichnung beschränkt sich auf 900 Samples von bis zu 8 boolschen Variablen.
  • In manchen Zielsystemen ist die Sampling-Aufzeichnung nicht verfügbar. Siehe OEM-Anweisungen für weitere Informationen zu verfügbaren Funktionen.
  • Die Sampling-Aufzeichnung nimmt sehr viel Zeit in Anspruch und kann die Leistung des Runtime-Systems beeinträchtigen.

Operationen

Benutzen Sie folgende Befehle im Log-Fenster, wenn die Registerkarte Digitale Sampling-Aufzeichnung aktiv ist:

Icon | Beschreibung
 | Variablen und Einstellungen der Sampling-Aufzeichnung definieren.
 | Aufzeichnung starten.
 | Aufzeichnung stoppen.
 | Autom. Ablaufmodus setzen oder rücksetzen.
+ / - | Zoom + od. - (Zahlentastatur).

Einstellungen

Bevor die Aufzeichnung eingeleitet werden kann, müssen die Aufzeichnungsparameter eingestellt werden : die Liste der überwachten Variablen, eine Periode (entweder eine Zeit oder in jedem Zyklus) sowie die Start- und Stoppbedingungen. Alle Variablen müssen vom Datentyp BOOL sein.

Bitte beachten : Wenn Sie eine Aufzeichnungsperiode programmieren, dann bedeutet das, dass "mindestens so viel Zeit zwischen zwei Samples gewartet wird", was keiner präzisen Zeitsynchronisierung entspricht.

Klicken Sie auf die Schaltfläche Set, um die Einstellung vorzunehmen. Klicken Sie auf die Schaltfläche Reset, um die aktuelle Einstellung im Runtime-System zu löschen.

Startbedingung

Auf der Registerkarte Startbedingung im Einstellungsfeld können Sie definieren, welche Bedingung die Aufzeichnung startet. Es gibt folgende Möglichkeiten:

  • Sofort.
  • Später: Die Aufzeichnung muss manuell mit Hilfe des Befehls Start eingeleitet werden.
  • Auf der steigenden oder fallenden Flanke einer boolschen Variablen, möglicherweise mit einer Verzögerung.

Die Verzögerung wird ausgedrückt durch eine Anzahl Samples, die ausgelassen werden, nachdem die Startbedingung aufgetreten ist und bevor die eigentliche Aufzeichnung beginnt.

Stoppbedingung

Auf der Registerkarte Stoppbedingung im Einstellungsfeld können Sie definieren, welche Bedingung die Aufzeichnung stoppt. Es gibt folgende Möglichkeiten:

  • Nie: Die Aufzeichnung muss manuell mit Hilfe des Befehls Stopp gestoppt werden.
  • Wenn der Puffer voll ist.
  • Auf der steigenden oder fallenden Flanke einer boolsche Variablen, möglicherweise mit einer Verzögerung.

Die Verzögerung wird ausgedrückt durch eine Anzahl Samples, die nach Auftreten der Stoppbedingung übersprungen werden, bevor die Aufzeichnung stoppt.

Hinweise

Die Aufzeichnung kann nicht wieder gestartet werden, nachdem Punkte aufgezeichnet wurden, selbst wenn sie gestoppt ist. Um die Aufzeichnung wieder zu starten, müssen die Einstellungen erneut vorgenommen werden.

Die Sampling-Aufzeichnung wird konfiguriert oder gestartet, wenn die Workbench für die Simulation oder zum Online-Debugging benutzt wird.

Benutzen Sie die Befehle Datei / Sichern unter und Bearbeiten / Kopieren, um aufgezeichnete Daten mit anderen Anwendungen, z.B. Tabellenprogrammen, auszutauschen.


Step by step debugging

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Step by step debugging

Previous chapter Next chapter Show all Show all Hide all Hide all

Zusätzlich zum zyklischen Schrittmodus verfügt der Debugger nun auch über die Möglichkeit Programme schrittweise zu debuggen (Step by Step Debugging). Dieses Feature bietet viele wertvolle Mittel für die Fehlersuche. Die Möglichkeit Breakpoints zu setzen rundet dieses Feature ab. Der Debugger springt auch in UDFBs und Unterprogramme, wenn diese aufgerufen werden. Step by Step Debugging ist verfügbar für:

  • ST und IL Text Programme (die Schrittweite entspricht einer Anweisung).
  • LD Programme (die Schrittweite entspricht einem Rung).
  • FBD (die Schrittweite entspricht einem grafischen Symbol).

attention Attention
  • Step by Step Debugging steht nur dann zur Verfügung wenn das Projekt mit der Option Debug kompiliert wurde. Diese Option kann in den Compiler Optionen ausgewählt werden.
  • Ein Projekt, welches im Debug Modus kompiliert wurde, enthält zusätzliche Informationen. Dies führt zu mehr Code und weniger Performance. Es wird empfohlen nach abgeschlossenem Debuggen, das Projekt im RELEASE Modus zu kompilieren.
  • Step by Step Debugging wird möglicherweise auf einigen Zielsystemen nicht unterstützt. Bitte beachten Sie diesbezüglich die OEM Anweisungen für Details zu verfügbaren Features.

Es gibt zwei Möglichkeiten, in den Step by Step Debugging Modus zu gelangen:

  • Setzen Sie einen Breakpoint in einem Programm (mittels Erstellen / Breakpoint setzen/löschen). Wenn der Breakpoint erreicht ist, wird die Ausführung des Programms an der angegebenen Stelle gestoppt, und Sie können das Programm schrittweise durcharbeiten.
  • Wenn das Programm im zyklischen Schrittmodus gestartet wurde, können Sie das Programm von Beginn an schrittweise durcharbeiten.

Die folgenden Kommandos stehen für das Step by Step Debugging zur Verfügung. Sie finden diese entweder in der Kontrollleiste oder im Menü Erstellen der Editoren:

Kommando-Icon | Beschreibung
 | Step over: Wenn die nächste Anweisung ein Aufruf eines Funktionsblocks/Unterprogramms ist, wird der aufgerufene Funktionsblock/Unterprogramm bis zum Ende ausgeführt.
 | Step in: Wenn die nächste Anweisung ein Aufruf eines Funktionsblocks/Unterprogramms ist, hält der nächste Schritt am Beginn des aufgerufenen Funktionsblocks/Unterprogramms.
 | Step out: Ist die aktuelle Stepping-Position in einem aufgerufenen Funktionsblock/Unterprogramm, wird der aufgerufene Funktionsblock/Unterprogramm bis zum Ende ausgeführt.

Zusätzlich zu diesen Kommandos könne Sie jeder Zeit:

  • Den Zyklus ausführen (von der aktuellen Position bis zum Ende des letzten Programms).
  • Das Zielsystem wieder in den "normalen" Ausführungsmodus bringen (RUN).

Breakpoints

Um in einem Programm einen Breakpoint zu setzen oder zu löschen verwenden Sie den Menüpunkt Erstellen / Breakpoint setzen/löschen. Wenn die aktuelle Position für das Setzen eines Breakpoints nicht geeignet ist, so wird dieser an die nächstgelegene, geeignete Position verschoben.

Breakpoints können in Programmen, Unterprogrammen oder UDFBs gesetzt werden. Für SFC Programme sind sie nicht verfügbar.

Die aktiven Breakpoints sind als Liste im Log Fenster und im Ausgabefenster eines Editors ersichtlich. Hierin könne Sie alle Breakpoint auf einmal löschen. Per Doppelklick auf einen Breakpoint-Eintrag im Log Fenster gelangen Sie jeder Zeit direkt an die Stelle des Breakpoints im entsprechenden Programm.

Der Call Stack

Beim Step by Step Debugging ist der Call Stack im Log Fenster bzw. im Ausgabefenster der Editoren verfügbar. Der Call Stack listet alle aufgerufenen Funktionsblöcke/Unterprogramme beginnend mit dem hierarchisch obersten Programm zur aktuellen Stepping-Position. Bei einem UDFB zeigt der Call Stack auch an, welche Instanz des UDFB ausgeführt wird.

Per Doppelklick auf einen Eintrag im Call Stack kann zu jeder Zeit das entsprechende Programm geöffnet werden.


Das Ausgabefenster

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Das Ausgabefenster

Previous chapter Next chapter Show all Show all Hide all Hide all

Mit den Befehlen aus dem Menü Ansicht kann das Ausgabefenster ein- bzw. ausgeblendet werden.

Runtime-Meldungen

Im Log-Fenster werden alle Meldungen angezeigt, die vom Zielsystem oder vom Simulator beim Testen der Anwendung ausgegeben werden. Diese Meldungen werden auch bei geschlossenem Log-Fenster gespeichert. Es ist daher nicht sinnvoll, dieses Fenster immer offen zu lassen.

Während des Step by Step Debugging, ist im Log Fenster unter anderem auch der aktuelle Call Stack und die Liste der gesetzten Breakpoints ersichtlich.

Projektprotokoll

Wählen Sie die Registerkarte Protokoll, um eine Liste anzuzeigen, in der alle Projektmodifikationen und -operationen protokolliert werden. Aktivieren Sie die Menüoption Bearbeiten / Protokoll aktivieren, damit neue Modifikationen und Operationen im Protokoll berücksichtigt werden. Benutzen Sie den Menübefehl Bearbeiten / Einstellungen, um die Höchstzahl der aufgelisteten Ereignisse zu bestimmen und um auszuwählen, welche Art Operationen protokolliert werden sollen.

Digitale Sampling-Aufzeichnung

Das Runtime-System und der Simulator verfügen über eine digitale Sampling-Aufzeichnung. Siehe Beschreibung der Sampling-Aufzeichnung für ausführliche Informationen zu dieser Funktion.

Kommandozeile

Mit diesem Reiter sind Sie in der Lage Ihre Applikation mittels Kommandozeilen zu debuggen.


Soft-Oszilloskop

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Soft-Oszilloskop

Previous chapter Next chapter Show all Show all Hide all Hide all

Mit dem Soft-Oszilloskop können Werte von booleschen oder numerischen Variablen aufgezeichnet und als Kurve dargestellt werden. Die aufgezeichneten Variablen werden von der Runtime überwacht. Die Runtime erkennt Änderungen und gibt Zeitstempel bei, so dass der angezeigte Trend sehr genau ist.

Das Soft-Oszilloskop steht während dem Online-Debugging zur Verfügung. Es verwendet das spontane Win-GRAF PAC-Protokoll (welches auch für das Binding verwendet wird) über Ethernet. Daher kann das Soft-Oszilloskop nicht verwendet werden wenn das Runtimesystem über keine Ethernet Verbindung verfügt.

Das Soft-Oszilloskop steht im Arbeitsbereich-Fensters zur Verfügung. Mit den Befehlen des Kontext-Menüs können neue Softscope-Konfigurationen angelegt werden. Unten ist ein Softscope-Bild zu sehen:

  1. Liste der dargestellten Variablen.
  2. Diagramm-Bereich (Oszilloskop-Bildschirm).

Im Diagramm-Bereich kann der User zoomen, einen speziellen Zeitbereich darstellen und automatisch scrollen.

Die Bildlaufleiste repräsentiert den aktuellen Beobachtungszeitraum. Die komplette Breite repräsentiert die gesamte Zeit seit dem Start der Runtime bis zur aktuellen Zeit.

Um neue Symbole im Diagramm darzustellen, brauchen Sie nur Variablen vom Variablen Editor in das Diagramm zu ziehen oder Sie führen einen Doppelklick auf eine nicht-verwendete Linie in der Liste aus. Diese neuen Symbole können im Online oder Offline Modus hinzugefügt werden.

Folgende Informationen werden in der Liste konfiguriert:

Parameter | Beschreibung
Symbol | Name der beobachteten Variable.
Farbe | Farbe der Kurve.
#Diagramm | Index des Diagrammausschnitts - Default ist 1. Es können bis zu 30 Diagrammausschnitte definiert werden.
Hysterese | Hysterese für die Feststellung von Änderungen analoger Werte . Die Hysterese wird als absoluter Wert eingegeben.
Wert | Der aktuelle Wert der Variable wird in dieser Spalte angezeigt.
Minimum/Maximum | Bereich der Y Achse.
Zeit | Zeit und Datum der letzten Änderung.
Beschreibung | Freier Beschreibungstext.

Folgende Befehle sind über die Toolbar des Soft-Oszilloskops erreichbar:

Icon | Beschreibung
 | Ausgewählte Variable in der Liste auf- und abwärts verschieben.
 | Variablen der Liste sortieren.
 | Zeitbereiche einstellen.
 | Oszilloskop starten.
 | Oszilloskop stoppen.
 | Aufzeichnung starten.
 | Aufzeichnung in Datei speichern.
 | Aufzeichnung von Datei laden.
 | Auto-Scroll Modus (toggle).

Wenn das Oszilloskop gestartet ist, können mit dem entsprechenden Button (rot) alle Ereignisse aufgezeichnet werden. Dazu muss eine „CSV“ Datei definiert werden, in welche die Samples abgelegt werden. Alle Änderungen aller Symbole werden in dieser Datei aufgezeichnet bis der rote Button ein weiteres Mal angeklickt wird.

Wenn das Oszilloskop gestoppt ist, können Teile der Diagramme abgespeichert werden. Dafür werden die Symbole in der Liste selektiert und der Zeitbereich gezoomt welcher abgespeichert werden soll. Alle Events werden in eine „CSV“ Datei gespeichert. Später kann eine „CSV“ Datei in das Diagramm rückgelesen werden. Bei Rücklesen werden nur Symbole übernommen welche in der Variablenliste existieren.

Der Kurven einrichten Button öffnet folgende Dialogbox für die Konfiguration der X-Achse des Diagramms:

_

Zwei Modi sind verfügbar:

  • Zoom Modus
  • Autoscroll Modus

Es kann ein spezifischer Zeitbereich ausgewählt werden indem Von und Bis Zeitpunkte eingestellt werden.

Im Autoscroll Modus werden Diagramme automatisch gescrollt. Dabei wird die Aktualisierungsrate herangezogen und der entsprechende Zeitbereich dargestellt. Die Aktualisierungsrate kann für bessere Darstellung erhöht werden (z.B. bei langer Aufzeichnung in der viele Events auftreten).

© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


Feldbus Konfiguration

IEC 61131-3 Programming Environment -> Feldbus Konfiguration

Die Workbench beinhaltet ein integriertes Feldbus-Konfigurationstool für verschiedene Arten von Netzwerk-I/Os und Protokollen. Das Konfigurationstool erlaubt es Ihnen Netzwerke in einer Baumstruktur zu beschreiben und Variablen mit den I/O Kanälen von Geräten zu verknüpfen.

Icon | Beschreibung
 | Verwenden Sie den Befehl Datei / Öffnen / Feldbus Konfiguration.

Die Feldbus Konfiguration bietet den folgenden Arbeitsbereich an:

  1. Konfigurationsbaum.
  2. Elemente des momentan im Baum ausgewählten Knotens.
  3. Variablen des Projekts.

Jede Art von Feldbus wird als ein Knoten der obersten Ebene im Konfigurationsbaum angezeigt. Führen Sie den Menübefehl Bearbeiten / Konfiguration einfügen aus um eine Konfiguration auszuwählen, die zum Baum hinzugefügt werden soll. Jede Konfiguration wird als ein Baum mit vier Ebenen in der folgenden Form dargestellt:

- Konfiguration (Art des Feldbus)
- Port oder Master
- Slave oder Datenblock
- Verknüpfte Variable

Verwenden Sie die folgenden Buttons aus der Toolbar um den Konfigurationsbaum aufzubauen:

Icon | Beschreibung
 | Einen neuen Feldbus (oberste Ebene) in die Konfiguration einfügen.
 | Einen neuen Master-/Port-Knoten unter dem ausgewählten Feldbus einfügen.
 | Einen neuen Slave/Datenblock unter dem ausgewählten Master einfügen.
 | Eine neue Variable unter dem ausgewählten Slave einfügen.

Wenn ein Element aus dem Baum ausgewählt ist, können alle seine unterlagerten Inhalte in der Tabelle darunter bearbeitet werden. Als Alternative können Sie ein Element im Baum doppelklicken um eine Dialogbox mit seinen Eigenschaften zu öffnen. Verwenden Sie den Menübefehl Ansicht / Tabelle um den Tabellenbereich ein- oder auszublenden.

Aus der Liste der deklarierten Variablen (rechts) können Sie auch direkt eine Variable auf ein Slave-Element im Baum ziehen.

Noch in diesem Kapitel

AS-Schnittstellen I/Os und Netzwerke

BACnet MSTP Slave Configuration

CAN Bus I/Os und Netzwerk

CANopen Konfiguration

DNP3 Master

DNP3 Slave configuration

Ethernet/IP IO Client

Ethernet/IP Server

Ethernet/IP Tag Client

Hilscher CIF Profibus DP

Hilscher (SYCON) I/O Konfiguration

Hilscher SYCON Konfiguration [universal]

Hilscher SYCON.net Konfiguration (CifX)

HMS I/O Konfiguration

IEC 60870-5-101/104 Master configuration

IEC 60870-5-101/104 Slave Konfiguration

IEC 61850 Server inklusive GOOSE

IEC 61850 Client

IEEE C37.118 Synchrophasor

Interbus S für Phoenix Contact Hardware

MODBUS networking

Profinet IO RT Controller Configuration

SIMATIC S7-modular Embedded Controler

Siemens SoftNet I/O Konfiguration

WAGO 758-87x IO-System / ThinkIO

WAGO 750-865 Linux Controller I/O Konfiguration

Weihenstephan standard - Konfiguration des Client

Shared Memory virtuelle I/O Konfiguration

Woodhead (ApplicomIO) I/O Konfiguration

XFlow I/O Konfiguration

zenon Runtime Verbindung Konfiguration
© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


MODBUS networking

IEC 61131-3 Programming Environment -> Feldbus Konfiguration -> MODBUS networking

Previous chapter Next chapter Show all Show all Hide all Hide all

Die Win-GRAF PAC driver umfasst vollständig integrierte MODBUS Master und Slave Funktionalitäten, um MODBUS Kommunikation über eine serielle Verbindung oder über ETHERNET zu ermöglichen.

Protokollspezifikationen

Die folgenden Protokolle werden unterstützt:

  • MODBUS-RTU on a serial link.
  • Open MODBUS on ETHERNET.

Die folgenden MODBUS function codes werden unterstützt:

1 read coils
2 read bit inputs
3 read holding registers
4 read input registers
5 write 1 coil
6 write 1 register
15 write N coils
16 write N registers

Als Default ist für jede Datenart die erste gültige Adresse 1. Wenn Sie MODBUS-Geräte mit anderen Adressierungsarten verwenden, können Sie den Basis-Offset für jede Datenart ändern, in dem Sie den Befehl Tools / Addresses verwenden.

Architektur

Die Win-GRAF PAC driver kann entweder als Server (MODBUS Slave) oder als Client (MODBUS Master) verwendet werden. Beide, Server und Client, können zur gleichen Zeit aktiviert sein. Dies ermöglicht mehrere Anwendungen, wie zum Beispiel:

  • Slave-Verbindung zu einem MODBUS-Master, wie z.B. ein SCADA-System.
  • Master Verbindung, um MODBUS I/Os zu steuern.
  • Win-GRAF PAC zu Win-GRAF PAC-Kommunikation für den Echtzeit-Austausch von Variablen (binding).

Die Konfiguration der Slave- und Master-Funktionen führen Sie in der Workbench aus. All Daten, die von MODBUS benutzt werden, sind vollständig in den Anwendungscode und die VM-Datenbank integriert.

Kommunikationsports

Auf Seite des Clients wird ein neuer Port (RS oder ETHERNET) für jeden konfigurierten MODBUS-Port geöffnet. Die Anzahl der Client-Ports ist nicht begrenzt.

Auf Seite des Servers ist die Verwaltung der untergeordneten Kommunikation (Senden und Empfangen von frames) vollständig in den Win-GRAF PAC Kommunikationsserver integriert. Dabei werden dieselben Ports für MODBUS requests und native requests verwendet. Deshalb stimmt die Anzahl der möglichen MODBUS-maters mit der Begrenzung des Kommunikationsservers überein.

  • Ein serieller Port.
  • Mehrere Ports über ETHERNET (platformabhängig - in der Regel maximal 7 Ports).

Andere Slave-Ports können mithilfe der Funktionsblöcke MBSlaveRTU oder MBSlaveUDP geöffnet werden.

Beachten Sie, dass derselbe Port sowohl für die Kommunikation mit dem MODBUS-Master als auch für den Dialog mit der Workbench verwendet werden kann. Workbench und MODBUS-frames werden vom Kommunikationsserver erkannt.

Der MODBUS-TCP-Server benutzt immer den ersten Port der Konfiguration.

Datenaustausch - Konfiguration

Die Win-GRAF PAC driver verwaltet eine intermediäre Variablen-Map, die die MODBUS-Daten repräsentiert. Sowohl für die Master- als auch für die Slave-Verbindungen. Ein entsprechendes Konfigurationstool ist in der Workbench integriert. Es wird gestartet mit Datei / Öffnen / Feldbus Konfiguration im Hauptmenü.

Die MODBUS-Konfiguration wird als Baum dargestellt:

- MODBUS Konfiguration
- Slave (Variablen, auf die von externen MODBUS-Mastern zugegriffen werden kann)
- Input bits Datenblöcke (read von Master)
- Variable (*)
- Input words Datenblöcke (read von Master)
- Variable (*)
- Coil bits Datenblöcke (forced von Master)
- Variable (*)
- Holding bits Datenblöcke (forced von Master)
- Variable (*)
- Master Kommunikationsport (verbunden mit externen MODBUS-Slaves) (*)
- Datenblöcke (read oder write / bits oder words) (*)
- exchanged Variable (*)
- Command Variable (*)
- Status Variable (*)

(*) Elemente mit dieser Markierung können in der Konfiguration mehrmals stehen.

MODBUS-Slave Konfiguration

Sie müssen den MODBUS-Slave konfigurieren, um Variablen für externe MODBUS-Master wie z.B. SCADA-System sichtbar zu machen. Hier ist ein einfaches Beispiel für eine Slave-Konfiguration:

Example Example

Führen Sie einen Doppelklick auf Local Server aus, um die MODBUS-Salve Nummer einzustellen, die die Runtime-Anwendungen identifiziert. Wenn Sie den local server selektiert haben, benutzen Sie den Menüeintrag Edit / New data block, um MODBUS-Datenblöcke einzufügen. The folgenden Blöcke sind verfügbar:

  • input bits: Bits, die von externen Mastern gelesen werden (Funktion 2).
  • coil bits: Bits, die von externen Mastern geforced werden (Funktion 5 oder 15).
  • input registers: Words, die von externen Mastern gelesen werden (Funktion 4).
  • holding registers: Words, die von externen Mastern geforced werden (Funktion 6 oder 16).

Jeder Datenblock wird durch eine MODBUS-Basisadresse und eine Anzahl an Items (Bits oder Words) identifiziert.

attention Achtung
  • Schreib- und Leseanfragen, die vom MODBUS-Master gesendet wurden, werden abgelehnt, wenn der angegebene Bereich nicht in eine Datenblock passt, der in der Konfiguration definiert wurde. Anfragen, die über zwei Datenblöcke gehen, werden abgelehnt.
    Wenn Sie zum Beispiel einen Block mit 16 Words definieren, der an Adresse 1 beginnt und einen anderen Block mit 16 Words, der an Adresse 17 beginnt, wird eine Schreib- oder Leseanfrage für 32 Words beginnend bei Adresse 1 abgelehnt und "address error" als Fehlermeldung ausgegeben.

Wenn Sie einen Server-Datenblock selektieren, benutzen Sie den Befehl Edit / New variable, um eine Variabel auf eine Item des Datenblocks zu mappen. Jede Variable wird identifiziert durch ein gültiges Symbol einer Variablen im offenen Projekt und einem Offset im Datenblock gemäß der MODBUS-Adressierung. Für den Austausch von Bool'schen Variablen mit MODBUS Words steht eine hexadezimale Maske zur Verfügung, um zu definieren an welches Bit des Words eine Variable angefügt wird. Geben Sie z.B. die Maske "0001" ein, um eine Bool'sche Variable an das less significant Bit des Word zu mappen. Für den Austausch von 32 Bit Variablen (DINT, REAL ...), können Sie diese Variablen auf zwei aufeinanderfolgende Words mappen.

Sie können die Variablen jedes Datenblocks jederzeit gemäß ihres Offsets sortieren. Benutzen Sie dazu den Menüeintrag Edit / Sort symbol.

MODBUS-Master Konfiguration

Sie müssen MODBUS-Maser Ports konfigurieren, um externe MODBUS I/Os mit Variablen anzusteuern. Hier ist ein einfaches Beispiel für eine Master-Konfiguration, bei der nur ein Port definiert ist:

Example Example

Starten Sie Edit / New port, um einen MODBUS-Port anzulegen. Jeder Port entspricht einem logischen oder physischen MODBUS-Netzwerk. Eine Port basiert entweder auf seriellen Verbindungen oder ETHERNET Netzwerk. Bei ETHERNET Ports müssen Sie die IP-Adresse des Slaves und seine ETHERNET Nummer (normalerweise 502) eingeben. Bei seriellen Ports müssen Sie die Einstellungen gemäß der Konventionen der Zielplattform (z.B. "COM1:9600,N,8,1" für PC-Systeme) eingeben. Als Option können Sie selektieren, dass der Master jedes Mal, wenn die Kommunikation zusammenbricht, versucht den Port wieder zu öffnen.

attention Achtung
  • Mehr Informationen über MODBUS-Port Konfiguration erhalten Sie in den OEM-Anweisungen. Einige Runtimes können auch einen anderen Port als 502 benutzen. Es kann auch sein, dass das Ändern der Port-Einstellungen mithilfe der Workbench die MODBUS-Port Konfiguration beeinflusst.

Eine andere Option auf der "Port"-Ebene schaltet das Management beim MODBUS-Stack des Diagnosezählers für jeden Slave frei. Hier ist eine Liste möglicher Statusinformationen, die Sie mit Variablen mappen können.

Wenn Sie einen Port selektieren, können Sie neue MODBUS-Datenblöcke hinzufügen, in dem Sie den Menüeintrag Edit / New data block ausführen. The folgenden Blöcke sind verfügbar:

  • Input Bits lesen (Funktion 2).
  • Coil Bits lesen (Funktion 1).
  • Coil Bits schreiben (Funktion 5 oder 15).
  • Input Register lesen (Funktion 4).
  • Holding Register lesen (Funktion 3).
  • Holding Register schreiben (Funktion 6 oder 16).

Jeder Datenblock wird durch eine MODBUS-Slave Nummer, eine Basisadresse und eine Anzahl an Items (Bits oder Words) identifiziert. Die Anzahl der Items ist durch MODBUS begrenzt (2000 Bits gelesen, 1986 Bits forced, 125 Words gelesen oder 120 Words forced).

Für jedes Request müssen Sie ein Timeout in Millisekunden und eine Aktivierungsmodus definieren . Mögliche Aktivierungsmodi sind:

  • Periodisch: Geben Sie die minimale Periode ein.
  • Bei Änderung: Wenn es zu einem Schreib Request kommt; bedeutet, dass das Request immer geändert wird, wenn sich eine Variable verändert.
  • Bei Aufruf: Das Request wird mithilfe einer Variablen aktiviert.

Bei periodischen Request müssen Sie eine alternative Periode definieren, falls der letzte Austausch des Request fehlgeschlagen ist. Dies wird in der Regel benützt, um den Austausch mit fehlerhaften Slaves zu verlangsamen.

Wenn Sie einen Server-Datenblock selektieren, benutzen Sie den Befehl Edit / New variable, um eine Variabel auf eine Item des Datenblocks zu mappen. Jede Variable wird durch ein gültiges Symbol einer Variablen im geöffneten Projekt identifiziert und durch einen Offset im Datanblock, der der Adressierung des MODBUS entspricht.

Um Bool'sche Variablen durch MODBUS Words auszutauschen, steht eine hexadezimale Maske zur Verfügung, um zu definieren zu welchem Bit des Words die Variable angefügt wird. Geben Sie z.B. die Maske "0001" ein, um eine Bool'sche Variable an das less significant Bit des Word zu mappen. Für den Austausch von 32 Bit Variablen (DINT, REAL ...), können Sie diese Variablen auf zwei aufeinanderfolgende Words mappen.

Sie können die Variablen jedes Datenblocks jederzeit gemäß ihres Offsets sortieren. Benutzen Sie dazu den Menüeintrag Edit / Sort symbol.

Status und Command-Variablen

Wenn Sie eine Variable zu einem Datenblock in der Master-Konfiguration mappen, können Sie es selektieren als:

  • Ein Austausch von Daten (Austausch zwischen der MODBUS-Map und den Win-GRAF PAC Variablen).
  • Ein Status (diagnostische Information, die der Anwendung zur Verfügung gestellt wird).
  • Ein Command (eine Variable wird benutzt, um den Stack anzusteuern).

Hier ist eine Liste diagnostischer Informationen und Status:

Information | Beschreibung
Fehlerauswertung | Die Variable wird auf einen Fehlerwert gesetzt, wenn der letzte erfolglose Austausch des Request durchgeführt wurde. Beim nächsten erfolgreichen Austausch wird sie wieder auf 0 gesetzt.
Fehlerauswertung (nur setzen) | Genauso wie Fehlerauswertung, nur dass die Variable nicht durch den MODBUS-Stack zurückgesetzt wird. Die Anwendung hat die Verantwortung für das Rücksetzen der Variable.
Laufender Request | Die Variabel wird auf 1 gesetzt, wenn der Request gesendet wurde und auf 0 zurückgesetzt nach entweder einer Antwort des Slaves oder eines Timeouts.
Erfolgszähler | Der Wert der Variablen wird jedes Mal erhöht, wenn der Request erfolgreich war.
Misserfolgszähler | Der Wer der Variablen wird jedes Mal erhöht, wenn der Austausch eines Request zu einem Fehler führt.
Wiederholungszähler | Der Wer der Variablen wird beim ersten Versuch auf 0 gesetzt und für jede Wiederholung erhöht.
Slave: letzter Fehler | Die Variable enthält den Fehlercode des zuletzt entdeckten Fehler auf dem Slave.
Slave: letzter Fehler Datumsstempel | Die Variable enthält den Datumstempel des zuletzt entdeckten Fehler auf dem Slave.
Slave: letzter Fehler Zeitstempel | Die Variable enthält den Zeitstempel des zuletzt entdeckten Fehler auf dem Slave.
Slave: letzter Reset Datumsstempel | Die Variable enthält den Datumstempel der letzten "Reset"-Aktion, die auf den Slave-Zählern ausgeführt wurde.
Slave: letzter Reset Zeitstempel | Die Variable enthält den Zeitstempel der letzten "Reset"-Aktion, die auf den Slave-Zählern ausgeführt wurde.
Slave: Transaktionszähler | Der Wert der Variablen wird für jeden Austausch, der auf diesem Slave statt findet, erhöht. Dabei spielt es keine Rolle, ob der Austausch erfolgreich war oder nicht.
Slave: erfolglose Transaktionenzähler | Der Wert der Variablen wir bei jedem erfolglosen Austausch erhöht.

Hier eine der Liste der verfügbaren Commands, die Sie mappen können:

Command | Beschreibung
Command (enable) | Der Request wir kontinuierlich verschickt so lange wie die gemappte Variable TRUE (oder nicht Null) ist.
Command (one shot) | Der Request wir nur dann verschickt, wenn die gemappte Variable TRUE (oder nicht Null) wird. Nach dem Austausch wird der Wert der Variablen auf 0 gesetzt.
Zähler zurücksetzen | Die Request-Zähler werden auf 0 zurückgesetzt, wenn der Wer der Variablen TRUE (oder nicht Null) ist. Dann wird auch die Command-variable auf 0 zurückgesetzt.
Slave: Zähler zurücksetzen | Die Slave-Zähler werden auf 0 zurückgesetzt, wenn der Wer der Variablen TRUE (oder nicht Null) ist. Dann wird auch die Command-variable auf 0 zurückgesetzt.

Hier eine List mit möglichen Fehlercodes für "Status"-Variablen:

Fehlercode | Beschreibung
0 | OK
1 | MODBUS-Funktionen werden nicht unterstützt.
2 | Ungültige MODBUS-Adresse.
3 | Ungültiger MODBUS-Wert.
4 | MODBUS-Server Ausfall.
6 | Server ist ausgelastet.
8 | Datenparität-Fehler.
10 | Ungültiger Gateway-Pfad.
11 | Gateway-Ziel fehlgeschlagen.
128 | Kommunikationstimeout.
129 | Bad CRC16.
130 | RS232 Kommunikationsfehler.

Wenn Sie eine Variable zu einem Datenblock in der Master-Konfiguration mappen, können Sie es als Command selektieren. In diesem Fall wird der Datenblock nur ausgetauscht wenn die Variable TRUE (oder nicht Null für numerischen Datentypen) ist.

Datentypen

Sie können Variablen jeden Datentyps mit einem MODBUS-Item verknüpfen. Die Runtime konvertiert automatisch den Wert in den Datentyp der Variable.

Um Bool'sche Variablen durch MODBUS Words auszutauschen, steht eine hexadezimale Maske zur Verfügung, um zu definieren zu welchem Bit des Words die Variable angefügt wird. Geben Sie z.B. die Maske "0001" ein, um eine Bool'sche Variable an das less significant Bit des Word zu mappen. Für den Austausch von 32 Bit Variablen (DINT, REAL ...), können Sie diese Variablen auf zwei aufeinanderfolgende Words mappen.

STRING Variablen werden nicht unterstützt und können mit MODBUS nicht ausgetauscht werden. 64-Bit Variablen (LINT und LREAL) können nicht direkt ohne Genauigkeits- oder Datenverlust extrahiert werden.


Tools

IEC 61131-3 Programming Environment -> Tools

Zusätzlich zur Programmierung und den Test Features bietet die Workbench ein Kollektion an Tools für die Handhabung und Wartung Ihrer Projekte:

  • Querverweise
  • Import / Export von Projekten
  • Projektvergleich
  • Dokumentation in HTML Format
  • Monitoring Applikation
  • The console

Noch in diesem Kapitel

Querverweise

Projekte exportieren / importieren

Vergleichen von Projekten

HTML Dokumentation erstellen

Monitoring Tool

Die Konsole

Code Checker
© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


Querverweise

IEC 61131-3 Programming Environment -> Tools -> Querverweise

Mit dem Querverweis-Tool können deklarierte Variablen im gesamten Projekt gesucht werden. Es kann als Navigationstoll verwendet werden um Änderungen im gesamten Projekt durchzuführen.

Das Ergebnis einer Suche wird im Reiter Querverweise des Ausgabefensters angezeigt.

In allen Programmen suchen

Um einen Text (oder eine Teil eines Textes) in allen Programmen zu suchen verwenden Sie Bearbeiten / Suchen / In Dateien suchen. Der Text wird in allen Programmen gesucht. Übereinstimmungen werden im Ausgabefenster aufgelistet. Um das entsprechende Programm and der entsprechenden Position zu öffnen führen Sie einen Doppelklick auf den Listeneintrag der Übereinstimmung aus.

Nicht verwendete Variablen auflisten

Um Variablen aufzulisten welche zwar deklariert aber in keinem Programm verwendet werden führen Sie Bearbeiten / Suchen / Nicht verwendete Variablen aus. Dieser Befehl ist für die Säuberung eines Projekts sehr hilfreich.

OEM Bibliothek Elemente auflisten

Um alle I/O Geräte, Funktionen und Funktionsblöcke aufzulisten, welche in Ihrem Projekt verwendet werden, verwenden Sie den Befehl Bearbeiten / Suchen / OEM Bibliothek Elemente.

Suchen/Ersetzen in allen Programmen

Mit dem Befehl Bearbeiten / In Dateien ersetzen können Texte in allen Programmen des Projekts ausgetauscht werden. Als erstes wird eine Liste aller Programme angezeigt in welchen die entsprechende Variable verwendet wird. Wählen Sie das Programm aus in welchem die Änderungen durchgeführt werden sollen. Im Ausgabefenster wird die Position der Texte angezeigt.


Projekte exportieren / importieren

IEC 61131-3 Programming Environment -> Tools -> Projekte exportieren / importieren

Previous chapter Next chapter Show all Show all Hide all Hide all

In der Workbench können Projekte zwecks ihres Austauschs archiviert werden. Ein Archiv ist eine einmalige, komprimierte ZIP-Datei, in der alle Dateien des Projekts enthalten sind.

Benutzen Sie die Befehle im Menü Datei des Hauptfensters, um das Projekt in einer ZIP-Datei zu sichern oder um ein Projekt aus einer ZIP-Datei zu öffnen.

Wenn Sie ein Projekt exportieren, können Sie auswählen, ob Sie die Definition der OEM Bibliothekselemente (I/O Baugruppen, "C"-Funktionen und -Funktionsbausteine), die im Projekt referenziert sind, in das Archiv einbetten wollen. Es wird empfohlen, diese Option zu aktivieren, wenn Sie kundenspezifische Funktionen, Funktionsblöcke oder I/O Baugruppen benutzen, die nicht auf anderen Rechnern installiert sind.

Wenn Sie ein ZIP-Archiv importieren, erstellt die Workbench dort, wo die Datei dekomprimiert wurde, ein neues Projekt. Sie können den Namen des erstellten Projekts und seinen Standort auf der Platte auswählen. Wenn Sie entscheiden, die im Archiv eingebetteten Elemente in Ihre lokale OEM Bibliothek zu importieren, müssen Sie die Kopie im Falle eines Überschreibens bestätigen. Sie können auswählen, in welcher Bibliothek Sie die importiereten Bibliothekselemente ablegen wollen.

Es ist übrigens nicht möglich, ein in einer anderen Bibliothek definiertes Element in der Importbibliothek zu überschreiben.


Vergleichen von Projekten

IEC 61131-3 Programming Environment -> Tools -> Vergleichen von Projekten

Previous chapter Next chapter Show all Show all Hide all Hide all

Die Workbench bietet ein leistungsfähiges Werkzeug zur grafischen Darstellung von Unterschieden zweier Projekte. Dieses Werkzeug ist dafür ausgelegt unterschiedliche Versionen von Projekten zu managen. Es gibt schnell einen Überblick über Änderungen für bessere Diagnose und Wartung.

Das Werkzeug zum Vergleichen von Projekten wird im Windows Start Menü in der entsprechenden Programmgruppe geöffnet. Die Pfade der zu vergleichenden Projekte müssen eingegeben werden. Folgende Optionen können gewählt werden:

  • Groß-/Kleinschreibung ignorieren: Wenn diese Option gesetzt ist, werden Unterschiede in der Groß-/Kleinschreibung von Texten ignoriert.
  • Kommentare ignorieren: Wenn diese Option gesetzt ist, werden alle Kommentare vor dem Vergleich ausgeblendet.
  • Leerzeichen ignorieren: Wenn diese Option gesetzt ist, werden alle hinzugefügten Leerzeichen und "end of line characters" in Text Dateien ignoriert.
  • Grafische Änderungen ignorieren: Wenn diese Option gesetzt ist, wird nur die Logik eines Charts oder Diagramms verglichen. Änderungen in der grafischen Darstellung (verschobene Teile) werden ignoriert.
  • Variablen ignorieren: Wenn diese Option gesetzt ist, wird die Reihenfolge der Variablendeklaration nicht beachtet.

Zusätzlich zu diesen Optionen kann ein Darstellungsformat der deklarierten Variablen gewählt werden:

  • IEC Syntax
  • XML Text
  • CSV Text

Um den Vergleich zu starten klicken Sie OK. Wenn der Vorgang abgeschlossen ist, werden im Viewer die Unterschiede hervorgehoben dargestellt. Folgende Projektteile werden verglichen:

  • Programme
  • Variablen Deklarationen
  • Definitionen (#define Anweisungen)
  • Projekt Optionen

Schwarzer Text bedeutet, dass dieser Teil identisch ist. Unterschiede werden in rot mit grauem Hintergrund dargestellt.

Eine rote Linie auf weißem Hintergrund bedeutet, dass Unterschiede vorhanden sind. Mit Doppelklick auf diesen Teil werden die Details dargestellt. Mit Klick auf << gelangen Sie in die nächsthöhere Ebene.

In der Titelleiste sind die Pfadangaben des linken und rechten Projekts ersichtlich. Der Name des aktuell angezeigten Teils steht neben dem << Button.


HTML Dokumentation erstellen

IEC 61131-3 Programming Environment -> Tools -> HTML Dokumentation erstellen

Previous chapter Next chapter Show all Show all Hide all Hide all

Die Workbench verfügt über einen Wizard für die Erstellung der Projektdokumentation im HTML Format. Mit diesem Feature können Sie Ihre Projektbeschreibung auf einfachem Weg drucken oder elektronisch versenden. Die Querverweise sind als Hyperlinks dargestellt. Somit können Sie sehr einfach in den HTML Seiten navigieren.

Um die Dokumentation zu erstellen klicken Sie Tools / HTML-Dokument erstellen im Hauptfenster. Ein Wizard führt Sie dann durch die einzelnen Schritte zur Erstellung des Dokuments. Wählen Sie ein Verzeichnis, in welches die HTML Seiten und beigefügte Bilder gelegt werden sollen. Es wird empfohlen ein neues, leeres Verzeichnis für die erste Generierung einer Dokumentation zu erstellen.

Wenn der Vorgang abgeschlossen ist, und ein HTML Browser (Internet Explorer) auf Ihrem Computer vorhanden ist, werden Sie gefragt, ob Sie die erstellten HTML Seiten sofort ansehen wollen.


Monitoring Tool

IEC 61131-3 Programming Environment -> Tools -> Monitoring Tool

Previous chapter Next chapter Show all Show all Hide all Hide all

Die Workbench verfügt über einen Wizard zur Erstellung einer Monitoring Anwendung eines geöffneten Projekts. Mit dem Monitoring Tool können Sie Projekte beobachten und steuern ohne die komplette Workbench verwenden zu müssen. Klicken Sie im Hauptfenster den Menüpunkt Tools / Monitoring Applikation erstellen um den Wizard für die Erstellung der Monitoring Applikation zu starten.

info Info

Abhängig von der Lizenzierung kann dieses Tool nicht zur Verfügung stehen.

Prinzip

Die Workbench (1) erstellt die Monitoring Applikation in einer eigenen Datei (2). Das selbständig laufende Monitoring Tool (3) arbeitet die erstellte Monitoring Applikation ab: Es werden die Laufzeitwerte des angeschlossenen Zielsystems animiert dargestellt (4). Eine Monitoring Applikation teilt sich in Programme, Variablenliste und Runtime Meldungen auf. Das Monitoring Tool zeigt die Werte von Variablen und kann für das Setzen (Forcen) derselben verwendet werden. Die Möglichkeiten der Programmeingriffe werden im Wizard definiert. Folgende Schritte sind zur Bedingung des Wizards nötig:

Festlegungen für die Monitoring Applikation

Als ersten Schritt geben Sie der Applikation einen Namen. Dieser Name wird in der Titelleiste des Viewers angezeigt. Die Konfiguration der Monitoring Applikation kann im Workbench Projekt abgespeichert werden. Es kann auch eine bereits existierende Konfiguration ausgewählt werden.

Typisierung des Projekt-Baums und Haupt-Optionen

Der folgende Schritt legt die Haupt-Optionen der Applikation fest. Die Darstellung der verfügbaren Items wird im Viewer in einer Baumstruktur angezeigt. Es können unterschiedliche Darstellungsarten des Projekt-Baums gewählt werden.

Wird die Option Array erweitern gesetzt, werden alle Elemente von deklarierten Arrays in der Variablenliste angezeigt. Arrays werden nicht gelistet, wenn diese Option nicht gesetzt ist.

Wird die Option Symbole einschließen gesetzt, wird die gesamte vom Compiler erstellte Symbol Tabelle von der Monitoring Applikation verwendet. Somit muss gewährleistet sein, dass die gleiche Version auf dem Zielsystem läuft. Wird diese Option nicht gesetzt, so holt sich das Monitoring Tool die Symbole vom Zielsystem im verbundenen Zustand. In diesem Fall muss sichergestellt sein, dass Symbole in der Laufzeit Applikation eingebettet sind.

Elemente auswählen

Im nächsten Schritt werden die Elemente ausgewählt, welche in der Monitoring Applikation angezeigt werden sollen.

Passwörter

Für jedes Element in der Monitoring Applikation kann ein Passwort definiert werden.

Passwörter für Variablen

Sie können für das Beschreiben von Variablen zur Laufzeit (forcen) Passwörter vergeben. Jede Variable kann mit seinem eigenen Passwortlevel versehen werden:

  • Frei: die Variable kann frei beschrieben werden
  • Geschützt: das Beschreiben der Variable ist nach Passworteingabe möglich
  • Nein: die Variable kann nicht beschrieben werden

Kopieren Sie die Variablen einfach per "drag and drop" von der Variablenliste im unteren Bereich in die Liste im oberen Bereich. Die Default-Einstellung definiert den Schutz der Variablen, welche nicht in die obere Liste eingefügt sind.

Zieldatei

Nun ist alles bereit zur Erzeugung der Monitoring Applikation. Im nächsten Schritt werden Sie nach dem Pfad und dem Dateinamen gefragt, unter welchem die Monitoring Applikation abgelegt werden soll. Die Applikation wird in einer einzelnen, komprimierten Datei abgelegt.

Zum Schluss

Nun ist die Applikation erstellt. Sie können die Applikation als Simulation auf der letzten Seite des Wizards laufen lassen. Hier können Sie auch die aktuelle Konfiguration der Applikation sichern um sie für spätere Anpassungen zur Verfügung zu haben.

Sicherheitshinweise

Die Daten der Monitoring Applikation sind verschlüsselt abgespeichert. Im Viewer kann der Inhalt der Applikation nicht verändert werden.


Die Konsole

IEC 61131-3 Programming Environment -> Tools -> Die Konsole

Mit der Konsole können Sie mit Kommandozeilen Befehle die Entwicklung Ihres Projekts beschleunigen. Menübefehle und andere Befehle können hier eingegeben werden. Damit können wiederkehrende Aufgaben automatisiert werden und Änderungen in sehr großen Projekten schnell durchgeführt werden.

Für die Eingabe von Befehlen öffnen Sie den Prompt Karteireiter des Ausgabefensters:

Geben Sie den Befehl "?" ein, um ein Liste der verfügbaren Befehle und der Syntax zu erhalten. Nachstehend finde Sie alle verfügbaren Befehle sortiert nach Kategorien.

Spezialbefehle

Befehl | Beschreibung
? | Hilfe anzeigen.
HELP | Hilfe anzeigen (gleich wie "?").
FOR | Wiederholt einen Befehl.

Programme verwalten

Befehl | Beschreibung
CreateProgram | Hauptprogramm anlegen.
CreateSP | Unterprogramm anlegen.
CreateUDFB | User Defined Function Block anlegen.
CreateSfcChild | SFC Child Programm anlegen.
CopyProgram | Programm duplizieren.
DeleteProgram | Programm löschen.
EnumProgram | Programmliste anzeigen.
GetProgram | Informationen über Programm abrufen.

Variablen verwalten

Befehl | Beschreibung
CreateVar | Variable anlegen.
CreateInParam | Eingabeparameter anlegen.
CreateOutParam | Ausgabeparameter anlegen.
DimVar | Variablen Dimensionen definieren.
DeleteVar | Variable löschen.
InitVar | Initialwert einer variable setzen.
SybVar | Einbetten des Symbols einer Variable.
ProfileVar | Variablen Profil und eingebettete Eigenschaften setzen.
EnumVar | Variablenliste anzeigen.
GetVar | Informationen über Variablen abrufen.
GetVarProp | Informationen über eingebettete Eigenschaften abrufen.

Datentypen verwalten (Strukturen)

Befehl | Beschreibung
CreateStruct | Struktur anlegen.
DeleteStruct | Struktur löschen.
EnumStruct | Strukturliste anzeigen.

I/O Boards verwalten

Befehl | Beschreibung
CreateIO | Instanz eines I/O Geräts anlegen.
IOParam | Parameter eines I/O Boards setzen.
IOAlias | Einem I/O Kanal einen Aliasnamen geben.
DeleteIO | Instanz eines I/O Geräts löschen.
EnumIO | I/O Board Liste anzeigen.
GetIO | Information über ein I/O Board abrufen.

Kommentartexte verwalten

Befehl | Beschreibung
Comm | Kommentartext schreiben.
Tag | Kurzkommentartext schreiben (Tag) - nur Variablen.
GetComm | Kommentartext anzeigen.
GetTag | Kurzkommentartext anzeigen (Tag) - nur Variablen.

Noch in diesem Kapitel

Special commands

Programme verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten


Special commands

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Special commands

Previous chapter Next chapter Show all Show all Hide all Hide all

seealso See also

Programme verwalten

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole

Noch in diesem Kapitel

? / HELP - Hilfe anzeigen

FOR - Wiederholt einen Befehl


? / HELP - Hilfe anzeigen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Special commands -> ? / HELP - Hilfe anzeigen

Previous chapter Next chapter Show all Show all Hide all Hide all

? / HELP - Hilfe anzeigen

Syntax:

HELP [ command ]
? [ command ]

Argument:

command : Name des Befehls für den die Hilfe angefordert wird

info Info

Wird kein "command" Argument angegeben, listet HELP alle möglichen Befehle auf.

seealso See also

FOR - Wiederholt einen Befehl

Programme verwalten

Programmordner verwalten

Variablen verwalten

Datentypen (Strukturen) verwalten

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


FOR - Wiederholt einen Befehl

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Special commands -> FOR - Wiederholt einen Befehl

Previous chapter Next chapter Show all Show all Hide all Hide all

FOR - Wiederholt einen Befehl

Syntax:

FOR <min> TO <max> <command> [ args ]

Argumente:

min : erster Integerwert der Wiederholung (siehe Hinweis)

max : letzter Integerwert der Wiederholung (siehe Hinweis)

command : auszuführender Befehl

args : Argumente des Befehls

info Info

In den Befehlsargumenten kann das Zeichen '%' für den Einsatz der Wiederholung verwendet werden. Werden mehrere '%' Zeichen hintereinander geschrieben kann das Format des Wiederhol-Werts definiert werden. Die linken Zeichen werden mit '0' Werten aufgefüllt. Zum Beispiel:

FOR 1 TO 3 CreateProgram LD Prog%%

Legt drei LD Programme an mit der Bezeichnung Prog01, Prog02 und Prog03.

Beachten Sie, dass nicht alle Befehle FOR-Wiederholungen unterstützen. Informationen dazu erhalten Sie bei den Beschreibungen der einzelnen Befehle.

seealso See also

? / HELP - Hilfe anzeigen

Programme verwalten

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


Programme verwalten

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Programme verwalten

Previous chapter Next chapter Show all Show all Hide all Hide all

seealso See also

Special commands

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole

Noch in diesem Kapitel

CreateProgram - Hauptprogramm anlegen

CreateSP - Unterprogramm anlegen

CreateUDFB - User Defined Function Block anlegen

CreateSfcChild - SFC Child Programm anlegen

CopyProgram - Programm duplizieren

DeleteProgram - Programm löschen

EnumProgram - Programmliste ausgeben

GetProgram - Informationen über ein Programm abrufen


CreateProgram - Hauptprogramm anlegen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Programme verwalten -> CreateProgram - Hauptprogramm anlegen

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateProgram - Hauptprogramm anlegen

Syntax:

CreateProgram <language> <name>

Argumente:

language : SFC oder FBD oder LD oder ST oder IL

name : Programmname

info Info

Das Programm wird an das Ende der Programmliste angehängt und stellt somit auch das letzte Programm im Zyklus dar.

Dieser Befehl kann in einer "FOR" Schleife verwendet werden.

seealso See also

CreateSP - Unterprogramm anlegen

CreateUDFB - User Defined Function Block anlegen

Create SfcChild - SFC Child Programm anlegen

CopyProgram - Programm duplizieren

DeleteProgram - Programm löschen

EnumProgram - Programmliste ausgeben

GetProgram - Informationen über ein Programm abrufen

Special commands

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


CreateSP - Unterprogramm anlegen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Programme verwalten -> CreateSP - Unterprogramm anlegen

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateSP - Unterprogramm anlegen

Syntax:

CreateSP <language> <name>

Argument:

language : FBD oder LD oder ST oder IL

name : Unterprogramm Name

info Info

Dieser Befehl kann in einer "FOR" Schleife verwendet werden.

seealso See also

CreateProgram - Hauptprogramm anlegen

CreateUDFB - User Defined Function Block anlegen

Create SfcChild - SFC Child Programm anlegen

CopyProgram - Programm duplizieren

DeleteProgram - Programm löschen

EnumProgram - Programmliste ausgeben

GetProgram - Informationen über ein Programm abrufen

Special commands

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


CreateUDFB - User Defined Function Block anlegen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Programme verwalten -> CreateUDFB - User Defined Function Block anlegen

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateUDFB - User Defined Function Block anlegen

Syntax:

CreateUDFB <language> <name>

Argumente:

language : FBD oder LD oder ST oder IL

name : Funktionsblock Name

info Info

Dieser Befehl kann in einer "FOR" Schleife verwendet werden.

seealso See also

CreateProgram - Hauptprogramm anlegen

CreateSP - Unterprogramm anlegen

Create SfcChild - SFC Child Programm anlegen

CopyProgram - Programm duplizieren

DeleteProgram - Programm löschen

EnumProgram - Programmliste ausgeben

GetProgram - Informationen über ein Programm abrufen

Special commands

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


CreateSfcChild - SFC Child Programm anlegen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Programme verwalten -> CreateSfcChild - SFC Child Programm anlegen

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateSfcChild - SFC Child Programm anlegen

Syntax:

CreateSfcChild <parent> <name>

Argumente:

parent : Name des Parent SFC Programms

name : Child SFC Programm Name

info Info

Dieser Befehl kann in einer "FOR" Schleife verwendet werden.

seealso See also

CreateProgram - Hauptprogramm anlegen

CreateSP - Unterprogramm anlegen

CreateUDFB - User Defined Function Block anlegen

CopyProgram - Programm duplizieren

DeleteProgram - Programm löschen

EnumProgram - Programmliste ausgeben

GetProgram - Informationen über ein Programm abrufen

Special commands

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


CopyProgram - Programm duplizieren

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Programme verwalten -> CopyProgram - Programm duplizieren

Previous chapter Next chapter Show all Show all Hide all Hide all

CopyProgram - Programm duplizieren

Syntax:

CopyProgram <program> <newprogram>

Argumente:

program : Name des Quell-Programms

newprogram : Name des Ziel-Programms welches angelegt wird

info Info

Dieser Befehl wird für das Kopieren von Programmen verwendet. Dieser Befehl darf nicht für das Überschreiben von existierenden Programmen verwendet werden.

Dieser Befehl kann in einer "FOR" Schleife verwendet werden.

seealso See also

CreateProgram - Hauptprogramm anlegen

CreateSP - Unterprogramm anlegen

CreateUDFB - User Defined Function Block anlegen

Create SfcChild - SFC Child Programm anlegen

DeleteProgram - Programm löschen

EnumProgram - Programmliste ausgeben

GetProgram - Informationen über ein Programm abrufen

Special commands

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


DeleteProgram - Programm löschen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Programme verwalten -> DeleteProgram - Programm löschen

Previous chapter Next chapter Show all Show all Hide all Hide all

DeleteProgram - Programm löschen

Syntax:

DeleteProgram <program>

Argument:

program : Programm welches gelöscht werden soll - kann "?" Wildcards enthalten

info Info

Dieser Befehl kann in einer "FOR" Schleife verwendet werden.

seealso See also

CreateProgram - Hauptprogramm anlegen

CreateSP - Unterprogramm anlegen

CreateUDFB - User Defined Function Block anlegen

Create SfcChild - SFC Child Programm anlegen

CopyProgram - Programm duplizieren

EnumProgram - Programmliste ausgeben

GetProgram - Informationen über ein Programm abrufen

Special commands

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


EnumProgram - Programmliste ausgeben

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Programme verwalten -> EnumProgram - Programmliste ausgeben

Previous chapter Next chapter Show all Show all Hide all Hide all

EnumProgram - Programmliste ausgeben

Syntax:

EnumProgram [ filter ]

Argument:

filter : Filter String - kann '*' und '?' Wildcards enthalten

info Info

Dieser Befehl kann nicht in einer "FOR" Schleife verwendet werden.

seealso See also

CreateProgram - Hauptprogramm anlegen

CreateSP - Unterprogramm anlegen

CreateUDFB - User Defined Function Block anlegen

Create SfcChild - SFC Child Programm anlegen

CopyProgram - Programm duplizieren

DeleteProgram - Programm löschen

GetProgram - Informationen über ein Programm abrufen

Special commands

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


GetProgram - Informationen über ein Programm abrufen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Programme verwalten -> GetProgram - Informationen über ein Programm abrufen

Previous chapter Next chapter Show all Show all Hide all Hide all

GetProgram - Informationen über ein Programm abrufen

Syntax:

GetProgram <program>

Argument:

program : Programmname

info Info

Dieser Befehl kann nicht in einer "FOR" Schleife verwendet werden.

seealso See also

CreateProgram - Hauptprogramm anlegen

CreateSP - Unterprogramm anlegen

CreateUDFB - User Defined Function Block anlegen

Create SfcChild - SFC Child Programm anlegen

CopyProgram - Programm duplizieren

DeleteProgram - Programm löschen

EnumProgram - Programmliste ausgeben

Special commands

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


Variablen verwalten

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Variablen verwalten

Previous chapter Next chapter Show all Show all Hide all Hide all

seealso See also

Special commands

Programme verwalten

Programmordner verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole

Noch in diesem Kapitel

CreateVar - Variable anlegen

CreateInParam - Eingabeparameter anlegen

CreateOutParam - Ausgabeparameter anlegen

DimVar - Variablen Dimensionen definieren

DeleteVar - Variable löschen

InitVar - Initialwert einer Variable setzen

SybVar - Einbetten des Symbols einer Variable

ProfileVar - Variablen Profil und eingebettete Eigenschaften setzen

EnumVar - Variablenliste anzeigen

GetVar - Informationen über Variablen abrufen

GetVarProp - Informationen über eingebettete Eigenschaften abrufen


CreateVar - Variable anlegen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Variablen verwalten -> CreateVar - Variable anlegen

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateVar - Variable anlegen

Syntax:

CreateVar <name> <type>

Argument:

name : Name der Variable - siehe Hinweise

type : Datentyp (Kann ein Funktionsblock sein um einen Instanz zu deklarieren)

info Info

Dieser Befehl wird für die Deklaration von Variablen oder für das Hinzufügen von Elementen in Strukturen verwendet. Der Variablenname muss einen Präfix zur Definition der Gruppe enthalten. Die Trennung erfolgt durch einen '.'. Die Variable wird als Global betrachtet, wenn kein Präfix angegeben wird. Hier ein paar Beispiele:

Argument | Beschreibung
VarName | globale Variable
RETAIN.VarName | remanente Variable
ProgName.LocVarName | lokale Variable für ein Programm
UDFBName.ParamName | Parameter eines UDFB
StructName.Item | Element einer Struktur

Dieser Befehl kann in einer "FOR" Schleife verwendet werden.

seealso See also

CreateInParam - Eingabeparameter anlegen

CreateOutparam - Ausgabeparameter anlegen

DimVar - Variablen Dimensionen definieren

DeleteVar - Variable löschen

InitVar - Initialwert einer Variable setzen

SybVar - Einbetten des Symbols einer Variable

ProfileVar - Variablen Profil und eingebettete Eigenschaften setzen

EnumVar - Variablenliste anzeigen

GetVar - Informationen über Variablen abrufen

GetVarProp - Informationen über eingebettete Eigenschaften abrufen

Special commands

Programme verwalten

Programmordner verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


CreateInParam - Eingabeparameter anlegen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Variablen verwalten -> CreateInParam - Eingabeparameter anlegen

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateInParam - Eingabeparameter anlegen

Syntax:

CreateInParam <POU>.<name> <type>

Argumente:

POU : Name des Unterprogramms oder UDFB

name : Name des Parameters

type : Datentyp (kann ein Funktionsblock sein)

info Info

Dieser Befehl kann in einer "FOR" Schleife verwendet werden.

seealso See also

CreateVar - Variable anlegen

CreateOutparam - Ausgabeparameter anlegen

DimVar - Variablen Dimensionen definieren

DeleteVar - Variable löschen

InitVar - Initialwert einer Variable setzen

SybVar - Einbetten des Symbols einer Variable

ProfileVar - Variablen Profil und eingebettete Eigenschaften setzen

EnumVar - Variablenliste anzeigen

GetVar - Informationen über Variablen abrufen

GetVarProp - Informationen über eingebettete Eigenschaften abrufen

Special commands

Programme verwalten

Programmordner verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


CreateOutParam - Ausgabeparameter anlegen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Variablen verwalten -> CreateOutParam - Ausgabeparameter anlegen

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateOutParam - Ausgabeparameter anlegen

Syntax:

CreateOutParam <POU>.<name> <type>

Argumente:

POU : Name des Unterprogramms oder UDFB

name : Name des Parameters

type : Datentyp (kann ein Funktionsblock sein)

info Info

Dieser Befehl kann in einer "FOR" Schleife verwendet werden.

seealso See also

CreateVar - Variable anlegen

CreateInParam - Eingabeparameter anlegen

DimVar - Variablen Dimensionen definieren

DeleteVar - Variable löschen

InitVar - Initialwert einer Variable setzen

SybVar - Einbetten des Symbols einer Variable

ProfileVar - Variablen Profil und eingebettete Eigenschaften setzen

EnumVar - Variablenliste anzeigen

GetVar - Informationen über Variablen abrufen

GetVarProp - Informationen über eingebettete Eigenschaften abrufen

Special commands

Programme verwalten

Programmordner verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


DimVar - Variablen Dimensionen definieren

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Variablen verwalten -> DimVar - Variablen Dimensionen definieren

Previous chapter Next chapter Show all Show all Hide all Hide all

DimVar - Variablen Dimensionen definieren

Syntax:

DimVar <var> <Dim1> [ Dim2 [ Dim3 ] ]

Argument:

var : Name der Variable - siehe Hinweise

dim1, dim2, dim3 : Dimensionen

info Info

Dieser Befehl wird für Variablen, Parameter von Unterprogrammen und UDFBs oder für Elemente von Datenstrukturen verwendet. Der Variablenname muss einen Präfix zur Definition der Gruppe enthalten. Die Trennung erfolgt durch einen '.'. Die Variable wird als Global betrachtet, wenn kein Präfix angegeben wird. Hier ein paar Beispiele:

Argument | Beschreibung
VarName | globale Variable
RETAIN.VarName | remanente Variable
ProgName.LocVarName | lokale Variable für ein Programm
UDFBName.ParamName | Parameter eines UDFB
StructName.Item | Element einer Struktur

Dieser Befehl kann in einer "FOR" Schleife verwendet werden.

seealso See also

CreateVar - Variable anlegen

CreateInParam - Eingabeparameter anlegen

CreateOutparam - Ausgabeparameter anlegen

DeleteVar - Variable löschen

InitVar - Initialwert einer Variable setzen

SybVar - Einbetten des Symbols einer Variable

ProfileVar - Variablen Profil und eingebettete Eigenschaften setzen

EnumVar - Variablenliste anzeigen

GetVar - Informationen über Variablen abrufen

GetVarProp - Informationen über eingebettete Eigenschaften abrufen

Special commands

Programme verwalten

Programmordner verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


DeleteVar - Variable löschen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Variablen verwalten -> DeleteVar - Variable löschen

Previous chapter Next chapter Show all Show all Hide all Hide all

DeleteVar - Variable löschen

Syntax:

DeleteVar <var>

Argument:

var : Name der Variable - siehe Hinweise

info Info

Dieser Befehl wird für Variablen, Parameter von Unterprogrammen und UDFBs oder für Elemente von Datenstrukturen verwendet. Der Variablenname muss einen Präfix zur Definition der Gruppe enthalten. Die Trennung erfolgt durch einen '.'. Die Variable wird als Global betrachtet, wenn kein Präfix angegeben wird. Hier ein paar Beispiele:

Argument | Beschreibung
VarName | globale Variable
RETAIN.VarName | remanente Variable
ProgName.LocVarName | lokale Variable für ein Programm
UDFBName.ParamName | Parameter eines UDFB
StructName.Item | Element einer Struktur

Dieser Befehl kann in einer "FOR" Schleife verwendet werden.

seealso See also

CreateVar - Variable anlegen

CreateInParam - Eingabeparameter anlegen

CreateOutparam - Ausgabeparameter anlegen

DimVar - Variablen Dimensionen definieren

InitVar - Initialwert einer Variable setzen

SybVar - Einbetten des Symbols einer Variable

ProfileVar - Variablen Profil und eingebettete Eigenschaften setzen

EnumVar - Variablenliste anzeigen

GetVar - Informationen über Variablen abrufen

GetVarProp - Informationen über eingebettete Eigenschaften abrufen

Special commands

Programme verwalten

Programmordner verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


InitVar - Initialwert einer Variable setzen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Variablen verwalten -> InitVar - Initialwert einer Variable setzen

Previous chapter Next chapter Show all Show all Hide all Hide all

InitVar - Initialwert einer Variable setzen

Syntax:

InitVar <var> [ value ]

Argumente:

var : Name der Variable - siehe Hinweise

value : Initialwert (der Initialwert wird gelöscht wenn dieses Argument nicht gesetzt wird)

info Info

Dieser Befehl wird für Variablen, Parameter von Unterprogrammen und UDFBs oder für Elemente von Datenstrukturen verwendet. Der Variablenname muss einen Präfix zur Definition der Gruppe enthalten. Die Trennung erfolgt durch einen '.'. Die Variable wird als Global betrachtet, wenn kein Präfix angegeben wird. Hier ein paar Beispiele:

Argument | Beschreibung
VarName | globale Variable
RETAIN.VarName | remanente Variable
ProgName.LocVarName | lokale Variable für ein Programm
UDFBName.ParamName | Parameter eines UDFB
StructName.Item | Element einer Struktur

Dieser Befehl kann in einer "FOR" Schleife verwendet werden.

seealso See also

CreateVar - Variable anlegen

CreateInParam - Eingabeparameter anlegen

CreateOutparam - Ausgabeparameter anlegen

DimVar - Variablen Dimensionen definieren

DeleteVar - Variable löschen

SybVar - Einbetten des Symbols einer Variable

ProfileVar - Variablen Profil und eingebettete Eigenschaften setzen

EnumVar - Variablenliste anzeigen

GetVar - Informationen über Variablen abrufen

GetVarProp - Informationen über eingebettete Eigenschaften abrufen

Special commands

Programme verwalten

Programmordner verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


SybVar - Einbetten des Symbols einer Variable

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Variablen verwalten -> SybVar - Einbetten des Symbols einer Variable

Previous chapter Next chapter Show all Show all Hide all Hide all

SybVar - Einbetten des Symbols einer Variable

Syntax:

SybVar <var> < ON | OFF >

var : Name der Variable - kann '*' und '?' Wildcards enthalten - siehe Hinweise

info Info

Dieser Befehl wird für Variablen, Parameter von Unterprogrammen und UDFBs oder für Elemente von Datenstrukturen verwendet. Der Variablenname muss einen Präfix zur Definition der Gruppe enthalten. Die Trennung erfolgt durch einen '.'. Die Variable wird als Global betrachtet, wenn kein Präfix angegeben wird. Hier ein paar Beispiele:

Argument | Beschreibung
VarName | globale Variable
RETAIN.VarName | remanente Variable
ProgName.LocVarName | lokale Variable für ein Programm
UDFBName.ParamName | Parameter eines UDFB
StructName.Item | Element einer Struktur

Dieser Befehl kann in einer "FOR" Schleife verwendet werden.

seealso See also

CreateVar - Variable anlegen

CreateInParam - Eingabeparameter anlegen

CreateOutparam - Ausgabeparameter anlegen

DimVar - Variablen Dimensionen definieren

DeleteVar - Variable löschen

InitVar - Initialwert einer Variable setzen

ProfileVar - Variablen Profil und eingebettete Eigenschaften setzen

EnumVar - Variablenliste anzeigen

GetVar - Informationen über Variablen abrufen

GetVarProp - Informationen über eingebettete Eigenschaften abrufen

Special commands

Programme verwalten

Programmordner verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


ProfileVar - Variablen Profil und eingebettete Eigenschaften setzen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Variablen verwalten -> ProfileVar - Variablen Profil und eingebettete Eigenschaften setzen

Previous chapter Next chapter Show all Show all Hide all Hide all

ProfileVar - Variablen Profil und eingebettete Eigenschaften setzen

Syntax:

ProfileVar <var> [ profile [ props ] ]

Argument:

var : Name der Variable - kann '*' und '?' Wildcards enthalten - siehe Hinweise

profile : Profilname - das Profil wird gelöscht wenn nicht spezifiziert

pros : Eingebettete Eigenschaften - Eigenschaften werden gelöscht wenn nicht spezifiziert

info Info

Eigenschaften werden spezifiziert mit 'Name=Wert,Name=Wert...' wie im Variablen Editor dargestellt.

Dieser Befehl wird für Variablen, Parameter von Unterprogrammen und UDFBs oder für Elemente von Datenstrukturen verwendet. Der Variablenname muss einen Präfix zur Definition der Gruppe enthalten. Die Trennung erfolgt durch einen '.'. Die Variable wird als Global betrachtet, wenn kein Präfix angegeben wird. Hier ein paar Beispiele:

Argument | Beschreibung
VarName | globale Variable
RETAIN.VarName | remanente Variable
ProgName.LocVarName | lokale Variable für ein Programm
UDFBName.ParamName | Parameter eines UDFB
StructName.Item | Element einer Struktur

Dieser Befehl kann in einer "FOR" Schleife verwendet werden.

seealso See also

CreateVar - Variable anlegen

CreateInParam - Eingabeparameter anlegen

CreateOutparam - Ausgabeparameter anlegen

DimVar - Variablen Dimensionen definieren

DeleteVar - Variable löschen

InitVar - Initialwert einer Variable setzen

SybVar - Einbetten des Symbols einer Variable

EnumVar - Variablenliste anzeigen

GetVar - Informationen über Variablen abrufen

GetVarProp - Informationen über eingebettete Eigenschaften abrufen

Special commands

Programme verwalten

Programmordner verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


EnumVar - Variablenliste anzeigen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Variablen verwalten -> EnumVar - Variablenliste anzeigen

Previous chapter Next chapter Show all Show all Hide all Hide all

EnumVar - Variablenliste anzeigen

Syntax:

EnumVar [ filter ]

Argument:

filter : Filter String - kann '*' und '?' Wildcards enthalten

info Info

Dieser Befehl wird für Variablen, Parameter von Unterprogrammen und UDFBs oder für Elemente von Datenstrukturen verwendet. Der Variablenname muss einen Präfix zur Definition der Gruppe enthalten. Die Trennung erfolgt durch einen '.'. Die Variable wird als Global betrachtet, wenn kein Präfix angegeben wird. Hier ein paar Beispiele:

Argument | Beschreibung
* | globale Variable
RETAIN.* | remanente Variable
ProgName.* | lokale Variable für ein Programm
UDFBName.* | Parameter eines UDFB
StructName.* | Element einer Struktur

Dieser Befehl kann nicht in einer "FOR" Schleife verwendet werden.

seealso See also

CreateVar - Variable anlegen

CreateInParam - Eingabeparameter anlegen

CreateOutparam - Ausgabeparameter anlegen

DimVar - Variablen Dimensionen definieren

DeleteVar - Variable löschen

InitVar - Initialwert einer Variable setzen

SybVar - Einbetten des Symbols einer Variable

ProfileVar - Variablen Profil und eingebettete Eigenschaften setzen

GetVar - Informationen über Variablen abrufen

GetVarProp - Informationen über eingebettete Eigenschaften abrufen

Special commands

Programme verwalten

Programmordner verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


GetVar - Informationen über Variablen abrufen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Variablen verwalten -> GetVar - Informationen über Variablen abrufen

Previous chapter Next chapter Show all Show all Hide all Hide all

GetVar - Informationen über Variablen abrufen

Syntax:

GetVar <var>

Argument:

var : Name der Variable - siehe Hinweise

info Info

Dieser Befehl wird für Variablen, Parameter von Unterprogrammen und UDFBs oder für Elemente von Datenstrukturen verwendet. Der Variablenname muss einen Präfix zur Definition der Gruppe enthalten. Die Trennung erfolgt durch einen '.'. Die Variable wird als Global betrachtet, wenn kein Präfix angegeben wird. Hier ein paar Beispiele:

Argument | Beschreibung
VarName | globale Variable
RETAIN.VarName | remanente Variable
ProgName.LocVarName | lokale Variable für ein Programm
UDFBName.ParamName | Parameter eines UDFB
StructName.Item | Element einer Struktur

Dieser Befehl kann nicht in einer "FOR" Schleife verwendet werden.

seealso See also

CreateVar - Variable anlegen

CreateInParam - Eingabeparameter anlegen

CreateOutparam - Ausgabeparameter anlegen

DimVar - Variablen Dimensionen definieren

DeleteVar - Variable löschen

InitVar - Initialwert einer Variable setzen

SybVar - Einbetten des Symbols einer Variable

ProfileVar - Variablen Profil und eingebettete Eigenschaften setzen

EnumVar - Variablenliste anzeigen

GetVarProp - Informationen über eingebettete Eigenschaften abrufen

Special commands

Programme verwalten

Programmordner verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


GetVarProp - Informationen über eingebettete Eigenschaften abrufen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Variablen verwalten -> GetVarProp - Informationen über eingebettete Eigenschaften abrufen

Previous chapter Next chapter Show all Show all Hide all Hide all

GetVarProp - Informationen über eingebettete Eigenschaften abrufen

Syntax:

GetVarProp <var>

Argument:

var : Name der Variable - siehe Hinweise

info Info

Dieser Befehl wird für Variablen, Parameter von Unterprogrammen und UDFBs oder für Elemente von Datenstrukturen verwendet. Der Variablenname muss einen Präfix zur Definition der Gruppe enthalten. Die Trennung erfolgt durch einen '.'. Die Variable wird als Global betrachtet, wenn kein Präfix angegeben wird. Hier ein paar Beispiele:

Argument | Beschreibung
VarName | globale Variable
RETAIN.VarName | remanente Variable
ProgName.LocVarName | lokale Variable für ein Programm
UDFBName.ParamName | Parameter eines UDFB
StructName.Item | Element einer Struktur

Dieser Befehl kann nicht in einer "FOR" Schleife verwendet werden.

seealso See also

CreateVar - Variable anlegen

CreateInParam - Eingabeparameter anlegen

CreateOutparam - Ausgabeparameter anlegen

DimVar - Variablen Dimensionen definieren

DeleteVar - Variable löschen

InitVar - Initialwert einer Variable setzen

SybVar - Einbetten des Symbols einer Variable

ProfileVar - Variablen Profil und eingebettete Eigenschaften setzen

EnumVar - Variablenliste anzeigen

GetVar - Informationen über Variablen abrufen

Special commands

Programme verwalten

Programmordner verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


Datentypen verwalten (Strukturen)

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Datentypen verwalten (Strukturen)

Previous chapter Next chapter Show all Show all Hide all Hide all

seealso See also

Special commands

Programme verwalten

Programmordner verwalten

Variablen verwalten

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole

Noch in diesem Kapitel

CreateStruct - Struktur anlegen

DeleteStruct - Struktur löschen

EnumStruct - Strukturliste anzeigen


CreateStruct - Struktur anlegen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Datentypen verwalten (Strukturen) -> CreateStruct - Struktur anlegen

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateStruct - Struktur anlegen

Syntax:

CreateStruct <name>

Argument:

name : Strukturname

info Info

Dieser Befehl kann in einer "FOR" Schleife verwendet werden.

seealso See also

DeleteStruct - Struktur löschen

EnumStruct - Strukturliste anzeigen

Special commands

Programme verwalten

Programmordner verwalten

Variablen verwalten

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


DeleteStruct - Struktur löschen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Datentypen verwalten (Strukturen) -> DeleteStruct - Struktur löschen

Previous chapter Next chapter Show all Show all Hide all Hide all

DeleteStruct - Struktur löschen

Syntax:

DeleteStruct <struct>

Argument:

struct : Strukturname

info Info

Dieser Befehl kann in einer "FOR" Schleife verwendet werden.

seealso See also

CreateStruct - Struktur anlegen

EnumStruct - Strukturliste anzeigen

Special commands

Programme verwalten

Programmordner verwalten

Variablen verwalten

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


EnumStruct - Strukturliste anzeigen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Datentypen verwalten (Strukturen) -> EnumStruct - Strukturliste anzeigen

Previous chapter Next chapter Show all Show all Hide all Hide all

EnumStruct - Strukturliste anzeigen

Syntax:

EnumStruct [ filter ]

Argument:

filter : Filter String - kann '*' und '?' Wildcards enthalten

info Info

Dieser Befehl kann nicht in einer "FOR" Schleife verwendet werden.

seealso See also

CreateStruct - Struktur anlegen

DeleteStruct - Struktur löschen

Special commands

Programme verwalten

Programmordner verwalten

Variablen verwalten

I/O Boards verwalten

Kommentartexte verwalten

Die Konsole


I/O Boards verwalten

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> I/O Boards verwalten

Previous chapter Next chapter Show all Show all Hide all Hide all

seealso See also

Special commands

Programme verwalten

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

Kommentartexte verwalten

Die Konsole

Noch in diesem Kapitel

CreateIO - Instanz eines I/O Geräts anlegen

IOParam - Parameter eines I/O Boards setzen

IOAlias - Einem I/O Kanal einen Aliasnamen geben

DeleteIO - Instanz eines I/O Geräts löschen

EnumIO - I/O Board Liste anzeigen

GetIO - Information über ein I/O Board abrufen


CreateIO - Instanz eines I/O Geräts anlegen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> I/O Boards verwalten -> CreateIO - Instanz eines I/O Geräts anlegen

Previous chapter Next chapter Show all Show all Hide all Hide all

CreateIO - Instanz eines I/O Geräts anlegen

Syntax:

CreateIO <slot> <IOtype>

Argumente:

slot : Positionsnummer (0 .. 255)

IOtype : Typ des I/O Geräts

info Info

Dieser Befehl kann nicht in einer "FOR" Schleife verwendet werden.

seealso See also

IOParam - Parameter eines I/O Boards setzen

IOAlias - Einem I/O Kanal einen Aliasnamen geben

DeleteIO - Instanz eines I/O Geräts löschen

EnumIO - I/O Board Liste anzeigen

GetIO - Informationen über ein I/O Board abrufen

Special commands

Programme verwalten

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

Kommentartexte verwalten

Die Konsole


IOParam - Parameter eines I/O Boards setzen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> I/O Boards verwalten -> IOParam - Parameter eines I/O Boards setzen

Previous chapter Next chapter Show all Show all Hide all Hide all

IOParam - Parameter eines I/O Boards setzen

Syntax:

IOParam <%board> <name> <value>

Argumente:

%board : Adresse des I/O Boards (z.B. %QX0)

name : Parametername

value : Parameterwert

info Info

Dieser Befehl kann nicht in einer "FOR" Schleife verwendet werden.

seealso See also

CreateIO - Instanz eines I/O Geräts anlegen

IOAlias - Einem I/O Kanal einen Aliasnamen geben

DeleteIO - Instanz eines I/O Geräts löschen

EnumIO - I/O Board Liste anzeigen

GetIO - Informationen über ein I/O Board abrufen

Special commands

Programme verwalten

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

Kommentartexte verwalten

Die Konsole


IOAlias - Einem I/O Kanal einen Aliasnamen geben

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> I/O Boards verwalten -> IOAlias - Einem I/O Kanal einen Aliasnamen geben

Previous chapter Next chapter Show all Show all Hide all Hide all

IOAlias - Einem I/O Kanal einen Aliasnamen geben

Syntax:

IOAlias <%channel> <alias>

Argumente:

%channel : Adresse des I/O Kanals (z.B. %QX0.1)

alias : Name welcher als Aliasname verwendet werden soll

info Info

Dieser Befehl kann nicht in einer "FOR" Schleife verwendet werden.

seealso See also

CreateIO - Instanz eines I/O Geräts anlegen

IOParam - Parameter eines I/O Boards setzen

DeleteIO - Instanz eines I/O Geräts löschen

EnumIO - I/O Board Liste anzeigen

GetIO - Informationen über ein I/O Board abrufen

Special commands

Programme verwalten

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

Kommentartexte verwalten

Die Konsole


DeleteIO - Instanz eines I/O Geräts löschen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> I/O Boards verwalten -> DeleteIO - Instanz eines I/O Geräts löschen

Previous chapter Next chapter Show all Show all Hide all Hide all

DeleteIO - Instanz eines I/O Geräts löschen

Syntax:

DeleteIO <slot>

Argument:

slot : Positionsnummer (0 .. 255)

info Info

Dieser Befehl kann nicht in einer "FOR" Schleife verwendet werden.

seealso See also

CreateIO - Instanz eines I/O Geräts anlegen

IOParam - Parameter eines I/O Boards setzen

IOAlias - Einem I/O Kanal einen Aliasnamen geben

EnumIO - I/O Board Liste anzeigen

GetIO - Informationen über ein I/O Board abrufen

Special commands

Programme verwalten

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

Kommentartexte verwalten

Die Konsole


EnumIO - I/O Board Liste anzeigen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> I/O Boards verwalten -> EnumIO - I/O Board Liste anzeigen

Previous chapter Next chapter Show all Show all Hide all Hide all

EnumIO - I/O Board Liste anzeigen

Syntax:

EnumIO

info Info

Dieser Befehl kann nicht in einer "FOR" Schleife verwendet werden.

seealso See also

CreateIO - Instanz eines I/O Geräts anlegen

IOParam - Parameter eines I/O Boards setzen

IOAlias - Einem I/O Kanal einen Aliasnamen geben

DeleteIO - Instanz eines I/O Geräts löschen

GetIO - Informationen über ein I/O Board abrufen

Special commands

Programme verwalten

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

Kommentartexte verwalten

Die Konsole


GetIO - Information über ein I/O Board abrufen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> I/O Boards verwalten -> GetIO - Information über ein I/O Board abrufen

Previous chapter Next chapter Show all Show all Hide all Hide all

GetIO - Information über ein I/O Board abrufen

Syntax:

GetIO <%board>

Argument:

%board : Adresse des I/O Boards (z.B. %QX0)

info Info

Dieser Befehl kann nicht in einer "FOR" Schleife verwendet werden.

seealso See also

CreateIO - Instanz eines I/O Geräts anlegen

IOParam - Parameter eines I/O Boards setzen

IOAlias - Einem I/O Kanal einen Aliasnamen geben

DeleteIO - Instanz eines I/O Geräts löschen

EnumIO - I/O Board Liste anzeigen

Special commands

Programme verwalten

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

Kommentartexte verwalten

Die Konsole


Kommentartexte verwalten

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Kommentartexte verwalten

Previous chapter Next chapter Show all Show all Hide all Hide all

seealso See also

Special commands

Programme verwalten

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Die Konsole

Noch in diesem Kapitel

Comm - Kommentartext schreiben

Tag - Kurzkommentartext schreiben (Tag) - nur Variablen

GetComm - Kommentartext anzeigen

GetTag - Kurzkommentartext anzeigen (Tag) - nur Variablen


Comm - Kommentartext schreiben

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Kommentartexte verwalten -> Comm - Kommentartext schreiben

Previous chapter Next chapter Show all Show all Hide all Hide all

Comm - Kommentartext schreiben

Syntax:

Comm <X|P|S|V|B> <name> <comment>

Argumente:

name : Objektname

comment : Kommentartext

info Info

Verwenden Sie folgende Werte als erstes Argument um das Objekt zu spezifizieren:

X : Projekt
P : Programm oder Unterprogramm oder UDFB
S : Struktur
V : Variable
B : I/O Board

Im Fall einer Variable muss der Name einen Präfix zur Definition der Gruppe enthalten. Die Trennung erfolgt durch einen '.'. Hier ein paar Beispiele:

Argument | Beschreibung
VarName | globale Variable
RETAIN.VarName | remanente Variable
ProgName.LocVarName | lokale Variable für ein Programm
UDFBName.ParamName | Parameter eines UDFB
StructName.Item | Element einer Struktur

Dieser Befehl kann in einer "FOR" Schleife verwendet werden, außer bei I/O Boards.

seealso See also

Tag - Kurzkommentar schreiben (Tag) - nur Variablen

GetComm - Kommentartext anzeigen

GetTag - Kurzkommentartext anzeigen (Tag) - nur Variablen

Special commands

Programme verwalten

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Die Konsole


Tag - Kurzkommentartext schreiben (Tag) - nur Variablen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Kommentartexte verwalten -> Tag - Kurzkommentartext schreiben (Tag) - nur Variablen

Previous chapter Next chapter Show all Show all Hide all Hide all

Tag - Kurzkommentartext schreiben (Tag) - nur Variablen

Syntax:

Tag V <name> <comment>

Argument:

name : Variablenname (siehe Hinweise)

comment : Kurzkommentartext (Tag)

info Info

Die Variable muss der Name einen Präfix zur Definition der Gruppe enthalten. Die Trennung erfolgt durch einen '.'. Hier ein paar Beispiele:

Argument | Beschreibung
VarName | globale Variable
RETAIN.VarName | remanente Variable
ProgName.LocVarName | lokale Variable für ein Programm
UDFBName.ParamName | Parameter eines UDFB
StructName.Item | Element einer Struktur

Dieser Befehl kann in einer "FOR" Schleife verwendet werden, außer bei I/O Boards.

seealso See also

Comm - Kommentartext schreiben

GetComm - Kommentartext anzeigen

GetTag - Kurzkommentartext anzeigen (Tag) - nur Variablen

Special commands

Programme verwalten

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Die Konsole


GetComm - Kommentartext anzeigen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Kommentartexte verwalten -> GetComm - Kommentartext anzeigen

Previous chapter Next chapter Show all Show all Hide all Hide all

GetComm - Kommentartext anzeigen

Syntax:

GetComm <X|P|S|V|B> <name>

Argument:

name : Objektname

info Info

Verwenden Sie folgende Werte als erstes Argument um das Objekt zu spezifizieren:

X : Projekt
P : Programm oder Unterprogramm oder UDFB
S : Struktur
V : Variable
B : I/O Board

Im Fall einer Variable muss der Name einen Präfix zur Definition der Gruppe enthalten. Die Trennung erfolgt durch einen '.'. Hier ein paar Beispiele:

Argument | Beschreibung
VarName | globale Variable
RETAIN.VarName | remanente Variable
ProgName.LocVarName | lokale Variable für ein Programm
UDFBName.ParamName | Parameter eines UDFB
StructName.Item | Element einer Struktur

Dieser Befehl kann nicht in einer "FOR" Schleife verwendet werden.

seealso See also

Comm - Kommentartext schreiben

Tag - Kurzkommentar schreiben (Tag) - nur Variablen

GetTag - Kurzkommentartext anzeigen (Tag) - nur Variablen

Special commands

Programme verwalten

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Die Konsole


GetTag - Kurzkommentartext anzeigen (Tag) - nur Variablen

IEC 61131-3 Programming Environment -> Tools -> Die Konsole -> Kommentartexte verwalten -> GetTag - Kurzkommentartext anzeigen (Tag) - nur Variablen

Previous chapter Next chapter Show all Show all Hide all Hide all

GetTag - Kurzkommentartext anzeigen (Tag) - nur Variablen

Syntax:

GetTag V <name>

Argument:

name : Variabelenname (siehe Hinweise)

info Info

Die Variable muss der Name einen Präfix zur Definition der Gruppe enthalten. Die Trennung erfolgt durch einen '.'. Hier ein paar Beispiele:

Argument | Beschreibung
VarName | globale Variable
RETAIN.VarName | remanente Variable
ProgName.LocVarName | lokale Variable für ein Programm
UDFBName.ParamName | Parameter eines UDFB
StructName.Item | Element einer Struktur

Dieser Befehl kann in einer "FOR" Schleife verwendet werden, außer bei I/O Boards.

seealso See also

Comm - Kommentartext schreiben

Tag - Kurzkommentar schreiben (Tag) - nur Variablen

GetComm - Kommentartext anzeigen

Special commands

Programme verwalten

Programmordner verwalten

Variablen verwalten

Datentypen verwalten (Strukturen)

I/O Boards verwalten

Die Konsole

© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


Code Checker

IEC 61131-3 Programming Environment -> Tools -> Code Checker

The Code Checker tool performs a scan of the project declarations and programs, in order to check conformity to a set of rules, motivated by integrity, safety and portability of the code. It is run from the "Code Checker" tab of the Output window.

Use the "Settings" button to select/configure the rules to be checked for violations.

Use the "Scan" button to start analysis. The project must be compiled without errors before being checked.

Double clicking on a violation report line in the output enables you to navigate to the corresponding location of the source code.

Use commands of the contextual popup menu to copy or export the report.

Note: an option is available in the "Compiler" section of the "Project Settings" box to systematically run the Code Checker after any successful build.

Rules configuration

Use the "Configure" button to select and configure rules to be checked. This is also available from the main tab of the "Project Settings" box. Rules are shown in a tree including check boxes. Unchecked rules will be skipped during scan. Double click on a rule to configure it.

You can select for each rule a severity level: "Not checked" or "Info" or "Warning" or "Error" or "Fatal". You can also enter for each rule a text reference that will be displayed in reports.

For rules referring to metrics (e.g. name length) you can enter a minimum and maximum value.

For rules concerning variables, you can specify a filter based on the "User's group" column of the variable editor: either check only in some user's groups, or check except in some user's groups. Please enter one user's group name per line

For rule 1.4, you have to enter in the "Data" box the list of forbidden names. Please enter one name per line.

In addition the rules configuration box enables you to export or import the configuration as XML file.

Rules

1.1

IO channels (%...) must have an alias

Default level = ERROR

Accept filtering by user’s group

All I/O board channels ("%..." variables created from the IO board editor) must have a readable alias defined in the variable editor. The "%..." names cannot be used in programs. Programs must always refer to aliases.

1.2

IO channels (%...) aliases should not reflect the hardware location

Default level = WARNING

Accept filtering by user’s group

Aliases of I/O board channels should not reflect the hardware location. For instance an alias for channel "%IX0.1" cannot be "DI0_1".

1.3

Names must respect a minimum and a maximum length

Default level = INFO

Accept filtering by user’s group in case of variables

Minimum and maximum values configurable

This applies to any declared variable or POU.

1.4

Names used during debug should not remain in the project

Default level = INFO

Accept filtering by user’s group in case of variables

Data = list of forbidden names, separated by comas.

The dummy variables used during debugging should be removed from the final project. The user should enter the list of forbidden names for this rule.

1.5

All given names must be conform to IEC standard

Default level = ERROR

Accept filtering by user’s group in case of variables

STRATON proposes an option in order to accept variable names not compliant with the IEC standard (with punctuation, accents, spaces…). This option should not be used. Symbols of all variables and POUs are checked.

1.6

Names reserved for keywords should not be used

Default level = FATAL

Accept filtering by user’s group in case of variables

Reserved keywords from the IEC standard should not be used for naming variables, whatever is the programming language. For instance, the name "STEP" cannot be used.

1.7

POU information should be filled

Default level = WARNING

Does not accept filtering by user’s group

In the "POU Information" box, the items "Author", "Security Class" and "Project No" must be filled.

1.8

The case of variable names must be respected

Default level = INFO

Accept filtering by user’s group in case of variables

When a variable is used in programs, it must have exactly the same case as its declared name.

2.1

All declared objects must have a comment

Default level = ERROR

Accept filtering by user’s group in case of variables

This applies to all declared variables and POUs.

2.2

Comments must respect a minimum length

Default level = ERROR

Accept filtering by user’s group in case of variables

Minimum and maximum values configurable for the length

This applies to all declared variables and POUs.

2.3

The percentage of comments should be sufficient

Default level = WARNING

Accept filtering by user’s group in case of variables

Minimum value configurable as percent

This is the percentage of comments entered within the code of POU, whatever is the programming language. This percentage is tested individually for each POU and applies only to the code. Comments entered for local variables are not counted here.

2.4

Comments should not contain special characters

Default level = WARNING

Accept filtering by user’s group in case of variables

Minimum value configurable as percent

Characters with ASCII code greater than 127 (accents, special characters) should not be used in comments. This applies to both declared objects and comments entered in POUs.

3.x

XXX language should not be used for main programs

Default level = FATAL for IL – NOT CHECKED for others

Does not accept filtering by user’s group

This rule is derived for: IL, ST, LD, FBD and SFC languages

3.x

XXX language should not be used for UDFBs

Default level = FATAL for IL – NOT CHECKED for others

Does not accept filtering by user’s group

This rule is derived for: IL, ST, LD, FBD and SFC languages

3.x

XXX language should not be used for sub-programs

Default level = FATAL for IL – NOT CHECKED for others

Does not accept filtering by user’s group

This rule is derived for: IL, ST, LD and FBD languages.

4.1

All input parameters must be read out

Default level = FATAL

Accept filtering by user’s group in case of variables

Any IN parameter of a UDFB or sub-program must be read in its implementation.

4.2

All output parameters must be written before they are read out

Default level = FATAL

Accept filtering by user’s group in case of variables

Any OUT parameter of a UDFB or sub-program must be written in its implementation. It can be read, but only if it was written before.

4.3

All INOUT parameters must be written and read out

Default level = FATAL

Accept filtering by user’s group in case of variables

Any INOUT parameter of a UDFB or sub-program must be read and written in its implementation.

4.4

Forward and backward jumps should not be used

Default level = ERROR

Does not accept filtering by user’s group

This applies to jump and return instructions in LD, FBD and IL, plus RETURN, EXIT and GOTO statements in ST.

4.5

ST expressions should not be used in LD and FBD

Default level = FATAL

Does not accept filtering by user’s group

Text associated to graphic items in LD and FBD programs should not be complex expressions. For instance, associating "IntVar > iMax" to a LD contact is not accepted.

4.6

LD coils should be aligned on the right

Default level = WARNING

Does not accept filtering by user’s group

4.7

IF structures should include an ELSE section

Default level = WARNING

Does not accept filtering by user’s group

This applies to both "IF" and "CASE" statements in ST language.

4.8

There should not be dead code (uncalled UDFB or sub-program)

Default level = ERROR

Does not accept filtering by user’s group

Any declared UDFB or sub-program must be used at least once in the project. Conditional compiling is forbidden.

4.9

Equality tests should not be used with REAL and LREAL

Default level = FATAL

Does not accept filtering by user’s group

The option "Forbid equality tests between reals" must be checked in the "Compiler" section of the "Project Settings" box.

4.10

Nesting of ST structure should not exceed a complexity level

Default level = INFO

Does not accept filtering by user’s group

Maximum value configurable

This applies to nesting of any IF, WHILE, REPEAT, FOR, CASE structure in ST language.

4.11

The "WAIT" instructions of the ST language should not be used

Default level = ERROR

Does not accept filtering by user’s group

The instructions "WAIT", "WAIT_TIME" and "DO_WAIT" should not be used in ST.

4.12

The loop instructions of the ST language should not be used

Default level = ERROR

Does not accept filtering by user’s group

The instructions "WHILE", "REPEAT" and "FOR" should not be used in ST.

4.13

All block inputs should be connected in FBD diagrams

Default level = ERROR

Does not accept filtering by user’s group

This refers to an option in the "Project Settings" box. In the "Advanced" category, the "Deny unwired inputs in FBD" should be checked.

4.14

POUs in ST or IL should not exceed a number of lines

Default level = WARNING

Does not accept filtering by user’s group

Maximum value configurable

This applies to the entire POU contents, including comments and empty lines.

4.15

POUs in LD should not exceed a number of rungs

Default level = WARNING

Does not accept filtering by user’s group

Maximum value configurable

4.16

POUs in LD or FB should not exceed a number of blocks

Default level = WARNING

Does not accept filtering by user’s group

Maximum value configurable

Any function, operator or function block inserted in the diagram is counted.

4.17

POUs in SFC should not exceed a number of steps

Default level = WARNING

Does not accept filtering by user’s group

Maximum value configurable

5.1

All declared variables must be used in programs

Default level = ERROR

Accept filtering by user’s group in case of variables

Unused variables should not remain in the project.

5.2

Arrays of structures should not be used

Default level = WARNING

Accept filtering by user’s group in case of variables

5.3

All variables must be written before they are read uot

Default level = ERROR

Accept filtering by user’s group in case of variables

This also applies to global variables read or written among several POUs, according to their execution order. This rule is not applied to variables declared as "Read only".

5.4

An instance of FB should be called only once

Default level = FATAL

Accept filtering by user’s group in case of variables

This regards calling of the same declared instance of the same function block.

5.5

A global variable should be written in only one POU

Default level = ERROR

Accept filtering by user’s group in case of variables

It is allowed that the global variable is read in other POUs.

5.6

A variable should be written only once among programs

Default level = FATAL

Accept filtering by user’s group in case of variables

This applies to both local variables used within one POU and global variables used in several POUs of the project.

5.7

Arrays should not be used

Default level = WARNING

Accept filtering by user’s group in case of variables

5.8

Parallel branches should not be used in SFC

Default level = WARNING

Does not accept filtering by user’s group

The use of parallel branches (AND divergences) in SFC programs is not allowed.

5.9

SFC charts should be checked

Default level = FATAL

Does not accept filtering by user’s group

In the "Project Settings" box, the compiling option "Check safety of SFC charts" must be enabled.

5.10

All declared variables with single data type must have an initial value

Default level = WARNING

Accept filtering by user’s group in case of variables

This rule does not apply to: channels of an input board (%), arrays, structures, instances of function block, input or output parameters of UDFBs and sub-programs.

6.1

The code should not be built with debugging options checked

Default level = FATAL

Does not accept filtering by user’s group

This rule refers to compiling options set from the "Project Settings" box. The code should not be compiled in DEBUG mode. The "Variable Locking" feature should not be enabled. On Line Change should not be enabled.

6.2

Arrays indexes should be checked at runtime

Default level = FATAL

Does not accept filtering by user’s group

This rule refers to compiling options set from the "Project Settings" box. The compiling option "Check array indexes at runtime" should be checked.

6.3

Dynamic memory allocation should be configured with limited size

Default level = FATAL

Does not accept filtering by user’s group

This rule refers to compiling options set from the "Project Settings" box. In the settings of the "Enable Dynamic memory allocation" or the "Runtime" memory should not be configured to use Operating System dynamic memory.

© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


Ressourcen

IEC 61131-3 Programming Environment -> Ressourcen

Zusätzlich zur IEC-61131 Programmierung bietet die Workbench die Möglichkeit Konfigurationsdaten gemeinsam mit dem Applikationscode einzubetten um diese dann für Funktionen und Funktionsbausteine zu nutzen.

Die Workbench unterstützt folgende Arten von Ressourcen:

String Tabellen: Statisch definierte Tabellen von Texten zur Verwendung mit STRING Variablen zur Laufzeit.
Signale: Analoge Signale welche zur Laufzeit abgespielt werden um Sollwerte automatisch zu generieren.

Um eine neue Ressource anzulegen, wählen Sie im Arbeitsbereich den Befehl Neues Element einfügen... und wählen Sie dann die Resourcenkategorie. Klicken Sie doppelt auf eine Ressource um diese zu öffnen.

Noch in diesem Kapitel

String Tabellen Ressourcen

Analoge Signal Ressourcen
© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


String Tabellen Ressourcen

IEC 61131-3 Programming Environment -> Ressourcen -> String Tabellen Ressourcen

Previous chapter Next chapter Show all Show all Hide all Hide all

String Tabellen sind Ressourcen (eingebettete Konfigurationsdaten) welche in der Workbench editiert wurden. Eine String Tabelle ist ein Liste von Elementen. Die Tabelle hat einen eindeutigen Namen. Die Elemente können ein oder mehre Zeichen Strings sein.

String Tabellen werden typischerweise für die Definition von Statischen Texten verwendet welche in der Applikation verwendet werden sollen. Die folgenden Funktionen können für den Zugriff auf die String Tabellen in Programmen verwendet werden:

StringTable: Wählt die aktive String Tabelle aus.
LoadString: Lädt einen String von der aktiven Tabelle.

Zusätzlich darf jede String Tabelle mehrere Spalten je Element enthalten. Eine mögliche Anwendung dafür ist die Regionalisierung der Applikation. Dazu kann pro Sprache eine eigene Spalte definiert werden. Damit kann die Sprache während der Laufzeit dynamisch umgeschaltet werden indem man die entsprechende Spalte mit der Funktion StringTable() auswählt.

Der Name, welcher in der String Tabelle als "ID" eingetragen ist, wird für den Compiler automatisch deklariert und kann direkt in der Funktion LoadString() verwendet werden (keine Variablendeklaration notwendig). Der Name muss der IEC 61131 Namensgebung entsprechen.

Diese Aufgabe kann auch mittels eines STRING Arrays erfüllt werden indem man Initialwerte in den Arrays vergibt. Die Verwendung von String Tabellen bietet dagegen einige Vorteile:

  • In der Workbench hat man einen gute Übersicht über alle Spalten während des Editierens.
  • Die String Tabellen werden als Applikationscode geladen und benötigen im Gegensatz zu deklarierten Arrays keinen weiteren Speicherplatz.
  • Im String Tabellen Editor werden lesbare IDs für jedes Stringelement automatisch deklariert welche im Programm verwendet werden können. Bei Arrays arbeitet man mit fix codierten Indizes.

info Info

Ist der Text zu lange für eine STRING Variable wir dieser abgeschnitten.

Es können spezielle '$' Sequenzen in Strings verwendet werden um nicht druckbare Zeichen zu spezifizieren (nach IEC Standard):

$$
$'
$T
$R
$L
$N
$P
$xx

ein "$" Zeichen
ein einfaches Anführungszeichen
ein Tabulator (ASCII-Code 9)
einen Wagenrücklauf (ASCII-Code 13)
Zeilenvorschub (ASCII-Code 10)
Wagenrücklauf plus Zeilenvorschub (ASCII-Codes 13 und 10)
eine neue Seite (ASCII-Code 12)
ein beliebiges Zeichen (xx ist der durch zwei hexadezimale Stellen ausgedrückte ASCII-Code)


Analoge Signal Ressourcen

IEC 61131-3 Programming Environment -> Ressourcen -> Analoge Signal Ressourcen

Previous chapter Next chapter Show all Show all Hide all Hide all

Analoge Signale sind Ressourcen (eingebettete Konfigurationsdaten) welche mit der Workbench editiert wurden. Ein analoges Signal wird als Liste von analogen Punkten auf einer Zeitachse eingetragen.

Die vordefinierten Signale können als zeitlich abhängige Sollwertvorgabe verwendet werden. Dazu kommen folgende Funktionen und Funktionsbausteine zum Einsatz:

SigID: ID (Kennung) einer Signal Ressource anfordern (zur Verwendung in den folgenden Bausteinen).
SigPlay: Signal einer definierten Ressource abspielen.
SigScale: Einen Stützpunkt einer Signal Ressource auslesen.

Ein Signal wird als eine Liste von Punkten dargestellt. Jeder Punkt bezieht sich auf einen 0-basierten Zeitwert (X-Achse) und einen analogen REAL Wert auf der Y-Achse.

Example Example
Points | Signal

Zwischen zwei hintereinander liegenden Punkten wird das Signal als analoge Rampe verstanden. Soll ein Signalsprung (vertikale Linie) erzeugt werden, geschieht das in dem man mehrmals den selben Zeitwert in die X-Achse einträgt.


Applikationen vernetzen - Binding

IEC 61131-3 Programming Environment -> Applikationen vernetzen - Binding

Previous chapter Next chapter Show all Show all Hide all Hide all

Die Win-GRAF PAC driver Version 2.10 oder höher stellt ein ereignisgesteuertes Protokoll auf TCP/IP für den Echtzeit-Datenaustausch zwischen Runtime-Systemen zu Verfügung. Da das Protokoll völlig ereignisgesteuert ist, ergibt sich während der Laufzeit eine hohe Performance und sehr geringem Netzwerk-Verkehr. Dieser Abschnitt erklärt, wie man das ereignisgesteuerte T5 Protokoll für das Binding von Variablen aus Runtime-Systemen verwendet um eine verteilte Applikation aufzubauen.

seealso See also

Duales Binding im redundanten ETHERNET (Jump Template)

Neu! Die EnableEvents Funktion kann zur Aktivierung und Deaktivierung der Generierung von Binding Events verwendet werden.

Austauschmechanismen

Das T5 Protokoll basiert auf einem "publish-subscribe" Modell. Jedes Runtime-System kann Variablen im Netzwerk veröffentlichen und Variablen von anderen Runtime-Systemen empfangen (= externe Variable). Jede erstellte Variable wird durch eine Nummer identifiziert. Diese Identifizierung wird verwendet um Quell- und Ziel-Variablen in den Projekten zu verknüpfen. Die selbe veröffentlichte Variable kann von mehreren Ziel-Projekten empfangen werden.

Example Example

In diesem Beispiel wird die Variable VarP1 des Projektes Proj1 zur Laufzeit auf die Variable VarP2 des Projektes Proj2 und auf die Variable VarP3 des Projektes Proj3 gebunden (kopiert).

Austausch

Der Wert der Variable wird nur über das Netzwerk versandt, wenn sie sich ändert. Für jede erstellte Variable können Sie eine positive und eine negative Hysterese definieren um den Netzwerk-Verkehr den Anforderungen Ihrer Applikation entsprechend anzupassen. Jeder neue Wert, der über das Netzwerk versandt wird, wird mit einem Datums- und einem Zeitstempel versehen. Bei jeder externen Variable (= empfangene Variable) in Zielprojekten haben Sie Zugriff auf die Datums-/Zeitstempelung und auf das Quality Flag (Status Bit). Sie bekommen auch globale Informationen über den Zustand der Verbindung zu jedem Erzeuger.

Einschränkungen

Die maximale Anzahl veröffentlichter Variablen ist limitiert. Informieren Sie sich in Ihrer OEM Anleitung über die Einschränkungen des Bindings, die durch die Implementierung der Win-GRAF PAC driver auferlegt werden.

Nur boolsche, numerische und TIME Variablen können ausgetauscht werden. STRING Variablen und Funktionsblockinstanzen können über das Netzwerk nicht ausgetauscht werden.

Die Verwendung des Global Binding Editors

Die Workbench stellt ein globales Tool für die Definition des Datenaustauschens zwischen mehreren Projekten zur Verfügung. Um eine verteilte Applikation zu erstellen müssen Sie:

  • Alle Quell- und Zielprojekte erstellen.
  • Den Menübefehl Tools / Global Binding Editor aus dem Hauptfenster ausführen.

Der Global Binding Editor kann auch direkt aus dem entsprechenden Ordner im Windows Start Menüs gestartet werden, ohne dass die Workbench geöffnet werden muss.

Netzwerk-Knoten definieren

Führen Sie den Menübefehl Datei / Neu im Global Binding Editor aus um eine neue verteilte Struktur anzulegen und die in der Konfiguration verknüpften Knoten zu definieren. Dann können Sie jederzeit den Menübefehl Datei / Projekte ausführen um die Liste der definierten Knoten zu bearbeiten. Eine Dialogbox zeigt all Projekte (Knoten) an, die in der Konfiguration beinhaltet sind.

Jeder Knoten wird im Global Binding Editor als "Projekt" bezeichnet und wird durch einen Namen, eine IP-Adresse und eine ETHERNET Port-Nummer identifiziert. Informieren Sie sich in Ihrer OEM Anleitung über die Port-Nummer, die für das veröffentlichen von Variablen verwendet wird.

Betätigen Sie den Button Durchsuchen um ein Projekt zu der Konfiguration hinzuzufügen. Sie brauchen nur den Ordner auswählen, in dem das Projekt gespeichert ist.

Betätigen Sie den Button Import um die veröffentlichten Variablen einen Projekts in der Konfiguration hinzuzufügen. In diesem Fall müssen Sie nur die Datei APPLI.EVT in Ihrem Projekt auswählen; diese Datei beinhaltet alle Binding-Informationen. Andere Dateien des Projekts werden in diesem Fall nicht benötigt. Die Datei APPLI.EVT kann auch alleine zwischen Benutzern ausgetauscht werden, ohne dass man das ganze Projekt austauschen muss. Sie dürfen die veröffentlichten und externen (= empfangenen) Variablen eines solchen Projektes im Binding Editor nicht ändern.

Betätigen Sie den Button Anlegen um in der Konfiguration einen Knoten zu deklarieren, der keine Verbindung zu einem Projekt hat. In diesem Fall müssen Sie die Variablen, die von diesem Knoten veröffentlicht werden, von Hand im Binding Editor deklarieren und die Verknüpfungskennung für jede erzeugte Variable angeben.

Der Editor-Arbeitsbereich

Im folgenden sehen Sie die Hauptansicht des Global Binding Editors:

  1. Editiermatrix.
  2. Ausgabefenster für Berichte.
  3. Variablenliste der ausgewählten Zelle im Quellprojekt.
  4. Variablenliste der ausgewählten Zelle im Zielprojekt.

Die Editiermatrix

Die erste Spalte des Editiermatrix listet alle im Quellprojekt erzeugten Variablen auf. Andere Spalten zeigen die in den Zielprojekten empfangenen Variablen.

Example Example

Dieses Beispiel zeigt, dass das Projekt EvPing die Variablen Sent1 und BSent1 erzeugt. Die ausgewählte Zelle zeigt, dass die Variable Sent1 des Quellprojekts EvPing auf die Variable Received1 des Zielprojekts EvPong gebunden ist. Die Verknüpfungskennung der Quellvariable ist 1.

Sie können zu jeder Zeit auf den Namen eines Quellprojekts in der ersten Spalte doppelklicken um seine IP-Adresse oder seine ETHERNET Port-Nummer zu verändern.

Veröffentlichte Variablen

Um in einem Projekt eine Variable zu veröffentlichen, wählen Sie den Projektnamen in der ersten Spalte aus und doppelklicken die gewünschte Variable in der Liste der Quellprojekt-Variablen (im Fenster oben/rechts).

Sobald eine Quellvariable in der ersten Spalte ausgewählt ist, können Sie den Menübefehl Bearbeiten / Eigenschaften verwenden um die Hysterese für Wertänderungen zu definieren.

Empfangene Variablen

Um eine Variable zu empfangen, markieren Sie die Zelle mit der gewünschten Quellvariable und dem Zielprojekt. Dann doppelklicken Sie eine Variable des Zielprojektes im Fenster rechts unten.

Wenn Sie eine Variable in einem Zielprojekt an den Anfang der Zeile "Verbindungsstatus" eines Quellprojekts stellen, wird diese Variable den möglichen Fehlerstatus dieser Verbindung beinhalten. Der Wert 0 (oder FALSE für eine boolesche Variable) zeigt an, dass die Verbindung OK ist.

Wenn Sie die Variable in der ersten Spalte erweitern, wird Zusatzinformation zu der Variable angezeigt und kann auf Zielvariablen verknüpft werden.

Example Example

Dieses Beispiel zeigt, dass die Variable Sent1 aus dem Quellprojekt EvPing auf die folgenden Variablen des Zielprojekts EvPong gebunden ist:

  • Variable Received1 wird den letzten Wert beinhalten.
  • Variable Rcv_error wird einen möglichen Fehlerstatus beinhalten (0 oder FALSE bedeutet OK).
  • Variable Rcv_date wird den Datumsstempel der letzten Änderung beinhalten.
  • Variable RCV_time wird den Zeitstempel der letzten Änderung beinhalten.

Neue Variablen anlegen

Der Global Binding Editor erlaubt es Ihnen neue Variablen in Quell- und Zielprojekten zu deklarieren, ohne dass Sie die Workbench öffnen müssen. Dazu führen Sie den Menübefehl Bearbeiten / Variable einfügen aus, wenn eine Quell- oder Zielzelle ausgewählt ist, und geben den Namen der neuen Variable ein.

Wenn die Workbench geöffnet ist, während Sie im Binding Editor eine Variable deklarieren, wird sie automatisch mit der neu erstellten Variable aktualisiert.

Wenn Sie in der Workbench Variablen erstellen, ändern oder entfernen und der Global Binding Editor ist gleichzeitig geöffnet, erscheint in der entsprechenden Variablenliste ein Rufzeichen "!". Klicken Sie auf das Rufzeichen "!" um die Liste zu aktualisieren:

Verknüpfungskennungen

Der Global Binding Editor weist jeder veröffentlichten Variable automatisch eine Kennung zu. Wenn eine veröffentlichte Variable ausgewählt ist, können Sie allerdings den Menübefehl Bearbeiten / Eigenschaften verwenden um die Kennung zu ändern.

Die Verwendung des lokalen Editors in der Workbench

Wenn Sie den Global Binding Editor nicht verwenden wollen, können Sie Ihr Netzwerk auch lokal aus Sicht des Projekts konfigurieren. Mit Datei / Öffnen / Binding Konfiguration im Hauptfenster wird der lokale Editor geöffnet.

Veröffentlichte und externe (=empfangene) Variablen eines Projekts werden in einer Baumstruktur eingetragen.

Der erste Hauptknoten eines Baums wird mit "PUBLIC" gekennzeichnet und gruppiert alle veröffentlichten Variablen. Mit dem Befehl Variable einfügen aus der Toolbar oder per Drag and Drop kann eine neue veröffentlichte Variable dem PUBLIC Knoten zugeordnet werden. Für jede Variable muss ein Name, eine Verknüpfungskennung und eine mögliche positive oder negative Hysterese definiert werden.

Mit Master/Port einfügen werden externe Knoten definiert (andere Laufzeitsysteme). Jeder Knoten wird über einen Namen, eine IP Adresse und einen IP Port definiert. Danach können externe (=empfangene) Variablen dem Externen Knoten zugeordnet werden.

Eine externe Variable bezieht sich auf eine Verknüpfungskennung und repräsentiert die Art der Netzwerk-Operation, die auf die Variable des Projekts ausgeführt wird:

  • Externen Variablenwert anfordern.
  • Fehlerstatus anfordern.
  • Datum des Zeitstempels anfordern.

Noch in diesem Kapitel

Vernetzte Anwendungen - Duales Binding im redundanten ETHERNET


Vernetzte Anwendungen - Duales Binding im redundanten ETHERNET

IEC 61131-3 Programming Environment -> Applikationen vernetzen - Binding -> Vernetzte Anwendungen - Duales Binding im redundanten ETHERNET

Previous chapter Next chapter Show all Show all Hide all Hide all

Die Win-GRAF PAC driver Version SR5 oder höher erlaubt die Verwendung des spontanen Protokolls für das Binding von Variablen in zwei redundanten ETHERNET Netzwerken. Damit erricht man eine höhere Ausfallsicherheit bei der Kommunikation über ETHERNET.

Redundantes Binding wird in einer redundanten Netzwerkverbindung verwendet, die zwei separate Netzwerke benutzt. Sowohl die Einheit, die Variablen zur Verfügung stellt, (producer) als auch die Einheit, die Variablen abruft, (consumer) müssen mit zwei Ethernet Netzwerkkarten ausgestattet sein:

Die Verwendung von redundantem Binding auf einer Win-GRAF PAC driver benötigt zwei separate Ethernet Schnittstellenkarten auf der Runtime Plattform. Jede Ethernet-Karte muss für die zwei verwendeten Netzwerke separat konfiguriert werden.

Konfiguration

Die Konfiguration des redundanten Binding wird im Global Binding Editor vorgenommen. Um eine duale Verknüpfung zu spezifizieren, müssen für jeden verbundenen Knoten zwei anstatt einer IP-Adresse angegeben werden. Dazu geben Sie beide IP-Adressen getrennt durch einen Schrägstrich "/" ein:

Es werden keine weiteren Einstellungen benötigt. Beide Verbindungen verweisen immer auf die gleiche Port-Nummer.

Verbindungsstatus

Die "Verbindungsstatus"-Information bleibt auch im Fall einer Konfiguration mit dualem Binding verfügbar. In diesem Fall spiegelt der Wert der verbundenen Variable den Status beider Netzwerkverbindungen wider.

Der in dieser Variable gespeicherte Wert ist ein Integer mit dem Status der ersten Verbindung in den Bits 0 bis 3 und dem Status der zweiten Verbindung in den Bits 4 bis 7:

Variablenstatus

Die "Variablenstatus"-Information bleibt auch für jede Variable, die in einer Konfiguration mit dualem Binding ausgetauscht wird, verfügbar. In diesem Fall spiegelt der Wert der verbundenen Variable den Status beider Netzwerkverbindungen wider.

0 | OK
1 | Verbindung 1 ausgefallen
2 | Verbindung 2 ausgefallen
3 | Beide Verbindungen ausgefallen


Sourcecode des Projekts uploaden

IEC 61131-3 Programming Environment -> Sourcecode des Projekts uploaden

Previous chapter Next chapter Show all Show all Hide all Hide all

Die Workbench bietet die Möglichkeit den Sourcecode eines Projekts auf einer Zielplattform abzulegen, so dass dieser später upgeloadet werden kann. Um den Speicherbedarf für das Backup zu reduzieren, wird der Sourcecode gefiltert und gezippt. Da das Senden des Sourcecodes zur Zielplattform einige Download-Zeit in Anspruch nehmen kann, müssen Sie den Download-Befehl ausdrücklich aktivieren. Folgende Befehle sind im Kontextmenü des Arbeitsbereichsfensters verfügbar:

Auf die Zielplattform sichern (downloaden): Quelldateien des Projekts zippen und zur Zielplattform senden.
Von der Zielplattform öffnen (uploaden): gezippte Quelldaten von Zielplattform uploaden und Projekt wiederherstellen.

Auf die Zielplattform sichern (Download)

Wenn Sie das Projekt auf die Zielplattform sichern, müssen Sie die Adresse und die Kommunikationsparameter des Runtime Systems angeben. Die folgenden Optionen ermöglichen es Ihnen mehr oder weniger optionale Informationen mit dem Quellcode des Projekts zu senden:

  • Symboltabelle: die Symboltabelle wird nach dem Upload für die Überwachung der Variablen benötigt. Wenn Sie die Symboltabelle nicht einbetten, müssen Sie die geladene Applikation neu kompilieren um Variablen zu lesen und zu schreiben.
  • Debugging Information: diese Datei wird nach dem Upload für das Step by Step Debugging und für den Einsatz von Breakpoints benötigt. Wenn Sie die Symboltabelle nicht einbetten, müssen Sie die geladene Applikation neu kompilieren um Step by Step Debugging zu ermöglichen.
  • Spion: das sind alle Dateien, die vom Watch-Fenster erstellt werden, wie etwa Listen und Rezepte.
  • Wizard Einstellungen: das sind aktuelle Einstellungen der Wizards wie etwa des Monitoring Application Builders.
  • Projekt Historie: das ist die Liste der Änderungen, die im Projekt vorgenommen wurden.
  • Kommentare: alle Kommentare, die für Variablen und Programme eingegeben wurden. Kommentare innerhalb des Programms werden immer gespeichert.
  • Bitmaps und Icons: das sind alle BMP, GIF, JPG oder ICO Dateien, die im Projektordner gespeichert wurden und möglicherweise in den Monitoring Ansichten verwendet werden.
  • Referenzierte Elemente aus OEM Bibliothek: Definition aller Bibliothekselemente ("C" Funktionen und Blöcke, I/Os, Profile), die tatsächlich im Projekt verwendet werden.

Zusätzlich zu den Standarddateien des Projekts können Sie auch einige extra Dateien für den Download angeben. In diesem Fall werden alle diese Dateien nach dem Upload im geladenen Projektordner abgelegt, auch wenn sie ursprünglich in anderen Ordnern waren.

Wenn Sie einige Optionen entfernen, können Sie die Größe des eingebetteten Quellcodes reduzieren.

Von der Zielplattform öffnen (Upload)

Wenn Sie die Applikation uploaden, müssen Sie die Adresse und die Kommunikationsparameter des Runtime Systems und zusätzlich einen Namen und einen Ort für das Projekt auf Ihrem PC angeben. Diese Funktion kann nicht dazu verwendet werden einen bestehenden Projektordner zu überschreiben.


Bibliotheken

IEC 61131-3 Programming Environment -> Bibliotheken

Die Workbench bietet verschiedene Methoden um UDFBs, Unterprogramme und Datentypen (Strukturen) anderen Projekten zur Verfügung zu stellen:

  • Befehle Export und Import Befehle im Menü Tools für den Austausch von Elementen:

    Programme, Unterprogramme, UDFBs und Strukturen können als einzelne Dateien mit dem Suffix .XK5 exportiert werden. Damit können von zugänglichen Ordnern Sammlungen von exportierten Dateien in neue Projekte importiert werden. Es können mehrere Versionen von .XK5 Dateien eines Elements erstellt werden.

  • Projekt Elemente von anderen Projekten verwenden (Externe Objekte)

    Mit der Workbench können im bearbeiteten Projekt Objekte wie z.B. UDFBs aus anderen Projekten verwendet werden. Diese Funktionalität steht im Menü Projekt / Projekt Parameter zur Verfügung. Damit ist es möglich IEC-Funktionsbausteinen welche in anderen Projekten wiederverwendet werden sollen zu verwalten. Zusätzlich zu dieser Funktionalität bietet die Workbench die einfache Möglichkeit extern definierte Objekte in lokalen Projekten zu verwenden. Externe Objekte halten eine lokale Kopie im Projekt. Damit ist gewährleistet, dass bei Verlust des Ordners mit der Bibliothek die Funktionalität des Baustein weiterhin besteht.

  • Arbeit mit echten Bibliotheken

    Alternativ zu den obigen Varianten können echte Bibliotheken zu einem Projekt referenziert werden. Die Verbindung mit den Bibliotheken erfolgt automatisch bei jedem Öffnen oder Kompilieren. Dies gewährleistet, dass das Projekt immer die letztgültige Version des Bibliothek Objekts verwendet, setzt aber voraus, dass der Ordner beim Kompiliervorgang zur Verfügung steht.

Noch in diesem Kapitel

Mit externen Objekten arbeiten

Bibliotheken von Unterprogrammen und UDFBs


Mit externen Objekten arbeiten

IEC 61131-3 Programming Environment -> Bibliotheken -> Mit externen Objekten arbeiten

Previous chapter Next chapter Show all Show all Hide all Hide all

In der Workbench können Sie im aktuellen Projekt mit Objekten arbeiten, welche in einem anderen Projekt definiert wurden (z.B. UDFBs). Dadurch ergibt sich ein einfacher Weg IEC Bibliotheken aus anderen Projekten wieder zu verwenden. Zusätzlich bietet die Workbench die Möglichkeit extern definierte Objekte im lokalen Projekt zu verwenden.

Prinzip

Es können im lokalen Projekt Elemente von einem oder mehreren externen Projekten verwendet werden. Dies betrifft:

  • Unterprogramme
  • User defined Function Blocks (UDFBs)
  • Strukturen

Ausgewählte externe Objekte werden lokal im Projekt abgelegt. Dies ermöglicht eine sichere Wartung des lokalen Projekts auch wenn externe Projekte modifiziert oder gelöscht werden. Mit einem Vergleichs-Tool könne mögliche Modifizierungen von externen Objekten festgestellt werden bevor sie in das lokale Projekt übernommen werden.

Externe Objekte können im lokalen Projekt nicht verändert werden, und werden im Arbeitsbereich speziell gekennzeichnet dargestellt. Externe Objekte können im lokalen Projekt geöffnet werden, damit sie beim Editieren bzw. Debugging eingesehen werden können.

Anwendung

Icon | Beschreibung
 | Klicken Sie Projekt / Projekt Parameter und anschließend den Editieren Button in der Externe Objekte Gruppe in der Dialog Box.

In der folgenden Dialog Box können Sie die externen Objekte verwalten:

Mit dem Hinzufügen Button wird ein externes Projekt hinzugefügt. Wählen Sie den Ordner aus in welchem das Projekt liegt. Wählen Sie danach das/die gewünschten Objekt(e) im externen Projekt aus welche Sie im lokalen Projekt verwenden wollen (Häkchen).

Klicken Sie den Vergleichen Button um Elemente visuell zu vergleichen, welche im lokalen und im externen Projekt existieren. Der Vergleich wird mit dem Projekt Vergleichs-Tool durchgeführt.

Klicken Sie auf OK um die Konfiguration zu bestätigen. Dadurch wird:

  • Jedes neu ausgewählte Element zum lokalen Projekt hinzugefügt.
  • Jedes nicht-ausgewählte Element im lokalen Projekt gelöscht.
  • Jedes ausgewählte Element welches bereits existiert aktualisiert.

info Info

Elemente werden rot markiert wenn der Name im lokalen Projekt bereits verwendet wird. In diesem Fall ist die Übernahme nicht möglich.

Es kann sein, dass externe Element welche bereits im lokalen Projekt verwendet werden, im externen Projekt nicht mehr existieren. Wenn dieses Element in der Liste nicht auswählen (Häkchen wegnehmen), wird dieses mit OK endgültig gelöscht. Behalten Sie die Auswahl in der Liste erhalten (Häkchen gesetzt), steht das Element für das lokale Projekt weiterhin zur Verfügung und das Projekt kann sicher kompiliert werden.

Es kann auch passieren, dass ein gesamtes externes Projekt nicht mehr zur Verfügung steht weil es gelöscht wurde. Alle Element stehen im lokalen Projekt weiterhin zur Verfügung, außer die Auswahl wird aufgehoben (Häkchen wird weggenommen).


Bibliotheken von Unterprogrammen und UDFBs

IEC 61131-3 Programming Environment -> Bibliotheken -> Bibliotheken von Unterprogrammen und UDFBs

Previous chapter Next chapter Show all Show all Hide all Hide all

Mit der Workbench können echte Bibliotheken von Unterprogrammen, UDFBs und Datenstrukturen angelegt werden um diese dann in Projekten zu referenzieren. Die Verbindung mit Bibliotheken wird automatisch hergestellt wenn das Projekt geöffnet oder kompiliert wird. Dadurch wird sichergestellt, dass das Projekt immer die letztgültige Version des Bibliothek Objekts verwendet. Dies setzt aber voraus, dass der Bibliothek Ordner beim Kompilieren zur Verfügung steht.

info Info

Alternativ können andere Methoden für die Wiederverwendung von Programmen, UDFBs und Unterprogrammen verwendet werden.

Was ist einen Bibliothek?

Eine "Bibliothek" ist ähnlich einem Projekt, hat aber eine spezielle Markierung, so dass es als Bibliothek verwendet werden kann. Alle Unterprogramme, UDFBs und Datenstrukturen einer Bibliothek können in einem Projekt verwendet werden, welches auf die Bibliothek referenziert. Zusätzlich kann die Bibliothek als gewöhnliches Projekt geöffnet werden. Es können darin andere Teile (Hauptprogramme, globale Variablen) enthalten sein, um z.B. die Bausteine zu testen.

Eine Bibliothek erstellen

Um eine Bibliothek zu erstellen wählt man Datei / Neues Projekt und selektiert anschließend Bibliothek im oberen Bereich des geöffneten Fensters. Die Workbench verwendet eine andere Einfärbung wenn man einen Bibliothek editiert. Man kann auch den Menübefehl Datei / Projekt speichern Alsein existierendes Projekt als Bibliothek speichern und vice versa.

Ein Projekt mit Bibliotheken verbinden

Um Elemente aus einer Bibliothek in einem Projekt zu verwenden, muss dieses zu einer Bibliothek verbunden werden. Dazu verwendet man den Menübefehl Projekt / Bibliothek. In der nun geöffneten Liste werden die bereits verbundenen Bibliotheken aufgelistet. Mit klick auf Hinzufügen können die Verzeichnisse nach Bibliotheken durchsucht werden. Klickt man auf den Entfernen Button wird die Verbindung der markierten Bibliothek gelöscht. Die Bibliotheken werden überprüft wenn die Liste geschlossen wird.

Ein Projekt kan mit mehreren Bibliotheken verbunden werden.

Objekte aus der Bibliothek (Unterprogramme und UDFBs) erscheinen nicht im Arbeitsbereich, sondern können in der Workbench Bibliothek (rechts unten) ausgewählt werden.

Jedes Unterprogramm und jeder UDFB einer verbundenen Bibliothek kann im Programm wie jeder andere Baustein verwendet werden. Die Definitionen der Bausteine (Ein-/Ausgänge) in der Bibliothek werden automatisch aktualisiert:

  • Wenn das Projekt geöffnet wird.
  • Bevor ein Projekt kompiliert wird.
  • Wenn die Bibliotheksliste geschlossen wird (auch wenn keine Änderung stattgefunden hat).

Wenn sich ein Projekt auf eine Bibliothek bezieht, welche nicht existiert, wird dies mit einer Fehlermeldung angezeigt. Der Compiler gibt Fehlermeldung aus wenn Elemente von nicht vorhandenen Bibliotheken verwendet werden.

info Info

Eine Bibliothek kann mit einer anderen Bibliothek verbunden werden. In diesem Fall muss ein Projekt mit beiden Bibliotheken verbunden sein.

Baum | Beschreibung
Project1 | "Project1" muss Verbindung zu "LIB1" und LIB2" haben
verwendet LIB1 | "LIB1" muss mit "LIB2" verbunden sein
verwendet LIB2 |

Es ist nicht möglich den Inhalt (Source Code) eines Bibliothek Objekts in einem Projekt zu öffnen. Beim Debugging kann nicht in einen UDFB oder in ein Unterprogramm hineingesprungen werden. Bibliothek Objekte werden von der "In Dateien suchen" Funktionalität nicht berücksichtigt.


Release Text

Release Text

Warnning : Not all functions and not all features listed in this document are all supported by ICP DAS Win-GRAF PACs. Some of them are not supported.
Please refer the PAC datasheet and Win-GRAF user manual for details.

Von Freigabe zu Freigabe kommen in Workbench und Runtime (VMTK) neue Features hinzu. Einige dieser Features werden möglicherweise von älteren oder eingeschränkten Implementierungen der Win-GRAF PAC driver nicht unterstützt.

Eine genaue Liste der hinzugefügten Features entnehmen Sie bitte aus der README Datei welche mit der Workbench mitinstalliert wird. Starten Sie Readme in der entsprechenden Gruppe des Windows Startmenüs.

Befragen Sie Ihren OEM bezüglich:

  • Welche Win-GRAF PAC driver Version in Ihrem System integriert ist,
  • welche Einschränkungen ergeben sich aus Ihrer OEM Integration.


Tastatur Shortcuts

Tastatur Shortcuts

Hier finden Sie die in den unterschiedlichen Bereichen der Workbench zur Verfügung stehenden Tastatur Shortcuts.

Allgemeine Shortcuts

Shortcut | Befehl
Alt + Return | Eigenschaften bearbeiten
Strg + A | Alles auswählen
Strg + Alt + E | Öffnet Projektverzeichnis im Windows Explorer
Strg + C | Kopieren
Strg + F | Suchen
Strg + F3 | Nächste Entsprechung suchen
Strg + F4 | Schließen
Strg + F7 | Programm kompilieren
Strg + G | Raster ein-/ausschalten
Strg + Einfügen | Kopieren
Strg + L | Liste der Fenster
Strg + N | Neu
Strg + O | Öffnen
Strg + P | Drucken
Strg + S | Speichern
Strg + Umschalt + F6 | Vorheriger Karteireiter
Strg + F6 | Nächster Karteireiter
Strg + V | Einfügen
Strg + X | Ausschneiden
Strg + Y | Wiederherstellen
Strg + Z | Rückgängig
Entf | Entfernen
F1 | Hilfe anzeigen
F2 | Umbenennen
F3 | Nächste Entsprechung suchen
F6 | Nächstes Fenster
F7 | Projekt kompilieren
Umschalt + Entf | Ausscheiden
Umschalt + F6 | Vorheriges Fenster
Umschalt + Einfügen | Einfügen

Debugging

Shortcut | Befehl
Strg + Alt + F4 | Online Change
Strg + F5 | Debug
Strg + F8 | Step Out
F4 | Pause/Fortfahren
F5 | Simulation
F8 | Step In
F9 | Breakpoint setzen/entfernen
F11 | Download
Umschalt + Strg + F4 | Applikation starten/stoppen
Umschalt + F4 | Einzel Zyklus
Umschalt + F8 | Step Over

FBD Editor (allgemein)

Shortcut | Befehl
Pfeil Tasten | Im Fenster scrollen
Strg + d | FBD Abarbeitungsreihenfolge anzeigen
Strg + F2 | Lesezeichen ein-/ausschalten
Strg + Bild AUF/AB | Gehe zum vorherigen/nächsten Netzwerk Break (Abschnitt)
Esc | Verbinden/Größe verändern/Drag Abbrechen Wenn Auswahl: Auswahl aufheben Keine Auswahl: Auswahl Modus aktiv
Bild AUF/AB | Bild Auf/Ab scrollen
Return | Wie Doppelklick
Umschalt + Strg + End | Alle Elemente von Maus-Position bis zum Ende des Dokuments markieren
Umschalt + Strg + POS1 | Alle Elemente vom Anfang des Dokuments bis zur Maus-Position markieren
Umschalt + F2 | Zum nächsten Lesezeichen springen
Tab | Nächstes Element auswählen
Tab + Umschalt | Vorheriges Element auswählen

FBD Editor (beim Editieren)

Shortcut | Befehl
Zeichen | Symbol bearbeiten (Variable, Konstante, Instanz...) Sprung/Kommentar/Break: Dialogbox zur Texteingabe wird geöffnet
Strg + Pfeil Tasten | Ausgewählte Elemente ausrichten
Entf | Auswahl entfernen
Umschalt + Pfeil Tasten | Ausgewählte Element verschieben
Umschalt + Bild AUF/AB | Ausgewählte Element verschieben (4 Raster Einheiten)
Leertaste Umschalt + Strg + Nach unten | Element Ausprägung wechseln Freiraum ab Markierung einfügen

FBD Editor (während Debugging)

Shortcut | Befehl
Leertaste | Boolschen Wert zwischen TRUE und FALSE wechseln
* | Variable Verriegeln
/ | Variable Entriegeln

LD Editor (allgemein)

Shortcut | Befehl
Pfeil Tasten | Zellen Auswahl bewegen
Strg+F2 | Lesezeichen ein-/ausschalten
Bild AUF/AB | Bild Auf/Ab scrollen
Return | Gleich wie Doppelklick
Umschalt + Pfeil Tasten | Zellen Mehrfachauswahl
Umschalt + POS1 | Alle Zellen von Zellen Auswahl bis zum linken Rand auswählen
Umschalt + Bild AUF/AB | Auswahl Bild Auf/Ab
Umschalt+F2 | Zum nächsten Lesezeichen springen

LD Editor (beim Editieren)

Shortcut | Befehl
Zeichen | Symbol bearbeiten
Strg + D | Kommentar einfügen
Strg + F8 | Fuktionsbaustein parallel einfügen
Strg + R | Rung einfügen
Strg + Umschalt + F4 | Kontakt parallel einfügen
Entf | Auswahl löschen
F4 | Kontakt dahinter einfügen
F8 | Funktionsbaustein dahinter einfügen
F9 | Spule einfügen
Umschalt + F4 | Kontakt davor einfügen
Umschalt + F8 | Funktionsbaustein davor einfügen
Umschalt + F9 | Sprung einfügen
Umschalt + Leertaste | Linie einfügen
Leertaste | Element Ausprägung wechseln

LD Editor (während Debugging)

Shortcut | Befehl
Leertaste | Boolschen Wert zwischen TRUE und FALSE wechseln
* | Variable Verriegeln
/ | Variable Entriegeln

SFC Editor

Shortcut | Befehl
? | Anzeige Code/Beschreibung wechseln
Pfeil Tasten | Zellen Auswahl bewegen
Bild AUF/AB | Bild Auf/Ab scrollen
Return | Gleich wie Doppelklick
Umschalt + Pfeil Tasten | Zellen Mehrfachauswahl
Umschalt + POS1 | Alle Zellen von Zellen Auswahl bis zum linken Rand auswählen
Umschalt + Bild AUF/AB | Auswahl Bild Auf/Ab
b oder B | Makroschritt (Body) einfügen
c oder C | Zusammenführung einfügen (Konvergenz))
Strg+ Return | Referenz Nummer editieren
d oder D | Abzweigung einfügen (Divergenz)
Entf | Auswahl löschen
i oder I | Initialschritt einfügen
j oder J | Sprung einfügen
m oder M | Makroschritt einfügen
s oder S | Schritt einfügen
Leertaste | Element Ausprägung wechseln
t oder T | Transition einfügen
x oder X | Linke Ecke der Abzweigung (Divergenz) oder Zusammenführung (Konvergenz) einfügen

ST Editor (allgemein)

Shortcut | Befehl
Pfeil Tasten | Cursor bewegen
Strg + F2 | Lesezeichen ein-/ausschalten
Strg + Links/Rechts Pfeil Tasten | Zum nächsten/vorherigen Wort springen
Umschalt + Pfeil Tasten | Auswahl
Umschalt + F2 | Zum nächsten Lesezeichen springen
Umschalt + Strg+ Links/Rechts Pfeil Tasten | Nächstes/vorheriges Wort auswählen

ST Editor (beim Editieren)

Shortcut | Befehl
. | Struktur- oder Instanz-Element auswählen
Strg + Leertaste | Auto Completion
Umschalt + Strg + Leertaste | Select a function or keyword

ST Editor (während Debugging)

Shortcut | Befehl
* | Variable Verriegeln
/ | Variable Entriegeln
Umschalt + Doppelklick | Variable forcen
Leertaste | Boolschen Wert zwischen TRUE und FALSE wechseln

Variable Editor (allgemein)

Shortcut | Befehl
- | Reduzieren
+ | Erweitern
Pfeil Tasten | Zellen Auswahl bewegen
Strg + POS1/End | Zur vorherigen/nächsten Gruppe springen
Strg+F2 | Lesezeichen ein-/ausschalten (auf Gruppe)
F12 | Spalten bearbeiten
Bild AUF/AB | Bild Auf/Ab scrollen
Umschalt + Tab | Zellen Auswahl nach links bewegen
Umschalt+ F2 | Zu nächstem Lesezeichen springen (auf Gruppe)
Leertaste | Zeilen Auswahl/Zellen Auswahl
Tab | Zellen Auswahl nach rechts bewegen

Variable Editor (beim Editieren)

Shortcut | Befehl
Zeichen | Zellen Inhalt eingeben
Entf | Element löschen
Einfügen | Neue Variable einfügen
Return | Neuen Zellen Inhalt eingeben

Variable Editor (während Debugging)

Shortcut | Befehl
* | Variable Verriegeln
/ | Variable Entriegeln
Return | Dialogbox öffnen

Grafik Editor

Shortcut | Befehl
- | Zoom out
+ | Zoom in
Pfeil Tasten | Scrollen
Strg + F2 | Lesezeichen ein-/ausschalten
Strg + Bild AUF/AB | Größe des ausgewählten Elements verändern
Strg + Pfeil Tasten | Ausgewählte Elemente ausrichten
Entf | Auswahl löschen
Esc | Größe verändern/Drag abbrechen Wenn Auswahl: Auswahl aufheben Keine Auswahl: Auswahl Modus aktiv
Umschalt + Strg + End | Alle Elemente von Maus-Position bis zum Ende des Dokuments markieren
Umschalt + Strg + POS1 | Alle Elemente vom Anfang des Dokuments bis zur Maus-Position markieren
Umschalt + F2 | Zu nächstem Lesezeichen springen
Umschalt + Bild AUF/AB | Auswahl am Raster ausrichten
Umschalt + Pfeil Tasten | Auswahl verschieben
Umschalt + Strg + Pfeil Tasten | Größe des ausgewählten Elements verändern
Tab | Nächstes Element auswählen
Tab + Umschalt | Vorheriges Element auswählen


Programmiersprachen - Referenzen

Programmiersprachen - Referenzen

Die folgende Seiten liefern einen Überblick über die IEC61131-3 Programmiersprachen:

Programmorganisationseinheiten
Datentypen
Variablen
Arrays
Konstantenausdrücke
Bedingtes Kompilieren
Exception Handling

Variable status bits

SFC: Sequential Function Chart (Schrittkette)
FBD: Function Block Diagram (Funktionsplan)
LD: Ladder Diagram (Kontaktplan)
ST: Structured Text (Strukturierter Text)
IL: Instruction List (Anweisungsliste)
ST Ausdrücke in LD und FBD

Die folgenden Themen behandeln Programmierfunktionalitäten und Standard-Bausteine:

Basisoperationen
Boolesche Operationen
Arithmetische Operationen
Vergleiche
Typumrechnungsfunktionen
Selektoren
Register
Zähler
Timer
Mathematik
Trigonometrie
Zeichenfolgenoperationen
Fortgeschritten

info Info

Einige Funktionen aus der Bibliothek sind hier nicht dokumentiert. Sie dienen zur Diagnose bzw. sind für Spezialoperationen gedacht. Für weitere Informationen kontaktieren Sie bitte Ihren technischen Support.

Noch in diesem Kapitel

Programmiersprachen - Überblick

Programmorganisationseinheiten (POUs)

Datentypen

Variablen

Arrays

Konstantenausdrücke

Bedingtes kompilieren

Behandlung von Ausnahmen (Exception Handling)

Variablen Statusbits.

Basisoperationen

Boolesche Operationen

Arithmetische Operationen

Vergleichsoperationen

Typumrechnungsfunktionen

Selektoren

Register

Zähler

Timer

Mathematische Operationen

Trigonometrische Funktionen

Stringoperationen

Fortgeschrittene Operationen (Advanced)


Programmiersprachen - Überblick

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick

Previous chapter Next chapter Show all Show all Hide all Hide all

Es folgen die verfügbaren Programmiersprachen der Norm IEC61131-3:

SFC: Sequential Function Chart
FBD: Function Block Diagram
LD: Ladder Diagram
ST: Structured Text
IL: Instruction List

ST Ausdrücke in LD und FBD

Sie müssen für jedes Programm eine Sprache oder einen benutzerdefinierten Funktionsbaustein der Anwendung wählen.

Noch in diesem Kapitel

Sequential Function Chart (SFC)

Function Block Diagram (FBD)

Ladder Diagram (LD)

Structured Text (ST)

Instruction List (IL)

Verwendung von ST Ausdrücken in graphischen Sprachen


Sequential Function Chart (SFC)

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Sequential Function Chart (SFC)

Previous chapter Next chapter Show all Show all Hide all Hide all

Die SFC Sprache (auch Ablaufsprache genannt) ist ein Statusdiagramm. Grafische Schritte werden benutzt, um stabile Zustände darzustellen, und Transitionen beschreiben die Bedingungen und Ereignisse, die zu einer Veränderung dieser Zustände führen. Die SFC Sprache vereinfacht die Programmierung sequentieller Operationen und spart eine Menge Variablen und Tests zur Instandhaltung des Programmkontexts.

attention Attention

SFC Netzwerke dürfen nicht als Entscheidungsdiagramme benutzt werden. Der Gebrauch eines Schritts als Entscheidungspunkt oder einer Transition als Bedingung in einem Algorithmus sind aus dem SFC zu verbannen. Wenn die SFC Sprache als Entscheidungssprache benutzt wird, leidet die Programmausführung und es entstehen komplizierte Netzwerke. Bei der Programmierung eines Entscheidungs-Algorithmus, der keinen Bezug zum "Programmstatus" hat, sollte die ST Sprache bevorzugt werden.

Es folgen die Basiskomponenten eines SFC Netzwerks:

Netzwerk | Programmierung
Schritte und Initialschritte Transitionen und Verzweigungen Parallele Zweige Sprung zu einem Schritt | Aktionen in einem Schritt Timeout eines Schritts Programmierung einer Transitionsbedingung Wie SFC ausgeführt wird UDFBs unter SFC erstellen

Die Workbench unterstützt die SFC Programmierung auf mehreren Hierachieebenen: d.h. Netzwerke, die andere Netzwerke steuern. Das Arbeiten mit einer SFC Netzwerkhierarchie ist ein einfacher, zeitsparender Weg für die Verwaltung komplizierter Sequenzen und steigert die Leistungsfähigkeit im Betrieb. Siehe folgende Abschnitte für zusätzliche Informationen:

Eine SFC Programmhierarchie definieren
SFC Child Programme steuern

Noch in diesem Kapitel

SFC Schritte

SFC Transitionen

Parallele Zweige im SFC

Sprung zu einem SFC Schritt

Aktionen in einem SFC Schritt

Feststellen des Timeouts eines SFC Schritts

Bedingung einer SFC Transition

SFC Ausführung bei Betrieb

SFC Programmhierarchie

SFC Child Programme steuern

User Defined Function Blocks programmiert in SFC (Schrittkette)


SFC Schritte

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Sequential Function Chart (SFC) -> SFC Schritte

Previous chapter Next chapter Show all Show all Hide all Hide all

Ein Schritt stellt einen stabilen Zustand dar und erscheint im SFC Netzwerk als Quadrat. Jeder Programmschritt besitzt eine einmalige Nummer. Bei der Ausführung kann ein Schritt entsprechend des Programmstatus entweder aktiv oder inaktiv sein.

info Info

Um die Nummer eines Schritts, einer Transition oder eines Sprungs zu ändern, selektieren Sie das Objekt und betätigen Sie die Tastenkombination STRG+ENTER

Sämtliche mit dem Schritt verknüpften Aktionen werden entsprechend der Aktivität des Schritts ausgeführt.

Inaktiver Schritt | Aktiver Schritt

In den Bedingugen und Aktionen des SFC Programms kann die Schrittaktivität getestet werden, indem man den Namen des Schritts angibt ("GS" + Schrittnummer) gefolgt von ".X".

Example Example

GS100.X Ist TRUE, wenn Schritt 100 aktiv ist.
(Ausdruck hat den Datentyp BOOL).

Es besteht auch die Möglichkeit, die Aktivitätsdauer des Schritts zu testen, indem sein Name gefolgt von ".T" eingegeben wird. Das ist die Zeit, die seit der Aktivierung des Schritts verstrichen ist. Wenn ein Schritt deaktiviert wird, bleibt diese Zeit unverändert. Sie wird bei der nächsten Schrittaktivierung auf 0 zurückgesetzt.

Example Example

GS100.T Ist die verstrichene Zeit, seit Schritt 100 aktiviert wurde.
(Ausdruck hat den Datentyp TIME).

Initialschritte

Initialschritte stellen den Anfangszustand des Netzwerks, wenn das Programm gestartet wird, dar. Ein SFC Netzwerk muss mindestens einen Initialschritt besitzen. Ein Initialschritt wird durch eine doppelte Linie gekennzeichnet:


SFC Transitionen

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Sequential Function Chart (SFC) -> SFC Transitionen

Previous chapter Next chapter Show all Show all Hide all Hide all

Eine Transition stellt eine Bedingung dar, die bestimmt, ob die Programmaktivität von einem Schritt auf einen anderen Schritt überwechselt.

info Info

Um die Nummer eines Schritts, einer Transition oder eines Sprungs zu ändern, selektieren Sie das Objekt und betätigen Sie die Tastenkombination STRG+ENTER

Die Transition wird durch einen kurzen waagerechten Strich dargestellt, der durch die Verbindungslinie von zwei Schritten führt:

Jede Transition wird im SFC Programm durch eine einmalige Nummer gekennzeichnet.

Jede Transition wird mit einer Booleschen Bedingung ergänzt, die bestimmt, wann die Transition überschritten werden kann. Die Bedingung ist ein Ausdruck vom Typ BOOL.

Zur Vereinfachung des Netzwerks und um die Zahl der gezeichneten Verbindungslinien zu reduzieren, kann das Activity Flag eines Schritts (GSnnn.X) in der Bedingung der Transition spezifiziert werden.

Transitionen definieren das dynamische Verhalten im SFC Netzwerk gemäss der folgenden Regeln:

  • Eine Transition wird überschritten, wenn:
    • ihre Bedingun TRUE ist.
    • und wenn alle Schritte, die oberhalb (vor) der Transition angeschlossen sind, aktiv sind.
  • Wenn eine Transition überschritten wird:
    • werden alle Schritte, die oberhalb (vor) der Transition angeschlossen sind, deaktiviert.
    • werden alle Schritte, die unterhalb (nach) der Transition angeschlossen sind, aktiviert.

Verzweigungen

Es besteht die Möglichkeit, einen Schritt mit mehreren Transitionen zu verbinden, indem man eine Verzweigung einfügt. Die Verzweigung wird durch eine horizontale Linie dargestellt. Die Transitionen, die an diese Verzweigung angeschlossen sind, stellen mehrere mögliche Veränderungen der Programmsituation dar.

Alle Bedingungen werden als exklusiv betrachtet, entsprechend der links vor rechts Priorität. Das bedeutet, dass eine Transition als FALSE betrachtet wird, wenn mindestens eine der auf ihrer linken Seite an die Verzweigung angeschlossenen Transitionen TRUE ist.

Example Example
 | Transition 1 wird überschritten, wenn: Schritt 1 aktiv ist und Cond1 TRUE ist Transition 2 wird überschritten, wenn: Schritt 1 aktiv ist und Cond2 TRUE ist und Cond1 FALSE ist

attention Attention

Manche Zielsysteme unterstützen keine Exklusivität der Transitionen innerhalb einer Verzweigung. Siehe OEM Anweisungen für ausführliche Informationen zur SFC Unterstützung.


Parallele Zweige im SFC

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Sequential Function Chart (SFC) -> Parallele Zweige im SFC

Previous chapter Next chapter Show all Show all Hide all Hide all

Parallele Zweige in SFC Netzwerken stellen parallele Operationen dar. Parallele Zweige entstehen, wenn mehrere Schritte nach einer Transition angeschlossen werden. Parallele Zweige werden durch doppelte horizontale Linien dargestellt:

Wenn die Transition vor der Verzweigung (in diesem Beispiel 1) überschritten wird, werden alle Anfangsschritte der parallelen Zweige (hier 101 und 202) aktiviert.

Die Sequencierung paralleler Zweige kann unterschiedlich lange dauern und hängt von der Ausführung eines jeden Zweigs ab.

Die Transition, die auf die Zusammenführung folgt (in diesem Beispiel 2), wird erst überschritten, wenn alle vor der Zusammenführung angeschlossenen Schritte (die letzten Schritte eines jeden Zweigs) aktiv sind. Die Transition kennzeichnet die Synchronisierung aller parallelen Zweige.

Falls nötig kann ein Zweig mit einem leeren Schritt (ohne Aktion) beendet werden. Er stellt einen Zustand dar, in dem der Zweig auf die Beendung der anderen Zweige "wartet".

Wenn Sie parallele Linien verwenden, beachten Sie bitte die folgenden Regeln, damit die Programmausführung nicht blockiert wird:

  • Alle Zweige müssen an eine Verzweigung und eine Zusammenführung angeschlossen werden.
  • Das Element eines Zweigs darf nicht an ein Element ausserhalb der Verzweigung angeschlossen werden.


Sprung zu einem SFC Schritt

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Sequential Function Chart (SFC) -> Sprung zu einem SFC Schritt

Previous chapter Next chapter Show all Show all Hide all Hide all

Im SFC Netzwerk kann das Sprung-Symbol benutzt werden, um eine Verknüpfung von einer Transition zu einem Schritt zu beschreiben, ohne diese Verknüpfung zeichnen zu müssen. Der Sprung wird mit einem Pfeil und der Nummer des Zielschritts gekennzeichnet.

info Info

Um die Reihenfolge eines Schritts zu ändern müssen Sie den Schritt selektieren und die Tastenkombination Strg+Enter drücken.

Es sind keine Sprünge zu Transitionen erlaubt, da nicht-explizierte Zusammenführungen paralleler Zweige die Folge sein könnten (mehrere Schritte führen zu derselben Transition). Es könnten Fehler entstehen, weil das Netzwerk falsch gelesen wird.


Aktionen in einem SFC Schritt

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Sequential Function Chart (SFC) -> Aktionen in einem SFC Schritt

Previous chapter Next chapter Show all Show all Hide all Hide all

Jeder Schritt beinhaltet eine Liste Aktionsblöcke. Dabei handelt es sich um Anweisungen, die entsprechend der Schrittaktivität ausgeführt werden. Aktionen können einfache Boolesche oder SFC Aktionen sein, die eine Boolesche Variable zuweisen oder mit Hilfe der Schrittaktivität SFC Child Programme steuern, oder in einer anderen Sprache (FBD, LD, ST oder IL) programmierte Aktionsblöcke.

Runtime check

Es folgt die Syntax, die in einem SFC Schritt benutzt werden kann, um einen Sicherheitscheck auszuführen:

Syntax | Beschreibung
__StepTimeout (...); | Check des Timeouts für die Dauer eines Schritts.

Einfache Boolesche Aktionen

Es folgt die mögliche Syntax, die in einem SFC Schritt benutzt werden kann, um eine einfache Boolesche Aktion auszuführen:

Syntax | Beschreibung
BoolVar (N); | Forciert die Variable BoolVar auf TRUE, wenn der Schritt aktiviert wird, und auf FALSE, wenn der Schritt deaktiviert wird.
BoolVar (S); | Setzt die Variable BoolVar auf TRUE, wenn der Schritt aktiviert wird.
BoolVar (R); | Setzt die Variable BoolVar auf FALSE, wenn der Schritt aktiviert wird.
/ BoolVar; | Forciert die Variable BoolVar auf FALSE, wenn der Schritt aktiviert wird, und auf TRUE, wenn der Schritt deaktiviert wird.

Alarme

Mit der folgenden Syntax können Timeout-Arlam-Varialben verwendet werden:

Syntax

Beschreibung

BoolVar (A, duration);

Spezifiziert eine Timeout-Variable bezogen auf einen Schritt.

BoolVar muss eine einfache boolsche Variable sein

duration ist der Timeout, ausgedrückt als Konstante oder als eine Variable vom Typ TIME
(komplexe Ausdrücke können für diesen Parameter nicht verwendet werden)

Wenn das Timeout erreicht wird, wird die Alarmvariable auf TRUE gesetzt,und die Transitionen der folgenden Schritte werden nicht übersprungen solange die Alarm Variable nicht zurückgesetzt wurde.

Einfache SFC Aktionen

Es folgt die mögliche Syntax, die in einem SFC Schritt benutzt werden kann, um ein SFC Child Programm zu steuern:

Syntax | Beschreibung
Child (N); | Startet das Child Programm, wenn der Schritt aktiviert wird, und stoppt es, wenn der Schritt deaktiviert wird.
Child (S); | Startet das Child Programm, wenn der Schritt aktiviert wird.
Child (R); | Stoppt das Child Programm, wenn der Schritt aktiviert wird.

Programmierte Aktionsblöcke

Es können Programme eingefügt werden, die in anderen Sprachen (FBD, LD, ST oder IL) geschrieben wurden, um eine SFC Schrittaktion zu beschreiben. Bei den programmierten Aktionsblöcken gibt es drei Grundtypen, die den folgenden Identifizierern entsprechen:

Identifizierer | Beschreibung
P1 | Wird nur einmal ausgeführt, wenn der Schritt aktiv wird.
N | Wird in jedem Zyklus ausgeführt, wenn der Schritt aktiv ist.
P0 | Wird nur einmal ausgeführt, wenn der Schritt inaktiv wird.

Die Workbench verfügt über Templates für die Eingabe der P1, N und P0 Aktionsblöcke in ST, LD oder FBD. Es besteht auch die Möglichkeit, Aktionsblöcke, die in ST programmiert wurden, direkt in die Liste der einfachen Aktionen einzufügen, und zwar unter Verwendung der folgenden Syntax:

ACTION ( qualifier ) :
statements...
END_ACTION;

Wobei qualifier P1, N oder P0 ist.


Feststellen des Timeouts eines SFC Schritts

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Sequential Function Chart (SFC) -> Feststellen des Timeouts eines SFC Schritts

Previous chapter Next chapter Show all Show all Hide all Hide all

Es kann den Timeout einer jeden SFC Schritt-Aktivitätsdauer feststellen. Dafür muss die folgende Instruktion in die "Aktion" Liste des Schritts eingetragen werden:

__StepTimeout ( timeOut , errString );

Beschreibung:

timeout ist die Zeit-Konstante oder die Zeit-Variable welche die Timeout-Dauer spezifiziert
errString ist eine String-Konstante oder eine String-Varibale welche die ausgegebene Fehlermeldung spezifiziert

Zur Runtime wird jedes Mal wenn die Aktiv-Zeit eines Schritts größer wird als der spezifizierte Timeout der Error-String an die Workbench gesendet und im Log-Fenster angezeigt.

attention Attention

Zum Senden von Log-Meldungen and das Log-Fenster muss die Runtime über ETHERNET kommunizieren und die Win-GRAF PAC driver muss das Senden von Text-Meldungen unterstützen.

info Info

Die Instruktion kann auch mit der Anweisung #ifdef __DEBUG versehen werden, damit wird die Timeout Feststellung nur im Debug Modus aktiviert.

Alternativ - wenn ein Timeout spezifischer behandelt werden muss - kann das folgende ST Programm in den "N" Bereich eines Schritts eingetragen werden:

if GSn.T > timeout then /* 'n' ist die Nummer des Schritts */
...statements...
end_if;


Bedingung einer SFC Transition

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Sequential Function Chart (SFC) -> Bedingung einer SFC Transition

Previous chapter Next chapter Show all Show all Hide all Hide all

Jede SFC Transition hat eine Boolesche Bedingung, die angibt, ob die Transition überschritten werden darf. Die Bedingung ist ein Boolescher Ausdruck, der in ST oder LD programmiert werden kann.

In der ST Sprache wird ein Boolescher Ausdruck eingegeben. Das kann ein komplexer Ausdruck mit Funktionsaufrufen und Klammern sein.

Example Example

bForce AND (bAlarm OR min (iLevel, 1) <> 1)

In der LD Sprache wird die Bedingung durch ein einfaches Rung dargestellt. Die Spule am Ende des Rung stellt die Transition dar und darf mit keinem Symbol verknüpft sein.

Example Example


SFC Ausführung bei Betrieb

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Sequential Function Chart (SFC) -> SFC Ausführung bei Betrieb

Previous chapter Next chapter Show all Show all Hide all Hide all

SFC Programme werden im Zielsystemzyklus sequentiell ausgeführt, entsprechend der bei der Programmeingabe in der hierarchischen Baumstruktur definierten Reihenfolge. Ein SFC Parent Programm wird vor seinen Child Programmen ausgeführt. Demzufolge werden die Aktionen eines Child Programms, das von seinem Parent Programm gestartet oder gestoppt wird, im gleichen Zyklus wie das Parent Programm ausgeführt.

Innerhalb eines Netzwerks werden zuerst alle gültigen Transitionen ausgewertet, dann werden die Aktionen der aktiven Schritte ausgeführt. Das Netzwerk wird von links nach rechts und von oben nach unten ausgewertet.

Example Example

Ausführungsordnung:

  • Auswertung der Transitionen:

1, 101, 2

  • Verwaltung der Schritte:

1, 101, 201, 102

Bei einer Verzweigung werden alle Bedingungen als exklusiv angesehen, gemäss der links vor rechts Priorität. Das bedeutet, dass eine Transition als FALSE betrachtet wird, wenn wenigstens eine der Transitionen, die auf der linken Seite derselben Verzweigung angeschlossen sind, TRUE ist.

Die Initialschritte definieren den Programmstatus beim Programmstart. Alle vorrangigen Programme (Hauptprogramme) starten, wenn die Anwendung startet. Child Programme werden ausschliesslich von Aktionsblöcken in ihren Parent Programmen gestartet.

Die Auswertung einer Transitionen führt zu einer Veränderung der aktiven Schritte, und zwar gemäss der folgenden Regeln:

  • Eine Transition wird überschritten, wenn:
    • ihre Bedingung TRUE ist.
    • und wenn alle Schritte, die oben an die Transition angeschlossen sind (der Transition vorangehen), aktiv sind.
  • Wenn eine Transition überschritten wird:
    • werden alle Schritte, die oben an die Transition angeschlossen sind (der Transition vorangehen), deaktiviert.
    • werden alle Schritte, die unten an die Transition angeschlossen sind (der Transition folgen), aktiviert.

attention Attention

Das Sampling der SFC Netzwerke innerhalb des Zielsystems erfolgt entsprechend des Zielsystemzyklus. Wenn eine Transition innerhalb eines Zyklus überschritten wird, werden die nachfolgenden Schritte aktiviert und die Auswertung des Netzwerks im nächsten Zyklus fortgesetzt. Wenn mehrere, aufeinanderfolgende Transitionen in einem Zweig TRUE sind, wird nur eine von ihnen innerhalb eines Zielsystemzyklus überschritten.

attention Attention
  • Diese Beschreibung betrifft das Ausführungsmodell des Standard-Zielsystems. Bei anderen Zielsystemen können unterscheidliche SFC Ausführungsregeln gelten. Siehe OEM Anweisungen für nähere Informationen zur SFC Ausführung bei Betrieb.
  • Manche Runtime-Systeme unterstützen keine Exklusivität der Transitionen innerhalb einer Verzweigung. Siehe OEM Anweisungen für nähere Informationen zur SFC Unterstützung.


SFC Programmhierarchie

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Sequential Function Chart (SFC) -> SFC Programmhierarchie

Previous chapter Next chapter Show all Show all Hide all Hide all

Jedes SFC Programm kann ein oder mehrere "Child Programme" besitzen. Child Programme werden in der SFC Sprache geschrieben und in den Aktionen des Parent Programms gestartet (eingeleitet) oder gestoppt. Ein Child Programm kann wiederum seine eigenen Child Programme haben. Die Anzahl der Hierarchieebenen sollte sich auf 19 begrenzen.

Wenn ein Child Programm gestoppt wird, werden seine Child Programme impliziert gestoppt.

Wenn ein Child Programm gestartet wird, muss es seine Child Programme expliziert in seinen Aktionen starten.

Ein Child Programm wird von den Aktionsblöcken seines Parent Programms gesteuert (gestartet oder gestoppt). Der Gebrauch eines Child Programms ist ein unproblematischer Weg, um einen Aktionsblock in der SFC Sprache zu programmieren.

Child Programme sind äusserst nützlich, um die Operationen eines komplizierten Prozesses getrennt zu beschreiben. Es ist zum Beispiel allgemein üblich, die Ausführungsmoden in einem Parent Programm zu verwalten und die verschiedenen¨Prozessoperationen in Child Programmen unterzubringen.


SFC Child Programme steuern

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Sequential Function Chart (SFC) -> SFC Child Programme steuern

Previous chapter Next chapter Show all Show all Hide all Hide all

Die Steuerung eines Child Programms erzielt man ganz einfach, indem man den Namen des Child Programms als einen Aktionsblock in einem Schritt seines Parent Programms spezifiziert. Es folgen mögliche Qualifizierer, die auf Aktionsblöcke angewendet werden können, um Child Programme zu steuern:

Qualifizierer | Beschreibung
Child (N); | Startet das Child Programm, wenn der Schritt aktiviert wird, und stoppt es, wenn der Schritt deaktiviert wird.
Child (S); | Startet das Child Programm, wenn der Schritt aktiviert wird (Die Initialschritte des Child Programms werden aktiviert)
Child (R); | Stoppt das Child Programm, wenn der Schritt aktiviert wird (Alle aktiven Schritte des Child Programms werden deaktiviert)

Sie können auch die folgenden Anweisungen in einem in der ST Sprache programmierten Aktionsblock benutzen. In der folgenden Tabelle stellt prog den Namen des Child Programms dar:

Statement | Beschreibung
GSTART (prog); | Startet das Child Programm, wenn der Schritt aktiviert wird (Die Initialschritte des Child Programms werden aktiviert)
GKILL (prog); | Stoppt das Child Programm, wenn der Schritt aktiviert wird (Alle aktiven Schritte des Child Programms werden deaktiviert)
GFREEZE (prog); | Suspendiert die Ausführung eines Child Programms
GRST (prog); | Startet das durch den Befehl GFREEZE suspendierte Child Programm wieder.

Sie können auch die Funktion "GSTATUS" in Ausdrücken benutzen. Diese Funktion liefert den aktuellen Status eines SFC Child Programms:

Statement | Beschreibung
GSTATUS (prog) | Liefert den aktuellen Status eines SFC Child Programms: 0: Programm ist inaktiv 1: Programm ist aktiv 2: Programm ist suspendiert

info Info

Wenn ein Child Programm von seinem Parent Programm gestartet wird, behält es seinen inaktiven Status bis zu seiner Ausgeführung (später im Zyklus) bei. Wenn Sie ein Child Programm in einem SFC Netzwerk starten, liefert GSTATUS im nächsten Zyklus den Status 1 (aktiv).


User Defined Function Blocks programmiert in SFC (Schrittkette)

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Sequential Function Chart (SFC) -> User Defined Function Blocks programmiert in SFC (Schrittkette)

Previous chapter Next chapter Show all Show all Hide all Hide all

Mit der Workbench können Sie User Defined Function Blocks (UDFBs) auch in der Programmiersprache SFC erstellen. Dieses Kapitel beschreibt Features für solche Funktionsbausteine.

Die Ausführung von UDFBs programmiert in SFC erfordert ein Runtime System der Version SR7-1 oder jünger.

Deklaration

Im Kontextmenü des Arbeitsbereichs klicken Sie bitte auf Programm einfügen. Danach geben Sie einen gültigen Namen für den Funktionsbaustein ein. Wählen Sie "SFC" als Programmiersprache und "UDFB" als Ausführungsmodus.

Parameter

Wird ein UDFB in SFC erstellt, legt die Workbench automatisch 3 spezielle Eingänge (Inputs) an:

RUN: Die SFC State Machine wird nicht aktiviert solange dieser Eingang (Input) FALSE ist.
RESET: Die SFC Schrittkette wird auf den Initialschritt zurückgesetzt wenn dieser Eingang (Input) TRUE ist.
KILL: Alle aktiven Schritte der SFC Schrittkette werden deaktiviert wenn dieser Eingang (Input) TRUE ist.

Dem UDFB können Sie weiter Eingänge und Ausgänge hinzufügen. Sie können auch die automatisch erstellten Eingänge löschen wenn Sie diese nicht benötigen. Wird auch der RUN Eingang entfernt, wird dieser immer als TRUE betrachtet. Werden die RESET oder KILL Eingänge gelöscht, werden diese immer als FALSE betrachtet.

Im Folgenden sehen Sie die Wahrheitstabelle welche die Prioritäten zwischen den speziellen Eingängen darstellt:

RUN | RESET | KILL |
FALSE | FALSE | FALSE | Keine Aktion
FALSE | FALSE | TRUE | SFC Kette deaktivieren
FALSE | TRUE | FALSE | SFC Kette zurücksetzen
FALSE | TRUE | TRUE | SFC Kette deaktivieren
TRUE | FALSE | FALSE | SFC Kette aktivieren
TRUE | FALSE | TRUE | SFC Kette deaktivieren
TRUE | TRUE | FALSE | SFC Kette zurücksetzen
TRUE | TRUE | TRUE | SFC Kette deaktivieren

Schritte

Alle Schritte einer SFC Kette eines UDFBs werden automatisch als lokale Instanzen von speziell reservierten Funktionsblöcken mit lokalen Variablen des UDFBs deklariert. Folgende FB Typen werden verwendet:

isfcSTEP : ein normaler Schritt
isfcINITSTEP : ein Initialschritt

Der SFC Editor kümmert sich um das anlegen der Schritt Instanzen. Diese Instanzen dürfen in der Variablenliste auf keinen Fall umbenannt, gelöscht oder verändert werden. Alle Schritte werden mit GS benannt gefolgt von der Nummer des Schritts.

Ausführung

Die SFC Kette wird nur aufgeführt, wenn der UDFB von einem Hauptprogramm aufgerufen wird.

Wenn der RESET Eingang TRUE ist, wird die SFC Kette auf ihre initiale Situation zurückgesetzt. Wenn der KILL Eingang TRUE ist, werden alle Schritte der SFC Kette deaktiviert.

Wenn der RUN Eingang TRUE ist und KILL/RESET FALSE sind, wird die SFC Kette in der gleichen Weise betrieben wie SFC Hauptprogramme:

  1. Überprüfe gültige Transition und beurteile die umgebenden Bedingungen.
  2. Überschreite Transition deren gültiger Wert TRUE darstellt.
  3. Führe relevante Aktionen der aktiven Schritte aus.

info Info

In einem UDFB programmiert in SFC, können keine SFC Aktionen ausgeführt werden welche "Child SFC Programme" bedienen. Dieses Feature ist reserviert für SFC Hauptprogramme. Es ist aber möglich, dass ein UDFB programmiert in SFC einen anderen UDFB programmiert in SFC aufruft/steuert .


Function Block Diagram (FBD)

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Function Block Diagram (FBD)

Previous chapter Next chapter Show all Show all Hide all Hide all

Das Function Block Diagram (auch Funktionsbaustein-Sprache) ist ein Datenfluss zwischen Konstantenausdrücken oder Variablen und Operationen, die durch rechteckige Bausteine dargestellt werden. Bei diesen Operationen kann es sich um Basisoperationen, Funktionsaufrufe oder Funktionsbausteinaufrufe handeln.

ST Ausdrücke in LD und FBD

Der Name der Operation oder Funktion, oder der Typ des Funktionsbausteins, wird in das Rechteck hineingeschrieben. Bei einem Funktionsbausteinaufruf wird der Name der aufgerufenen Instanz über das Baustein-Rechteck geschrieben, wie im folgenden Beispiel:

Example Example

Der Datenfluss kann Werte beliebigen Datentyps darstellen. Alle Verbindungen müssen von Input- zu Output-Punkten desselben Datentyps erfolgen. Bei einem Booleschen Anschluss kann eine Verbindung, die in einem kleinen Kreis endet und die Boolesche Negation des Datenflusses kennzeichnet, benutzen werden.

Example Example

Gebrauch einer invertierten Verbindung: Q is IN1 AND NOT IN2!

Der Datenfluss wird von links nach rechts und von oben nach unten verstanden. Man kann Labels und Sprünge verwenden, um die vorgegebene Ausführung des Datenflusses zu ändern.

LD Symbole

Es können auch LD Symbole in FBD Diagramme eingegeben und mit FBD Objekten verbunden werden. Siehe folgende Abschnitte für ausführliche Informationen zu den verschiedenen Komponenten der LD Sprache:

Kontakte
Spulen
Stromschienen

In der FBD Sprache stehen spezielle vertikale Linien zur Verfügung, um die Verbindung von zwei parallelen LD Linien darzustellen. Derartige vertikale Linien repräsentieren eine Oder-Operation zwischen den angeschlossenen Inputs. Nachfolgend ein Beispiel einer vertikalen ODER-Linie in einem FBD Diagramm:

Example Example


Ladder Diagram (LD)

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Ladder Diagram (LD)

Previous chapter Next chapter Show all Show all Hide all Hide all

Ein Ladder Diagram (auch Kontaktplan genannt) besteht aus einer Liste von Rungs. Jedes Rung stellt einen Booleschen Datenfluss von einer linken Stromschiene zu einer rechten Stromschiene dar. Die linke Stromschiene steht für den Zustand TRUE. Der Datenfluss muss von links nach rechts verstanden werden. Jedes mit dem Rung verbundene Symbol verändert entweder den Rung-Status oder führt eine Operation aus. Die folgenden grafischen Elemente können in ein LD Diagramm eingefügt werden:

Stromschienen
Kontakte und Spulen
Operationen, Funktionen und Funktionsblöcke, die durch rechteckige Kästchen dargestellt werden
Labels und Sprünge
ST Ausdrücke in LD und FBD

Der Gebrauch des Inputs EN und des Outputs ENO bei Funktionsbausteinen

Der Rung-Status in einem LD Diagramm ist stets Boolesch. Bausteine können mit ihrem ersten Input und Output an das Rung angeschlossen werden. Demzufolge fügt man einem Baustein, dessen erster Input und/oder Output nicht Boolesch ist, den Input EN und/oder den Output ENO hinzu.

Der Input EN ist eine Bedingung. Die vom Baustein dargestellte Operation wird also nicht ausgeführt, wenn der Rung-Status (EN) FALSE ist. Der Output ENO hat stets den gleichen Status wie der Input EN: der Rung-Status wird folglich nicht von einem Baustein, dem der ENO Output fehlt, modifiziert.

Es folgt ein Beispiel mit dem Baustein XOR, der Boolesche Inputs und Outputs besitzt und kein EN oder ENO Pin benötigt:

info Info

Der erste Input ist das Rung. Das Rung ist der Output.

Es folgt ein Beispiel mit dem Baustein > (grösser als), der keinen Booleschen Inputs, dagegen aber einen Booleschen Output besitzt. Dieser Baustein hat in der LD Sprache einen EN Input:

info Info

Der Vergleich wird nur dann ausgeführt, wenn EN TRUE ist.

Es folgt ein Beispiel mit der Funktion SEL. Diese Funktion verfügt über einen Booleschen Input, aber ihr Output ist ganzzahlig. Dieser Baustein hat in der LD Sprache einen ENO Output:

info Info

Das Input-Rung ist der Selektor.
ENO hat den gleichen Wert wie SELECT.

Abschliessend das Beispiel einer Addition, die nur numerische Argumente besitzt. Dieser Baustein hat in der LD Sprache sowohl ein EN als auch ein ENO Pin:

info Info

Die Addition wird nur dann ausgeführt, wenn EN TRUE ist.
ENO ist gleich EN.

Noch in diesem Kapitel

Contacts (Kontakte)

Coils (Spulen)

Stromschienen


Contacts (Kontakte)

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Ladder Diagram (LD) -> Contacts (Kontakte)

Previous chapter Next chapter Show all Show all Hide all Hide all

Kontakte sind grafische Basiselemente der KOP-Sprache, denen Boolesche Variablen zugewiesen werden. Der Name der jeweiligen Variablen wird über das grafische Symbol des betreffenden Kontakts geschrieben. Ein Kontakt stellt den Status des Rung auf seiner rechten Seite abhängig vom Wert der zugewiesenen Variablen und dem Rung-Status auf seiner linken Seite.

Die folgende Tabelle zeigt die verschiedenen Kontaktsymbole und erklärt, wie sie den Rung-Status verändern:

Symbol

Beschreibung

Normal: Der Rung-Status auf der rechten Seite des Kontakts ist das Boolesche UND zwischen dem Rung-Status auf seiner linken Seite und der zugewiesenen Variablen.

Negation: Der Rung-Status auf der rechten Seite des Kontakts ist das Boolesche UND zwischen dem Rung-Status auf seiner linken Seite und der Negation der zugewiesenen Variablen.

Positiver Impuls: Der Rung-Status auf der rechten Seite des Kontakts ist nur dann TRUE, wenn der Rung-Status auf seiner linken Seite TRUE ist und die zugewiesene Variable von FALSE auf TRUE übergeht (steigende Flanke)

Negativer Impuls: Der Rung-Status auf der rechten Seite des Kontakts ist nur dann TRUE, wenn der Rung-Status auf seiner linken Seite TRUE ist und die zugewiesene Variable von TRUE auf FALSE übergeht (fallende Flanke)

info Info

Wenn ein Kontakt oder eine Spule ausgewählt ist, kann sein/ihr Typ (normal, invertiert, Implus...) durch Drücken der LEERTASTE geändert werden.

Zwei serielle normale Kontakte stellen eine UND-Operation dar.
Zwei parallele Kontakte stellen eine ODER-Operation dar.

seealso See also

Coils

Power Rails


Coils (Spulen)

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Ladder Diagram (LD) -> Coils (Spulen)

Previous chapter Next chapter Show all Show all Hide all Hide all

Spulen sind grafische Basiselemente der LD Sprache, denen Boolesche Variablen zugewiesen werden. Der Name der jeweiligen Variablen wird über das grafische Symbol der betreffenden Spule geschrieben. Die Spule modifiziert die ihr zugewiesene Variable abhängig vom Status des linken Rung.

Die folgende Tabelle zeigt die verschiedenen Spulensymbole und erklärt, wie sie den Rung-Status verändern:

Symbol | Beschreibung
 | Normal: Die zugewiesene Variable wird auf den Wert des Rung-Status auf der linken Seite der Spule forciert.
 | Negation: Die zugewiesene Variable wird auf die Negation des Rung-Status auf der linken Seite der Spule forciert.
 | Set: Die zugewiesene Variable wird auf TRUE forciert, wenn der Rung-Status auf der linken Seite der Spule TRUE ist. (Wenn der Rung-Status FALSE ist, findet keine Aktion statt.)
 | Reset: Die zugewiesene Variable wird auf FALSE forciert, wenn der Rung-Status auf der linken Seite der Spule TRUE ist. (Wenn der Rung-Status FALSE ist, findet keine Aktion statt.)

info Info

Wenn ein Kontakt oder eine Spule ausgewählt ist, kann sein/ihr Typ (normal, invertiert, Implus...) durch Drücken der LEERTASTE geändert werden.

attention Attention

Obwohl Spulen gewöhnlich auf ihrer rechten Seite an eine Stromschiene angeschlossen werden, kann das Rung nach einer Spule fortgesetzt werden. Der Rung-Status wird nie von einem Spulensymbol verändert.

seealso See also

Contacts

Power Rails


Stromschienen

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Ladder Diagram (LD) -> Stromschienen

Previous chapter Next chapter Show all Show all Hide all Hide all

In der LD Sprache werden vertikale Stromschienen benutzt, um die Grenzen des Rung darzustellen.

Die Stromschiene auf der linken Seite symbolisiert den Wert TRUE und initiiert den Rungstatus. Die Stromschiene auf der rechten Seite ist an eine Spule angeschlossen und nimmt keinen Einfluss auf die Programmausführung.

Stromschienen können auch in der FBD Sprache benutzt werden. An linke und rechte Stromschienen können nur Boolesche Objekte angeschlossen werden.

seealso See also

Kontakte

Spulen


Structured Text (ST)

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Structured Text (ST)

Previous chapter Next chapter Show all Show all Hide all Hide all

ST (auch Strukturierter Text genannt) ist eine strukturierte Programmiersprache. Ein ST-Programm ist eine Liste von Anweisungen. Jede Anweisung beschreibt eine Aktion und muss mit einem Semikolon (";") enden.

Die Darstellung des Texts nimmt keinen Einfluss auf das ST Programm. Leerzeichen und Zeilenendzeichen können an beliebigen Stellen im Programmtext eingefügt werden.

Kommentare

Kommentartext kann an beliebigen Stellen im ST Programm eingefügt werden und nimmt keinen Einfluss auf die Programmausführung. Ein Kommentartext beginnt mit dem Zeichen "(*" und endet mit dem Zeichen "*)". Kommentare können über mehrere Linien fortgesetzt werden (können Zeilenendzeichen enthalten). Kommentare dürfen nicht verschachtelt werden.

Ausdrücke

Jede Anweisung beschreibt eine Aktion und kann Bewertungen komplexer Ausdrücke enthalten. Ein Ausdruck wird bewertet:

  • Von links nach rechts.
  • Entsprechend der vorgegebenen Priorität der Operatoren.
  • Die Vorgabepriorität kann mit Klammern modifiziert werden.

Argumente eines Ausdrucks können sein:

  • Deklarierte Variablen.
  • Konstantenausdrücke.
  • Funktionsaufrufe.

Anweisungen

Folgende Basisanweisungen können in ST Programmen benutzt werden:

  • Zuweisung.
  • Funktionsbausteinaufruf.

Folgende bedingte Anweisungen sind in der ST Sprache verfügbar:

  • IF / THEN / ELSE (einfacher binärer Switch).
  • CASE (enumerierter Switch).

Folgende Anweisungen sind in der ST Sprache zur Beschreibung von Loops verfügbar:

  • WHILE (mit Test bei Schleifeneingang).
  • REPEAT (mit Test bei Schleifenausgang).
  • FOR (Enumeration).


Instruction List (IL)

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Instruction List (IL)

Previous chapter Next chapter Show all Show all Hide all Hide all

Ein in der IL Sprache geschriebenes Programm ist eine Liste von Anweisungen. Jede Anweisung wird auf einer Textzeile geschrieben. Eine Anweisung kann einen oder mehrere Operanden besitzen. Die Operanden sind Variablen oder Konstantenausdrücke. Jede Anweisung beginnt mit einem Label, gefolgt von dem Zeichen ":". Labels werden als Ziele für Sprunganweisungen benutzt.

In der Workbench können die ST und IL Sprachen in Textprogrammen gemischt werden. ST ist die Vorgabesprache. Wenn IL Anweisungen eingegeben werden sollen, werden sie zwischen den Schlüsselwörtern BEGIN_IL und END_IL geschrieben, wie im folgenden Beispiel:

Example Example

BEGIN_IL
LD var1
ST var2
END_IL

Kommentare

Am Ende einer jeden Anweisungszeile kann ein Kommentartext eingefügt werden. Kommentare haben keinen Einfluss auf die Programmausführung. Sie beginnen mit dem Zeichen "(*" und enden mit dem Zeichen "*)". Kommentare können auch auf leeren Zeilen (ohne Anweisung) stehen und mehrere Zeilen lang sein (i.e. ein Kommentartext kann Zeilenendzeichen enthalten). Kommentartexte können nicht verschachtelt werden.

Datenfluss

Eine vollständige IL Anweisungszeile enthält Anweisungen zur:

  • Auswertung eines Ausdrucks (sogenanntes aktuelles Ergebnis).
  • Benutzung des aktuellen Ergebnisses für die Ausführung von Aktionen.

Auswertung von Ausdrücken

Die Ausdrücke werden in der Reihenfolge der Programmanweisungen ausgewertet, ausser es wurden Klammern eingefügt. Die folgenden Anweisungen stehen zur Auswertung von Ausdrücken zur Verfügung:

Anweisung | Operand | Bedeutung
LD / LDN | any type | Lädt den Operanden in das aktuelle Ergebnis.
AND (&) | boolean | AND zwischen dem Operanden und dem aktuellen Ergebnis.
OR / ORN | boolean | OR zwischen dem Operanden und dem aktuellen Ergebnis.
XOR / XORN | boolean | XOR zwischen dem Operanden und dem aktuellen Ergebnis.
ADD | numerical | Addiert den Operand und das aktuelle Ergebnis.
SUB | numerical | Subtrahiert den Operand vom aktuellen Ergebnis.
MUL | numerical | Multipliziert den Operand mit dem aktuellen Ergebnis.
DIV | numerical | Teilt das aktuelle Ergebnis durch den Operand.
GT | numerical | Vergleicht das aktuelle Ergebnis mit dem Operanden.
GE | numerical | Vergleicht das aktuelle Ergebnis mit dem Operanden.
LT | numerical | Vergleicht das aktuelle Ergebnis mit dem Operanden.
LE | numerical | Vergleicht das aktuelle Ergebnis mit dem Operanden.
EQ | numerical | Vergleicht das aktuelle Ergebnis mit dem Operanden.
NE | numerical | Vergleicht das aktuelle Ergebnis mit dem Operanden.
Function call | func. arguments | Ruft eine Funktion auf.
Parenthesis |  | Ändert die Ausführungsordnung.

info Info

Anweisungen mit dem Anhang N benutzen die Boolesche Negation des Operanden.

Aktionen

Die folgenden Anweisungen führen Aktionen aus, und zwar entsprechend des Werts des aktuellen Ergebnisses. Bestimmte Anweisungen benötigen zur Auswertung kein aktuelles Ergebnis:

Anweisungen | Operand | Bedeutung
ST / STN | any type | Speichert das aktuelle Ergebnis im Operanden.
JMP | label | Sprung zu einem Label - kein aktuelles Ergebnis erforderlich.
JMPC | label | Sprung zu einem Label, wenn das aktuelle Ergebnis TRUE ist.
JMPNC / JMPCN | label | Sprung zu einem Label, wenn das aktuelle Ergebnis FALSE ist.
S | boolean | Setzt den Operand auf TRUE, wenn das aktuelle Ergebnis TRUE ist.
R | boolean | Setzt den Operand auf FALSE, wenn das aktuelle Ergebnis TRUE ist.
CAL | f. block | Ruft einen Funktionsbaustein auf (kein aktuelles Ergebnis erforderlich).
CALC | numerical | Ruft einen Funktionsbaustein auf, wenn das aktuelle Ergebnis FALSE ist.
CALNC / CALCN | numerical | Ruft einen Funktionsbaustein auf, wenn das aktuelle Ergebnis FALSE ist.

info Info

Anweisungen mit dem Anhang N benutzen die Boolesche Negation des Operanden.


Verwendung von ST Ausdrücken in graphischen Sprachen

Programmiersprachen - Referenzen -> Programmiersprachen - Überblick -> Verwendung von ST Ausdrücken in graphischen Sprachen

Previous chapter Next chapter Show all Show all Hide all Hide all

Die Workbench bietet die Möglichkeit sämtliche ST Ausdrücke in graphischen Elementen der Sprachen LD oder FBD zu verwenden. Das vereinfacht den Umgang mit LD und FBD wenn einfache Kalkulationen eingefügt werden sollen. Ebenso können grafische Features zur Beschreibung von Basis-Algorithmen eingesetzt werden, während ST zur Implementierung der Details verwendet wird.

Ausdrücke müssen in ST Sprache geschrieben sein. Ein Ausdruck kann alles sein, was zwischen Klammern geschrieben werden kann. Der ST Ausdruck muss zum vom Baustein erwarteten Datentyp passen (z.B. ein Ausdruck auf einem LD-Kontakt muss boolean sein).

FBD Sprache

Ein komplexer ST Ausdruck kann in jede Variablen-Box eines FBD Programms eingefügt werden, wenn die Box nicht auf seinen Eingang verbunden ist.

Example Example

LD Sprache

Ein komplexer ST Ausdruck kann auf jeden Kontakt und an jedem Eingang einer Funktion oder eines Funktionsblocks gelegt werden.

Example Example


Programmorganisationseinheiten (POUs)

Programmiersprachen - Referenzen -> Programmorganisationseinheiten (POUs)

Previous chapter Next chapter Show all Show all Hide all Hide all

Eine Anwendung (Applikation) ist eine Liste von Programmen. Die Programme werden sequentiell im Zielsystemzyklus ausgeführt, gemäß des folgenden Modells:

Anfangszyklus
| Austausch der I/Os
| Ausführung des ersten Programms
| ...
| Ausführung des letzten Programms
| Warten, bis die Zykluszeit abgelaufen ist
Endzyklus

Programme werden in der vom Benutzer festgelegten Ordnung ausgeführt. Alle SFC Programme müssen gruppiert werden (es besteht nicht die Möglichkeit, ein in FBD, LD, ST oder IL geschriebenes Programm zwischen zwei SFC Programme zu setzen). Die Anzahl der Programme in einer Anwendung ist auf 32767 beschränkt. Jedes Programm wird in der Sprache eingegeben, die bei seiner Erstellung für das Programm ausgewählt wurde. Folgende Sprachen kommen in Frage: Sequential Function Chart (SFC), Function Block Diagram (FBD), Ladder Diagram (LD), Structured Text (ST) oder Instruction List (IL).

Programme haben einmalige Namen, die keine reservierten Schlüsselwörter der Programmiersprachen oder Namen von Standard- oder "C"-Funktionen oder -Funktionsbausteinen sein dürfen. Ein Programm darf auch nicht den gleichen Namen wie eine deklarierte Variable haben. Der Name eines Programms sollte mit einem Buchstaben oder einem Unterstrichzeichen ("_") beginnen, auf das Buchstaben, Zahlen oder Unterstrichzeichen folgen können. Es ist nicht zulässig, zwei Unterstrichzeichen hintereinander in einem Namen zu benutzen. Bei der Benennung wird nicht zwischen Klein- und Großbuchstaben unterschieden. Zwei gleich lautende Namen, ob klein oder gross geschrieben, werden als derselbe Name betrachtet.

SFC Childprogramme

Die Workbench ermöglicht die Definition einer SFC Programmhierarchie, die in der Programmliste als Baumstruktur eingegeben wird. Childprogramme werden in Aktionsblöcken ihrer SFC Vaterprogramme gesteuert.

Benutzerdefinierte Funktionsbausteine (UDFBs)

Die Programmliste kann durch Benutzerdefinierte Funktionsbausteine (User Defined Function Blocks oder UDFBs) vervollständigt werden. UDFBs können mit Hilfe der Sprachen SFC, FBD, LD, ST oder IL geschrieben werden und wie andere Funktionsbausteine in den Anwendungsprogramme benutzt werden. Die Input- und Outputparameter sowie die privaten Variablen eines UDFBs werden im Variableneditor als lokale Variablen des UDFBs deklariert.

Es bestehen keine Beschränkungen hinsichtlich der in einem UDFB benutzen Operationen und ein UDFB kann Standardfunktionen und -funktionsbausteine aufrufen.

Ein UDFB kann einen anderen UDFB aufrufen. Der aufgerufene UDFB muss in der Programmliste vor dem aufrufenden deklariert sein.

Jedes Mal, wenn ein UDFB instanziert wird, werden seine privaten Variablen für die deklarierte Instanz dupliziert. Der Code des UDFB wird bei jedem Aufruf in den Vaterprogrammen dupliziert. Das steigert die Leistungsfähigkeit bei der Ausführung, nimmt aber Codeplatz in Anspruch. Es wird empfohlen, kleine Algorithmen in UDFBs unterzubringen. Umfangreicher Code sollte dagegen in Programmen verwaltet werden.

Ein UDFB kann nicht mehr als 32 Inputparameter oder 32 Outputparameter haben.

Unterprogramme

Das Programmverzeichnis kann um Unterprogramme erweitert werden. Unterprogramme können in FBD, LD, ST oder IL geschrieben sein und werden von Programmen des Projekts aufgerufen. Input- und Outputparameter und lokale Variablen von Unterprogrammen werden im Variableneditor als lokale Variablen des Unterprogramms deklariert.

Ein Unterprogramm kann ein anderes Unterprogramm oder einen UDFB aufrufen.

Anders als in UDFB, werden lokale Variablen eines Unterprogramms nicht instanziert. Das bedeutet, dass Unterprogramme immer mit dem selben Satz an lokalen Variablen arbeitet. Lokale Variablen behalten ihren Wert zwischen den Aufrufen des Unterprogramms. Der Code eines Unterprogramms wird nicht dupliziert, wenn es mehrmals aufgerufen wird.

Ein Unterprogramm darf nicht mehr als 32 Inputparameter oder 32 Outputparameter haben.


Datentypen

Programmiersprachen - Referenzen -> Datentypen

Basisdatentypen

Folgende Basisdatentypen sind verfügbar:

Typ | Beschreibung
BOOL | Boolesch (Bit) - kann FALSE oder TRUE sein - wird in 1 Byte gespeichert.
SINT (*) | Vorzeichenbehafteter kurzer ganzzahliger Wert auf 8 Bit (von -128 bis +127).
USINT (*) | 8 Bit (von 0 bis +255).
BYTE | Wie USINT.
INT (*) | Vorzeichenbehafteter ganzzahliger Wert auf 16 Bit (von -32768 bis +32767).
UINT (*) | 16 Bit (von 0 bis +65535).
WORD | Wie UINT.
DINT | Vorzeichenbehafteter ganzzahliger Wert auf 32 Bit (von -2147483648 bis +2147483647).
UDINT (*) | 32 Bit (von 0 bis 4294967295).
DWORD | Wie UDINT.
LINT (*) | Vorzeichenbehafteter langer ganzzahliger Wert auf 64 Bit.
REAL (*) | Gleitpunktzahl mit einfacher Präzision - wird auf 32 Bit gespeichert.
LREAL (*) | Gleitpunktzahl mit doppelter Präzision - wird auf 64 Bit gespeichert.
TIME | Tageszeit - weniger als 24h - Präzision: 1ms.
STRING (*) | Zeichenfolge unterschiedlicher Länge mit deklarierter Maximalgröße. Die deklarierte Maximalgröße darf 255 Zeichen nicht überschreiten.

(*) Manche dieser Datentypen werden nicht von allen Zielsystemen unterstützt.

Strukturen

Eine Struktur ist ein komplexer Datentyp bestehend aus mehreren Elementen. Die Elemente der Struktur können auf unterschiedlichen Datentypen basieren. Elemente können mehrdimensional sein, oder können eine Instanz einer anderen Struktur sein.

Eine definierte Struktur kann als Datentyp zur Deklaration von Variablen verwendet werden.

Strukturelemente können Initialwerte haben. In diesem Fall werden korrespondierende Elemente aller mit dieser Struktur deklarierten Variablen mit dem Wert des Strukturelement initialisiert.

Um ein Strukturelement anzusprechen verwenden Sie folgende Bezeichnung:

VariablenName.ElementName

Enumerated data types

You can define some new data types that are enumaration of named values. For example:

type: LIGHT

values: GREEN, ORANGE, RED

Then in programs, you can use one of the enumerated values, prefixed by the type name:

Light1 := LIGHT#RED;

Variables having enumerated data types can only be used for assignment, comparison, and SEL/MUX functions.

"Bit fields" data types

You can define new data types derived from integer data types, that have some readable names for some of their bits. Thus you can use VarName.BitName notations in programs. Such data types cannot be derived from the LINT type.


Variablen

Programmiersprachen - Referenzen -> Variablen

Alle Variablen, die in den Programmen benutzt werden, müssen zuerst im Variableneditor deklariert werden. Jede Variable gehört einer Gruppe an und muss mit einem einmaligen Namen innerhalb der Gruppe gekennzeichnet werden.

Gruppen

Eine Gruppe ist ein Satz von Variablen. Eine Gruppe bezieht sich entweder auf eine physikalische Variablenklasse oder identifiziert programm-lokale Variablen oder benutzerdefinierte Funktionsbausteine (UDFB). Es folgen die möglichen Gruppen:

Gruppe | Beschreibung
GLOBAL | Interne Variablen, die allen Programmen bekannt sind.
RETAIN | Nicht-flüchtige, interne Variablen, die allen Programmen bekannt sind.
%I... | Kanäle einer Input-Baugruppe - Variablen vom gleichen Datentyp, die an eine physikalische Input-Baugruppe angeschlossen sind.
%Q... | Kanäle einer Output-Baugruppe - Variablen vom gleichen Datentyp, die an eine physikalische Output-Baugruppe angeschlossen sind.
PROGRAMxxx | Alle internen Variablen, die einem Programm bekannt (programm-lokal) sind (der Name der Gruppe ist der Name des Programms).
UDFBxxx | Alle internen Variablen, die einem UDFB bekannt (programm-lokal) sind, sowie seine IN- und OUT-Parameter (der Name der Gruppe ist der Name des Programms).

Datentyp und Dimension

Jede Variable muss einen gültigen Datentyp haben. Das kann entweder ein Basisdatentyp oder ein Funktionsbaustein sein. In diesem Fall ist die Variable eine Instanz des Funktionsbausteins. Physikalische I/Os müssen einen Basisdatentyp haben. Funktionsbaustein-Instanzen können sich entweder auf einen Standard- oder eingebetteten "C"-Baustein beziehen, oder auf einen benutzerdefinierten Funktionsbaustein (User Defined Function Block).

Wenn es sich bei dem ausgewählten Datentyp um STRING handelt, muss die maximale Länge der Zeichenfolge eingegeben werden, die 255 Zeichen nicht überschreiten darf.

Für weitere Informationen siehe auch verfügbare Datentypen. Siehe die Beschreibung der Funktionsbausteine für weitere Informationen zum Gebrauch von Funktionsbaustein-Instanzen.

Zusätzlich können für eine interne Variable Dimensionen bestimmt werden, um ein Array zu deklarieren. Arrays haben maximal 3 Dimensionen. Alle Indexe sind 0-basiert. Zum Beispiel wird das erste Element eines eindimensionalen Arrays stets durch ArrayName[0] identifiziert. Die Gesamtzahl der Elemente eines Arrays (alle Dimensionen zusammengerechnet) darf 65535 nicht überschreiten.

Eine Variable benennen

Eine Variable muss innerhalb ihrer Vatergruppe mit einem einmaligen Namen gekennzeichnet werden, der kein reserviertes Schlüsselwörter der Programmiersprachen oder ein Name von Standard- oder "C"-Funktionen oder -Funktionsbausteinen sein darf. Eine Variable darf auch nicht den gleichen Namen wie ein Programm oder wie ein benutzerdefinierter Funktionsbaustein (UDFB) haben.

Der Name einer Variablen muss mit einem Buchstaben oder einem Unterstrichzeichen ("_") beginnen, auf das Buchstaben, Zahlen oder Unterstrichzeichen folgen können. Es ist nicht zulässig, in einem Namen zwei Unterstrichzeichen hintereinander zu benutzen. Bei der Benennung wird nicht zwischen Klein- und Glossbuchstaben unterschieden. Zwei gleich lautende Namen, ob klein oder gross geschrieDben, werden als ein und derselbe Name betrachtet.

Physikalische I/Os benennen

Jeder I/O Kanal hat ein vordefiniertes Symbol, das seinen physikalischen Standort kennzeichnet. Dieses Symbol beginnt mit %I für einen Input und %Q für einen Output, gefolgt von einem Buchstaben, der die physikalische Grösse der Daten identifiziert. Dann folgt der Standort der Baugruppe, ausgedrückt in einer oder zwei Zahlen, und schliesslich der 0-basierte Index des Kanals innerhalb der Baugruppe. Alle Zahlen werden mit Punkten getrennt. Es folgen die möglichen Vorzeichen für I/O Symbole:

Präfix | Beschreibung
%IX | 1 byte Input - BOOL oder SINT
%QX | 1 byte Output - BOOL oder SINT
%IW | 2 bytes Input - INT
%QW | 2 bytes Output - INT
%ID | 4 bytes Input - DINT oder REAL
%QD | 4 bytes Input - DINT oder REAL
%IL | 8 bytes Input - LINT oder LEAL
%QL | 8 bytes Output - LINT oder LEAL
%IS | STRING Input
%QS | STRING Output

Zusätzlich können Sie einen Alias (lesbaren Namen) für jeden I/O Kanal definieren. In diesem Fall kann entweder der "%"-Name oder der Alias in den Programmen benutzt werden. Für den Alias gelten die gleichen Regeln wie für den Variablennamen.

Attribute einer Variablen

Physikalische I/Os werden entweder als Input oder Output markiert. Inputs sind read-only Variablen. Für alle internen Variablen können Sie Read Only wählen.

Die Parameter der User Defined Function Blocks werden entweder als IN oder OUT markiert.

Parameters von Unterprogrammen und UDFBs

Unterprogramme und UDFBs können Parameter an Inputs und an Outputs haben. Output Parameter dürfen keine Arrays oder Strukturvariablen sein, sondern nur einfache Datentypen. Wird ein Array als Input Parameter an einen UDFB übergeben, wird dieser als INOUT verwendet und kann so vom UDFB gelesen und beschrieben werden. Die Unterstützung von komplexen Datentypen an Input Parametern hängt von den gewählten Compiler Optionen ab.


Arrays

Programmiersprachen - Referenzen -> Arrays

Sie können Dimensionen (oder eine Dimension) für interne Variablen spezifizieren in dem Sie Arrays deklarieren. Alle Indizes beginnen mit 0. Zum Beispiel ist das erste Element eines eindimensionalen Arrays immer ArrayName[0].

Um einen Array zu deklarieren, geben Sie die Dimension(en) in die entsprechende Spalte der Variablenliste ein. Mehrere Dimensionen werden mit Kommas getrennt (z.B.: 2,10,4).

Verwendung in ST and IL Sprache

Um einen Array in ST und IL Sprache anzusprechen, schreiben Sie den Namen des Arrays gefolgt vom Index innerhalb von "[" und "]". Trennen sie Indizes mit Kommas bei mehrdimensionalen Arrays. Indizes können Konstanten oder komplexe Ausdrücke sein.

Example Example

TheArray[1,7] := value;
result := SingleArray[i + 2];

Verwendung in FBD and LD Sprache

In grafischen Sprachen sind folgende Funktionsblöcke verfügbar um Arrayelemente zu bearbeiten:

Funktionsblock | Beschreibung
[I]>> | Zeigt den Wert eines Elements eines eindimensionalen Arrays.
[I,J]>> | Zeigt den Wert eines Elements eines zweidimensionalen Arrays.
[I,J,K]>> | Zeigt den Wert eines Elements eines dreidimensionalen Arrays.
>>[I] | Setzt den Wert eines Elements eines eindimensionalen Arrays.
>>[I,J] | Setzt den Wert eines Elements eines zweidimensionalen Arrays.
>>[I,J,K] | Setzt den Wert eines Elements eines dreidimensionalen Arrays.

Für get array item: Der erste Eingang ist der Array und der Ausgang ist der Wert des angesprochenen Arrayelements. Die anderen Eingänge sind für die Auswahl der Indizes.

Für put array item: Auf den ersten Eingang wird der Wert geschrieben der zweite Eingang ist der Array selbst. Die restlichen Eingänge sind für die Indizes des Arrays welche beschrieben werden sollen.

attention Attention
  • Arrays können maximal 3 Dimensionen haben.
  • Alle Indizes beginne mit 0.
  • Die maximale Gesamtzahl von Elementen darf 65535 nicht überschreiten (gerechnet über alle Dimensionen).


Konstantenausdrücke

Programmiersprachen - Referenzen -> Konstantenausdrücke

Konstantenausdrücke können in allen Sprachen benutzt werden, um einer Variablen einen Wert zuzuweisen. Alle Konstantenausdrücke haben klar definierte, ihrer Semantik entsprechende Datentypen. Wenn Sie eine Operation zwischen Variablen und Konstantenausdrücken mit unklaren Datentypen programmieren, können syntaktische Fehler bei der Programmkompilierung entstehen. Es folgen die syntaktischen Regeln für die Konstantenausdrücke entsprechend der möglichen Datentypen:

BOOL: boolsche Zahl

Es gibt nur zwei boolsche Konstantenausdrücke: die reservierten Schlüsselwörter TRUE und FALSE.

SINT: Kurze Integerzahl (8 Bit)

Kurze ganzzahlige Konstantenausdrücke sind gültige ganzzahlige Werte (zwischen -128 und +127), die mit dem Präfix SINT# gekennzeichnet werden müssen. Alle ganzzahligen Ausdrücke, die kein Präfix besitzen, werden als Ganzzahlen vom Typ DINT betrachtet.

USINT / BYTE: Kurze Integerzahl (8 Bit - Unsigned)

Kurze ganzzahlige Konstantenausdrücke sind gültige ganzzahlige Werte (zwischen 0 und 255), die mit dem Präfix USINT# gekennzeichnet werden müssen. Alle ganzzahligen Ausdrücke, die kein Präfix besitzen, werden als Ganzzahlen vom Typ DINT betrachtet.

INT: Ganzzahl (16 Bit)

Ganzzahlige Konstantenausdrücke mit 16 Bits sind gültige ganzzahlige Werte (zwischen -32768 und +32767), die mit dem Präfix INT# gekennzeichnet werden müssen. Alle ganzzahligen Ausdrücke, die kein Präfix besitzen, werden als Ganzzahlen vom Typ DINT betrachtet.

UINT / WORD: Ganzzahl (16 Bit - Unsigned)

Ganzzahlige Konstantenausdrücke mit 16 Bits sind gültige ganzzahlige Werte (zwischen 0 und 65535), die mit dem Präfix UINT# gekennzeichnet werden müssen. Alle ganzzahligen Ausdrücke, die kein Präfix besitzen, werden als Ganzzahlen vom Typ DINT betrachtet.

DINT: 32-Bit-Ganzzahl (Default)

Ganzzahlige Konstantenausdrücke mit 32 Bit sind gültige Zahlen zwischen -2147483648 und +2147483647. DINT ist der Default Datentyp für Ganzzahlen. Derartige Ausdrücke benötigen kein Präfix. Die Präfix 2#, 8# oder 16# können benutzt werden, um eine Zahl auf Binär-, Oktal- oder Hexadezimalbasis zu kennzeichnen.

UDINT / DWORD: 32-Bit-Ganzzahl (32 Bit - Unsigned)

Ganzzahlige Konstantenausdrücke mit 32 Bits sind gültige ganzzahlige Werte (zwischen 0 und 4294967295), die mit dem Präfix UDINT# gekennzeichnet werden müssen. Alle ganzzahligen Ausdrücke, die kein Präfix besitzen, werden als Ganzzahlen vom Typ DINT betrachtet.

LINT: Lange Ganzzahl (64 Bit)

Lange ganzzahlige Konstantenausdrücke sind gültige ganzzahlige Werte, die mit dem Präfix LINT# gekennzeichnet werden müssen. Alle ganzzahligen Ausdrücke, die kein Präfix besitzen, werden als Ganzzahlen vom Typ DINT betrachtet.

REAL: Gleitkommawert (32 Bit)

Gleitkomma Konstantenausdrücke müssen gültige Zahlen sein und einen Punkt (".") enthalten. Wenn ein Gleitkommaausdruck mit einem ganzzahligen Wert eingegeben werden soll, fügt man am Ende der Zahl .0 hinzu. Bei der wissenschaftlichen Schreibweise können die Trennzeichen F oder E benutzt werden, um den Exponenten zu kennzeichnen. REAL ist der Defaultdatentyp für Gleitpunktwerte. Derartige Ausdrücke benötigen kein Präfix.

LREAL: Gleitpunktwert (64 Bit)

Diese Gleitkomma Konstantenausdrücke müssen gültige Zahlen sein und einen Punkt (".") sowie das Präfix "LREAL#" enthalten. Wenn ein realer Ausdruck mit einem ganzzahligen Wert eingegeben werden soll, fügt man am Ende der Zahl .0 hinzu. Bei der wissenschaftlichen Schreibweise können die Trennzeichen F oder E benutzt werden, um den Exponenten zu kennzeichnen.

TIME: Tageszeit

Konstantenausdrücke vom Typ TIME stellen eine Zeitspanne von unter 24 Stunden dar. TIME Ausdrücke müssen das Präfix TIME# oder T# haben. Sie stellen eine Anzahl an Stunden (gefolgt von h), eine Anzahl an Minuten (gefolgt von m), eine Anzahl an Sekunden (gefolgt von s) und eine Anzahl an Millisekunden (gefolgt von ms) dar. Die Reihenfolge der Einheiten (Stunden, Minuten, Sekunden, Millisekunden) muss eingehalten werden. TIME Ausdrücke dürfen keine Leerzeichen enthalten und müssen mindestens ein gültiges Einheitszeichen enthalten (h, m, s oder ms).

STRING: Zeichenfolge

Zeichenfolgen werden zwischen einfachen Anführungszeichen (Hochkomma) geschrieben ('...'). Die Länge einer Zeichenfolge beträgt maximal 255 Zeichen. Folgende Sequenzen können benutzt werden, um Spezialzeichen oder nicht druckbare Zeichen innerhalb einer Zeichenfolge darzustellen:

Sequenz | Beschreibung
$$ $' $T $R $L $N $P $xx | ein "$" Zeichen ein einfaches Anführungszeichen ein Tabulator (ASCII-Code 9) einen Wagenrückgang (ASCII-Code 13) Zeilensprung (ASCII-Code 10) Wagenrückgang plus Zeilensprung (ASCII-Codes 13 und 10) eine neue Seite (ASCII-Code 12) ein beliebiges Zeichen (xx ist der durch zwei hexadezimale Stellen ausgedrückte ASCII-Code)

Example Example

Es folgen einige Beispiele gültiger Konstantenausdrücke:

TRUE
FALSE
SINT#127
INT#2000
123456
16#abcd
LINT#1
0.0
1.002E3
LREAL#1E-200
T#23h59m59s999ms
TIME#0s
T#1h123ms
'hello'
'name$Talter'
'I$'m here'
'x$00y'

Boolescher Ausdruck TRUE
Boolescher Ausdruck FALSE
Kurze Ganzzahl
Ganzzahl (16 Bit)
Ganzzahl DINT (32 Bit)
Ganzzahl DINT auf Hexadezimalbasis
Lange Ganzzahl (64 Bit) mit dem Wert "1"
0 ausgedrückt als REAL Zahl
1002 ausgedrückt als REAL Zahl im wissenschaftlichen Format
Reale Zahl mit doppelter Präzision
Maximaler TIME Wert
TIME Ausdruck mit dem Wert null
TIME Wert mit fehlenden Zeiteinheiten
Zeichenfolge (String)
Zeichenfolge mit zwei Wörtern (getrennt durch einen Tabulator)
Zeichenfolge mit einem Zitat (I'm here)
Zeichenfolge mit zwei Zeichen, durch Null-Zeichen getrennt (ASCII-Code 0)

Es folgen einige typische Fehler in Konstantenausdrücken:

1a2b
1E-200
T#12
'I'm here'
hello

Basis-Präfix ("16#") fehlt
Präfix LREAL# fehlt (64 Bit Gleitkommazahl)
Zeiteinheit fehlt
Hochkomma innerhalb einer Zeichenfolge ("$"-Zeichen fehlt)
Zeichenfolge ohne Hochkomma

© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


Bedingtes kompilieren

Programmiersprachen - Referenzen -> Bedingtes kompilieren

Der Compiler unterstützt bedingte Kompilieranweisungen in ST, IL, LD und FBD Sprache. Bedingte Kompilieranweisungen beeinflussen die Berücksichtigung von Programmteilen im erstellten Code. Dies erleichtert die Handhabung von verschiedenen Konfigurationen und Optionen in ein und dem selben Programm.

Bedingtes kompilieren verwendet Definitionen zur Aktivierung und Deaktivierung von Bedingungen. Siehe untenstehende Haupt Syntax:

#ifdef CONDITION

statementsYES...

#else

statementsNO...

#endif

Wurde CONDITION unter Verwendung der #define Syntax definiert, dann wird der statementsYES Teil im Code berücksichtigt, andernfalls wird der statementsNO Teil berücksichtigt. Die #else Anweisung ist optional.

In ST und IL Sprache, müssen die Anweisungen alleine in einer Zeile stehen. In FBD Sprache, müssen die Anweisungen als Text in network breaks stehen. In LD Sprache, müssen Anweisungen in comment lines eingegeben werden.

Die Bedingung __DEBUG wird automatisch definiert, wenn die Applikation im DEBUG Modus kompiliert wird. Das erlaubt es Ihnen einige zusätzliche Statements (wie z.B. Trace Ausgaben) in Ihren Code einzufügen, die im RELEASE Modus nicht enthalten sind.


Behandlung von Ausnahmen (Exception Handling)

Programmiersprachen - Referenzen -> Behandlung von Ausnahmen (Exception Handling)

Previous chapter Next chapter Show all Show all Hide all Hide all

Der Compiler erlaubt es eigene Ausnahme-Programme zu schreiben um spezielle Systemereignisse zu behandeln. Die folgenden Ausnahmen können behandelt werden:

  • Startup (vor dem ersten Zyklus)
  • Shutdown (nach dem letzten Zyklus)
  • Division durch Null

Startup

Sie können ein eigenes Ausnahme-Programm schreiben, das ausgeführt wird, bevor der erste Applikationszyklus ausgeführt wird:

  1. Erstellen Sie ein neues Hauptprogramm, das die Ausnahme behandeln wird. Dieses darf kein SFC Programm sein.
  2. Fügen Sie in den Globalen Definitionen folgenden String ein:

#OnStartup ProgramName

attention Attention

Das Programm wird vor allen anderen Programmen im ersten Zyklus ausgeführt. Dadurch kann der erste Zyklus länger dauern. Im Startup Programm können keine Breakpoints gesetzt werden.

Shutdown

Sie können ein eigenes Ausnahme-Programm schreiben, das ausgeführt wird, nach dem der letzte Applikationszyklus ausgeführt wurde:

  1. Erstellen Sie ein neues Hauptprogramm, das die Ausnahme behandeln wird. Dieses darf kein SFC Programm sein.
  2. Fügen Sie in den Globalen Definitionen folgenden String ein:

#OnShutdown ProgramName

attention Attention

Im Shutdown Programm können keine Breakpoints gesetzt werden.

Division durch Null

Sie können ihr eigenes Ausnahme-Programm für die "Division durch null" Exception schreiben. Gehen Sie wie folgt vor:

  1. Erstellen Sie ein neues Unterprogramm ohne Parameter, das die Ausnahme behandeln wird.
  2. Fügen Sie in den Globalen Definitionen folgenden String ein:

#OnDivZero SubProgramName

Das Unterprogramm das die Ausnahme behandelt beinhaltet idealerweise Sicherheits- bzw. Trace-Operationen. Dann haben Sie die Wahl zwischen den folgenden Möglichkeiten:

  • Return ohne einen speziellen Aufruf. In diesem Fall wird die Standardaktion ausgeführt: eine Systemfehlermeldung wird generiert, das Ergebnis der Division wird mit einem Maximalwert ersetzt und die Applikation läuft weiter.
  • Aufruf der FatalStop Funktion. Die Runtime stoppt unverzüglich im Fatal Error Mode.
  • Aufruf der CycleStop Funktion. Die Runtime beendet das aktuelle Programm sofort und geht in den Schrittmodus über.

Um der unzulässigen Operation auf die Spur zu kommen, kann diese Ausnahme-Behandlung auch im DEBUG Mode verwendet werden. Setzen Sie einen Breakpoint in der Ausnahme-Behandlung. Wenn die Applikation stoppt, ist im Call Stack ersichtlich an welcher Stelle im Programmcode sich die Division befindet.

Array-Index außerhalb der Grenzen

Sie können ihr eigenes Ausnahme-Programm für die "Array-Index außerhalb der Grenzen" Exception schreiben. Gehen Sie wie folgt vor:

  1. Erstellen Sie ein neues Unterprogramm ohne Parameter, das die Ausnahme behandeln wird.
  2. Fügen Sie in den Globalen Definitionen folgenden String ein:

#OnBadArrayIndex SubProgramName

Hinweis: Das ist ein schwerer Fehler. Wenn die Compiler-Option „Array Grenzen überprüfen“ eingeschaltet ist, geht die Runtime in den „Fatal Error“ Mode nachdem das entsprechende Exception-Unterprogramm aufgerufen wurde.


Variablen Statusbits.

Programmiersprachen - Referenzen -> Variablen Statusbits.

Previous chapter Next chapter Show all Show all Hide all Hide all

In der Workbench können Statusbits an deklarierten Variablen geknüpft werden. Jede Variable kann zusätzlich zu ihrem Echtzeit-Wert haben:

  • 64 Statusbits
  • einen Datums- und Zeitstempel

Statusbits und Zeitstempel werden generll von Hardware-Input Treibern gesetzt und können somit zusammen mit dem Wert der Variable an ein Netzwerkprotokoll übergeben werden. Zusätzlich hat man über die IEC 61131-3 Programme Zugriff auf die Statusbits der Variablen.

attention Attention
  • Statusbit-Management kann auf manchen Zielsystemen nicht zur Verfügung stehen. Für weitere Details über verfügbare Features nehmen Sie bitte Bezug auf die OEM Anweisungen.
  • Statusbit-Management verursacht zusätzliche CPU Last und benötigt zusätzlichen Speicher und kann daher die Leistungsfähigkeit der Applikation beeinflussen.

Aktivieren der Statusbits.

Um das Management von Statusbits und Datums-/Zeitstempel zu aktivieren muss die folgende Option in der Liste der Compiler Optionen der Projekt-Parameter eingeschaltet sein:

Statusbits für Variablen mit Profil anlegen

Nur Variablen mit Eigenschaften (entweder ein Profile oder eingebettetes Symbol oder beides) werden mit Statusbits erweitert. Statusbits sind nur für globale Varialen (Global, Retain, I/Os...) verfügbar und müssen einen einfachen Datentyp haben (dürfen keine Strukturvariablen sein).

Lesen und schreiben von Statusinformationen in Programmen

Folgende Funktionen stehen für die Anwendung von Statusinformationen in Prgrammen zur Verfügung:

vsiGetBit : Lesen eines Statusbits einer Variable
vsiGetDate : Lesen des Datumsstempels einer Variable
vsiGetTime : Lesen des Zeitstempels einer Variable
vsiSetBit : Setzen eines Statusbits einer Variable
vsiSetDate : Setzen des Datumsstempels einer Variable
vsiSetTime : Setzen des Zeitstempels einer Variable
vsiStamp / vsiStampGMT : Aktualisieren des Datum-/Zeitstempels einer Variablen entsprechen der aktuellen Zeit
vsiCopy : Kopiert Statusbits und Stempel einer Variable auf eine andere Variable.

Im folgenden steht die Syntax dieser Funktionen:

bBit := vsiGetBit ( variable, bitID );
iDate := vsiGetDate ( variable );
iTime := vsiGetTime ( variable );
bOK := vsiSetBit ( variable, bitID, bBit );
bOK := vsiSetDate ( variable, iDate );
bOK := vsiSetTime ( variable, iTime );
bOK := vsiStamp ( variable );

Die Funktionen verwenden die folgenden Argumente:

Argument | Beschreibung
Variable | Variable mit eingebettetem Symbol oder Profil.
bitID : DINT | ID des Statusbits (siehe auch list of IDs im nächsten Abschnitt).
bBit : BOOL | Wert des Statusbits.
iDate : DINT | Datumsstempel entsprechend der Echtzeituhr-Funtkionseigenschaften.
iTime : DINT | Zeitstempel entsprechend der Echtzeituhr-Funtkionseigenschaften.
bOK : BOOL | TRUE wenn erfolgreich.

Siehe auch die Beschreibung der Echtzeit Uhr Funktionen für weitere Information über Datums- und Zeitstempel.

Treiber die Statusbits unterstützen

Im Folgenden finden Sie die Liste der Treiber, welche Statusbits und Zeit- und Datumsstempel unterstützen:

Treiber | Beschreibung
Variablen Binding (Ethernet) | Binding (spontanes Protokoll) wird verwendet für Echtzeit Austausch von Variablen zwischen Runtimes über Ethernet. Das Protokoll stellt die Übertragung von Statusbits sicher. Das Protokoll aktualisiert den Datums- und Zeitstempel der Variablen welche über des Netzwerk übertragen werden.
MODBUS Master | Die MODBUS Master Protokolle (RTU / TCP / UDP) stellen die Aktualisierung des Datums- und Zeitstempels aller Variablen die über das Netzwerk übertragen werden sicher. Der MODBUS Stack setzt auch das _VSB_I_BIT Statusbit von empfangenen Variablen gemäß dem Übertragungsfehler-Status.
MODBUS Slave | Die MODBUS Slave Protokolle (RTU / TCP / UDP) stellen die Aktualisierung des Datums- und Zeitstempels aller Variablen die über das Netzwerk übertragen werden sicher.
DNP3 Master | The DNP3 protocol handles the time stamps and the following status bits: _VSB_SPONT, _VSB_I_BIT, _VSB_ST_M1, _VSB_ST_M3, _VSB_ST_M2, _VSB_OV_BIT, _VSB_SP_BIT
DNP3 Slave | The DNP3 protocol handles the time stamps and the following status bits: _VSB_SPONT, _VSB_I_BIT, _VSB_ST_M1, _VSB_ST_M3, _VSB_ST_M2, _VSB_OV_BIT, _VSB_SP_BIT
IEC 60870-5 Master | Die IEC 60870-5-101/-104 Master Protokolle empfangen die _VSB_I_BIT, _VSB_OV_BIT, _VSB_SP_BIT und _VSB_NT_BIT. Aktualisierung von Datum/Zeit ()UTC Zeit) inkludiert. Sie können die Informationen mithilfe der Funktionsblöcke vsiGetBit, vsiGetDate und vsiGetTime auswerten. Wenn Werte mit Zeitinformationen (CP24Time2a oder CP56Time2a) empfangen werden, setzt der Treiber das Statusbit _VSB_RT_E. Ansonsten bekommen die Variablen das Statusbit _VSB_RT_I und eine Zeitstempel mit der lokalen Zeit (PC Uhr).
IEC 60870-5 Slave | Die IEC 60870-5-101 Slave und IEC 60870-5-104 Slave Protokolle senden die Bits _VSB_I_BIT, _VSB_OV_BIT, _VSB_BL_BIT, _VSB_SP_BIT und _VSB_NT_BIT im Protokolltelegramm für Points (Meldungen) und Measures (Messwerte). Aktualisierung von Datums-/Zeitstempel inkludiert.
IEC 61850 Client | Der IEC 61850 Client kann das _VSB_I_BIT vom IEC 61850 Server lesen. Aktualisierung von Datums-/Zeitstempel inkludiert.
IEC 61850 Server | Variablenstatusbits werden vom IEC 61850 Server nicht unterstützt.
zenon RT zu Win-GRAF Verbindung | Die zenon RT zu Win-GRAF Verbindung kann alle 64 Statusbits lesen. Aktualisierung von Datums-/Zeitstempel inkludiert.

Noch in diesem Kapitel

Liste der Statusbits
© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


Liste der Statusbits

Programmiersprachen - Referenzen -> Variablen Statusbits. -> Liste der Statusbits

Previous chapter Next chapter Show all Show all Hide all Hide all

Im Folgenden finden Sie die Liste der verfügbaren Statusbit. Die Bezeichner (_VSB_...) sind im Compiler vordefiniert und können direkt in Programmen verwendet werden:

Bit | Bezeichner | Beschreibung
0 | _VSB_ST_M1 | Benutzerstatus
1 | _VSB_ST_M2 | Benutzerstatus
2 | _VSB_ST_M3 | Benutzerstatus
3 | _VSB_ST_M4 | Benutzerstatus
4 | _VSB_ST_M5 | Benutzerstatus
5 | _VSB_ST_M6 | Benutzerstatus
6 | _VSB_ST_M7 | Benutzerstatus
7 | _VSB_ST_M8 | Benutzerstatus
8 | _VSB_SELEC | Select
9 | _VSB_REV | Revision
10 | _VSB_DIREC | Sollrichtung
11 | _VSB_RTE | Laufzeit Überschreitung
12 | _VSB_MVALUE | Handwert
13 | _VSB_ST_14 | Benutzerstatus
14 | _VSB_ST_15 | Benutzerstatus
15 | _VSB_ST_16 | Benutzerstatus
16 | _VSB_GR | Generalabfrage
17 | _VSB_SPONT | Spontan
18 | _VSB_I_BIT | Invalid
19 | _VSB_SUWI | Sommer/Winterzeit Ankündigung
20 | _VSB_N_UPD | Abgeschaltet
21 | _VSB_RT_E | Echtzeit extern
22 | _VSB_RT_I | Echtzeit intern
23 | _VSB_NSORT | Nicht sortierfähig
24 | _VSB_DM_TR | Störmeldung Trafowert
25 | _VSB_RM_TR | Laufmeldung Trafowert
26 | _VSB_INFO | Info der Variable
27 | _VSB_AVALUE | Ersatzwert
28 | _VSB_RES28 | reserviert
29 | _VSB_ACTUAL | Nicht aktualisiert
30 | _VSB_WINTER | Winterzeit
31 | _VSB_RES31 | reserviert
32 | _VSB_TCB0 | Übertragungsursache
33 | _VSB_TCB1 | Übertragungsursache
34 | _VSB_TCB2 | Übertragungsursache
35 | _VSB_TCB3 | Übertragungsursache
36 | _VSB_TCB4 | Übertragungsursache
37 | _VSB_TCB5 | Übertragungsursache
38 | _VSB_PN_BIT | P/N-Bit
39 | _VSB_T_BIT | Test-Bit
40 | _VSB_WR_ACK | Schreiben bestätigen
41 | _VSB_WR_SUC | Schreiben erfolgreich
42 | _VSB_NORM | Normalzustand
43 | _VSB_ABNORM | Abweichung Normalzustand
44 | _VSB_BL_BIT | IEC status: blocked
45 | _VSB_SP_BIT | IEC status: substituted
46 | _VSB_NT_BIT | IEC status: not topical
47 | _VSB_OV_BIT | IEC status: overflow
48 | _VSB_SE_BIT | IEC status: select
49 | nicht definiert |
50 | nicht definiert |
51 | nicht definiert |
52 | nicht definiert |
53 | nicht definiert |
54 | nicht definiert |
55 | nicht definiert |
56 | nicht definiert |
57 | nicht definiert |
58 | nicht definiert |
59 | nicht definiert |
60 | nicht definiert |
61 | nicht definiert |
62 | nicht definiert |
63 | nicht definiert |


Basisoperationen

Programmiersprachen - Referenzen -> Basisoperationen

Es folgen Sprachelemente zur Datenmanipulation:

Variablenzuweisung
Bit Zugriff
Klammern
Funktionsaufruf
Funktionsbausteinaufruf
Aufruf von Unterprogrammen
MOVEBLOCK
COUNTOF
INC: Inkrement einer Variable
DEC: Dekrement einer Variable

Es folgen Sprachelemente zur Steuerung der Programmausführung:

Marken
Sprünge
RETURN

Es folgen strukturierte Anweisungen zur Steuerung der Programmausführung:

Anweisung | Beschreibung
IF WHILE REPEAT FOR CASE EXIT ON WAIT | Bedingte Ausführung der Anweisungen. Anweisungen wiederholen während eine Bedingung TRUE ist. Anweisungen wiederholen bis eine Bedingung TRUE ist. Iterationen der Anweisungen ausführen. Auf eine von verschiedenen möglichen Anweisungen umschalten. Anweisungsschleife beenden. Bedingte Ausführung von Anweisungen Unterbricht die Ausführung eines ST Programms

Noch in diesem Kapitel

Assignment

Zugriff auf Bits einer Integer Variable

Eine Funktion aufrufen

Einen Funktionsbaustein aufrufen

Aufruf eines Unterprogramms

CASE OF ELSE END_CASE

CountOf

DEC

EXIT

FOR TO BY END_FOR

IF THEN ELSE ELSIF END_IF

INC

Sprünge JMP JMPC JMPNC JMPCN

Labels

MOVEBLOCK

Parenthesis ( )

REPEAT UNTIL END_REPEAT

RETURN RET RETC RETNC RETCN

WHILE DO END_WHILE

ON

WAIT / WAIT_TIME


Assignment

Programmiersprachen - Referenzen -> Basisoperationen -> Assignment

Previous chapter Next chapter Show all Show all Hide all Hide all

:= LD LDN ST STN

Operator - Variablenzuweisung.

Inputs

IN : ANY Beliebige Variable oder komplexer Ausdruck.

Outputs

Q : ANY Forcierte Variable.

Anmerkungen

Die Output-Variable und der Input-Ausdruck müssen vom gleichen Typ sein. Die forcierte Variable kann kein nur lesen Attribut besitzen. In den LD und FBD Sprachen ist der Baustein 1 verfügbar, um eine "1 gain" Datenkopie auszuführen. In der LD Sprache gibt das Input-Rung (EN) die Zuweisung frei. Das Output-Rung behält den Status des Input-Rung. In der IL Sprache lädt die LD-Anweisung den ersten Operanden und die ST-Anweisung speichert das aktuelle Ergebnis in einer Variablen. Das aktuelle Ergebnis und der ST-Operand müssen vom gleichen Typ sein. Bei einem Booleschen Operanden können die LD- und ST-Anweisungen durch N modifiziert werden, um eine Boolesche Negation auszuführen.

ST Sprache

Q := IN; (* kopiert IN in eine Variable Q *)
Q := (IN1 + (IN2 / IN 3)) * IN4; (* das Ergebnis eines komplexen Ausdrucks zuweisen *)
result := SIN (angle); (* einer Variablen das Ergebnis einer Funktion zuweisen *)
time := MyTon.ET; (* einer Variablen den Outputparameter eines Funktionsbausteins zuweisen *)

FBD Sprache

LD Sprache

Die Kopie erfolgt nur dann, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IN (* das aktuelle Ergebnis ist: IN *)
ST Q (* Q ist: IN *)
LDN IN1 (* das aktuelle Ergebnis ist: NOT (IN1) *)
ST Q (* Q ist: NOT (IN1) *)
LD IN2 (* das aktuelle Ergebnis ist: IN2 *)
STN Q (* Q ist: NOT (IN2) *)

seealso See also

Klammern


Zugriff auf Bits einer Integer Variable

Programmiersprachen - Referenzen -> Basisoperationen -> Zugriff auf Bits einer Integer Variable

Previous chapter Next chapter Show all Show all Hide all Hide all

Die Bits einer Integer Variable können unter Verwendung der folgenden Notation direkt gelesen oder beschrieben werden:

Variable.BitNo

Beschreibung:

Variable: ist der Name einer Integer Variable
BitNo: ist die Nummer eines Bits in der Integer Variable

Die Variable kann von einem der folgenden Datentypen sein:

SINT, USINT, BYTE (8 Bits von .0 bis .7)
INT, UINT, WORD (16 Bits von .0 bis .15)
DINT, UDINT, DWORD (32 Bits von .0 bis 31)
LINT (Bits von .0 bis .63)

0 ist immer das niederwertigste Bit.


Eine Funktion aufrufen

Programmiersprachen - Referenzen -> Basisoperationen -> Eine Funktion aufrufen

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionen errechnen ein Ergebnis gemäss der aktuellen Werte ihrer Inputs. Im Gegensatz zu den Funktionsblöcken besitzen Funktionen keine internen Daten und sind nicht mit deklarierten Instanzen verknüpft. Funktionen haben nur einen Output: ihr Ergebnis. Als Funktionen kommen in Frage:

  • Standard-Funktionen (SHL, SIN...).
  • In der "C"-Sprache geschriebene und in das Zielsystem eingebettete Funktionen.

ST Sprache

Um eine Funktion im ST aufzurufen, gibt man ihren Namen ein und nachfolgend ihre in Klammern geschriebenen und durch Kommas getrennten Inputparameter. Ein Funktionsaufruf kann in einen beliebigen komplexen Ausdruck eingefügt werden. Ein Funktionsaufruf kann als Inputparameter einer anderen Funktion benutzt werden. Das folgende Beispiel veranschaulicht einen Aufruf der ODD und SEL Funktionen:

Example Example

(* die folgende Anweisung konvertiert einen beliebigen ungeraden ganzzahligen Wert in den nächsten geraden ganzzahligen Wert *)
iEvenVal := SEL ( ODD( iValue ), iValue, iValue+1 );

FBD und LD Sprachen

Um eine Funktion in der FBD oder LD Sprache aufzurufen, fügt man die Funktion einfach in das Diagramm ein und verbindet ihre Input- und Outputparameter.

IL Sprache

Um eine Funktion in der IL Sprache aufzurufen, wird ihr erster Inputparameter vor dem Aufruf geladen, dann wird der Name der Funktion - gefolgt von den anderen, durch Kommas getrennten Inputparametern - als Anweisung benutzt. Das Ergebnis der Funktion steht im aktuellen Ergebnis. Das folgende Beispiel veranschaulicht einen Aufruf der ODD und SEL Funktionen:

Example Example

(* die folgende Anweisung konvertiert einen beliebigen ungeraden ganzzahligen Wert in "0" *)
Op1: LD iValue
ODD
SEL iValue, 0
ST iResult


Einen Funktionsbaustein aufrufen

Programmiersprachen - Referenzen -> Basisoperationen -> Einen Funktionsbaustein aufrufen

Previous chapter Next chapter Show all Show all Hide all Hide all

CAL CALC CALNC CALCN

Funktionsbausteine (FB) beinhalten Algorithmen und einen Satz privater Daten. Sie besitzen Inputs und Outputs. Als Funktionsbausteine kommen in Frage:

  • Standard-Funktionsbausteine (RS, TON...).
  • In der "C"-Sprache geschriebene und in das Zielsystem eingebettete Bausteine.
  • Benutzerdefinierte, in ST, FBD, LD oder IL geschriebene Funktionsbausteine (UDFB).

Um einen Funktionsbaustein benutzen zu können, muss man zuerst eine Instanz des Bausteins als Variable deklarieren, die durch einen einmaligen Namen gekennzeichnet wird. Jede Instanz eines Funktionsbausteins besitzt ihren eigenen Satz privater Daten und kann getrennt aufgerufen werden. Der Aufruf einer Funktionsbaustein-Instanz verarbeitet den Algorithmus des Bausteins auf den privaten Daten der Instanz unter Verwendung der spezifizierten Inputparameter.

ST Sprache

Um einen Funktionsbaustein im ST aufzurufen, gibt man den Namen der Instanz ein und nachfolgend ihre in Klammern geschriebenen und durch Kommas getrennten Inputparameter. Um auf einen Outputparameter zuzugreifen, benutzt man den Namen der Instanz gefolgt von einem Punkt "." und den Namen des betreffenden Parameters. Das folgende Beispiel veranschaulicht einen Aufruf einer Instanz des Funktionsbausteins TON:

Example Example

(* MyTimer ist als Instanz des Bausteins TON deklariert *)
MyTimer (bTrig, t#2s); (* Aufruf des Funktionsbausteins *)
TimerOutput := MyTimer.Q;
ElapsedTime := MyTimer.ET;

FBD und LD Sprachen

Um einen Funktionsbaustein in der FBD oder LD Sprache aufzurufen, fügt man den Baustein einfach in das Diagramm ein und verbindet seine Inputs und Outputs. Der Name der Instanz muss über das Baustein-Rechteck geschrieben werden.

IL Sprache

Um einen Funktionsbaustein in der IL Sprache aufzurufen, benutzt man die CAL Anweisung und die deklarierte Instanz des Funktionsbausteins. Der Name der Instanz ist der Operand der CAL Anweisung, gefolgt von den in Klammern geschriebenen und durch Kommas getrennten Inputparametern. Es können auch die bedingten Anweisungen CALC, CALCN oder CALNC benutzt werden:

CAL Aufruf des Funktionsbausteins.
CALC Aufruf des Funktionsbausteins wenn das aktuelle Ergebnis TRUE ist.
CALNC Aufruf des Funktionsbausteins wenn das aktuelle Ergebnis FALSE ist.
CALCN wie CALNC.

Das folgende Beispiel veranschaulicht einen Aufruf einer Instanz des Funktionsbausteins TON:

Example Example

(* MyTimer ist als Instanz des Bausteins TON deklariert *)
Op1: CAL MyTimer (bTrig, t#2s)
LD MyTimer.Q
ST TimerOutput
LD MyTimer.ET
ST ElapsedTimer

Op2: LD bCond
CALC MyTimer (bTrig, t#2s) (* wird nur aufgerufen, wenn bCond TRUE ist *)
Op3: LD bCond
CALNC MyTimer (bTrig, t#2s) (* wird nur aufgerufen, wenn bCond FALSE ist *)


Aufruf eines Unterprogramms

Programmiersprachen - Referenzen -> Basisoperationen -> Aufruf eines Unterprogramms

Previous chapter Next chapter Show all Show all Hide all Hide all

Ein Unterprogramm wird von einem anderen Programm aufgerufen. Anders als bei Funktionsblöcken werden Variablen von Unterprogrammen nicht instanziert, somit müssen auch kein Instanzen deklariert werden. Ein Aufruf eines Unterprogramms geschieht durch die Übergabe der spezifischen Eingabeparameter. Danach kann auf die Ausgabeparameter zugegriffen werden.

ST Sprache

Um ein Unterprogramm in ST aufzurufen muss der Name gefolgt von den Eingabeparametern in runden Klammern und getrennt durch Kommas angegeben werden. Für den Zugriff auf einen Ausgabeparameter verwenden Sie den Namen gefolgt von einem Punkt "." und dem Namen des gewünschten Ausgabeparameters:

MySubProg (i1, i2); (* ruft das Unterprogramm auf *)
Res1 := MySubProg.Q1;
Res2 := MySubProg.Q2;

Wenn ein Unterprogramm nur einen Ausgabeparameter hat, kann es alternativ wie eine Funktion in ST Sprache aufgerufen werden:

Res := MySubProg (i1, i2);

FBD und LD Sprache

Um ein Unterprogramm in FBD oder LD Sprache aufzurufen muss nur der Block in das Diagramm eingefügt und die Eingänge und Ausgänge verbunden werden.

IL Sprache

In IL Sprache wird ein Unterprogramm mit der Anweisung CAL und dem Namen des Unterprogramms gefolgt von den Eingabeparametern in runden Klammern getrennt durch Kommas aufgerufen. Alternativ dazu können die bedingten Anweisungen CALC, CALCN oder CALNC verwendet werden:

CAL Ruft das Unterprogramm auf.
CALC Ruft das Unterprogramm auf, wenn das aktuelle Resultat TRUE ist.
CALNC Ruft das Unterprogramm auf, wenn das aktuelle Resultat FALSE ist.
CALCN gleich wie CALNC.

Example Example

Op1: CAL MySubProg (i1, i2)
LD MySubProg.Q1
ST Res1
LD MySubProg.Q2
ST Res2


CASE OF ELSE END_CASE

Programmiersprachen - Referenzen -> Basisoperationen -> CASE OF ELSE END_CASE

Previous chapter Next chapter Show all Show all Hide all Hide all

Anweisung - zwischen spezifizierten Anweisungen wechseln.

Syntax

CASE <DINT ausdruck> OF
<wert> :
<anweisungen>
<wert> , <wert> :
<anweisungen>;
<wert> .. <wert> :
<anweisungen>;
ELSE
<anweisungen>
END_CASE;

Anmerkungen

Alle angegebenen Werte entsprechen der Auswertung des DINT Ausdrucks und sind mögliche Fälle in der Ausführung der Anweisungen. Die nach dem Schlüsselwort ELSE spezifizierten Anweisungen werden ausgeführt, wenn der Ausdruck einen Wert annimmt, der nicht im Wechsel genannt wird. Bei jedem Fall muss entweder ein Wert oder eine Liste möglicher, durch Kommas (",") getrennter Werte, oder ein durch ein "min .. max" Interval bestimmter Wertebereich, spezifiziert werden. Vor und nach dem Trennzeichen ".." müssen Leerzeichen eingefügt werden.

ST Sprache

Example Example

Dieses Beispiel prüft erste Primzahlen.

CASE iNumber OF
0 :
Alarm := TRUE;
AlarmText := '0 gives no result';
1 .. 3, 5 :
bPrime := TRUE;
4, 6 :
bPrime := FALSE;
ELSE
Alarm := TRUE;
AlarmText := 'I don't know after 6 !';
END_CASE;

FBD Sprache

Nicht verfügbar.

LD Sprache

Nicht verfügbar.

IL Sprache

Nicht verfügbar.

seealso See also

IF WHILE REPEAT FOR EXIT


CountOf

Programmiersprachen - Referenzen -> Basisoperationen -> CountOf

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Gibt die Anzahl von Elementen eines Arrays zurück

Inputs

ARR : ANY Deklarierter Array.

Outputs

Q : DINT Gesamtanzahl der Elemente des Arrays.

Anmerkungen

Der Eingang muss ein Array sein und kann von jedem Datentyp sein. Mit dieser Funktion kann ein direktes Eintragen der Array-Größe im Programm vermieden werden. Damit wird das Programm von der Variablendeklaration unabhängig gehalten.

Example Example

FOR i := 1 TO CountOf (MyArray) DO
MyArray[i-1] := 0;
END_FOR;

In der LD Sprache wird die Funktion nur ausgeführt wenn der Input Rung (EN) TRUE ist. Der Output Rung (ENO) behält den selben Wert wie der Input Rung.

Example Example
Array | Ergebnis
Arr1 [ 0..9 ] | 10
Arr2 [ 0..4 , 0..9 ] | 50

ST Sprache

Q := CountOf (ARR);

FBD Sprache

LD Sprache

Die Funktion wird nur ausgeführt wenn EN TRUE ist.
ENO behält den selben Wert wie EN.

IL Sprache

Nicht verfügbar.


DEC

Programmiersprachen - Referenzen -> Basisoperationen -> DEC

Funktion - Dekrementiert den Wert einer numerische Variable.

Inputs

IN : ANY Numerische Variable (dekrementiert nach dem Aufruf).

Outputs

Q : ANY Dekrementierter Wert.

Anmerkungen

Bei Aufruf dieser Funktion wird die auf IN verbundene Variable dekrementiert und auf Q kopiert. Es werden alle Datentypen außer BOOL und STRING unterstützt: für diese Datentypen wird der Wert von IN auf Q kopiert.

REAL Werte werden um 1.0 reduziert. TIME Werte werden um 1ms reduziert.

Der IN Eingang muss direkt mit einer Variable verbunden sein und darf nicht eine Konstante oder ein komplexer Ausdruck sein.

Diese Funktion ist speziell für die ST Sprache entwickelt. Es ist die vereinfachte Schreibweise erlaubt aber nicht zwingend.

ST Sprache

IN := 2;
Q := DEC (IN);
(* jetzt: IN = 1 ; Q = 1 *)

DEC (IN); (* einfacher Aufruf *)

FBD Sprache

LD Sprache

IL Sprache

Nicht verfügbar.


EXIT

Programmiersprachen - Referenzen -> Basisoperationen -> EXIT

Anweisung - Beendet eine als Schleife ausgeführte Anweisung.

Anmerkungen

Die EXIT-Anweisung beendet die aktuelle Schleife (WHILE, REPEAT oder FOR). Die Ausführung wird nach dem Schlüsselwort END_WHILE, END_REPEAT oder END_FOR oder der Schleife, wo sich das EXIT befindet, fortgesetzt. EXIT beendet nur eine Schleife und kann nicht dazu benutzt werden, mehrere verschachtelte Schleifen auf verschiedenen Ebenen zu beenden.

attention Attention

Wiederholungsanweisungen können zu unendlichen Schleifen führen und den Zielsystemzyklus blockieren.

ST Sprache

Dieses Programm sucht das erste Element ungleich null eines Felds (array).

iFound = -1; (* bedeutet: nicht gefunden *)
FOR iPos := 0 TO (iArrayDim - 1) DO
IF iPos <> 0 THEN
iFound := iPos;
EXIT;
END_IF;
END_FOR;

FBD Sprache

Nicht verfügbar.

LD Sprache

Nicht verfügbar.

IL Sprache

Nicht verfügbar.

seealso See also

IF WHILE REPEAT FOR CASE


FOR TO BY END_FOR

Programmiersprachen - Referenzen -> Basisoperationen -> FOR TO BY END_FOR

Previous chapter Next chapter Show all Show all Hide all Hide all

Anweisung - Wiederholung der Anweisungsausführung.

Syntax

FOR <index> := <minimum> TO <maximum> BY <step> DO
<statements>
END_FOR;

index = DINT interne Variable, die als Index benutzt wird.
minimum = DINT Ausdruck: Initialwert für index.
maximum = DINT Ausdruck: zugelassener Maximalwert für index.
step = DINT Ausdruck: schrittweise Erhöhung von index nach jeder Wiederholung (Vorgabe ist 1).

Anmerkungen

Die BY <step> Anweisung kann weggelassen werden. Der Vorgabewert für den Schritt ist 1.

ST Sprache

iArrayDim := 10;

(* setzt alle Elemente des Felds auf 0 zurück *)
FOR iPos := 0 TO (iArrayDim - 1) DO
MyArray[iPos] := 0;
END_FOR;

(* setzt alle Elemente mit ungeradem Index auf 1 *)
FOR iPos := 1 TO 9 BY 2 DO
MyArray[ipos] := 1;
END_FOR;

FBD Sprache

Nicht verfügbar.

LD Sprache

Nicht verfügbar.

IL Sprache

Nicht verfügbar.

seealso See also

IF WHILE REPEAT CASE EXIT


IF THEN ELSE ELSIF END_IF

Programmiersprachen - Referenzen -> Basisoperationen -> IF THEN ELSE ELSIF END_IF

Previous chapter Next chapter Show all Show all Hide all Hide all

Anweisung - Bedingte Ausführung von Anweisungen.

Syntax

IF <BOOL expression> THEN
<statements>
ELSIF <BOOL expression> THEN
<statements>
ELSE
<statements>
END_IF;

Anmerkungen

Die IF Anweisung ist nur im ST verfügbar. Die Ausführung der Anweisungen ist bedingt durch einen Booleschen Ausdruck. Die ELSIF und ELSE Anweisungen sind optionell. Es können mehrere ELSIF Anweisungen benutzt werden.

ST Sprache

(* einfache Bedingung *)
IF bCond THEN
Q1 := IN1;
Q2 := TRUE;
END_IF;

(* binäre Selektion *)
IF bCond THEN
Q1 := IN1;
Q2 := TRUE;
ELSE
Q1 := IN2;
Q2 := FALSE;
END_IF;

(* aufeinanderfolgende Bedingungen *)
IF bCond1 THEN
Q1 := IN1;
ELSIF bCond2 THEN
Q1 := IN2;
ELSIF bCond3 THEN
Q1 := IN3;
ELSE
Q1 := IN4;
END_IF;

FBD Sprache

Nicht verfügbar.

LD Sprache

Nicht verfügbar.

IL Sprache

Nicht verfügbar.

seealso See also

WHILE REPEAT FOR CASE EXIT


INC

Programmiersprachen - Referenzen -> Basisoperationen -> INC

Funktion - Inkrementiert einen numerischen Wert.

Inputs

IN : ANY Numerische Variable (inkrementiert nach Aufruf).

Outputs

Q : ANY Inkrementierter Wert.

Anmerkungen

Bei Aufruf dieser Funktion wird die auf IN verbundene Variable inkrementiert und auf Q kopiert. Es werden alle Datentypen außer BOOL und STRING unterstützt: für diese Datentypen wird der Wert von IN auf Q kopiert.

REAL Werte werden um 1.0 erhöht. TIME Werte werden um 1ms erhöht.

Der IN Eingang muss direkt mit einer Variable verbunden sein und darf nicht eine Konstanten oder ein komplexen Ausdruck sein.

Diese Funktion ist speziell für die ST Sprache entwickelt. Es ist die vereinfachte Schreibweise erlaubt aber nicht zwingend.

ST Sprache

IN := 1;
Q := INC (IN);
(* jetzt: IN = 2 ; Q = 2 *)

INC (IN); (* einfacher Aufruf *)

FBD Sprache

LD Sprache

IL Sprache

Nicht verfügbar.


Sprünge JMP JMPC JMPNC JMPCN

Programmiersprachen - Referenzen -> Basisoperationen -> Sprünge JMP JMPC JMPNC JMPCN

Previous chapter Next chapter Show all Show all Hide all Hide all

Anweisung - Sprung zu einem Label.

Anmerkungen

Ein Sprung zu einem Label leitet die Programmausführung zu einem spezifizierten Label um. Die Programmausführung wird nach dem Label fortgesetzt. Labels und Sprünge können nicht im Strukturierten Text (ST Sprache) benutzt werden. In der FBD Sprache wird ein Sprung durch das >> Symbol, gefolgt vom Namen des Labels, dargestellt. Der Input des >> Symbols muss an ein gültiges Boolesches Signal angeschlossen werden. Der Sprung wird nur dann ausgeführt, wenn der Input TRUE ist. In der LD Sprache wird das >> Symbol, gefolgt vom Namen des Labels, als eine Spule am Ende eines Rung benutzt. Der Sprung wird nur dann ausgeführt, wenn der Rung-Status TRUE ist. In der IL Sprache werden die Anweisungen JMP, JMPC, JMPCN und JMPNC benutzt, um einen Sprung auszuführen. Das Ziel-Label ist der Operand der Sprunganweisung.

attention Attention

Rückwärtssprünge können zu unendlichen Schleifen führen, die den Zielsystemzyklus blockieren.

ST Sprache

Nicht verfügbar.

FBD Sprache

In diesem Beispiel wird der TON Baustein nicht aufgerufen, wenn bEnable TRUE ist.

Example Example

LD Sprache

In diesem Beispiel wird das zweite Rung übersprungen, wenn IN1 TRUE ist.

Example Example

IL Sprache

Es folgen die Bedeutungen der möglichen Sprunganweisungen:
JMP Unbedingter Sprung (wird immer ausgeführt).
JMPC Sprung, wenn das aktuelle Ergebnis TRUE ist.
JMPNC Sprung, wenn das aktuelle Ergebnis FALSE ist.
JMPCN Gleichbedeutend zu JMPNC.

Start: LD IN1
JMPC TheRest (* Sprung zu "TheRest", wenn IN1 TRUE ist *)

LD IN2 (* diese drei Anweisungen werden nicht ausgeführt *)
ST Q2 (* wenn IN1 TRUE ist *)
JMP TheEnd (* unbedingter Sprung zu "TheEnd" *)

TheRest: LD IN3
ST Q3
TheEnd:

seealso See also

Labels RETURN


Labels

Programmiersprachen - Referenzen -> Basisoperationen -> Labels

Previous chapter Next chapter Show all Show all Hide all Hide all

Anweisung - Ziel einer Sprunganweisung.

Anmerkungen

Labels werden in den Sprachen FDB, LD und IL als Ziele für Sprunganweisungen benutzt. Labels und Sprünge können aber nicht im Strukturierten Text (ST Sprache) verwendet werden. Ein Label wird mit einem einmaligen Namen gekennzeichnet, auf den ein Doppelpunkt (":") folgt. In der FBD Sprache können Labels an beliebigen Stellen im Diagramm eingefügt werden und sind mit keinen Elementen verknüpft. In der LD Sprache muss das Label ein Rung kennzeichnen und erscheint auf der linken Seite des Rung. In der IL Sprache werden Labels als Ziele für die Anweisungen JMP, JMPC, JMPCN und JMPNC benutzt. Sie werden zu Beginn der Zeile vor die Anweisung geschrieben und sollten den Anfang einer gültigen IL Anweisung indexieren: LD-Anweisung (load) oder unbedingte Anweisungen wie CAL, JMP oder RET. Das Label kann auch allein auf einer Zeile stehen, vor der indexierten Anweisung. Labels brauchen nicht unbedingt Ziele für Sprunganweisungen sein (gilt für alle Sprachen). Sie können auch als Markierungen bestimmter Programmabschnitte benutzt werden, um die Leserlichkeit von Programmen zu steigern.

ST Sprache

Nicht verfügbar.

FBD Sprache

In diesem Beispiel wird der TON Baustein nicht aufgerufen, wenn bEnable TRUE ist.

Example Example

LD Sprache

In diesem Beispiel wird das zweite Rung übersprungen, wenn IN1 TRUE ist.

Example Example

IL Language

Start: LD IN1 (* unbenutzes Label - nur zur Verbesserung der Leserlichkeit *)
JMPC TheRest (* Sprung zu "TheRest", wenn IN1 TRUE ist *)

LD IN2 (* diese beiden Anweisungen werden nicht ausgeführt *)
ST Q2 (* wenn IN1 TRUE ist*)

TheRest: LD IN3 (* Label, das als Ziel für die Sprunganweisung benutzt wird *)
ST Q3

seealso See also

Jumps RETURN


MOVEBLOCK

Programmiersprachen - Referenzen -> Basisoperationen -> MOVEBLOCK

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Verschiebt/kopiert Inhalte eines Arrays.

Inputs

SRC : ANY (*) Array welcher die Quelle der Kopie enthält.
DST : ANY (*) Array welcher das Ziel der Kopie enthält.
PosSRC : DINT Index des ersten Array Elements in SRC.
PosDST : DINT Index des Ziels in DST.
NB : DINT Anzahl der Teile die kopiert werden sollen.

(*) DST und SRC dürfen keine STRING Variablen sein.

Outputs

OK : BOOL TRUE wenn Vorgang erfolgreich durchgeführt wurde.

Anmerkungen

Arrays von Strings werden von dieser Funktion nicht unterstützt.

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Die Funktion ist in IL Sprache nicht verfügbar.

Die Funktion kopiert NB hintereinanderfolgende Elemente, beginnend am Index PosSRC im SRC Array nach PosDST des DST Arrays. SRC und DST können der selbe Array sein. In diesem Fall vermeidet die Funktion Verluste von Teilen wenn sich die Quelle und das Ziel überschneiden.

Die Funktion überprüft Arraygrenzen und ist somit immer sicher (Überläufe werden überwacht). Die Funktion liefert ein TRUE am Ausgang wenn der Vorgang erfolgreich durchgeführt wurde. Der Ausgang ist FALSE wenn Position und Anzahl nicht mit der Verknüpfung der SRC und DST Arrays übereinstimmen.

ST Sprache

OK := MOVEBLOCK (SRC, DST, PosSRS, PosDST, NB);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.

IL Sprache

Nicht verfügbar.


Parenthesis ( )

Programmiersprachen - Referenzen -> Basisoperationen -> Parenthesis ( )

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - forciert die Berechnungsordnung in einem komplexen Ausdruck.

Anmerkungen

In der ST und IL Sprache werden Klammern benutzt, um die vorgegebene Berechnungsordnung verschiedener Operationen innerhalb eines komplexen Ausdrucks zu modifizieren. Zum Beispiel ist das Ergebnis des Ausdrucks "2 * 3 + 4" in der vorgegebenen Berechnungsordnung der ST Sprache 10, da der Operator "*" die höchste Priorität hat. Wenn wir den Ausdruck so schreiben: "2 * ( 3 + 4 )" erhalten wir 14. Klammern können in komplexen Ausdrücken verschachtelt werden.

Es folgt die vorgegebene Berechnungsordnung für ST-Operationen (die erste hat höchste Priorität):

Einstellige Operatoren: - NOT
Multiplikation/Division: * /
Addition/Subtraktion: + -
Vergleiche: < > <= >= = <>
Boolesches UND: & AND
Boolesches ODER: OR
Exklusiv-ODER: XOR

In der IL Sprache ist die vorgegebene Ordnung die Anweisungsfolge. Jede neue Anweisung modifiziert das aktuelle Ergebnis sequentiell. In der IL Sprache wird das Zeichen Klammer auf "(" zwischen die Anweisung und ihren Operand geschrieben. Das Zeichen Klammer zu ")" muss allein geschrieben werden, als eine Anweisung ohne Operand.

ST Sprache

Q := (IN1 + (IN2 / IN 3)) * IN4;

FBD Sprache

Nicht verfügbar.

LD Sprache

Nicht verfügbar.

IL Sprache

Op1: LD( IN1
ADD( IN2
MUL IN3
)
SUB IN4
)
ST Q (* Q ist: (IN1 + (IN2 * IN3) - IN4) *)

seealso See also

Zuweisung


REPEAT UNTIL END_REPEAT

Programmiersprachen - Referenzen -> Basisoperationen -> REPEAT UNTIL END_REPEAT

Previous chapter Next chapter Show all Show all Hide all Hide all

Anweisung - Eine Liste von Anweisungen wiederholen.

Syntax

REPEAT
<statements>
UNTIL <BOOL expression> END_REPEAT;

Anmerkungen

Die Anweisungen zwischen REPEAT und UNTIL werden ausgeführt, bis der Boolesche Ausdruck TRUE ist. Die Bedingung wird nach der Ausführung der Anweisungen bewertet. Die Anweisungen werden mindestens einmal ausgeführt.

attention Attention

Loop-Anweisungen können zu unendlichen Schleifen führen und den Zielsystemzyklus blockieren. Testen Sie nie den Zustand eines Inputs in der Bedingung, das der Input erst im nächsten Zyklus aktualisiert wird.

ST Sprache

iPos := 0;
REPEAT
MyArray[iPos] := 0;
iNbCleared := iNbCleared + 1;
iPos := iPos + 1;
UNTIL iPos = iMax END_REPEAT;

FBD Sprache

Nicht verfügbar.

LD Sprache

Nicht verfügbar.

IL Sprache

Nicht verfügbar.

seealso See also

IF WHILE FOR CASE EXIT


RETURN RET RETC RETNC RETCN

Programmiersprachen - Referenzen -> Basisoperationen -> RETURN RET RETC RETNC RETCN

Previous chapter Next chapter Show all Show all Hide all Hide all

Anweisung - Sprung zum Programmende.

Anmerkungen

Die RETURN Anweisung springt zum Programmende. In der FBD Sprache wird die Return-Anweisung durch das "<RETURN>" Symbol dargestellt. Der Input des Symbols muss mit einem gültigen Booleschen Signal verbunden werden. Der Sprung wird nur dann ausgeführt, wenn der Input TRUE ist. In der LD Sprache wird das "<RETURN>" Symbol als Spule am Ende eines Rung benutzt. Der Sprung wird nur dann ausgeführt, wenn der Rung-Status TRUE ist. In der IL Sprache werden die Anweisungen RET, RETC, RETCN und RETNC benutzt.

Wenn die RETURN Anweisung im Aktionsblock eines SFC-Schritts benutzt wird, dann springt sie zum Ende des Aktionsblocks.

ST Sprache

IF NOT bEnable THEN
RETURN;
END_IF;
(* das restliche Programm wird nicht ausgeführt,
wenn bEnabled FALSE ist *)

FBD Sprache

Example Example

In diesem Beispiel wird der TON Baustein nicht aufgerufen, wenn bIgnore TRUE ist.

LD Sprache

Example Example

In diesem Beispiel wird das zweite Rung übersprungen, wenn ENABLE FALSE ist.

IL Sprache

Es folgen die Bedeutungen der möglichen Anweisungen:
RET Immer zum Ende springen.
RETC Zum Ende springen, wenn das aktuelle Ergebnis TRUE ist.
RETNC Zum Ende springen, wenn das aktuelle Ergebnis FALSE ist.
RETCN Wie RETNC.

Start: LD IN1
RETC (* Sprung zum Ende, wenn IN1 TRUE ist *)

LD IN2 (* diese Anweisungen werden nicht ausgeführt,*)
ST Q2 (* wenn IN1 TRUE ist *)
RET (* unbedingter Sprung zum Ende *)

LD IN3 (* diese Anweisungen werden nie ausgeführt *)
ST Q3

seealso See also

Labels Jumps


WHILE DO END_WHILE

Programmiersprachen - Referenzen -> Basisoperationen -> WHILE DO END_WHILE

Previous chapter Next chapter Show all Show all Hide all Hide all

Anweisung - Eine Liste von Anweisungen wiederholen.

Syntax

WHILE <BOOL expression> DO
<statements>
END_WHILE ;

Anmerkungen

Die Anweisungen zwischen DO und END_WHILE werden nur dann ausgeführt, wenn der Boolesche Ausdruck TRUE ist. Die Bedingung wird vor der Ausführung der Anweisungen bewertet. Falls die Bedingung FALSE ist, wenn WHILE erreicht wird, werden die Anweisungen nie ausgeführt.

attention Attention

Loop-Anweisungen können zu unendlichen Schleifen führen und den Zielsystemzyklus blockieren. Testen Sie nie den Zustand eines Inputs in der Bedingung, da der Input erst im nächsten Zyklus aktualisiert wird.

ST Sprache

iPos := 0;
WHILE iPos < iMax DO
MyArray[iPos] := 0;
iNbCleared := iNbCleared + 1;
END_WHILE;

FBD Sprache

Nicht verfügbar.

LD Sprache

Nicht verfügbar.

IL Sprache

Nicht verfügbar.

seealso See also

IF REPEAT FOR CASE EXIT


ON

Programmiersprachen - Referenzen -> Basisoperationen -> ON

Anweisung - Bedingte Ausführung von Anweisungen.

Syntax

ON <BOOL Ausdruck> DO
<Anweisungen>
END_DO;

Anmerkungen

Anweisungen innerhalb der ON Strukture werden nur ausgeführt wenn sich der boolesche Ausdruck von FALSE auf TURE ändert. Die ON Anweisunge vermeidet die Verwendung des R_TRIG Funktionsblocks oder ander "Last State" Flags.

ON steht in allen Programmen, Unterprogrammen und UDFBs zur Verfügung. Die Anweisung steht für Win-GRAF PAC P-Code und Nativ-Code Kompilierung zur Verfügung.

Diese Anweisung ist eine Erweiterung und ist nicht IEC 61131-3 konform.

ST Sprache

(* Dieses Beispiel zählt die steigenden Flanken der Variable bIN *)
ON bIN DO
diCount := diCount + 1;
END_DO;


WAIT / WAIT_TIME

Programmiersprachen - Referenzen -> Basisoperationen -> WAIT / WAIT_TIME

Previous chapter Next chapter Show all Show all Hide all Hide all

Anweisung - Unterbricht die Ausführung eines ST Programms.

Syntax

WAIT <BOOL Ausdruck> ;

WAIT_TIME <TIME Ausdruck> ;

Anmerkungen

Die WAIT Anweisung überprüft den zugehörigen booleschen Ausdruck und macht das folgende:

- Ist der Ausdruck TRUE, wird das Programm normal fortgeführt.

- Ist der Ausdruck FALSE, wird die Programmausführung bis zum nächsten SPS Zyklus unterbrochen. Der boolesche Ausdruck wird im folgenden Zyklus erneut überprüft bis er TRUE wird. Die Ausführung von anderen Programmen ist davon nicht betroffen.

Die WAIT_TIME Anweisung unterbricht die Ausführung des Programms für eine festgelegte Zeitdauer. Die Ausführung von anderen Programmen ist davon nicht betroffen.

Diese Anweisungen sind nur in der ST Sprache verfügbar und haben keine Entsprechung in anderen Programmiersprachen. Diese Anweisungen können in einem User Defined Function Blocks (UDFB) nicht verwendet werden. Die Verwendung von WAIT oder WAIT_TIME in einem UDFB führen zu einem Compiler-Fehler.

WAIT und WAIT_TIME Anweisungen können in einem Unterprogramm verwendet werden. Dies kann aber zu gefährlichen Situationen führen wenn das selbe Unterprogramm von verschiedenen Programmen aufgerufen wird. Erneuter Aufruf (Eintrittsinvarianz) wird von WAIT und WAIT_TIME Anweisungen nicht unterstützt. Die Vermeidung solcher Situationen liegt in der Varantwortung des Progarmmierers. Der Compiler gibt Warnungen aus wenn ein Unterprogramm, welches WAIT oder WAIT_TIME Anweisungen enthält, von mehr als einem Programm aufgerufen wird.

Diese Anweisungen sollten nicht in ST Programmen eines SFC Programms verwendet werden. Dies ist nicht sinnvoll, da SFC bereits eine State-Machine darstellt. Die Verwendung von WAIT oder WAIT_TIME in einem SFC Programm oder in einem Unterprogramm welches von einem SFC Programm aufgerufen wird, führt zu einer Compiler Fehlermeldung.

Diese Anweisungen stehen nicht zur Verfügung wenn der Code mit einem "C" Postcompiler kompiliert wird. Die "C" Code Generierung mit einem Programm, welches eine WAIT oder WAIT_TIME Anweisung enthält, führt zu einer Fehlermedlung des Postcompilers.

Diese Anweisung ist eine Erweiterung und ist nicht IEC 61131-3 konform.

ST Sprache

(* Verwendung von WAIT mit unterschiedlichen booleschen Ausdrücken*)
WAIT BoolVariable;
WAIT (diLevel > 100) AND NOT bAlarm;

WAIT SubProgCall ();

(* Verwendung von WAIT_TIME mit unterschiedlichen TIME Ausdrücken *)
WAIT_TIME t#2s;
WAIT_TIME TimeVariable;


Boolesche Operationen

Programmiersprachen - Referenzen -> Boolesche Operationen

Im Folgenden sind die booleschen standard-Operatoren aufgelistet:

Operator | Beschreibung
AND OR XOR NOT S R QOR | Boolesches UND Boolesches ODER Boolesches Exklusiv-ODER Boolesche Negation Setzt einen Booleschen Output auf TRUE Setzt einen Booleschen Output auf FALSE Qualified OR

Im Folgenden sind die booleschen Funktionsbausteine aufgelistet:

Baustein | Beschreibung
RS SR R_TRIG F_TRIG SEMA FLIPFLOP | Dominant bistabil rücksetzen (reset) Dominant bistabil setzen (set) Steigende Flankenerkennung Fallende Flankenerkennung Semaphore Bistabiles Flipflop

Noch in diesem Kapitel

AND ANDN &

FLIPFLOP

F_TRIG

NOT

OR ORN

R

RS

R_TRIG

S

SEMA

SR

XOR XORN

QOR


AND ANDN &

Programmiersprachen - Referenzen -> Boolesche Operationen -> AND ANDN &

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Führt ein logisches AND sämtlicher Inputs aus.

Inputs

IN1 : BOOL Erster Boolescher Input.
IN2 : BOOL Zweiter Boolescher Input.

Outputs

Q : BOOL Boolesches AND aller Inputs.

Truth-Tabelle

IN1 | IN2 | Q
0 | 0 | 0
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1

Anmerkungen

In der FBD Sprache kann der Baustein bis zu 16 Eingänge haben. In der FBD Sprache heisst der Baustein "&". In der LD Sprache wird die UND-Operation durch serialisierte Kontakte dargestellt. In der IL Sprache führt die AND-Anweisung ein logisches UND zwischen dem aktuellen Ergebnis und dem Operanden aus. Das aktuelle Ergebnis muss Boolesch sein. Die ANDN-Anweisung führt ein UND zwischen dem aktuellen Ergebnis und der Booleschen Negation des Operanden aus. In den ST und IL Sprachen kann "&" anstatt "AND" benutzt werden.

ST Sprache

Q := IN1 AND IN2;
Q := IN1 & IN2 & IN3;

FBD Sprache

Der Baustein kann bis zu 16 Inputs haben.

LD Sprache

Serialisierte Kontakte.

IL Sprache

Op1: LD IN1
& IN2 (* "&" oder "AND" kann benutzt werden *)
ST Q (* Q ist gleich: IN1 AND IN2 *)
Op2: LD IN1
AND IN2
&N IN3 (* "&N" oder "ANDN" kann benutzt werden *)
ST Q (* Q ist gleich: IN1 AND IN2 AND (NOT IN3) *)

seealso See also

OR XOR NOT


FLIPFLOP

Programmiersprachen - Referenzen -> Boolesche Operationen -> FLIPFLOP

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsbaustein - Bi-stabiles Flipflop.

Inputs

IN : BOOL Trigger Befehl (bei steigender Flanke).
RST : BOOL Reset.

Outputs

Q : BOOL Ausgang.

Anmerkungen

Der Ausgang wird auf FALSE gesetzt wenn RST TRUE ist.
Der Ausgang wechselt mit jeder steigenden Flanke des IN Eingangs, wenn RST FALSE ist.

ST Sprache

MyFlipFlop ist eine deklarierte Instanz des Funktionsbausteins FLIPFLOP.

MyFlipFlop (IN, RST);
Q := MyFlipFlop.Q;

FBD Sprache

LD Sprache

Der IN Befehl ist der Input Rung - der Output Rung ist der Ausgang.

IL Sprache

MyFlipFlop ist eine deklarierte Instanz des Funktionsblocks FLIPFLOP.

Op1: CAL MyFlipFlop (IN, RST)
LD MyFlipFlop.Q
ST Q1

seealso See also

R S SR


F_TRIG

Programmiersprachen - Referenzen -> Boolesche Operationen -> F_TRIG

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - Fallende Impulserkennung.

Inputs

CLK : BOOL Boolesches Signal.

Outputs

Q : BOOL TRUE, wenn der Input von TRUE auf FALSE übergeht.

Wahrheits-Tabelle

CLK | CLK prev | Q
0 | 0 | 0
0 | 1 | 1
1 | 0 | 0
1 | 1 | 0

Anmerkungen

Obwohl ]P[ und ]N[ Kontakte in der LD Sprache benutzt werden können, wird empfohlen, deklarierte Instanzen der Funktionsblöcke R_TRIG oder F_TRIG zu benutzen, um Ungenauigkeiten bei Online Change zu vermeiden.

ST Sprache

MyTrigger ist eine deklarierte Instanz des Funktionsblocks F_TRIG.

MyTrigger (CLK);
Q := MyTrigger.Q;

FBD Sprache

LD Sprache

Das Eingangssignal ist das Rung - das Rung ist der Output.

IL Sprache

MyTrigger ist eine deklarierte Instanz des Funktionsblocks F_TRIG.

Op1: CAL MyTrigger (CLK)
LD MyTrigger.Q
ST Q

seealso See also

R_TRIG


NOT

Programmiersprachen - Referenzen -> Boolesche Operationen -> NOT

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Führt eine Boolesche Negation des Inputs aus.

Inputs

IN : BOOL Boolescher Wert.

Outputs

Q : BOOL Boolesche Negation des Inputs.

Truth-Tabelle

IN | Q
0 | 1
1 | 0

Anmerkungen

In der FBD Sprache kann der NOT-Baustein benutzt werden. Als Alternative wird eine Verbindung benutzt, die in einer o Negation endet. In der LD Sprache können invertierte Kontakte und Spulen benutzt werden. In der IL Sprache kann der Modifizierer "N" mit den Anweisungen LD, AND, OR, XOR und ST benutzt werden. Er stellt die Negation des Operanden dar. In der ST Sprache kann ein komplexer Boolescher Ausdruck in Klammern auf NOT folgen.

ST Sprache

Q := NOT IN;
Q := NOT (IN1 OR IN2);

FBD Sprache

Explizierter Gebrauch des NOT-Bausteins.

Gebrauch einer invertierten Verbindung: Q ist IN1 AND NOT IN2.

LD Sprache

Invertierter Kontakt: Q ist: IN1 AND NOT IN2.

Invertierte Spule: Q ist NOT (IN1 AND IN2).

IL Sprache

Op1: LDN IN1
OR IN2
ST Q (* Q ist gleich: (NOT IN1) OR IN2 *)
Op2: LD IN1
AND IN2
STN Q (* Q ist gleich: NOT (IN1 AND IN2) *)

seealso See also

AND OR XOR


OR ORN

Programmiersprachen - Referenzen -> Boolesche Operationen -> OR ORN

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Führt ein logisches ODER sämtlicher Inputs aus.

Inputs

IN1 : BOOL Erster Boolescher Input.
IN2 : BOOL Zweiter Boolescher Input.

Outputs

Q : BOOL Boolesches ODER aller Inputs.

Truth-Tabelle

IN1 | IN2 | Q
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 1

Anmerkungen

In der FBD Sprache kann der Baustein bis zu 16 Eingänge haben. In der FBD Sprache heisst der Baustein >=1. In der LD Sprache wird die ODER-Operation durch parallele Kontakte dargestellt. In der IL Sprache führt die OR-Anweisung ein logisches ODER zwischen dem aktuellen Ergebnis und dem Operanden aus. Das aktuelle Ergebnis muss Boolesch sein. Die ORN-Anweisung führt ein ODER zwischen dem aktuellen Ergebnis und der Booleschen Negation des Operanden aus.

ST Sprache

Q := IN1 OR IN2;
Q := IN1 OR IN2 OR IN3;

FBD Language

Der Baustein kann bis zu 16 Inputs haben.

LD Sprache

Parallele Kontakte.

IL Sprache

Op1: LD IN1
OR IN2
ST Q (* Q ist gleich: IN1 OR IN2 *)
Op2: LD IN1
ORN IN2
ST Q (* Q is equal to: IN1 OR (NOT IN2) *)

seealso See also

AND XOR NOT


R

Programmiersprachen - Referenzen -> Boolesche Operationen -> R

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Forciert einen Booleschen Output zu FALSE.

Inputs

RESET : BOOL Bedingung.

Outputs

Q : BOOL zu forcierender Output.

Truth-Tabelle

RESET | Q prev | Q
0 | 0 | 0
0 | 1 | 1
1 | 0 | 0
1 | 1 | 0

Anmerkungen

Die S und R Operatoren sind als Standard-Anweisungen in der IL Sprache verfügbar. In der LD Sprache werden sie als (S) und (R) Spulen dargestellt. In der FBD Sprache können (S) und (R) Spulen benutzt werden, es sollten jedoch die Funktionsbausteine RS und SR bevorzugt werden. Set und Reset Operationen sind nicht in der ST Sprache verfügbar.

ST Sprache

Nicht verfügbar.

FBD Sprache

Nicht verfügbar. Benutzen Sie die Funktionsbausteine RS oder SR.

LD Sprache

Gebrauch der "R"-Spule.

IL Sprache

Op1: LD RESET
R Q (* Q wird zu FALSE forciert, wenn RESET TRUE ist *)
(* Q bleibt unverändert, wenn RESET FALSE ist *)

seealso See also

S RS SR


RS

Programmiersprachen - Referenzen -> Boolesche Operationen -> RS

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - Reset dominant bistabil.

Inputs

SET : BOOL Bedingung für die Forcierung zu TRUE.
RESET1 : BOOL Bedingung für die Forcierung zu FALSE (höchste Priorität).

Outputs

Q1 : BOOL zu forcierender Output.

Truth-Tabelle

SET | RESET1 | Q1 prev | Q1
0 | 0 | 0 | 0
0 | 0 | 1 | 1
0 | 1 | 0 | 0
0 | 1 | 1 | 0
1 | 0 | 0 | 1
1 | 0 | 1 | 1
1 | 1 | 0 | 0
1 | 1 | 1 | 0

Anmerkungen

Der Output bleibt unverändert, wenn beide Inputs FALSE sind. Wenn beide Inputs TRUE sind, wird der Output zu FALSE forciert (reset dominant).

ST Sprache

MyRS ist eine deklarierte Instanz des Funktionsblocks RS.

MyRS (SET, RESET1);
Q1 := MyRS.Q1;

FBD Sprache

LD Sprache

Der Befehl SET ist das Rung - das Rung ist der Output.

IL Sprache

MyRS ist eine deklarierte Instanz des Funktionsblocks RS.

Op1: CAL MyRS (SET, RESET1)
LD MyRS.Q1
ST Q1

seealso See also

R S SR


R_TRIG

Programmiersprachen - Referenzen -> Boolesche Operationen -> R_TRIG

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - Steigende Impulserkennung.

Inputs

CLK : BOOL Boolesches Signal.

Outputs

Q : BOOL TRUE, wenn der Input von FALSE auf TRUE übergeht.

Wahrheits-Tabelle

CLK | CLK prev | Q
0 | 0 | 0
0 | 1 | 0
1 | 0 | 1
1 | 1 | 0

Anmerkungen

Obwohl ]P[ und ]N[ Kontakte in der LD Sprache benutzt werden können, wird empfohlen, deklarierte Instanzen der Funktionsblöcke R_TRIG oder F_TRIG zu benutzen, um Ungenauigkeiten bei Online Change zu vermeiden.

ST Sprache

MyTrigger ist eine deklarierte Instanz des Funktionsblocks R_TRIG.

MyTrigger (CLK);
Q := MyTrigger.Q;

FBD Sprache

LD Sprache

Das Eingangssignal ist das Rung - das Rung ist der Output.

IL Sprache

MyTrigger ist eine deklarierte Instanz des Funktionsblocks R_TRIG.

Op1: CAL MyTrigger (CLK)
LD MyTrigger.Q
ST Q

seealso See also

F_TRIG


S

Programmiersprachen - Referenzen -> Boolesche Operationen -> S

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Forciert einen Booleschen Output zu TRUE.

Inputs

SET : BOOL Bedingung.

Outputs

Q : BOOL zu forcierender Output.

Truth-Tabelle

SET | Q prev | Q
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 1

Anmerkungen

Die S und R Operatoren sind als Standard-Anweisungen in der IL Sprache verfügbar. In der LD Sprache werden sie als (S) und (R) Spulen dargestellt. In der FBD Sprache können (S) und (R) Spulen benutzt werden, es sollten jedoch die Funktionsbausteine RS und SR bevorzugt werden. Set und Reset Operationen sind nicht in der ST Sprache verfügbar.

ST Sprache

Nicht verfügbar.

FBD Sprache

Nicht verfügbar. Benutzen Sie die Funktionsbausteine RS oder SR.

LD Sprache

Gebrauch der S-Spule.

IL Sprache

Op1: LD SET
S Q (* Q wird zu TRUE forciert, wenn SET TRUE ist *)
(* Q bleibt unverändert, wenn SET FALSE ist *)

seealso See also

R RS SR


SEMA

Programmiersprachen - Referenzen -> Boolesche Operationen -> SEMA

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - Semaphore.

Inputs

CLAIM : BOOL Nimmt den Semaphore.
RELEASE : BOOL Gibt den Semaphore frei.

Outputs

BUSY : BOOL TRUE wenn Semaphore beschäftig ist.

Anmerkungen

Der Funktionsblock implementiert den folgenden Algorithmus:

BUSY := mem;
if CLAIM then
mem := TRUE;
else if RELEASE then
BUSY := FALSE;
mem := FALSE;
end_if;

In der LD Sprache ist der Input Rung der CLAIM Befehl. Der Output Rung ist das BUSY Output Signal.

ST Sprache

MySema ist eine deklarierte Instanz des SEMA Funktionsblocks.

MySema (CLAIM, RELEASE);
BUSY := MySema.BUSY;

FBD Sprache

LD Sprache

IL Sprache

MySema ist eine deklarierte Instanz des SEMA Funktionsblocks.

Op1: CAL MySema (CLAIM, RELEASE)
LD MySema.BUSY
ST BUSY

© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


SR

Programmiersprachen - Referenzen -> Boolesche Operationen -> SR

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - Set dominant bistabil.

Inputs

SET1 : BOOL Bedingung für die Forcierung zu TRUE (höchste Priorität).
RESET : BOOL Bedingung für die Forcierung zu FALSE.

Outputs

Q1 : BOOL zu forcierender Output.

Truth-Tabelle

SET1 | RESET | Q1 prev | Q1
0 | 0 | 0 | 0
0 | 0 | 1 | 1
0 | 1 | 0 | 0
0 | 1 | 1 | 0
1 | 0 | 0 | 1
1 | 0 | 1 | 1
1 | 1 | 0 | 1
1 | 1 | 1 | 1

Anmerkungen

Der Output bleibt unverändert, wenn beide Inputs FALSE sind. Wenn beide Inputs TRUE sind, wird der Output zu TRUE forciert (set dominant).

ST Sprache

MySR ist eine deklarierte Instanz des Funktionsblocks SR.

MySR (SET1, RESET);
Q1 := MySR.Q1;

FBD Sprache

LD Sprache

Der Befehl SET1 ist das Rung - das Rung ist der Output.

IL Sprache

MySR ist eine deklarierte Instanz des Funktionsblocks SR.

Op1: CAL MySR (SET1, RESET)
LD MySR.Q1
ST Q1

seealso See also

R S RS


XOR XORN

Programmiersprachen - Referenzen -> Boolesche Operationen -> XOR XORN

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Führt ein logisches Exklusiv-ODER sämtlicher Inputs aus.

Inputs

IN1 : BOOL Erster Boolescher Input.
IN2 : BOOL Zweiter Boolescher Input.

Outputs

Q : BOOL Exklusiv-ODER aller Inputs.

Truth-Tabelle

IN1 | IN2 | Q
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 0

Remarks

In der FBD Sprache und der LD Sprache heisst der Baustein =1. In der IL Sprache führt die XOR-Anweisung ein Exklusiv-ODER zwischen dem aktuellen Ergebnis und dem Operanden aus. Das aktuelle Ergebnis muss Boolesch sein. Die XORN-Anweisung führt ein Exklusiv-ODER zwischen dem aktuellen Ergebnis und der Booleschen Negation des Operanden aus.

ST Sprache

Q := IN1 XOR IN2;
Q := IN1 XOR IN2 XOR IN3;

FBD Sprache

LD Sprache

Der erste Input ist das Rung. Das Rung ist der Output.

IL Sprache

Op1: LD IN1
XOR IN2
ST Q (* Q ist gleich: IN1 XOR IN2 *)
Op2: LD IN1
XORN IN2
ST Q (* Q ist gleich: IN1 XOR (NOT IN2) *)

seealso See also

AND OR NOT


QOR

Programmiersprachen - Referenzen -> Boolesche Operationen -> QOR

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Zählt die Anzahl der TRUE-Eingänge.

Inputs

IN1 .. INn : BOOL Boolescher Inputs

Outputs

Q : DINT Anzahl der Eingänge die TRUE sind

Anmerkungen

Die Anzahl der Eingänge, die der Block akzeptiert, muss nicht fest definiert sein.

ST Sprache

Q := QOR (IN1, IN2);

Q := QOR (IN1, IN2, IN3, IN4, IN5, IN6);

FBD Sprache

LD Sprache

IL Sprache

Op1: LD IN1
QOR IN2, IN3
ST Q


Arithmetische Operationen

Programmiersprachen - Referenzen -> Arithmetische Operationen

Previous chapter Next chapter Show all Show all Hide all Hide all

Es folgen die Standard-Operatoren zur Ausführung arithmetischer Operationen:

Operator | Beschreibung
+ - * / - (NEG) | Addition Subtraktion Multiplikation Division ganzzahlige Negation (einstelliger Operator)

Es folgen die Standard-Funktionen zur Ausführung arithmetischer Operationen:

Funktion | Beschreibung
MIN MAX LIMIT MOD ODD SetWithin | liefert das Minimum von zwei Werten liefert das Maximum von zwei Werten begrenzt einen ganzzahligen Wert auf einen Bereich zwischen Höchst- und Tiefstwert Modulo testet, ob ein ganzzahliger Wert ungerade ist force a value when inside an interval

Noch in diesem Kapitel

+ ADD

/ DIV

NEG -

LIMIT

MAX

MIN

MOD / MODR / MODLR

* MUL

ODD

- SUB

SetWithin


+ ADD

Programmiersprachen - Referenzen -> Arithmetische Operationen -> + ADD

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Führt eine Addition sämtlicher Inputs aus.

Inputs

IN1 : ANY Erster Input.
IN2 : ANY Zweiter Input.

Outputs

Q : ANY Ergebnis: IN1 + IN2.

Anmerkungen

Alle Inputs und Outputs müssen vom gleichen Typ sein. In der FBD Sprache kann der Baustein bis zu 16 Inputs haben. In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung behält den gleichen Wert wie das Input-Rung. In der IL Sprache führt die ADD-Anweisung eine Addition zwischen dem aktuellen Ergebnis und dem Operanden aus. Das aktuelle Ergebnis und der Operand müssen vom gleichen Typ sein.

Die Addition kann für Strings (Zeichenfolgen) benutzt werden. Das Ergebnis ist die Verkettung der Input Strings.

ST Sprache

Q := IN1 + IN2;
MyString := 'He' + 'll ' + 'o'; (* MyString is gleich 'Hello' *)

FBD Sprache

Der Baustein kann bis zu 16 Inputs haben:

LD Sprache

Die Addition wird nur dann ausgeführt, wenn EN TRUE ist.
ENO ist gleich EN.

IL Sprache

Op1: LD IN1
ADD IN2
ST Q (* Q ist gleich: IN1 + IN2 *)
Op2: LD IN1
ADD IN2
ADD IN3
ST Q (* Q ist gleich: IN1 + IN2 + IN3 *)

seealso See also

- * /


/ DIV

Programmiersprachen - Referenzen -> Arithmetische Operationen -> / DIV

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Führt eine Division der Inputs aus.

Inputs

IN1 : ANY_NUM Erster Input.
IN2 : ANY_NUM Zweiter Input.

Outputs

Q : ANY_NUM Ergebnis: IN1 / IN2.

Anmerkungen

Alle Inputs und Outputs müssen vom gleichen Typ sein. In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung behält den gleichen Wert wie das Input-Rung. In der IL Sprache führt die DIV-Anweisung eine Division zwischen dem aktuellen Ergebnis und dem Operanden aus. Das aktuelle Ergebnis und der Operand müssen vom gleichen Typ sein.

ST Sprache

Q := IN1 / IN2;

FBD Sprache

LD Sprache

Die Division wird nur dann ausgeführt, wenn EN TRUE ist.
ENO ist gleich EN.

IL Sprache

Op1: LD IN1
DIV IN2
ST Q (* Q ist gleich: IN1 / IN2 *)
Op2: LD IN1
DIV IN2
DIV IN3
ST Q (* Q ist gleich: IN1 / IN2 / IN3 *)

seealso See also

+ - *


NEG -

Programmiersprachen - Referenzen -> Arithmetische Operationen -> NEG -

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Führt eine ganzzahlige Negation des Inputs aus.

Inputs

IN : DINT Ganzzahliger Wert.

Outputs

Q : DINT Ganzzahlige Negation des Inputs.

Truth-Tabelle (Beispiele)

IN | Q
0 | 0
1 | -1
-123 | 123

Anmerkungen

In der FBD Sprache und der LD Sprache kann der Baustein NEG benutzt werden. In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. Diese Funktionalität ist in der IL Sprache nicht verfügbar. In der ST Sprache kann ein komplexer Boolescher Ausdruck in Klammern auf "-" folgen.

ST Sprache

Q := -IN;
Q := - (IN1 + IN2);

FBD Sprache

LD Sprache

Die Negation wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Nicht verfügbar.


LIMIT

Programmiersprachen - Referenzen -> Arithmetische Operationen -> LIMIT

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Bindet einen ganzzahligen Wert zwischen Tiefst- und Höchstgrenzen.

Inputs

IMIN : DINT Tiefstgrenze.
IN : DINT Eingangswert.
IMAX : DINT Höchstgrenze.

Outputs

Q : DINT IMIN if IN < IMIN; IMAX if IN > IMAX; sonst IN.

Funktionsdiagramm

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung behält den Status des Input-Rung. In der IL Sprache muss der erste Eingang vor dem Aufruf der Funktion geladen werden. Die anderen Inputs sind durch ein Komma getrennte Operanden der Funktion.

ST Sprache

Q := LIMIT (IMIN, IN, IMAX);

FBD Sprache

LD Sprache

Der Vergleich wird nur ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IMIN
LIMIT IN, IMAX
ST Q

seealso See also

MIN MAX MOD ODD


MAX

Programmiersprachen - Referenzen -> Arithmetische Operationen -> MAX

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Ermittelt das Maximum von zwei Werten.

Inputs

IN1 : ANY Erster Input.
IN2 : ANY Zweiter Input.

Outputs

Q : ANY IN1 if IN1 > IN2; sonst IN2.

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung behält den Status des Input-Rung. In der IL Sprache muss der erste Eingang vor dem Aufruf der Funktion geladen werden. Der zweite Input ist der Operand der Funktion.

ST Sprache

Q := MAX (IN1, IN2);

FBD Sprache

LD Sprache

Der Vergleich wird nur ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IN1
MAX IN2
ST Q (* Q ist das Maximum von IN1 und IN2 *)

seealso See also

MIN LIMIT MOD ODD


MIN

Programmiersprachen - Referenzen -> Arithmetische Operationen -> MIN

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Ermittelt das Minimum von zwei Werten.

Inputs

IN1 : ANY Erster Input.
IN2 : ANY Zweiter Input.

Outputs

Q : ANY IN1 if IN1 < IN2; sonst IN2.

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung behält den Status des Input-Rung. In der IL Sprache muss der erste Eingang vor dem Aufruf der Funktion geladen werden. Der zweite Input ist der Operand der Funktion.

ST Sprache

Q := MIN (IN1, IN2);

FBD Sprache

LD Sprache

Der Vergleich wird nur ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IN1
MIN IN2
ST Q (* Q ist das Minimum von IN1 und IN2 *)

seealso See also

MAX LIMIT MOD ODD


MOD / MODR / MODLR

Programmiersprachen - Referenzen -> Arithmetische Operationen -> MOD / MODR / MODLR

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Modulo-Berechnung.

Inputs

IN : DINT/REAL/LREAL Eingangswert.
BASE : DINT/REAL/LREAL Basis des Modulo.

Outputs

Q : DINT/REAL/LREAL Modulo: Rest der ganzzahligen Division (IN / BASE).

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung behält den Status des Input-Rung. In der IL Sprache muss der erste Eingang vor dem Aufruf der Funktion geladen werden. Der zweite Input ist der Operand der Funktion.

ST Sprache

Q := MOD (IN, BASE);

FBD Sprache

LD Sprache

Der Vergleich wird nur ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
MOD BASE
ST Q (* Q ist der Rest der ganzzahligen Division: IN / BASE *)

seealso See also

MIN MAX LIMIT ODD


* MUL

Programmiersprachen - Referenzen -> Arithmetische Operationen -> * MUL

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Führt die Multiplikation sämtlicher Inputs aus.

Inputs

IN1 : ANY_NUM Erster Input.
IN2 : ANY_NUM Zweiter Input.

Outputs

Q : ANY_NUM Ergebnis: IN1 * IN2.

Anmerkungen

Alle Inputs und Outputs müssen vom gleichen Typ sein. In der FBD Sprache kann der Baustein bis zu 16 Inputs haben. In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung behält den gleichen Wert wie das Input-Rung. In der IL Sprache führt die MUL-Anweisung eine Multiplikation zwischen dem aktuellen Ergebnis und dem Operanden aus. Das aktuelle Ergebnis und der Operand müssen vom gleichen Typ sein.

ST Sprache

Q := IN1 * IN2;

FBD Sprache

Der Baustein kann bis zu 16 Inputs haben:

LD Sprache

Die Multiplikation wird nur dann ausgeführt, wenn EN TRUE ist.
ENO ist gleich EN.

IL Sprache

Op1: LD IN1
MUL IN2
ST Q (* Q ist gleich: IN1 * IN2 *)
Op2: LD IN1
MUL IN2
MUL IN3
ST Q (* Q ist gleich: IN1 * IN2 * IN3 *)

seealso See also

+ - /


ODD

Programmiersprachen - Referenzen -> Arithmetische Operationen -> ODD

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Testet, ob ein ganzzahliger Wert ungerade ist.

Inputs

IN : DINT Eingangswert.

Outputs

Q : BOOL TRUE, wenn IN ungerade ist. FALSE, wenn IN gerade ist.

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung ist das Ergebnis der Funktion. In der IL Sprache muss der Eingang vor dem Aufruf der Funktion geladen werden.

ST Sprache

Q := ODD (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur ausgeführt, wenn EN TRUE ist.

IL Sprache:

Op1: LD IN
ODD
ST Q (* Q ist TRUE, wenn IN ungerade ist *)

seealso See also

MIN MAX LIMIT MOD


- SUB

Programmiersprachen - Referenzen -> Arithmetische Operationen -> - SUB

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Führt eine Subtraktion der Inputs aus.

Inputs

IN1 : ANY_NUM / TIME Erster Input.
IN2 : ANY_NUM / TIME Zweiter Input.

Outputs

Q : ANY_NUM / TIME Ergebnis: IN1 - IN2.

Anmerkungen

Alle Inputs und Outputs müssen vom gleichen Typ sein. In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung behält den gleichen Wert wie das Input-Rung. In der IL Sprache führt die SUB-Anweisung eine Subtraktion zwischen dem aktuellen Ergebnis und dem Operanden aus. Das aktuelle Ergebnis und der Operand müssen vom gleichen Typ sein.

ST Sprache

Q := IN1 - IN2;

FBD Sprache

LD Sprache

Die Subtraktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO ist gleich EN.

IL Sprache

Op1: LD IN1
SUB IN2
ST Q (* Q ist gleich: IN1 - IN2 *)
Op2: LD IN1
SUB IN2
SUB IN3
ST Q (* Q ist gleich: IN1 - IN2 - IN3 *)

seealso See also

+ * /


SetWithin

Programmiersprachen - Referenzen -> Arithmetische Operationen -> SetWithin

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Einen Wert erzwingen, wenn sich ein anderer Wert innerhalb eines Intervalls befindet.

Inputs

IN : ANY Input
MIN : ANY Untere Intervallgrenze
MAX : ANY Obere Intervallgrenze
VAL : ANY Wert, der eingesetzt wird, wenn der andere Wert innerhalb des Intervalls ist.

Outputs

Q : BOOL Ergebnis

Wahrheitstabelle

IN | Q
IN < MIN | IN
IN > MAX | IN
MIN < IN < MAX | VAL

Anmerkungen

Der Ausgang nimmt den Wert VAL an, wenn sich der Wert IN im Intervall [MIN ... MAX] befindet. Wenn er sich außerhalb des Intervalls befindet, nimmt er den Wert IN an.


Vergleichsoperationen

Programmiersprachen - Referenzen -> Vergleichsoperationen

Es folgen die Standard-Operatoren und -Bausteine, mit denen Vergleiche durchgeführt werden:

Operator | Bedeutung
< > <= >= = <> CMP | kleiner als grösser als kleiner als oder gleich grösser als oder gleich gleich ungleich detaillierter Vergleich

Noch in diesem Kapitel

CMP

>= GE

> GT

= EQ

<> NE

<= LE

< LT


CMP

Programmiersprachen - Referenzen -> Vergleichsoperationen -> CMP

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - Vergleich mit detaillierten Outputs für ganzzahlige Inputs

Inputs

IN1 : DINT erster Wert.
IN2 : DINT zweiter Wert.

Outputs

LT : BOOL TRUE, wenn IN1 < IN2.
EQ : BOOL TRUE, wenn IN1 = IN2.
GT : BOOL TRUE, wenn IN1 > IN2.

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung ist das Ergebnis des LT-Vergleichs ("lower than" bzw. "kleiner als").

ST Sprache

MyCmp ist eine deklarierte Instanz des Funktionsblocks CMP.

MyCMP (IN1, IN2);
bLT := MyCmp.LT;
bEQ := MyCmp.EQ;
bGT := MyCmp.GT;

FBD Sprache

LD Sprache

Der Vergleich wird nur dann ausgeführt, wenn EN TRUE ist.

IL Sprache

MyCmp ist eine deklarierte Instanz des Funktionsblocks CMP.

Op1: CAL MyCmp (IN1, IN2)
LD MyCmp.LT
ST bLT
LD MyCmp.EQ
ST bEQ
LD MyCmp.GT
ST bGT

seealso See also

> < >= <= = <>


>= GE

Programmiersprachen - Referenzen -> Vergleichsoperationen -> >= GE

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Testet, ob der erste Input grösser als oder gleich dem zweiten Input ist.

Inputs

IN1 : ANY Erster Input.
IN2 : ANY Zweiter Input.

Outputs

Q : BOOL TRUE, wenn IN1 >= IN2.

Anmerkungen

Die beiden Inputs müssen vom gleichen Typ sein. In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung ist das Ergebnis das Vergleichs. In der IL Sprache führt die GE Anweisung den Vergleich zwischen dem aktuellen Ergebnis und dem Operanden aus. Das aktuelle Ergebnis und der Operand müssen vom gleichen Typ sein.

Vergleiche können auch für Zeichenfolgen (strings) benutzt werden. In diesem Fall ist die lexikalische Ordnung ausschlaggebend beim Vergleich der Input-Zeichenfolgen. Beispielsweise ist "ABC" kleiner als "ZX". "ABCD" ist grösser als "ABC".

ST Sprache

Q := IN1 >= IN2;

FBD Sprache

LD Sprache

Der Vergleich wird nur dann ausgeführt, wenn EN TRUE ist.

IL Sprache

Op1: LD IN1
GE IN2
ST Q (* Q ist true, wenn IN1 >= IN2 *)

seealso See also

> < <= = <> CMP


> GT

Programmiersprachen - Referenzen -> Vergleichsoperationen -> > GT

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Testet, ob der erste Input grösser als der zweite Input ist.

Inputs

IN1 : ANY Erster Input.
IN2 : ANY Zweiter Input.

Outputs

Q : BOOL TRUE, wenn IN1 > IN2.

Anmerkungen

Die beiden Inputs müssen vom gleichen Typ sein. In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung ist das Ergebnis das Vergleichs. In der IL Sprache führt die GT Anweisung den Vergleich zwischen dem aktuellen Ergebnis und dem Operanden aus. Das aktuelle Ergebnis und der Operand müssen vom gleichen Typ sein.

Vergleiche können auch für Zeichenfolgen (strings) benutzt werden. In diesem Fall ist die lexikalische Ordnung ausschlaggebend beim Vergleich der Input-Zeichenfolgen. Beispielsweise ist "ABC" kleiner als "ZX". "ABCD" ist grösser als "ABC".

ST Sprache

Q := IN1 > IN2;

FBD Sprache

LD Sprache

Der Vergleich wird nur dann ausgeführt, wenn EN TRUE ist.

IL Sprache

Op1: LD IN1
GT IN2
ST Q (* Q ist true, wenn IN1 > IN2 *)

seealso See also

< >= <= = <> CMP


= EQ

Programmiersprachen - Referenzen -> Vergleichsoperationen -> = EQ

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Testet, ob der erste Input gleich dem zweiten Input ist.

Inputs

IN1 : ANY Erster Input.
IN2 : ANY Zweiter Input.

Outputs

Q : BOOL TRUE, wenn IN1 = IN2.

Anmerkungen

Beide Inputs müssen vom gleichen Typ sein. In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung ist das Ergebnis des Vergleichs. In der IL Sprache führt EQ-Anweisung einen Vergleich zwischen dem aktuellen Ergebnis und dem Operanden aus. Das aktuelle Ergebnis und der Operand müssen vom gleichen Typ sein.

Vergleiche können mit Zeichenfolgen (Strings) benutzt werden. In diesem Fall wird die lexikalische Ordnung benutzt, um die Input-Zeichenfolgen zu vergleichen. Zum Beispiel ist "ABC" kleiner als "ZX" ; "ABCD" ist grösser als "ABC".

Vergleiche können nicht mit TIME-Variablen benutzt werden, weil Timer die Resolution des Zielsystemzyklus beinhalten und Tests unsicher sein können, da nicht immer alle Werte erreicht werden.

ST-Sprache

Q := IN1 = IN2;

FBS-Sprache

KOP-Sprache

Der Vergleich wird nur dann ausgeführt, wenn EN TRUE ist.

AWL-Sprache

Op1: LD IN1
EQ IN2
ST Q (* Q ist true, wenn IN1 = IN2 *)

seealso See also

> < >= <= <> CMP


<> NE

Programmiersprachen - Referenzen -> Vergleichsoperationen -> <> NE

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Feststellen, ob der erste Input ungleich dem zweiten Input ist.

Inputs

IN1 : ANY Erster Input.
IN2 : ANY Zweiter Input.

Outputs

Q : BOOL TRUE wenn IN1 ungleich IN2.

Anmerkungen

Beide Inputs müssen vom gleichen Datentyp sein. In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung ist das Ergebnis des Vergleichs. In der IL Sprache führt die NE Anweisung einen Vergleich zwischen dem aktuellen Ergebnis und dem Operanden aus. Das aktuelle Ergebnis und der Operand müssen vom gleichen Typ sein.

Vergleiche können mit Strings verwendet werden. In diesem Fall wird die lexikalische Ordnung benutzt, um die Input-Zeichenfolgen zu vergleichen. Zum Beispiel ist "ABC" kleiner als "ZX" ; "ABCD" ist grösser als "ABC".

Gleichheitsvergleiche können nicht mit TIME Variablen benutzt werden. Der Grund dafür ist, dass Timer die Resolution des Zielsystemzyklus haben und Tests unsicher sind, da manche Werte vielleicht nie erreicht werden.

ST Sprache

Q := IN1 <> IN2;

FBD Sprache

LD Sprache

Der Vergleich wird nur dann ausgeführt wenn EN TRUE ist:

IL Sprache

Op1: LD IN1
NE IN2
ST Q (* Q ist true wenn IN1 ungleich IN2 ist*)

seealso See also

> < >= <= = CMP


<= LE

Programmiersprachen - Referenzen -> Vergleichsoperationen -> <= LE

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Feststellen, ob der erste Input kleiner oder gleich dem zweiten Input ist.

Inputs

IN1 : ANY Erster Input.
IN2 : ANY Zweiter Input.

Outputs

Q : BOOL TRUE wenn IN1 <= IN2.

Anmerkungen

Beide Inputs müssen vom gleichen Datentyp sein. In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung ist das Ergebnis des Vergleichs. In der IL Sprache führt die LE Anweisung einen Vergleich zwischen dem aktuellen Ergebnis und dem Operanden aus. Das aktuelle Ergebnis und der Operand müssen vom gleichen Typ sein.

Vergleiche können mit Strings verwendet werden. In diesem Fall wird die lexikalische Ordnung benutzt, um die Input-Zeichenfolgen zu vergleichen. Zum Beispiel ist "ABC" kleiner als "ZX" ; "ABCD" ist grösser als "ABC".

ST Sprache

Q := IN1 <= IN2;

FBD Sprache

LD Sprache

Der Vergleich wird nur dann ausgeführt wenn EN TRUE ist:

IL Sprache

Op1: LD IN1
LE IN2
ST Q (* Q ist true wenn IN1 <= IN2 *)

seealso See also

> < >= = <> CMP


< LT

Programmiersprachen - Referenzen -> Vergleichsoperationen -> < LT

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Feststellen, ob der erste Input kleiner als der zweite Input ist.

Inputs

IN1 : ANY Erster Input.
IN2 : ANY Zweiter Input.

Outputs

Q : BOOL TRUE wenn IN1 < IN2.

Anmerkungen

Beide Inputs müssen vom gleichen Datentyp sein. In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung ist das Ergebnis des Vergleichs. In der IL Sprache führt die LT Anweisung einen Vergleich zwischen dem aktuellen Ergebnis und dem Operanden aus. Das aktuelle Ergebnis und der Operand müssen vom gleichen Typ sein.

Vergleiche können mit Strings verwendet werden. In diesem Fall wird die lexikalische Ordnung benutzt, um die Input-Zeichenfolgen zu vergleichen. Zum Beispiel ist "ABC" kleiner als "ZX" ; "ABCD" ist grösser als "ABC".

ST Sprache

Q := IN1 < IN2;

FBD Sprache

LD Sprache

Der Vergleich wird nur dann ausgeführt wenn EN TRUE ist:

IL Sprache

Op1: LD IN1
LT IN2
ST Q (* Q ist true wenn IN1 < IN2 *)

seealso See also

> >= <= = <> CMP


Typumrechnungsfunktionen

Programmiersprachen - Referenzen -> Typumrechnungsfunktionen

Es folgen die Standardfunktionen für die Umrechnung von Daten in einen anderen Datentyp:

Funktion | Umwandlung
ANY_TO_BOOL ANY_TO_SINT ANY_TO_INT ANY_TO_DINT ANY_TO_LINT ANY_TO_REAL ANY_TO_LREAL ANY_TO_TIME ANY_TO_STRING NUM_TO_STRING | Umrechnung zu Boolesch Umrechnung zu einem kurzen ganzzahligen Wert (8 Bits) Umrechnung zu ganzzahlig (16 Bits) Umrechnung zu ganzzahlig (32 Bits - Default) Umrechnung zu einem langen ganzzahligen Wert (64 Bits) Umrechnung zu Real Umrechnung zu Real mit doppelter Präzision Umrechnung zu Timer Umrechnung zu Zeichenfolge Umrechnung zu Zeichenfolge

Es folgen die Standardfunktionen für die Umrechnung zum BCD Format (*):

Funktion | Umwandlung
BIN_TO_BCD BCD_TO_BIN | Rechnet einen binären Wert zu einem DCB-Wert um. Rechnet einen BCD-Wert zu einem binären Wert um.

(*) BCD-Umrechnungsfunktionen werden von manchen Zielsystemen nicht unterstützt.

Noch in diesem Kapitel

ANY_TO_BOOL

ANY_TO_DINT / ANY_TO_UDINT

ANY_TO_INT / ANY_TO_UINT

ANY_TO_LINT

ANY_TO_LREAL

ANY_TO_REAL

ANY_TO_TIME

ANY_TO_SINT / ANY_TO_USINT

ANY_TO_STRING

NUM_TO_STRING

BCD_TO_BIN

BIN_TO_BCD


ANY_TO_BOOL

Programmiersprachen - Referenzen -> Typumrechnungsfunktionen -> ANY_TO_BOOL

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Rechnet den Input in einen Booleschen Wert um.

Inputs

IN : ANY Eingangswert.

Outputs

Q : BOOL zu Boolesch umgerechneter Wert.

Anmerkungen

Bei Inputs der Datentypen DINT, REAL und TIME ist das Ergebnis FALSE, wenn der Eingang 0 ist. In allen anderen Fällen ist das Ergebnis TRUE. Bei Inputs vom Typ STRING ist der Ausgang TRUE, wenn die eingegebene Zeichenfolge nicht leer ist, und FALSE, wenn die Zeichenfolge leer ist. In der LD Sprache findet die Umrechnung nur dann statt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung ist das Ergebnis der Umrechnung. In der IL Sprache rechnet die ANY_TO_BOOL Funktion das aktuelle Ergebnis um.

ST Sprache

Q := ANY_TO_BOOL (IN);

FBD Sprache

LD Sprache

Die Umrechnung wird ausgeführt, wenn EN TRUE ist.
Das Output-Rung ist das Ergebnis der Umrechnung.
Das Output-Rung ist FALSE, wenn EN FALSE ist.

IL Sprache

Op1: LD IN
ANY_TO_BOOL
ST Q

seealso See also

ANY_TO_SINT ANY_TO_INT ANY_TO_DINT ANY_TO_LINT ANY_TO_REAL ANY_TO_LREAL ANY_TO_TIME ANY_TO_STRING


ANY_TO_DINT / ANY_TO_UDINT

Programmiersprachen - Referenzen -> Typumrechnungsfunktionen -> ANY_TO_DINT / ANY_TO_UDINT

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Rechnet den Input in einen ganzzahligen Wert um.

Inputs

IN : ANY Eingangswert.

Outputs

Q : DINT Zu ganzzahlig umgerechneter Wert.

Anmerkungen

Bei Inputs vom Datentyp BOOL ist der Output 0 oder 1. Bei Inputs vom Datentyp REAL ist der Output der ganzzahlige Teil des realen Inputs. Bei Inputs vom Datentyp TIME ist das Ergebnis die Anzahl an Millisekunden. Bei Inputs vom Datentyp STRING ist der Output die von der Zeichenfolge dargestellte Zahl oder 0, wenn die Zeichenfolge keine gültige Zahl enthält. In der LD Sprache wird die Umrechnung nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache rechnet die ANY_TO_DINT Funktion das aktuelle Ergebnis um.

ST Sprache

Q := ANY_TO_DINT (IN);

FBD Sprache

LD Sprache

Die Umrechnung wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ANY_TO_DINT
ST Q

seealso See also

ANY_TO_BOOL ANY_TO_SINT ANY_TO_INT ANY_TO_LINT ANY_TO_REAL ANY_TO_LREAL ANY_TO_TIME ANY_TO_STRING


ANY_TO_INT / ANY_TO_UINT

Programmiersprachen - Referenzen -> Typumrechnungsfunktionen -> ANY_TO_INT / ANY_TO_UINT

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Rechnet den Input in einen ganzzahligen 16 bit Wert um.

Inputs

IN : ANY Eingangswert.

Outputs

Q : INT Wert umgerechnet zu einer 16 bit Ganzzahl.

Anmerkungen

Bei Inputs vom Datentyp BOOL ist der Output 0 oder 1. Bei Inputs vom Datentyp REAL ist der Output der ganzzahlige Teil des realen Inputs. Bei Inputs vom Datentyp TIME ist das Ergebnis die Anzahl an Millisekunden. Bei Inputs vom Datentyp STRING ist der Output die von der Zeichenfolge dargestellte Zahl oder 0, wenn die Zeichenfolge keine gültige Zahl enthält. In der LD Sprache wird die Umrechnung nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache rechnet die ANY_TO_INT Funktion das aktuelle Ergebnis um.

ST Sprache

Q := ANY_TO_INT (IN);

FBD Sprache

LD Sprache

Die Umrechnung wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ANY_TO_INT
ST Q

seealso See also

ANY_TO_BOOL ANY_TO_SINT ANY_TO_DINT ANY_TO_LINT ANY_TO_REAL ANY_TO_LREAL ANY_TO_TIME ANY_TO_STRING


ANY_TO_LINT

Programmiersprachen - Referenzen -> Typumrechnungsfunktionen -> ANY_TO_LINT

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Rechnet den Input zu einem langen ganzzahligen Wert (64 bits) um.

Inputs

IN : ANY Eingangswert.

Outputs

Q : LINT Zu einer langen Ganzzahl (64 bits) umgerechneter Wert.

Anmerkungen

Bei Inputs vom Datentyp BOOL ist der Output 0 oder 1. Bei Inputs vom Datentyp REAL ist der Output der ganzzahlige Teil des realen Inputs. Bei Inputs vom Datentyp TIME ist das Ergebnis die Anzahl an Millisekunden. Bei Inputs vom Datentyp STRING ist der Output die von der Zeichenfolge dargestellte Zahl oder 0, wenn die Zeichenfolge keine gültige Zahl enthält. In der LD Sprache wird die Umrechnung nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache rechnet die ANY_TO_LINT Funktion das aktuelle Ergebnis um.

ST Sprache

Q := ANY_TO_LINT (IN);

FBD Sprache

LD Sprache

Die Umrechnung wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ANY_TO_LINT
ST Q

seealso See also

ANY_TO_BOOL ANY_TO_SINT ANY_TO_INT ANY_TO_DINT ANY_TO_REAL ANY_TO_LREAL ANY_TO_TIME ANY_TO_STRING


ANY_TO_LREAL

Programmiersprachen - Referenzen -> Typumrechnungsfunktionen -> ANY_TO_LREAL

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Rechnet den Input zu einem realen Wert mit doppelter Präzision um.

Inputs

IN : ANY Eingangswert.

Outputs

Q : LREAL Zu einer Realzahl mit doppelter Präzision umgerechneter Wert.

Anmerkungen

Bei Inputs vom Datentyp BOOL ist der Output 0.0 oder 1.0. Bei Inputs vom Datentyp DINT ist der Output die gleiche Zahl. Bei Inputs vom Datentyp TIME ist das Ergebnis die Anzahl an Millisekunden. Bei Inputs vom Datentyp STRING ist der Output die von der Zeichenfolge dargestellte Zahl oder 0.0, wenn die Zeichenfolge keine gültige Zahl enthält. In der LD Sprache wird die Umrechnung nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache rechnet die ANY_TO_LREAL Funktion das aktuelle Ergebnis um.

ST Sprache

Q := ANY_TO_LREAL (IN);

FBD Sprache

LD Sprache

Die Umrechnung wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ANY_TO_LREAL
ST Q

seealso See also

ANY_TO_BOOL ANY_TO_SINT ANY_TO_INT ANY_TO_DINT ANY_TO_LINT ANY_TO_REAL ANY_TO_TIME ANY_TO_STRING


ANY_TO_REAL

Programmiersprachen - Referenzen -> Typumrechnungsfunktionen -> ANY_TO_REAL

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Rechnet den Input zu einem realen Wert um.

Inputs

IN : ANY Eingangswert.

Outputs

Q : REAL Zu real umgerechneter Wert.

Anmerkungen

Bei Inputs vom Datentyp BOOL ist der Output 0.0 oder 1.0. Bei Inputs vom Datentyp DINT ist der Output die gleiche Zahl. Bei Inputs vom Datentyp TIME ist das Ergebnis die Anzahl an Millisekunden. Bei Inputs vom Datentyp STRING ist der Output die von der Zeichenfolge dargestellte Zahl oder 0.0, wenn die Zeichenfolge keine gültige Zahl enthält. In der LD Sprache wird die Umrechnung nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache rechnet die ANY_TO_REAL Funktion das aktuelle Ergebnis um.

ST Sprache

Q := ANY_TO_REAL (IN);

FBD Sprache

LD Sprache

Die Umrechnung wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ANY_TO_REAL
ST Q

seealso See also

ANY_TO_BOOL ANY_TO_SINT ANY_TO_INT ANY_TO_DINT ANY_TO_LINT ANY_TO_LREAL ANY_TO_TIME ANY_TO_STRING


ANY_TO_TIME

Programmiersprachen - Referenzen -> Typumrechnungsfunktionen -> ANY_TO_TIME

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Rechnet den Input in einen Zeitwert um.

Inputs

IN : ANY Eingangswert.

Outputs

Q : TIME zu Zeitwert umgerechneter Wert.

Anmerkungen

Bei Inputs vom Datentyp BOOL ist der Output t#0ms oder t#1ms. Bei Inputs vom Datentyp DINT oder REAL ist der Output die Zeit, die vom Eingangswert als eine Anzahl von Millisekunden dargestellt wird. Bei Inputs vom Datentyp STRING ist der Output die von der Zeichenfolge dargestellte Zeit oder t#0ms, wenn die Zeichenfolge keine gültige Zeit darstellt. In der LD Sprache wird die Umrechnung nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Ausgangs-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache rechnet die ANY_TO_TIME Funktion das aktuelle Ergebnis um.

ST Sprache

Q := ANY_TO_TIME (IN);

FBD Sprache

LD Sprache

Die Umrechnung wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ANY_TO_TIME
ST Q

seealso See also

ANY_TO_BOOL ANY_TO_SINT ANY_TO_INT ANY_TO_DINT ANY_TO_LINT ANY_TO_REAL ANY_TO_LREAL ANY_TO_STRING


ANY_TO_SINT / ANY_TO_USINT

Programmiersprachen - Referenzen -> Typumrechnungsfunktionen -> ANY_TO_SINT / ANY_TO_USINT

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Rechnet den Input in einen kurzen ganzzahligen Wert (8 Bits) um.

Inputs

IN : ANY Eingangswert.

Outputs

Q : SINT Zu einer kurzen Ganzzahl (8 bits) umgerechneter Wert.

Anmerkungen

Bei Inputs vom Datentyp BOOL ist der Output 0 oder 1. Bei Inputs vom Datentyp REAL ist der Output der ganzzahlige Teil des realen Inputs. Bei Inputs vom Datentyp TIME ist das Ergebnis die Anzahl an Millisekunden. Bei Inputs vom Datentyp STRING ist der Output die von der Zeichenfolge dargestellte Zahl oder 0, wenn die Zeichenfolge keine gültige Zahl enthält. In der LD Sprache wird die Umrechnung nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache rechnet die ANY_TO_SINT Funktion das aktuelle Ergebnis um.

ST Sprache

Q := ANY_TO_SINT (IN);

FBD Sprache

LD Sprache

Die Umrechnung wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ANY_TO_SINT
ST Q

seealso See also

ANY_TO_BOOL ANY_TO_INT ANY_TO_DINT ANY_TO_LINT ANY_TO_REAL ANY_TO_LREAL ANY_TO_TIME ANY_TO_STRING


ANY_TO_STRING

Programmiersprachen - Referenzen -> Typumrechnungsfunktionen -> ANY_TO_STRING

Previous chapter Next chapter Show all Show all Hide all Hide all

Operator - Converts the input into string value.

Inputs

IN : ANY Input value.

Outputs

Q : STRING Value converted to string.

Remarks

For BOOL input data types, the output is 1 or 0 for TRUE and FALSE respectively. For DINT, REAL or TIME input data types, the output is the string representation of the input number. This is a number of milliseconds for TIME inputs. In LD language, the conversion is executed only if the input rung (EN) is TRUE. The output rung (ENO) keeps the same value as the input rung. In IL language, the ANY_TO_STRING function converts the current result.

ST Language

Q := ANY_TO_STRING (IN);

FBD Language

LD Language

The conversion is executed only if EN is TRUE.
ENO keeps the same value as EN.

IL Language

Op1: LD IN
ANY_TO_STRING
ST Q

seealso See also

ANY_TO_BOOL ANY_TO_SINT ANY_TO_INT ANY_TO_DINT ANY_TO_LINT ANY_TO_REAL ANY_TO_LREAL ANY_TO_TIME


NUM_TO_STRING

Programmiersprachen - Referenzen -> Typumrechnungsfunktionen -> NUM_TO_STRING

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Konvertiert eine Zahl in einen String-Wert.

Inputs

IN : ANY Eingabe Zahl.
WIDTH : DINT Gewünschte Länge für den Ausgabe String (siehe Anmerkungen)
DIGITS : DINT Anzahl der Stellen nach dem Dezimalpunkt

Outputs

Q : STRING Konvertierter String-Wert.

Anmerkungen

Diese Funktion konvertiert jeden numerischen Wert in einen String. Anders als die ANY_TO_STRING Funktion ist es hier möglich eine gewünschte Länge und Anzahl an Stellen nach dem Dezimalpunkt festzulegen.

Ist WIDTH 0, dann wird der String in mit der benötigten Länge formatiert.

Ist WIDTH größer als 0, dann wir der String mit führenden Leerzeichen aufgefüllt um dem Wert von WIDTH zu entsprechen.

Ist WIDTH kleiner als 0, dann wir der String mit nachfolgenden Leerzeichen aufgefüllt um dem Wert von WIDTH zu entsprechen.

Ist DIGITS gleich 0, wird weder der Dezimalteil noch der Dezimalpunkt angefügt.

Ist DIGITS größer als 0, wird die entesprechende Anzahl and Dezimalstellen angefügt. '0' Stellen werden wenn nötig angefügt.

Wenn der Wert zu lange für die spezifizierte Länge ist, dann wird der String mit '*' Zeichen ausgefüllt.

Beispiele

Q := NUM_TO_STRING (123.4, 8, 2); (* Q is ' 123.40' *)

Q := NUM_TO_STRING (123.4, -8, 2); (* Q is ' 123.40' *)

Q := NUM_TO_STRING (1,333333, 0, 2); (* Q is ' 1,33' *)

Q := NUM_TO_STRING (1234, 3, 0); (* Q is '***' *)


BCD_TO_BIN

Programmiersprachen - Referenzen -> Typumrechnungsfunktionen -> BCD_TO_BIN

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Umrechnung eines BCD (Binary Coded Decimal) Werts in einen binären Wert.

Inputs

IN : DINT Ganzzahliger Wert in BCD.

Outputs

Q : DINT zu ganzzahlig umgerechneter Wert.
oder 0, wenn IN kein gültiger positiver BCD-Wert ist.

Truth-Tabelle (Beispiele)

IN | Q
-2 | 0 (ungültig)
0 | 0
16 (16#10) | 10
15 (16#0F) | 0 (ungültig)

Anmerkungen

Der Input muss positiv sein und einen gültigen BCD-Wert darstellen. In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Input in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := BCD_TO_BIN (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
BCD_TO_BIN
ST Q

seealso See also

BIN_TO_BCD


BIN_TO_BCD

Programmiersprachen - Referenzen -> Typumrechnungsfunktionen -> BIN_TO_BCD

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Umrechnung eines binären Werts in einen BCD-Wert (Binary Coded Decimal).

Inputs

IN : DINT Ganzzahliger Wert.

Outputs

Q : DINT zu BCD umgerechneter Wert.
oder 0, wenn IN kleiner als 0 ist.

Truth-Tabelle (Beispiele)

IN | Q
-2 | 0 (ungültig)
0 | 0
10 | 16 (16#10)
22 | 34 (16#22)

Anmerkungen

Der Input muss positiv sein. In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Input in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := BIN_TO_BCD (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
BIN_TO_BCD
ST Q

seealso See also

BCD_TO_BIN


Selektoren

Programmiersprachen - Referenzen -> Selektoren

Es folgen die Standardfunktionen für die Datenselektion:

Funktion | Beschreibung
SEL MUX4 MUX8 | 2 ganzzahlige Inputs 4 ganzzahlige Inputs 8 ganzzahlige Inputs

Noch in diesem Kapitel

MUX4

MUX8

SEL


MUX4

Programmiersprachen - Referenzen -> Selektoren -> MUX4

Funktion - Wählt einen der Inputs - 4 Inputs.

Inputs

SELECT : DINT Selektionsbefehl.
IN1 : ANY Erster Input.
IN2 : ANY Zweiter Input.
... :
IN4 : ANY Letzter Input.

Outputs

Q : ANY IN1 oder IN2 ... oder IN4 abhängig von SELECT (siehe Truth-Tabelle).

Truth-Tabelle

SELECT | Q
0 | IN1
1 | IN2
2 | IN3
3 | IN4
andere | 0

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Selektion frei. Das Output-Rung (ENO) behält den gleichen Status wie das Input-Rung. In der IL Sprache muss der erste Parameter (Selektor) vor dem Aufruf der Funktion in das aktuelle Ergebnis geladen werden. Die anderen Inputs sind durch Kommas getrennte Operanden der Funktion.

ST Sprache

Q := MUX4 (SELECT, IN1, IN2, IN3, IN4);

FBD Sprache

LD Sprache

Die Selektion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD SELECT
MUX4 IN1, IN2, IN3, IN4
ST Q

seealso See also

SEL MUX8


MUX8

Programmiersprachen - Referenzen -> Selektoren -> MUX8

Funktion - Wählt einen der Inputs - 4 Inputs.

Inputs

SELECT : DINT Selektionsbefehl.
IN1 : ANY Erster Input.
IN2 : ANY Zweiter Input.
... :
IN8 : ANY Letzter Input.

Outputs

Q : ANY IN1 oder IN2 ... oder IN8 abhängig von SELECT (siehe Truth-Tabelle).

Truth-Tabelle

SELECT | Q
0 | IN1
1 | IN2
2 | IN3
3 | IN4
4 | IN5
5 | IN6
6 | IN7
7 | IN8
andere | 0

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Selektion frei. Das Output-Rung behält den gleichen Status wie das Input-Rung. In der IL Sprache muss der erste Parameter (Selektor) vor dem Aufruf der Funktion in das aktuelle Ergebnis geladen werden. Die anderen Inputs sind durch Kommas getrennte Operanden der Funktion.

ST Sprache

Q := MUX8 (SELECT, IN1, IN2, IN3, IN4, IN5, IN6, IN7, IN8);

FBD Sprache

LD Sprache

Die Selektion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD SELECT
MUX8 IN1, IN2, IN3, IN4, IN5, IN6, IN7, IN8
ST Q

seealso See also

SEL MUX4


SEL

Programmiersprachen - Referenzen -> Selektoren -> SEL

Funktion - Wählt einen der Inputs - 2 Inputs.

Inputs

SELECT : BOOL Selektionsbefehl.
IN0 : ANY Erster Input.
IN1 : ANY Zweiter Input.

Outputs

Q : ANY IN1, wenn SELECT FALSE ist; IN2, wenn SELECT TRUE ist.

Truth-Tabelle

SELECT | Q
0 | IN0
1 | IN1

Anmerkungen

In der LD Sprache ist der Selektionsbefehl das Input-Rung. Das Output-Rung behält den gleichen Status wie das Input-Rung. In der IL Sprache muss der erste Parameter (Selektor) vor dem Aufruf der Funktion in das aktuelle Ergebnis geladen werden. Die anderen Inputs sind durch Kommas getrennte Operanden der Funktion.

ST Sprache

Q := SEL (SELECT, IN0, IN1);

FBD Sprache

LD Sprache

Das Input-Rung ist der Selektor.
ENO hat den gleichen Wert wie SELECT.

IL Sprache

Op1: LD SELECT
SEL IN1, IN2
ST Q

seealso See also

MUX4 MUX8


Register

Programmiersprachen - Referenzen -> Register

Es folgen die Standard-Funktionen für die Verwaltung von 8-32 Bit Registern:

Funktion | Beschreibung
SHL SHR ROL ROR | Nach links verschieben. Nach rechts verschieben. Nach links rotieren. Nach rechts rotieren.

Es folgen erweiterte Funktionen zur Register-Manipulation:

Funktion | Beschreibung
MBShift | Multibyte verschieben / rotieren.

Die folgenden Funktionen ermöglichen bit-to-bit Operationen auf ganzzahligen Werten mit 8-32 Bits:

Funktion | Beschreibung
AND_MASK OR_MASK XOR_MASK NOT_MASK | Boolesches UND. Boolesches ODER. Exklusives ODER. Boolesche Negation.

Die folgenden Funktionen ermöglichen 8, 16 und 32 Bit Register zu zerlegen bzw. zusammenzuführen:

Funktion | Beschreibung
LOBYTE HIBYTE LOWORD HIWORD MAKEWORD MAKEDWORD PACK8 UNPACK8 SWAB | Niederwertigstes Byte eines Worts (Least significant byte - LSB) auslesen. Höherwertigstes Byte eines Worts (Most significant byte - MSB) auslesen. Niederwertigstes Wort eines Doppelworts (Least significant word - LSW) auslesen. Höherwertigstes Wort eines Doppelworts (Most significant word - MSW) auslesen. Verkettet zwei Bytes zu einem Wort. Verkettet zwei Wörter in ein Doppelwort. Erzeugt ein Byte aus Bits. Extrahiert Bits eines Bytes. Tauscht die Bytes eines Integers.

Die folgenden Funktionen ermöglichen Zugriff auf 8 bis 32 Bit Integer Variablen:

Funktion | Beschreibung
SETBIT TESTBIT | Setzt ein Bit in einem Integer Register. Testet ein Bit eines Integer Registers.

Die folgenden Funktionen bleiben aus Kompatibilitätsgründen erhalten. Bitte verwenden Sie aber wenn möglich die oben angeführten Funktionen:

AND_DINT, AND_UDINT, AND_DWORD, NOT_DINT, NOT_UDINT, NOT_DWORD
OR_DINT, OR_UDINT, OR_DWORD, XOR_DINT, XOR_UDINT, XOR_DWORD
AND_INT, AND_UINT, AND_WORD, NOT_INT, NOT_UINT, NOT_WORD
OR_INT, OR_UINT, OR_WORD, XOR_INT, XOR_UINT, XOR_WORD
AND_SINT, AND_USINT, AND_BYTE, NOT_SINT, NOT_USINT, NOT_BYTE
OR_SINT, OR_USINT, OR_BYTE, XOR_SINT, XOR_USINT, XOR_BYTE
rolw, rorw, shlw, shrw, rolb, rorb, shlb, shrb
ROL_DINT, ROR_DINT, SHL_DINT, SHR_DINT
ROL_UDINT, ROR_UDINT, SHL_UDINT, SHR_UDINT
ROL_DWORD, ROR_DWORD, SHL_DWORD, SHR_DWORD
ROL_INT, ROR_INT, SHL_INT, SHR_INT
ROL_UINT, ROR_UINT, SHL_UINT, SHR_UINT
ROL_WORD, ROR_WORD, SHL_WORD, SHR_WORD
ROL_SINT, ROR_SINT, SHL_SINT, SHR_SINT
ROL_USINT, ROR_USINT, SHL_USINT, SHR_USINT
ROL_BYTE, ROR_BYTE, SHL_BYTE, SHR_BYTE

Noch in diesem Kapitel

AND_MASK

HIBYTE

LOBYTE

HIWORD

LOWORD

MAKEDWORD

MAKEWORD

MBSHIFT

NOT_MASK

OR_MASK

PACK8

ROL

ROR

RORb / ROR_SINT / ROR_USINT / ROR_BYTE

RORw / ROR_INT / ROR_UINT / ROR_WORD

SETBIT

SHL

SHR

SWAB

TESTBIT

UNPACK8

XOR_MASK


AND_MASK

Programmiersprachen - Referenzen -> Register -> AND_MASK

Funktion - Führt ein bit to bit AND zwischen zwei ganzzahligen Werten aus.

Inputs

IN : ANY Erster Input.
MSK : ANY Zweiter Input (AND Mask).

Outputs

Q : ANY AND Mask zwischen den Inputs IN und MSK.

Anmerkungen

Als Parameter können Ganzahlenwerte mit und ohne Vorzeichen von 8 bis 32 Bit übergeben werden.

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der erste Parameter (IN) in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird. Der andere Input ist der Operand der Funktion.

ST Sprache

Q := AND_MASK (IN, MSK);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO ist gleich EN.

IL Sprache

Op1: LD IN
AND_MASK MSK
ST Q

seealso See also

OR_MASK XOR_MASK NOT_MASK


HIBYTE

Programmiersprachen - Referenzen -> Register -> HIBYTE

Funktion - Höherwertigstes Byte eines Worts (Most significant byte - MSB) auslesen.

Inputs

IN : UINT 16 Bit Register.

Outputs

Q : USINT Höherwertiges Byte (MSB).

Anmerkungen

In LD Sprache wird die Funktion nur ausgeführt wenn der Input Rung (EN) TRUE ist. Der Output Rung (ENO) hat den selben Wert wie der Input Rung. In der IL Sprache muss der Eingang geladen werden bevor die Funktion aufgerufen wird.

ST Sprache

Q := HIBYTE (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.

IL Sprache

Op1: LD IN
HIBYTE
ST Q

seealso See also

LOBYTE LOWORD HIWORD MAKEWORD MAKEDWORD


LOBYTE

Programmiersprachen - Referenzen -> Register -> LOBYTE

Funktion - Niederwertigstes Byte eines Worts (Least significant byte - LSB) auslesen.

Inputs

IN : UINT 16 bit Register.

Outputs

Q : USINT Niederwertigstes Byte (LSB).

Anmerkungen

In LD Sprache wird die Funktion nur ausgeführt wenn der Input Rung (EN) TRUE ist. Der Output Rung (ENO) hat den selben Wert wie der Input Rung. In der IL Sprache muss der Eingang geladen werden bevor die Funktion aufgerufen wird.

ST Sprache

Q := LOBYTE (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.

IL Sprache

Op1: LD IN
LOBYTE
ST Q

seealso See also

HIBYTE LOWORD HIWORD MAKEWORD MAKEDWORD


HIWORD

Programmiersprachen - Referenzen -> Register -> HIWORD

Funktion - Höherwertigstes Wort eines Doppelworts (Most significant word - MSW) auslesen.

Inputs

IN : UDINT 32 bit Register.

Outputs

Q : UINT Höherwertiges Wort (MSW).

Anmerkungen

In LD Sprache wird die Funktion nur ausgeführt wenn der Input Rung (EN) TRUE ist. Der Output Rung (ENO) hat den selben Wert wie der Input Rung. In der IL Sprache muss der Eingang geladen werden bevor die Funktion aufgerufen wird.

ST Sprache

Q := HIWORD (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.

IL Sprache

Op1: LD IN
HIWORD
ST Q

seealso See also

LOBYTE HIBYTE LOWORD MAKEWORD MAKEDWORD


LOWORD

Programmiersprachen - Referenzen -> Register -> LOWORD

Funktion - Niederwertigstes Wort eines Doppelworts (Least significant word - LSW) auslesen.

Inputs

IN : UDINT 32 bit Register.

Outputs

Q : UINT Niederwertigstes Wort (LSW).

Anmerkungen

In LD Sprache wird die Funktion nur ausgeführt wenn der Input Rung (EN) TRUE ist. Der Output Rung (ENO) hat den selben Wert wie der Input Rung. In der IL Sprache muss der Eingang geladen werden bevor die Funktion aufgerufen wird.

ST Sprache

Q := LOWORD (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.

IL Sprache

Op1: LD IN
LOWORD
ST Q

seealso See also

LOBYTE HIBYTE HIWORD MAKEWORD MAKEDWORD


MAKEDWORD

Programmiersprachen - Referenzen -> Register -> MAKEDWORD

Funktion - Verkettet zwei Wörter in ein Doppelwort.

Inputs

HI : UINT Höherwertigstes Wort (MSW).
LO : UINT Niederwertigstes Wort (LSW).

Outputs

Q : UDINT 32 bit Register.

Anmerkungen

In LD Sprache wird die Funktion nur ausgeführt wenn der Input Rung (EN) TRUE ist. Der Output Rung (ENO) hat den selben Wert wie der Input Rung. In der IL Sprache muss der Eingang geladen werden bevor die Funktion aufgerufen wird.

ST Sprache

Q := MAKEDWORD (HI, LO);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.

IL Sprache

Op1: LD HI
MAKEDWORD LO
ST Q

seealso See also

LOBYTE HIBYTE LOWORD HIWORD MAKEWORD

© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


MAKEWORD

Programmiersprachen - Referenzen -> Register -> MAKEWORD

Funktion - Verkettet zwei Bytes zu einem Wort.

Inputs

HI : USINT Höherwertiges Byte (MSB).
LO : USINT Niederwertiges Byte (LSB).

Outputs

Q : UINT 16 bit Register.

Anmerkungen

In LD Sprache wird die Funktion nur ausgeführt wenn der Input Rung (EN) TRUE ist. Der Output Rung (ENO) hat den selben Wert wie der Input Rung. In der IL Sprache muss der Eingang geladen werden bevor die Funktion aufgerufen wird.

ST Sprache

Q := MAKEWORD (HI, LO);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.

IL Sprache

Op1: LD HI
MAKEWORD LO
ST Q

seealso See also

LOBYTE HIBYTE LOWORD HIWORD MAKEDWORD


MBSHIFT

Programmiersprachen - Referenzen -> Register -> MBSHIFT

Funktion - Multibyte verschieben / rotieren.

Inputs

Buffer : SINT/USINT Array von Bytes.
Pos : DINT Grundposition im Array.
NbByte : DINT Anzahl der Bytes, die verschoben/rotiert werden.
NbShift : DINT Anzahl der Verschiebungen oder Rotationen.
ToRight : BOOL TRUE für rechts / FALSE für links.
Rotate : BOOL TRUE für rotieren / FALSE für verschieben.
InBit : BOOL Bit, das bei einer Verschiebung eingefügt wird.

Outputs

Q : BOOL TRUE wenn erfolgreich.

Anmerkungen

Verwenden Sie das ToRight Argument um eine Verschiebung nach links (FALSE) oder nach rechts (TRUE) festzulegen. Verwenden Sie das Rotate Argument um entweder eine Verschiebung (FALSE) oder eine Rotation (TRUE) festzulegen. Im Falle einer Verschiebung legt das InBit Argument den Wert des Bits fest, das das letzte verschobene Bit ersetzt.

In der LD Sprache wertet der Input-Rung (EN) die Operation aus. Der Output-Rung ist das Resultat (Q).

ST Sprache

Q := MBShift (Buffer, Pos, NbByte, NbShift, ToRight, Rotate, InBit);

FBD Sprache

LD Sprache

Die Funktion wird nur ausgeführt, wenn EN TRUE ist.

IL Sprache

Nicht verfügbar.


NOT_MASK

Programmiersprachen - Referenzen -> Register -> NOT_MASK

Funktion - Führt eine bit to bit Negation eines ganzzahligen Werts aus.

Inputs

IN : ANY ganzzahliger Input.

Outputs

Q : ANY Bit to bit Negation des Inputs.

Anmerkungen

Als Parameter können Ganzahlenwerte mit und ohne Vorzeichen von 8 bis 32 Bit übergeben werden.

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Parameter (IN) in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := NOT_MASK (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO ist gleich EN.

IL Sprache

Op1: LD IN
NOT_MASK
ST Q

seealso See also

AND_MASK OR_MASK XOR_MASK


OR_MASK

Programmiersprachen - Referenzen -> Register -> OR_MASK

Funktion - Führt ein bit to bit OR zwischen zwei ganzzahligen Werten aus.

Inputs

IN : ANY Erster Input.
MSK : ANY Zweiter Input (OR Mask).

Outputs

Q : ANY OR Mask zwischen den Inputs IN und MSK.

Anmerkungen

Als Parameter können Ganzahlenwerte mit und ohne Vorzeichen von 8 bis 32 Bit übergeben werden.

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der erste Parameter (IN) in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird. Der andere Input ist der Operand der Funktion.

ST Sprache

Q := OR_MASK (IN, MSK);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO ist gleich EN.

IL Sprache

Op1: LD IN
OR_MASK MSK
ST Q

seealso See also

AND_MASK XOR_MASK NOT_MASK


PACK8

Programmiersprachen - Referenzen -> Register -> PACK8

Funktion - Erzeugt ein Byte aus Bits.

Inputs

IN0 : BOOL Niederwertigstes Bit.
...
IN7 : BOOL Höchstwertigstes Bit.

Outputs

Q : USINT Byte erzeugt aus den Input Bits.

Anmerkungen

In LD Sprache ist der Input Rung der IN0 Eingang. Der Output Rung (ENO) hat den selben Wert wie der Input Rung. In der IL Sprache muss der Eingang geladen werden bevor die Funktion aufgerufen wird.

ST Sprache

Q := PACK8 (IN0, IN1, IN2, IN3, IN4, IN5, IN6, IN7);

FBD Sprache

LD Sprache

ENO behält den selben Wert wie EN.

IL Sprache

Op1: LD IN0
PACK8 IN1, IN2, IN3, IN4, IN5, IN6, IN7
ST Q

seealso See also

UNPACK8


ROL

Programmiersprachen - Referenzen -> Register -> ROL

Funktion - Rotiert die Bits eines Registers nach links.

Inputs

IN : ANY Register.
NBR : ANY Anzahl der Rotationen (jede Rotation ist 1 Bit).

Outputs

Q : ANY Rotiertes Register.

Diagramm

Anmerkungen

Als Parameter können Ganzahlenwerte mit und ohne Vorzeichen von 8 bis 32 Bit übergeben werden.

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung (ENO) behält den gleichen Status wie das Input-Rung. In der IL Sprache muss der erste Input vor dem Aufruf der Funktion geladen werden. Der zweite Input ist der Operand der Funktion.

ST Sprache

Q := ROL (IN, NBR);

FBD Sprache

LD Sprache

Die Rotation wird nur dann ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ROL NBR
ST Q

seealso See also

SHL SHR ROR SHLb SHRb ROLb RORb SHLw SHRw ROLw RORw


ROR

Programmiersprachen - Referenzen -> Register -> ROR

Funktion - Rotiert die Bits eines Registers nach rechts.

Inputs

IN : ANY Register.
NBR : ANY Anzahl der Rotationen (jede Rotation ist 1 Bit).

Outputs

Q : ANY Rotiertes Register.

Diagramm

Anmerkungen

Als Parameter können Ganzahlenwerte mit und ohne Vorzeichen von 8 bis 32 Bit übergeben werden.

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung (ENO) behält den gleichen Status wie das Input-Rung. In der IL Sprache muss der erste Input vor dem Aufruf der Funktion geladen werden. Der zweite Input ist der Operand der Funktion.

ST Sprache

Q := ROR (IN, NBR);

FBD Sprache

LD Sprache

Die Rotation wird nur dann ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ROR NBR
ST Q

seealso See also

SHL SHR ROL SHLb SHRb ROLb RORb SHLw SHRw ROLw RORw


RORb / ROR_SINT / ROR_USINT / ROR_BYTE

Programmiersprachen - Referenzen -> Register -> RORb / ROR_SINT / ROR_USINT / ROR_BYTE

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Rotiert die Bits eines Registers nach rechts.

Inputs

IN : SINT 8-Bit-Register.
NBR : SINT Anzahl der Rotationen (jede Rotation ist 1 Bit).

Outputs

Q : SINT Rotiertes Register.

Diagramm

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung (ENO) behält den gleichen Status wie das Input-Rung. In der IL Sprache muss der erste Input vor dem Aufruf der Funktion geladen werden. Der zweite Input ist der Operand der Funktion.

ST Sprache

Q := RORb (IN, NBR);

FBD Sprache

LD Sprache

Die Rotation wird nur dann ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
RORb NBR
ST Q

seealso See also

SHL SHR ROL ROR SHLb SHRb ROLb SHLw SHRw ROLw RORw


RORw / ROR_INT / ROR_UINT / ROR_WORD

Programmiersprachen - Referenzen -> Register -> RORw / ROR_INT / ROR_UINT / ROR_WORD

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Rotiert die Bits eines Registers nach rechts.

Inputs

IN : INT 16-Bit-Register.
NBR : INT Anzahl der Rotationen (jede Rotation ist 1 Bit).

Outputs

Q : INT Rotiertes Register.

Diagramm

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung (ENO) behält den gleichen Status wie das Input-Rung. In der IL Sprache muss der erste Input vor dem Aufruf der Funktion geladen werden. Der zweite Input ist der Operand der Funktion.

ST Sprache

Q := RORw (IN, NBR);

FBD Sprache

LD Sprache

Die Rotation wird nur dann ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
RORw NBR
ST Q

seealso See also

SHL SHR ROL ROR SHLb SHRb ROLb RORb SHLw SHRw ROLw


SETBIT

Programmiersprachen - Referenzen -> Register -> SETBIT

Funktion - Setzt ein Bit in einem Integer Register.

Inputs

IN : ANY 8 to 32 Bit Integer Register.
BIT : DINT Bit Nummer (0 = niederwertigstes Bit).
VAL : BOOL Bit Wert welcher übernommen werden soll.

Outputs

Q : ANY Modifiziertes Register.

Anmerkungen

Die Datentypen LINT, REAL, LREAL, TIME und STRING werden an IN und Q nicht unterstützt. IN und Q müssen vom selben Datentyp sein. Im Fall von ungültigen Argumenten (falsche Bit Nummer oder ungültiger Datentyp am Eingang) liefert die Funktion den Wert von IN ohne Modifikation.

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung.

ST Sprache

Q := SETBIT (IN, BIT, VAL);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Nicht verfügbar.

seealso See also

TESTBIT


SHL

Programmiersprachen - Referenzen -> Register -> SHL

Funktion - Verschiebt die Bits eines Registers nach links.

Inputs

IN : ANY Register.
NBS : ANY Anzahl der Verschiebungen (jede Verschiebung ist 1 Bit).

Outputs

Q : ANY Verschobenes Register.

Diagramm

Anmerkungen

Als Parameter können Ganzahlenwerte mit und ohne Vorzeichen von 8 bis 32 Bit übergeben werden.

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung (ENO) behält den gleichen Status wie das Input-Rung. In der IL Sprache muss der erste Input vor dem Aufruf der Funktion geladen werden. Der zweite Input ist der Operand der Funktion.

ST Sprache

Q := SHL (IN, NBS);

FBD Sprache

LD Sprache

Die Verschiebung wird nur dann ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
SHL NBS
ST Q

seealso See also

SHR ROL ROR SHLb SHRb ROLb RORb SHLw SHRw ROLw RORw


SHR

Programmiersprachen - Referenzen -> Register -> SHR

Funktion - Verschiebt die Bits eines Registers nach rechts.

Inputs

IN : ANY Register.
NBS : ANY Anzahl der Verschiebungen (jede Verschiebung ist 1 Bit).

Outputs

Q : ANY Verschobenes Register.

WICHTIG!

Ist die Option „SHR: das höchstwertigste Bit nicht duplizieren" in „Projekteinstellungen / Erweitert" aktiviert, dann wird das höchstwertigste Bit auf FALSE gesetzt.

Ist die Option nicht aktiviert, dann wird das höchstwertigste Bit dupliziert:

Anmerkungen

Als Parameter können Ganzahlenwerte mit und ohne Vorzeichen von 8 bis 32 Bit übergeben werden.

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung (ENO) behält den gleichen Status wie das Input-Rung. In der IL Sprache muss der erste Input vor dem Aufruf der Funktion geladen werden. Der zweite Input ist der Operand der Funktion.

ST Sprache

Q := SHR (IN, NBS);

FBD Sprache

LD Sprache

Die Verschiebung wird nur dann ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
SHR NBS
ST Q

seealso See also

SHL ROL ROR SHLb SHRb ROLb RORb SHLw SHRw ROLw RORw

© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


SWAB

Programmiersprachen - Referenzen -> Register -> SWAB

Funktion - Tauscht die Bytes eines Integers.

Eingehende Werte

IN : ANY Jede 16- oder 32-Bit-Ganzzahl - mit oder ohne Vorzeichen

Ausgehende Werte

Q : ANY Getauschter Wert.

Anmerkungen

Unterstützte Datentypen sind: INT, UINT, WORD, DINT, UDINT und DWORD. Wird die Funktion für einen anderen Datentypen aufgerufen übernimmt dieser den Typ des Ausgangswertes.

Beispiele

Typ | IN | Q
WORD | 16#1A2B | 16#2B1A
DWORD | 16#1A2B3C4D | 16#4D3C2B1A


TESTBIT

Programmiersprachen - Referenzen -> Register -> TESTBIT

Funktion - Testet ein Bit eines Integer Registers.

Inputs

IN : ANY 8 to 32 Bit Integer Register.
BIT : DINT Bit Nummer (0 = niederwertigstes Bit).

Outputs

Q : BOOL Bit Wert.

Anmerkungen

Die Datentypen LINT, REAL, LREAL, TIME und STRING werden an IN und Q nicht unterstützt. IN und Q müssen vom selben Datentyp sein. Im Fall von ungültigen Argumenten (falsche Bit Nummer oder ungültiger Datentyp am Eingang) liefert die Funktion FALSE.

ST Sprache

Q := TESTBIT (IN, BIT);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.

IL Sprache

Nicht verfügbar.

seealso See also

SETBIT


UNPACK8

Programmiersprachen - Referenzen -> Register -> UNPACK8

Funktionsbaustein - Extrahiert Bits eines Bytes.

Inputs

IN : USINT 8 Bit Register.

Outputs

Q0 : BOOL Niederwertigstes Bit.
...
Q7 : BOOL Höchstwertigstes Bit.

Anmerkungen

In LD Sprache ist der Output Rung der Q0 Ausgang. Die Funktion wird nur ausgeführt wenn der Input Rung (EN) TRUE ist.

ST Sprache

MyUnpack ist eine deklarierte Instanz des Funktionsbausteins UNPACK8.

MyUnpack (IN);
Q0 := MyUnpack.Q0;
Q1 := MyUnpack.Q1;
Q2 := MyUnpack.Q2;
Q3 := MyUnpack.Q3;
Q4 := MyUnpack.Q4;
Q5 := MyUnpack.Q5;
Q6 := MyUnpack.Q6;
Q7 := MyUnpack.Q7;

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.

IL Sprache

MyUnpack ist eine deklarierte Instanz des Funktionsbausteins UNPACK8.

Op1: CAL MyUnpack (IN)
LD MyUnpack.Q0
(* ... *)
LD MyUnpack.Q7
ST Q7

seealso See also

PACK8


XOR_MASK

Programmiersprachen - Referenzen -> Register -> XOR_MASK

Funktion - Führt ein bit to bit exclusive OR zwischen zwei ganzzahligen Werten aus.

Inputs

IN : ANY Erster Input.
MSK : ANY Zweiter Input (XOR Mask).

Outputs

Q : ANY Exclusive OR Mask zwischen den Inputs IN und MSK.

Anmerkungen

Als Parameter können Ganzahlenwerte mit und ohne Vorzeichen von 8 bis 32 Bit übergeben werden.

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der erste Parameter (IN) in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird. Der andere Input ist der Operand der Funktion.

ST Sprache

Q := XOR_MASK (IN, MSK);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO ist gleich EN.

IL Sprache

Op1: LD IN
XOR_MASK MSK
ST Q

seealso See also

AND_MASK OR_MASK NOT_MASK


Zähler

Programmiersprachen - Referenzen -> Zähler

Es folgen die Standard-Bausteine für die Zählerverwaltung:

Baustein | Beschreibung
CTU CTD CTUD | Aufwärtszähler Abwärtszähler Auf- / Abwärtszähler

Noch in diesem Kapitel

CTD / CTDr

CTU / CTUr

CTUD / CTUDr


CTD / CTDr

Programmiersprachen - Referenzen -> Zähler -> CTD / CTDr

Funktionsblock - Abwärtszähler.

Inputs

CD : BOOL Zählen freigeben. Zähler zählt bei jedem Aufruf abwärts, wenn CD TRUE ist.
LOAD : BOOL Ladebefehl. Zähler wird auf PV gesetzt, wenn er mit LOAD auf TRUE aufgerufen wird.
PV : DINT Programmierter Höchstwert.

Outputs

Q : BOOL TRUE, wenn Zähler leer ist, d.h. wenn CV = 0.
CV : DINT Aktueller Wert des Zählers.

Anmerkungen

Beim Start der Anwendung ist der Zähler leer (CV = 0). Der Zähler beinhaltet keine Impulserkennung für den Input CD. Benutzen Sie den Funktionsblock R_TRIG oder F_TRIG, um die Impulse des Eingangssignals CD zu zählen. In der LD Sprache ist CD das Input-Rung. Das Output-Rung ist der Output Q.

CTUr, CTDr, CTUDr Funktionsblöcke agieren genau gleich wie die herkömmlichen Zähler, außer, dass alle boolschen Eingänge (CU, CD, RESET, LOAD) eine steigende Flankenerkennung integriert haben. Manche Zielsystem unterstützen diese Funktionen möglicherweise nicht.

ST Sprache

MyCounter ist eine deklarierte Instanz des Funktionsblocks CTD.

MyCounter (CD, LOAD, PV);
Q := MyCounter.Q;
CV := MyCounter.CV;

FBD Sprache

LD Sprache

IL Sprache

MyCounter ist eine deklarierte Instanz des Funktionsblocks CTD.

Op1: CAL MyCounter (CD, LOAD, PV)
LD MyCounter.Q
ST Q
LD MyCounter.CV
ST CV

seealso See also

CTU CTUD

© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


CTU / CTUr

Programmiersprachen - Referenzen -> Zähler -> CTU / CTUr

Funktionsblock - Aufwärtszähler.

Inputs

CU : BOOL Zählen freigeben. Zähler zählt bei jedem Aufruf aufwärts, wenn CU TRUE ist.
RESET : BOOL Reset-Befehl. Der Zähler wird auf 0 zurückgesetzt, wenn RESET beim Aufruf TRUE ist.
PV : DINT Programmierter Höchstwert.

Outputs

Q : BOOL TRUE, wenn Zähler voll ist, d.h. wenn CV = PV.
CV : DINT Aktueller Wert des Zählers.

Anmerkungen

Beim Start der Anwendung ist der Zähler leer (CV = 0). Der Zähler beinhaltet keine Impulserkennung für den Input CU. Benutzen Sie den Funktionsblock R_TRIG oder F_TRIG, um die Impulse des Eingangssignals CU zu zählen. In der KOP-Sprache ist CU das Input-Rung. Das Output-Rung ist der Output Q.

CTUr, CTDr, CTUDr Funktionsblöcke agieren genau gleich wie die herkömmlichen Zähler, außer, dass alle boolschen Eingänge (CU, CD, RESET, LOAD) eine steigende Flankenerkennung integriert haben. Manche Zielsystem unterstützen diese Funktionen möglicherweise nicht.

ST Sprache

MyCounter ist eine deklarierte Instanz des Funktionsblocks CTU.

MyCounter (CU, RESET, PV);
Q := MyCounter.Q;
CV := MyCounter.CV;

FBD Sprache

LD Sprache

IL Sprache

MyCounter ist eine deklarierte Instanz des Funktionsblocks CTU.

Op1: CAL MyCounter (CU, RESET, PV)
LD MyCounter.Q
ST Q
LD MyCounter.CV
ST CV

seealso See also

CTD CTUD


CTUD / CTUDr

Programmiersprachen - Referenzen -> Zähler -> CTUD / CTUDr

Funktionsblock - Auf-/Abwärtszähler.

Inputs

CU : BOOL Zählen freigeben. Wenn CU TRUE ist, zählt der Zähler bei jedem Aufruf aufwärts.
CD : BOOL Zählen freigeben. Wenn CD TRUE ist, zählt der Zähler bei jedem Aufruf abwärts.
RESET : BOOL Reset-Befehl. Der Zähler wird auf 0 zurückgesetzt, wenn RESET TRUE ist.
LOAD : BOOL Ladebefehl. Der Zähler wird auf PV gesetzt, wenn LOAD TRUE ist.
PV : DINT Programmierter Höchstwert.

Outputs

QU : BOOL TRUE, wenn der Zähler voll ist, d.h. wenn CV = PV.
QD : BOOL TRUE, wenn der Zähler leer ist, d.h. wenn CV = 0.
CV : DINT Aktueller Wert des Zählers.

Anmerkungen

Beim Anwendungsstart ist der Zähler leer (CV = 0). Der Zähler schliesst keine Impulserkennung für die Inputs CU und CD ein. Benutzen Sie die Funktionsblöcke R_TRIG oder F_TRIG, um die Impulse der Eingangssignale CU oder CD zu zählen. In der LD Sprache ist CU das Input-Rung. Das Output-Rung ist der Output QU.

CTUr, CTDr, CTUDr Funktionsblöcke agieren genau gleich wie die herkömmlichen Zähler, außer, dass alle boolschen Eingänge (CU, CD, RESET, LOAD) eine steigende Flankenerkennung integriert haben. Manche Zielsystem unterstützen diese Funktionen möglicherweise nicht.

ST Sprache

MyCounter ist eine deklarierte Instanz des Funktionsblocks CTUD.

MyCounter (CU, CD, RESET, LOAD, PV);
QU := MyCounter.QU;
QD := MyCounter.QD;
CV := MyCounter.CV;

FBD Sprache

LD Sprache

IL Sprache

MyCounter ist eine deklarierte Instanz des Funktionsblocks CTUD.

Op1: CAL MyCounter (CU, CD, RESET, LOAD, PV)
LD MyCounter.QU
ST QU
LD MyCounter.QD
ST QD
LD MyCounter.CV
ST CV

seealso See also

CTU CTD


Timer

Programmiersprachen - Referenzen -> Timer

Es folgen die Standardfunktionen für die Verwaltung der Timer:

Funktion | Effekt
TON TOF TP BLINK BLINKA PLS TMU TMD | On-Timer Off-Timer Impuls-Timer Blinker Asymmetrischer Blinker Puls-Signal Generator Hinaufzählende Stopp-Uhr Herunterzählende Stopp-Uhr

Noch in diesem Kapitel

BLINK

BLINKA

PLS

TMD

TMU

TOF / TOFR

TON

TP / TPR


BLINK

Programmiersprachen - Referenzen -> Timer -> BLINK

Funktionsblock - Blinker.

Inputs

RUN : BOOL Gibt den Befehl frei.
CYCLE : TIME Blinkperiode.

Outputs

Q : BOOL Output Blinksignal.

Steuerungsdiagramm

Anmerkungen

Das Ausgangssignal ist FALSE, wenn der Input RUN FALSE ist. Der Input CYCLE ist die vollständige Zeitspanne des Blinksignals. In der LD Sprache ist das Input-Rung der Befehl IN. Das Output-Rung ist das Ausgangssignal Q.

ST Sprache

MyBlinker ist eine deklarierte Instanz des Funktionsblocks BLINK.

MyBlinker (RUN, CYCLE);
Q := MyBlinker.Q;

FBD Sprache

LD Sprache

IL Sprache:

MyBlinker ist eine deklarierte Instanz des Funktionsblocks BLINK.

Op1: CAL MyBlinker (RUN, CYCLE)
LD MyBlinker.Q
ST Q

seealso See also

TON TOF TP


BLINKA

Programmiersprachen - Referenzen -> Timer -> BLINKA

Funktionsbaustein - Asymmetrischer Blinker.

Inputs

RUN : BOOL Aktivierung.
TM0 : TIME Länge der FALSE Zeit am Ausgang.
TM1 : TIME Länge der TRUE Zeit am Ausgang.

Outputs

Q : BOOL Blink Signal.

Steuerungsdiagramm

Anmerkungen

Das Signal am Ausgang ist FALSE wenn der Eingang RUN FALSE ist. In der LD Sprache ist der Input Rung der RUN Eingang. Der Output Rung ist das Ausgangssignal Q.

ST Sprache

MyBlinker ist eine deklarierte Instanz des Funktionsblocks BLINKA.

MyBlinker (RUN, TM0, TM1);
Q := MyBlinker.Q;

FBD Sprache

LD Sprache

IL Sprache:

MyBlinker ist eine deklarierte Instanz des Funktionsblocks BLINKA.

Op1: CAL MyBlinker (RUN, TM0, TM1)
LD MyBlinker.Q
ST Q

seealso See also

TON TOF TP


PLS

Programmiersprachen - Referenzen -> Timer -> PLS

Funktionsbaustein - Puls Signal Generator.

Inputs

RUN : BOOL Aktivierung.
CYCLE : TIME Periode.

Outputs

Q : BOOL Puls Signal.

Steuerungsdiagramm

Anmerkungen

Zu jeder Periode wird der Ausgang für einen Zyklus auf TRUE gesetzt. In LD Sprache ist der Input Rung der IN Eingang. Der Output Rung ist der Ausgang Q.

ST Sprache

MyPLS ist eine deklarierte Instanz des Funktionsbausteins PLS.

MyPLS (RUN, CYCLE);
Q := MyPLS.Q;

FBD Sprache

LD Sprache

IL Sprache

MyPLS ist eine deklarierte Instanz des Funktionsbausteins PLS.

Op1: CAL MyPLS (RUN, CYCLE)
LD MyPLS.Q
ST Q

seealso See also

TON TOF TP


TMD

Programmiersprachen - Referenzen -> Timer -> TMD

Funktionsbaustein - Countdown Stoppuhr.

Inputs

IN : BOOL Die Zeit wird herunter gezählt wenn dieser Input TRUE ist.
RST : BOOL Der Countdown wird auf PT gesetzt wenn dieser Input TRUE ist.
PT : TIME Programmierte Zeit.

Outputs

Q : BOOL Countdown Zeit verstrichen.
ET : TIME Verstrichene Zeit.

Zeit Diagramm

Anmerkungen

Der Baustein zählt herunter wenn der IN Input TRUE ist. Er stoppt wenn die programmierte Zeit verstrichen ist. Der Countdown wird zurückgesetzt wenn der RST Input TRUE ist. Der Countdown wird nicht zurückgesetzt wenn der Input IN FALSE ist.

ST Sprache

MyTimer ist eine deklarierte Instanz des TMD Funktionsbausteins.

MyTimer (IN, RST, PT);
Q := MyTimer.Q;
ET := MyTimer.ET;

FBD Sprache

LD Sprache

IL Sprache

MyTimer ist eine deklarierte Instanz des TMD Funktionsbausteins.

Op1: CAL MyTimer (IN, RST, PT)
LD MyTimer.Q
ST Q
LD MyTimer.ET
ST ET

seealso See also

TMU


TMU

Programmiersprachen - Referenzen -> Timer -> TMU

Funktionsbaustein - Stoppuhr.

Inputs

IN : BOOL Die Zeit beginnt zu laufen wenn dieser Input TRUE ist.
RST : BOOL Die Zeit wird auf 0 zurückgesetzte wenn dieser Input TRUE ist.
PT : TIME Programmierte Zeit.

Outputs

Q : BOOL Zeigt an wenn die programmierte Zeit verstrichen ist.
ET : TIME Verstrichene Zeit.

Zeit Diagramm

Anmerkungen

Die Zeit beginnt hinaufzuzählen wenn der IN Input TRUE ist. Wenn die programmierte Zeit verstrichen ist, stoppt der Funktionsbaustein. Der Baustein wird zurückgesetzt wenn der RST Input TRUE ist. Er wird nicht zurückgesetzt wenn IN FALSE ist.

ST Sprache

MyTimer ist eine deklarierte Instanz des TMU Funktionsbausteins.

MyTimer (IN, RST, PT);
Q := MyTimer.Q;
ET := MyTimer.ET;

FBD Sprache

LD Sprache

IL Sprache

MyTimer ist eine deklarierte Instanz des TMU Funktionsbausteins.

Op1: CAL MyTimer (IN, RST, PT)
LD MyTimer.Q
ST Q
LD MyTimer.ET
ST ET

seealso See also

TMD


TOF / TOFR

Programmiersprachen - Referenzen -> Timer -> TOF / TOFR

Funktionsblock - Off-Timer.

Inputs

IN : BOOL Timer-Befehl.

PT : TIME Programmierte Zeit.

RST : BOOL Reset (TOFR).

Outputs

Q : BOOL Ausgangssignal Timer abgelaufen.

ET : TIME Verstrichene Zeit.

Steuerungsdiagramm

Anmerkungen

Der Timer startet auf einem fallenden Impuls des Inputs IN. Er stoppt, wenn die verstrichene Zeit gleich der programmierten Zeit ist. Ein steigender Impuls des Inputs IN setzt den Timer auf 0 zurück. Das Ausgangssignal wird auf TRUE gesetzt, wenn der Input IN auf TRUE steigt und auf FALSE zurückgesetzt, wenn die programmierte Zeit abgelaufen ist.

TOFR unterscheidet sich zum herkömmlichen TOF darin, dass ein eigener Input für den Reset des Timers zur Verfügung steht.

In der LD Sprache ist das Input-Rung der Befehl IN. Das Output-Rung ist das Ausgangssignal Q.

ST Sprache

MyTimer ist eine deklarierte Instanz des Funktionsblocks TOF.

MyTimer (IN, PT);
Q := MyTimer.Q;
ET := MyTimer.ET;

FBD Sprache

LD Sprache

IL Sprache

MyTimer ist eine deklarierte Instanz des Funktionsblocks TOF.

Op1: CAL MyTimer (IN, PT)
LD MyTimer.Q
ST Q
LD MyTimer.ET
ST ET

seealso See also

TON TP BLINK


TON

Programmiersprachen - Referenzen -> Timer -> TON

Funktionsblock - On Timer.

Inputs

IN : BOOL Timer-Befehl.
PT : TIME Programmierte Zeit.

Outputs

Q : BOOL Ausgangssignal Timer abgelaufen.
ET : TIME Verstrichene Zeit.

Steuerungsdiagramm

Anmerkungen

Der Timer startet auf einem steigenden Impuls des Inputs IN. Er stoppt, wenn die verstrichene Zeit gleich der programmierten Zeit ist. Ein fallender Impuls des Inputs IN setzt den Timer auf 0 zurück. Das Ausgangssignal wird auf TRUE gesetzt, wenn die programmierte Zeit abgelaufen ist und auf FALSE zurückgesetzt, wenn der Input Befehl fällt.

In der LD Sprache ist das Input-Rung der Befehl IN. Das Output-Rung ist das Ausgangssignal Q.

ST Sprache

MyTimer ist eine deklarierte Instanz des Funktionsblocks TON.

MyTimer (IN, PT);
Q := MyTimer.Q;
ET := MyTimer.ET;

FBD Sprache

LD Sprache

IL Sprache

MyTimer ist eine deklarierte Instanz des Funktionsblocks TON.

Op1: CAL MyTimer (IN, PT)
LD MyTimer.Q
ST Q
LD MyTimer.ET
ST ET

seealso See also

TOF TP BLINK


TP / TPR

Programmiersprachen - Referenzen -> Timer -> TP / TPR

Funktionsblock - Impuls-Timer.

Inputs

IN : BOOL Timer-Befehl.

PT : TIME Programmierte Zeit.

RST : BOOL Reset (TPR).

Outputs

Q : BOOL Ausgangssignal Timer abgelaufen.

ET : TIME Verstrichene Zeit.

Steuerungsdiagramm

Anmerkungen

Der Timer startet auf einem steigenden Impuls des Inputs IN. Er stoppt, wenn die verstrichene Zeit gleich der programmierten Zeit ist. Ein fallender Impuls des Inputs IN setzt den Timer nur dann auf 0 zurück, wenn die programmierte Zeit abgelaufen ist. Alle Impulse von IN während der Timer läuft werden ignoriert. Das Ausgangssignal wird auf TRUE gesetzt, während der Timer läuft.

TPR unterscheidet sich zum herkömmlichen TP darin, dass ein eigener Input für den Reset des Timers zur Verfügung steht.

In der LD Sprache ist das Input-Rung der Befehl IN. Das Output-Rung ist das Ausgangssignal Q.

ST Sprache

MyTimer ist eine deklarierte Instanz des Funktionsblocks TP.

MyTimer (IN, PT);
Q := MyTimer.Q;
ET := MyTimer.ET;

FBD Sprache

LD Sprache

IL Sprache

MyTimer ist eine deklarierte Instanz des Funktionsblocks TP.

Op1: CAL MyTimer (IN, PT)
LD MyTimer.Q
ST Q
LD MyTimer.ET
ST ET

seealso See also

TON TOF BLINK


Mathematische Operationen

Programmiersprachen - Referenzen -> Mathematische Operationen

Previous chapter Next chapter Show all Show all Hide all Hide all

Es folgen die Standardfunktionen zur Ausführung mathematischer Kalkulationen:

Funktion | Effekt
ABS TRUNC LOG, LN POW,EXPT, EXP SQRT, ROOT SCALELIN | Absolutwert Ganzzahliger Teil Logarithmus Potenz Wurzel Skalierung - lineare Anpassung

Noch in diesem Kapitel

ABS

EXP / EXPL

EXPT

LOG

LN

POW ** POWL

ROOT

ScaleLin

SQRT / SQRTL

TRUNC / TRUNCL


ABS

Programmiersprachen - Referenzen -> Mathematische Operationen -> ABS

Previous chapter Next chapter Show all Show all Hide all Hide all

Funkion - Liefert den Absolutwert des Inputs.

Inputs

IN : ANY Wert.

Outputs

Q : ANY Ergebnis: Absolutwert von IN.

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Input in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := ABS (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ABS
ST Q (* Q ist: ABS (IN) *)

seealso See also

TRUNC LOG POW SQRT


EXP / EXPL

Programmiersprachen - Referenzen -> Mathematische Operationen -> EXP / EXPL

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Gibt die Exponentialfunktion des Eingangs aus.

Inputs

IN : REAL Realer Wert.

Outputs

Q : REAL Ergebnis: Exponentialfuktion des IN.

Anmerkungen

Bei LD wird die Funktion nur ausgeführt, wenn der Eingang (EN) TRUE ist. Der Ausgang (ENO) behält den gleichen Wert wie der Eingang. Bei IL muss der Eingang zuerst in das derzeitige Ergebnis geladen werden bevor die Funktion aufgerufen wird.

ST Sprache

Q := EXP (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO ist gleich EN.

IL Sprache

Op1: LD IN
EXP
ST Q (* Q is: EXP (IN) *)

seealso Siehe auch

ABS TRUNC POW SQRT


EXPT

Programmiersprachen - Referenzen -> Mathematische Operationen -> EXPT

Previous chapter Next chapter Show all Show all Hide all Hide all

Funkion - Berechnet eine Potenz.

Inputs

IN : REAL Realer Wert.
EXP : DINT Exponent.

Outputs

Q : REAL Ergebnis: IN hoch "EXP".

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der erste Input in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird. Der Exponent (zweiter Input der Funktion) muss der Operand der Funktion sein.

ST Sprache

Q := EXPT (IN, EXP);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
EXPT EXP
ST Q (* Q ist: (IN ** EXP) *)

seealso See also

ABS TRUNC LOG SQRT


LOG

Programmiersprachen - Referenzen -> Mathematische Operationen -> LOG

Previous chapter Next chapter Show all Show all Hide all Hide all

Funkion - Berechnet den Logarithmus (Basis 10) des Inputs.

Inputs

IN : REAL Realer Wert.

Outputs

Q : REAL Ergebnis: Logarithmus (Basis 10) von IN.

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Input in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := LOG (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
LOG
ST Q (* Q ist: LOG (IN) *)

seealso See also

ABS TRUNC POW SQRT


LN

Programmiersprachen - Referenzen -> Mathematische Operationen -> LN

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Gibt den natürlichen Logarithmus des Eingangs aus.

Inputs

IN : REAL/LREAL Realer Wert.

Outputs

Q : REAL/LREAL Ergebnis: Natürlicher Logarithmus des IN.

Anmerkungen

Bei LD wird die Funktion nur ausgeführt, wenn der Eingang (EN) TRUE ist. Der Ausgang (ENO) behält den gleichen Wert wie der Eingang. Bei IL muss der Eingang zuerst in das derzeitige Ergebnis geladen werden bevor die Funktion aufgerufen wird.

ST Sprache

Q := LN (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO ist gleich EN.

IL Sprache

Op1: LD IN
EXP
ST Q (* Q is: EXP (IN) *)

seealso Siehe auch

ABS TRUNC POW SQRT


POW ** POWL

Programmiersprachen - Referenzen -> Mathematische Operationen -> POW ** POWL

Previous chapter Next chapter Show all Show all Hide all Hide all

Funkion - Berechnet eine Potenz.

Inputs

IN : REAL/LREAL Realer Wert.
EXP : REAL/LREAL Exponent.

Outputs

Q : REAL/LREAL Ergebnis: IN hoch "EXP".

Anmerkungen

Als Alternative kann in der ST Sprache der Operator "**" benutzt werden. In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der erste Input in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird. Der Exponent (zweiter Input der Funktion) muss der Operand der Funktion sein.

ST Sprache

Q := POW (IN, EXP);
Q := IN ** EXP;

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
POW EXP
ST Q (* Q ist: (IN ** EXP) *)

seealso See also

ABS TRUNC LOG SQRT


ROOT

Programmiersprachen - Referenzen -> Mathematische Operationen -> ROOT

Previous chapter Next chapter Show all Show all Hide all Hide all

Funkion - Berechnet die Wurzel (N) des Inputs.

Inputs

IN : REAL Realer Wert

N : DINT Exponent

Outputs

Q : REAL Ergebnis: Wurzel von IN

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Input in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := ROOT (IN, N);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ROOT N
ST Q


ScaleLin

Programmiersprachen - Referenzen -> Mathematische Operationen -> ScaleLin

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Skalierung - lineare Anpassung.

Inputs

IN : REAL Realer Wert.
IMIN : REAL Eingangswert Minimum.
IMAX : REAL Eingangswert Maximum.
OMIN : REAL Ausgangswert Minimum.
OMAX : REAL Ausgangswert Maximum.

Outputs

OUT : REAL Ergebnis: OMIN + IN * (OMAX - OMIN) / (IMAX - IMIN).

Truth-Tabelle

inputs | OUT
IMIN >= IMAX | = IN
IN < IMIN | = OMIN
IN > IMAX | = OMAX
Andere | = OMIN + IN * (OMAX - OMIN) / (IMAX - IMIN)

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Input in das aktuelle Ergenis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

OUT := ScaleLin (IN, IMIN, IMAX, OMIN, OMAX);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ScaleLin IMAX, IMIN, OMAX, OMIN
ST OUT

© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


SQRT / SQRTL

Programmiersprachen - Referenzen -> Mathematische Operationen -> SQRT / SQRTL

Previous chapter Next chapter Show all Show all Hide all Hide all

Funkion - Berechnet die Quadratwurzel des Inputs.

Inputs

IN : REAL/LREAL Realer Wert.

Outputs

Q : REAL/LREAL Ergebnis: Quadratwurzel von IN.

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Input in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := SQRT (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
SQRT
ST Q (* Q ist: SQRT (IN) *)

seealso See also

ABS TRUNC LOG POW


TRUNC / TRUNCL

Programmiersprachen - Referenzen -> Mathematische Operationen -> TRUNC / TRUNCL

Previous chapter Next chapter Show all Show all Hide all Hide all

Funkion - Verkürzt den Input auf den ganzzahligen Teil.

Inputs

IN : REAL/LREAL Realer Wert.

Outputs

Q : REAL/LREAL Ergebnis: ganzzahliger Teil von IN.

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Input in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := TRUNC (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
TRUNC
ST Q (* Q is the integer part of IN *)

seealso See also

ABS LOG POW SQRT


Trigonometrische Funktionen

Programmiersprachen - Referenzen -> Trigonometrische Funktionen

Previous chapter Next chapter Show all Show all Hide all Hide all

Es folgen die Standardfunktionen für die trigonometrische Kalkulation:

Funktion | Effekt
SIN COS TAN ASIN ACOS ATAN ATAN2 | Sinus Cosinus Tangens Arcussinus Arcuscosinus Arcustangens Arcustangens von (Y / X)
seealso See also
UseDegrees

Noch in diesem Kapitel

ACOS / ACOSL

ASIN / ASINL

ATAN / ATANL

ATAN2 / ATANL2

COS / COSL

SIN / SINL

TAN / TANL

UseDegrees


ACOS / ACOSL

Programmiersprachen - Referenzen -> Trigonometrische Funktionen -> ACOS / ACOSL

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Berechnet einen Arcuscosinus.

Inputs

IN : REAL/LREAL Realer Wert.

Outputs

Q : REAL/LREAL Ergebnis: Arcuscosinus von IN.

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Input in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := ACOS (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ACOS
ST Q (* Q ist: ACOS (IN) *)

seealso See also

SIN COS TAN ASIN ATAN ATAN2


ASIN / ASINL

Programmiersprachen - Referenzen -> Trigonometrische Funktionen -> ASIN / ASINL

Previous chapter Next chapter Show all Show all Hide all Hide all

- Berechnet einen Arcussinus.

Inputs

IN : REAL/LREAL Realer Wert.

Outputs

Q : REAL/LREAL Ergebnis: Arcussinus von IN.

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Input in das aktuelle Ergenis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := ASIN (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ASIN
ST Q (* Q ist: ASIN (IN) *)

seealso See also

SIN COS TAN ACOS ATAN ATAN2


ATAN / ATANL

Programmiersprachen - Referenzen -> Trigonometrische Funktionen -> ATAN / ATANL

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Berechnet einen Arcustangens.

Inputs

IN : REAL/LREAL Realer Wert.

Outputs

Q : REAL/LREAL Ergebnis: Arcustangens von IN.

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der LD Sprache muss der Input in das aktuelle Ergenis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := ATAN (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ATAN
ST Q (* Q is: ATAN (IN) *)

seealso See also

SIN COS TAN ASIN ACOS ATAN2


ATAN2 / ATANL2

Programmiersprachen - Referenzen -> Trigonometrische Funktionen -> ATAN2 / ATANL2

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Berechnet einen Arcustangens (Y / X).

Inputs

Y : REAL/LREAL Realer Wert.
X : REAL/LREAL Realer Wert.

Outputs

Q : REAL/LREAL Ergebnis: Arcustangens von Y / X.

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der LD Sprache muss der Input in das aktuelle Ergenis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := ATAN2 (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD Y
ATAN2 X
ST Q (* Q is: ATAN2 (Y / X) *)

seealso See also

SIN COS TAN ASIN ACOS ATAN


COS / COSL

Programmiersprachen - Referenzen -> Trigonometrische Funktionen -> COS / COSL

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Berechnet einen Cosinus.

Inputs

IN : REAL/LREAL Realer Wert.

Outputs

Q : REAL/LREAL Ergebnis: Cosinus von IN.

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Input in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := COS (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
COS
ST Q (* Q ist: COS (IN) *)

seealso See also

SIN TAN ASIN ACOS ATAN ATAN2


SIN / SINL

Programmiersprachen - Referenzen -> Trigonometrische Funktionen -> SIN / SINL

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Berechnet einen Sinus.

Inputs

IN : REAL/LREAL Realer Wert.

Outputs

Q : REAL/LREAL Ergebnis: Sinus von IN.

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Input in das aktuelle Ergenis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := SIN (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
SIN
ST Q (* Q is: SIN (IN) *)

seealso See also

COS TAN ASIN ACOS ATAN ATAN2


TAN / TANL

Programmiersprachen - Referenzen -> Trigonometrische Funktionen -> TAN / TANL

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Berechnet einen Tangens.

Inputs

IN : REAL/LREAL Realer Wert.

Outputs

Q : REAL/LREAL Ergebnis: Tangens von IN.

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Input in das aktuelle Ergenis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := TAN (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
TAN
ST Q (* Q ist: TAN (IN) *)

seealso See also

SIN COS ASIN ACOS ATAN ATAN2


UseDegrees

Programmiersprachen - Referenzen -> Trigonometrische Funktionen -> UseDegrees

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Stellt die Winkeleinheit für alle trigonometrischen Funktionen.

Inputs

IN : BOOL Wenn TRUE, stellt alle trigonometrischen Funktionen auf Grad um.
Wenn FALSE, stellt alle trigonometrischen Funktionen auf Bogenmass um (Vorgabe).

Outputs

Q : BOOL TRUE, wenn die Funktionen vor dem Aufruf die Einheit Grad benutzen.

Anmerkungen

Diese Funktion stellt die Arbeitseinheit der folgenden Funktionen:

Funktion | Beschreibung
SIN COS TAN ASIN ACOS ATAN ATAN2 | Sinus Cosinus Tangens Arcussinus Arcuscosinus Arcustangens Arcustangens von (Y / X)

ST Sprache

Q := UseDegrees (IN);

FBD Sprache

LD Sprache

Der Input ist das Rung. Das Rung ist der Output.

IL Sprache

Op1: LD IN
UseDegrees
ST Q


Stringoperationen

Programmiersprachen - Referenzen -> Stringoperationen

Es folgen die Standardoperatoren für die Verwaltung von Zeichenfolgen (Strings):

Funktion | Beschreibung
+ CONCAT MLEN LEN DELETE INSERT FIND REPLACE LEFT RIGHT MID CHAR ASCII ATOH HTOA CRC16 ArrayToString StringToArray | Verkettung von Zeichenfolgen Verkettung von Zeichenfolgen liefert die Länge einer Zeichenfolge löscht Zeichen in einer Zeichenfolge fügt Zeichen in eine Zeichenfolge ein sucht Zeichen in einer Zeichenfolge ersetzt Zeichen in einer Zeichenfolge entnimmt einen Teil der Zeichenfolge auf der linken Seite entnimmt einen Teil der Zeichenfolge auf der rechten Seite entnimmt einen Teil der Zeichenfolge erstellt eine Zeichenfolge mit einem Zeichen liefert den ASCII-Code eines Zeichen in einer Zeichenfolge Umrechnung von Zeichenfolge zu ganzzahlig unter Anwendung einer Hexadezimalbasis Umrechnung von ganzzahlig zu Zeichenfolge unter Anwendung einer Hexadezimalbasis MODBUS CRC16 kopiert die Elemente eines SINT Arrays auf einen String kopiert die Zeichen eines Strings auf ein SINT Array

Other functions are available for managing string tables as resources:

Funktion | Beschreibung
StringTable LoadString | Select the active string table resource Load a string from the active string table

Noch in diesem Kapitel

ArrayToString / ArrayToStringU

ASCII

ATOH

CHAR

CONCAT

CRC16

DELETE

FIND

HTOA

INSERT

LEFT

LEN

LoadString

MID

MLEN

REPLACE

RIGHT

StringTable

StringToArrayStringToArray / StringToArrayU


ArrayToString / ArrayToStringU

Programmiersprachen - Referenzen -> Stringoperationen -> ArrayToString / ArrayToStringU

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Kopiert ein SINT Array auf einen String.

Inputs

SRC : SINT Quellarray aus SINT short integer (USINT für ArrayToStringU).
DST : STRING Zielstring.
COUNT : DINT Anzahl der Zeichen, die kopiert werden sollen.

Outputs

Q : DINT Anzahl der kopierten Zeichen.

Anmerkungen

In der LD Sprache wird die Operation nur ausgeführt, wenn Der Input-Rung (EN) TRUE ist. Der Output-Rung (ENO) behält den gleichen Wert wie der Input-Rung.

Diese Funktion kopiert die ersten COUNT Elemente des SRC Arrays auf die Zeichen des DST Strings. Die Funktion überprüft die maximale Größe des Zielstrings und passt bei Bedarf COUNT entsprechend an.

ST Sprache

Q := ArrayToString (SRC, DST, COUNT);

FBD Sprache

LD Sprache

Die Funktion wird nur ausgeführt, wenn EN TRUE ist.
ENO behält den selben Wert wie as EN.

IL Sprache

Nicht verfügbar.

seealso See also

StringToArray


ASCII

Programmiersprachen - Referenzen -> Stringoperationen -> ASCII

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Liefert den ASCII-Code eines Zeichens innerhalb einer Zeichenfolge.

Inputs

IN : STRING Input-Zeichenfolge.
POS : DINT Position des Zeichens innerhalb der Zeichenfolge
(erste gültige Position ist 1).

Outputs

CODE : DINT ASCII-Code des ausgewählten Zeichens
oder 0, wenn die Position ungültig ist.

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der erste Parameter (IN) in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird. Der andere Input ist der Operand der Funktion.

ST Sprache

CODE := ASCII (IN, POS);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO ist gleich EN.

IL Sprache

Op1: LD IN
AND_MASK MSK
ST CODE

seealso See also

CHAR


ATOH

Programmiersprachen - Referenzen -> Stringoperationen -> ATOH

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Umrechnung von Zeichenfolge (string) zu ganzzahlig (integer) unter Anwendung einer Hexadezimalbasis.

Inputs

IN : STRING Zeichenfolge, die einen ganzzahligen Wert im Hexadezimalformat darstellt.

Outputs

Q : DINT Von der Zeichenfolge dargestellter ganzzahliger Wert.

Truth-Tabelle (Beispiele)

IN | Q
'' | 0
'12' | 18
'a0' | 160
'A0zzz' | 160

Anmerkungen

Die Funktion unterscheidet nicht zwischen Gross- und Kleinschreibung. Bei einer leeren Zeichenfolge ist das Ergebnis 0. Die Umrechnung stoppt vor dem ersten ungültigen Zeichen.

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der LD Sprache muss der Input in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := ATOH (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ATOH
ST Q

seealso See also

HTOA


CHAR

Programmiersprachen - Referenzen -> Stringoperationen -> CHAR

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Erstellt eine Zeichenfolge (String) mit einem einzigen Zeichen.

Inputs

CODE : DINT ASCII-Code des gewünschten Zeichens.

Outputs

Q : STRING ZEICHENFOLGE, die nur das spezifizierte Zeichen enthält.

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Inputparameter (CODE) in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := CHAR (CODE);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO ist gleich EN.

IL Sprache

Op1: LD CODE
CHAR
ST Q

seealso See also

ASCII


CONCAT

Programmiersprachen - Referenzen -> Stringoperationen -> CONCAT

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Strings verketten.

Eingänge

IN_1 : STRING String Variable oder Konstante.
IN_N : STRING String Variable oder Konstante.

Ausgänge

Q : STRING Verkettung aller Inputs.

Anmerkungen

In FBD oder LD Sprache kann die Funktion bis zu 16 Eingänge haben, in IL oder ST akzeptiert die Funktion eine variable Anzahl an Eingängen aber mindestens zwei.

Es kann auch der Operand "+" zur Verkettung von Strings verwendet werden.

ST Sprache

Q := CONCAT ('AB', 'CD', 'E');
(* Q ergibt 'ABCDE' *)

FBD Sprache

LD Sprache

IL Sprache

Op1: LD 'AB'
CONCAT 'CD', 'E'
ST Q (* Q ergibt 'ABCDE' *)


CRC16

Programmiersprachen - Referenzen -> Stringoperationen -> CRC16

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - berechnet ein CRC16 auf den Zeichen einer Zeichenfolge.

Inputs

IN : STRING Zeichenfolge.

Outputs

Q : INT CRC16, das auf allen Zeichen der Zeichenfolge berechnet wird.

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Inputparameter (IN) in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird.

Die Funktion berechnet ein MODBUS CRC16, das mit dem Wert 16#FFFF initialisiert wird.

ST Sprache

Q := CRC16 (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO ist gleich EN.

IL Sprache

Op1: LD IN
CRC16
ST Q


DELETE

Programmiersprachen - Referenzen -> Stringoperationen -> DELETE

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Löscht Zeichen in einer Zeichenfolge (String).

Inputs

IN : STRING Zeichenfolge.
NBC : DINT Anzahl der zu löschenden Zeichen.
POS : DINT Position des ersten zu löschenden Zeichens (erste Zeichenposition ist 1).

Outputs

Q : STRING Modifizierte Zeichenfolge.

Anmerkungen

Die erste gültige Zeichenposition ist 1. In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der erste Input (die Zeichenfolge) in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird. Die anderen Argumente sind durch Kommas getrennte Operanden der Funktion.

ST Sprache

Q := DELETE (IN, NBC, POS);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
DELETE NBC, POS
ST Q

seealso See also

+ MLEN INSERT FIND REPLACE LEFT RIGHT MID


FIND

Programmiersprachen - Referenzen -> Stringoperationen -> FIND

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Sucht die Position von Zeichen in einer Zeichenfolge (string).

Inputs

IN : STRING Zeichenfolge.
STR : STRING Zeichenfolge mit gesuchten Zeichen.

Outputs

POS : DINT Position des ersten Zeichens von STR in IN, oder 0, wenn die gesuchten Zeichen nicht gefunden wurden.

Anmerkungen

Die erste gültige Zeichenposition ist 1. Der Rückgabewert 0 bedeutet, dass die Zeichenfolge STR nicht gefunden wurde. Die Suchfunktion unterscheidet zwischen Klein- und Grossbuchstaben. In der LD Sprache wird die Operation nur ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In IL muss der erste Input (die Zeichenfolge) in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird. Das zweite Argument ist der Operand der Funktion.

ST Sprache

POS := FIND (IN, STR);

FBD Sprache

LD Sprache

Die Funktion wird nur ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
FIND STR
ST POS

seealso See also

+ MLEN DELETE INSERT REPLACE LEFT RIGHT MID


HTOA

Programmiersprachen - Referenzen -> Stringoperationen -> HTOA

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Umrechnung von ganzzahlig zu Zeichenfolge unter Anwendung einer Hexadezimalbasis.

Inputs

IN : DINT Ganzzahliger Wert.

Outputs

Q : STRING Zeichenfolge, die den ganzzahligen Wert im Hexadezimalformat darstellt.

Truth-Tabelle (Beispiele)

IN | Q
0 | '0'
18 | '12'
160 | 'A0'

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der LD Sprache muss der Input in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

Q := HTOA (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert we EN.

IL Sprache

Op1: LD IN
HTOA
ST Q

seealso See also

ATOH


INSERT

Programmiersprachen - Referenzen -> Stringoperationen -> INSERT

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Fügt Zeichen in eine Zeichenfolge (string) ein.

Inputs

IN : STRING Zeichenfolge.
STR : STRING Zeichenfolge, die die einzufügenden Zeichen enthält.
POS : DINT Position des ersten einzufügenden Zeichens (erste Zeichenposition ist 1).

Outputs

Q : STRING Modifizierte Zeichenfolge.

Anmerkungen

Die erste gültige Zeichenposition ist 1. In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der erste Input (die Zeichenfolge) in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird. Die anderen Argumente sind durch Kommas getrennte Operanden der Funktion.

ST Sprache

Q := INSERT (IN, STR, POS);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
INSERT STR, POS
ST Q

seealso See also

+ MLEN DELETE FIND REPLACE LEFT RIGHT MID


LEFT

Programmiersprachen - Referenzen -> Stringoperationen -> LEFT

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Entnimmt einer Zeichenfolge Zeichen (nach links).

Inputs

IN : STRING Zeichenfolge.
NBC : DINT Anzahl der zu entnehmenden Zeichen.

Outputs

Q : STRING Zeichenfolge, die die ersten NBC Zeichen von IN enthält.

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der erste Input (die Zeichenfolge) in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird. Das zweite Argument ist der Operand der Funktion.

ST Sprache

Q := LEFT (IN, NBC);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
LEFT NBC
ST Q

seealso See also

+ MLEN DELETE INSERT FIND REPLACE RIGHT MID


LEN

Programmiersprachen - Referenzen -> Stringoperationen -> LEN

Funktion - Ermittelt die Anzahl der Zeichen in einer Zeichenfolge (string).

Inputs

IN : STRING Zeichenfolge.

Outputs

NBC : INT Aktuelle Anzahl der Zeichen in der Zeichenfolge. 0, wenn die Zeichenfolge leer ist.

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Input in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

NBC := LEN (IN);


LoadString

Programmiersprachen - Referenzen -> Stringoperationen -> LoadString

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Einen String von der aktiven String Tabelle laden.

Eingänge

ID : DINT ID des Strings in der der String Tabelle

Ausgänge

Q : STRING Geladener String oder leerer String im Fall eines Fehlers

Anmerkungen

Diese Funktion lädt einen String von einer aktiven String Tabelle und speichert diesen in einer STRING Variable. Die Funktion StringTable() wird verwendet um die aktive String Tabelle auszuwählen.

Der Eingang ID (Kennung des String Elements) ist die Kennung wie sie in der String Tabellen Ressource deklariert wurde. Es ist nicht notwendig diese Kennung nochmals zu definieren. Diese Aufgabe übernimmt die Runtime.

ST Sprache

Q := LoadString (ID);

FBD Sprache

LD Sprache

IL Sprache

Op1: LD ID
LoadString
ST Q

seealso See also

StringTable String tables


MID

Programmiersprachen - Referenzen -> Stringoperationen -> MID

Funktion - Entnimmt einer Zeichenfolge Zeichen (an einer beliebigen Position).

Inputs

IN : STRING Zeichenfolge.
NBC : DINT Anzahl der zu entnehmenden Zeichen.
POS : DINT Position des ersten zu entnehmenden Zeichens (das erste Zeichen von IN ist auf Position 1).

Outputs

Q : STRING Zeichenfolge, die die ersten NBC Zeichen von IN enthält.

Anmerkungen

Die erste gültige Position ist 1. In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der erste Input (die Zeichenfolge) in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird. Die anderen Argumente sind durch Kommas getrennte Operanden der Funktion.

ST Sprache

Q := MID (IN, NBC, POS);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
MID NBC, POS
ST Q

seealso See also

+ MLEN DELETE INSERT FIND REPLACE LEFT RIGHT


MLEN

Programmiersprachen - Referenzen -> Stringoperationen -> MLEN

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Ermittelt die Anzahl der Zeichen in einer Zeichenfolge (string).

Inputs

IN : STRING Zeichenfolge.

Outputs

NBC : DINT Aktuelle Anzahl der Zeichen in der Zeichenfolge. 0, wenn die Zeichenfolge leer ist.

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der Input in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird.

ST Sprache

NBC := MLEN (IN);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
MLEN
ST NBC

seealso See also

+ DELETE INSERT FIND REPLACE LEFT RIGHT MID


REPLACE

Programmiersprachen - Referenzen -> Stringoperationen -> REPLACE

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Ersetzt Zeichen in einer Zeichenfolge.

Inputs

IN : STRING Zeichenfolge.
STR : STRING Zeichenfolge mit den einzufügenden Zeichen, die
anstatt der entfernten Zeichen (NDEL input) eingefügt werden.
NDEL : DINT Anzahl der Zeichen, die vor dem Einfügen von STR gelöscht werden sollen.
POS : DINT Position, an der Zeichen ersetzt werden (erste Zeichenposition ist 1).

Outputs

Q : STRING Modifizierte Zeichenfolge.

Anmerkungen

Die erste gültige Zeichenposition ist 1. In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der erste Input (die Zeichenfolge) in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird. Die anderen Argumente sind durch Kommas getrennte Operanden der Funktion.

ST Sprache

Q := REPLACE (IN, STR, NDEL, POS);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
REPLACE STR, NDEL, POS
ST Q

seealso See also

+ MLEN DELETE INSERT FIND LEFT RIGHT MID


RIGHT

Programmiersprachen - Referenzen -> Stringoperationen -> RIGHT

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Entnimmt einer Zeichenfolge Zeichen (nach rechts).

Inputs

IN : STRING Zeichenfolge.
NBC : DINT Anzahl der zu entnehmenden Zeichen.

Outputs

Q : STRING Zeichenfolge, die die letzten NBC Zeichen von IN enthält.

Anmerkungen

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung. In der IL Sprache muss der erste Input (die Zeichenfolge) in das aktuelle Ergebnis geladen werden, bevor die Funktion aufgerufen wird. Das zweite Argument ist der Operand der Funktion.

ST Sprache

Q := RIGHT (IN, NBC);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
RIGHT NBC
ST Q

seealso See also

+ MLEN DELETE INSERT FIND REPLACE LEFT MID


StringTable

Programmiersprachen - Referenzen -> Stringoperationen -> StringTable

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Wählt eine aktive String Tabelle.

Eingänge

TABLE : STRING Name der String Tabellen Ressource - muss eine Konstante sein.
COL : STRING Name der Spalte in der Tabelle - muss eine Konstante sein.

Ausgänge

OK : BOOL TRUE wenn OK.

Anmerkungen

Diese Funktion wählt eine Spalte einer validen String Tabellen Ressource. Damit wird die Tabelle aktiv. Die LoadString() Funktion bezieht sich immer auf die aktive String Tabelle.

Argumente müssen konstante String Ausdrücke sein und müssen zur deklarierten String Tabelle und dem Spaltennamen passen.

Wenn im Projekt nur eine String Tabelle mit nur einer Spalte definiert ist, ist es nicht notwendig diese Funktion aufzurufen.

ST Sprache

OK := StringTable ('MyTable', 'FirstColumn");

FBD Sprache

LD Sprache

IL Sprache

Op1: LD 'MyTable'
StringTable 'First Column'
ST OK

seealso See also

LoadString String tables


StringToArrayStringToArray / StringToArrayU

Programmiersprachen - Referenzen -> Stringoperationen -> StringToArrayStringToArray / StringToArrayU

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Kopiert die Zeichen eines STRINGs auf ein SINT Array.

Inputs

SRC : STRING Quellstring STRING.
DST : SINT Zielarray aus SINT short integer (USINT für StringToArrayU).

Outputs

Q : DINT Anzahl der kopierten Zeichen.

Anmerkungen

In der LD Sprache wird die Operation nur ausgeführt, wenn der Input-Rung (EN) TRUE ist. Der Output-Rung (ENO) behält den gleichen Wert wie der Input-Rung.

In der IL Sprache muss der Input in das aktuelle Resultat geladen werden, bevor die Funktion aufgerufen wird.

Diese Funktion kopiert die Zeichen des SRC Strings auf die ersten Zeichen des DST Arrays. Die Funktion überprüft die maximale Größe der Zielarrays und schränkt bei Bedarf die Anzahl der kopierten Zeichen ein.

ST Sprache

Q := StringToArray (SRC, DST);

FBD Sprache

LD Sprache

Die Funktion wird nur ausgeführt, wenn EN TRUE ist.
ENO behält den selben Wert wie as EN.

IL Sprache

Op1: LD SRC
StringToArray DST
ST Q

seealso See also

ArrayToString


Fortgeschrittene Operationen (Advanced)

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced)

Previous chapter Next chapter Show all Show all Hide all Hide all

Im Folgenden stehen die Funktionsbausteine für fortgeschrittene Operationen.

Analoge Signalbearbeitung

Baustein | Beschreibung
Average Integral Derivate PID Ramp Lim_Alrm Hyster, HysterAcc SigPlay SigScale CurveLin SurfLin | Berechnet den Mittelwert von Signal-Samples. Berechnet das Integral eines Signals. Signal-Ableitung. PID-Regler. Rampen Signal. Hoch-/Tiefpegel-Erkennung. Hysterese-Berechnung. Analoges Signal abspielen. Einen Stützpunkt eines analogen Signals abfragen. Linear interpolation on a curve. Linear interpolation on a surface.

Alarm-Management

Baustein | Beschreibung
Lim_Alrm Alarm_M Alarm_A | Hoch-/Tiefpegel-Erkennung (Alarmierung). Alarm mit manuellem Reset. Alarm mit automatischem Reset.

Datenerfassung und Serialisierung

Baustein | Beschreibung
StackInt FIFO LIFO SerializeIn SerializeOut SerGetString SerPutString | Stapel ganzzahliger Werte. "First in / First out" Liste. "Last in / First out" Liste. Extrahiert Daten aus einem binären Rahmen. Kopiert Daten in einen binären Rahmen. Extrahiert einen STRING aus einem binären Rahmen. Kopiert einen STRING in einen binären Rahmen.

Datenprotokollierung

Baustein | Beschreibung
LogFileCSV | Variablenwerte in einer CSV Datei loggen.

Spezialoperationen

Baustein | Beschreibung
GetSysInfo Printf CycleStop FatalStop EnableEvents ApplyRecipeColumn VLID SigID | Liefert Systeminformationen. Trace. Setzt die Applikation in den Schritt-Modus. Bricht den aktuellen Zyklus mit einem fatalen Fehler ab. Aktivieren / Deaktivieren der Generierung von Events (Binding). Übernimmt die Werte einer Spalte einer Rezept Datei. Feststellen der ID einer eingebetteten Liste von Variablen. Die ID einer Signal-Ressources abfragen.

Kommunikation

SERIO: Serielle Kommunikation SERIO_B
AS-Schnittstelle
TCP/IP Funktionen
UDP Funcktionen
MBSlaveRTU MBSlaveUDP MBMasterRTU MBMasterTCP
CanRcvMsg CanSndMsg
CANopen funktionen
DNP3 Master

Weitere

Dateiverwaltungsfunktionen
Dynamische Speicherzuweisungsfunktionen
Funktionen zur Verwaltung der Echtzeituhr
Textpuffer
XML schreiben und parsen
The Win-GRAF PAC Registry management functions

Noch in diesem Kapitel

ALARM_A

ALARM_M

ApplyRecipeColumn

Arrays management functions

AS-Schnittstellen Funktionen

AVERAGE / AVERAGEL

CANopen Funktionen

CanRcvMsg

CanSndMsg

CycleStop

CurveLin

DERIVATE

DNP3 Master function blocks

Dynamische Speicherzuweisungsfunktionen

EnableEvents

FatalStop

FIFO

Dateiverwaltungsfunktionen

GETSYSINFO

HYSTER

HYSTERacc

INTEGRAL

LIFO

LIM_ALRM

LogFileCSV

MBMasterRTU

MBMasterTCP

MBSlaveRTU / MBSlaveRTUex

MBSlaveUDP / MBSlaveUDPex

PID

printf

RAMP

Funktionen zur Verwaltung der Echtzeituhr

SerializeIn

SerializeOut

SerGetString

SerPutString

SERIO

SERIO_B

SigID

SigPlay

SigScale

STACKINT

SurfLin

TCP/IP Management Funktionen

Text buffers manipulation

UDP Management Funktionen

VLID

XML writing and parsing

The Win-GRAF PAC Registry Management Funktionen


ALARM_A

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> ALARM_A

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsbaustein - Alarm mit automatischer Quittierung.

Inputs

IN : BOOL Prozess Signal.
ACK : BOOL Quittierung.

Outputs

Q : BOOL TRUE wenn der Alarm aktiv ist.
QACK : BOOL TRUE wenn der Alarm quittiert wurde.

Ablauf

Anmerkungen

Kombinieren Sie diesen Funktionsbaustein mit dem Funktionsbaustein LIM_ALRM um Alarme für analoge Werte zu generieren.

ST Sprache

(* MyALARM ist eine deklarierte Instanz des Funktionsblocks ALARM_A *)

MyALARM (IN, ACK, RST);
Q := MyALARM.Q;
QACK := MyALARM.QACK;

FBD Sprache

LD Sprache

IL Sprache

(* MyALARM ist eine deklarierte Instanz des Funktionsblocks ALARM_A *)

Op1: CAL MyALARM (IN, ACK, RST)
LD MyALARM.Q
ST Q
LD MyALARM.QACK
ST QACK

seealso See also

ALARM_M LIM_ALRM


ALARM_M

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> ALARM_M

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsbaustein - Alarm mit manueller Quittierung.

Inputs

IN : BOOL Prozess Signal.
ACK : BOOL Quittierung.
RST : BOOL Reset.

Outputs

Q : BOOL TRUE wenn Alarm aktiv ist.
QACK : BOOL TRUE wenn Alarm quittiert wurde.

Ablauf

Anmerkungen

Kombinieren Sie diesen Funktionsbaustein mit dem Funktionsbaustein LIM_ALRM um Alarme für analoge Werte zu generieren.

ST Sprache

(* MyALARM st eine deklarierte Instanz des Funktionsblocks ALARM_M *)

MyALARM (IN, ACK, RST);
Q := MyALARM.Q;
QACK := MyALARM.QACK;

FBD Sprache

LD Sprache

IL Sprache

(* MyALARM st eine deklarierte Instanz des Funktionsblocks ALARM_M *)

Op1: CAL MyALARM (IN, ACK, RST)
LD MyALARM.Q
ST Q
LD MyALARM.QACK
ST QACK

seealso See also

ALARM_A LIM_ALRM


ApplyRecipeColumn

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> ApplyRecipeColumn

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Übernimmt die Werte einer Spalte einer Rezept Datei.

Inputs

FILE : STRING Pfadname der Rezept Datei (.RCP oder .CSV).
COL : DINT Index der Spalte im Rezept (beginnend mit 0).

Outputs

OK : BOOL TRUE wenn OK - FALSE wenn Parameter ungültig sind.

Anmerkungen

Der Input 'FILE' spezifiziert den Pfadnamen einer existierenden .RCP oder .CSV Datei. Wird kein Pfad spezifiziert, wird vorausgesetzt, dass sich die Datei im Projekt Ordner befindet. RCP Dateien werden mit dem Rezept Editor erstellt. CSV Dateien können mit MS EXCEL oder NOTEPAD erstellt werden.

In CSV Dateien muss die erste Zeile die Spaltenüberschriften enthalten. Diese werden beim Kompilieren ignoriert. Pro Zeile darf nur eine Variable enthalten sein. Die erste Spalte enthält die Variablen Symbole. Die weiteren Spalten enthalten die Rezeptwerte.

Bei einer leeren Zelle wird der selbe Wert wie der vorherigen, linken Zelle verwendet. Ist die erste Zelle leer wird der Wert NULL (0 oder FALSE oder leerer String) verwendet.

In der LD Sprache wird die Funktion nur ausgeführt wenn der Input Rung (EN) TRUE ist. Der Output Rung ist das Ergebnis der Funktion.

attention Attention

Rezept Dateien werden beim Compiler-Vorgang gelesen und in den Applikations-Code eingebettet. Dies bewirkt, dass Änderungen in der Rezept Datei nach dem Compile-Vorgang und Download nicht mehr berücksichtigt werden!

ST Sprache

OK := ApplyRecipeColumn ('MyFile.rcp', COL);

FBD Sprache

LD Sprache

Die Funktion wird nur ausgeführt wenn EN TRUE ist.

IL Sprache

Op1: LD 'MyFile.rcp'
ApplyRecipeColumn COL
ST OK


Arrays management functions

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Arrays management functions

Previous chapter Next chapter Show all Show all Hide all Hide all

The following functions enable the management of arrays:

attention Attention
  • These functions may be not available on some targets. Please refer to OEM instructions for further details about available features.

ARCOUNT: search for occurences of a value within an array

COUNT := ARCOUNT (ARR, PATTERN, STARTINDEX);

ARRAY : ANY single or multi dimension array.
PATTERN : ANY searched value.
STARTINDEX : DINT index of the position where to start - 0 to search in the complete array.

Return value

Number of occurrences found.

ARFILL: fill an array with a value

OK := ARFILL (ARR, VALUE);

ARRAY : ANY single or multi dimension array.
PATTERN : ANY value to be copied in all array elements.

Return value

TRUE if successful.

ARFIND: search for the first occurence of a value within an array

INDEX := ARFIND (ARR, PATTERN, STARTINDEX);

ARRAY : ANY single dimension array.
PATTERN : ANY searched value.
STARTINDEX : DINT index of the position where to start - 0 to search in the complete array.

Return values

Index of the first occurrence found.

ARMAX: search for the maximum value within an array

Q := ARMAX (ARR);

ARRAY : ANY single or multi dimension array.

Return value

Maximum value found found.

ARMIN: search for the minimum value within an array

Q := ARMIN (ARR);

ARRAY : ANY single or multi dimension array.

Return value

Minimum value found found.

ARSORT: sort items of an an array

OK := ARSORT (ARR);

ARRAY : ANY single dimension array.

Return value

TRUE if successful.


AS-Schnittstellen Funktionen

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> AS-Schnittstellen Funktionen

Previous chapter Next chapter Show all Show all Hide all Hide all

Die folgenden Funktionen ermöglichen spezielle Operation in AS-i Netzwerken:

ASiReadPP permanente Parameter eines AS-i Slave lesen.
ASiWritePP permanente Parameter eines AS-i Slave schreiben.
ASiSendParam Parameter zu einem AS-i Slave senden.
ASiReadPI aktuelle Parameter eines AS-i Slave lesen.
ASiStorePI aktuelle Parameter als permanente Parameter speichern.

attention Attention

AS-i Netzwerke sind unter Umständen auf manchen Zielsystemen nicht verfügbar. Bitte lesen Sie die OEM Instruktionen für mehr Information über verfügbare Features.

Schnittstelle

Params := ASiReadPP (Master, Slave);
bOK := ASiWritePP (Master, Slave, Params);
bOK := ASiSendParam (Master, Slave, Params);
Params := ASiReadPI (Master, Slave);
bOK := ASiStorePI (Master);

Argumente

Master : DINT Index des AS-i Masters (1..N) wie in Konfiguration angegeben.
Slave : DINT Adresse des AS-i Slave (1..32 / 33..63).
Params : DINT Wert von AS-i Parametern.
bOK : BOOL TRUE wenn erfolgreich.


AVERAGE / AVERAGEL

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> AVERAGE / AVERAGEL

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - Berechnet den Mittelwert von Signal-Samples.

Inputs

RUN : BOOL Gibt den Befehl frei.
XIN : REAL Eingangssignal (*).
N : DINT Anzahl der Samples, die für die Berechnung des Mittelwerts gespeichert werden - kann 128 nicht überschreiten.

Outputs

XOUT : REAL Mittelwert der gespeicherten Samples (*).

(*) AVERAGEL hat LREAL Argumente.

Anmerkungen

Der Mittelwert wird aus den gespeicherten Samples berechnet, deren Anzahl weniger als N sein kann, wenn der Baustein freigegeben ist. In der LD Sprache ist das Input-Rung der RUN-Befehl. Das Output-Rung behält den Status des Input-Rung bei.

Der "N" Eingang wird nur dann berücksichtigt wenn der Eingang RUN den Wert FALSE hat. Deshalb muss RUN nach einer Veränderung zurückgesetzt werden.

ST Sprache

MyAve ist eine deklarierte Instanz des Funktionsblocks AVERAGE.

MyAve (RUN, XIN, N);
XOUT := MyAve.XOUT;

FBD Sprache

LD Sprache

ENO hat den gleichen Status wie RUN.

IL Sprache

(* MyAve ist eine deklarierte Instanz des Funktionsblocks AVERAGE *)

Op1: CAL MyAve (RUN, XIN, N)
LD MyAve.XOUT
ST XOUT

seealso See also

INTEGRAL DERIVATE LIM_ALRM HYSTER STACKINT


CANopen Funktionen

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> CANopen Funktionen

Previous chapter Next chapter Show all Show all Hide all Hide all

Für die Verwaltung für CANopen Geräten steht eine Reihe von Funktionen und Funktionsblöcken zur Verfügung. Diese Funktionen beziehen sich auf die CANopen Master-Konfiguration, die im Fieldbus-Konfigurator definiert wurde.

NMT messages senden

The folgenden Funktionen werden benutzt, um eine NMT message zu einem CANopen Slave zu schicken:

OK := coNmtReset (PORT, SLV); (* Knoten zurücksetzen *)

OK := coNmtStart (PORT, SLV); (* Knoten starten *)

OK := coNmtStop (PORT, SLV); (* Knoten stoppen *)

OK := coNmtEnterPreop (PORT, SLV); (* Prä-operativ eingeben *)

Argument:

OK : BOOL; (* TRUE wenn erfolgreich - FALSE wenn besetzt oder Slave nicht konfiguriert *)

PORT : STRING; (* Name des CAN Port wie are in der CANopen Master-Konfiguration definiert wurde*)

SLV : DINT; (* CANopen Slave-Nummer *)

Wichtig: Sie können nicht mehr als eine NMT message zum gleichen Slave während des gleichen PLC-Zyklus senden.

Einen einfachen Parameter (SDO) lesen - coReadParam Funktionsblock

Der coReadParam Funktionsblock wird benutzt, um eine einfache SDO message zu senden, die einen Parameter eines Slave liest.

Input arguments:

EN : BOOL; (* die message wird bei einer steigenden Flanke des Input gesendet *)

PORT : STRING; (* Name des CAN Port wie are in der CANopen Master-Konfiguration definiert wurde*)

SLV : DINT; (* CANopen Slave-Nummer *)

Param : DINT; (* SDO Parameterindex *)

Sub : DINT; (* SDO Parametersubindex *)

TO : TIME; (* Timeout für den Austausch *)

Output arguments:

Ready: BOOL; (* TRUE wenn der Block fertig ist - FALSE während des Austauschs *)

RC : DINT; (* CANopen return check *)

VAL : DINT; (* Wert des Leseparameters, der vom Slave beantwortet wurde *)

Einen einfachen Parameter (SDO) schreiben - coWriteParam Funktionsblock

Der coWriteParam Funktionsblock wird benutzt, um eine einfache SDO message zu senden, die einen Parameter auf einen Slave schreibt.

Input arguments:

EN : BOOL; (* die message wird bei einer steigenden Flanke des Input gesendet *)

PORT : STRING; (* Name des CAN Port wie are in der CANopen Master-Konfiguration definiert wurde*)

SLV : DINT; (* CANopen Slave-Nummer *)

Param : DINT; (* SDO Parameterindex *)

Sub : DINT; (* SDO Parametersubindex *)

VAL : DINT; (* Parameterwert *)

LEN : DINT; (* Anzahl der zu sendenden Bytes - von 1 bis 4 *)

TO : TIME; (* Timeout für den Austausch *)

Output arguments:

Ready: BOOL; (* TRUE wenn der Block fertig ist - FALSE während des Austauschs *)

RC : DINT; (* CANopen return check *)

PDO mapping (SDOs) senden - coSendPdoMap Funktionsblock

Der coSendPdoMap Funktionsblock sendet eine SDO message Sequenz für die Anwendung des PDO-Mapping auf einen Slave, so wie es in der CANopen Konfiguration definiert ist.

Input arguments:

EN : BOOL; (* die message wird bei einer steigenden Flanke des Input gesendet *)

PORT : STRING; (* Name des CAN Port wie are in der CANopen Master-Konfiguration definiert wurde*)

SLV : DINT; (* CANopen Slave-Nummer *)

TO : TIME; (* Timeout für den Austausch *)

Output arguments:

Ready: BOOL; (* TRUE wenn der Block fertig ist - FALSE während des Austauschs *)

RC : DINT; (* CANopen return check *)


CanRcvMsg

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> CanRcvMsg

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - Receive a CANbus message.

Inputs

PORT : STRING CAN port identification (siehe Anmerkungen).

DATA : USINT[] CAN data (wir beim Ausgang gefüllt) - Die Arraygröße muss 8 sein.

Outputs

OK : BOOL TRUE wenn erfolgreich.

ID : DWORD CAN message ID.

LEN : DINT CAN message Datenlänge.

Anmerkungen

Diese Funktion bekommt die nächste erhaltene Nachricht seit dem letzten Zyklus. Nur Meldungen mit IDs, die in der CANbus Konfiguration nicht konfiguriert wurden, werden von diesem Block empfangen.

Die Anzahl der maximal empfangbaren Nachrichten in einem Zyklus ist durch die FIFO-Größe begrenzt, die in der CANbus Konfiguration definiert wurde.

Der PORT-Eingang definiert einen konfigurierten CANbus:

- Wenn Sie einen leeren String spezifizieren, wird der erste konfiguriert CAN-Port selektiert.

- Wenn Sie einen String mit einer Nummer spezifizieren, wird der entsprechende CAN-Port selektiert. Zum Beispiel bedeutet '2', dass der zweite Port selektiert wird.

- Sie können auch den String spezifizieren, den Sie bei "Port settings" in der CANbus Konfiguration angegeben haben, z.B. 'CAN0.'


CanSndMsg

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> CanSndMsg

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion- Send a CANbus message.

Inputs

PORT : STRING CAN port identification (siehe Anmerkungen).

ID : DWORD CAN message ID.

LEN : DINT CAN message Datenlänge.

DATA : USINT[] CAN data.

RTR : BOOL Senden im RTR Modus.

Outputs

OK : BOOL TRUE wenn erfolgreich.

Anmerkungen

Diese Funktion sendet eine asynchrone Nachricht auf dem spezifizierten CAN-Port. Die Nachricht wird am Ende des aktuellen Zyklus gesendet.

Die Anzahl der maximal versendeten Nachrichten in einem Zyklus ist durch die FIFO-Größe begrenzt, die in der CANbus Konfiguration definiert wurde.

Der PORT-Eingang definiert einen konfigurierten CANbus:

- Wenn Sie einen leeren String spezifizieren, wird der erste konfiguriert CAN-Port selektiert.

- Wenn Sie einen String mit einer Nummer spezifizieren, wird der entsprechende CAN-Port selektiert. Zum Beispiel bedeutet '2', dass der zweite Port selektiert wird.

- Sie können auch den String spezifizieren, den Sie bei "Port settings" in der CANbus Konfiguration angegeben haben, z.B. 'CAN0.'


CycleStop

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> CycleStop

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Setzt die Applikation in den Schritt-Modus.

Inputs

IN : BOOL Bedingung.

Outputs

Q : BOOL TRUE wenn ausgeführt.

Anmerkungen

Diese Funktion setzt die Virtual Machine in den Schritt-Modus. Mit dem Debugger kann die normale Ausführung wieder gestartet werden.

Die VM wird nur in den Schritt-Modus gesetzt, wenn das IN Argument TRUE ist.

Das aktuelle Programm und alle aufgerufenen Sub-Programme oder UDFBs werden bis zu deren Ende abgearbeitet. Alle weiteren Programme des Zyklus’ werden nicht ausgeführt.


CurveLin

Funktionsblock - Lineare Interpolation einer Kurve.

Inputs

X : REAL X Koordinate des zu interpolierenden Punktes.

XAxis : REAL[] X Koordinaten der bekannten Punkte auf der X Achse.

YVal : REAL[] Y Koordinate der Punkte auf der X-Achse.

Outputs

Y : REAL Interpolierter Y-Wert entsprechend des Input X

OK : BOOL TRUE wenn erfolgreich.

ERR : DINT Fehlercode wenn fehlgeschlagen - 0 wenn OK.

Anmerkungen

Diese Funktion führt eine lineare Interpolation innerhalb einer Liste von Punkten aus. Diese Liste ist als eindimensionaler Array für die X-Achse definiert. Der Wert des Outputs Y ist eine Interplation der Y-Werte der zwei umgebenden auf der X-Achse definierten Punkte. Y-Werte von definierten Punkten werden mit dem eindimensionalen Array YVal übergeben.

Werte von XAxis müssen von klein nach groß sortiert sein. Es müssen mindestens zwei Punkte für die X-Achse definiert sein. Die YVal und XAxis Arrays müssen dieslebe Dimension haben.

Ist der X Input kleiner als der kleinste definiert X-Punkt, so übernimmt der Y Output den ersten Wert welcher in YVal definiert ist und ein Fehler wird ausgegeben. Ist der X Input größer als der größte definiert X-Punkt, so übernimmt der Y Output den letzten Wert welcher in YVal definiert ist und ein Fehler wird ausgegeben.

Der Output ERR gibt Auskunft über den Fehler wenn die Funktion fehlschlägt:

Fehlercode | Bedeutung
0 | OK
1 | Ungültige Dimension des Input Arrays
2 | Ungültige Punkte für die X-Achse
4 | X ist außerhalbe der definierten X-Achse


DERIVATE

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> DERIVATE

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - Differenziert ein Signal.

Inputs

RUN : BOOL Run-Befehl: TRUE=differenzieren / FALSE=halten.
XIN : REAL Eingangssignal.
CYCLE : TIME Sampling-Periode (sollte nicht kleiner sein als die Zykluszeit des Zielsystems).

Outputs

XOUT : REAL Ausgangssignal.

Anmerkungen

In der LD Sprache ist das Input-Rung der RUN-Befehl. Das Output-Rung behält den gleichen Status bei wie das Input-Rung.

ST Sprache

MyDerv ist eine deklarierte Instanz des Funktionsblocks DERIVATE.

MyDerv (RUN, XIN, CYCLE);
XOUT := MyDerv.XOUT;

FBD Sprache

LD Sprache

ENO hat den gleichen Status wie RUN.

IL Sprache

MyDerv ist eine deklarierte Instanz des Funktionsblocks DERIVATE.

Op1: CAL MyDerv (RUN, XIN, CYCLE)
LD MyDerv.XOUT
ST XOUT

seealso See also

AVERAGE INTEGRAL LIM_ALRM HYSTER STACKINT


DNP3 Master function blocks

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> DNP3 Master function blocks

Previous chapter Next chapter Show all Show all Hide all Hide all

DNP3_CMDANLG

Issue an analog command

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
PNUM : UINT | Point number
FC : UINT | Fucntion code - must be DNP3_FC_SELECT or DNP3_FC_OPERATE or DNP3_FC_DIRECT_OP or DNP3_FC_DIRECT_OP_NOACK See values at the end of this page
VART : UINT | Object variation to use in request
QUAL : UINT | Qualifier - must be DNP3_QUAL_8BIT_INDEX or DNP3_QUAL_16BIT_INDEX See values at the end of this page
VALUE : ANY | Value to write - can be any data type

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3_CMDBIN

Issue a binary command

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
PNUM : UINT | Point number
FC : UINT | Fucntion code - must be DNP3_FC_SELECT or DNP3_FC_OPERATE or DNP3_FC_DIRECT_OP or DNP3_FC_DIRECT_OP_NOACK See values at the end of this page
CONTROL : UINT | Control code - must be DNP3_CROB_CTRL_PULSE_ON or DNP3_CROB_CTRL_PULSE_OFF or DNP3_CROB_CTRL_LATCH_ON or DNP3_CROB_CTRL_LATCH_OFF or DNP3_CROB_CTRL_CLEAR or DNP3_CROB_CTRL_PAIRED_CLOSE or DNP3_CROB_CTRL_PAIRED_TRIP See values at the end of this page
QUAL : UINT | Qualifier - must be DNP3_QUAL_8BIT_INDEX or DNP3_QUAL_16BIT_INDEX See values at the end of this page
TON : TIME | ON duration
TOFF : TIME | OFF duration

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3_EVPOLL

Issue an event data poll

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3_FREEZCNTR

Issue a freeze counters request

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
QUAL : UINT | Qualifier - must be DNP3_QUAL_ALL_POINTS or DNP3_QUAL_8BIT_START_STOP or DNP3_QUAL_16BIT_START_STOP See values at the end of this page
START : UINT | Start point if qualifier is 8/16 bit start/stop
STOP : UINT | Stop point if qualifier is 8/16 bit start/top

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3_INTPOLL

Issue an integrity data poll

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3_READCLASS

Issue a read class request

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
QUAL : UINT | Qualifier - must be DNP3_QUAL_ALL_POINTS or DNP3_QUAL_8BIT_LIMITED_QTY or DNP3_QUAL_16BIT_LIMITED_QTY See values at the end of this page
QTY : UINT | Quantity to request if qualifier is 8/16 bit limited quantity
CLASS0 : BOOL | TRUE to request class 0 (static data)
CLASS1 : BOOL | TRUE to request class 1 event data
CLASS2 : BOOL | TRUE to request class 2 event data
CLASS3 : BOOL | TRUE to request class 3 event data

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3_READGROUP

Issue a read group request to the specified session

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
GRP : UINT | Object group for read request
VART : UINT | object variation to read. The type specified by this is specific to the object group being read
QUAL : UINT | Qualifier - must be DNP3_QUAL_ALL_POINTS or DNP3_QUAL_8BIT_START_STOP or DNP3_QUAL_16BIT_START_STOP or DNP3_QUAL_8BIT_LIMITED_QTY or DNP3_QUAL_16BIT_LIMITED_QTY See values at the end of this page
START : UINT | Start point if qualifier is start/stop
STOP : UINT | Stop point if qualifier is start/stop or quantity if qualifier is limited points

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3_READPTS

Issue an read one or more specific data points request to the specified session

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
GRP : UINT | Object group for read request
VART : UINT | object variation to read
QUAL : UINT | Qualifier - must be DNP3_QUAL_8BIT_INDEX or DNP3_QUAL_16BIT_INDEX See values at the end of this page
ARPTS[] : UINT | Array of point numbers to read

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3_WRITEBIN

Issue a binary output write command to the specified session

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
QUAL : UINT | Qualifier - must be DNP3_QUAL_8BIT_START_STOP or DNP3_QUAL_16BIT_START_STOP See values at the end of this page
START : UINT | Start point index
STOP : UINT | End point index
VALUE[] : BOOL | Array of values (FALSE = off / TRUE = on)

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

DNP3_WRITESTR

Write a string object to the specified point

Input | Description
EN : BOOL | Activate the block
SESN : UINT | Session number
PNUM : UINT | Point number for the string to write
STR : STRING | String value

Output | Description
READY : BOOL | TRUE if the block is ready for a new command
RC : DINT | Status: see values DNP3_RESP_STATUS_... at the end of this page

Command and status values

Below are command values and status values used by or returned by DNP3 Master function blocks. You can directly copy / paste these definitions in the "Global Defines" editor.

// Qualifier

#define DNP3_QUAL_8BIT_START_STOP 16#00

#define DNP3_QUAL_16BIT_START_STOP 16#01

#define DNP3_QUAL_ALL_POINTS 16#06

#define DNP3_QUAL_8BIT_LIMITED_QTY 16#07

#define DNP3_QUAL_16BIT_LIMITED_QTY 16#08

#define DNP3_QUAL_8BIT_INDEX 16#17

#define DNP3_QUAL_16BIT_INDEX 16#28

// Function code

#define DNP3_FC_SELECT 16#03

#define DNP3_FC_OPERATE 16#04

#define DNP3_FC_DIRECT_OP 16#05

#define DNP3_FC_DIRECT_OP_NOACK 16#06

// Values for control code of CROB

#define DNP3_CROB_CTRL_PULSE_ON 16#01 // The point is turned on for the specified onTime, turned off for the specified offTime, and left in the off state

#define DNP3_CROB_CTRL_PULSE_OFF 16#02 // The point is turned off for the specific offTime, then turned on for the specified onTime, and left in the on state

#define DNP3_CROB_CTRL_LATCH_ON 16#03 // The point is latched on

#define DNP3_CROB_CTRL_LATCH_OFF 16#04 // The point is latched off

#define DNP3_CROB_CTRL_CLEAR 16#20 // Cancel the currently running operation

#define DNP3_CROB_CTRL_PAIRED_CLOSE 16#40 // Activate Close relay

#define DNP3_CROB_CTRL_PAIRED_TRIP 16#80 // Activate Trip relay

// Response values

#define DNP3_RESP_STATUS_SUCCESS 16#00 // This indicates the request has completed successfully

#define DNP3_RESP_STATUS_INTERMEDIATE 16#01 // This indicates a response was received but the requested command is not yet complete

#define DNP3_RESP_STATUS_FAILURE 16#02 // This indicates that the transmission of the request failed

#define DNP3_RESP_STATUS_MISMATCH 16#03 // The response to a select or an execute did not echo the request

#define DNP3_RESP_STATUS_STATUSCODE 16#04 // The response to a select or an execute echoed the request, except the status code was different indicating a failure

#define DNP3_RESP_STATUS_IIN 16#05 // The response to the request had IIN bits set indicating the command failed

#define DNP3_RESP_STATUS_TIMEOUT 16#06 // This indicates that the request has timed out

#define DNP3_RESP_STATUS_CANCELED 16#07 // Request canceled by user

#define DNP3_RESP_STATUS_OTHERERR 16#ff // Command failed (ie. Variation not supported)

© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


Dynamische Speicherzuweisungsfunktionen

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Dynamische Speicherzuweisungsfunktionen

Previous chapter Next chapter Show all Show all Hide all Hide all

Die folgenden Funktionen ermöglichen die dynamische Zuweisung von Arrays zur Speicherung ganzzahliger Werte vom Typ DINT:

ARCREATE Zuweisung eines Arrays ganzzahliger Werte vom Typ DINT.
ARREAD einen DINT Wert in einem von ARCREATE zugewiesenen Array lesen.
ARWRITE einen DINT Wert in ein von ARCREATE zugewiesenes Array schreiben.

attention Attention
  • Der für die Arrays benutzte Speicherplatz wird direkt vom Betriebssystem des Zielsystems zugewiesen. Die Runtime garantiert nicht, dass der erforderliche Speicherplatz auch verfügbar ist.
  • Die Zuweisung umfangreicher Arrays kann das Betriebssystem unstabil machen oder die Leistungsfähigkeit des Zielsystems beeinträchtigen.
  • Die dynamische Speicherzuweisung kann mislingen (nicht genügend Speicherplatz im Zielsystem vorhanden). Ihre Anwendung sollte derartige Fehler sicher verarbeiten können.
  • Die dynamische Speicherzuweisung ist nicht in allen Zielsystemen verfügbar. Siehe OEM Anweisungen für ausführliche Informationen über verfügbare Funktionalitäten.

ARCREATE: Array zuweisen

OK := ARCREATE (ID, SIZE);

ID : DINT ganzzahliges ID, das dem Array zugewiesen wird (erstes mögliches ID ist 0).
SIZE : DINT erwünschte Anzahl an DINT Werten, die im Array gespeichert werden sollen.
OK : DINT Rückgabecheck.

Rückgabewerte

  1. OK - Array ist zugewiesen und bereit für Lese-/Schreiboperationen.
  2. Das spezifizierte ID ist ungültig oder wurde schon für ein anderes Array benutzt.
  3. Die spezifizierte Grösse ist ungültig.
  4. Nicht genug Speicherplatz (Aktion vom Betriebssystem verweigert).

Der von ARCREATE zugewiesene Speicherplatz wird freigegeben, wenn die Anwendung stoppt.

ARREAD: Array-Element lesen

VAL := ARREAD (ID, POS);

ID : DINT ganzzahliges ID des Arrays.
POS : DINT Index des Elements im Array (erster gültiger Index ist 0).
VAL : DINT Wert des spezifizierten Elements oder 0, wenn die Argumente ungültig sind.

ARWRITE: Array-Element schreiben

OK := ARWRITE (ID, POS, IN);

ID : DINT ganzzahliges ID des Arrays.
POS : DINT Index des Elements im Array (erster gültiger Index ist 0).
IN : DINT Wert, der dem Element zugewiesen werden soll.
OK : DINT Rückgabecheck.

Rückgabewerte

  1. OK - Element wurde erfolgreich forciert.
  2. Das spezifizierte ID ist ungültig (kein zugewiesenes Array).
  3. Der spezifizierte Index ist ungültig (überschreitet die Grenzen des Arrays).


EnableEvents

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> EnableEvents

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Aktivieren oder deaktivieren der Generierung von Events für das Binding (Runtime-Runtime Kommunikation).

Inputs

EN : BOOL TRUE um Events zu aktivieren / FALSE um Events zu deaktivieren.

Outputs

ENO : BOOL Echo des EN Input.

Anmerkungen

Die Generierung von Events wird aktiviert wenn die Applikation startet. Der erste Event wird nach der Abarbeitung des ersten Zyklus' generiert. Um die Events ab dem ersten Zyklus zu deaktivieren, muss der Aufruf von EnableEvents (FALSE) im allerersten Zyklus stattfinden.

In der LD Sprache wird die Generierung von Events mit dem Input Rung (EN) aktiviert und der Output Rung hat den Status des Input Rung. In der IL Sprache muss der Input vor dem Aufruf der Funktion geladen werden.

ST Sprache

ENO := EnableEvents (EN);

FBD Sprache

LD Sprache

Events sind aktiviert wenn EN TRUE ist.
ENO hat den selben Wert wie EN.

IL Sprache

Op1: LD EN
EnableEvents
ST ENO


FatalStop

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> FatalStop

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Bricht die Applikation mit einem fatalen Fehler ab.

Inputs

IN : BOOL Bedingung.

Outputs

Q : BOOL TRUE wenn ausgeführt.

Anmerkungen

Diese Funktion bricht den aktuellen Zyklus ab und setzt die Virtual Machine in ERROR Modus. Mit dem Debugger kann die normale Ausführung wieder gestartet werden.

Die VM wird nur gestoppt, wenn das IN Argument TRUE ist. Das Ende des aktuellen Zyklus wird dann nicht ausgeführt.


FIFO

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> FIFO

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsbaustein - Verwaltet eine first in / first out Liste.

Inputs

PUSH : BOOL Einen neuen Wert einfügen (bei steigender Flanke).
POP : BOOL Einen Wert herausholen (bei steigender Flanke).
RST : BOOL Liste zurücksetzten.
NEXTIN : ANY Einzufügender Wert.
NEXTOUT : ANY Ältester eingefügter Wert - Aktualisierung nach Aufruf!.
BUFFER : ANY Array in welchem die Werte abgelegt werden.

Outputs

EMPTY : BOOL TRUE wenn die Liste leer ist.
OFLO : BOOL TRUE bei Überlauf eines PUSH Befehls.
COUNT : DINT Anzahl von Werten in der Liste.
PREAD : DINT Index des ältesten eingefügten Werts im Puffer.
PWRITE : DINT Index der nächsten Einfügeposition im Puffer.

Anmerkungen

NEXTIN, NEXTOUT und BUFFER müssen vom selben Datentyp sein und dürfen nicht vom Typ STRING sein.

Der Inhalt von NEXTOUT wird in einer Variable abgebildet und stellt den ältesten eingefügten Wert nach dem Aufruf des Blocks dar.

Die Werte werden im BUFFER Array abgelegt. Die Daten sind als Ringpuffer abgebildet und werden nie geschoben oder zurückgesetzt. Es werden nur die Lese- und Schreibe-Pointer und die eingefügten Werte aktualisiert. Die maximale Größe des Pufferst ist die Dimension des Arrays.

Beim ersten Aufruf des Bausteins merkt sich dieser mit welchem Array er arbeitet. Wird später die selbe Instanz mit einem anderen Puffer aufgerufen, wird der Aufruf als ungültig angesehen und jegliche Aktion unterdrückt. Die Ausgänge melden in diesem Fall eine leere Liste.

In LD Sprache ist der Input Rung der PUSH Eingang. Der Output Rung ist der EMPTY Ausgang.

ST Sprache

MyFIFO ist eine deklarierte Instanz des Funktionsbausteins FIFO.

MyFIFO (PUSH, POP, RST, NEXTIN, NEXTOUT, BUFFER);
EMPTY := MyFIFO.EMPTY;
OFLO := MyFIFO.OFLO;
COUNT := MyFIFO.COUNT;
PREAD := MyFIFO.PREAD;
PWRITE := MyFIFO.PWRITE;

FBD Sprache

LD Sprache

IL Sprache

MyFIFO ist eine deklarierte Instanz des Funktionsbausteins FIFO.

Op1: CAL MyFIFO (PUSH, POP, RST, NEXTIN, NEXTOUT, BUFFER)
LD MyFIFO.EMPTY
ST EMPTY
LD MyFIFO.OFLO
ST OFLO
LD MyFIFO.COUNT
ST COUNT
LD MyFIFO.PREAD
ST PREAD
LD MyFIFO.PWRITE
ST PWRITE

seealso See also

LIFO


Dateiverwaltungsfunktionen

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Dateiverwaltungsfunktionen

Previous chapter Next chapter Show all Show all Hide all Hide all

Die folgenden Funktionen ermöglichen sequentielle Lese-/Schreiboperationen in Dateien:

F_ROPEN Eine Datei zum Lesen öffnen.
F_WOPEN eine Datei erstellen oder zurücksetzen und zum Schreiben öffnen.
F_AOPEN eine Datei im Anfüge-Modus erstellen oder öffnen.
F_CLOSE eine offene Datei schließen.

F_EOF testen, ob das Ende einer zum Lesen geöffneten Datei erreicht ist.
FA_READ einen ganzzahligen Wert vom Typ DINT aus einer binären Datei lesen.
FA_WRITE einen ganzzahligen Wert vom Typ DINT in eine binäre Datei schreiben.
FM_READ Einen STRING-Wert (Zeichenfolge) aus einer Textdatei lesen
FM_WRITE Einen STRING-Wert (Zeichenfolge) in eine Textdatei schreiben.
FB_READ binäre Daten von einer Datei lesen.
FB_WRITE binäre Daten in eine Datei schreiben.
F_EXIST testen, ob eine Datei existiert.
F_GETSIZE Größe einer Datei auslesen.
F_COPY Datei Kopieren.
F_DELETE Datei löschen.
F_RENAME Datei umbenennen.

F_SAVERETAIN speichert RETAIN Variablen in einer Datei.
F_LOADERETAIN lädt RETAIN-Variablen aus einer Datei.

seealso See also

LogFileCSV Werte von Variablen in einer CSV Datei loggen.

Jede Datei wird in der Anwendung durch ein einmaliges Handle identifiziert und als DINT manipuliert. Die Datei-Handles werden vom Zielsystem zugewiesen. Die Handles werden von der Open-Funktion geliefert und in allen anderen Aufrufen zur Identifizierung der Datei benutzt.

attention Attention
  • Die Dateien werden direkt vom Betriebssystem des Zielsystems geöffnet und geschlossen. Das Öffnen mancher Dateien kann gefährlich für die Systemsicherheit und -integrität sein Die Anzahl der geöffneten Dateien ist möglicherweise durch das Zielsystem begrenzt.
  • Das Öffnen einer Datei kann fehlschlagen (ungültiger Pfad oder Dateiname, zu viele geöffnete Dateien...). Die Applikation sollte solche Fehlerfälle sicher abfangen.
  • Dateimanagement wird von manchen Zielsystemen nicht unterstützt. Bitte beziehen Sie sich auf die OEM Anweisungen über die verfügbaren Features.
  • Gültige Pfad-Angaben zur Ablage von Dateien hängen von der Implementierung am Zielsystem ab. Bitte beziehen Sie sich auf die OEM-Anweisungen für weitere Details verfügbarer Pfade.
  • Wenn Sie eine Flashlaufwerk verwenden, beschreiben Sie diese nicht zu oft um Datenverluste zu vermeiden. Dies gilt vor allem für die F_SAVERETAIN Funktion.

F_ROPEN: eine Datei zum Lesen öffnen.

ID := F_ROPEN (PATH);

PATH : STRING Name der Datei - die Datei muss vorhanden sein.
kann entsprechend der Zielsystem-Konventionen einen Pfadnamen einschließen.
ID : DINT ID der offenen Datei oder NULL , wenn die Datei nicht gelesen werden kann.

F_WOPEN: eine Datei zum Schreiben öffnen.

ID := F_WOPEN (PATH);

PATH : STRING Name der Datei.
kann entsprechend der Zielsystem-Konventionen einen Pfadnamen einschließen.
ID : DINT ID der geöffneten Datei oder NULL , wenn Datei nicht geöffnet werden kann.

Existiert die Datei nicht, wird diese angelegt. Existiert die Datei bereits, wird der Inhalt gelöscht.

F_AOPEN: öffnet eine Datei im Anfüge modus

ID := F_AOPEN (PATH);

PATH : STRING Name der Datei.
kann entsprechend der Zielsystem-Konventionen einen Pfadnamen einschließen.
ID : DINT ID der geöffneten Datei oder NULL , wenn Datei nicht geöffnet werden kann.

Existiert die Datei nicht, wird diese angelegt. Existiert die Datei bereits, wird diese am Ende geöffnet um weitere Einträge anzufügen.

F_CLOSE: schließt eine geöffnete Datei

OK := F_CLOSE (ID);

ID : DINT ID der geöffneten Datei.
OK : BOOL return check: TRUE , wenn erfolgreich.

F_EOF: testet, ob das Ende der Datei erreicht wurde

OK := F_EOF (ID);

ID : DINT ID der zum Lesen geöffneten Datei.
OK : BOOL TRUE , wenn das Ende der Datei erreicht wurde

F_EOF darf ausschließlich für Dateien verwendet werden, welche mit der Funktion F_ROPEN im Lesemodus geöffnet wurden

FA_READ: einen Wert vom Typ DINT aus einer Datei lesen.

Q := FA_READ (ID);

ID : DINT ID der zum Lesen geöffneten Datei.
Q : DINT gelesener Wert oder 0, wenn ein Fehler aufgetreten ist.

Die von FA_READ gelesenen ganzzahligen Werte müssen von der Funktion FA_WRITE geschrieben worden sein. Die ganzzahligen Werte werden gemäß der Speicherkonventionen des Zielsystems in einem binären Format in der Datei gespeichert.

FA_WRITE: schreibt einen DINT Wert in eine Datei

OK := FA_WRITE (ID, IN);

ID : DINT ID der zum Lesen geöffneten Datei.
IN : DINT zu schreibender, ganzzahliger Wert.
OK : BOOL return check: TRUE , wenn erfolgreich.

Die ganzzahligen Werte werden gemäß der Speicherkonventionen des Zielsystems in einem binären Format in der Datei gespeichert.

FM_READ: liest einen STRING Wert aus einer Datei

Q := FM_READ (ID);

ID : DINT ID der zum Lesen geöffneten Datei.
Q : STRING liest Wert oder leeren String im Fehlerfall.

Diese Funktion wird zum Lesen einer Textzeile in der Datei benutzt. Der Lesevorgang stoppt, wenn ein Zeilenendzeichen angetroffen wird. Der Lesevorgang stoppt, wenn die für die Return-Variable deklarierte maximale Länge erreicht wird.

FM_WRITE: schreibt einen STRING Wert in eine Datei.

OK := FM_WRITE (ID, IN);

ID : DINT ID der zum Lesen geöffneten Datei.
IN : STRING zu schreibende Zeichenfolge.
OK : BOOL return check: TRUE , wenn erfolgreich.

Diese Funktion schreibt eine Textzeile in eine Datei. Am Ende der geschriebenen Textzeile wird systematisch ein Zeilenendzeichen eingefügt.

FB_READ: binäre Daten von einer Datei lesen.

OK := FB_READ (ID, V);

ID : DINT ID der zum Lesen geöffneten Datei.
V : ANY Zu lesende Variable (darf kein String sein).
OK : BOOL return check: TRUE , wenn erfolgreich.

Variablen werden gemäß der Speicherkonventionen des Zielsystems in einem binären Format in der Datei gespeichert.

FB_WRITE: binäre Daten in eine Datei schreiben

OK := FB_WRITE (ID, V);

ID : DINT ID der zum Lesen geöffneten Datei.
V : ANY Zu schreibende Variable.
OK : BOOL return check: TRUE , wenn erfolgreich.

Variablen werden gemäß der Speicherkonventionen des Zielsystems in einem binären Format in der Datei gespeichert.

F_EXIST: testet ob Datei vorhanden

OK := F_EXIST (PATH);

PATH : STRING Name der Datei.
kann einen Pfadnamen enthalten; entsprechend der Zielsystemkonventionen.
OK : BOOL TRUE , wenn Datei vorhanden ist.

F_GETSIZE: ermittelt die Dateigröße

SIZE := F_GETSIZE (PATH);

PATH : STRING Name der Datei.
kann einen Pfadnamen enthalten; entsprechend der Zielsystemkonventionen..
SIZE : DINT Dateigröße in Bytes.

F_COPY: Kopiert eine Datei

OK := F_COPY (SRC, DST);

SRC : STRING Name der Quelldatei (muss existieren)
kann entsprechend der Zielsystem-Konventionen einen Pfadnamen einschließen.
DST : STRING Name der Zieldatei.
kann entsprechend der Zielsystem-Konventionen einen Pfadnamen einschließen.
OK : BOOL TRUE , wenn erfolgreich.

F_DELETE: löscht eine Datei

OK := F_DELETE (PATH);

PATH : STRING Name der Datei (muss existieren).
kann entsprechend der Zielsystem-Konventionen einen Pfadnamen einschließen.
OK : BOOL TRUE , wenn erfolgreich.

F_RENAME: benennt eine Datei um.

OK := F_RENAME (PATH, NEWNAME);

PATH : STRING Name der Datei (muss existieren)
kann entsprechend der Zielsystem-Konventionen einen Pfadnamen einschließen.
NEWNAME : STRING Neuer Dateiname.
OK : BOOL TRUE , wenn erfolgreich.

F_SAVERETAIN: sichert RETAIN-Variablen in einer Datei

OK := F_SAVERETAIN (PATH);

PATH : STRING Name der Datei
kann entsprechend der Zielsystem-Konventionen einen Pfadnamen einschließen.
OK : BOOL TRUE , wenn erfolgreich.

F_LOADRETAIN: lädt RETAIN-Variablen aus einer Datei

OK := F_LOADRETAIN (PATH);

PATH : STRING Name der Datei (muss existieren)
kann entsprechend der Zielsystem-Konventionen einen Pfadnamen einschließen.
OK : BOOL TRUE , wenn erfolgreich.

© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


GETSYSINFO

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> GETSYSINFO

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Liefert Systeminformationen.

Inputs

INFO : DINT ID für die angeforderte Information.

Outputs

Q : DINT Wert der angeforderten Information oder 0 bei Fehler.

Anmerkungen

Die Informationsparameter können einen der folgenden vordefinierten Werte haben:

Wert | Beschreibung
_SYSINFO_TRIGGER_MICROS | Programmierte Zykluszeit in Mikrosekunden.
_SYSINFO_TRIGGER_MS | Programmierte Zykluszeit in Millisekunden
_SYSINFO_CYCLETIME_MICROS | Dauer des vergangenen Zyklus' in Mikrosekunden.
_SYSINFO_CYCLETIME_MS | Dauer des vergangenen Zyklus' in Millisekunden.
_SYSINFO_CYCLEMAX_MICROS | Maximale Zykluszeit in Mikrosekunden.
_SYSINFO_CYCLEMAX_MS | Maximale Zykluszeit in Millisekunden
_SYSINFO_CYCLESTAMP_MS | Zeitstempel des aktuellen Zyklus' in Millisekunden (OEM abhängig).
_SYSINFO_CYCLEOVERFLOWS | Anzahl der erkannten Zykluszeitüberschreitungen.
_SYSINFO_CYCLECOUNT | Zyklenzähler.
_SYSINFO_APPVERSION | Versionsnummer der Anwendung.
_SYSINFO_APPSTAMP | Kompilierdatum der Anwendung.
_SYSINFO_CODECRC | CRC des Anwendungscodes.
_SYSINFO_DATACRC | CRC der Anwendungssymbole.
_SYSINFO_FREEHEAP | Verfügbarer freier Speicher (Bytes)
_SYSINFO_DBSIZE | Verwendeter Speicherplatz im RAM (Byte)
_SYSINFO_ELAPSED | Zeit seit Start (in Sekunden)
_SYSINFO_CHANGE_CYCLE | Zeigt einen Zyklus nach einer Online Änderung
_SYSINFO_WARMSTART | Nicht Null, wenn beim letzten Start RETAIN-Variablen geladen wurden
_SYSINFO_NBLOCKED | Anzahl der gesperrten Variablen
_SYSINFO_NBBREAKPOINTS | Anzahl der gesetzten Breakpoints

In der LD Sprache wird diese Operation nur dann ausgeführt, wenn der Input-Rung (EN) TRUE ist. Der Output-Rung (ENO) behält dieselben Werte wie der Input-Rung. In der IL Sprache muss der Input im aktuellen Ergebnis geladen sein bevor die Funktion aufgerufen wird.

ST Sprache

Q := GETSYSINFO (INFO);

FBD Sprache

LD Sprache

Die Funktion wird nur ausgeführt, wenn EN TRUE ist .
ENO hält den gleichen Wert wie EN.

IL Sprache

Op1: LD INFO
GETSYSINFO
ST Q


HYSTER

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> HYSTER

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - Hysterese-Erkennung.

Inputs

XIN1 : REAL Erstes Eingangssignal.
XIN2 : REAL Zweites Eingangssignal.
EPS : REAL Hysterese.

Outputs

Q : BOOL Erkannte Hysterese: TRUE, wenn XIN1 grösser ist als XIN2+EPS und noch nicht unter XIN2-EPS liegt.

Anmerkungen

Die Hysterese wird anhand der Differenz zwischen den Signalen XIN1 und XIN2 erkannt. In der LD Sprache wird das Input-Rung (EN) benutzt, um den Baustein freizugeben. Das Output-Rung ist der Output Q.

ST Sprache

MyHyst ist eine deklarierte Instanz des Funktionsblocks HYSTER.

MyHyst (XIN1, XIN2, EPS);
Q := MyHyst.Q;

FBD Sprache

LD Sprache

Der Baustein wird nicht aufgerufen, wenn EN FALSE ist.

IL Sprache

MyHyst ist eine deklarierte Instanz des Funktionsblocks HYSTER.

Op1: CAL MyHyst (XIN1, XIN2, EPS)
LD MyHyst.Q
ST Q

seealso See also

AVERAGE INTEGRAL DERIVATE LIM_ALRM STACKINT


HYSTERacc

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> HYSTERacc

Previous chapter Next chapter Show all Show all Hide all Hide all

Function Block - kumulierte Hysterese

Inputs

XIN : REAL Eingangssignal.
EPS : REAL Hysterese.
FACTOR : REAL Siehe Anmerkungen.

Outputs

XOUT : REAL Gefilterte Ausgabe.

Anmerkungen

Dieser Baustein berechnet den Fehler zwischen XIN und seinem früheren aktualisierten Wert (der aktuell am Output sichtbar ist). Die Ausgabe wird mit XIN-Werten aktualisiert:

- wenn der Fehler größer oder gleich zum EPS ist

- oder wenn das Fehlerintegral bei FACTOR größer oder gleich dem EPS ist

Das Integral muss seit dem letzten Update verstanden werden.

ST Sprache

MyHyst ist eine deklarierte Instanz des HYSTER Funktionsblocks.

MyHyst (rIn, rEps, rFactor);
rOUT := MyHyst.XOUT;


INTEGRAL

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> INTEGRAL

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - Berechnet das Integral eines Signals.

Inputs

RUN : BOOL Run-Befehl: TRUE=integrieren / FALSE=halten.
R1 : BOOL Dominantes Reset.
XIN : REAL Eingangssignal.
X0 : REAL Initialwert.
CYCLE : TIME Sampling-Periode (darf nicht kleiner als die Zykluszeit des Zielsystems sein).

Outputs

Q : DINT Betriebsmodus-Bericht: NOT (R1).
XOUT : REAL Ausgangssignal.

Anmerkungen

In der LD Sprache ist das Input-Rung der RUN-Befehl. Das Output-Rung ist Statusbericht Q.

ST Sprache

MyIntg ist eine deklarierte Instanz des Funktionsblocks INTEGRAL.

MyIntg (RUN, R1, XIN, X0, CYCLE);
Q := MyIntg.Q;
XOUT := MyIntg.XOUT;

FBD Sprache

LD Sprache

IL Sprache

MyIntg ist eine deklarierte Instanz des Funktionsblocks INTEGRAL.

Op1: CAL MyIntg (RUN, R1, XIN, X0, CYCLE)
LD MyIntg.Q
ST Q
LD MyIntg.XOUT
ST XOUT

seealso See also

AVERAGE DERIVATE LIM_ALRM HYSTER STACKINT


LIFO

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> LIFO

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsbaustein - Verwaltet eine "last in / first out" Liste.

Inputs

PUSH : BOOL Einen neuen Wert einfügen (bei steigender Flanke).

POP : BOOL Einen Wert herausholen (bei steigender Flanke).

RST : BOOL Liste zurücksetzten.

NEXTIN : ANY Einzufügender Wert.

NEXTOUT : ANY Wert am Anfang der Liste - aktualisiert nach Aufruf!

BUFFER : ANY Array in welchem die Werte abgelegt werden.

Outputs

EMPTY : BOOL TRUE wenn die Liste leer ist.
OFLO : BOOL TRUE bei Überlauf eines PUSH Befehls.

COUNT : DINT Anzahl von Werten in der Liste.

PREAD : DINT Index des Anfangs des Puffers.

PWRITE : DINT Index der nächsten Einfügeposition im Puffer.

Anmerkungen

NEXTIN, NEXTOUT und BUFFER müssen vom selben Datentyp sein und dürfen nicht vom Typ STRING sein.

Der Inhalt von NEXTOUT wird in einer Variable abgebildet und stellt den obersten Wert nach dem Aufruf des Blocks dar.

Die Werte werden im BUFFER Array abgelegt. Die Daten sind als Ringpuffer abgebildet und werden nie geschoben oder zurückgesetzt. Es werden nur die Lese- und Schreibe-Pointer und die eingefügten Werte aktualisiert. Die maximale Größe des Pufferst ist die Dimension des Arrays.

Beim ersten Aufruf des Bausteins merkt sich dieser mit welchem Array er arbeitet. Wird später die selbe Instanz mit einem anderen Puffer aufgerufen, wird der Aufruf als ungültig angesehen und jegliche Aktion unterdrückt. Die Ausgänge melden in diesem Fall eine leere Liste.

In LD Sprache ist der Input Rung der PUSH Eingang. Der Output Rung ist der EMPTY Ausgang.

ST Sprache

MyLIFO ist eine deklarierte Instanz des Funktionsbausteins LIFO.

MyLIFO (PUSH, POP, RST, NEXTIN, NEXTOUT, BUFFER);
EMPTY := MyLIFO.EMPTY;
OFLO := MyLIFO.OFLO;
COUNT := MyLIFO.COUNT;
PREAD := MyLIFO.PREAD;
PWRITE := MyLIFO.PWRITE;

FBD Sprache

LD Sprache

IL Sprache

MyLIFO ist eine deklarierte Instanz des Funktionsbausteins LIFO.

Op1: CAL MyLIFO (PUSH, POP, RST, NEXTIN, NEXTOUT, BUFFER)
LD MyLIFO.EMPTY
ST EMPTY
LD MyLIFO.OFLO
ST OFLO
LD MyLIFO.COUNT
ST COUNT
LD MyLIFO.PREAD
ST PREAD
LD MyLIFO.PWRITE
ST PWRITE

seealso See also

FIFO


LIM_ALRM

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> LIM_ALRM

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - Erkennt Höchst- und Tiefstgrenzen eines Signals mit Hysterese.

Inputs

H : REAL Wert der Höchstgrenze.
X : REAL Eingangssignal.
L : REAL Wert der Tiefstgrenze.
EPS : REAL Wert der Hysterese.

Outputs

QH : BOOL TRUE, wenn das Signal die Höchstgrenze überschreitet.
Q : BOOL TRUE, wenn das Signal eine der Grenzen überschreitet (gleich QH OR QL).
QL : BOOL TRUE, wenn das Signal die Tiefstgrenze überschreitet.

Anmerkungen

In der LD Sprache wird das Input-Rung (EN) zur Freigabe des Baustein benutzt. Das Output-Rung ist der Output QH.

ST Sprache

MyAlarm ist eine deklarierte Instanz des Funktionsblocks LIM_ALRM.

MyAlarm (H, X, L, EPS);
QH := MyAlarm.QH;
Q := MyAlarm.Q;
QL := MyAlarm.QL;

FBD Sprache

LD Sprache

Der Baustein wird nicht aufgerufen, wenn EN FALSE ist.

IL Sprache

MyAlarm ist eine deklarierte Instanz des Funktionsblocks LIM_ALRM.

Op1: CAL MyAlarm (H, X, L, EPS)
LD MyAlarm.QH
ST QH
LD MyAlarm.Q
ST Q
LD MyAlarm.QL
ST QL

seealso See also

ALARM_M ALARM_A


LogFileCSV

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> LogFileCSV

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsbaustein - Generiert eine Log-Datei im CSV Format für eine Liste von Variablen.

(see description for SetCsvOpt function at the end of this page)

Inputs

LOG : BOOL Variablen werden bei jeder steigenden Flanke dieses Eingangs gespeichert.
RST : BOOL Setzt den Inhalt der CSV Datei zurück.
LIST : DINT ID der Liste der Variablen welche geloggt werden sollen (unter Verwendung der VLID Funktion).
PATH : STRING Pfad und Name der CSV Datei.

Outputs

Q : BOOL TRUE wenn die angeforderte Operation erfolgreich ausgeführt wurde.
ERR : DINT Fehler Report für die letzte angeforderte Operation (0 = OK).

attention Attention
  • Dateien werden direkt vom Betriebssystem des Zielsystems geöffnet und geschlossen. Das öffnen von Dateien ist möglicherweise für die Systemsicherheit und Systemintegrität gefährlich. Die Anzahl der geöffneten Dateien ist möglicherweise durch das Zielsystem begrenzt.
  • Das Öffnen einer Datei kann fehlschlagen (ungültiger Pfad oder Dateiname, zu viele geöffnete Dateien...). Die Applikation sollte solche Fehlerfälle sicher abfangen.
  • Dateimanagement wird von manchen Zielsystemen nicht unterstützt. Bitte beziehen Sie sich auf die OEM Anweisungen über die verfügbaren Features.
  • Gültige Pfad-Angaben zur Ablagen von Dateien hängen von der Zielsystem Implementierung ab. Bitte beziehen Sie sich auf die OEM Anweisungen für weitere Details verfügbarer Pfade.

Anmerkungen

Mit diesem Funktionsbaustein können Werte einer Listen von Variablen in einer CSV Datei geloggt werden. Bei jeder steigenden Flanke am LOG Input wird eine weiter Zeile von Werten in der Datei angefügt. Für jede Variable in der Liste wird eine Spalte angelegt.

Die Liste der Variablen wird mit der Workbench oder einem Texteditor angelegt. Mit der VLID Funktion wird die Kennung der Liste festgestellt.

Mit der steigenden Flanke des RST Inputs wird die CSV Datei geleert.

The "SetCsvOpt" function described at the end of this page enables you to customize the format of the CSV file.

Wurde ein LOG oder RST Befehl erfolgreich ausgeführt wird der Output Q auf TRUE gesetzt. Im Fehlerfall wird auf dem ERR Output ein Fehler Report ausgegeben. Mögliche Werte des ERR Outputs sind:

Wert | Bedeutung
1 | Datei konnte nach einem RST Befehl nicht geleert werden.
2 | Datei konnte nach einem LOG Befehl nicht geöffnet werden.
3 | Eingebettete Liste wird von der Runtime nicht unterstützt.
4 | Ungültige Kennung (ID).
5 | Fehler beim Schreiben in die CSV Datei.

Kombiniert mit den Real-time Clock Funktionen kann der Funktionsbaustein LogFileCSV sehr einfach für das periodisch Loggen von Werten eingesetzt werden. Das folgende Beispiel zeigt eine Liste (Spion) und ein Programm welches Wert täglich um 14:23 Uhr loggt:

Example Example

Example

MyLOG ist eine deklarierte Instanz des LogFileCSV Funktionsbausteins.

MyLOG (LOG, RST, LIST, PATH);
Q := MyLOG.Q;
ERR := MyLog.ERR;

The SetCsvOpt function

As default, the LogFileCsv block uses semicolons (";") as separators and dots (".") as decimal points. The SetCsvOpt function enables you to change these characters.

Syntax:

OK := SetCsvOpt (strSeparator, strDecimal);

Parameters:

StrSeparator (STRING) : single character string to be used as separator

strDecimal (STRING) : single character string to be used as decimal point

OK (BOOL) : TRUE if successful. FALSE if inputs are not single character strings.

seealso See also

VLID


MBMasterRTU

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> MBMasterRTU

Previous chapter Next chapter Show all Show all Hide all Hide all

Function Block - MODBUS-RTU Master.

This function block manages a master on MODBUS-RTU over a serial line and enables the management of various MODBUS functions. Function blocks MBMASTERTCP and MBMASTERRTU give an alternative to the MODBUS configurator. You do not need to configurate anything in the fieldbus configurator to use these blocks.

Inputs

CNX : BOOL

A rising edge on this input to open the specified COM port. If the port is successfully open, the Ready output will be set to TRUE. If the opening fails, an error is reported by the Error output.

BREFRESH : BOOL

A rising edge on this input starts a new exchange such as specified by other paramerters. A exchange can be started only if the Ready output is TRUE.

SLAVE : DINT

Slave number (or unit number) of the MODBUS TCP server.

FCODE : DINT

MODBUS function code. The following functions are supported:

1 = Read coil bits

2 = Read input bits

3 = Read holding registers

4 = Read input registers

5 = Write one coil bit

6 = Write one holding registers

7 = Read exception status

15 = Write N coil bits

16 = Write N holding registers

17 = Report slave ID

23 = Read/write holding registers

ADDR : DINT

Address of the first address to read. Used only for functions 1, 2, 3, 4 and 23.

NBR : DINT

Number of items to read. Used only for functions 1, 2, 3, 4 and 23.

ADDW : DINT

Address of the first address to write. Used only for functions 5, 6, 15, 16 and 23.

NBW : DINT

Number of items to write. Used only for functions 5, 6, 15, 16 and 23. Must be 1 for functions 5 and 6.

DATA : ARRAY OF ...

Buffer containing the values read or written. Must be set on input before calling functions 5, 6, 15, 16 and 23. Filled on for other functions and also for function 23. The dimension of the array must be greater than or equal to the specified number of items. The data type of the array depends on the function:

BOOL for functions 1, 2, 5 and 15

INT or UINT or WORD for functions 3, 4, 6, 16 and 23

SINT or USINT or BYTE for functions 7 and 17.

TIMEOUT : TIME

Communication timeout for the complete exchange.

PORT : STRING

Specification of the COM port (e.g. 'COM1:9600,N,8,1'). Refer to OEM's instruction for more information about COM port specification.

Outputs

READY : BOOL

This output is TRUE when the connection is correctly established and no pending exchange is currently running.

OK : BOOL

This output is set to TRUE at the end of a successful exchange. It is reset to FALSE when a new exchange is started.

ERROR : DINT

Error report. Can be one of the following values:

1 = invalid function code
2 = bad address
3 = bad value
4 = server failed
5 = server acknoledge
6 = server is busy
8 = data parity error
10 = gateway bad path
11 = gateway target failed
128 = timeout on exchange
129 = bad CRC
130 = frame error or bad COM port
200 = invalid slave number
201 = invalid MODBUS address
202 = invalid number of items or DATA array too small
203 = invalid type for DATA array
204 = invalid numner of items

Note: some devices may answer some other specific error reports


MBMasterTCP

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> MBMasterTCP

Previous chapter Next chapter Show all Show all Hide all Hide all

Function Block - MODBUS-TCP Master (client).

This function block manages a client connection on MODBUS-TCP and enables the management of various MODBUS functions. Function blocks MBMASTERTCP and MBMASTERRTU give an alternative to the MODBUS configurator. You do not need to configurate anything in the fieldbus configurator to use these blocks.

Inputs

CNX : BOOL

A rising edge on this input establishes the connection with the specified server. Later on, if the connection is successful, the Ready output will be set to TRUE. If the connection fails, an error is reported by the Error output. After the connection is lost (typically when unplugging the Ethernet cable) the application is responsible for rising again the Cnx input in order to attempt a new connection.

BREFRESH : BOOL

A rising edge on this input starts a new exchange such as specified by other paramerters. A exchange can be started only if the Ready output is TRUE.

SLAVE : DINT

Slave number (or unit number) of the MODBUS TCP server.

FCODE : DINT

MODBUS function code. The following functions are supported:

1 = Read coil bits

2 = Read input bits

3 = Read holding registers

4 = Read input registers

5 = Write one coil bit

6 = Write one holding registers

7 = Read exception status

15 = Write N coil bits

16 = Write N holding registers

17 = Report slave ID

23 = Read/write holding registers

ADDR : DINT

Address of the first address to read. Used only for functions 1, 2, 3, 4 and 23.

NBR : DINT

Number of items to read. Used only for functions 1, 2, 3, 4 and 23.

ADDW : DINT

Address of the first address to write. Used only for functions 5, 6, 15, 16 and 23.

NBW : DINT

Number of items to write. Used only for functions 5, 6, 15, 16 and 23. Must be 1 for functions 5 and 6.

DATA : ARRAY OF ...

Buffer containing the values read or written. Must be set on input before calling functions 5, 6, 15, 16 and 23. Filled on for other functions and also for function 23. The dimension of the array must be greater than or equal to the specified number of items. The data type of the array depends on the function:

BOOL for functions 1, 2, 5 and 15

INT or UINT or WORD for functions 3, 4, 6, 16 and 23

SINT or USINT or BYTE for functions 7 and 17.

TIMEOUT : TIME

Communication timeout for the complete exchange.

IP : STRING

IP address of the MODBUS server.

PORT : DINT

TCP port number of the server (usually 502).

Outputs

READY : BOOL

This output is TRUE when the connection is correctly established and no pending exchange is currently running.

OK : BOOL

This output is set to TRUE at the end of a successful exchange. It is reset to FALSE when a new exchange is started.

ERROR : DINT

Error report. Can be one of the following values:

1 = invalid function code
2 = bad address
3 = bad value
4 = server failed
5 = server acknoledge
6 = server is busy
8 = data parity error
10 = gateway bad path
11 = gateway target failed
128 = timeout on exchange
129 = bad CRC
130 = ETHERNET/TCP error
200 = invalid slave number
201 = invalid MODBUS address
202 = invalid number of items or DATA array too small
203 = invalid type for DATA array
204 = invalid numner of items

Note: some devices may answer some other specific error reports


MBSlaveRTU / MBSlaveRTUex

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> MBSlaveRTU / MBSlaveRTUex

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - MODBUS RTU Slave protocol on serial port.

Inputs

IN : BOOL Freigabebefehl: Der Port ist geöffnet, wenn dieser Input TRUE ist.
PORT: STRING Einstellungs-String für den seriellen Port (z.B. 'COM1:9600,N,8,1').
SLV : DINT MODBUS slave number.
SrvID : STRING MBSlaveRTUex only: ID des Servers in der Konfiguration.

Outputs

Q : BOOL TRUE falls der Port erfolgreich geöffnet wurde.

Anmerkungen

Wenn aktiv, dann steuert dieser Funktionsblock das MODBUS RTU Slave Protokoll auf dem spezifizierten seriellen Kommunikationsport. Die Konfiguration der MODBUS Slave map (anlegen von MODBUS Adressen) wird mithilfe des MODBUS Konfigurationstools vom Fieldbus Konfigurator aus erledigt.

Es können mehrere Instanzen des MBSlaveRTU gleichzeitig auf verschiedenen seriellen Ports laufen. Andere MODBUS Slave Verbindungen (TCP server, UDP) können ebenfalls zur gleichen Zeit aktiviert werden.

Die Slave-Nummer, die Sie ins MODBUS Slave Konfigurationstool eingegeben haben, wird ignoriert, wenn das MODBUS Slave Protokoll von diesem Funktionsblock verarbeitet wird. Stattdessen wird die MODBUS Salve Nummer durch die SLV-Eingabe spezifiziert.

Mithilfe von MBSlaveRTUex können Sie die ID eines Servers der MODBUS Salve Konfiguration spezifizieren. Wenn Sie einen leeren String angeben, wird der erste Server verwendet. Der MBSlaveRTU benutzt immer den ersten Server in der Konfiguration.

ST Sprache

MySlave ist eine festgelegte Instanz des MBSlaveRTU Funktionsblocks.

MySlave (IN, PORT, SLV);
Q := MySlave.Q;

FBD Sprache

LD Sprache

IL Sprache

MySlave ist eine festgelegte Instanz des MBSlaveRTU Funktionsblocks.

Op1: CAL MySlave (IN, PORT, SLV)
LD MySlave.Q
ST Q
LD MyCounter.CV
ST CV

seealso See also

MBSlaveUDP MODBUS Konfiguration


MBSlaveUDP / MBSlaveUDPex

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> MBSlaveUDP / MBSlaveUDPex

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - MODBUS UDP Slave protocol on ETHERNET.

Inputs

IN : BOOL Freigabebefehl: Der Port ist geöffnet, wenn dieser Input TRUE ist.
PORT: DINT ETHERNET port number.
SLV : DINT MODBUS slave number.
RTU : BOOL Protokoll: TRUE = MODBUS RTU / FALSE = Open MODBUS.
SrvID : STRING MBSlaveUDPex only: ID des Servers in der Konfiguration.

Outputs

Q : BOOL TRUE falls der Port erfolgreich geöffnet wurde.

Anmerkungen

Wenn aktiv, dann steuert dieser Funktionsblock das MODBUS RTU Slave Protokoll auf dem spezifizierten ETHERNET-Port. Die Konfiguration der MODBUS Slave map (anlegen von MODBUS Adressen) wird mithilfe des MODBUS Konfigurationstools vom Fieldbus Konfigurator aus erledigt.

Es können mehrere Instanzen des MBSlaveUDP gleichzeitig auf verschiedenen seriellen Ports laufen. Andere MODBUS Slave Verbindungen (TCP server, serielle) können ebenfalls zur gleichen Zeit aktiviert werden.

Die Slave-Nummer, die Sie ins MODBUS Slave Konfigurationstool eingegeben haben, wird ignoriert, wenn das MODBUS Slave Protokoll von diesem Funktionsblock verarbeitet wird. Stattdessen wird die MODBUS Salve Nummer durch die SLV-Eingabe spezifiziert. Wenn SLV 0 ist, dann wird die default Port-Nummer der MODBUS-Konfiguration benutzt.

Mithilfe von MBSlaveUDPex können Sie die ID eines Servers der MODBUS Salve Konfiguration spezifizieren. Wenn Sie einen leeren String angeben, wird der erste Server verwendet. Der MBSlaveUDP benutzt immer den ersten Server in der Konfiguration.

ST Sprache

MySlave ist eine festgelegte Instanz des MBSlaveUDP Funktionsblocks.

MySlave (IN, PORT, SLV, RTU);
Q := MySlave.Q;

FBD Sprache

LD Sprache

IL Sprache

MySlave ist eine festgelegte Instanz des MBSlaveUDP Funktionsblocks.

Op1: CAL MySlave (IN, PORT, SLV, RTU)
LD MySlave.Q
ST Q
LD MyCounter.CV
ST CV

seealso See also

MBSlaveRTU MODBUS configuration


PID

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> PID

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - PID Regler

Input | Typ | Beschreibung
AUTO | BOOL | TRUE = Automatik Mode - FALSE = Manueller Mode.
PV | REAL | Prozess Wert.
SP | REAL | Sollwert.
Xout_Manu | REAL | Output Wert im manuellem Mode.
KP | REAL | Verstärkung.
TI | REAL | Nachstellzeit.
TD | REAL | Vorhaltezeit.
TS | TIME | Abtast-Periode.
XMIN | REAL | Minimaler Output Wert.
XMAX | REAL | Maximaler Output Wert.
I_SEL | BOOL | Wenn FALSE wird der Integral-Teil ignoriert.
INT_HOLD | BOOL | Wenn TRUE wird der Integral Wert eingefroren.
I_ITL_ON | BOOL | Wenn TRUE wird der Integral Wert auf I_ITLVAL gesetzt.
I_ITLVAL | REAL | Wert für Integral Wert wenn I_ITL_ON TRUE ist.
DEADB_ERR | REAL | Hysterese für PV. PV wird nicht berücksichtigt wenn größer als (PVprev - DEADBAND_W) oder kleiner als (PVprev + DEADBAND_W).
FFD | REAL | Disturbation value on output.

Output | Typ | Beschreibung
Xout | REAL | Stellgröße.
ER | REAL | Letzter berechneter Fehler.
Xout_P | REAL | Letzter berechneter Proportional-Wert.
Xout_I | REAL | Letzter berechneter Integral-Wert.
Xout_D | REAL | Letzter berechneter Differential-Wert.
Xout_HLM | BOOL | TRUE wenn die Stellgröße den Wert XMIN erreicht hat.
Xout_LLM | BOOL | TRUE wenn die Stellgröße den Wert XMAX erreicht hat.

Diagram

Für die Stabilität des Reglers ist es wichtig, dass die Abtast-Periode TS wesentlich größer als die Zykluszeit ist.

In der LD Sprache hat der Output Rung den selben Wert der Input AUTO welcher auf dem Input Rung liegt.

ST Sprache

MyPID ist eine deklarierte Instanz des Funktionsblock PID.

MyPID (AUTO, PV, SP, XOUT_MANU, KP, TI, TD, TS, XMIN, XMAX,
I_SEL, I_ITL_ON, I_ITLVAL, DEADB_ERR, FFD);
XOUT := MyPID.XOUT;
ER := MyPID.ER;
XOUT_P := MyPID.XOUT_P;
XOUT_I := MyPID.XOUT_I;
XOUT_D := MyPID.XOUT_D;
XOUT_HLM := MyPID.XOUT_HLM;
XOUT_LLM := MyPID.XOUT_LLM;

FBD Sprache

LD Sprache

ENO hat dem selben Wert wie der Input Rung.

IL Sprache

MyPID ist eine deklarierte Instanz des Funktionsblock PID

Op1: CAL MyPID (AUTO, PV, SP, XOUT_MANU, KP, TI, TD, TS,
XMIN, XMAX, I_SEL, I_ITL_ON, I_ITLVAL,
DEADB_ERR, FFD)
LD MyPID.XOUT
ST XOUT
LD MyPID.ER
ST ER
LD MyPID.XOUT_P
ST XOUT_P
LD MyPID.XOUT_I
ST XOUT_I
LD MyPID.XOUT_D
ST XOUT_D
LD MyPID.XOUT_HLM
ST XOUT_HLM
LD MyPID.XOUT_LLM
ST XOUT_LLM


printf

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> printf

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Anzeige einer Trace Ausgabe.

Eingaben

FMT : STRING Trace Meldung.
ARG1..ARG4 : DINT Numerisches Argument das im Trace beinhaltet sein soll.

Ausgaben

Q : BOOL Return check.

Bemerkungen

Diese Funktion funktioniert wie die berühmte "printf" Funktion der Sprache "C" mit bis zu vier Integer-Argumenten. Sie können die folgenden Parameter in der FMT Trace Meldung verwenden um die Argumente in ihrer Reihenfolge von links nach rechts zu repräsentieren:

%ld dezimaler Wert mit Vorzeichen
%lu dezimaler Wert ohne Vorzeichen
%lx hexadezimaler Wert

Die Trace Meldung wird im LOG Fenster mit den Runtime Meldungen angezeigt. Trace wird vom Simulator unterstützt.

attention Attention

Ihre Zielplattform unterstützt unter Umständen keine Trace Funktionen. Bitte lesen Sie die OEM Instruktionen für mehr Informationen über verfügbare Features.

Example Example

(* i1, i2, i3, i4 are declared as DINT *)
i1 := 1;
i2 := 2;
i3 := 3;
i4 := 4;
printf ('i1=%ld; i2=%ld; i3=%ld; i4=%ld', i1, i2, i3, i4);

Ausgabe Meldung:

i1=1; i2=2; i3=3; i4=4;


RAMP

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> RAMP

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsbaustein - Rampenfunktion zu einem REAL Signal.

Inputs

IN : REAL Eingangssignal.
ASC : REAL Steigung zur Zeitbasis .
DSC : REAL Negative Steigung zur Zeitbasis.
TM : TIME Zeitbasis.
RST : BOOL Reset.

Outputs

OUT : REAL Rampensignal.

Steuerungsdiagramm

Anmerkungen

Die Parameter werden nicht ständig aktualisiert. Sie werden nur berücksichtigt wenn:

  • Der Funktionsbaustein das erste Mal aufgerufen wird.
  • Der Reset Eingang (RST) TRUE ist.

In diesen zwei Situationen wird der Ausgang auf den Eingangswert von IN gesetzt.

ASC und DSC bestimmen die maximale Steigung zur Zeitbasis TB.
Beide Werte müssen positive Zahlen sein.

In LD Sprache wird die Funktion nur ausgeführt wenn der Input Rung (EN) TRUE ist. Der Output Rung (ENO) behält den selben Wert wie der Input Rung.

ST Sprache

MyRamp ist eine deklarierte Instanz des Funktionsbausteins RAMP.

MyRamp (IN, ASC, DSC, TM, RST);
OUT := MyRamp.OUT;

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.

IL Sprache

MyRamp ist eine deklarierte Instanz des Funktionsblocks RAMP.

Op1: CAL MyRamp (IN, ASC, DSC, TM, RST)
LD MyRamp.OUT
ST OUT


Funktionen zur Verwaltung der Echtzeituhr

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Funktionen zur Verwaltung der Echtzeituhr

Previous chapter Next chapter Show all Show all Hide all Hide all

Mit den folgenden Funktionen kann die Echtzeituhr des Zielsystems gelesen werden:

DTCurDate Aktuelles Datum lesen.
DTCurTime Aktuelle Zeit lesen.
DTCurDateTime Get current date and time stamp.
DTDay Tag aus dem Datumstempel lesen.
DTMonth Monat aus dem Datumstempel lesen.
DTYear Jahr aus dem Datumstempel lesen.
DTSec Sekunden aus dem Zeitstempel lesen.
DTMin Minuten aus dem Zeitstempel lesen.
DTHour Stunden aus dem Zeitstempel lesen.
DTMs Millisekunden aus dem Zeitstempel lesen.

Die folgenden Funktionen formatieren das aktuelle Datum bzw. die aktuelle Zeit zu einem String:

DAY_TIME Aktuelle Zeit oder aktuelles Datum lesen.
DTFormat Aktuelle Zeit oder aktuelles Datum lesen.

Die folgenden Funktionen werden zum zeitgesteuerten Triggern von Variablen benutzt:

DTAt Puls Signal zu einem bestimmten Zeitpunkt (Datum/Uhrzeit).
DTEvery Puls Signal mit langer Dauer.

attention Attention

In manchen Zielsystemen ist keine Echtzeituhr verfügbar. Siehe OEM Anweisungen für Informationen zu dieser Funktionalität.

DTCURDATE: aktuelles Datum lesen

Q := DTCurDate ();

Q : DINT Numerischer Ausdruck für das aktuelle Datum.

DTCURTIME: aktuelle Zeit lesen

Q := DTCurTime ();

Q : DINT Numerischer Ausdruck für die aktuelle Zeit des Tages.

DTCURDATETIME: get current time stamp (function block)

Inst_DTCurDateTime (bLocal);

bLocal : BOOL TRUE if local time is requested (GMT if FALSE).

.Year : DINT Output: current year

.Month : DINT Output: current month

.Day : DINT Output: current day

.Hour : DINT Output: current time: hours

.Min : DINT Output: current time: minutes

.Sec : DINT Output: current time: seconds

.MSec : DINT Output: current time: milliseconds

.TmOfDay : TIME Output: current time of day (since midnight)

.DST : BOOL Output: Daylight Saving Time

DTYEAR: das Jahr aus dem Datumstempel auslesen

Q := DTYear (iDate);

IDATE : DINT Numerischer Ausdruck für ein Datum.
Q : DINT Jahr des Datums (z.B.: 2004).

DTMONTH: das Monat aus dem Datumstempel auslesen

Q := DTMonth (iDate);

IDATE : DINT Numerischer Ausdruck für ein Datum.
Q : DINT Monat des Datums (1..12).

DTDAY: den Tag des Monats aus dem Datumstempel auslesen

Q := DTDay (iDate);

IDATE : DINT Numerischer Ausdruck für ein Datum.
Q : DINT Tag des Monats des Datums (1..31).

DTHOUR: die Stunden aus dem Zeitstempel auslesen

Q := DTHour (iTime);

ITIME : DINT Numerischer Ausdruck für eine Zeit.
Q : DINT Stunden der Zeit (0..23).

DTMIN: die Minuten aus dem Zeitstempel auslesen

Q := DTMin (iTime);

ITIME : DINT Numerischer Ausdruck für eine Zeit.
Q : DINT Minuten der Zeit (0..59).

DTSEC: die Sekunden aus dem Zeitstempel auslesen

Q := DTSec (iTime);

ITIME : DINT Numerischer Ausdruck für eine Zeit.
Q : DINT Sekunden der Zeit (0..59).

DTMS: die Millisekunden aus dem Zeitstempel auslesen

Q := DTMs (iTime);

ITIME : DINT Numerischer Ausdruck für eine Zeit.
Q : DINT Millisekunden der Zeit (0..999).

Noch in diesem Kapitel

DAY_TIME

DTFORMAT

DTAT

DTEVERY
© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


DAY_TIME

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Funktionen zur Verwaltung der Echtzeituhr -> DAY_TIME

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Aktuelles Datum oder aktuelle Zeit liefern.

Inputs

SEL : DINT Spezifiziert die gewünschten Daten (siehe unten).

Outputs

Q : STRING Gewünschte Daten in einer Zeichenfolge formatiert.

attention Attention

In manchen Zielsystemen ist keine Echtzeituhr verfügbar. Siehe OEM Anweisungen für Informationen zu dieser Funktionalität.

Anmerkungen

Mögliche Werte des Inputs SEL:

Wert | Bedeutung
1 | Aktuelle Zeit - Format: 'HH:MM:SS'
2 | Wochentag
(0) | Aktuelles Datum - Format: 'YYYY/MM/DD'

In der LD Sprache wird die Operation nur dann ausgeführt, wenn das Input-Rung (EN) TRUE ist. Das Output-Rung (ENO) behält den gleichen Wert wie das Input-Rung.

ST Sprache

Q := DAY_TIME (SEL);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD SEL
DAY_TIME
ST Q

seealso See also

DTFORMAT


DTFORMAT

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Funktionen zur Verwaltung der Echtzeituhr -> DTFORMAT

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Formatiert das aktuelle Datum/die aktuelle Zeit in einem String im gewünschten Format.

Inputs

FMT : STRING String Format.

Outputs

Q : STRING String mit formatiertem Datum oder Zeit.

attention Attention

In manchen Zielsystemen ist keine Echtzeituhr verfügbar. Siehe OEM Anweisungen für Informationen zu dieser Funktionalität.

Anmerkungen

Der formatierte String darf jedes beliebige Zeichen enthalten. Platzhalter mit dem '%' Zeichen definieren die Datum/Zeit Information:

%Y Jahr mit Jahrhundert (z.B. 2006)
%y Jahr ohne Jahrhundert (z.B. 06)
%m Monat (1..12)
%d Tag des Monats (1..31)
%H Stunden (0..23)
%M Minuten (0..59)
%S Sekunden (0..59)

Example Example

(* Wir haben den 4. Juli 2006, 18:45:20 *)

Q := DTFORMAT ('Heute ist %Y/%m/%d - %H:%M:%S');

(* Q ist 'Heute ist 2006/07/04 - 18:45:20' *)

ST Sprache

Q := DTFORMAT (FMT);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.
ENO behält den gleichen Wert wie EN.

IL Sprache

Op1: LD FMT
DTFORMAT
ST Q

seealso See also

DAY_TIME


DTAT

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Funktionen zur Verwaltung der Echtzeituhr -> DTAT

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsbaustein - Generiert einen Puls zu einem gewünschten Zeitpunkt (Datum, Uhrzeit).

Inputs

YEAR : DINT Jahr (z.B.: 2006).
MONTH : DINT Monat (1 = Jänner).
DAY : DINT Tag (1 to 31).
TMOFDAY : TIME Zeit.
RST : BOOL Reset Befehl.

Outputs

QAT : BOOL Puls Signal.
QPAST : BOOL TRUE wenn verstrichen.

attention Attention

In manchen Zielsystemen ist keine Echtzeituhr verfügbar. Siehe OEM Anweisungen für Informationen zu dieser Funktionalität.

Anmerkungen

Die Parameter werden nicht ständig aktualisiert. Sie werden nur berücksichtigt wenn:

  • Der Funktionsbaustein das erste Mal aufgerufen wird.
  • Der Reset Eingang (RST) TRUE ist.

In diesen zwei Situationen werden die Ausgänge auf FALSE gesetzt.

Das erste Mal wenn der Funktionsbaustein mit RST=FALSE zum entsprechenden Zeitpunkt (Datum/Zeit) aufgerufen wird, wird der Ausgang QPAST auf TRUE gesetzt und der Ausgang QAT nur für einen Zyklus auf TRUE gesetzt (Puls Signal).

Die oberen Elemente werden ignoriert, wenn diese auf 0 gesetzt sind. Z.B. wenn "year=0, month=0, day = 3, tmofday=t#10h" übergeben werden, triggert der Baustein auf den nächsten dritten Tag des Monats um 10:00 Uhr.

In LD Sprache ist der Block nur aktiv wenn der Input Rung TRUE ist.

ST Sprache

MyDTAT ist eine deklarierte Instanz des Funktionsbausteins DTAT.

MyDTAT (YEAR, MONTH, DAY, TMOFDAY, RST);
QAT := MyDTAT.QAT;
QPAST := MyDTATA.QPAST;

FBD Sprache

LD Sprache

Wird nur aufgerufen wenn EN TRUE ist.

IL Sprache

MyDTAT ist eine deklarierte Instanz des Funktionsbausteins DTAT.

Op1: CAL MyDTAT (YEAR, MONTH, DAY, TMOFDAY, RST)
LD MyDTAT.QAT
ST QAT
LD MyDTATA.QPAST
ST QPAST

seealso See also

DTEVERY Funktionen zur Verwaltung der Echtzeituhr


DTEVERY

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Funktionen zur Verwaltung der Echtzeituhr -> DTEVERY

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsbaustein - Generiert einen Puls über einen längeren Zeitraum.

Inputs

RUN : DINT Aktivierung.
DAYS : DINT Zeitraum: Anzahl der Tage.
TM : TIME Rest des Zeitraums (wenn nicht ein Vielfaches von 24 Stunden).

Outputs

Q : BOOL Puls Signal.

Anmerkungen

Dieser Funktionsbaustein gibt ein Puls Signal über einen Zeitraum über 24 Stunden aus. Der Zeitraum wird ausgedrückt als:
DAYS * 24h + TM

Z.B. DAYS=1 und TM=6h bedeutet eine Zeitraum von 30 Stunden.

ST Sprache

MyDTEVERY ist eine deklarierte Instanz des Funktionsblocks DTEVERY.

MyDTEVERY (RUN, DAYS, TM);
Q := MyDTEVERY.Q;

FBD Sprache

LD Sprache

IL Sprache

MyDTEVERY ist eine deklarierte Instanz des Funktionsblocks DTEVERY.

Op1: CAL MyDTEVERY (RUN, DAYS, TM)
LD MyDTEVERY.Q
ST Q

seealso See also

DTAT Funktionen zur Verwaltung der Echtzeituhr

© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


SerializeIn

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> SerializeIn

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Extrahiert den Wert einer Variable aus einem binären Rahmen.

Inputs

FRAME : USINT Quellen Puffer - muss ein Array sein.
DATA : ANY(*) Zielvariable in die kopiert wird.
POS : DINT Position im Quellen Puffer.
BIGENDIAN : BOOL TRUE wenn der Rahmen im Big Endian Format codiert ist.

(*) DATA darf nicht als STRING deklariert sein.

Outputs

NEXTPOS : DINT Position im Quellen Puffer nach dem extrahieren der Daten.
Ist 0 im Fehlerfall (ungültige Position / ungültige Puffer Größe).

Anmerkungen

Diese Funktion wird für gewöhnlich für das Extrahieren von Daten aus einem binären Kommunikationsrahmen verwendet.

In der LD Sprache wird die Operation nur dann ausgeführt, wenn der Input-Rung (EN) TRUE ist. Der Output-Rung (ENO) erhält den selben Wert wie der Input-Rung. Die Funktion ist in IL Sprache nicht verfügbar.

Der FRAME Eingang muss zur Input Position und zur Datengröße passen. Kann der Wert nicht sicher extrahiert werden, so liefert die Funktion 0.

Der DATA Eingang muss direkt an eine Variable angeschlossen sein und darf keine Konstante oder ein Konstantenausdruck sein. Diese Variable wird mit dem extrahierten Wert beschrieben.

Die Funktion extrahiert die folgenden Byteanzahlen aus dem Quellrahmen:

1 Byte für BOOL, SINT, USINT und BYTE Variablen.
2 Bytes für INT, UINT und WORD Variablen.
4 Bytes für DINT, UDINT, DWORD und REAL Variablen.
8 Bytes für LINT und LREAL Variablen.

Die Funktion kann nicht für die Extraktion von STRING Variablen verwendet werden.

Die Funktion liefert die Position im Quellrahmen nachdem Daten extrahiert wurden. Somit kann der gelieferte Wert für die Position des nächsten zu extrahierenden Wert verwendet werden.

ST Sprache

Q := SERIALIZEIN (FRAME, DATA, POS, BIGENDIAN);

FBD Sprache

LD Sprache

Die Funktion wird nur ausgeführt, wenn EN TRUE ist.
ENO erhält den selben Wert wie EN.

IL Sprache

Nicht verfügbar.

seealso See also

SERIALIZEOUT


SerializeOut

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> SerializeOut

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Kopiert den Wert einer Variable in einen binären Rahmen.

Inputs

FRAME : USINT Ziel Puffer - muss ein Array sein.
DATA : ANY(*) Quellvariable welche kopiert werden soll.
POS : DINT Position im Ziel Puffer.
BIGENDIAN : BOOL TRUE wenn der Rahmen im Big Endian Format codiert ist.

(*) DATA darf kein STRING sein.

Outputs

NEXTPOS : DINT Position im Ziel Puffer nach dem kopierten der Daten.
0 im Fehlerfall (ungültige Position / ungültige Puffer Größe).

Anmerkungen

Diese Funktion wird für gewöhnlich für die Zusammenstellung eines Kommunikations-Rahmens im Binärformat verwendet.

In der LD Sprache wird die Operation nur dann ausgeführt, wenn der Input-Rung (EN) TRUE ist. Der Output-Rung (ENO) erhält den selben Wert wie der Input-Rung. Die Funktion ist in IL Sprache nicht verfügbar.

Der FRAME Eingang muss ein Array in ausreichender Größe sein um die Daten aufzunehmen. Können Daten nicht sicher in den Ziel Puffer kopiert werden, so liefert die Funktion 0.

Die Funktion kopiert die folgenden Anzahl an Bytes in den Zielrahmen:

1 Byte für BOOL, SINT, USINT und BYTE Variablen.
2 Bytes für INT, UINT und WORD Variablen.
4 Bytes für DINT, UDINT, DWORD und REAL Variablen.
8 Bytes für LINT und LREAL Variablen.

Die Funktion kann nicht für die Zusammenstellung von STRING Variablen verwendet werden.

Die Funktion liefert die Position im Zielrahmen nach dem kopieren der Daten. Somit kann der gelieferte Wert für die Position des nächsten zusammenzustellenden Wert verwendet werden.

ST Sprache

Q := SERIALIZEOUT (FRAME, DATA, POS, BIGENDIAN);

FBD Sprache

LD Sprache

Die Funktion wird nur ausgeführt, wenn EN TRUE ist.
ENO erhält den selben Wert wie EN.

IL Sprache

Nicht verfügbar.

seealso See also

SERIALIZEIN


SerGetString

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> SerGetString

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Extrahiert einen String aus einem binären Frame.

Inputs

FRAME : USINT Quellen Puffer - muss ein Array sein.
DST : STRING Zielvariable.
POS : DINT Position im Quellen Puffer.
MAXLEN : DINT Definiert die Länge des Strings.
EOS : BOOL Definiert einen mit NULL terminierten String.
HEAD : BOOL Definiert einen String mit Längen-Header.

Outputs

NEXTPOS : DINT Position im Quellen Puffer nach den extrahierten Daten.
0 im Fehlerfall (ungültige Position / Puffer Größe).

Anmerkungen

Mit dieser Funktion können Daten aus einem binären Kommunikations-Frame extrahiert werden.

In LD Sprache wird die Funktion nur ausgeführt wenn der Input Rung (EN) TRUE ist. Der Output Rung (ENO) behält den Wert des Input Rungs. Diese Funktion ist für die IL Sprache nicht verfügbar.

Der FRAME Eingang muss mit der Position und der Datengröße übereinstimmen. Kann der Wert nicht sicher extrahiert werden liefert die Funktion 0.

Der Eingang DST muss direkt mit einer Variable verbunden sein und darf nicht eine Konstante oder ein komplexer Ausdruck sein. Diese Variable wird mit dem extrahierten Wert beschrieben.

Die Funktion extrahiert die folgenden Bytes aus dem Quellen Puffer:

MAXLEN | EOS | HEAD | Beschreibung
<> 0 | any | any | Der String wird in einer fixen Länge (MAXLEN) abgelegt. Ist der aktuelle String kürzer wird der Rest mit NULL-Bytes aufgefüllt.
= 0 | TRUE | any | Der String wird mit seiner aktuellen Länge abgelegt und mit einem NULL-Byte abgeschlossen.
= 0 | FALSE | TRUE | Der String wird mit seiner aktuellen Länge abgelegt. Die Längeninformation wird ein einem vorangestellten Byte abgelegt.
=0 | FALSE | FALSE | Ungültiger Aufruf

Die Funktion liefert die Position im Quellen Puffer nach dem extrahieren der Daten. Damit kann die Position der nächsten Serialisierung bestimmt werden.

ST Sprache

Q := SerGetString (FRAME, DSR, POS, MAXLEN, EOS, HEAD);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.

IL Sprache

Nicht verfügbar.


SerPutString

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> SerPutString

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Kopiert einen String in einen binären Frame.

Inputs

FRAME : USINT Ziel Puffer - muss ein Array sein.
DST : STRING Quell-Variable welche kopiert werden soll.
POS : DINT Position im Quell-Puffer.
MAXLEN : DINT Definiert die Länge des Strings.
EOS : BOOL Definiert einen mit NULL terminierten String.
HEAD : BOOL Definiert einen String mit Längen-Header.

Outputs

NEXTPOS : DINT Position im Ziel Puffer nach den kopierten Daten.
0 im Fehlerfall (ungültige Position / Puffer Größe).

Anmerkungen

Mit dieser Funktion können Daten in einem Kommunikations-Frame abgelegt werden.

In LD Sprache wird die Funktion nur ausgeführt wenn der Input Rung (EN) TRUE ist. Der Output Rung (ENO) behält den Wert des Input Rungs. Diese Funktion ist für die IL Sprache nicht verfügbar.

Der FRAME Eingang muss mit der Position und der Datengröße übereinstimmen. Kann der Wert nicht sicher extrahiert werden liefert die Funktion 0.

Die Funktion kopiert die folgenden Bytes in den Frame:

MAXLEN | EOS | HEAD | Beschreibung
<> 0 | any | any | Der String wird in einer fixen Länge (MAXLEN) abgelegt. Ist der aktuelle String kürzer wird der Rest mit NULL-Bytes aufgefüllt. Ist der String länger, wird er abgeschnitten.
= 0 | TRUE | any | Der String wird mit seiner aktuellen Länge abgelegt und mit einem NULL-Byte abgeschlossen.
= 0 | FALSE | TRUE | Der String wird mit seiner aktuellen Länge abgelegt. Die Längeninformation wird ein einem vorangestellten Byte abgelegt.
=0 | FALSE | FALSE | Ungültiger Aufruf

Die Funktion liefert die Position im Quellen Puffer nach dem extrahieren der Daten. Damit kann die Position der nächsten Serialisierung bestimmt werden.

ST Sprache

Q := SerPutString (FRAME, DSR, POS, MAXLEN, EOS, HEAD);

FBD Sprache

LD Sprache

Die Funktion wird nur dann ausgeführt, wenn EN TRUE ist.

IL Sprache

Nicht verfügbar.


SERIO

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> SERIO

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - Serielle Kommunikation.

Inputs

RUN : BOOL Ermöglicht die Kommunikation (öffnet die Kommunikationsschnittstelle).
SND : BOOL TRUE, wenn Daten gesendet werden müssen.
CONF : STRING Konfiguration der Kommunikationsschnittstelle.
DATASND : STRING Zu sendende Daten.

Outputs

OPEN : BOOL TRUE, wenn die Kommunikationsschnittstelle offen ist.
RCV : BOOL TRUE, wenn Daten empfangen wurden.
ERR : BOOL TRUE, wenn ein Fehler bei der Datenübertragung erkannt wurde.
DATARCV : STRING Empfangene Daten.

Anmerkungen

Der RUN Input beinhaltet keine Flankenerkennung. Der Baustein versucht, die Schnittstelle bei jedem Aufruf zu öffnen, wenn RUN TRUE ist und die Schnittstelle noch nicht erfolgreich geöffnet wurde. Der CONF Input wird für die Einstellungen beim Öffnen der Schnittstelle benutzt. Siehe OEM Anweisungen für weitere Informationen in Bezug auf mögliche Parameter.

Der SND Input beinhaltet keine Flankenerkennung. Es werden bei jedem Aufruf Zeichen gesendet, wenn SND TRUE ist und DATASND nicht leer ist.

Der String DATARCV mit den erhaltenen Daten (falls vorhanden) wird in jedem Zyklus gelöscht. Ihre Anwendung ist verantwortlich für die Analyse oder Speicherung der erhaltenen Zeichen unmittelbar nach dem Aufruf des SERIO Bausteins.

SERIO kann auch in der Simulation verwendet werden. In diesem Fall definiert der CONF Input die Kommunikationsschnittstelle gleich wie die Syntax der MODE-Anweisung. Zum Beispiel:

'COM1:9600,N,8,1'

Der SERIO Baustein wird nicht von allen Zielsystemen unterstützt. Siehe OEM Anweisungen für weitere Informationen.

ST Sprache

MySer ist eine deklarierte Instanz des Funktionsblocks SERIO.

MySer (RUN, SND, CONF, DATASND);
OPEN := MySer.OPEN;
RCV := MySer.RCV;
ERR := MySer.ERR;
DATARCV := MySer.DATARCV;

FBD Sprache

LD Sprache

IL Sprache

MySer ist eine deklarierte Instanz des Funktionsblocks SERIO.

Op1: CAL MySer (RUN, SND, CONF, DATASND)
LD MySer.OPEN
ST OPEN
LD MySer.RCV
ST RCV
LD MySer.ERR
ST ERR
LD MySer.DATARCV
ST DATARCV


SERIO_B

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> SERIO_B

Previous chapter Next chapter Show all Show all Hide all Hide all

Function Block - Serial communication - using arrays of bytes.

Inputs

RUN : BOOL Enable communication (opens the comm port).
CONF : STRING Configuration of the communication port.
DATASND : USINT Data to send - must be an array of bytes.
IXSND : DINT Index of the first byte to send in DATASND array.
MAXSND : DINT Number of bytes to send - see remarks.
DATARCV : USINT Array of bytes where to store received data.
IXRCV : DINT Index in DATASND array where to copy the first byte received.
MAXRCV : DINT Maximum number of bytes to receive - see remarks.

Outputs

OPEN : BOOL TRUE if the communication port is open.
NSND : DINT Number of bytes sent
NRCV : DINT Number of bytes received.

Remarks

The RUN input does not include an edge detection. The block tries to open the port on each call if RUN is TRUE and if the port is still not successfully open. The CONF input is used for settings when opening the port. Please refer to your OEM instructions for further details about possible parameters.

On every call to the SERIO_B block, the following operations are performed:

- try to send MAXSND characters from the DATASND array, starting at the IXSND index. The NSND output contains the number of bytes actually sent during the call. It can be less than the specified MAXSND value in case system buffers are full.

- pump received characters and store them, in the DATARCV array, starting at the IXRCV index and not exceeding MAXRCV. The NRCV output contains the number of bytes actually received during the call.

The SERIO_B works asynchronously. The physical sending and receiving of characters is performed as a background by system drivers. The block simply exchange data with the FIFOs of the system drivers.


SigID

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> SigID

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - ID (Kennung) einer Signal Ressource anfordern.

Eingänge

SIGNAL : STRING Name der Signal Ressource - muss eine Konstante sein!
COL : STRING Name der Spalte in der Signal Ressource - muss eine Konstante sein!

Ausgänge

ID : DINT ID (Kennung) des Signals - um an andere Bausteine übergeben zu werden.

Anmerkungen

Manche Bausteine haben Argumente welche sich auf signal Ressourcen beziehen. In diesen Bausteinen werden die Signale durch IDs (Kennungen) unterschieden. Mit dieser Funktion erhält man die ID (Kennung) einer definierten Signal Ressource.

ST Sprache

ID := SigID ('MySignal', 'FirstColumn');

FBD Sprache

LD Sprache

IL Sprache

Op1: LD 'MySignal'
SigID 'FirstColumn'
ST ID

seealso See also

SigPlay SigScale Signal resources


SigPlay

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> SigPlay

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsbaustein - Signal einer definierten Ressource abspielen.

Eingänge

IN : BOOL Start Befehl.
ID : DINT ID (Kennung) der Signal Ressource, erzeugt durch die Funktion SigID.
RST : BOOL Reset Befehl.
TM : TIME Minimale Zeit zwischen zwei Änderungen am Ausgang.

Ausgänge

Q : BOOL TRUE wenn das Signal fertig abgespielt wurde.
OUT : REAL Erzeugtes Signal.
ET : TIME Verstrichene Zeit.

Anmerkungen

Das Argument ID ist die Kennung der Signal Ressource. Dieser Wert wird von der Funktion SigID erzeugt.

Das Argument IN wird als Play / Pause Befehl verwendet. Das Signal wird nicht von Beginn an gestartet wenn IN auf FALSE gesetzt wird. Dafür wird der Eingang RST verwendet. Dieser setzt das Signal an seinen Anfang und den Ausgang OUT auf 0.

Der Eingang TM definiert die minimale Zeit zwischen zwei Änderungen des Ausgangssignals. Dieser Parameter wird ignoriert wenn er kleiner als die eingestellte Zykluszeit ist.

Dieser Funktionsbaustein enthält einen eigenen Timer. Alternativ kann die Funktion SigScale verwendet werden. Damit kann das Signal mit einem spezifischen Timer getriggert werden.

ST Sprache

MySig ist eine deklarierte Instanz des Funktionsblocks SIGPLAY.

MySig (II, ID, RST, TM);
Q := MySig.Q;
OUT := MySig.OUT;
ET := MySig.ET;

FBD Sprache

LD Sprache

IL Sprache

MySig ist eine deklarierte Instanz des Funktionsblocks SIGPLAY.

Op1: CAL MySig (II, ID, RST, TM)
LD MySig.Q
ST Q
LD MySig.OUT
ST OUT
LD MySig.ET
ST ET

seealso See also

SigScale SigID Signal resources


SigScale

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> SigScale

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Einen Stützpunkt einer Signal Ressource auslesen.

Eingänge

ID : DINT ID (Kennung) der Signal Ressource, kann mit der Funktion SigID angefordert werden.
IN : TIME Zeit bzw. X Koordinate des gewünschten Punkts in der Signal Ressource.

Ausgänge

Q : REAL Wert bzw. Y Koordinate des Punkts im Signal.

Anmerkungen

Das Argument ID ist die Kennung der Signal Ressource. Verwenden Sie die Funktion SigID um diesen Wert zu erhalten.

Diese Funktion konvertiert eine Zeitwert in einen analogen Wert entsprechend der Signal Ressource. Diese Funktion kann anstelle des Funktionsbausteins SigPlay verwendet werden, wenn das Signal von einem spezifischen Timer getriggert werden soll.

ST Sprache

Q := SigScale (ID, IN);

FBD Sprache

LD Sprache

IL Sprache

Op1: LD IN
SigScale ID
ST Q

seealso See also

SigPlay SigID Signal resources


STACKINT

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> STACKINT

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - Verwaltet einen Stapel ganzzahliger Werte vom Typ DINT.

Inputs

PUSH : BOOL Befehl: wenn der Input von FALSE auf TRUE übergeht, wird der Wert von IN auf den Stapel gedrückt.
POP : BOOL Pop-Befehl: wenn der Input von FALSE auf TRUE übergeht, wird der oberste Wert des Stapels gelöscht.
R1 : BOOL Reset-Befehl: wenn TRUE, wird der Stapel geleert und seine Grösse auf N gesetzt.
IN : DINT Wert, der bei einem steigenden Impuls von PUSH auf den Stapel gedrückt wird.
N : DINT Maximale Stapelgrösse - kann 128 nicht überschreiten.

Outputs

EMPTY : BOOL TRUE, wenn der Stapel leer ist.
OFLO : BOOL TRUE, wenn der Stapel voll ist.
OUT : DINT oberster Wert des Stapels.

Anmerkungen

Die Push- und Pop-Operationen erfolgen bei einem steigenden Impuls der Inputs PUSH und POP. In der LD Sprache ist das Input-Rung der Befehl PUSH. Das Output-Rung ist der Output EMPTY.

Die spezifizierte Grösse (N) wird nur dann berücksichtigt, wenn der Input R1 (reset) TRUE ist.

ST Sprache

MyStack ist eine deklarierte Instanz des Funktionsblocks STACKINT.

MyStack (PUSH, POP, R1, IN, N);
EMPTY := MyStack.EMPTY;
OFLO := MyStack.OFLO;
OUT := MyStack.OUT;

FBD Sprache

LD Sprache

IL Sprache

MyStack ist eine deklarierte Instanz des Funktionsblocks STACKINT.

Op1: CAL MyStack (PUSH, POP, R1, IN, N)
LD MyStack.EMPTY
ST EMPTY
LD MyStack.OFLO
ST OFLO
LD MyStack.OUT
ST OUT

seealso See also

AVERAGE INTEGRAL DERIVATE LIM_ALRM HYSTER


SurfLin

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> SurfLin

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - Lineare Interpolation einer Fläche.

Inputs

X : REAL X Koordinate des zu interpolierenden Punktes.

Y : REAL Y Koordinate des zu interpolierenden Punktes.

XAxis : REAL[] X Koordinaten der bekannten Punkte auf der X-Achse.

YAxis : REAL[] Y Koordinaten der bekannten Punkte auf der Y-Achse.

ZVal : REAL[,] Z Koordinate der Punkte definiert durch die Achse.

Outputs

Z : REAL Interpolierter Z-Wert entsprechend der Input-Punkte von X und Y

OK : BOOL TRUE wenn erfolgreich.

ERR : DINT Fehlercode wenn fehlgeschlagen - 0 wenn OK.

Anmerkungen

Diese Funktion führt eine lineare Interpolation innerhalb einer Liste von Punkten aus. Diese Liste ist als eindimensionale Arrays in XAxis und YAxis definiert. Der Wert des Outputs Z ist eine Interplation der Z-Werte der vier umgebenden Punkte. Z-Werte von definierten Punkten werden in der ZVal-Matrix übergeben (zweidimensionaler Array).

Die Dimensionen von ZVal werden wie folgt ausgelegt: ZVal [ iX , iY ]

Werte für X- und Y-Achsen müssen von klein nach groß sortiert sein. Es müssen mindestens zwei Punkte für jede Achse definiert sein. ZVal muss zu den Dimensionen der XAxis und YAxis Arrays passen. Zum Beispiel:

XAxis : ARRAY [0..2] of REAL;

YAxis : ARRAY [0.3] of REAL;

ZVal : ARRAY [0..2,0..3] of REAL;

Ist der Input Punkt außerhalb des Rechtecks, welches durch die Grenzen von XAxis und YAxis definiert ist, wird der Z Output an den entsprechenden Wert gebunden und ein Fehler ausgegeben.

Der Output ERR gibt Auskunft über den Fehler wenn die Funktion fehlschlägt:

Fehlercode | Bedeutung
0 | OK
1 | Ungültige Dimension des Input Arrays
2 | Ungültige Punkte für die X-Achse
3 | Ungültige Punkte für die Y-Achse
4 | X,Y Punkte sind außerhalb der definierten Achsen


TCP/IP Management Funktionen

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> TCP/IP Management Funktionen

Previous chapter Next chapter Show all Show all Hide all Hide all

Die folgenden Funktionen ermöglichen ein Management von TCP/IP Sockets zur Erstellung von Client oder Server Applikationen über ein ETHERNET Netzwerk:

tcpListen Erstellt einen listening Server Socket.
tcpAccept Client Verbindung akzeptieren.
tcpConnect Erstellt einen Client Socket und verbindet ihn mit einem Server.
tcpIsConnected Test ob ein Client Socket verbunden ist.
tcpClose Schließt einen Socket.
tcpSend Zeichen senden.
tcpReceive Zeichen empfangen.
tcpIsValid Test ob ein Socket valid ist.

Jeder Socket ist in der Applikation durch einen eindeutigen Handle definiert und wird durch einen DINT Wert manipuliert.

attention Attention
  • Obwohl die Runtime ein vereinfachtes Interface bietet, muss der Programmierer mit dem Socket Interface wie z.B. dem in anderen Programmiersprachen (z.B. "C") vertraut sein.
  • Socket Management kann auf manchen Plattformen nicht verfügbar sein. Bitte sehen Sie in die OEM Instruktionen für mehr Informationen hinsichtlich verfügbarer Features.

tcpListen: Erstellt einen listening Server Socket

SOCK := tcpListen (PORT, MAXCNX);

PORT : DINT TCP Port Nummer für die Verbindung an den Server Socket.
MAXCNX : DINT Maximale Anzahl von akzeptierten Client Sockets.
SOCK : DINT ID des neuen Server Sockets.

Diese Funktion erstellt einen neuen Socket und führt bind und listen Operationen aus in dem sie Standard-TCP-Einstellungen verwendet. Mit der Funktion tcpClose wird der Socket wieder freigegeben.

tcpAccept: Eine neue Client Verbindung akzeptieren

SOCK := tcpAccept (LSOCK);

LSOCK : DINT ID eines Server Sockets welche durch die tcpListen Funktion retourniert wurde.
SOCK : DINT ID eines neuen, akzeptierten Client Sockets, oder Invalid ID.

Diese Funktion führt einen accept Operation auf Basis von default TCP Einstellungen aus. Um den Socket wieder freizugeben, muss die tcpClose Funktion mit der erhaltenen ID ausgeführt werden.

tcpConnect: Erstellt einen Client Socket und verbindet ihn zu einen Server

SOCK := tcpConnect (ADDRESS, PORT);

ADDRESS : STRING IP Adresse des remote Servers.
PORT : DINT Gewünschte Port Nummer am Server.
SOCK : DINT ID des neuen Client Sockets.

Diese Funktion erstellt einen neuen Socket und führt die connect Operation mit TCP Default-Einstelllungen mit der spezifizierten Server Adresse und Port durch. Um den Socket wieder freizugeben, muss die tcpClose Funktion mit der erhaltenen ID ausgeführt werden.

attention Attention

Es ist möglich, dass die Funktion eine gültige Socket ID retourniert auch wenn die Verbindung zum Server noch nicht richtig ausgeführt wird. Nach dem Aufruf dieser Funktion muss die tcpIsConnected Funktion ausgeführt werden, um festzustellen ob die Verbindung fertig aufgebaut ist.

tcpIsConnected: Test ob ein Client Socket verbunden ist

OK := tcpIsConnected (SOCK);

SOCK : DINT ID des Client Sockets.
OK : BOOL TRUE wenn Verbindung korrekt aufgebaut ist.

attention Attention

Es ist möglich, dass der Socket ungültig wird nachdem diese Funktion aufgerufen wurde, wenn ein Fehler in der TCP Verbindung auftritt. Es muss die Funktion tcpIsValid ausgeführt werden, nach dem tcpIsConnected ausgeführt wurde. Wenn der Socket weiterhin ungültig bleibt, muss der Socket mit tcpClose geschlossen werden.

tcpClose: Socket freigeben

OK := tcpClose (SOCK);

SOCK : DINT ID eines Sockets.
OK : BOOL TRUE wenn erfolgreich.

Der Programmierer ist selbst dafür verantwortlich sämtliche Sockets zu schließe welche durch tcpListen, tcpAccept oder tcpConnect Funktionen aufgebaut wurden, auch wenn diese ungültig geworden sind.

tcpSend: Zeichen senden

NBSENT := tcpSend (SOCK, NBCHR, DATA);

SOCK : DINT ID eines Sockets.
NBCHAR : DINT Anzahl der Zeichen welche gesendet werden sollen.
DATA : STRING String welcher die zu sendenden Zeichen enthält.
NBSENT : DINT Anzahl der Zeichen welche aktuell gesendet wurden.

Es ist möglich, dass die Anzahl der Zeichen welche aktuell gesendet wurden geringer ist als erwartet. In diesem Fall muss die Funktion im folgenden Zyklus erneut aufgerufen werden, um die noch fehlenden Zeichen zu senden.

attention Attention

Es ist möglich, dass der Socket ungültig wird, nachdem diese Funktion aufgerufen wurde wenn ein Fehler in der TCP Verbindung passiert. Nach dem Aufruf dieser Funktion muss unbedingt tcpIsValid aufgerufen werden. Wenn der Socket nicht mehr gültig ist muss dieser mit tcpClose geschlossen werden.

tcpReceive: Zeichen empfangen

NBRCV := tcpReceive (SOCK, MAXCHR, DATA);

SOCK : DINT ID eines Sockets.
MAXCHR : DINT Maximale Anzahl von erwarteten Zeichen.
DATA : STRING String in welchem die Zeichen abgelegt werden sollen.
NBRCV : DINT Anzahl der Zeichen welche aktuell empfangen wurden.

Es ist möglich, dass die Anzahl der Zeichen, welche aktuell empfangen wurden, kleiner ist als erwartet. In diesem Fall muss diese Funktion im folgenden Zyklus erneut aufgerufen werden um die fehlenden Zeichen zur erhalten.

attention Attention

Es ist möglich, dass der Socket ungültig wird, nachdem diese Funktion aufgerufen wurde wenn ein Fehler in der TCP Verbindung passiert. Nach dem Aufruf dieser Funktion muss unbedingt tcpIsValid aufgerufen werden. Wenn der Socket nicht mehr gültig ist muss dieser mit tcpClose geschlossen werden.

tcpIsValid: Test ob Socket gültig ist

OK := tcpIsValid (SOCK);

SOCK : DINT ID des Sockets.
OK : BOOL TRUE wenn spezifizierter Socket noch gültig ist.


Text buffers manipulation

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation

Previous chapter Next chapter Show all Show all Hide all Hide all

Strings are limited to 255 characters. Here is a set of functions and function blocks for working with not limited text buffers. Text buffers are dynamically allocated or re-allocated.

attention Attention
  • Text buffers management functions use safe dynamic memory allocation that needs to be configured in the project settings. From the project settings, press the "Advanced" push button and go to "Memory" tab. Here you can setup the memory for safe dynamic allocation.
  • There must be one instance of the TxbManager declared in your application for using these functions.
  • The application should take care of releasing memory allocated for each buffer. Allocating buffers without freing them will lead to memory leaks.

The application is responsible for freeing all allocated text buffers. However, all allocated buffers are automatically released when the application stops.

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.

Noch in diesem Kapitel

Memory management / Miscellaneous

Allocation / exchange with files

Data exchange

Sequential reading

Sequential writing

UNICODE conversions


Memory management / Miscellaneous

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Memory management / Miscellaneous

Previous chapter Next chapter Show all Show all Hide all Hide all

Noch in diesem Kapitel

TxbManager

TxbLastError


TxbManager

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Memory management / Miscellaneous -> TxbManager

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbManager

Description

This function block is used for managing the memory allocated for text buffers. It takes care of releasing the corresponding memory when the application stops, and can be used for tracking memory leaks.

attention Attention

There must be one and only one instance of this block declared in the IEC application in order to use any other Txb... function.

Output | Description
bOK : BOOL | TRUE if the text buffers memory system is correctly initialized.
nBuffers : DINT | Number of text buffers currently allocated in memory.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


TxbLastError

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Memory management / Miscellaneous -> TxbLastError

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbLastError

Description

All TXB functions and blocks simply return a boolean information as a return value. This function can be called after any other function giving a FALSE return. It gives a detailed error code about the last detected error.

Output | Description
iErr : DINT | Error code reported by the last call: 0 = OK other = error (see below)

Below are possible error codes:

Code | Meaning
1 2 3 4 5 6 7 8 9 | Invalid instance of TXBManager - should be only one. Manager already open - should be only one instance of TxbManager. Manager not open - no instance of TxbManager declared. Invalid handle. String has been truncated during copy. Cannot read file. Cannot write file. Unsupported data type. Too many text buffers allocated.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


Allocation / exchange with files

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Allocation / exchange with files

Previous chapter Next chapter Show all Show all Hide all Hide all

Noch in diesem Kapitel

TxbNew

TxbNewString

TxbFree

TxbReadFile

TxbWriteFile


TxbNew

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Allocation / exchange with files -> TxbNew

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbNew

Description

This function allocates a new text buffer initially empty. The application will be responsible for releasing the buffer by calling the TxbFree() function.

Output | Description
hTxb : DINT | Handle of the new buffer

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


TxbNewString

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Allocation / exchange with files -> TxbNewString

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbNewString

Description

This function allocates a new text buffer initially filled with teh specified string. The application will be responsible for releasing the buffer by calling the TxbFree() function.

Input | Description
szText : STRING | Initial value of the text buffer

Output | Description
hTxb : DINT | Handle of the new buffer

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


TxbFree

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Allocation / exchange with files -> TxbFree

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbFree

Description

This function releases a text buffer from memory.

Input | Description
hTxb : DINT | Handle of a valid text buffer.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


TxbReadFile

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Allocation / exchange with files -> TxbReadFile

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbReadFile

Description

This function allocates a new text buffer and fills it with the contents of the specified file. The application will be responsible for releasing the buffer by calling the TxbFree() function.

Input | Description
szPath : STRING | Full qualified pathname of the file to be read

Output | Description
hTxb : DINT | Handle of the new buffer

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


TxbWriteFile

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Allocation / exchange with files -> TxbWriteFile

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbWriteFile

Description

This function stores the contents of a text buffer to a file. The text buffer remains allocated in memory.

Input | Description
hTxb : DINT | Handle of the text buffer.
szPath : STRING | Full qualified pathname of the file to be created.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


Data exchange

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Data exchange

Previous chapter Next chapter Show all Show all Hide all Hide all

Noch in diesem Kapitel

TxbGetLength

TxbGetData

TxbGetString

TxbSetData

TxbSetString

TxbClear

TxbCopy


TxbGetLength

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Data exchange -> TxbGetLength

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbGetLength

Description

This function returns the current length of a text buffer.

Input | Description
hTxb : DINT | Handle of the text buffer.

Output | Description
len : DINT | Number of characters in the text buffer.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


TxbGetData

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Data exchange -> TxbGetData

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbGetData

Description

This function copies the contents of a text buffer to an array of characters.

Input | Description
hTxb : DINT | Handle of the text buffer.
arData : SINT[] | Array of characters to be filled with text.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


TxbGetString

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Data exchange -> TxbGetString

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbGetString

Description

This function copies the contents of a text buffer to a string. The text is truncated if the string is not large enough.

Input | Description
hTxb : DINT | Handle of the text buffer

Output | Description
szText : STRING | String to be filled with text

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


TxbSetData

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Data exchange -> TxbSetData

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbSetData

Description

This function copies an array of characters to a text buffer. All characters of the input array are copied.

Input | Description
hTxb : DINT | Handle of the text buffer
arData : SINT[] | Array of characters to copy

Output | Description
bOK : BOOL | TRUE if successful

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


TxbSetString

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Data exchange -> TxbSetString

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbSetString

Description

This function copies the contents of a string to a text buffer.

Input | Description
hTxb : DINT | Handle of the text buffer.
szText : STRING | String to be copied.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


TxbClear

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Data exchange -> TxbClear

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbClear

Description

This function empties a text buffer.

Input | Description
hTxb : DINT | Handle of the text buffer.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


TxbCopy

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Data exchange -> TxbCopy

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbCopy

Description

This function copies the contents of the hTxb buffer the to hTxbDst buffer.

Input | Description
hTxbDst : DINT | Handle of the destination text buffer.
hTxb : DINT | Handle of the source text buffer.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


Sequential reading

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Sequential reading

Previous chapter Next chapter Show all Show all Hide all Hide all

Noch in diesem Kapitel

TxbRewind

TxbGetLine


TxbRewind

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Sequential reading -> TxbRewind

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbRewind

Description

This function resets the sequential reading of a text buffer (rewind to the beginning of the text).

Input | Description
hTxb : DINT | Handle of the text buffer.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


TxbGetLine

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Sequential reading -> TxbGetLine

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbGetLine

Description

This function sequentially reads a line of text from a text buffer. End of line characters are not copied to the output string.

Input | Description
hTxb : DINT | Handle of the text buffer.
szText : STRING | String to be filled with read line.

Output | Decription
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


Sequential writing

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Sequential writing

Previous chapter Next chapter Show all Show all Hide all Hide all

Noch in diesem Kapitel

TxbAppend

TxbAppendLine

TxbAppendEol

TxbAppendTxb


TxbAppend

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Sequential writing -> TxbAppend

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbAppend

Description

This function adds the contents of a variable, formatted as text, to a text buffer. The specified variable can have any data type.

Input | Description
hTxb : DINT | Handle of the text buffer.
data : ANY | Any variable.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


TxbAppendLine

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Sequential writing -> TxbAppendLine

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbAppendLine

Description

This function adds the contents of the specified string variable to a text buffer, plus end of line characters.

Input | Description
hTxb : DINT | Handle of the text buffer.
szText : STRING | String to be added to the text.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


TxbAppendEol

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Sequential writing -> TxbAppendEol

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbAppendEol

Description

This function adds end of line characters to a text buffer.

Input | Description
hTxb : DINT | Handle of the text buffer.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


TxbAppendTxb

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> Sequential writing -> TxbAppendTxb

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbAppendTxb

Description

This function adds the contents of the hTxb text buffer to the hTxbDst text buffer.

Input | Description
hTxbDst : DINT | Handle of the text buffer to be completed.
hTxb : DINT | Handle of the text buffer to be added.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


UNICODE conversions

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> UNICODE conversions

Previous chapter Next chapter Show all Show all Hide all Hide all

Noch in diesem Kapitel

TxbAnsiToUtf8

TxbUtf8ToAnsi


TxbAnsiToUtf8

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> UNICODE conversions -> TxbAnsiToUtf8

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbAnsiToUtf8

Description

This function converts the whole contents of a text buffer from ANSI to UNICODE UTF8 encoding. Warning:

attention Attention
  • This function may be time and memory consuming for large buffers.
  • UNICODE conversion may be not available on some operating systems

Input | Description
hTxb : DINT | Handle of the text buffer.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


TxbUtf8ToAnsi

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> Text buffers manipulation -> UNICODE conversions -> TxbUtf8ToAnsi

Previous chapter Next chapter Show all Show all Hide all Hide all

TxbUtf8ToAnsi

Description

This function converts the whole contents of a text buffer from UNICODE UTF8 to ANSI encoding.

attention Attention
  • This function may be time and memory consuming for large buffers.
  • UNICODE conversion may be not available on some operating systems

Input | Description
hTxb : DINT | Handle of the text buffer.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

TxbManager: Main gatherer of text buffer data in memory.

TxbLastError: Get detailed error report about last call.

Allocation / exchange with files

TxbNew: Allocate a new empty buffer.

TxbNewString: Allocate a new buffer initialized with string.

TxbFree: Release a text buffer.

TxbReadFile: Allocate a new buffer from file.

TxbWriteFile: Store a text buffer to file.

Data exchange

TxbGetLength: Get length of a text buffer.

TxbGetData: Store text contents to an array of characters.

TxbGetString: Store text contents to a string.

TxbSetData: Store an array of characters to a text buffer.

TxbSetString: Store string to text buffer.

TxbClear: Empty a text buffer.

TxbCopy: Copy a text buffer.

Sequential reading

TxbRewind: Rewind sequential reading.

TxbGetLine: Sequential read line by line.

Sequential writing

TxbAppend: Append variable value.

TxbAppendLine: Append a text line.

TxbAppendEol: Append end of line characters.

TxbAppendTxb: Append contents of another buffer.

UNICODE conversions

TxbAnsiToUtf8: Convert a text buffer to UNICODE.

TxbUtf8ToAnsi: Convert a text buffer to ANSI.


UDP Management Funktionen

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> UDP Management Funktionen

Previous chapter Next chapter Show all Show all Hide all Hide all

Mit den folgenden Funktionen können UDP Sockets verwaltet werden um Client oder Server Applikation über Ethernet aufzubauen:

udpCreate UDP Socket erstellen.
udpAddrMake Adresspuffer für UDP Funktionen erstellen.
udpSendTo Telegramm senden.
udpRcvFrom Telegramm erhalten.
udpClose Socket schließen.
udpIsValid Gültigkeit eines Sockets überprüfen.
udpSendToArray Telegramm senden.
udpRcvFromArray Telegramm erhalten.

Jeder Socket wird in der Applikation durch einen eindeutigen Handle (DINT Wert) identifiziert.

attention Attention
  • Auch wenn die Runtime ein vereinfachtes Interface anbietet, muss der Anwender mit dem Socket Interface wie z.B. in der Programmiersprache "C" vertraut sein.
  • Es ist möglich, dass einige Zielsysteme Socket Management nicht unterstützen. Sehen Sie dazu in den OEM Anweisungen nach.

udpCreate: UDP Socket erstellen

SOCK := udpCreate (PORT);

PORT : DINT TCP Port Nummer für den Server Socket oder 0 für einen Client Socket.
SOCK : DINT ID des neuen Server Sockets.

Diese Funktion erstellt einen neuen UDP Socket. Ist das PORT Argument ungleich 0, so wird der Socket an diesen Port gebunden und kann als Server Socket verwendet werden.

udpAddrMake: Adresspuffer für UDP Funktionen erstellen

OK := udpAddrMake (IPADDR, PORT, ADD);

IPADDR : STRING IP Adresse in der Form xxx.xxx.xxx.xxx.
PORT : DINT IP Port Nummer.
ADD : USINT[32] Puffer für die Ablage der UDP Adressen.
OK : BOOL TRUE wenn erfolgreich.

Diese Funktion wird für eine internen UDP Adresse benötigt, welche an die udpSendTo Funktion übergeben wird im Fall von UDP Client Prozessing.

udpSendTo: UDP Telegramm senden

OK := udpSendTo (SOCK, NB, ADD, DATA);

SOCK : DINT ID des Client Sockets.
NB : DINT Anzahl der zu sendenden Zeichen.
ADD : USINT[32] Puffer welcher die UDP Adresse enthält (am Eingang).
DATA : STRING zu sendende Zeichen.
OK : BOOL TRUE wenn erfolgreich.

Der ADD Puffer muss eine gültige UDP Adresse enthalten. Entweder zusammengestellt durch die udpAddrMake Funktion oder zurückgegeben durch die udpRcvFrom Funktion.

udpSendToArray: UDP Telegramm senden

OK := udpSendTo (SOCK, NB, ADD, DATA);

SOCK : DINT ID des Client Sockets.
NB : DINT Anzahl der zu sendenden Zeichen.
ADD : USINT[32] Puffer welcher die UDP Adresse enthält (am Eingang).
DATA : USINT[] zu sendende Zeichen.
OK : BOOL TRUE wenn erfolgreich.

Der ADD Puffer muss eine gültige UDP Adresse enthalten. Entweder zusammengestellt durch die udpAddrMake Funktion oder zurückgegeben durch die udpRcvFrom Funktion.

udpRcvFrom: UDP Telegramm erhalten

Q := udpRcvFrom (SOCK, NB, ADD, DATA);

SOCK : DINT ID des Client Sockets.
NB : DINT Maximale Anzahl an erhaltenen Zeichen.
ADD : USINT[32] Puffer mit der UDP Adresse des Transmitters (am Ausgang eingegeben).
DATA : STRING Puffer für die Ablage der erhaltenen Zeichen.
Q : DINT Anzahl der aktuell erhaltenen Zeichen.

Werden Zeichen erhalten, füllte die Funktion das ADD Argument mit der internen UDP des Senders. Dieser Puffer kann dann an die udpSendTo Funktion übergeben werden um die Antwort zu senden.

udpRcvFromArray: UDP Telegramm erhalten

Q := udpRcvFrom (SOCK, NB, ADD, DATA);

SOCK : DINT ID des Client Sockets.
NB : DINT Maximale Anzahl an erhaltenen Zeichen.
ADD : USINT[32] Puffer mit der UDP Adresse des Transmitters (am Ausgang eingegeben).
DATA : USINT[] Puffer für die Ablage der erhaltenen Zeichen.
Q : DINT Anzahl der aktuell erhaltenen Zeichen.

Werden Zeichen erhalten, füllte die Funktion das ADD Argument mit der internen UDP des Senders. Dieser Puffer kann dann an die udpSendTo Funktion übergeben werden um die Antwort zu senden.

udpClose: Socket freigeben

OK := udpClose (SOCK);

SOCK : DINT ID eines beliebigen Sockets.
OK : BOOL TRUE wenn erfolgreich.

Der Anwender ist für das freigeben von Sockets welche durch tcpListen, tcpAccept oder tcpConnect Funktionen erstellt wurden selbst verantwortlich auch wenn diese ungültig geworden sind.

udpIsValid: Gültigkeit eines Sockets testen

OK := udpIsValid (SOCK);

SOCK : DINT ID des Sockets.
OK : BOOL TRUE wenn der angegebene Socket.

© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


VLID

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> VLID

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Kennung einer eingebetteten Liste von Variablen auslesen.

Inputs

FILE : STRING Pfadname der Listen-Datei (.SPL oder .TXT) - muss ein Konstante sein!

Outputs

ID : DINT ID (Kennung) der Liste - um einem anderen Baustein zugeführt zu werden.

Anmerkungen

Manche Bausteine haben Inputs welche sich auf eine Liste von Variablen beziehen. Dieser List Input wird als numerische Bezeichner übergeben. Die VLID Funktion liest den numerischen Bezeichner einer Listen von Variablen aus.

Eingebettete Listen von Variablen können sein:

  • Watch Listen welche mit der Workbench erstellt wurden. Diese Dateien haben die Erweiterung .SPL.
  • Einfache .TXT Text Dateien mit einem Variablennamen pro Zeile.

Listen müssen einfache Variablen beinhalten. Elemente von Arrays und Strukturen müssen als Einzelvariablen eingetragen sein (z.B. VarArray[2,1]; Var1.Item). Die Länge der Liste wird von der Workbench und von der Runtime nicht limitiert.

attention Attention

Die Listen Dateien werden beim Kompilieren gelesen und in den SPS Code eingebettet. Damit werden Änderungen in der Listen Datei nach dem Download nicht mehr berücksichtigt.

ST Sprache

ID := VLID ('MyFile.spl');

FBD Sprache

LD Sprache

Die Funktion wird ausgeführt wenn EN TRUE ist.

IL Sprache

Op1: LD 'MyFile.spl'
VLID COL
ST ID


XML writing and parsing

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing

Previous chapter Next chapter Show all Show all Hide all Hide all

XML documents can be managed from the IEC application as a tree of XML tags. Each XML tag is represented by:

  • a tag name,
  • a list of attributes (name=value),
  • a contents (raw text),
  • a list of child tags.

A whole XML document is handled as its main tag.

XML functions are originally designed for working with text buffers. However, some additional functions have been added for dealing with XML files on disk as it may be helpful in other applications.

attention Attention

XML parsing and witing functions support only 8 bit encoding features. This can be UTF8 or ANSI (ISO-8859-1) encoding. Some text buffers handling functions provide conversion between UTF8 and ANSI formats.

There must be one instance of the XmlManager declared in your application for using these functions.

There must be one instance of the TxbManager declared in your application for using text buffers related functions.

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlGetParent: Get parent tag.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.

Noch in diesem Kapitel

Memory Management / Miscellaneous

Reading/writing documents

Exploring an XML document

Building an XML document

Exchanging variables using their name


Memory Management / Miscellaneous

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Memory Management / Miscellaneous

Previous chapter Next chapter Show all Show all Hide all Hide all

Noch in diesem Kapitel

XmlManager

XmlLastError


XmlManager

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Memory Management / Miscellaneous -> XmlManager

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlManager – Function block

Description

This function block is used for managing the memory allocated for XML tags and documents. It takes care of releasing the corresponding memory when the application stops, and can be used for tracking memory leaks. There must be one and only one instance of this block declared in the IEC application in order to use any other Xml function.

Output | Description
bOK : BOOL | TRUE if the XML memory system is correctly initialized.
nBuffers : DINT | Number of XML documents currently allocated in memory.
nTags : DINT | Number of XML tags currently allocated in memory.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


XmlLastError

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Memory Management / Miscellaneous -> XmlLastError

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlLastError – Function

Description

All XML functions and blocks simply return a boolean information as a return value. This function can be called after any other function giving a FALSE return. It gives a detailed error code about the last detected error.

Output | Description
iErr : DINT | Error code reported by the last call: 0 = OK. other = error.

Below are possible error codes:

Error Code | Description
1 2 3 4 5 6 7 8 9 | Invalid instance of XMLManager (should be only one). Manager already open - should be only one instance declared. Manager not open - no instance of XmlManager declared. Invalid handle. Too many tags allocated. Invalid handle of a text buffer (or no instance of TxbManager declared). Invalid XML file or XML syntax error. Cannot read file. Cannot write file.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


Reading/writing documents

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Reading/writing documents

Previous chapter Next chapter Show all Show all Hide all Hide all

Noch in diesem Kapitel

XmlNewDoc

XmlFreeDoc

XmlParseDocTxb

XmlParseDocFile

XmlWriteDocTxb

XmlWriteDocFile


XmlNewDoc

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Reading/writing documents -> XmlNewDoc

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlNewDoc – Function

Description

This function allocates a new XML document, initially filled with one empty root tag. The application is responsible for releasing the allocated memory by calling the XmlFreeDoc function.

Input | Description
szTag : STRING | Name of the root tag.

Output | Description
hRootTag : DINT | Handle of the root tag. Can be used as a tag handle for building the document, or as a complete document handle for releasing the memory.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


XmlFreeDoc

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Reading/writing documents -> XmlFreeDoc

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlFreeDoc – Function

Description

This function releases the memory allocated for an XML document. It releases the specified tag and all its child tags. This function can also be used to delete a child tag and keep its parent tag in memory.

Input | Description
hRootTag : DINT | Handle of the XML document’s root tag.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


XmlParseDocTxb

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Reading/writing documents -> XmlParseDocTxb

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlParseDocTxb – Function

Description

This function parses the XML text contained in a text buffer and allocates a new XML document to store it. The application is responsible for releasing the allocated memory by calling the XmlFreeDoc function.

attention Attention

XML parsing and witing functions support only 8 bit encoding features. This can be UTF8 or ANSI (ISO-8859-1) encoding. Some additional functions will be provided for conversion between UTF8 and ANSI formats.

Input | Description
hTxb : DINT | Handle of a text buffer containing XML text.

Output | Description
hRootTag : DINT | Handle of the root tag. Can be used as a tag handle for exploringment, or as a complete document handle for releasing the memory.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


XmlParseDocFile

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Reading/writing documents -> XmlParseDocFile

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlParseDocFile – Function

Description

This function parses the XML text contained in a file and allocates a new XML document to store it. The application is responsible for releasing the allocated memory by calling the XmlFreeDoc function.

attention Attention

XML parsing and witing functions support only 8 bit encoding features. This can be UTF8 or ANSI (ISO-8859-1) encoding. Some additional functions will be provided for conversion between UTF8 and ANSI formats.

Input | Description
szPath : STRING | Full qualified pathname of the XML file.

Output | Description
hRootTag : DINT | Handle of the root tag. Can be used as a tag handle for exploringment, or as a complete document handle for releasing the memory.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


XmlWriteDocTxb

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Reading/writing documents -> XmlWriteDocTxb

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlWriteDocTxb – Function

Description

This function format an XML document to a text buffer. It does not releases the memory allocated for the XML document.

attention Attention

XML parsing and witing functions support only 8 bit encoding features. This can be UTF8 or ANSI (ISO-8859-1) encoding. Some additional functions will be provided for conversion between UTF8 and ANSI formats.

Input | Description
hRootTag : DINT | Handle of the XML document root tag.
hTxb : DINT | Handle of the text buffer where to store XML text. This handle has been allocated and will be released by the application.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


XmlWriteDocFile

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Reading/writing documents -> XmlWriteDocFile

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlWriteDocFile – Function

Description

This function format an XML document to a file. It does not releases the memory allocated for the XML document.

attention Attention

XML parsing and writing functions support only 8 bit encoding features. This can be UTF8 or ANSI (ISO-8859-1) encoding. Some additional functions will be provided for conversion between UTF8 and ANSI formats.

Input | Description
hRootTag : DINT | Handle of the XML document root tag.
szPath : STRING | Full qualified pathname of the XML file to be created.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


Exploring an XML document

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Exploring an XML document

Previous chapter Next chapter Show all Show all Hide all Hide all

Noch in diesem Kapitel

XmlGetTagName

XmlCheckTagName

XmlGetTagCont

XmlGetTagContT

XmlGetTagAttrib

XmlGetParent

XmlFirstChild

XmlNextChild


XmlGetTagName

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Exploring an XML document -> XmlGetTagName

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlGetTagName – Function

Description

This function returns the name of an XML tag.

Input | Description
hTag : DINT | Handle of the XML tag.

Output | Description
szTag : STRING | Name of the tag. Ex: “ABC” for <ABC/>.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


XmlCheckTagName

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Exploring an XML document -> XmlCheckTagName

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlCheckTagName – Function

Description

This function returns TRUE if the specified tag has the specified name. This function makes case insensitive comparison of tag manes.

Input | Description
hTag : DINT | Handle of the XML tag.
szTag : STRING | Wished tag name.

Output | Description
bOK : BOOL | TRUE if the tag matches the specified name.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


XmlGetTagCont

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Exploring an XML document -> XmlGetTagCont

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlGetTagCont – Function

Description

This function copies the contents of an XML tag to a variable. The specified variable can have any data type.

Input | Description
hTag : DINT | Handle of the XML tag.
data : ANY | Variable to be assigned with the contents of the tag.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


XmlGetTagContT

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Exploring an XML document -> XmlGetTagContT

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlGetTagContT – Function

Description

This function copies the contents of an XML tag to a text buffer. The text buffer is allocated by the function, and must be released by the application after use.

Input | Description
hTag : DINT | Handle of the XML tag.

Output | Description
hTxb : DINT | Handle of the text buffer allocated and filled with tag contents.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


XmlGetTagAttrib

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Exploring an XML document -> XmlGetTagAttrib

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlGetTagAttrib – Function

Description

This function copies the contents of an XML attribute to a variable. The specified variable can have any data type.

Input | Description
hTag : DINT | Handle of the XML tag.
szAttrib : STRING | Name of the wished attribute.
data : ANY | Variable to be assigned with the value of the tag attribute.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


XmlGetParent

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Exploring an XML document -> XmlGetParent

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlGetParent – Funktion

Beschreibung

Diese Funktion liefert den Handle des Eltern-Elements eines XML-Tags.

Input | Beschreibung
IN : DINT | Handle des XML-Tags.

Output | Beschreibung
OUT : DINT | Handle des Eltern-Tags.

seealso Siehe auch

Memory management / Miscellaneous

XmlManager: Hauptsammler der XML-Daten im Speicher.

XmlLastError: Liefert detaillierten Fehlerbericht über den letzten Aufruf.

Reading/writing documents

XmlNewDoc: Erzeugt ein leeres XML-Dokument.

XmlFreeDoc: Gibt ein XML-Dokument aus dem Speicher frei

XmlParseDocTxb: Parst ein XML-Dokument aus dem Textpuffer.

XmlParseDocFile: Parst ein XML-Dokument aus einer Datei.

XmlWriteDocTxb: Formatiert XML-Daten in Textpuffer.

XmlWriteDocFile: Formatiert XML-Daten in Datei.

Exploring an XML document

XmlGetTagName: Liefert den Namen eines XML-Tags.

XmlCheckTagName: Testet den Namen eines XML-Tags.

XmlGetTagCont: Liefert den Inhalt eines Tags als STRING.

XmlGetTagContT: Liefert den Inhalt eines Tags als Textpuffer.

XmlGetTagAttrib: Liefert das Attribut des Tags.

XmlFirstChild: Beginnt Kind-Tags zu nummerieren.

XmlNextChild: Nummeriert Kind-Tags

Building an XML document

XmlSetTagAttrib: Bestimmt das Attribut des Tags.

XmlSetTagCont: Setzt den Inhalt eines Tags mit STRING fest.

XmlSetTagContT: Setzt den Inhalt eines Tags mit Textpuffer fest.

XmlAddChild: Ein Kind-Tag hinzufügen.

Exchanging variables using their name

XmlGetSybValue: Liefert den Variablenwert, in dem es dessen Symbol verwendet.

XmlSetSybValue: Bestimmt den Variablenwert, in dem es dessen Symbol verwendet.


XmlFirstChild

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Exploring an XML document -> XmlFirstChild

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlFirstChild – Function

Description

This function returns the handle of the first child tag having the specified name. If “szTag” is empty, then the first child tag is returned whatever its name is.

Input | Description
hTag : DINT | Handle of the XML tag.
szTag : STRING | Name of the wished child tag. Empty string for enumerating all children.

Output | Description
hChildTag | Handle of the first child tag matching the specified name, or 0 if no child found.

Typical use in ST:

hChild := XmlFirstChild (hParentTag, 'TagName');

while hChild <> 0 do

(* explore the tag *)

hChild := XmlNextChild (hParentTag, hChild, 'TagName');

end_while;

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


XmlNextChild

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Exploring an XML document -> XmlNextChild

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlNextChild – Function

Description

This function returns the handle of the next child tag having the specified name. If szTag is empty, then the next child tag is returned whatever its name is.

Input | Description
hTag : DINT | Handle of the XML tag.
hChildTag : DINT | Handle of the previous child tag.
szTag : STRING | Name of the wished child tag. Empty string for enumerating all children.

Output | Description
hChildNext | Handle of the next child tag matching the specified name, or 0 if no child found.

Typical use in ST:

hChild := XmlFirstChild (hParentTag, 'TagName');

while hChild <> 0 do

(* explore the tag *)

hChild := XmlNextChild (hParentTag, hChild, 'TagName');

end_while;

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


Building an XML document

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Building an XML document

Previous chapter Next chapter Show all Show all Hide all Hide all

Noch in diesem Kapitel

XmlSetTagAttrib

XmlSetTagCont

XmlSetTagContT

XmlAddChild


XmlSetTagAttrib

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Building an XML document -> XmlSetTagAttrib

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlSetTagAttrib – Function

Description

This function copies the value of a variable to an XML attribute. The specified variable can have any data type.

Input | Description
hTag : DINT | Handle of the XML tag.
szAttrib : STRING | Name of the attribute.
data : ANY | Variable to be copied to the value of the tag attribute.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


XmlSetTagCont

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Building an XML document -> XmlSetTagCont

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlSetTagCont – Function

Description

This function copies the value of a variable to the contents of an XML tag. The specified variable can have any data type.

Input | Description
hTag : DINT | Handle of the XML tag.
data : ANY | Variable to be copied to the contents of the tag.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


XmlSetTagContT

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Building an XML document -> XmlSetTagContT

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlSetTagContT – Function

Description

This function copies a text buffer to the contents of an XML tag. The text buffer is allocated by the application, and must be released by the application after use.

Input | Description
hTag : DINT | Handle of the XML tag.
hTxb : DINT | Handle of the text buffer to be copied.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


XmlAddChild

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Building an XML document -> XmlAddChild

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlAddChild – Function

Description

This function adds a new child tag to an XML tag, with the specified tag name.

Input | Description
hTag : DINT | Handle of the XML tag.
szTag : STRING | Name of the new child tag.

Output | Description
hChildTag : DINT | Handle of the new child tag.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


Exchanging variables using their name

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Exchanging variables using their name

Previous chapter Next chapter Show all Show all Hide all Hide all

Noch in diesem Kapitel

XmlGetSybValue

XmlSetSybValue


XmlGetSybValue

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Exchanging variables using their name -> XmlGetSybValue

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlGetSybValue – Function

Description

This function copies the value of the variable having the symbol specified in szSyb to the output string. It assumes that the symbol of the variable has been embedded in the runtime application.

This function enables the automation of data exchange between XML data and the runtime. For example, you can find the symbol of a variable in a tag attribute and update the value in another one.

Input | Description
szSyb : STRING | Symbol of the variable.
keepCase : BOOL | Default is FALSE as normally all embedded symbols are turned uppercase by the compiler. Must be TRUE if the Keep case of embedded symbols compiling option is set.

Output | Description
value : STRING | Current value of the variable formatted as STRING.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


XmlSetSybValue

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> XML writing and parsing -> Exchanging variables using their name -> XmlSetSybValue

Previous chapter Next chapter Show all Show all Hide all Hide all

XmlSetSybValue – Function

Description

This function copies the value of the variable having the symbol specified in szSyb to the output string. It assumes that the symbol of the variable has been embedded in the runtime application.

This function enables the automation of data exchange between XML data and the runtime. For example, you can find the symbol of a variable in a tag attribute and the value in another one.

Input | Description
szSyb : STRING | Symbol of the variable.
value : STRING | Value to be assigned to the variable, formatted as STRING.
keepCase : BOOL | Default is FALSE as normally all embedded symbols are turned uppercase by the compiler. Must be TRUE if the Keep case of embedded symbols compiling option is set.

Output | Description
bOK : BOOL | TRUE if successful.

seealso See also

Memory management / Miscellaneous

XmlManager: Main gatherer of XML data in memory.

XmlLastError: Get detailed error report about last call.

Reading/writing documents

XmlNewDoc: Create an empty XML document.

XmlFreeDoc: Release an XML document from memory.

XmlParseDocTxb: Parse an XML document from text buffer.

XmlParseDocFile: Parse an XML document form file.

XmlWriteDocTxb: Format XML data to text buffer.

XmlWriteDocFile: Format XML data to file.

Exploring an XML document

XmlGetTagName: Get name of an XML tag.

XmlCheckTagName: Test the name of an XML tag.

XmlGetTagCont: Get tag contents as STRING.

XmlGetTagContT: Get tag contents as text buffer.

XmlGetTagAttrib: Get tag attribute.

XmlFirstChild: Start enumerating child tags.

XmlNextChild: Enumerate child tags

Building an XML document

XmlSetTagAttrib: Set tag attribute.

XmlSetTagCont: Set tag contents with STRING.

XmlSetTagContT: Set tag contents with text buffer.

XmlAddChild: Add a child tag.

Exchanging variables using their name

XmlGetSybValue: Get variable value using its symbol.

XmlSetSybValue: Set variable value using its symbol.


The Win-GRAF PAC Registry Management Funktionen

Programmiersprachen - Referenzen -> Fortgeschrittene Operationen (Advanced) -> The Win-GRAF PAC Registry Management Funktionen

Previous chapter Next chapter Show all Show all Hide all Hide all

Mit der The Win-GRAF PAC Registry kann eine hierarchische Registry von Parametern erstellt und fern-überwacht werden. Die Parameter können ohne die Workbench verändert werden und können auch vom IEC Programm gelesen und beschrieben werden.

Folgende Funktionen stehen zur Verfügung:

RegParGet Aktuellen Wert eines Parameters abfragen.
RegParPut Den Wert eines Parameter ändern.

Parameter Pfadnamen

Jeder Parameter wird durch einen eindeutigen Pfadnamen in der Registry lokalisiert. Das Zeichen / wird zur Trennung der Ordner im Pfandnamen verwendet. Für eine Registry dieser Ausprägung:

(Root)
- Ordner1
- Ordner2
- MyParam

Sieht der Pfadname des Parameters wie folgt aus:

/Ordner1/Ordner2/MyParam

attention Attention
  • Die Win-GRAF PAC Registry kann auf divers Zielsystemen nicht zur Verfügung stehen. Weitere Details stehen in den OEM-Hinweisen der Zielplattform.
  • Alle Parameter-Pfadnamen sind case sensitive.

RegParGet: Aktuellen Wert eines Parameters abfragen

Q := RegParGet (PATH, DEF);

PATH: STRING gibt den vollen Pfadnamen eines Parameters in der Registry an.
DEF: ANY Default-Wert welche zurückgegeben wird, wenn der Parameter nicht existiert.
Q: ANY aktueller Wert des Parameters.

attention Attention

Der Eingang DEF ist als Datentyp ANY definiert. Wird dieser Eingang mit einer Konstanten beaufschlagt, muss diese die Typdefinition entsprechend des erwarteten Ausgabewerts vorangestellt haben! Hier ein Beispiel für einen Integer (INT) Parameter:

intVariable := RegParGet ('\MyParam', INT#0);

Alle Pfadnamen sind case sensitive.

RegParPut: Den Wert eines Parameters ändern

OK := RegParPut (PATH, IN);

PATH: STRING gibt den vollen Pfadnamen eines Parameters in der Registry an
IN: ANY neuer Wert für den Parameter.
OK: BOOL TRUE wenn erfolgreich.

Die Funktion gibt FALSE in den folgenden Fällen zurück:

  • Der angegebene Pfadname wurde in der Registry nicht gefunden.
  • Die Registry wird gerade gespeichert und kann daher nicht verändert werden.


Embedded HMI

Embedded HMI

Die Workbench ermöglich Ihnen für Ihr Projekt eine Embedded HMI zu erstellen und in Ihr Projekt zu integrieren. Die Embedded HMI kann auf Ihrer Runtime Plattform ausgeführt werden, sofern eine graphische Anzeige vorhanden ist. Die Embedded HMI verwaltet die animierte Anzeige der Bildmasken, die in der Workbench mit geeigneten Tools erzeugt wurden. Das Zusammenspiel zwischen der IEC-Anwendung und der Embedded HMI wird durch Variablen, die vom IEC-Programm gesteuert werden und die mit einigen Eigenschaften grafischer Objekte verknüpft sind, und einer Reihe von Funktionen und Funktionsblöcken verrichtet.

Um die Embedded HMI in Ihrer IEC-Anwendung zu aktivieren, benötigen Sie:

1- aus dem Arbeitsbereich: wenn Sie das Projekt selektiert haben, starten Sie den Befehl "Insert Shortbut / Embedded HMI" aus dem Kontextmenü

2- deklarieren Sie eine Instanz des hmiManager Funktionsblock

Während Schritt 1 müssen Sie die Art des Geräts (Hardware-Anzeige) wählen, das auf Ihrem System verfügbar ist. Schlagen Sie in der OEM-Betriebsanleitung nach, um mehr Informationen über verfügbare Hardware zu erhalten.

Noch in diesem Kapitel

Embedded HMI Strings

Embedded HMI Bitmaps

Embedded HMI Schriftart

Embedded HMI Bilder

Embedded HMI Funktionen und Funktionsblöcke

Managing menus


Embedded HMI Strings

Embedded HMI -> Embedded HMI Strings

Der String Editor der Embedded HMI ermöglicht es Ihnen eine Sammlung von Strings als statische Eigenschaften unter grafischen Objekten einzugeben, die in Bildmasken verwendet werden. Jeder String wird durch einen Namen eindeutig identifiziert. Bei Objekteigenschaften Strings zu benutzen anstatt Text direkt einzugeben ist eine schöne Art einheitliche Texte in Ihrer HMI-Anwendung zu benutzen. Es vereinfacht auch die Übersetzung in andere Sprachen.


Embedded HMI Bitmaps

Embedded HMI -> Embedded HMI Bitmaps

Um Bitmaps in Bildmasken einzufügen, müssen Sie diese zuerst im Bitmaps Editor der Embedded HMI festlegen. Jedes Bitmap, das dort festgelegt wird, ist wie folgt definiert:

- Name (ID), der in den grafischen Objekteigenschaften und in den IEC-Programmen verwendet wird

- Verzeichnisname, zu dem Verzeichnis in dem eine gültige .BMP-Datei liegt (andere Bildformate werden nicht unterstützt).

Wenn Sie kein Verzeichnis für die .BMP-Datei angeben, wird das Verzeichnis \BITMAP in dem Verzeichnis, in dem die Workbench installiert ist, durchsucht.

Die Bitmap IDs können Sie in den IEC-Programmen direkt als Integer-Werte verwenden. Um zum Beispiel eine dynamisch veränderbares Bitmap mithilfe einer Variablen an ein Objekt zu übergeben. In der IEC-Anwendung müssen Sie Bitmaps IDs weder festlegen noch definieren. Der Name der Bitmaps ist dem Compiler automatisch bekannt.

Die Bitmaps werden automatisch in die Farbauflösung konvertiert, die für die selektierte grafische Anzeige verfügbar ist.


Embedded HMI Schriftart

Embedded HMI -> Embedded HMI Schriftart

Um Schriften in Bildmasken einzufügen, müssen Sie diese zuerst im Font Editor der Embedded HMI festlegen. Jede Schrift, die dort festgelegt wird, ist wie folgt definiert:

- entweder ist eine System-Schrift auf Ihrer grafischen Anzeige vorhanden

- oder eine spezifische, benutzerdefinierte Schriftart (siehe unten)

Benutzerdefinierte Schriftarten werden in einer Datei mit der der Endung ".K5FNT" gespeichert und mit einem Tool erzeugt, das zusammen mit der Workbench installiert wurde.

Um eine spezifische Schriftart zu erstellen oder zu ändern, starten Sie den Befehl "Font Editor" aus dem Popup-Menü.

Wenn Sie kein Verzeichnis für die font-Datei angeben, wird das Verzeichnis \FONT in dem Verzeichnis, in dem die Workbench installiert ist, durchsucht.

Die Font IDs können Sie in den IEC-Programmen direkt als Integer-Werte verwenden. Um zum Beispiel eine dynamisch veränderbare Schrift mithilfe einer Variablen an ein Objekt zu übergeben. In der IEC-Anwendung müssen Sie Font IDs weder festlegen noch definieren. Der Name der Bitmaps ist dem Compiler automatisch bekannt.


Embedded HMI Bilder

Embedded HMI -> Embedded HMI Bilder

Die Embedded HMI besteht aus einer Reihe von Bildmasken. Um ein neues Bild anzulegen, starten Sie den Befehl "Insert Item / New Screen" aus dem Kontextmenü im Arbeitsbereich. Jedes Bild wird durch einen Namen (ID) eindeutig identifiziert. Dieser Name wird in der Baumansicht des Arbeitsbereichs dargestellt. Mithilfe des Befehls "Rename" können Sie den Namen ändern.

Die Funktion hmiSetScreen ermöglich es Ihnen, die aktive Bildmaske der IEC-Programme dynamische zu ändern.

Die Bild IDs können in den IEC-Programmen direkt als Integer-Variablen verwendet werden. In der IEC-Anwendung müssen Sie IDs weder noch einmal festlegen noch definieren. Der Name der Bitmaps ist dem Compiler automatisch bekannt.

Führen Sie einen Doppelklick auf ein Bild im Arbeitsbereich aus, um den Inhalt des Bilds zu bearbeiten. Eine Bildmaske ist konzipiert als:

- einige Eigenschaften sichtbar, wenn kein Objekt selektiert ist,

- eine Reihe grafischer Objekte, die statische oder dynamische Eigenschaften haben.

Noch in diesem Kapitel

Embedded HMI grafische Objetkte


Embedded HMI grafische Objetkte

Embedded HMI -> Embedded HMI Bilder -> Embedded HMI grafische Objetkte

Previous chapter Next chapter Show all Show all Hide all Hide all

Ein grafisches Objekt ist eine vordefinierte Grafik, die in eine Bildmaske eingefügt wird. Jedes Objekt hat eine Reihe an Eigenschaften, die entweder statisch definiert werden oder dynamisch durch das IEC-Programm mithilfe des Werts einer Variablen. The folgenden Objekttypen sind verfügbar:

- Rechteck (Form oder Textfeld)

- Bargraf

- Bilder (Bitmap)

Verfügbare Objekte werden rechts unten im Bild Editor angezeigt. Ziehen Sie sie einfach aufs Bild und füllen Sie dann ihre Eigenschaften aus.

Rechteck (oder Textfeld)

Dieses Objekt wird zur Anzeige eines rechteckigen Bereichs verwendet, der ein einzelne Textzeile enthalten kann. Seine Eigenschaften sind:

Name | Beschreibung
Ausrichten | Horizontale Ausrichtung des Texts (linksbündig, zentriert oder rechtsbündig). Wenn dynamisch über eine Variable vergeben, benutzen Sie diese Werte: 0 = zentriert -1 = linksbündig 1 = rechtsbündig
Rahmenfarbe | Farbindex des Rahmens (kann dynamisch mithilfe einer Variablen übergeben werden)
Rahmenbreite | Die Breite des Rahmens in Pixel (0 = kein Rahmen)
Hintergrundfarbe | Farbindex des Hintergrunds (kann dynamisch mithilfe einer Variablen übergeben werden)
Textfarbe | Farbindex des Texts (kann dynamisch mithilfe einer Variablen verändert werden)
Text | Beliebiger Informationstext: kann entweder ein spezifischer Tex, eine ID eines festgelegten HMI-Strings oder der Name einer String-Variable sein
Schrift | Schriftart: kann entweder die ID einer festgelegten Schrift oder der Name einer Integer-Variablen sein, die die ID enthält

Bargraf

Benutzen Sie dieses Objekt, um einen Bargraf in einem Rechteck anzuzeigen Seine Eigenschaften sind:

Name | Beschreibung
Richtung | Richtung, in die sich der Bargraf ausdehnt. Wenn dynamisch über eine Variable vergeben, benutzen Sie diese Werte: 0 = von links nach rechts 1 = von unten nach oben 2 = von rechts nach links 3 = von oben nach unten
Rahmenfarbe | Farbindex des Rahmens (kann dynamisch mithilfe einer Variablen übergeben werden)
Rahmenbreite | Die Breite des Rahmens in Pixel (0 = kein Rahmen)
Hintergrundfarbe | Farbindex des Hintergrunds (kann dynamisch mithilfe einer Variablen übergeben werden)
Füllfarbe | Farbe, die zur Füllung verwendet wird (kann dynamisch mithilfe einer Variablen verändert werden)
Füllwert | Prozentsatz des gefüllten Rechtecks (0 bis 100); wird normalerweise mithilfe einer Integer-Variablen übergeben.

Bild (Bitmap)

Benutzen Sie dieses Objekt, um ein Bitmap-Bild anzuzeigen Seine Eigenschaften sind:

Name | Beschreibung
Hintergrundfarbe | Farbindex des Rahmens, der benutzt wird, wenn das Objekt größer als das Bitmap ist.
Bitmap | ID des Bitmaps, die im Bitmap Editor festgelegt wurde. Kann auch der Name einer Integer-Variablen sein, die die ID enthält.

Trend

This object is used for the display of a trend diagram. Its properties are:

Property | Meaning
Style | Kind of drawing. Possible values are: 1: histogram (filled area under the curve) 2: points (curve line)
Border color | Color index of the border (can be dynamically passed through a variable)
Border size | Width of the border in pixels (0 = no border)
Back. color | Background color index (can be dynamically passed through a variable)
Fill color | Color of the filled part (can be dynamically changed through a variable)
Item width | Number of pixels on the X axis for each sample of the trend
First array item | 0-based index of the item of the array to be displayed as the first value
Last array item | 0-based index of the item of the array to be displayed as the last value
Array | Array of values to be displayed (in range 0-100)

Menu

This object is used for the display of menu like scrollable choice list. Its properties are:

Property | Meaning
Align | Horizontal alignment for the text (left, center or right). If dynamically passed through a variable, use these values: 0 = center -1 = left 1 = right
Border color | Color index of the border (can be dynamically passed through a variable)
Border size | Width of the border in pixels (0 = no border)
Font | Character font: can be an ID of a declared font or the name of an integer variable that will contain this ID.
Back. color | Background color index (can be dynamically passed through a variable)
Text color | Color of the text (can be dynamically changed through a variable)
Select font | Character font for the selected line
Select back. color | Background color index of the selected line
Select text color | Color of the text on the selected line
Text | List of choices (lines) to be displayed, separated by '|' characters. E.g.: Choice1|Choice2|Choice3
Line height | Height of a line, in pixels
Selection | Index of the selected line (first line is 1) Any selection is removed if this value is 0


Embedded HMI Funktionen und Funktionsblöcke

Embedded HMI -> Embedded HMI Funktionen und Funktionsblöcke

Eine Reihe Funktionen und Funktionsblöcke steht für die dynamische Kontrolle der Embedded HMI Anwendung aus den IEC-Programmen zur Verfügung.

Noch in diesem Kapitel

HMI Manager

hmiSetScreen


HMI Manager

Embedded HMI -> Embedded HMI Funktionen und Funktionsblöcke -> HMI Manager

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktionsblock - Ermöglicht die Benutzung der Embedded HMI.

Outputs

OK : BOOL TRUE wenn die Embedded HMI aktiviert ist.

Anmerkungen

Sie müssen nur eine einzige Instanz diese Funktionsblock festlegen, um die Embedded HMI zu aktivieren.

Es ist nicht verpflichtend diese Instanz aus Ihrem Programm aus aufzurufen. Für die Aktivierung reicht es die Instanz festzulegen.


hmiSetScreen

Embedded HMI -> Embedded HMI Funktionen und Funktionsblöcke -> hmiSetScreen

Previous chapter Next chapter Show all Show all Hide all Hide all

Funktion - Stellen Sie das aktive Bild für die Embedded HMI ein.

Inputs

ID : DINT Kennung des Bilds.
DISPLAY : DINT Dieser Parameter ist für Erweiterungen reserviert und muss 0 sein.

Outputs

OK : BOOL TRUE wenn erfolgreich.

Anmerkungen

Rufen Sie diese Funktion auf, um das aktive Bild für die Embedded HMI einzustellen.

Die Bild ID ist der Name des Bilds, so wie er im Projektbaum angezeigt wird.

ST Sprache

hmiSetScreen (IDP1, 0);


Managing menus

Embedded HMI -> Managing menus

The system includes a set of functions function blocks for easily managing hierarchical menus within an embedded HMI application. These functions are intended to be used together with the "Menu" graphic object for embedded HMI screens.

attention Attention
  • Menu management functions use safe dynamic memory allocation that needs to be configured in the project settings. From the project settings, press the "Advanced" push button and go to "Memory" tab. Here you can setup the memory for safe dynamic allocation.

Creating a hierarchy of menus

The following functions are used to create menus. They should be called once when the application starts so that the hierarchy of menus remain available in memory for use with the "Menu" graphic object. The following functions are available:

hMenu := HmiNewMenu (hParentMenu, strTitle); (* creates a main or sub menu *)

hItem := HmiNewMenuItem (hParentMenu, strChoice, idCommand); (* adds a choice to a menu *)

ok := HmiRenameMenu (hItem, strChoice); (* changes the text of a choice or the title of a menu *)

ok := HmiDelMenu (hItem); (* deletes a nemu item of a menu *)

Arguments:

hMenu : BOOL; (* handle of a main or sub menu *)

hParentMenu : DINT; (* handle of the parent menu - specify 0 to create a root menu *)

hItem : DINT; (* handle of a menu or an item to be used in other function calls *)

strTitle : STRING; (* optional title for a menu *)

strChoice : STRING; (* choice text for a menu item *)

idCommand : DINT; (* numerical identifier of a menu item to be used in the application *)

ok : BOOL; (* TRUE if successful *)

Running a hierarchy of menus

Then you can use the HmiMenu function block to activate the hierarchy of menus. First you must declare an instance of it, for example:

MENU : HmiMenu;

You should call the FB instance with the following input arguments:

UP : BOOL; (* the selection is moved up on a rising edge of this signal *)

DN : BOOL; (* the selection is moved down on a rising edge of this signal *)

OK : BOOL; (* the selected sub-menu is selected on a rising edge of this signal *)

ESC : BOOL; (* the parent menu is selected on a rising edge of this signal *)

Menu : DINT (* handle of the root menu *)

Below are the outputs of the HmiMenu function block:

SelID : DINT; (* ID of the selected menu item on a rising edge of the OK input *)

SelPos : DINT; (* position of the selected choice to be passed to the "Menu" graphic object *)

Title : STRING; (* title of the current menu *)

Texts : STRING; (* list of choices to be passed to the "Menu" graphic object *)

Example

Below is an example that creates a main menu with 2 sub-menus:

if not bInitDone then

// create the main menu (root)

hRootMenu := hmiNewMenu (0, 'Main menu');

// create the first sub menu with 2 items

hSubMenu := hmiNewMenu (hRootMenu, 'Menu 1');

hmiNewMenuItem (hSubMenu, 'Choice 1', 101);

hmiNewMenuItem (hSubMenu, 'Choice 2', 102);

// create the second sub menu with 2 items

hSubMenu := hmiNewMenu (hRootMenu, 'Menu 2');

hmiNewMenuItem (hSubMenu, 'Choice 3', 201);

hmiNewMenuItem (hSubMenu, 'Choice 4', 202);

bInitDone := true;

end_if;

Below is a tyipcal call to the HmiMenu function block ("MENU" is a declared instance of the FB):

MENU (bUP, bDOWN, bOK, bBACK, hRootMenu);

case MENU.SelID of

101 : // manage command 1

102 : // manage command 2

201 : // manage command 3

202 : // manage command 4

end_case;

Below is how to configure a text graphic object to diaplay the current menu title using the outputs of the FB instance:

Below is how to configure a "Menu" graphic object to diaplay the current menu title using the outputs of the FB instance:


The Win-GRAF PAC Registry für Runtime Parameter

The Win-GRAF PAC Registry für Runtime Parameter

Mit der The Win-GRAF PAC Registry kann eine hierarchische Registry von Parametern erstellt und fern-überwacht werden. Die Parameter können ohne die Workbench verändert werden und können auch vom IEC Program gelesen und beschrieben werden.

Registry für Parameter erstellen

Mit dem Designtool zur Erstellung der Registry können Runtime Parameter definiert werden. Außerdem wird damit festgelegt wie die Parameter während der Überwachung editiert werden können. Die Definition der Parameter wird in einer XML Datei abgelegt. Die XML Datei stellt die Arbeitsgrundlage für das Designtool dar. Des Weiteren dient das Designtool zur Übertragung einer neuen Registry (Binärformat) zur Runtime. Optional kann die XML Datei auch in der Runtime abgelegt werden.

Das Designtool wird in der Workbench über Tools / Runtime Parameter / Design gestartet.

Die Parameter werden frei in Ordner organisiert. Der linke Teil des Editors zeigt die komplette Hierarchie der Ordner und Parameter an. Der rechte Bereich wird für die Eingabe der detaillierten Beschreibung der Ordner oder zur Anzeige der aktuell ausgewählten Parameter verwendet. Mit den Befehlen des Edit-Menüs können neue Ordner und Parameter hinzugefügt werden.

Für jeden Ordner müssen folgende Information definiert werden:

Information | Beschreibung
Name | Name des Ordners – darf das Zeichen / nicht beinhalten.
Zugriff | Zugriffsmöglichkeit (lesen/schreiben oder nur lesen).
Schutz | Schutz für Schreibzugriff: No = kein Schutz. Yes = Passwort-Schutz. Erben = gleichen Schutz wie übergeordneter Ordner verwenden.
Passwort | Passwort zum Schreiben.
Beschreibung | Freier Beschreibungstext.

Für jeden Parameter müssen folgende Informationen definiert werden:

Informationen | Beschreibung
Name | Name des Parameters – darf das Zeichen / nicht beinhalten.
Typ | Datentyp.
Max. Länge | Maximale Länge für STRINGS. Maximale Länge darf 200 Zeichen nicht überschreiten.
Zugriff | Zugriffsmöglichkeit (lesen/schreiben oder nur lesen).
Schutz | Schutz für Schreibzugriff: No = kein Schutz. Yes = Passwort-Schutz. Erben = gleichen Schutz wie übergeordneter Ordner verwenden.
Passwort | Passwort zum Schreiben.
Default | Default-Wert wenn die Registry das erste Mal geladen wird.
Beschreibung | Freier Beschreibungstext.
Editiermodus | Editiermodus bei der Überwachung.
Extra Daten | Auswahlmöglichkeiten für eine Liste oder Combobox.
Minimum | Minimalwert einer Zahl.
Maximum | Maximalwert einer Zahl.

Die Befehle des Menüs Projekt werden zur Aktualisierung der Runtime verwendet:

  • Registry überprüfen

Dieser Befehl überprüft den gesamten Inhalt der Registry und meldet mögliche Übereinstimmungsfehler.

  • Registry senden

Dieser Befehl sendet die Registry im Binärformat zur entfernten Runtime. Normalerweise müssen die entsprechenden Kommunikationsparameter der Runtime ausgewählt werden. Es ist aber auch möglich die binäre Registry in eine lokale Datei zu speichern wenn eine andere Übertragungsmöglichkeit verwendet wird. Im Fall der Übertragung zur entfernten Runtime kann die XML Datei optional mit der binären Registry übertragen werden.

Abhängig vom Runtime System ist es möglich, dass die neue Registry nicht sofort übernommen wird. Das passiert wenn die alte Registry vom Runtime System gerade angewendet wird. Manche Runtime System benötigen möglicherweise einen Stop/Restart der IEC Applikation. Andere Systeme benötigen eventuell einen Reboot. Bitte beziehen Sie sich dazu auf die OEM Instruktionen Ihrer Runtime.

Überwachungsparameter

Das Tool Register Host wird zur Online-Überwachung der Runtimeparameter verwendet. Parameter können dargestellt und – je nach den Schutz-Einstellungen im Designtool – verändert werden. Das Host-Tool wird in der Workbench über den Befehl Tools / Runtime Parameter / Monitor gestartet. Die Online Verbindung zur Runtime und die Darstellung der Parameter werden mit dem Befehl Datei / Öffnen gestartet.

Der Baum auf der linken Seite stellt die Ordner der Registry dar. Der rechte Bereich zeigt die Parameter des ausgewählten Ordners. Mit einem Doppelklick auf einen Parameter kann dessen Wert verändert werden.

Mit dem Befehl Anzeige / Aktualisieren können die Werte der Parameter aktualisiert werden.

Mit dem Befehl Datei / Speichern kann der Inhalt der Registry als Sicherung abgespeichert werden.


Project Automation Library

Project Automation Library

The workbench enables you to automate the creation or change of your IEC61131-3 projects. Many powerful applications are possible by writing automation scripts:

  • Create new wizards to build the skeleton of a new project.
  • Create wizards that automate or import the I/O configuration.
  • Automatically generate documentation about project items.
  • Any import / export procedure.

For that, no need of extra tool, and no need for you to get knowledge of other programming or scripting languages such as VB or C++. Simply use the Workbench to develop, test and run your scripts. Scripts are written using IEC langauges (typically Structured Text).

Please follow these links for further information:

  • Guidelines
  • Automation Library Reference

Noch in diesem Kapitel

Guidelines

Reference


Guidelines

Project Automation Library -> Guidelines

The workbench enables you to automate the creation or change of your IEC61131-3 projects. Many powerful applications are possible by writing automation scripts using ST language. This page explains the principle of project automation tools. Refer to the following pages for further information about related features:

Creating a new script
Developing and testing the script
Registering the script in the workbench as a New project wizard
Registering the script in the workbench as a Tools menu command
Running the script from external applications
Reference of the automation library

Principle

A project automation script is a program written in IEC languages. Structured Text is typically used as the programming language for scripts as it is the most adapted to automation feature. The script is developed as a project, linked to a dedicated library called AUTOMATION:

When the Workbench is used for the development of a project automation script, the Simulation and On Line commands are replaced by a Execute Script command used for executing the script.

info Info

Unlike other IEC projects, the program of a script is executed only once, and is not repeated from cycle to cycle.

Scripts can be used either for generating the skeleton of a new project, or for changing / completing an existing project. Thus the AUTOMATION library does not only contain functions for building the project, but also for enumerating and changing the existing items of a project.

Noch in diesem Kapitel

Creating a new Project Automation script

Developing and testing the script

Registering the script in the workbench as a "New project" wizard

Registering the script in the workbench as a tool

Running a script from other applications


Creating a new Project Automation script

Project Automation Library -> Guidelines -> Creating a new Project Automation script

Previous chapter Next chapter Show all Show all Hide all Hide all

To create a new Project Automation script, Run the File / New Project command from the menu, and then select the Automation Script choice in the project creation dialog box:

Then follow the instructions. You must specify how your script will be used:

  • Generating a new project from scratch.
  • Modifying an existing project.
  • Modifying a project or creating it if not yet existing.

While creating the script, you already can define some parameters to be entered by the user when the script is run. The system will automatically create:

  • Some global variables in your script project that will be the parameters.
  • A list of variables grouping parameters.
  • The few lines of ST code for prompting the user to enter parameters.

The script is generated with the following workspace:

The Main program is the automation script. You can freely create sub-programs and UDFBs to be called by this program.

The Templates folder will contain all your template programs to be instanciated (copied) to the target project when the script is run.

It is recommended to keep only one top level program for the script (the Main program). This program must have the following Task specification entered in its properties:

Thus, if you need to create other top level programs to be executed in your script, you need to set this property for all of them.


Developing and testing the script

Project Automation Library -> Guidelines -> Developing and testing the script

Previous chapter Next chapter Show all Show all Hide all Hide all

An Automation Script is developed as any project with the Workbench, but with some particular constraints. The biggest difference is that a script is a program (generally written in ST language) that is executed only once, and not repeated from cycle to cycle. The top program must have the special task property set to SCRIPT. However, you don't need to care about that as the New Script wizard has generated the skeleton of the script project for you:

The Main program is the automation script. You can freely create sub-programs and UDFBs to be called by this program, but it is recommended to keep only one top level program for the script (the Main program).

The script project refers to a special library called AUTOMATION that contains all necessary functions for developing scripts:

When developing a script project, the commands Simulate and On Line of the Project menu are replaced by the Execute Script command:

This command enables to run your script for test purpose. It opens the following box:

Enter the name of the target project (to be created or changed) in the upper box and press Go!. Any trace message or error report is displayed in the list below.


Registering the script in the workbench as a "New project" wizard

Project Automation Library -> Guidelines -> Registering the script in the workbench as a "New project" wizard

Previous chapter Next chapter Show all Show all Hide all Hide all

If your script is intended to create the skeleton for a new project, you can register it so that the workbench proposes it in its standard New Project procedure.

For that you simply need to copy the script folder under the AUTOMATION\SCRIPTS\ folder where the Workbench is installed:

Then your script will be available for creating a new project from the workbench. For that the user will have to select the Automation script choice in the New Project dialog box:

Your script must be compiled in order to be available as a wizard.

It is highly recommended that you copy the whole contents of your script project so that all possibly required template programs are available. By the way, if your script does not use templates, only the file APPLI.XTI is required in the script folder.


Registering the script in the workbench as a tool

Project Automation Library -> Guidelines -> Registering the script in the workbench as a tool

Previous chapter Next chapter Show all Show all Hide all Hide all

If your script is intended to modify an open project, you can register it so that the workbench proposes it from the Tools / Automation Script menu command.

For that you simply need to copy the script folder under the AUTOMATION\MACROS\ folder where the Workbench is installed:

Then your script will be available for modifying a project open with the workbench.

It is highly recommended that you copy the whole contents of your script project so that all possibly required template programs are available. By the way, if your script does not use templates, only the file APPLI.XTI is required in the script folder.


Running a script from other applications

Project Automation Library -> Guidelines -> Running a script from other applications

Previous chapter Next chapter Show all Show all Hide all Hide all

Scripts developed with the workbench can be run from external applications. Below are possible calling mode:

From the command line

Scripts can be executed directly from the Windows console or from .BAT files, using the K5Script.exe utility program installed with the Workbench.

Syntax:

K5Script.exe <script> <target_project>

Arguments:

<script> : Name of the folder containing the script. If no pathname is specified, the script folder is searched under the AUTOMATION\SCRIPTS\ folder where the Workbench is installed.

<target_project> : full qualified pathname of the target project to be created or modified by the script.

From application using COM interface

Not available yet.

From "C / C++" applications

Your "C/C++" applications can link to the K5NETAS.DLL located with the installed Workbench and use the following export function to run a script:

From "C" language:

LPCSTR __declspec(dllimport) K5NETAS_RunScript (LPCSTR szScript, LPCSTR szDest);

From "C++" language:

extern "C" LPCSTR __declspec(dllimport) K5NETAS_RunScript (LPCSTR szScript, LPCSTR szDest);

Arguments:

szScript : Name of the folder containing the script. If no pathname is specified, the script folder is searched under the "AUTOMATION\SCRIPTS\" folder where the Workbench is installed.

szDest : full qualified pathname of the target project to be created or modified by the script

Return value:

The function returns a pointer to a string containing the report.


Reference

Project Automation Library -> Reference

Below are the functions available in the AUTOMATION library for developing automation scripts:

Main services

  • Target project management

Declaring and managing IEC objects

  • Declaring programs
  • Declaring data types (structures)
  • Declaring variables
  • Declaring I/O boards

Generating project documents (files)

  • Common file handling services
  • Text files
  • IEC 61131-3 source files
  • Network and fiedlbus configuration
  • Watch window dowuments
  • Resources

Gerenating documents from templates

  • Defining variable keywords for a template
  • Templates of programs

Tools

  • Working with script parameters
  • Miscellaneous

Noch in diesem Kapitel

Project level services

Declaring objects

Generating documents

Templates

Script parameters

miscellaneous


Project level services

Project Automation Library -> Reference -> Project level services

Previous chapter Next chapter Show all Show all Hide all Hide all

Below are the main services to manage the target project.

Opening the target project

paCreateProject - Create the target project.
paCreateProjectFromTemplate - Create the target project using a template.
paOpenProject - Open the target project for modification.

Setting project level information

paSetProjectComment - Set the description for title bar.
paSetOption - Set a project option.
paAddLibrary - Add a link to a library.

Noch in diesem Kapitel

paCreateProject

paCreateProjectFromTemplate

paOpenProject

paSetProjectComment

paSetOption

paAddLibrary


paCreateProject

Project Automation Library -> Reference -> Project level services -> paCreateProject

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateProject - Create the target project

OK := paCreateProject ()

Parameters | Description
OK : BOOL; | TRUE if successful.

Description

This function creates the target project as an empty project. The destination folder should not exist yet. This function is typically called in a script that creates the skeleton of a new project.

You should call this function at the beginning of your script before any other declaration or creation function. Your script should terminate if this function returns FALSE.

Example Example

// at the beginning of the script:
if not paCreateProject () then
return;
end_if;
// ...

seealso See also

paCreateProjectFromTemplate - Create the target project using a template.

paOpenProject - Open the target project for modification.

paSetProjectComment - Set the description for title bar.

paSetOption - Set a project option.

paAddLibrary - Add a link to a library.


paCreateProjectFromTemplate

Project Automation Library -> Reference -> Project level services -> paCreateProjectFromTemplate

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateProjectFromTemplate - Create the target project from a template

OK := paCreateProjectFromTemplate (TEMPLATE)

Parameters | Description
TEMPLATE : STRING; | Name of a template projects.
OK : BOOL; | TRUE if successful.

Description

This function creates the target project as a copy of a template project. The destination folder should not exist yet. This function is typically called in a script that creates the skeleton of a new project.

Template projects are located under the TEMPLATE\ folder of the installed Workbench. the TEMPLATE parameter specifies only the name of the template project, and does not include its path.

You should call this function at the beginning of your script before any other declaration or creation function. Your script should terminate if this function returns FALSE.

Example Example

// at the beginning of the script:
if not paCreateProjectFromTemplate ('MyTemplate') then
return;
end_if;
// ...

seealso See also

paCreateProject - Create the target project.

paOpenProject - Open the target project for modification.

paSetProjectComment - Set the description for title bar.

paSetOption - Set a project option.

paAddLibrary - Add a link to a library.


paOpenProject

Project Automation Library -> Reference -> Project level services -> paOpenProject

Previous chapter Next chapter Show all Show all Hide all Hide all

paOpenProject - Open the target project for modification

OK := paOpenProject (CREATE)

Parameters | Description
CREATE : BOOL; | If TRUE, creates the project if not existing yet.
OK : BOOL; | TRUE if successful.

Description

This function opens the target project as an empty project. If the CREATE parameter is FALSE, the project must exist. If CREATE is TRUE and the project does not exist yet, then it is created.

You should call this function at the beginning of your script before any other declaration or creation function. Your script should terminate if this function returns FALSE.

Example Example

// ensure that the target project already exists
if not paOpenProject (FALSE) then
return;
end_if;
// ...

seealso See also

paCreateProject - Create the target project.

paCreateProjectFromTemplate - Create the target project using a template.

paSetProjectComment - Set the description for title bar.

paSetOption - Set a project option.

paAddLibrary - Add a link to a library.


paSetProjectComment

Project Automation Library -> Reference -> Project level services -> paSetProjectComment

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetProjectComment - Ändert die Beschreibung des Ziel-Projektes

OK := paSetProjectComment (COMM)

Parameter | Beschreibung
COMM : STRING; | Projektbeschreibung
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion setzt den Kommentartext welcher zur Projektbeschreibung herangezogen wird. Dieser Text wird in der Titelleiste der Workbench angezeit, wenn das Projekt geöffnet ist.

Bitte beachten Sie, dass im Falle eines new project Wizards, der Kommentartext bereits vom User eingegeben wurde.

Example Example

// after opening or creating the target project
paSetProjectComment ('Project generated by script')

seealso See also

paCreateProject - Erstellt das Ziel-Projekt.

paCreateProjectFromTemplate - Erstellt das Ziel-Projekt unter Verwendung einer Vorlage.

paOpenProject - Öffnet das Ziel-Projekt zur Bearbeitung.

paSetOption - Bestimmt die Projekt-Optionen.

paAddLibrary - Fügt Link zu einer Bibliothek hinzu.


paSetOption

Project Automation Library -> Reference -> Project level services -> paSetOption

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetOption - Setzt die Projektoption

OK := paSetOption (OPTION, VALUE)

Parameter | Beschreibung
OPTION : STRING; | Name der Option.
VALUE : STRING; | Wert der Option.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion setzt eine Option in den Projekteinstellungen. Folgende Optionen sind verfügbar:

Name | Wert | Beschreibung
TARGET | T5RTM / T5RTI | Typ der Ziel-Runtime.
DEBUG | ON / OFF | Im Debug-Modus kompilieren.
CTSEG | ON / OFF | Komplexe Variaplen in separatem Segment.
FBDFLOW | ON / OFF | Färbt FBD Linien während des Debugging Vorganges.
EMBEDSYMBOLS | ON / OFF | Bettet alle Variablensymbole ein.
EMBEDSYBCASE | ON / OFF | Beachtet eingebettete Symbole.
WARNING | ON / OFF | Gibt Warnmeldungen aus.
SFCSAFE | ON / OFF | Überprüft SFC Chart-Sicherheit.
SPCLEAN | ON / OFF | Entfernt Code von nicht aufgerufenen Subprogrammen.
IECCHECK | ON / OFF | Überprüft Konformität des IEC Standards.
SAFEARRAY | ON / OFF | Überprüft Array-Begrenzungen in der Runtime.
LARGEJUMP | ON / OFF | Erlaubt weitreichende Jump Anweisungen.
LOCK | IO / ALL / NONE | Bereich der verriegelbaren Variablen.
PASSWORD | anzahl | Passwort der Verbindung.

seealso See also

paCreateProject - Erstellt das Ziel-Projekt.

paCreateProjectFromTemplate - Erstellt das Ziel-Projekt unter Verwendung einer Vorlage.

paOpenProject - Öffnet das Ziel-Projekt zur Bearbeitung.

paSetProjectComment - Setzt die Beschreibung der Titelleiste.

paAddLibrary - Fügt Link zu einer Bibliothek hinzu.


paAddLibrary

Project Automation Library -> Reference -> Project level services -> paAddLibrary

Previous chapter Next chapter Show all Show all Hide all Hide all

paAddLibrary - Add a link to a library

OK := paAddLibrary (PATH)

Parameters | Description
PATH : STRING; | Full qualified pathname of the library folder.
OK : BOOL; | TRUE if successful.

Description

This function adds a link to a library for the target project.

seealso See also

paCreateProject - Create the target project.

paCreateProjectFromTemplate - Create the target project using a template.

paOpenProject - Open the target project for modification.

paSetProjectComment - Set the description for title bar.

paSetOption - Set a project option.


Declaring objects

Project Automation Library -> Reference -> Declaring objects

Noch in diesem Kapitel

Declaring Programs

Declaring data structures

Declaring Variables

Declaring I/O Boards


Declaring Programs

Project Automation Library -> Reference -> Declaring objects -> Declaring Programs

Previous chapter Next chapter Show all Show all Hide all Hide all

Below are the main services to declaring programs.

Declaration

paCreateProgram - Create a main program.
paCreateSubProgram - Create a sub-program.
paCreateUDFB - Create User Defined Function Block.
paCreateSfcChildProgram - Create a child SFC program.
paCopyProgram - Duplicate a program.
paSetProgramComment - Set the desrciption text of a program.

Working with existing programs

paEnumProgram - Enumerate programs.
paGetProgramDesc - Get information about a program.
paDeleteProgram - Remove a program.

Noch in diesem Kapitel

paCreateProgram

paCreateSubProgram

paCreateUDFB

paCreateSfcChildProgram

paCopyProgram

paSetProgramComment

paEnumProgram

paGetProgramDesc

paDeleteProgram

paCreateProgramFolder

paSendProgramToFolder

paEnumProgramFolder

paDeleteProgramFolder


paCreateProgram

Project Automation Library -> Reference -> Declaring objects -> Declaring Programs -> paCreateProgram

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateProgram - Create a main program

OK := paCreateProgram (NAME, LANGUAGE)

Parameter | Description
NAME : STRING; | Name of the new program.
LANGUAGE : STRING; | Programming language (see notes).
OK : BOOL; | TRUE if successful.

Description

This function creates a main program in the target project. Main programs are arranged in the cycle in the same order you create them from your script.

The following values are predefined for the LANGUAGE parameter:

Value | Description
_LG_SFC | Sequential Function Chart.
_LG_FBD | Function Block Diagram.
_LG_LD | Ladder Diagram.
_LG_ST | Structured Text.
_LG_IL | Instruction List.

Example Example

// create a new program folder
paCreateProgramFolder ('Folder1') then
// create a new program in LD language
if paCreateProgram ('Prog1', _LG_LD) then
// and put it in the folder
paSendProgramToFolder ('Prog1', 'Folder1');
end_if;

seealso See also

paCreateSubProgram - Create a sub-program.
paCreateUDFB - Create User Defined Function Block.
paCreateSfcChildProgram - Create a child SFC program.
paCopyProgram - Duplicate a program.
paSetProgramComment - Set the desrciption text of a program.

paEnumProgram - Enumerate programs.
paGetProgramDesc - Get information about a program.
paDeleteProgram - Remove a program.

paCreateProgramFolder - Create a new folder.
paSendProgramToFolder - Put a program in a folder.
paEnumProgramFolder - Enumerate program folders.
paDeleteProgramFolder - Remove a folder.


paCreateSubProgram

Project Automation Library -> Reference -> Declaring objects -> Declaring Programs -> paCreateSubProgram

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateSubProgram - Create a sub-program

OK := paCreateSubProgram (NAME, LANGUAGE)

Parameter | Description
NAME : STRING; | Name of the new program.
LANGUAGE : STRING; | Programming language (see notes).
OK : BOOL; | TRUE if successful.

Description

This function creates a sub-program in the target project.

The following values are predefined for the LANGUAGE parameter:

Value | Description
_LG_FBD | Function Block Diagram.
_LG_LD | Ladder Diagram.
_LG_ST | Structured Text.
_LG_IL | Instruction List.

Example Example

// create a new program folder
paCreateProgramFolder ('SubPrograms') then
// create a new sub-program in LD language
if paCreateSubProgram ('SP1', _LG_LD) then
// and put it in the folder
paSendProgramToFolder ('SP1', 'SubPrograms');
end_if;

seealso See also

paCreateProgram - Create a main program.
paCreateUDFB - Create User Defined Function Block.
paCreateSfcChildProgram - Create a child SFC program.
paCopyProgram - Duplicate a program.
paSetProgramComment - Set the desrciption text of a program.

paEnumProgram - Enumerate programs.
paGetProgramDesc - Get information about a program.
paDeleteProgram - Remove a program.

paCreateProgramFolder - Create a new folder.
paSendProgramToFolder - Put a program in a folder.
paEnumProgramFolder - Enumerate program folders.
paDeleteProgramFolder - Remove a folder.


paCreateUDFB

Project Automation Library -> Reference -> Declaring objects -> Declaring Programs -> paCreateUDFB

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateUDFB - Create a User Defined Function Block

OK := paCreateUDFB (NAME, LANGUAGE)

Parameter | Description
NAME : STRING; | Name of the new function block.
LANGUAGE : STRING; | Programming language (see notes).
OK : BOOL; | TRUE if successful.

Description

This function creates a User Defined Function Block in the target project.

The following values are predefined for the LANGUAGE parameter:

Value | Description
_LG_FBD | Function Block Diagram.
_LG_LD | Ladder Diagram.
_LG_ST | Structured Text.
_LG_IL | Instruction List.

Example Example

// create a new program folder
paCreateProgramFolder ('UDFBs') then
// create a new sub-UDFB in LD language
if paCreateUDFB ('FB1', _LG_LD) then
// and put it in the folder
paSendProgramToFolder ('F1', 'UDFBs');
end_if;

seealso See also

paCreateProgram - Create a main program.
paCreateSubProgram - Create a sub-program.
paCreateSfcChildProgram - Create a child SFC program.
paCopyProgram - Duplicate a program.
paSetProgramComment - Set the desrciption text of a program.

paEnumProgram - Enumerate programs.
paGetProgramDesc - Get information about a program.
paDeleteProgram - Remove a program.

paCreateProgramFolder - Create a new folder.
paSendProgramToFolder - Put a program in a folder.
paEnumProgramFolder - Enumerate program folders.
paDeleteProgramFolder - Remove a folder.


paCreateSfcChildProgram

Project Automation Library -> Reference -> Declaring objects -> Declaring Programs -> paCreateSfcChildProgram

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateSfcChildProgram - Create a child SFC program

OK := paCreateUDFB (NAME, PARENT)

Parameter | Description
NAME : STRING; | Name of the new child program.
PARENT : STRING; | Name of the parent program.
OK : BOOL; | TRUE if successful.

Description

This function creates a new SFC program to be a child of the specified parent SFC program. The parent SFC program must exist before calling this function.

Example Example

// create the parent program
paCreateProgram ('MAIN', _LG_SFC);
// create the child program
paCreateSfcChildProgram ('Child1', 'MAIN');

seealso See also

paCreateProgram - Create a main program.
paCreateSubProgram - Create a sub-program.
paCreateUDFB - Create User Defined Function Block.
paCopyProgram - Duplicate a program.
paSetProgramComment - Set the desrciption text of a program.

paEnumProgram - Enumerate programs.
paGetProgramDesc - Get information about a program.
paDeleteProgram - Remove a program.

paCreateProgramFolder - Create a new folder.
paSendProgramToFolder - Put a program in a folder.
paEnumProgramFolder - Enumerate program folders.
paDeleteProgramFolder - Remove a folder.


paCopyProgram

Project Automation Library -> Reference -> Declaring objects -> Declaring Programs -> paCopyProgram

Previous chapter Next chapter Show all Show all Hide all Hide all

paCopyProgram - Duplicate a program

OK := paCopyProgram (SRC, DST)

Parameter | Description
SRC : STRING; | Name of the source program.
DST : STRING; | Destination program.
OK : BOOL; | TRUE if successful.

Description

This function duplicates the SRC program in the DST program. This function creates the DST program and is normally not used for overwriting an existing program.

seealso See also

paCreateProgram - Create a main program.
paCreateSubProgram - Create a sub-program.
paCreateUDFB - Create User Defined Function Block.
paCreateSfcChildProgram - Create a child SFC program.
paSetProgramComment - Set the desrciption text of a program.

paEnumProgram - Enumerate programs.
paGetProgramDesc - Get information about a program.
paDeleteProgram - Remove a program.

paCreateProgramFolder - Create a new folder.
paSendProgramToFolder - Put a program in a folder.
paEnumProgramFolder - Enumerate program folders.
paDeleteProgramFolder - Remove a folder.


paSetProgramComment

Project Automation Library -> Reference -> Declaring objects -> Declaring Programs -> paSetProgramComment

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetProgramComment - Setzt die Beschreibung eines Programmes.

OK := paSetProgramComment (NAME, COMM)

Parameter | Beschreibung
NAME : STRING; | Name des Programms.
COMM : STRING; | Beschreibungstext.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion setzt den Kommentartext für ein Programm. Sie kann für andere Programme, Sub-Programme oder User Defined Function Blocks (UDFBs) verwendet werden.

Example Example

// create the program
paCreateProgram ('PROG1', _LG_ST);
// and sets its description text
paSetProgramComment ('PROG1', 'This is PROG1 description');

seealso See also

paCreateProgram - Erstellt ein Hauptprogramm.
paCreateSubProgram - Erstellt ein Sub-Programm.
paCreateUDFB - Erstellt einen User Defined Function Block.
paCreateSfcChildProgram - Erstellt ein child SFC Programm.
paCopyProgram - Dupliziert ein Programm.

paEnumProgram - Zählt Programme.
paGetProgramDesc - Holt Informationen über ein Programm.
paDeleteProgram - Entfernt ein Programm.

paCreateProgramFolder - Erstellt einen neuen Ordner.
paSendProgramToFolder - Legt ein Programm in einem Ordner ab.
paEnumProgramFolder - Zählt Programmordner.
paDeleteProgramFolder - Löscht einen Ordner.


paEnumProgram

Project Automation Library -> Reference -> Declaring objects -> Declaring Programs -> paEnumProgram

Previous chapter Next chapter Show all Show all Hide all Hide all

paEnumProgram - Enumerate programs of the target project

function block: Inst_paEnumProgram (LOAD, CHECK, ITEM, FILTER)

Input | Description
LOAD : TRUE; | If TRUE, load the list of programs.
CHECK : BOOL; | If TRUE, open a checklist box to select some of the loaded programs.
ITEM : DINT; | Index of the item wanted on input (1 based).
FILTER : STRING; | Filtering mask for loading programs.

Output | Description
NB : DINT; | Number of programs.
Q : STRING; | Name of the item selected with ITEM.

Description

This function block is used for enumerating the programs, sucb-programs and UDFBs of the target project. You must first call it with LOAD input at TRUE in order to load the list of programs. You get the number of programs in the NB output. Then call it again with LOAD at FALSE and specifying the index of the wished program in the ITEM input to get the name of the selected item in the Q output. The numbering of items starts at 1.

When loading programs (LOAD inputs is TRUE), you can specify a filtering string that may include some '*' or '?' wildchars.

After loading, if can call again the block with the CHECK input at TRUE for opening a dialog box where the user can check wished programs. After the box is closed, only checked items remain in the loaded list.

Example Example

// "ENU" is a declared instance of paEnumProgram function block
// load all programs
ENU (TRUE, FALSE, 0, '*');
// open a dialog box for the user to check wished items
ENU (FALSE, TRUE, 0, '');
// enumerate checked items
for i := 1 to ENU.NB do
// select the item "i"
ENU (FALSE, FALSE, i, '');
// get the name of the item specified by "i"
sProgName := ENU.Q;
end_for;

seealso See also

paCreateProgram - Create a main program.
paCreateSubProgram - Create a sub-program.
paCreateUDFB - Create User Defined Function Block.
paCreateSfcChildProgram - Create a child SFC program.
paCopyProgram - Duplicate a program.
paSetProgramComment - Set the desrciption text of a program.

paGetProgramDesc - Get information about a program.
paDeleteProgram - Remove a program.

paCreateProgramFolder - Create a new folder.
paSendProgramToFolder - Put a program in a folder.
paEnumProgramFolder - Enumerate program folders.
paDeleteProgramFolder - Remove a folder.


paGetProgramDesc

Project Automation Library -> Reference -> Declaring objects -> Declaring Programs -> paGetProgramDesc

Previous chapter Next chapter Show all Show all Hide all Hide all

paGetProgramDesc - Get information about a program

function block: Inst_paGetProgramDesc (NAME)

Input | Description
NAME : STRING; | Name of the program.

Output | Description
OK : BOOL; | TRUE if successful.
KIND : STRING; | Kind of POU.
LANGUAGE : STRING; | Programming language.
PARENT : STRING; | Parent SFC program or empty string.
COMMENT : STRING; | Description text.

Description

This function block is for getting information about a program of the target project. It can be used for programs, sub-programs or UDFBs.

The following values are predefined for the LANGUAGE output:

Value | Description
_LG_SFC | Sequential Function Chart.
_LG_FBD | Function Block Diagram.
_LG_LD | Ladder Diagram.
_LG_ST | Structured Text.
_LG_IL | Instruction List.

The following values are predefined for the KIND output:

Value | Description
_POU_MAIN | Main program.
_POU_SP | Sub-program.
_POU_UDFB | User Defined Function Block.
_POU_CHILDOF | Child SFC program (the name of its parent program is in the PARENT output).

seealso See also

paCreateProgram - Create a main program.
paCreateSubProgram - Create a sub-program.
paCreateUDFB - Create User Defined Function Block.
paCreateSfcChildProgram - Create a child SFC program.
paCopyProgram - Duplicate a program.
paSetProgramComment - Set the desrciption text of a program.

paEnumProgram - Enumerate programs.
paDeleteProgram - Remove a program.

paCreateProgramFolder - Create a new folder.
paSendProgramToFolder - Put a program in a folder.
paEnumProgramFolder - Enumerate program folders.
paDeleteProgramFolder - Remove a folder.


paDeleteProgram

Project Automation Library -> Reference -> Declaring objects -> Declaring Programs -> paDeleteProgram

Previous chapter Next chapter Show all Show all Hide all Hide all

paDeleteProgram - Delete a program

OK := paDeleteProgram (NAME)

Parameter | Description
NAME : STRING; | Name of the program (see notes).
OK : BOOL; | TRUE if successful.

Description

This function deletes the specified program. It can be used for programs, sub-programs of UDFBS. The NAME parameter can contain '?' and '*' wildchars. For instance, paDeleteProgram ('*') deletes all the POUs of the target project. If the specified program is a SFC program having child programs, its children are deleted as well.

seealso See also

paCreateProgram - Create a main program.
paCreateSubProgram - Create a sub-program.
paCreateUDFB - Create User Defined Function Block.
paCreateSfcChildProgram - Create a child SFC program.
paCopyProgram - Duplicate a program.
paSetProgramComment - Set the desrciption text of a program.

paEnumProgram - Enumerate programs.
paGetProgramDesc - Get information about a program.

paCreateProgramFolder - Create a new folder.
paSendProgramToFolder - Put a program in a folder.
paEnumProgramFolder - Enumerate program folders.
paDeleteProgramFolder - Remove a folder.


paCreateProgramFolder

Project Automation Library -> Reference -> Declaring objects -> Declaring Programs -> paCreateProgramFolder

Previous chapter Next chapter Show all Show all Hide all Hide all

obsolete


paSendProgramToFolder

Project Automation Library -> Reference -> Declaring objects -> Declaring Programs -> paSendProgramToFolder

Previous chapter Next chapter Show all Show all Hide all Hide all

hinfällig


paEnumProgramFolder

Project Automation Library -> Reference -> Declaring objects -> Declaring Programs -> paEnumProgramFolder

Previous chapter Next chapter Show all Show all Hide all Hide all

obsolete


paDeleteProgramFolder

Project Automation Library -> Reference -> Declaring objects -> Declaring Programs -> paDeleteProgramFolder

Previous chapter Next chapter Show all Show all Hide all Hide all

obsolete


Declaring data structures

Project Automation Library -> Reference -> Declaring objects -> Declaring data structures

Previous chapter Next chapter Show all Show all Hide all Hide all

Below are the main services to declaring data structures.

Declaration

paCreateStruct - Create a data structure.
paSetStructComment - Set the desrciption text of a structure.

Working with existing data structures

paEnumStruct - Enumerate data structures.
paGetStructDesc - Get information about a data structure.
paDeleteStruct - Remove a data structure.

Noch in diesem Kapitel

paCreateStruct

paSetStructComment

paEnumStruct

paGetStructDesc

paDeleteStruct


paCreateStruct

Project Automation Library -> Reference -> Declaring objects -> Declaring data structures -> paCreateStruct

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateStruct - Create a data structure

OK := paCreateStruct (NAME)

Parameter | Description
NAME : STRING; | Name of the structure.
OK : BOOL; | TRUE if successful.

Description

This function creates a data structure in the target project.

seealso See also

paSetStructComment - Set the desrciption text of a structure.

paEnumStruct - Enumerate data structures.
paGetStructDesc - Get information about a data structure.
paDeleteStruct - Remove a data structure.


paSetStructComment

Project Automation Library -> Reference -> Declaring objects -> Declaring data structures -> paSetStructComment

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetStructComment - Setzt die Beschreibung einer Struktur.

OK := paSetStructComment (NAME, COMM)

Parameter | Beschreibung
NAME : STRING; | Strukturname.
COMM : STRING; | Beschreibungstext.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion setzt den Kommentartext einer Datenstruktur.

seealso See also

paCreateStruct - Erstellt Datenstruktur.
paEnumStruct - zählt Datenstrukturen.
paGetStructDesc - Holt Informationen über eine Datenstruktur.
paDeleteStruct - Entfernt eine Datenstruktur.


paEnumStruct

Project Automation Library -> Reference -> Declaring objects -> Declaring data structures -> paEnumStruct

Previous chapter Next chapter Show all Show all Hide all Hide all

paEnumStruct - Enumerate data structures of the target project

function block: Inst_paEnumStruct (LOAD, CHECK, ITEM, FILTER)

Input | Description
LOAD : TRUE; | If TRUE, load the list of structures.
CHECK : BOOL; | If TRUE, open a checklist box to select some of the loaded structures.
ITEM : DINT; | Index of the item wanted on input (1 based).
FILTER : STRING; | Filtering mask for loading structures.

Output | Description
NB : DINT; | Number of structures.
Q : STRING; | Name of the item selected with ITEM.

Description

This function block is used for enumerating the data structures of the target project. You must first call it with LOAD input at TRUE in order to load the list of structures. You get the number of structures in the NB output. Then call it again with LOAD at FALSE and specifying the index of the wished structure in the ITEM input to get the name of the selected item in the Q output. The numbering of items starts at 1.

When loading structures (LOAD inputs is TRUE), you can specify a filtering string that may include some '*' or '?' wildchars.

After loading, if can call again the block with the CHECK input at TRUE for opening a dialog box where the user can check wished structures. After the box is closed, only checked items remain in the loaded list.

Example Example

// "ENU" is a declared instance of paEnumStruct function block
// load all structures
ENU (TRUE, FALSE, 0, '*');
// open a dialog box for the user to check wished items
ENU (FALSE, TRUE, FALSE, 0, '');
// enumerate checked items
for i := 1 to ENU.NB do
// select the item "i"
ENU (FALSE, FALSE, i, '');
// get the name of the item specified by "i"
sProgName := ENU.Q;
end_for;

seealso See also

paCreateStruct - Create a data structure.
paSetStructComment - Set the desrciption text of a structure.

paGetStructDesc - Get information about a data structure.
paDeleteStruct - Remove a data structure.


paGetStructDesc

Project Automation Library -> Reference -> Declaring objects -> Declaring data structures -> paGetStructDesc

Previous chapter Next chapter Show all Show all Hide all Hide all

paGetStructDesc - Get information about a data structure

function block: Inst_paGetStructDesc (NAME)

Input | Description
NAME : STRING; | Name of the structure.

Output | Description
OK : BOOL; | TRUE if successful.
COMMENT : STRING; | Description text.

Description

This function block is for getting information about a structure of the target project.

seealso See also

paCreateStruct - Create a data structure.
paSetStructComment - Set the desrciption text of a structure.

paEnumStruct - Enumerate data structures.
paDeleteStruct - Remove a data structure.


paDeleteStruct

Project Automation Library -> Reference -> Declaring objects -> Declaring data structures -> paDeleteStruct

Previous chapter Next chapter Show all Show all Hide all Hide all

paDeleteStruct - Delete a data structure

OK := paDeleteStruct (NAME)

Parameter | Description
NAME : STRING; | Name of the structure (see notes).
OK : BOOL; | TRUE if successful.

Description

This function deletes the specified structure. The NAME parameter can contain '?' and '*' wildchars. For instance, paDeleteStruct ('*') deletes all the structures of the target project.

seealso See also

paCreateStruct - Create a data structure.
paSetStructComment - Set the desrciption text of a structure.

paEnumStruct - Enumerate data structures.
paGetStructDesc - Get information about a data structure.


Declaring Variables

Project Automation Library -> Reference -> Declaring objects -> Declaring Variables

Previous chapter Next chapter Show all Show all Hide all Hide all

Below are the main services to declaring variables.

Declaration

paCreateVar - Create a variable.
paCreateInputParam - Create an input parameter of a sub-program or UDFB.
paCreateOutputParam - Create an output parameter of a sub-program or UDFB.
paSetVarXDim(s) - Set dimension(s) of a variable.
paSetVarInitValue - Set initial value of a variable.
paSetVarComment - Set description text of a variable.
paEmbedVarSymbol - Embed the symbol of a variable.
paProfileVar - Set variable profile and properties.

Working with existing variables

paEnumVar - Enumerate variables.
paGetVarDesc - Get information about a variable.
paDeleteVar - Delete a variable.

Naming conventions

In any function where you need to specify a variable by its name, you must specify the group containing the variable. A variable can be Global or I/O, Retain, Local to a POU or can be an item of a data structure.

The convention for these functions is to prefix the variable name by its group name and the '.' separator. If no group is specified, then the variable is considered as Global.

Example Example

Declaration | Meaning
VarName | A global variable.
RETAIN.VarName | A RETAIN variable.
%IX1.0 | A global I/O channel.
ProgName.LocVarName | A variable local to a program.
UDFBName.ParamName | A parameter of a UDFB.
StructName.Item | An item of a data structure.

Noch in diesem Kapitel

paCreateVar

paCreateInputParam

paCreateOutputParam

paSetVarDim

paSetVarInitValue

paSetVarComment

paEmbedVarSymbol

paProfileVar

paEnumVar

paGetVarDesc

paDeleteVar


paCreateVar

Project Automation Library -> Reference -> Declaring objects -> Declaring Variables -> paCreateVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateVar - Create a variable

OK := paCreateVar (SNAME, STYPE)

Parameter | Description
SNAME : STRING; | Name of the new variable and speficication of ots group (see naming conventions).
STYPE : STRING; | Data type.
OK : BOOL; | TRUE if successful.

Description

This function creates a program with the specified name in the specified group. The STYPE indicates its data type. It can be a type of function block for declaring an instance. In case of a STRING type, the type must be followed by the string length. e.g. 'STRING(255)'

The same function can be used to create an item in a data structure.

Example Example

// create global variable and FB instance
paCreateVar ('Global1', 'BOOL');
paCreateVar ('Timer1', 'TON');
// create a retain variable
paCreateVar ('RETAIN.RetVar1', 'STRING(20)');
// create a variable local to a program
paCreateVar ('Prog1.Local1', 'DINT');
// create an item of a structure
paCreateVar ('Struct1.Item1', 'REAL');

seealso See also

paCreateInputParam - Create an input parameter of a sub-program or UDFB.
paCreateOutputParam - Create an output parameter of a sub-program or UDFB.
paSetVarXDim(s) - Set dimension(s) of a variable.
paSetVarInitValue - Set initial value of a variable.
paSetVarComment - Set description text of a variable.
paEmbedVarSymbol - Embed the symbol of a variable.
paProfileVar - Set variable profile and properties.

paEnumVar - Enumerate variables.
paGetVarDesc - Get information about a variable.
paDeleteVar - Delete a variable.


paCreateInputParam

Project Automation Library -> Reference -> Declaring objects -> Declaring Variables -> paCreateInputParam

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateInputParam - Create an input parameter of a POU

OK := paCreateInputParam (SNAME, STYPE)

Parameter | Description
SNAME : STRING; | Name of the new variable in form 'POUName.VarName' (see naming conventions).
STYPE : STRING; | Data type.
OK : BOOL; | TRUE if successful.

Description

This function creates an input parameter for the POU (sub-program or UDFB) specified as a prefix in the variable name. The STYPE indicates its data type. In case of a STRING type, the type must be followed by the string length. e.g. 'STRING(255)'

Example Example

// create a sub program
paCreateSubProgram ('SP', _LG_LD);
// declare parameters
paCreateInputParam ('SP.IN1', 'BOOL');
paCreateInputParam ('SP.IN2', 'DINT');
paCreateOutputParam ('SP.Q', 'BOOL');

seealso See also

paCreateVar - Create a variable.
paCreateOutputParam - Create an output parameter of a sub-program or UDFB.
paSetVarXDim(s) - Set dimension(s) of a variable.
paSetVarInitValue - Set initial value of a variable.
paSetVarComment - Set description text of a variable.
paEmbedVarSymbol - Embed the symbol of a variable.
paProfileVar - Set variable profile and properties.

paEnumVar - Enumerate variables.
paGetVarDesc - Get information about a variable.
paDeleteVar - Delete a variable.


paCreateOutputParam

Project Automation Library -> Reference -> Declaring objects -> Declaring Variables -> paCreateOutputParam

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateOutputParam - Create an output parameter of a POU

OK := paCreateOutputParam (SNAME, STYPE)

Parameter | Description
SNAME : STRING; | Name of the new variable in form 'POUName.VarName' (see naming conventions).
STYPE : STRING; | Data type.
OK : BOOL; | TRUE if successful.

Description

This function creates an output parameter for the POU (sub-program or UDFB) specified as a prefix in the variable nameThe STYPE indicates its data type. In case of a STRING type, the type must be followed by the string length. e.g. 'STRING(255)'

Example Example

// create a sub program
paCreateSubProgram ('SP', _LG_LD);
// declare parameters
paCreateInputParam ('SP.IN1', 'BOOL');
paCreateInputParam ('SP.IN2', 'DINT');
paCreateOutputParam ('SP.Q', 'BOOL');

seealso See also

paCreateVar - Create a variable.
paCreateInputParam - Create an input parameter of a sub-program or UDFB.
paSetVarXDim(s) - Set dimension(s) of a variable.
paSetVarInitValue - Set initial value of a variable.
paSetVarComment - Set description text of a variable.
paEmbedVarSymbol - Embed the symbol of a variable.
paProfileVar - Set variable profile and properties.

paEnumVar - Enumerate variables.
paGetVarDesc - Get information about a variable.
paDeleteVar - Delete a variable.


paSetVarDim

Project Automation Library -> Reference -> Declaring objects -> Declaring Variables -> paSetVarDim

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetVar1Dim / paSetVar2Dims / paSetVar3Dims - Setzt die Dimension(en) einer Variable (eines Arrays)

OK := paSetVarDim (NAME, DIM) // 1 Dimensionen Array
OK := paSetVar2Dims (NAME, DIMHIGH, DIMLOW) // 2 Dimensionen Array
OK := paSetVar3Dims (NAME, DIMHIGH, DIMMEDIUM, DIMLOW) // 3 Dimensionen Array

Parameter | Beschreibung
NAME : STRING; | Name der Variable und Beschreibung von OTS-Gruppe (siehe: Benennungskonventionen).
DIMxxx : DINT; | Dimension(en) eines Arrays.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion definiert die Dimension einer deklarierten Variablen, um ein Array zu deklarieren. Die gleiche Funktion kann auch für ein Element in einer Datenstruktur verwendet werden.

Example Example

// declare Array1 : array [0..9] of BOOL
paCreateVar ('Array1', 'BOOL');
paSetVarDim ('Array1', 10);
// declare Array2 : array [0..9,0..4] of BOOL
paCreateVar ('Array2', 'BOOL');
paSetVar2Dims ('Array2', 10, 5);
// declare Array2 : array [0..9,0..4,0..19] of BOOL
paCreateVar ('Array3', 'BOOL');
paSetVar3Dims ('Array3', 10, 5, 20);

seealso See also

paCreateVar - Erstellt eine Variable.
paCreateInputParam - Erstellt den Input-Parameter eines Sub-Programmes oder eines UDFB.
paCreateOutputParam - Erstellt den Output-Parameter für ein Sub-Programm oder eines UDFB.
paSetVarInitValue - Setzt Initialwert einer Variable.
paSetVarComment - Setzt Beschreibungstext einer Variable.
paEmbedVarSymbol - Bettet das Symbol einer Variable ein.
paProfileVar - Setzt Variablenprofil und Eigenschaften.

paEnumVar - Zählt Anzahl an Variablen.
paGetVarDesc - Holt Information über eine Variable.
paDeleteVar - Löscht eine Variable.


paSetVarInitValue

Project Automation Library -> Reference -> Declaring objects -> Declaring Variables -> paSetVarInitValue

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetVarInitValue - Setzt den Initialwert einer Variable.

OK := paSetVarInitValue (NAME, VALUE)

Parameter | Beschreibung
NAME : STRING; | Name der Variable und Beschreibung von OTS-Gruppe (siehe: Benennungskonventionen).
VALUE : STRING; | Initialwert eines IEC 61131-3 Syntax.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion setzt den Initialwert einer deklarierten Variable. Die gleiche Funktion kann auch für ein Element in einer Datenstruktur verwendet werden.

Example Example

// declare Integer1 : DINT := 1234;
paCreateVar ('Integer1', 'BOOL');
paSetVarInitValue ('Integer1', '1234');
// declare Array1 : array [0..3] of BOOL := 1, 2, 3, 4;
paCreateVar ('Array1', 'BOOL');
paSetVarDim ('Array1', 4);
paSetVarInitValue ('Integer1', '1,2,3,4');

seealso See also

paCreateVar - Erstellt eine Variable.
paCreateInputParam - Erstellt einen Input-Parameter für ein Sub-Programm oder einen UDFB.
paCreateOutputParam - Erstellt einen Output-Parameter für ein Sub-Programm oder einen UDFB.
paSetVarXDim(s) - Setzt Dimension(en) einer Variable.
paSetVarComment - Setzt Beschreibungstext einer Variable.
paEmbedVarSymbol - Bettet das Symbol einer Variable ein.
paProfileVar - Setzt Profil und Eigenschaften einer Variable.

paEnumVar - Zählt Anzahl an Variablen.
paGetVarDesc - Holt Information über eine Variable.
paDeleteVar - Löscht eine Variable.


paSetVarComment

Project Automation Library -> Reference -> Declaring objects -> Declaring Variables -> paSetVarComment

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetVarComment - Setzt die Beschreibung als Variable

OK := paSetVarComment (NAME, COMM, TAG)

Parameter | Beschreibung
NAME : STRING; | Name der Variable und Beschreibung von OTS-Gruppe (siehe: Benennungskonventionen).
COMM : STRING; | Beschreibungstext.
TAG : STRING; | Kurzer Beschreibungstext.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion setzt den Kommentartext der deklarierten Variable. Die gleiche Funktion kann auch für ein Element in einer Datenstruktur verwendet werden.

seealso See also

paCreateVar - Erstellt eine Variable.
paCreateInputParam - Erstellt einen Input-Parameter eines Subprogrammes oder eines UDFB.
paCreateOutputParam - Erstellt einen Output-Parameter für ein Subprogramm oder eines UDFB.
paSetVarXDim(s) - Setzt Dimension(en) einer Variable.
paSetVarInitValue - Setzt Initialwert einer Variable.
paEmbedVarSymbol - Bettet Symbol einer Variable ein.
paProfileVar - Setzt Variablenprofil und Einstellungen.

paEnumVar - Zählt Anzahl an Variablen.
paGetVarDesc - Holt Information über eine Variable.
paDeleteVar - Löscht eine Variable.


paEmbedVarSymbol

Project Automation Library -> Reference -> Declaring objects -> Declaring Variables -> paEmbedVarSymbol

Previous chapter Next chapter Show all Show all Hide all Hide all

paEmbedVarSymbol - Embed the symbol of a variable

OK := paEmbedVarSymbol (NAME, SYB)

Parameter | Description
NAME : STRING; | Name of the variable and speficication of ots group (see naming conventions).
SYB : BOOL; | TRUE if the variable symbol must be embedded.
OK : BOOL; | TRUE if successful.

Description

This function specifies if the symbol of a declared variable must be embedded. The same function can be for an item in a data structure.

seealso See also

paCreateVar - Create a variable.
paCreateInputParam - Create an input parameter of a sub-program or UDFB.
paCreateOutputParam - Create an output parameter of a sub-program or UDFB.
paSetVarXDim(s) - Set dimension(s) of a variable.
paSetVarInitValue - Set initial value of a variable.
paSetVarComment - Set description text of a variable.
paProfileVar - Set variable profile and properties.

paEnumVar - Enumerate variables.
paGetVarDesc - Get information about a variable.
paDeleteVar - Delete a variable.


paProfileVar

Project Automation Library -> Reference -> Declaring objects -> Declaring Variables -> paProfileVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paProfileVar - Defines the profile and embedded properties of a variable

OK := paProfileVar (PROFILE, PROPERTIES)

Parameter | Description
NAME : STRING; | Name of the variable and speficication of ots group (see naming conventions).
PROFILE : STRING; | Name of the profile.
PROPERTIES : STRING; | Embedded properties attached to the profile (if any).
OK : BOOL; | TRUE if successful.

Description

This function specifies the profile and the corresponding embedded properties for a declared variable. Properties are written in form:

prop=value,prop=value,...

Example Example

// declare the variable
paCreateVar ('F1', 'BOOL');
paProfileVar ('K1', '1234');
// declare Array1 : array [0..3] of BOOL := 1, 2, 3, 4;
paCreateVar ('Array1', 'FKey', 'Key=1');

seealso See also

paCreateVar - Create a variable.
paCreateInputParam - Create an input parameter of a sub-program or UDFB.
paCreateOutputParam - Create an output parameter of a sub-program or UDFB.
paSetVarXDim(s) - Set dimension(s) of a variable.
paSetVarInitValue - Set initial value of a variable.
paSetVarComment - Set description text of a variable.
paEmbedVarSymbol - Embed the symbol of a variable.

paEnumVar - Enumerate variables.
paGetVarDesc - Get information about a variable.
paDeleteVar - Delete a variable.


paEnumVar

Project Automation Library -> Reference -> Declaring objects -> Declaring Variables -> paEnumVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paEnumVar - Enumerate variables of a group in the target project

function block: Inst_paEnumVar (LOAD, CHECK, ITEM, FILTER)

Input | Description
LOAD : TRUE; | If TRUE, load the list of variables.
CHECK : BOOL; | If TRUE, open a checklist box to select some of the loaded variables.
ITEM : DINT; | Index of the item wanted on input (1 based).
FILTER : STRING; | Group specification and filtering mask for loading variables.

Output | Description
NB : DINT; | Number of variables.
Q : STRING; | Name of the item selected with "ITEM".

Description

This function block is used for enumerating the variables of a group in the target project. You must first call it with LOAD input at TRUE in order to load the list of variables. You get the number of programs in the NB output. Then call it again with LOAD at FALSE and specifying the index of the wished variable in the ITEM input to get the name of the selected item in the Q output. The numbering of items starts at 1.

When loading programs (LOAD inputs is TRUE), you must specify the group in the FILTER parameter, possibly followed by the '.' separator and a filtering string including some '*' or '?' wildchars. No group name is required for global variables.

After loading, if can call again the block with the CHECK input at TRUE for opening a dialog box where the user can check wished variables. After the box is closed, only checked items remain in the loaded list.

Example Example

// "ENU" is a declared instance of paEnumVar function block
// load all RETAIN variables
ENU (TRUE, FALSE, 0, 'RETAIN.*');
// open a dialog box for the user to check wished items
ENU (FALSE, TRUE, FALSE, 0, '');
// enumerate checked items
for i := 1 to ENU.NB do
// select the item "i"
ENU (FALSE, FALSE, i, '');
// get the name of the item specified by "i"
sVarName := ENU.Q;
end_for;

seealso See also

paCreateVar - Create a variable.
paCreateInputParam - Create an input parameter of a sub-program or UDFB.
paCreateOutputParam - Create an output parameter of a sub-program or UDFB.
paSetVarXDim(s) - Set dimension(s) of a variable.
paSetVarInitValue - Set initial value of a variable.
paSetVarComment - Set description text of a variable.
paEmbedVarSymbol - Embed the symbol of a variable.
paProfileVar - Set variable profile and properties.

paGetVarDesc - Get information about a variable.
paDeleteVar - Delete a variable.


paGetVarDesc

Project Automation Library -> Reference -> Declaring objects -> Declaring Variables -> paGetVarDesc

Previous chapter Next chapter Show all Show all Hide all Hide all

paGetVarDesc - Get information about a variable

function block: Inst_paGetVarDesc (NAME)

Input | Description
NAME : STRING; | Name of the variable and speficication of ots group (see naming conventions).

Output | Description
OK : BOOL; | TRUE if successful.
INPARAM : BOOL; | TRUE if it is an input parameter.
OUTPARAM : BOOL; | TRUE if it is an output parameter.
DATATYPE : STRING; | Data type.
DIMTOTAL : DINT; | Total number of items for an array.
DIMHIGH : DINT; | Highest dimension (0 for 1 or 2 dimension arrays).
DIMMEDIUM : DINT; | Medium dimension (0 for 1 dimension arrays).
DIMLOW : DINT; | Lowest dimension.
INIT : STRING; | Initial value in IEC syntax.
SYB : BOOL; | TRUE if the symbol of the variable is embedded.
PROFILE : STRING; | Name of the attached profile.
PROPS : STRING; | Embedded properties attached to the profile.
COMMENT : STRING; | Description text.
TAG : STRING; | Short description text.

Description

This function block is for getting information about a declared variable. The same block can be used for an item in a data structure.

seealso See also

paCreateVar - Create a variable.
paCreateInputParam - Create an input parameter of a sub-program or UDFB.
paCreateOutputParam - Create an output parameter of a sub-program or UDFB.
paSetVarXDim(s) - Set dimension(s) of a variable.
paSetVarInitValue - Set initial value of a variable.
paSetVarComment - Set description text of a variable.
paEmbedVarSymbol - Embed the symbol of a variable.
paProfileVar - Set variable profile and properties.

paEnumVar - Enumerate variables.
paDeleteVar - Delete a variable.


paDeleteVar

Project Automation Library -> Reference -> Declaring objects -> Declaring Variables -> paDeleteVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paDeleteVar - Delete a variable

OK := paDeleteVar (NAME)

Parameter | Description
NAME : STRING; | Name of the variable and speficication of ots group (see naming conventions).
OK : BOOL; | TRUE if successful.

Description

This function deletes the specified variable. The same function can be used for an item in a data structure.

The name of the variable may contain '?' and '*' wildchars, but the group name cannot. For instance, paDeleteVar ('RETAIN.*') deletes all the retain variables.

seealso See also

paCreateVar - Create a variable.
paCreateInputParam - Create an input parameter of a sub-program or UDFB.
paCreateOutputParam - Create an output parameter of a sub-program or UDFB.
paSetVarXDim(s) - Set dimension(s) of a variable.
paSetVarInitValue - Set initial value of a variable.
paSetVarComment - Set description text of a variable.
paEmbedVarSymbol - Embed the symbol of a variable.
paProfileVar - Set variable profile and properties.

paEnumVar - Enumerate variables.
paGetVarDesc - Get information about a variable.


Declaring I/O Boards

Project Automation Library -> Reference -> Declaring objects -> Declaring I/O Boards

Previous chapter Next chapter Show all Show all Hide all Hide all

Below are the main services to declaring I/O Boards.

Declaration

paCreateIOBoard - Create an instance of an IO device.
paSetIOBoardComment - Set description text for an IO device.
paSetIOBoardParam - Set a parameter of an IO board.
paSetIOAlias - Define an alias for a channel of an IO board.

Working with existing I/O boards

paEnumIOBoards - Enumerate IO boards.
paGetIOBoardDesc - GetDescription of an IO board.
paDeleteIOBoard - Delete an instance of an IO device.
paDeleteAllIOBoards - Delete all IO devices.

Noch in diesem Kapitel

paCreateIOBoard

paSetIOBoardComment

paSetIOBoardParam

paSetIOAlias

paEnumIOBoards

paGetIOBoardDesc

paDeleteIOBoard

paDeleteAllIOBoards


paCreateIOBoard

Project Automation Library -> Reference -> Declaring objects -> Declaring I/O Boards -> paCreateIOBoard

Previous chapter Next chapter Show all Show all Hide all Hide all

paCreateIOBoard - Create an instance of an IO device

OK := paCreateIOBoard (SLOT, DEVTYPE)

Parameter | Description
SLOT : DINT; | Slot number (0..255).
DEVTYPE : STRING; | Name of the type of IO device.
OK : BOOL; | TRUE if successful.

Description

This function creates an instance of the specified IO device at the specified slot number.

seealso See also

paSetIOBoardComment - Set description text for an IO device.
paSetIOBoardParam - Set a parameter of an IO board.
paSetIOAlias - Define an alias for a channel of an IO board.

paEnumIOBoards - Enumerate IO boards.
paGetIOBoardDesc - GetDescription of an IO board.
paDeleteIOBoard - Delete an instance of an IO device.
paDeleteAllIOBoards - Delete all IO devices.


paSetIOBoardComment

Project Automation Library -> Reference -> Declaring objects -> Declaring I/O Boards -> paSetIOBoardComment

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetIOBoardComment - Setzt die Beschreibung für ein IO Gerät

OK := paSetIOBoardComment (SLOT, COMM)

Parameter | Beschreibung
SLOT : DINT; | Slot Nummer (0 ... 255).
COMM : STRING; | Beschreibungstext.
OK : BOOL; | True wenn erfolgreich.

Beschreibung

Diese Funktion setzt den Beschreibungstext für die Instanz eine IO Gerätes.

seealso See also

paCreateIOBoard - Erstellt eine Instanz für ein IO Gerät.
paSetIOBoardParam - Setzt Parameter für ein IO Board.
paSetIOAlias - Definiert ein Alias für den Kanal eines IO-Boards.

paEnumIOBoards - zählt IO Boards.
paGetIOBoardDesc - Holt Beschreibung eines IO Boards.
paDeleteIOBoard - Löscht die Instanz eines IO Gerätes.
paDeleteAllIOBoards - Löscht alle IO Geräte.


paSetIOBoardParam

Project Automation Library -> Reference -> Declaring objects -> Declaring I/O Boards -> paSetIOBoardParam

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetIOBoardParam - Setzt den Parameterwert eines IO Gerätes

OK := paSetIOBoardComment (SLOT, COMM)

Parameter | Beschreibung
BOARD : STRING; | Board name (e.g. '%QX0').
PARAM : STRING; | Parametername.
VALUE : STRING; | Parameterwert.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion setzt den Wert eines IO board Parameters. Für weitere Informationen lesen sie die OEM Handbücher.

seealso See also

paCreateIOBoard - Erstellt Instanz einer IO Gerätes.
paSetIOBoardComment - Definiert Beschreibungstext für ein IO Gerät.
paSetIOAlias - Definiert ein Alias für den Kanal eines IO boards.

paEnumIOBoards - zählt IO Boards.
paGetIOBoardDesc - Holt Beschreibung eines IO Boards.
paDeleteIOBoard - Löscht die Instanz eines IO Gerätes.
paDeleteAllIOBoards - Löscht alle IO Geräte.


paSetIOAlias

Project Automation Library -> Reference -> Declaring objects -> Declaring I/O Boards -> paSetIOAlias

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetIOAlias - Definiert ein Alias für einen IO Kanal.

OK := paSetIOBoardComment (SLOT, COMM)

Parameter | Beschreibung
CHANNEL : STRING; | Kanalname (z.B.: '%QX0.1').
ALIAS : STRING; | Lesbarer Name zur Verwendung als Alias für den Kanal.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion definiert einen lesbaren Namen für den angegebenen IO Kanal. Das Alias kann anstelle des "%"-Namens in Programmen verwendet werden.

seealso See also

paCreateIOBoard - Erstellt eine Instanz für ein IO Gerät.
paSetIOBoardComment - Setzt den Beschreibungstext für ein IO Gerät.
paSetIOBoardParam - Setzt einen Paramater für ein IO Board.
paEnumIOBoards - Zählt IO Boards.
paGetIOBoardDesc - Holt Beschreibung eines IO Boards.
paDeleteIOBoard - Löscht die Instanz eines IO Gerätes.
paDeleteAllIOBoards - Löscht alle IO Geräte.


paEnumIOBoards

Project Automation Library -> Reference -> Declaring objects -> Declaring I/O Boards -> paEnumIOBoards

Previous chapter Next chapter Show all Show all Hide all Hide all

paEnumIOBoards - Enumerate IO boards of the target project

function block: Inst_paEnumIOBoard (LOAD, CHECK, ITEM, FILTER)

Input | Description
LOAD : TRUE; | If TRUE, load the list of boards.
CHECK : BOOL; | If TRUE, open a checklist box to select some of the loaded boards.
ITEM : DINT; | Index of the item wanted on input (1 based).

Output | Description
NB : DINT; | Number of boards.
Q : STRING; | Name of the item selected with "ITEM".

Description

This function block is used for enumerating the IO boards of the target project. You must first call it with LOAD input at TRUE in order to load the list of IO boards. You get the number of boards in the NB output. Then call it again with LOAD at FALSE and specifying the index of the wished structure in the ITEM input to get the name of the selected item in the Q output. The numbering of items starts at 1.

For complex IO devices, only the child boards of the device are listed. The complex device itself does not occur in the list.

After loading, if can call again the block with the CHECK input at TRUE for opening a dialog box where the user can check wished boards. After the box is closed, only checked items remain in the loaded list.

Example Example

// "ENU" is a declared instance of paEnumIOBoard function block
// load all boards
ENU (TRUE, FALSE, 0);
// open a dialog box for the user to check wished items
ENU (FALSE, TRUE, FALSE, 0);
// enumerate checked items
for i := 1 to ENU.NB do
// select the item "i"
ENU (FALSE, FALSE, i);
// get the name of the item specified by "i"
sBoardName := ENU.Q;
end_for;

seealso See also

paCreateIOBoard - Create an instance of an IO device.
paSetIOBoardComment - Set description text for an IO device.
paSetIOBoardParam - Set a parameter of an IO board.
paSetIOAlias - Define an alias for a channel of an IO board.

paGetIOBoardDesc - GetDescription of an IO board.
paDeleteIOBoard - Delete an instance of an IO device.
paDeleteAllIOBoards - Delete all IO devices.


paGetIOBoardDesc

Project Automation Library -> Reference -> Declaring objects -> Declaring I/O Boards -> paGetIOBoardDesc

Previous chapter Next chapter Show all Show all Hide all Hide all

paGetIOBoardDesc - Get information about an IO board

function block: Inst_paGetIOBoardDesc (NAME)

Input | Description
NAME : STRING; | Name of the board (e.g. '%QX0').

Output | Description
OK : BOOL; | TRUE if successful.
NBCHANNEL : DINT; | Number of channels.
DEVNAME : STRING; | IO Device name.
DEVGROUP : STRING; | In case of a complex IO device, name of the group within the device.
COMMENT : STRING; | Description text.

Description

This function block is for getting information about an IO board of the target project.

seealso See also

paCreateIOBoard - Create an instance of an IO device.
paSetIOBoardComment - Set description text for an IO device.
paSetIOBoardParam - Set a parameter of an IO board.
paSetIOAlias - Define an alias for a channel of an IO board.

paEnumIOBoards - Enumerate IO boards.
paDeleteIOBoard - Delete an instance of an IO device.
paDeleteAllIOBoards - Delete all IO devices.


paDeleteIOBoard

Project Automation Library -> Reference -> Declaring objects -> Declaring I/O Boards -> paDeleteIOBoard

Previous chapter Next chapter Show all Show all Hide all Hide all

paDeleteIOBoard - Delete an instance of an IO device

OK := paDeleteIOBoard (SLOT)

Parameter | Description
SLOT : DINT; | Slot number (0..255).
OK : BOOL; | TRUE if successful.

Description

This function deletes the specified instance of an IO device. In case of a complex device, the whole device (with all its groups) is removed.

seealso See also

paCreateIOBoard - Create an instance of an IO device.
paSetIOBoardComment - Set description text for an IO device.
paSetIOBoardParam - Set a parameter of an IO board.
paSetIOAlias - Define an alias for a channel of an IO board.

paEnumIOBoards - Enumerate IO boards.
paGetIOBoardDesc - GetDescription of an IO board.
paDeleteAllIOBoards - Delete all IO devices.


paDeleteAllIOBoards

Project Automation Library -> Reference -> Declaring objects -> Declaring I/O Boards -> paDeleteAllIOBoards

Previous chapter Next chapter Show all Show all Hide all Hide all

paDeleteAllIOBoards - Delete all instances of IO devices

OK := paDeleteAllIOBoards ()

Parameter | Description
OK : BOOL; | TRUE if successful.

Description

This function deletes all the existing instances of any IO device.

seealso See also

paCreateIOBoard - Create an instance of an IO device.
paSetIOBoardComment - Set description text for an IO device.
paSetIOBoardParam - Set a parameter of an IO board.
paSetIOAlias - Define an alias for a channel of an IO board.

paEnumIOBoards - Enumerate IO boards.
paGetIOBoardDesc - GetDescription of an IO board.
paDeleteIOBoard - Delete an instance of an IO device.


Generating documents

Project Automation Library -> Reference -> Generating documents

Previous chapter Next chapter Show all Show all Hide all Hide all

Noch in diesem Kapitel

Common file services

Text file writing services

IEC Source code file writing services

Networking and fieldbuses - file writing services

Watch window documents - file writing services

Resource documents - file writing services


Common file services

Project Automation Library -> Reference -> Generating documents -> Common file services

Previous chapter Next chapter Show all Show all Hide all Hide all

Below are the main services for managing files when generating documents in the target project.

Declaration

paFileOpenWrite - Open any file in the target project for writing.
paFileOpenWriteProgramSrc - Open the source file of a POU for writing.
paFileOpenWriteProgramDef - Open the definitions file of a POU for writing.
paFileClose - Close an open file.

Noch in diesem Kapitel

paFileOpenWrite

paFileOpenWriteProgramSrc

paFileOpenWriteProgramDef

paFileClose


paFileOpenWrite

Project Automation Library -> Reference -> Generating documents -> Common file services -> paFileOpenWrite

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWrite - Open any file in the target project for writing

FID := paFileOpenWrite (PREFIX, SUFFIX)

Parameter | Description
PREFIX : STRING; | File prefix.
SUFFIX : STRING; | File suffix.
FID : DINT; | File identifier or 0 if fail.

Description

This function opens a target project file for writing. It should normally not be used as dedicated file open functions are available for most of possible project documents.

This functions removes the contents of the file if it already exist.

When written, the file must be closed by calling the paFileClose function.

seealso See also

paFileOpenWriteProgramSrc - Open the source file of a POU for writing.
paFileOpenWriteProgramDef - Open the definitions file of a POU for writing.
paFileClose - Close an open file.


paFileOpenWriteProgramSrc

Project Automation Library -> Reference -> Generating documents -> Common file services -> paFileOpenWriteProgramSrc

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteProgramSrc - Open a POU source file for writing

FID := paFileOpenWriteProgramSrc (NAME)

Parameter | Description
NAME : STRING; | Program name.
FID : DINT; | File identifier or 0 if fail.

Description

This function opens for writing the file that contains the source code of a program, sub-program or UDFB. Then you should use the appropriate file writing functions according to the language of the specified POU.

This functions removes the contents of the file if it already exist.

When written, the file must be closed by calling the paFileClose function.

seealso See also

paFileOpenWrite - Open any file in the target project for writing.
paFileOpenWriteProgramDef - Open the definitions file of a POU for writing.
paFileClose - Close an open file.


paFileOpenWriteProgramDef

Project Automation Library -> Reference -> Generating documents -> Common file services -> paFileOpenWriteProgramDef

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteProgramDef - Open a POU definitions file for writing

FID := paFileOpenWriteProgramDef (NAME)

Parameter | Description
NAME : STRING; | Program name.
FID : DINT; | File identifier or 0 if fail.

Description

This function opens for writing the file that contains the local definitions of a program, sub-program or UDFB. Then you should use the text file writing functions to fill the file.

This functions removes the contents of the file if it already exist.

When written, the file must be closed by calling the paFileClose function.

seealso See also

paFileOpenWrite - Open any file in the target project for writing.
paFileOpenWriteProgramSrc - Open the source file of a POU for writing.
paFileClose - Close an open file.


paFileClose

Project Automation Library -> Reference -> Generating documents -> Common file services -> paFileClose

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileClose - Close an open file

OK := paFileClose (FID)

Parameter | Description
FID : DINT; | File identifier returned by any file open function.

Description

This function closes a file open by any of available file open functions.

seealso See also

paFileOpenWrite - Open any file in the target project for writing.
paFileOpenWriteProgramSrc - Open the source file of a POU for writing.
paFileOpenWriteProgramDef - Open the definitions file of a POU for writing.


Text file writing services

Project Automation Library -> Reference -> Generating documents -> Text file writing services

Previous chapter Next chapter Show all Show all Hide all Hide all

Below are the main services for writing in text files.

paFTextEol - Write end of line characters to a text file.
paFTextLine - Write a line in a text file.
paFTextString - Write a string in a text file.

Noch in diesem Kapitel

paFTextEol

paFTextLine

paFTextString


paFTextEol

Project Automation Library -> Reference -> Generating documents -> Text file writing services -> paFTextEol

Previous chapter Next chapter Show all Show all Hide all Hide all

paFTextEol - Write end of line characters in a text file

OK := paFTextEol (FID)

Parameter | Description
FID : DINT; | File identifier returned by the file open function.

Description

This function writes end of line characters in a text file open for writing.

seealso See also

paFTextLine - Write a line in a text file.
paFTextString - Write a string in a text file.


paFTextLine

Project Automation Library -> Reference -> Generating documents -> Text file writing services -> paFTextLine

Previous chapter Next chapter Show all Show all Hide all Hide all

paFTextLine - Write a line in a text file

OK := paFTextLine (FID, TEXT)

Parameter | Description
FID : DINT; | File identifier returned by the file open function.
TEXT : STRING; | Text to be written.

Description

This function writes the string specified by the TEXT parameter plus end of line characters in a text file open for writing.

seealso See also

paFTextEol - Write end of line characters to a text file.
paFTextString - Write a string in a text file.


paFTextString

Project Automation Library -> Reference -> Generating documents -> Text file writing services -> paFTextString

Previous chapter Next chapter Show all Show all Hide all Hide all

paFTextString - Write a string in a text file

OK := paFTextEol (FID, TEXT)

Parameter | Description
FID : DINT; | File identifier returned by the file open function.
TEXT : STRING; | Text to be written.

Description

This function writes the string specified by the TEXT parameter in a text file open for writing.

seealso See also

paFTextEol - Write end of line characters to a text file.
paFTextLine - Write a line in a text file.


IEC Source code file writing services

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services

Previous chapter Next chapter Show all Show all Hide all Hide all

Below are the main services for writing source code in IEC language in POU source files. Files are open using the paFileOpenWriteSrc function. When complete, they must be closed by calling the paFileClose function.

There are various set of available functions depending on the programming language:

  • Structured Text or Instruction List:

    Text file writing functions

  • Function Block Diagram:

    Functions for FBD sequential writing

  • Ladder Diagram:

    Functions for LD sequential writing

  • Sequential Function Chart:

    Functions for SFC sequential writing

Noch in diesem Kapitel

ST / IL text

FBD - sequential file writing services

LD - file writing services

SFC - file writing services


ST / IL text

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> ST / IL text

Previous chapter Next chapter Show all Show all Hide all Hide all

Below are the main services for writing in text files.

paFTextEol - Write end of line characters to a text file.
paFTextLine - Write a line in a text file.
paFTextString - Write a string in a text file.

Noch in diesem Kapitel

paFTextEol

paFTextLine

paFTextString


paFTextEol

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> ST / IL text -> paFTextEol

Previous chapter Next chapter Show all Show all Hide all Hide all

paFTextEol - Write end of line characters in a text file

OK := paFTextEol (FID)

Parameter | Description
FID : DINT; | File identifier returned by the file open function.

Description

This function writes end of line characters in a text file open for writing.

seealso See also

paFTextLine - Write a line in a text file.
paFTextString - Write a string in a text file.


paFTextLine

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> ST / IL text -> paFTextLine

Previous chapter Next chapter Show all Show all Hide all Hide all

paFTextLine - Write a line in a text file

OK := paFTextLine (FID, TEXT)

Parameter | Description
FID : DINT; | File identifier returned by the file open function.
TEXT : STRING; | Text to be written.

Description

This function writes the string specified by the TEXT parameter plus end of line characters in a text file open for writing.

seealso See also

paFTextEol - Write end of line characters to a text file.
paFTextString - Write a string in a text file.


paFTextString

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> ST / IL text -> paFTextString

Previous chapter Next chapter Show all Show all Hide all Hide all

paFTextString - Write a string in a text file

OK := paFTextEol (FID, TEXT)

Parameter | Description
FID : DINT; | File identifier returned by the file open function.
TEXT : STRING; | Text to be written.

Description

This function writes the string specified by the TEXT parameter in a text file open for writing.

seealso See also

paFTextEol - Write end of line characters to a text file.
paFTextLine - Write a line in a text file.


FBD - sequential file writing services

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> FBD - sequential file writing services

Previous chapter Next chapter Show all Show all Hide all Hide all

The functions below enable you to write sequentially (from the top to the bottom) the source code of a program written in FBD language. Is has limited features (it is not possible to link 2 blocks together) but provides a very easy way to generate FBD as you do not need to care with the position of the elements in the diagram. Files are open using the paFileOpenWriteSrc function. When complete, they must be closed by calling the paFileClose function.

Use the following functions for inserting objects sequentially:

paFbdsBreak - Insert a network break.
paFbdsComment - Insert a multiline comment block.
paFbdsLabel - Insert a label.
paFbdsJump - Insert a unconditional jump.
paFbdsReturn - Insert a unconditional <RETURN> statement.
paFbdsBlock - Insert a block.

Just after inserting a block, you then can define its inputs and outputs:

paFbdsInputVar - Connect a variable on input of the last block.
paFbdsOutputVar - Connect a variable on output of the last block.
paFbdsOutputJump - Connect a jump statement on output of the last block.
paFbdsOutputReturn - Connect a <RETURN> statement on output of the last block.

See an example.

Noch in diesem Kapitel

paFbdsBreak

paFbdsComment

paFbdsLabel

paFbdsJump

paFbdsReturn

paFbdsBlock

paFbdsInputVar

paFbdsOutputVar

paFbdsOutputJump

paFbdsOutputReturn

Example


paFbdsBreak

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> FBD - sequential file writing services -> paFbdsBreak

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsBreak - add a network break

OK := paFbdsBreak (FID, TEXT)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
TEXT : STRING; | Text written on the network break.
OK : BOOL; | TRUE if successful.

Description

This function adds a network break under the last added item in a FBD source file open for writing.

seealso See also

paFbdsComment - Insert a multiline comment block.
paFbdsLabel - Insert a label.
paFbdsJump - Insert a unconditional jump.
paFbdsReturn - Insert a unconditional <RETURN> statement.
paFbdsBlock - Insert a block.

paFbdsInputVar - Connect a variable on input of the last block.
paFbdsOutputVar - Connect a variable on output of the last block.
paFbdsOutputJump - Connect a jump statement on output of the last block.
paFbdsOutputReturn - Connect a <RETURN> statement on output of the last block.

See an example.


paFbdsComment

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> FBD - sequential file writing services -> paFbdsComment

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsComment - add a comment block

OK := paFbdsComment (FID, TEXT, HEIGHT)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
TEXT : STRING; | Comment text.
HEIGHT ; DINT; | Height of the comment block (in diagram grid unit).
OK : BOOL; | TRUE if successful.

Description

This function adds a multiline comment block under the last added item in a FBD source file open for writing. You can use the '$N' sequence in the comment text to specify an end of line.

seealso See also

paFbdsBreak - Insert a network break.
paFbdsLabel - Insert a label.
paFbdsJump - Insert a unconditional jump.
paFbdsReturn - Insert a unconditional <RETURN> statement.
paFbdsBlock - Insert a block.

paFbdsInputVar - Connect a variable on input of the last block.
paFbdsOutputVar - Connect a variable on output of the last block.
paFbdsOutputJump - Connect a jump statement on output of the last block.
paFbdsOutputReturn - Connect a <RETURN> statement on output of the last block.

See an example.


paFbdsLabel

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> FBD - sequential file writing services -> paFbdsLabel

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsLabel - add a label

OK := paFbdsLabel (FID, LABEL)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
LABEL : STRING; | Label name.
OK : BOOL; | TRUE if successful.

Description

This function adds a label under the last added item in a FBD source file open for writing. The label is placed on the left side of the diagram.

seealso See also

paFbdsBreak - Insert a network break.
paFbdsComment - Insert a multiline comment block.
paFbdsJump - Insert a unconditional jump.
paFbdsReturn - Insert a unconditional <RETURN> statement.
paFbdsBlock - Insert a block.

paFbdsInputVar - Connect a variable on input of the last block.
paFbdsOutputVar - Connect a variable on output of the last block.
paFbdsOutputJump - Connect a jump statement on output of the last block.
paFbdsOutputReturn - Connect a <RETURN> statement on output of the last block.

See an example.


paFbdsJump

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> FBD - sequential file writing services -> paFbdsJump

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsJump - add a unconditional jump

OK := paFbdsLabel (FID, LABEL)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
LABEL : STRING; | Target label name.
OK : BOOL; | TRUE if successful.

Description

This function adds a jump instruction under the last added item in a FBD source file open for writing. It is an unconditional jump instruction. The jump symbol is placed on the left side of the diagram, connected to a LD left power rail (always true):

seealso See also

paFbdsBreak - Insert a network break.
paFbdsComment - Insert a multiline comment block.
paFbdsLabel - Insert a label.
paFbdsReturn - Insert a unconditional <RETURN> statement.
paFbdsBlock - Insert a block.

paFbdsInputVar - Connect a variable on input of the last block.
paFbdsOutputVar - Connect a variable on output of the last block.
paFbdsOutputJump - Connect a jump statement on output of the last block.
paFbdsOutputReturn - Connect a <RETURN> statement on output of the last block.

See an example.


paFbdsReturn

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> FBD - sequential file writing services -> paFbdsReturn

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsReturn - add a unconditional <return> symbol

OK := paFbdsReturn (FID)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
OK : BOOL; | TRUE if successful.

Description

This function adds a <RETURN> jump instruction under the last added item in a FBD source file open for writing. It is an unconditional instruction. The jump symbol is placed on the left side of the diagram, connected to a LD left power rail (always true):

seealso See also

paFbdsBreak - Insert a network break.
paFbdsComment - Insert a multiline comment block.
paFbdsLabel - Insert a label.
paFbdsJump - Insert a unconditional jump.
paFbdsBlock - Insert a block.

paFbdsInputVar - Connect a variable on input of the last block.
paFbdsOutputVar - Connect a variable on output of the last block.
paFbdsOutputJump - Connect a jump statement on output of the last block.
paFbdsOutputReturn - Connect a <RETURN> statement on output of the last block.

See an example.


paFbdsBlock

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> FBD - sequential file writing services -> paFbdsBlock

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsBlock - add a block

OK := paFbdsBlock (FID, NAME, INSTANCE)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
NAME : STRING; | Block name.
INSTANCE : STRING; | Instance name in case of a function block.
OK : BOOL; | TRUE if successful.

Description

This function adds a block symbol under the last added item in a FBD source file open for writing. It can be a basic operator, a function or a function block. The name of the instance must be specified in case of a function block.

Immediately after calling this function, use the FbdsInput... and FbdsOutput... functions in order to connect the input and output pins of the block.

seealso See also

paFbdsBreak - Insert a network break.
paFbdsComment - Insert a multiline comment block.
paFbdsLabel - Insert a label.
paFbdsJump - Insert a unconditional jump.
paFbdsReturn - Insert a unconditional <RETURN> statement.

paFbdsInputVar - Connect a variable on input of the last block.
paFbdsOutputVar - Connect a variable on output of the last block.
paFbdsOutputJump - Connect a jump statement on output of the last block.
paFbdsOutputReturn - Connect a <RETURN> statement on output of the last block.

See an example.


paFbdsInputVar

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> FBD - sequential file writing services -> paFbdsInputVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsInputVar - connect an input of the last added block

OK := paFbdsInputVar (FID, NAME, PIN, NEGATE)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
NAME : STRING; | Variable name or constant expression.
PIN : DINT; | Index of the input pin of the block (the first input pin is 1).
NEGATE : BOOL; | If TRUE, the connection between the variable and the block has a boolean negation.
OK : BOOL; | TRUE if successful.

Description

This function connects a variable box on input of the last block added by the paFbdsBlock function, and must be called immediately after.

seealso See also

paFbdsBreak - Insert a network break.
paFbdsComment - Insert a multiline comment block.
paFbdsLabel - Insert a label.
paFbdsJump - Insert a unconditional jump.
paFbdsReturn - Insert a unconditional <RETURN> statement.
paFbdsBlock - Insert a block.

paFbdsOutputVar - Connect a variable on output of the last block.
paFbdsOutputJump - Connect a jump statement on output of the last block.
paFbdsOutputReturn - Connect a <RETURN> statement on output of the last block.

See an example.


paFbdsOutputVar

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> FBD - sequential file writing services -> paFbdsOutputVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsOutputVar - connect an output of the last added block

OK := paFbdsOutputVar (FID, NAME, PIN, NEGATE)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
NAME : STRING; | Variable name.
PIN : DINT; | Index of the output pin of the block (the first output pin is 1).
NEGATE : BOOL; | If TRUE, the connection between the block and the variable has a boolean negation.
OK : BOOL; | TRUE if successful.

Description

This function connects a variable box on output of the last block added by the paFbdsBlock function, and must be called immediately after.

seealso See also

paFbdsBreak - Insert a network break.
paFbdsComment - Insert a multiline comment block.
paFbdsLabel - Insert a label.
paFbdsJump - Insert a unconditional jump.
paFbdsReturn - Insert a unconditional <RETURN> statement.
paFbdsBlock - Insert a block.

paFbdsInputVar - Connect a variable on input of the last block.
paFbdsOutputJump - Connect a jump statement on output of the last block.
paFbdsOutputReturn - Connect a <RETURN> statement on output of the last block.

See an example.


paFbdsOutputJump

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> FBD - sequential file writing services -> paFbdsOutputJump

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsOutputJump - connect a jump symbol on output of the last added block

OK := paFbdsOutputJump (FID, LABEL, PIN, NEGATE)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
LABEL : STRING; | Target label name.
PIN : DINT; | Index of the output pin of the block (the first output pin is 1).
NEGATE : BOOL; | If TRUE, the connection between the block and the variable has a boolean negation.
OK : BOOL; | TRUE if successful.

Description

This function connects a jump instruction on output of the last block added by the paFbdsBlock function, and must be called immediately after.

seealso See also

paFbdsBreak - Insert a network break.
paFbdsComment - Insert a multiline comment block.
paFbdsLabel - Insert a label.
paFbdsJump - Insert a unconditional jump.
paFbdsReturn - Insert a unconditional <RETURN> statement.
paFbdsBlock - Insert a block.

paFbdsInputVar - Connect a variable on input of the last block.
paFbdsOutputVar - Connect a variable on output of the last block.
paFbdsOutputReturn - Connect a <RETURN> statement on output of the last block.

See an example.


paFbdsOutputReturn

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> FBD - sequential file writing services -> paFbdsOutputReturn

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbdsOutputReturn - connect a <return> jump symbol on output of the last added block

OK := paFbdsOutputReturn (FID, PIN, NEGATE)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
PIN : DINT; | Index of the output pin of the block (the first output pin is 1).
NEGATE : BOOL; | If TRUE, the connection between the block and the variable has a boolean negation.
OK : BOOL; | TRUE if successful.

Description

This function connects a <RETURN> instruction on output of the last block added by the paFbdsBlock function, and must be called immediately after.

seealso See also

paFbdsBreak - Insert a network break.
paFbdsComment - Insert a multiline comment block.
paFbdsLabel - Insert a label.
paFbdsJump - Insert a unconditional jump.
paFbdsReturn - Insert a unconditional <RETURN> statement.
paFbdsBlock - Insert a block.

paFbdsInputVar - Connect a variable on input of the last block.
paFbdsOutputVar - Connect a variable on output of the last block.
paFbdsOutputJump - Connect a jump statement on output of the last block.

See an example.


Example

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> FBD - sequential file writing services -> Example

Previous chapter Next chapter Show all Show all Hide all Hide all

Below is an example of script that generates a FBD file in the target project:

// make FBD code - sequential writing
f := paFileOpenWriteProgramSrc ('ProgFBD');
if f <> 0 then
// add a comment block (2 lines of text)
paFbdsComment (f, 'FBD program$Ngenerated by script', 2);
// add a function block and its inputs and outputs
paFbdsBreak (f, 'function block');
paFbdsBlock (f, 'Blink', 'Blinker');
paFbdsInputVar (f, 'TRUE', 1, FALSE);
paFbdsInputVar (f, 't#1s', 2, FALSE);
paFbdsOutputJump (f, 'TheEnd', 1, FALSE);
// add a function and its inputs and outputs
paFbdsBreak (f, 'simple addition');
paFbdsBlock (f, '+', '');
paFbdsInputVar (f, 'i1', 1, FALSE);
paFbdsInputVar (f, 'i2', 2, FALSE);
paFbdsOutputVar (f, 'q', 1, FALSE);
// add a label and an unconditional return instruction
paFbdsBreak (f, 'the end');
paFbdsLabel (f, 'TheEnd');
paFbdsReturn (f);
// add a break at the end of the diagram
paFbdsBreak (f, 'eof');
// close the file
paFileClose (f);
end_if;

Here is the FBD program generated by the script:


LD - file writing services

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> LD - file writing services

Previous chapter Next chapter Show all Show all Hide all Hide all

The functions below enable you to write sequentially (from the top to the bottom) the source code of a program written in LD language. The program is written ung after rung. Items are placed sequentially on the rung from the left to the right. Files are open using the paFileOpenWriteSrc function. When complete, they must be closed by calling the paFileClose function.

Use the following functions for inserting rungs in the diagram:

paFLdCommentLine - Add a comment line (network break).
paFLdStartRung - Start a new rung.
paFLdEndRung - Terminate the rung.
paFLdDivergence - Start an OR divergence on the current rung.
paFLdConvergence - Terminate an OR divergence on the current rung.
paFLdNextBranch - Add a parallel branch to the current divergence.

Use the following functions for adding items on the current rung:

paFLdContact - Add a contact.
paFLdCoil - Add a coil.
paFLdJump - Add a jump instruction.
paFLdReturn - Add a <return> jump instruction.
paFLdBlock - Add a block.
paFLdHorzSegment - Add a horizontal segment line.

See an example.

Noch in diesem Kapitel

paFLdCommentLine

paFLdStartRung

paFLdEndRung

paFLdDivergence

paFLdConvergence

paFLdNextBranch

paFLdContact

paFLdCoil

paFLdJump

paFLdReturn

paFLdBlock

paFLdHorzSegment

Example


paFLdCommentLine

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> LD - file writing services -> paFLdCommentLine

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdCommentLine - add a network break

OK := paFLdCommentLine (FID, TEXT)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
TEXT : STRING; | Text written on the network break.
OK : BOOL; | TRUE if successful.

Description

This function adds a comment line (network break) in between rungs.

seealso See also

paFLdStartRung - Start a new rung.
paFLdEndRung - Terminate the rung.
paFLdDivergence - Start an OR divergence on the current rung.
paFLdConvergence - Terminate an OR divergence on the current rung.
paFLdNextBranch - Add a parallel branch to the current divergence.

paFLdContact - Add a contact.
paFLdCoil - Add a coil.
paFLdJump - Add a jump instruction.
paFLdReturn - Add a <return> jump instruction.
paFLdBlock - Add a block.
paFLdHorzSegment - Add a horizontal segment line.

See an example.


paFLdStartRung

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> LD - file writing services -> paFLdStartRung

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdStartRung - start a new rung

OK := paFLdStartRung (FID, LABEL)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
LABEL : STRING; | Rung label name (empty string if no label defined).
OK : BOOL; | TRUE if successful.

Description

This function starts a new rung. After calling this function, you can call other functions to add items on the rung from the left to the right. When complete, you need to call the paFLdEndRung function to terminate the rung.

seealso See also

paFLdCommentLine - Add a comment line (network break).
paFLdEndRung - Terminate the rung.
paFLdDivergence - Start an OR divergence on the current rung.
paFLdConvergence - Terminate an OR divergence on the current rung.
paFLdNextBranch - Add a parallel branch to the current divergence.

paFLdContact - Add a contact.
paFLdCoil - Add a coil.
paFLdJump - Add a jump instruction.
paFLdReturn - Add a <return> jump instruction.
paFLdBlock - Add a block.
paFLdHorzSegment - Add a horizontal segment line.

See an example.


paFLdEndRung

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> LD - file writing services -> paFLdEndRung

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdEndRung - terminates the rung

OK := paFLdEndRung (FID)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
OK : BOOL; | TRUE if successful.

Description

This function terminates the current rung. You need to call it before starting another rung or adding a comment line.

seealso See also

paFLdCommentLine - Add a comment line (network break).
paFLdStartRung - Start a new rung.
paFLdDivergence - Start an OR divergence on the current rung.
paFLdConvergence - Terminate an OR divergence on the current rung.
paFLdNextBranch - Add a parallel branch to the current divergence.

paFLdContact - Add a contact.
paFLdCoil - Add a coil.
paFLdJump - Add a jump instruction.
paFLdReturn - Add a <return> jump instruction.
paFLdBlock - Add a block.
paFLdHorzSegment - Add a horizontal segment line.

See an example.


paFLdDivergence

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> LD - file writing services -> paFLdDivergence

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdDivergence - starts a divergence

OK := paFLdDivergence (FID)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
OK : BOOL; | TRUE if successful.

Description

This function starts a OR divergence on the current rung. After calling this function, items can be added on the first (top) branch of the divergence. Parallel branches can be added by calling the paFLdNextBranch function. When complete, you need to call the paFLdConvergence function to terminate the divergence.

seealso See also

paFLdCommentLine - Add a comment line (network break).
paFLdStartRung - Start a new rung.
paFLdEndRung - Terminate the rung.
paFLdConvergence - Terminate an OR divergence on the current rung.
paFLdNextBranch - Add a parallel branch to the current divergence.

paFLdContact - Add a contact.
paFLdCoil - Add a coil.
paFLdJump - Add a jump instruction.
paFLdReturn - Add a <return> jump instruction.
paFLdBlock - Add a block.
paFLdHorzSegment - Add a horizontal segment line.

See an example.


paFLdConvergence

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> LD - file writing services -> paFLdConvergence

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdConvergence - terminates a divergence

OK := paFLdConvergence (FID)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
OK : BOOL; | TRUE rue if successful.

Description

This function terminates the current OR divergence. After calling this function, items can be added after the divergence on the parent rung.

seealso See also

paFLdCommentLine - Add a comment line (network break).
paFLdStartRung - Start a new rung.
paFLdEndRung - Terminate the rung.
paFLdDivergence - Start an OR divergence on the current rung.
paFLdNextBranch - Add a parallel branch to the current divergence.

paFLdContact - Add a contact.
paFLdCoil - Add a coil.
paFLdJump - Add a jump instruction.
paFLdReturn - Add a <return> jump instruction.
paFLdBlock - Add a block.
paFLdHorzSegment - Add a horizontal segment line.

See an example.


paFLdNextBranch

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> LD - file writing services -> paFLdNextBranch

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdNextBranch - add a branch to a divergence

OK := paFLdNextBranch (FID)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
OK : BOOL; | TRUE if successful.

Description

This function starts a new parallel branch in the current OR divergence. After calling this function, items can be added on the new branch.

seealso See also

paFLdCommentLine - Add a comment line (network break).
paFLdStartRung - Start a new rung.
paFLdEndRung - Terminate the rung.
paFLdDivergence - Start an OR divergence on the current rung.
paFLdConvergence - Terminate an OR divergence on the current rung.
paFLdContact - Add a contact.
paFLdCoil - Add a coil.
paFLdJump - Add a jump instruction.
paFLdReturn - Add a <return> jump instruction.
paFLdBlock - Add a block.
paFLdHorzSegment - Add a horizontal segment line.

See an example.


paFLdContact

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> LD - file writing services -> paFLdContact

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdContact - add a contact

OK := paFLdContact (FID, TYP, NAME)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
TYP : STRING; | Type of contact (see notes).
NAME : STRING; | Name of the variable attached to the contact.
OK : BOOL; | TRUE if successful.

Description

This function adds a contact on the current rung. The following values are available for the TYP parameter:

Value | Description
_LD_DIR | Normal contact.
_LD_INV | Negated contact.
_LD_P | Positive pulse contact.
_LD_N | Negative pulse contact.

seealso See also

paFLdCommentLine - Add a comment line (network break).
paFLdStartRung - Start a new rung.
paFLdEndRung - Terminate the rung.
paFLdDivergence - Start an OR divergence on the current rung.
paFLdConvergence - Terminate an OR divergence on the current rung.
paFLdNextBranch - Add a parallel branch to the current divergence.

paFLdCoil - Add a coil.
paFLdJump - Add a jump instruction.
paFLdReturn - Add a <return> jump instruction.
paFLdBlock - Add a block.
paFLdHorzSegment - Add a horizontal segment line.

See an example.


paFLdCoil

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> LD - file writing services -> paFLdCoil

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdCoil - add a coil

OK := paFLdCoil (FID, TYP, NAME)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
TYP : STRING; | Type of coil (see notes).
NAME : STRING; | Name of the variable attached to the coil.
OK : BOOL; | TRUE if successful.

Description

This function adds a coil on the current rung. The following values are available for the TYP parameter:

Value | Description
_LD_DIR | Normal coil.
_LD_INV | Negated coil.
_LD_P | Positive pulse coil.
_LD_N | Negative pulse coil.
_LD_SET | Set coil.
_LD_RESET | Reset coil.

seealso See also

paFLdCommentLine - Add a comment line (network break).
paFLdStartRung - Start a new rung.
paFLdEndRung - Terminate the rung.
paFLdDivergence - Start an OR divergence on the current rung.
paFLdConvergence - Terminate an OR divergence on the current rung.
paFLdNextBranch - Add a parallel branch to the current divergence.

paFLdContact - Add a contact.
paFLdJump - Add a jump instruction.
paFLdReturn - Add a <return> jump instruction.
paFLdBlock - Add a block.
paFLdHorzSegment - Add a horizontal segment line.

See an example.


paFLdJump

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> LD - file writing services -> paFLdJump

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdJump - add a jump symbol

OK := paFLdJump (FID, LABEL)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
LABEL : STRING; | Target label name.
OK : BOOL; | TRUE if successful.

Description

This function adds a jump instruction on the current rung.

seealso See also

paFLdCommentLine - Add a comment line (network break).
paFLdStartRung - Start a new rung.
paFLdEndRung - Terminate the rung.
paFLdDivergence - Start an OR divergence on the current rung.
paFLdConvergence - Terminate an OR divergence on the current rung.
paFLdNextBranch - Add a parallel branch to the current divergence.

paFLdContact - Add a contact.
paFLdCoil - Add a coil.
paFLdReturn - Add a <return> jump instruction.
paFLdBlock - Add a block.
paFLdHorzSegment - Add a horizontal segment line.

See an example.


paFLdReturn

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> LD - file writing services -> paFLdReturn

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdReturn - add a <return> jump symbol

OK := paFLdReturn (FID)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
OK : BOOL; | TRUE if successful.

Description

This function adds a <RETURN> jump instruction on the current rung.

seealso See also

paFLdCommentLine - Add a comment line (network break).
paFLdStartRung - Start a new rung.
paFLdEndRung - Terminate the rung.
paFLdDivergence - Start an OR divergence on the current rung.
paFLdConvergence - Terminate an OR divergence on the current rung.
paFLdNextBranch - Add a parallel branch to the current divergence.

paFLdContact - Add a contact.
paFLdCoil - Add a coil.
paFLdJump - Add a jump instruction.
paFLdBlock - Add a block.
paFLdHorzSegment - Add a horizontal segment line.

See an example.


paFLdBlock

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> LD - file writing services -> paFLdBlock

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdBlock - add a block

OK := paFLdBlock (FID, NAME, INSTANCE, INPUTS, OUTPUTS)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
NAME : STRING; | Type of block.
INSTANCE : STRING; | Name of the instance in case of a function block.
INPUTS : STRING; | List of input values (see notes).
OUTPUTS : STRING; | List of output values (see notes).
OK : BOOL; | TRUE if successful.

Description

This function adds a block on the current rung. In case of a function block, you must specify the name of the instance. Blocks are connected to the rung by their first input and output. Name of additional inputs and outputs are passed in strings separated by comas. Below is the example of an "addition" block with 2 additional inputs calle 'i1' and 'i2'and 1 additional output calle 'q':

Example Example

paFLdStartRung (f, '');
paFldBlock (f, '+', '', 'i1,i2', 'q');
paFldCoil (f, _LD_DIR, '');

paFLdEndRung (f);

seealso See also

paFLdCommentLine - Add a comment line (network break).
paFLdStartRung - Start a new rung.
paFLdEndRung - Terminate the rung.
paFLdDivergence - Start an OR divergence on the current rung.
paFLdConvergence - Terminate an OR divergence on the current rung.
paFLdNextBranch - Add a parallel branch to the current divergence.

paFLdContact - Add a contact.
paFLdCoil - Add a coil.
paFLdJump - Add a jump instruction.
paFLdReturn - Add a <return> jump instruction.
paFLdHorzSegment - Add a horizontal segment line.

See an example.


paFLdHorzSegment

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> LD - file writing services -> paFLdHorzSegment

Previous chapter Next chapter Show all Show all Hide all Hide all

paFLdHorzSegment - add a horizontal segment

OK := paFLdHorzSegment (FID)

Parameter | Description
FID : DINT; | File identifier answered by paFileOpenWriteSrc.
OK : BOOL; | TRUE if successful.

Description

This function adds a horizontal line segment on the current rung. This can be used for aligning items vertically in the diagram.

seealso See also

paFLdCommentLine - Add a comment line (network break).
paFLdStartRung - Start a new rung.
paFLdEndRung - Terminate the rung.
paFLdDivergence - Start an OR divergence on the current rung.
paFLdConvergence - Terminate an OR divergence on the current rung.
paFLdNextBranch - Add a parallel branch to the current divergence.

paFLdContact - Add a contact.
paFLdCoil - Add a coil.
paFLdJump - Add a jump instruction.
paFLdReturn - Add a <return> jump instruction.
paFLdBlock - Add a block.
See an example.


Example

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> LD - file writing services -> Example

Previous chapter Next chapter Show all Show all Hide all Hide all

Below is an example of script that generates a LD file in the target project:

// make LD code
f := paFileOpenWriteProgramSrc ('ProgLD');
if f <> 0 then
// comment line
paFLdCommentLine (f, 'Generated by script');
// a simple rung finishing with a jump
paFLdStartRung (f, '');
paFldContact (f, _LD_DIR, 'Cond');
paFldJump (f, 'TheEnd');
paFLdEndRung (f);
// a rung with contacts and coils
paFLdStartRung (f, '');
paFldContact (f, _LD_DIR, 'V1');
paFLdDivergence (f);
paFldContact (f, _LD_DIR, 'V2');
paFLdNextBranch (f);
paFldContact (f, _LD_DIR, 'V3');
paFLdConvergence (f);
paFldCoil (f, _LD_INV, 'V');
paFLdEndRung (f);
// a rung with blocks
paFLdStartRung (f, '');
paFldBlock (f, '+', '', 'i1,i2', 'q');
paFldBlock (f, 'Blink', 'Blinker', 't#1s', '');
paFldCoil (f, _LD_DIR, '');
paFLdEndRung (f);
// a rung with a label and a RETURN instruction
paFLdStartRung (f, 'TheEnd');
paFldReturn (f);
paFLdEndRung (f);
// close the file
paFileClose (f);
end_if;

Here is the LD program generated by the script:


SFC - file writing services

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> SFC - file writing services

Previous chapter Next chapter Show all Show all Hide all Hide all

The functions below enable you to write sequentially (from the top to the bottom) the source code of a program written in SFC language. The program is written sequentially, from the top to the bottom and branch per branch. Files are open using the paFileOpenWriteSrc function. When complete, they must be closed by calling the paFileClose function.

Use the following functions for inserting SFC items in the chart:

paSfcIStep - Add an initial step.
paSfcStep - Add a step.
paSfcTrans - Add a transition.
paSfcJump - Add a jump to a step.
paSfcDiv - Start a divergence on the current branch.
paSfcBranch - Start a new branch under the current divergence.
paSfcConv - Finish the current divergence.
paSfcAddLv2String - Add a text string to the level 2 program.
paSfcAddLv2Line - Add a text line to the level 2 program.
paSfcAddLv2Eol - Add end of line characters to the level 2 program.

See an example.

info Info

Macro-steps are not supported.

Noch in diesem Kapitel

paSfcIStep

paSfcStep

paSfcTrans

paSfcJump

paSfcDiv

paSfcBranch

paSfcConv

paSfcAddLv2String

paSfcAddLv2Line

paSfcAddLv2Eol

Example


paSfcIStep

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> SFC - file writing services -> paSfcIStep

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcIStep - Fügt einen Initialstep hinzu

OK := paSfcIStep (FID, REF)

Parameter | Beschreibung
FID : DINT; | Dateierkennung gibt paFileOpenWriteSrc zurück.
REF : DINT; | Referenznummer des Steps.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion fügt einen Initialstep am Ende des aktuellen Zweiges hinzu.

seealso See also

paSfcIStep - Hinzufügen eines Step.
.paSfcTrans - Hinzufügen eines Übergangs (Transition).
paSfcJump - Hinzufügen eines Sprungs zu einem Step.
paSfcDiv - Beginnen einer Abweichung des gegenwärtigen Zweiges.
paSfcBranch - Beginnen eines neuen Zweiges unter der gegenwärtigen Abweichung.
paSfcConv - Beenden der gegenwärtigen Abweichung.
paSfcAddLv2String - Hinzufügen einer Textfolge zum Level 2-Programm.
paSfcAddLv2Eol - Hinzufügen von Zeilenende-Zeichen zum Level 2-Programm.

Siehe Beispiel.


paSfcStep

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> SFC - file writing services -> paSfcStep

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcStep - fügt einen Step hinzu

OK := paSfcStep (FID, REF)

Parameter | Beschreibung
FID : DINT; | Dateierkennung gibt paFileOpenWriteSrc zurück.
REF : DINT; | Referenznummer des Steps.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion fügt einen Step am Ende des aktuellen Zweiges hinzu.

seealso See also

paSfcIStep - Hinzufügen eines Initialstep.
.paSfcTrans - Hinzufügen eines Übergangs (Transition).
paSfcJump - Hinzufügen eines Sprungs zu einem Step.
paSfcDiv - Beginnen einer Abweichung des gegenwärtigen Zweiges.
paSfcBranch - Beginnen eines neuen Zweiges unter der gegenwärtigen Abweichung.
paSfcConv - Beenden der gegenwärtigen Abweichung.
paSfcAddLv2String - Hinzufügen einer Textfolge zum Level 2-Programm.
paSfcAddLv2Line - Hinzufügen einer Textzeile zum Level 2-Programm.
paSfcAddLv2Eol - Hinzufügen von Zeilenende-Zeichen zum Level 2-Programm.

Siehe Beispiel.


paSfcTrans

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> SFC - file writing services -> paSfcTrans

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcTrans - fügt einen Übergang (eine Transition) hinzu

OK := paSfcTrans (FID, REF)

Parameter | Beschreibung
FID : DINT; | Dateierkennung gibt paFileOpenWriteSrc zurück.
REF : DINT; | Referenznummer des Übergangs (der Transition).
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion fügt einen Übergang (Transition) am Ende des gegenwärtigen Zweiges an.

seealso See also

paSfcIStep - Hinzufügen eines Initialstep.
.paSfcStep - Hinzufügen eines Step.
paSfcJump - Hinzufügen eines Sprungs zu einem Step.
paSfcDiv - Beginnen einer Abweichung des gegenwärtigen Zweiges.
paSfcBranch - Beginnen eines neuen Zweiges unter der gegenwärtigen Abweichung.
paSfcConv - Beenden der gegenwärtigen Abweichung.
paSfcAddLv2String - Hinzufügen einer Textfolge zum Level 2-Programm.
paSfcAddLv2Line - Hinzufügen einer Textzeile zum Level 2-Programm.
paSfcAddLv2Eol - Hinzufügen von Zeilenende-Zeichen zum Level 2-Programm.

Siehe Beispiel.


paSfcJump

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> SFC - file writing services -> paSfcJump

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcJump - fügt dem Step ein Jump hinzu

OK := paSfcJump (FID, REF)

Parameter | Beschreibung
FID : DINT; | Dateierkennung gibt paFileOpenWriteSrc zurück.
REF : DINT; | Referenznummer des Ziel-Steps.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion fügt einen Sprung zum Ende des Aktuellen Zweiges hinzu.

seealso See also

paSfcIStep - Hinzufügen eines Initialstep.
paSfcIStep - Hinzufügen eines Step.
.paSfcTrans - Hinzufügen eines Übergangs (Transition).
paSfcDiv - Beginnen einer Abweichung des gegenwärtigen Zweiges.
paSfcBranch - Beginnen eines neuen Zweiges unter der gegenwärtigen Abweichung.
paSfcConv - Beenden der gegenwärtigen Abweichung.
paSfcAddLv2String - Hinzufügen einer Textfolge zum Level 2-Programm.
paSfcAddLv2Line - Hinzufügen einer Textzeile zum Level 2-Programm.
paSfcAddLv2Eol - Hinzufügen von Zeilenende-Zeichen zum Level 2-Programm.

Siehe Beispiel.


paSfcDiv

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> SFC - file writing services -> paSfcDiv

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcDiv - Start der Abweichung

OK := paSfcDiv (FID)

Parameter | Beschreibung
FID : DINT; | Dateierkennung gibt paFileOpenWriteSrc zurück.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion beginnt eine Abweichung am Ende des gegenwärtigen Zweiges. Der erste Zweig (auf der linken Seite) wird dadurch automatisch gestartet, so dass dort Einträge gemacht werden können. Die Abweichung muss durch eine Konvergenz beendet werden, auch wenn ihre Zweige durch ein Sprungsymbol enden (und dadurch eigentlich nicht konvergieren). Abweichungen können verschachtelt werden.

seealso See also

paSfcIStep - Hinzufügen eines ersten Step.
paSfcStep - Hinzufügen eines Step.paSfcTrans - Hinzufügen eines Übergangs (Transition).
paSfcJump - Hinzufügen eines Sprungs zu einem Step.
paSfcBranch - Beginnen eines neuen Zweiges unter der gegenwärtigen Abweichung.
paSfcConv - Beenden der gegenwärtigen Abweichung.
paSfcAddLv2String - Hinzufügen einer Textfolge zum Level 2-Programm.
paSfcAddLv2Line - Hinzufügen einer Textzeile zum Level 2-Programm.
paSfcAddLv2Eol - Hinzufügen von Zeilenende-Zeichen zum Level 2-Programm.

Siehe Beispiel.


paSfcBranch

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> SFC - file writing services -> paSfcBranch

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcBranch - Fügt zur letzten geöffneten Abweichung einen Zweig hinzu.

OK := paSfcBranch (FID)

Parameter | Beschreibung
FID : DINT; | Dateierkennung gibt paFileOpenWriteSrc zurück.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion fügt einen neuen Zweig rechts von der Abweichung, die durch den letzten Aufruf erstellt wurde, an paSfcDiv() Diese Funktion muss nicht für den ersten Zweig (links) aufgerufen werden, da sie automatisch gestartet wird, wenn die Abweichung erstellt wird.

seealso See also

paSfcIStep - Hinzufügen eines ersten Step.
paSfcStep - Hinzufügen eines Step.paSfcTrans - Hinzufügen eines Übergangs (Transition).
paSfcJump - Hinzufügen eines Sprungs zu einem Step.
paSfcDiv - Beginnen einer Abweichung des gegenwärtigen Zweiges.
paSfcConv - Beenden der gegenwärtigen Abweichung.
paSfcAddLv2String - Hinzufügen einer Textfolge zum Level 2-Programm.
paSfcAddLv2Line - Hinzufügen einer Textzeile zum Level 2-Programm.
paSfcAddLv2Eol - Hinzufügen von Zeilenende-Zeichen zum Level 2-Programm.

Siehe Beispiel.


paSfcConv

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> SFC - file writing services -> paSfcConv

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcConv - Beendet die Abweichung

OK := paSfcConv (FID)

Parameter | Beschreibung
FID : DINT; | Dateierkennung gibt paFileOpenWriteSrc zurück.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion beendet die Abweichung, die durch den letzten Aufruf an paSfcDiv() erstellt wurde. Die Abweichung muss durch eine Konvergenz beendet wreden, auch wenn ihre Zweige durch ein Sprungsymbol enden (und dadurch eigentlich nicht konvergieren). Abweichungen können verschachtelt werden.

seealso See also

paSfcIStep - Hinzufügen eines ersten Step.
paSfcStep - Hinzufügen eines Step.paSfcTrans - Hinzufügen eines Übergangs (Transition).
paSfcJump - Hinzufügen eines Sprungs zu einem Step.
paSfcDiv - Beginnen einer Abweichung des gegenwärtigen Zweiges.
paSfcBranch - Beginnen eines neuen Zweiges unter der gegenwärtigen Abweichung.
paSfcAddLv2String - Hinzufügen einer Textfolge zum Level 2-Programm.
paSfcAddLv2Eol - Hinzufügen von Zeilenende-Zeichen zum Level 2-Programm.

Siehe Beispiel.


paSfcAddLv2String

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> SFC - file writing services -> paSfcAddLv2String

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcAddLv2String - fügt einer Level 2 Programmierung einen Textstring hinzu

OK := paSfcAddLv2String (FID, KIND, TEXT)

Parameter | Beschreibung
FID : DINT; | Dateierkennung gibt paFileOpenWriteSrc zurück.
KIND : STRING; | Eine Art der Level 2 Information - siehe Anmerkungen.
TEXT : STRING; | Text, welcher angefügt wird.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion hängt einen String an die Level 2-Programmierung des letzten erstellten Step oder Übergangs (Transition) an. Sie muss unmittelbar nach Erstellung des Steps oder des Übergangs (Transition) aufgerufen werden. Das KIND Argument legt fest, welche Inhalte der Level 2 Information geschrieben werden müssen. Folgende Werte sind vordefiniert:

Wert | Beschreibung
_LV2_NOTE | Beschreibungstext.
_LV2_COND | Bedingung (für Übergang/Transition).
_LV2_ACTION | Default-Aktionen eines Steps.
_LV2_P1 | P1 Aktionen eines Steps.
_LV2_N | N Aktionen eines Steps.
_LV2_P0 | P0 Aktionen eines Steps.

Erstellung eines Level 2 Programmes in LD oder FBD wird nicht unterstützt!

seealso See also

paSfcIStep - Hinzufügen eines Initialstep.
paSfcStep - Hinzufügen eines Step.paSfcTrans - Hinzufügen eines Übergangs (Transition).
paSfcJump - Hinzufügen eines Sprungs zu einem Step.
paSfcDiv - Beginnen einer Abweichung des gegenwärtigen Zweiges.
paSfcBranch - Beginnen eines neuen Zweiges unter der gegenwärtigen Abweichung.
paSfcConv - Beenden der gegenwärtigen Abweichung.
paSfcAddLv2Line - Hinzufügen einer Textzeile zum Level 2-Programm.
paSfcAddLv2Eol - Hinzufügen von Zeilenende-Zeichen zum Level 2-Programm.

Siehe Beispiel.


paSfcAddLv2Line

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> SFC - file writing services -> paSfcAddLv2Line

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcAddLv2Line - fügt eine Textzeile zur Level2-Programmierung hinzu.

OK := paSfcAddLv2Line (FID, KIND, TEXT)

Parameter | Beschreibung
FID : DINT; | Dateierkennung gibt paFileOpenWriteSrc zurück.
KIND : STRING; | Eine Art der Level 2 Information - siehe Anmerkungen.
TEXT : STRING; | Text, welcher angefügt wird.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion fügt einen String und Zeilenenden-Zeichen ('$R$N') zur Level 2-Programmierung des letzten erstellten Steps oder Übergangs (Transition) an. Sie muss unmittelbar nach Erstellung des Steps oder des Übergangs (Transition) aufgerufen werden. Das KIND Argument legt fest, welche Inhalte der Level 2 Information geschrieben werden müssen. Folgende Werte sind vordefiniert:

Wert | Beschreibung
_LV2_NOTE | Beschreibungstext.
_LV2_COND | Bedingung (für Übergang/Transition).
_LV2_ACTION | Default-Aktionen eines Steps.
_LV2_P1 | P1 Aktionen eines Steps.
_LV2_N | N Aktionen eines Steps.
_LV2_P0 | P0 Aktionen eines Steps.

Erstellung eines Level 2 Programmes in LD oder FBD wird nicht unterstützt!

seealso See also

paSfcIStep - Hinzufügen eines ersten Step.
paSfcStep - Hinzufügen eines Step.paSfcTrans - Hinzufügen eines Übergangs (Transition).
paSfcJump - Hinzufügen eines Sprungs zu einem Step.
paSfcDiv - Beginnen einer Abweichung des gegenwärtigen Zweiges.
paSfcBranch - Beginnen eines neuen Zweiges unter der gegenwärtigen Abweichung.
paSfcConv - Beenden der gegenwärtigen Abweichung.
paSfcAddLv2String - Hinzufügen einer Textfolge zum Level 2-Programm.
paSfcAddLv2Eol - Hinzufügen von Zeilenende-Zeichen zum Level 2-Programm.

Siehe Beispiel.


paSfcAddLv2Eol

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> SFC - file writing services -> paSfcAddLv2Eol

Previous chapter Next chapter Show all Show all Hide all Hide all

paSfcAddLv2Eol - Fügt Zeilenende-Zeichen bei Level2-Programmierung ein.

OK := paSfcAddLv2Eol (FID, KIND)

Parameter | Beschreibung
FID : DINT; | Dateierkennung gibt paFileOpenWriteSrc zurück.
KIND : STRING; | Eine Art der Level 2 Information - siehe Anmerkungen.
OK : BOOL; | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion fügt Zeilenenden-Zeichen ('$R$N') zur Level 2-Programmierung des letzten erstellten Steps oder Übergangs (Transition) an. Sie muss unmittelbar nach Erstellung des Steps oder des Übergangs (Transition) aufgerufen werden. Das KIND Argument legt fest, welche Inhalte der Level 2 Information geschrieben werden müssen. Folgende Werte sind vordefiniert:

Parameter | Beschreibung
_LV2_NOTE | Beschreibungstext.
_LV2_COND | Bedingung (für Übergang/Transition).
_LV2_ACTION | Default-Aktionen eines Steps.
_LV2_P1 | P1 Aktionen eines Steps.
_LV2_N | N Aktionen eines Steps.
_LV2_P0 | P0 Aktionen eines Steps.

Erstellung eines Level 2 Programmes in LD oder FBD wird nicht unterstützt!

seealso See also

paSfcIStep - Hinzufügen eines Initialstep.
paSfcStep - Hinzufügen eines Step.
paSfcTrans - Hinzufügen eines Übergangs (Transition).
paSfcJump - Hinzufügen eines Sprungs zu einem Step.
paSfcDiv - Beginnen einer Abweichung des gegenwärtigen Zweiges.
paSfcBranch - Beginnen eines neuen Zweiges unter der gegenwärtigen Abweichung.
paSfcConv - Beenden der gegenwärtigen Abweichung.
paSfcAddLv2String - Hinzufügen einer Textfolge zum Level 2-Programm.
paSfcAddLv2Line - Hinzufügen einer Textzeile zum Level 2-Programm.

Siehe Beispiel.


Example

Project Automation Library -> Reference -> Generating documents -> IEC Source code file writing services -> SFC - file writing services -> Example

Previous chapter Next chapter Show all Show all Hide all Hide all

Below is an example of script that generates a SFC file in the target project:

// make LD code
f := paFileOpenWriteProgramSrc ('ProgSFC');
if f <> 0 then

// initial step
paSfcIStep (f, 1);
paSfcAddLv2String (f, _LV2_NOTE, 'Thats S1');
paSfcAddLv2Line (f, _LV2_ACTION, 'VarXX (N);');

// an 'OR' divergence
paSfcDiv (f);

paSfcTrans (f, 1);
paSfcAddLv2String (f, _LV2_NOTE, 'Thats T1');
paSfcAddLv2Line (f, _LV2_COND, 'condition');

// second branch
paSfcBranch (f);

paSfcTrans (f, 101);
paSfcStep (f, 101);
paSfcTrans (f, 102);

// converge
paSfcCnv (f);

// jump to the initial step
paSfcJump (f, 1);

// close the file
paFileClose (f);
end_if;

Here is the SFC program generated by the script:


Networking and fieldbuses - file writing services

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services

Previous chapter Next chapter Show all Show all Hide all Hide all

Below are the main services for writing configuration files for networking or fieldbus I/O drivers. Files are open using specific functions. When complete, they must be closed by calling the paFileClose function.

  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.

Noch in diesem Kapitel

paFileOpenWriteModbus

paFModbusSlave

paFModbusMaster

paFModbusRequestSlave

paFModbusRequestMaster

paFModbusVariable

paFileOpenWriteASi

paFAsiApplyConfig

paFAsiMaster

paFAsiMasterDiag

paFAsiSlave

paFAsiSlaveDiag

paFAsiInput

paFAsiOutput

paFileOpenWriteFieldbus

paFfbCreateMaster

paFfbCreateSlave

paFfbCreateVar

paFfbSetProperty

paFfbSelectRoot

paFfbSelectMaster

paFfbSelectSlave

paFfbSelectVar

paFileOpenWriteBinding

paFbindPublicVar

paFbindExternPort

paFbindCnxStatus

paFbindExternVar

paFbindVarStatus

paFbindVarDateStamp

paFbindVarTimeStamp


paFileOpenWriteModbus

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFileOpenWriteModbus

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteModbus - Open the MODBUS configuration for writing

FID := paFileOpenWriteModbus ()

Parameter | Description
FID : DINT; | File identifier or 0 if fail.

Description

This function opens the MODBUS configuration file for writing. This functions removes the contents of the configuration if it already exist. When written, the file must be closed by calling the paFileClose function.

seealso See also
  • Functions for MODBUS configuration:

paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFModbusSlave

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFModbusSlave

Previous chapter Next chapter Show all Show all Hide all Hide all

paFModbusSlave - Set the MODBUS slave configuration

OK := paFModbusSlave (FID, SLAVENO)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteModbus function.
SLAVENO : DINT; | Default slave number for the MODBUS Slave server.
OK : BOOL; | TRUE if successful.

Description

This function defines the slave number used for the MODBUS slave server.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFModbusMaster

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFModbusMaster

Previous chapter Next chapter Show all Show all Hide all Hide all

paFModbusMaster - Add a MODBUS master port

OK := paFModbusMaster (FID, OPENMODBUS, ADDRESS, PORT, RECONNECT)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteModbus function.
OPENMODBUS : BOOL; | TRUE = Open Modbus protocol / FALSE = RTU protocol.
ADDRESS : STRING; | Configuration of the port or IP address.
PORT : DINT; | IP port number in case of MODBUS on ETHERNET.
RECONNECT : BOOL; | Option: tries to reconnect after error.
OK : BOOL; | TRUE if successful.

Description

This function adds a new MODBUS master connection to the configuration.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFModbusRequestSlave

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFModbusRequestSlave

Previous chapter Next chapter Show all Show all Hide all Hide all

paFModbusRequestSlave - Add a MODBUS slave request

OK := paFModbusRequestSlave (FID, REQUEST, ADDRESS, NBITEM, NAME)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteModbus function.
REQUEST : STRING; | Type of request (see notes).
ADDRESS : DINT; | Base MODBUS address.
NBITEM : DINT; | Number of items (bits or words).
NAME : STRING; | Optionnal description text.
OK : BOOL; | TRUE if successful.

Description

This function adds a new MODBUS slave request. You can define variables of the request just after calling this function.

attention Attention

This function does not take care of address offsets defined by MODBUS. The first available address is always 0.

The following values are possible for the REQUEST parameter:

Value | Description
_MB_I_REG | Input registers.
_MB_H_REG | Holding registers.
_MB_I_BIT | Input bits.
_MB_C_BIT | Coil bits.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFModbusRequestMaster

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFModbusRequestMaster

Previous chapter Next chapter Show all Show all Hide all Hide all

paFModbusRequestMaster - Add a MODBUS master request

OK := paFModbusRequestMaster (FID, MODE, REQUEST, SLAVENO, ADDRESS, NBITEM, PERIOD, TIMEOUT, TRIALS, NAME)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteModbus function.
MODE : STRING; | Activation mode (see notes).
REQUEST : STRING; | Type of request (see notes).
SLAVENO : DINT; | Slave number of the device.
ADDRESS : DINT; | Base MODBUS address.
NBITEM : DINT; | Number of items (bits or words).
PERIOD : TIME; | Activation period (for periodic requests).
TIMEOUT : TIME; | Exchange timeout.
TRIALS : DINT; | Number of successive trials.
NAME : STRING; | Optionnal description text.
OK : BOOL; | TRUE if successful.

Description

This function adds a new MODBUS master request. You can define variables of the request just after calling this function.

attention Attention

This function does not take care of address offsets defined by MODBUS. The first available address is always 0.

The following values are possible for the MODE parameter:

Value | Description
_MB_PERIODIC | Request activated periodically.
_MB_ONCALL | Request activated by a variable.
_MB_ONCHANGE | Request activated on a change of data (for "write" requests).

The following values are possible for the REQUEST parameter:

Value | Description
_MB_READ_I_REG | Read Input registers.
_MB_READ_H_REG | Read Holding registers.
_MB_WRITE_H_REG | Write Holding registers.
_MB_READ_I_BIT | Read Input bits.
_MB_READ_C_BIT | Read Coil bits.
_MB_WRITE_C_BIT | Write Coil bits.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFModbusVariable

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFModbusVariable

Previous chapter Next chapter Show all Show all Hide all Hide all

paFModbusVariable - Add a MODBUS variable

OK := paFModbusVariable (FID, MODE, OFFSET, MASK, TWOWORDS, SYMBOL)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteModbus function.
MODE : STRING; | Exchange mode (see notes).
OFFSET : DINT; | Offset in the request.
MASK : DINT; | Mask for data exchange.
TWOWORDS : BOOL; | TRUE if data stored on 2 consecutive words.
SYMBOL : STRING; | Symbol of the variable.
OK : BOOL; | TRUE if successful.

Description

This function connects a variable to the request defined by the last call to paFileModbusRequestSlave or paFileModbusRequestMaster functions.

The following values are possible for the MODE parameter:

Value | Description
_MB_DATA | Data exchange.
_MB_STATUS | The variable receives the connection status.
_MB_COMMAND | The variable is used for activating the request.
_MB_TRIAL | The variable receives the current trial number.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFileOpenWriteASi

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFileOpenWriteASi

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteASi - Open the AS-i configuration for writing

FID := paFileOpenWriteASi ()

Parameter | Description
FID : DINT; | File identifier or 0 if fail.

Description

This function opens the AS-i configuration file for writing. This functions removes the contents of the configuration if it already exist. When written, the file must be closed by calling the paFileClose function.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFAsiApplyConfig

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFAsiApplyConfig

Previous chapter Next chapter Show all Show all Hide all Hide all

paFAsiApplyConfig - Set AS-i configuration main flags

OK := paFAsiApplyConfig (FID, APPLY)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteASi function.
APPLY : BOOL; | If TRUE, the AS-i configuration is applied when the runtime stats.
OK : BOOL; | TRUE if successful.

Description

This function sets the main AS-i configuration flags for applying the AS-i configuration at runtime.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFAsiMaster

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFAsiMaster

Previous chapter Next chapter Show all Show all Hide all Hide all

paFAsiMaster - Add an AS-i master

OK := paFAsiMaster (FID, NAME, SETTINGS)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteASi function.
NAME : STRING; | Description text.
SETTINGS : STRING; | AS-i controiller configuration string.
OK : BOOL; | TRUE if successful.

Description

This function adds a master device to the AS-i configuration. AS-i slaves and diagnostic variables for this master must be added just after calling this function.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFAsiMasterDiag

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFAsiMasterDiag

Previous chapter Next chapter Show all Show all Hide all Hide all

paFAsiMasterDiag - Add an AS-i master diagnostic variable

OK := paFAsiMasterDiag (FID, NAME, DIAG)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteASi function.
NAME : STRING; | Symbol of the variable.
DIAG : DINT; | Wished diagnostic information.
OK : BOOL; | TRUE if successful.

Description

This function adds a diagnostic variable to the last declared AS-i master.

The possible values are available for the DIAG parameter:

Value | Description
_ASI_M_CONFOK | Configuration OK.
_ASI_M_SLV0 | Slave detected at address 0.
_ASI_M_AUTOACT | Auto-addressing is active.
_ASI_M_AUTOAV | Auto-addressing is available.
_ASI_M_CNFACT | Configuration is active.
_ASI_M_NORMAL | Normal mode.
_ASI_M_PWFAIL | Power fail detected.
_ASI_M_OFFLINE | Off Line mode.
_ASI_M_PERIPHOK | Periphery OK.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFAsiSlave

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFAsiSlave

Previous chapter Next chapter Show all Show all Hide all Hide all

paFAsiSlave - Add an AS-i slave

OK := paFAsiSlave (FID, NAME, ADDRESS, PROFILE)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteASi function.
NAME : STRING; | Description text.
ADDRESS : DINT; | AS-i slave address.
PROFILE : STRING; | Slave profile written in AS-i convention: 'H.H.H.H' (hexadecimal digits).
OK : BOOL; | TRUE if successful.

Description

This function adds a slave device under the last declared AS-i master. AS-i variables for this master must be added for this slave just after calling this function.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFAsiSlaveDiag

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFAsiSlaveDiag

Previous chapter Next chapter Show all Show all Hide all Hide all

paFAsiSlaveDiag - Add an AS-i slave diagnostic variable

OK := paFAsiSlaveDiag (FID, NAME, DIAG)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteASi function.
NAME : STRING; | Symbol of the variable.
DIAG : DINT; | Wished diagnostic information.
OK : BOOL; | TRUE if successful.

Description

This function adds a diagnostic variable to the last declared AS-i slave.

The possible values are available for the DIAG parameter:

Value | Description
_ASI_S_ACT | Slave active.
_ASI_S_DET | Slave detected.
_ASI_S_PRJ | Slave projected.
_ASI_S_COR | Slave corrupted.
_ASI_S_FLT | Periphery fault.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFAsiInput

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFAsiInput

Previous chapter Next chapter Show all Show all Hide all Hide all

paFAsiInput - Add an AS-i input variable

OK := paFAsiInput (FID, NAME, OFFSET)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteASi function.
NAME : STRING; | Symbol of the variable.
OFFSET : DINT; | Input number (1 to 4) or 0 for all inputs in a byte.
OK : BOOL; | TRUE if successful.

Description

This function adds an input variable to the last declared AS-i slave.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFAsiOutput

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFAsiOutput

Previous chapter Next chapter Show all Show all Hide all Hide all

paFAsiOutput - Add an AS-i output variable

OK := paFAsiOutput (FID, NAME, OFFSET)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteASi function.
NAME : STRING; | Symbol of the variable.
OFFSET : DINT; | Output number (1 to 4) or 0 for all inputs in a byte.
OK : BOOL; | TRUE if successful.

Description

This function adds an output variable to the last declared AS-i slave.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFileOpenWriteFieldbus

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFileOpenWriteFieldbus

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteFieldbus - Open the AS-i configuration for writing

FID := paFileOpenWriteFieldbus (CONFIG)

Parameter | Description
CONFIG : STRING | Type of fieldbus - see notes.
FID : DINT; | File identifier or 0 if fail.

Description

This function opens the selected fieldbus configuration file for writing. This functions removes the contents of the configuration if it already exist. When written, the file must be closed by calling the paFileClose function.

The CONFIG string is the prefix of the wizard DLL used for configuration. Available DLLs are stored in the \IOD folder where the Workbench is installed. You can also get the list of available configurations from the Prompt tab in the output window. For that, enter the following ?FB command.

Example Example

>?FB
Fieldbus configuration wizards:
K5BusAppIO: ApplicomIO configuration
K5BusCAN: CAN bus
K5BusHMS: Anybus configuration
K5BusINTERBUS: Interbus-S
K5BusIOTools: Brodersen IOTOOLS
K5BusProfDP: Hilscher CIF Profibus
K5BusProfNetIO: PROFINET IO
K5BusShm: Win32 Shared memory
K5BusSoftNet: SoftNet ProfibusDP
K5BusSycon: Hilscher SYCON configuration
K5BusXFLOW: XFlow
K5ThinkIO: ThinkIO/IOSystem 758
K5ZenOnRT: Run

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFfbCreateMaster

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFfbCreateMaster

Previous chapter Next chapter Show all Show all Hide all Hide all

paFfbCreateMaster - Add a master node

OK := paFfbCreateMaster (FID)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteFieldbus function.
OK : BOOL; | TRUE if successful.

Description

This function adds a master node to the configuration.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFfbCreateSlave

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFfbCreateSlave

Previous chapter Next chapter Show all Show all Hide all Hide all

paFfbCreateSlave - Add a slave node

OK := paFfbCreateSlave (FID)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteFieldbus function.
OK : BOOL; | TRUE if successful.

Description

This function adds a slave node to the configuration. The node is added under the last created or selected "master" node.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFfbCreateVar

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFfbCreateVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paFfbCreateVar - Add a variable node

OK := paFfbCreateVar (FID)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteFieldbus function.
OK : BOOL; | TRUE if successful.

Description

This function adds a variable node to the configuration. The node is added under the last created or selected slave node.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFfbSetProperty

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFfbSetProperty

Previous chapter Next chapter Show all Show all Hide all Hide all

paFfbSetProperty - Set the value of a property

OK := paFfbSetProperty (FID, PROP, VALUE)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteFieldbus function.
PROP : STRING | Internal name of the property - see notes.
VALUE : STRING | Value of the propery in neutral format - see notes.
OK : BOOL; | TRUE if successful.

Description

This function adds a variable node to the configuration. The node is added under the last created or selected slave node.

The name of the property must be entered in "neutral" form, independently from the language selected for the Workbench. Also, for a check box or a drop-list property, you need to enter the value in neutral form, and not as displayed in the fieldbus configuration tool. To know the relationship in between neutral and displayed names and values, go to the Prompt tab in the output window and hit the ?FB Command followed by the name of the configuration. This command lists all properties for each level of the selected configuration tree, giving neutral names and readable names, and lists all possible neutral values for boolean and enumerated properties. Example of syntax:

Example Example

>?FB K5BusCan

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFfbSelectRoot

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFfbSelectRoot

Previous chapter Next chapter Show all Show all Hide all Hide all

paFfbSelectRoot - Selects the root node

OK := paFfbSelectRoot (FID)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteFieldbus function.
OK : BOOL; | TRUE if successful.

Description

This function selects the root node of the configuration tree. The root node is automatically selected when the file is open. Selecting a node is required for setting its properties or adding child nodes. It is not work to select a node immediately after its creation.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFfbSelectMaster

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFfbSelectMaster

Previous chapter Next chapter Show all Show all Hide all Hide all

paFfbSelectMaster - Selects a master node

OK := paFfbSelectMaster (FID, MASTER)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteFieldbus function.
MASTER : DINT | 1-based index in the list of master nodes.
OK : BOOL; | TRUE if successful.

Description

This function selects a master in the configuration tree. Selecting a node is required for setting its properties or adding child nodes. It is not work to select a node immediately after its creation.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFfbSelectSlave

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFfbSelectSlave

Previous chapter Next chapter Show all Show all Hide all Hide all

paFfbSelectSlave - Selects a slave node

OK := paFfbSelectSlave (FID, MASTER, SLAVE)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteFieldbus function.
MASTER : DINT | 1-based index of the parent master node.
SLAVE : DINT | 1-based index in the list of slave nodes for the selected parent master.
OK : BOOL; | TRUE if successful.

Description

This function selects a slave in the configuration tree. Selecting a node is required for setting its properties or adding child nodes. It is not work to select a node immediately after its creation.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFfbSelectVar

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFfbSelectVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paFfbSelectVar - Selects a Variable node

OK := paFfbSelectVar (FID, MASTER, SLAVE, VARIABLE)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteFieldbus function.
MASTER : DINT | 1-based index of the parent master node.
SLAVE : DINT | 1-based index of the parent slave node.
VARIABLE : DINT | 1-based index in the list of variable nodes for the selected parent slave.
OK : BOOL; | TRUE if successful.

Description

This function selects a variable in the configuration tree. Selecting a node is required for setting its properties or adding child nodes. It is not work to select a node immediately after its creation.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFileOpenWriteBinding

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFileOpenWriteBinding

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteBinding - Open the binding configuration for writing

FID := paFileOpenWriteBinding ()

Parameter | Description
FID : DINT; | File identifier or 0 if fail.

Description

This function opens the binding configuration file for writing. This functions removes the contents of the configuration if it already exist. When written, the file must be closed by calling the paFileClose function.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFbindPublicVar

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFbindPublicVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbindPublicVar - add a published variable to the binding configuration

FID := paFbindPubilcVar (FID, ID, NAME, HYSTP, HYSTN)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteBinding function.
ID : DINT; | ID of the binding link.
NAME : STRING; | Symbol of the variable.
HYSTP : STRING; | Positive hysteresis in IEC syntax (or empty string).
HYSTN : STRING; | Negative hysteresis in IEC syntax (or empty string).
OK : BOOL; | TRUE if successful.

Description

This function adds a public variable in the binding configuration.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFbindExternPort

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFbindExternPort

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbindExternPort - add an external port to the binding configuration

FID := paFbindExternPort (FID, ADDR, PORT, NAME)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteBinding function.
ADDR : STRING; | IP address.
PORT : DINT; | IP port number.
NAME : STRING | Optional description text.
OK : BOOL; | TRUE if successful.

Description

This function adds a public variable in the binding configuration. Immediately after calling this function, you can use other functions to declare external bound variables.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFbindCnxStatus

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFbindCnxStatus

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbindCnxStatus - binds a variable to the connection status of the last declared port

FID := paFbindCnxStatus (FID, NAME)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteBinding function.
NAME : STRING; | Symbol of the bound variable.
OK : BOOL; | TRUE if successful.

Description

This function binds a variable for getting the connection status. The variable is bound to external port declared by the last call to the paFbindExternPort function.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFbindExternVar

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFbindExternVar

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbindExternVar - binds a variable to the last declared port

FID := paFbindExternVar (FID, ID, NAME)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteBinding function.
ID : DINT; | ID of the binding link.
NAME : STRING; | Symbol of the bound variable.
OK : BOOL; | TRUE if successful.

Description

This function binds a variable for data exchange. The variable is bound to external port declared by the last call to the paFbindExternPort function.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFbindVarStatus

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFbindVarStatus

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbindVarStatus - binds a status variable to the last declared port

FID := paFbindVarStatus (FID, ID, NAME)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteBinding function.
ID : DINT; | ID of the binding link.
NAME : STRING; | Symbol of the bound variable.
OK : BOOL; | TRUE if successful.

Description

This function binds a variable for getting the status of a binding link. The variable is bound to external port declared by the last call to the paFbindExternPort function.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarDateStamp - Add a date stamp variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFbindVarDateStamp

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFbindVarDateStamp

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbindVarDateStamp - binds a date stamp variable to the last declared port

FID := paFbindVarDateStamp (FID, ID, NAME)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteBinding function.
ID : DINT; | ID of the binding link.
NAME : STRING; | Symbol of the bound variable.
OK : BOOL; | TRUE if successful.

Description

This function binds a variable for getting the date stamp of a binding link. The variable is bound to external port declared by the last call to the paFbindExternPort function.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarTimeStamp - Add a time stamp variable.


paFbindVarTimeStamp

Project Automation Library -> Reference -> Generating documents -> Networking and fieldbuses - file writing services -> paFbindVarTimeStamp

Previous chapter Next chapter Show all Show all Hide all Hide all

paFbindVarTimeStamp - binds a time stamp variable to the last declared port

FID := paFbindVarTimeStamp (FID, ID, NAME)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenWriteBinding function.
ID : DINT; | ID of the binding link.
NAME : STRING; | Symbol of the bound variable.
OK : BOOL; | TRUE if successful.

Description

This function binds a variable for getting the time stamp of a binding link. The variable is bound to external port declared by the last call to the paFbindExternPort function.

seealso See also
  • Functions for MODBUS configuration:

paFileOpenWriteModbus - Open the MODBUS configuration for writing.
paFModbusSlave - Configurate the MODBUS slave connection.
paFModbusMaster - Create a MODBUS master connection.
paFModbusRequestSlave - Add a MODBUS request on the slave connection.
paFModbusRequestMaster - Add a MODBUS request on a master connection.
paFModbusVariable - Add a MODBUS variable to the last declared request.

  • Functions for AS-i configuration:

paFileOpenWriteASi - Open the AS-i configuration for writing.
paFAsiApplyConfig - Set main flag.
paFAsiMaster - Add a master device.
paFAsiMasterDiag - Add a diagnostic variable on the last declared master.
paFAsiSlave - Add a slave device.
paFAsiSlaveDiag - Add a diagnostic variable on the last declared slave.
paFAsiInput - Add an input variable on the last declared slave.
paFAsiOutput - Add an output variable on the last declared slave.

  • Functions for other fieldbus drivers:

paFileOpenWriteFieldbus - Open a feldbus configuration for writing.
paFfbCreateMaster - Add a master node.
paFfbCreateSlave - Add a slave node.
paFfbCreateVar - Add a variable node.
paFfbSetProperty - Set the the value of a property.
paFfbSelectRoot - Select the root node.
paFfbSelectMaster - Select a master node.
paFfbSelectSlave - Select a slave node.
paFfbSelectVar - Select a variable node.

  • Functions for the binding configuration:

paFileOpenWriteBinding - Open the binding configuration for writing.
paFbindPublicVar - Add a public variable.
paFbindExternPort - Add an extern port.
paFbindCnxStatus - Add a connection status variable.
paFbindExternVar - Add an extern variable.
paFbindVarStatus - Add a status variable.
paFbindVarDateStamp - Add a date stamp variable.


Watch window documents - file writing services

Project Automation Library -> Reference -> Generating documents -> Watch window documents - file writing services

Previous chapter Next chapter Show all Show all Hide all Hide all

Below are the main services for writing watch window document files. Files are open using specific functions. When complete, they must be closed by calling the paFileClose function.

  • Generating spy lists:

    paFileOpenWriteSpyList - Open a spy list document for writing.
    paFSpyAddVariable - Add a variable to a spy list.

  • Generating recipes:

    paFileOpenWriteRecipe - Open a recipe document for writing.
    paFrcpAddColumn - Define a column in the recipe.
    paFrcpAddVariable - Add a variable to a recipe.
    paFrcpAddValue - Add a value to a recipe.

  • Generating graphic documents:

    Not available.

Noch in diesem Kapitel

paFileOpenWriteSpyList

paFSpyAddVariable

paFileOpenWriteRecipe

paFrcpAddColumn

paFrcpAddVariable

paFrcpAddValue


paFileOpenWriteSpyList

Project Automation Library -> Reference -> Generating documents -> Watch window documents - file writing services -> paFileOpenWriteSpyList

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteSpyList - Open a spy list document for writing

FID := paFileOpenWriteSpyList (NAME)

Parameter | Description
NAME : STRING; | Name of the spy list (no suffix!).
FID : DINT; | File identifier or 0 if fail.

Description

This function opens a spy list document file for writing. This functions removes the contents of the spy list if it already exist. When written, the file must be closed by calling the paFileClose function.

seealso See also
  • Generating spy lists:

    paFSpyAddVariable - Add a variable to a spy list.

  • Generating recipes:

    paFileOpenWriteRecipe - Open a recipe document for writing.
    paFrcpAddColumn - Define a column in the recipe.
    paFrcpAddVariable - Add a variable to a recipe.
    paFrcpAddValue - Add a value to a recipe.

  • Generating graphic documents:

Not available.


paFSpyAddVariable

Project Automation Library -> Reference -> Generating documents -> Watch window documents - file writing services -> paFSpyAddVariable

Previous chapter Next chapter Show all Show all Hide all Hide all

paFSpyAddVariable - Add a variable to a spy list

OK := paFSpyAddVariable (FID, NAME)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenSpyList function.
NAME : STRING; | Symbol of the variable.
OK : BOOL; | TRUE if successful.

Description

This function adds a variable to an open spy list document.

seealso See also
  • Generating spy lists:

    paFileOpenWriteSpyList - Open a spy list document for writing.

  • Generating recipes:

    paFileOpenWriteRecipe - Open a recipe document for writing.
    paFrcpAddColumn - Define a column in the recipe.
    paFrcpAddVariable - Add a variable to a recipe.
    paFrcpAddValue - Add a value to a recipe.

  • Generating graphic documents:

Not available.


paFileOpenWriteRecipe

Project Automation Library -> Reference -> Generating documents -> Watch window documents - file writing services -> paFileOpenWriteRecipe

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteRecipe - Open a recipe document for writing

FID := paFileOpenRecipe (NAME)

Parameter | Description
NAME : STRING; | Name of the recipe (no suffix!).
FID : DINT; | File identifier or 0 if fail.

Description

This function opens a recipe document file for writing. This functions removes the contents of the recipe if it already exist. When written, the file must be closed by calling the paFileClose function.

seealso See also
  • Generating spy lists:

    paFileOpenWriteSpyList - Open a spy list document for writing.
    paFSpyAddVariable - Add a variable to a spy list.

  • Generating recipes:

    paFrcpAddColumn - Define a column in the recipe.
    paFrcpAddVariable - Add a variable to a recipe.
    paFrcpAddValue - Add a value to a recipe.

  • Generating graphic documents:

Not available.


paFrcpAddColumn

Project Automation Library -> Reference -> Generating documents -> Watch window documents - file writing services -> paFrcpAddColumn

Previous chapter Next chapter Show all Show all Hide all Hide all

paFrcpAddColumn - Add a column to a recipe

OK := paFrcpAddColumn (FID, COL, NAME)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenRecipe function.
COL : DINT; | Index of the column (0 based).
NAME : STRING; | Name of the column.
OK : BOOL; | TRUE if successful.

Description

This function adds a column to a recipe. The index of the first column is 0. Column must be declared from the left to the right. Columns must be definied before adding values to the recipe.

seealso See also
  • Generating spy lists:

    paFileOpenWriteSpyList - Open a spy list document for writing.
    paFSpyAddVariable - Add a variable to a spy list.

  • Generating recipes:

    paFileOpenWriteRecipe - Open a recipe document for writing.
    paFrcpAddVariable - Add a variable to a recipe.
    paFrcpAddValue - Add a value to a recipe.

  • Generating graphic documents:

Not available.


paFrcpAddVariable

Project Automation Library -> Reference -> Generating documents -> Watch window documents - file writing services -> paFrcpAddVariable

Previous chapter Next chapter Show all Show all Hide all Hide all

paFrcpAddVariable - Add a variable to a recipe

OK := paFrcpAddVariable (FID, NAME)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenRecipe function.
NAME : STRING; | Symbol of the variable.
OK : BOOL; | TRUE if successful.

Description

This function adds a variable (a line) to an open recipe document. Variables must be definied before adding values to the recipe.

seealso See also
  • Generating spy lists:

    paFileOpenWriteSpyList - Open a spy list document for writing.
    paFSpyAddVariable - Add a variable to a spy list.

  • Generating recipes:

    paFileOpenWriteRecipe - Open a recipe document for writing.
    paFrcpAddColumn - Define a column in the recipe.
    paFrcpAddVariable - Add a variable to a recipe.
    paFrcpAddValue - Add a value to a recipe.

  • Generating graphic documents:

Not available.


paFrcpAddValue

Project Automation Library -> Reference -> Generating documents -> Watch window documents - file writing services -> paFrcpAddValue

Previous chapter Next chapter Show all Show all Hide all Hide all

paFrcpAddValue - Add a value to a recipe

OK := paFrcpAddValue (FID, NAME, COL, VALUE)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenRecipe function.
NAME : STRING; | Symbol of the variable.
COL : DINT; | Index of the column (0 based).
NAME : STRING; | Value in IEC syntax.
OK : BOOL; | TRUE if successful.

Description

This function adds a value (one cell) to a recipe. The corresponding variable (line) and column must be defined before calling this function.

seealso See also
  • Generating spy lists:

    paFileOpenWriteSpyList - Open a spy list document for writing.
    paFSpyAddVariable - Add a variable to a spy list.

  • Generating recipes:

    paFileOpenWriteRecipe - Open a recipe document for writing.
    paFrcpAddColumn - Define a column in the recipe.
    paFrcpAddVariable - Add a variable to a recipe.

  • Generating graphic documents:

Not available.


Resource documents - file writing services

Project Automation Library -> Reference -> Generating documents -> Resource documents - file writing services

Previous chapter Next chapter Show all Show all Hide all Hide all

Below are the main services for writing resources document files. Files are open using specific functions. When complete, they must be closed by calling the paFileClose function.

  • Generating string tables:

    paFileOpenWriteStringTable - Open a string table document for writing.
    paFstbAddColumn - Define a column in the string table.
    paFstbAddString - Add a string to a table.

  • Generating analog signal:

    paFileOpenWriteSignal - Open a signal document for writing.
    paFSignalAddColumn - Define a column in the signal resource.
    paFSignalAddPoint - Add a point to a signal resource.

Noch in diesem Kapitel

paFileOpenWriteStringTable

paFstbAddColumn

paFstbAddString

paFileOpenWriteSignal

paFSignalAddColumn

paFSignalAddPoint


paFileOpenWriteStringTable

Project Automation Library -> Reference -> Generating documents -> Resource documents - file writing services -> paFileOpenWriteStringTable

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteStringTable - Open a "string table" resource document for writing

FID := paFileOpenStringTable (NAME)

Parameter | Description
NAME : STRING; | Name of the string table (no suffix!).
FID : DINT; | File identifier or 0 if fail.

Description

This function opens a "string table" resource document file for writing. This functions removes the contents of the stringtable if it already exist. When written, the file must be closed by calling the paFileClose function.

seealso See also
  • Generating string tables:

    paFileOpenWriteStringTable - Open a string table document for writing.
    paFstbAddColumn - Define a column in the string table.
    paFstbAddString - Add a string to a table.

  • Generating analog signal:

    paFileOpenWriteSignal - Open a signal document for writing.
    paFSignalAddColumn - Define a column in the signal resource.
    paFSignalAddPoint - Add a point to a signal resource.


paFstbAddColumn

Project Automation Library -> Reference -> Generating documents -> Resource documents - file writing services -> paFstbAddColumn

Previous chapter Next chapter Show all Show all Hide all Hide all

paFstbAddColumn - Add a column to a string table resource

OK := paFstbAddColumn (FID, NAME)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenStringTable function.
COL : DINT; | Index of the column (0 based).
NAME : STRING; | Name of the column.
OK : BOOL; | TRUE if successful.

Description

This function adds a column to a "string table" resource. The index of the first column is 0. Column must be declared from the left to the right. Columns must be definied before adding strings to the table.

seealso See also
  • Generating string tables:

    paFileOpenWriteStringTable - Open a string table document for writing.
    paFstbAddColumn - Define a column in the string table.
    paFstbAddString - Add a string to a table.

  • Generating analog signal:

    paFileOpenWriteSignal - Open a signal document for writing.
    paFSignalAddColumn - Define a column in the signal resource.
    paFSignalAddPoint - Add a point to a signal resource.


paFstbAddString

Project Automation Library -> Reference -> Generating documents -> Resource documents - file writing services -> paFstbAddString

Previous chapter Next chapter Show all Show all Hide all Hide all

paFstbAddString - Add a column to a string table resource

OK := paFstbAddString (FID, NAME, COL, VALUE)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenStringTable function.
NAME : STRING; | Identifier of the string in the table.
COL : DINT; | Index of the column (0 based).
VALUE : STRING; | Contents of the string.
OK : BOOL; | TRUE if successful.

Description

This function adds a string to a "string table" resource. The corresponding column must be defined before calling this function.

seealso See also
  • Generating string tables:

    paFileOpenWriteStringTable - Open a string table document for writing.
    paFstbAddColumn - Define a column in the string table.
    paFstbAddString - Add a string to a table.

  • Generating analog signal:

    paFileOpenWriteSignal - Open a signal document for writing.
    paFSignalAddColumn - Define a column in the signal resource.
    paFSignalAddPoint - Add a point to a signal resource.


paFileOpenWriteSignal

Project Automation Library -> Reference -> Generating documents -> Resource documents - file writing services -> paFileOpenWriteSignal

Previous chapter Next chapter Show all Show all Hide all Hide all

paFileOpenWriteSignal - Open a "signal" resource document for writing

FID := paFileOpenSignal (NAME)

Parameter | Description
NAME : STRING; | Name of the signal (no suffix!).
FID : DINT; | File identifier or 0 if fail.

Description

This function opens an "analog signal" resource document file for writing. This functions removes the contents of the resource if it already exist. When written, the file must be closed by calling the paFileClose function.

seealso See also
  • Generating string tables:

    paFileOpenWriteStringTable - Open a string table document for writing.
    paFstbAddColumn - Define a column in the string table.
    paFstbAddString - Add a string to a table.

  • Generating analog signal:

    paFileOpenWriteSignal - Open a signal document for writing.
    paFSignalAddColumn - Define a column in the signal resource.
    paFSignalAddPoint - Add a point to a signal resource.


paFSignalAddColumn

Project Automation Library -> Reference -> Generating documents -> Resource documents - file writing services -> paFSignalAddColumn

Previous chapter Next chapter Show all Show all Hide all Hide all

paFSignalAddColumn

OK := paFSignalAddColumn (FID, NAME)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenSignal function.
COL : DINT; | Index of the column (0 based).
NAME : STRING; | Name of the column.
OK : BOOL; | TRUE if successful.

Description

This function adds a column to an "analog signal" resource. The index of the first column is 0. Column must be declared from the left to the right. Columns must be definied before adding points are added to the signal.

seealso See also
  • Generating string tables:

    paFileOpenWriteStringTable - Open a string table document for writing.
    paFstbAddColumn - Define a column in the string table.
    paFstbAddString - Add a string to a table.

  • Generating analog signal:

    paFileOpenWriteSignal - Open a signal document for writing.
    paFSignalAddColumn - Define a column in the signal resource.
    paFSignalAddPoint - Add a point to a signal resource.


paFSignalAddPoint

Project Automation Library -> Reference -> Generating documents -> Resource documents - file writing services -> paFSignalAddPoint

Previous chapter Next chapter Show all Show all Hide all Hide all

paFSignalAddPoint - Add a point to a signal resource

OK := paFSignalAddPoint (FID, TM, COL, VALUE)

Parameter | Description
FID : DINT; | File identifier returned by the paFileOpenSignal function.
TM : TIME; | X coordinate (time) of the point.
COL : DINT; | Index of the column (0 based).
VALUE : REAL; | Y coordinate of the point.
OK : BOOL; | TRUE if successful.

Description

This function adds a point to an "analog signal" resource. The corresponding column must be defined before calling this function.

seealso See also
  • Generating string tables:

    paFileOpenWriteStringTable - Open a string table document for writing.
    paFstbAddColumn - Define a column in the string table.
    paFstbAddString - Add a string to a table.

  • Generating analog signal:

    paFileOpenWriteSignal - Open a signal document for writing.
    paFSignalAddColumn - Define a column in the signal resource.
    paFSignalAddPoint - Add a point to a signal resource.


Templates

Project Automation Library -> Reference -> Templates

Noch in diesem Kapitel

Variable keywords for copying templates

Templates of programs


Variable keywords for copying templates

Project Automation Library -> Reference -> Templates -> Variable keywords for copying templates

Previous chapter Next chapter Show all Show all Hide all Hide all

Your scripts can contain template documents to be copied in the target project. When copying documents, some special keywords may be variables defined from the script and replaced by the value given by the script.

Use the following syntax in your templates for specifying variable keywords:

$(keyname)

and use the following functions in your script to set values for keywords:

paSetKey Define the value of a variable keyword.
paRemoveKeys Reset values of all defined variable keywords.

Noch in diesem Kapitel

paSetKey

paRemoveKeys


paSetKey

Project Automation Library -> Reference -> Templates -> Variable keywords for copying templates -> paSetKey

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetKey - Definiert ein Schlüsselwort einer Variable zum Kopieren von Vorlagen

OK := paSetKey (NAME, VALUE)

Parameter | Beschreibung
NAME : STRING; | Name des Variablen-Schlüsselwortes.
VALUE : STRING; | Wert des Variablen-Schlüsselwortes.
OK | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion definiert den Wert eines Schlüsselwortes welches durch das Kopieren einer Vorlage ersetzt wird.

Example Example

Template ST Programm:

if ALARM_$(ALM) then
bMainAlarm := TRUE;
end_if;

Skript Anweisungen:

paSetKey ('ALM', 'Engine2')
paTplCopySource ('TargetProgram', 'TemplateName');

Erzeugtes ST Programm:

if ALARM_Engine2 then
bMainAlarm := TRUE;
end_if;

seealso See also

paRemoveKeys Setzt Werte aller definierten Variablenschlüsselwörter zurück.


paRemoveKeys

Project Automation Library -> Reference -> Templates -> Variable keywords for copying templates -> paRemoveKeys

Previous chapter Next chapter Show all Show all Hide all Hide all

paRemoveKeys - Remove all values defined for template variable keywords

OK := paRemoveKeys ()

Parameter | Description
OK | TRUE if successful.

Description

This function removes all values defined for variable keywords used for copying templates.

seealso See also

paSetKey Define the value of a variable keyword.


Templates of programs

Project Automation Library -> Reference -> Templates -> Templates of programs

Previous chapter Next chapter Show all Show all Hide all Hide all

Your scripts can contain template documents to be copied in the target project. You can include in your script project templates of POUs (programs, sub-programs or UDFBs) to be copied in the target project.

Use the following functions in your script to copy a template of POU:

paTplCopySource Copy the source code.
paTplCopyVars Copy local variables.
paTplCopyDefinitions Copy local definitions.
paTplCopyAll Copy all components of a POU template.

You also can define some variable keywords to be replaced when copying templates of POUs.

Noch in diesem Kapitel

paTplCopySource

paTplCopyVars

paTplCopyDefinitions

paTplCopyAll


paTplCopySource

Project Automation Library -> Reference -> Templates -> Templates of programs -> paTplCopySource

Previous chapter Next chapter Show all Show all Hide all Hide all

paTplCopySource - Kopiert den Quellcode einer POU Vorlage.

OK := paTplCopySource (DSTPROG, TEMPLATE)

Parameter | Beschreibung
DSTPROG : STRING; | Name des Bestimmungsprogrammes im Zielprojekt (muss existieren).
TEMPLATE : STRING; | Name des Vorlageprogrammes im automatisierten Skript-Projekt.
OK | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion kopiert den Quellcode der definierten Vorlage vom Automatisierungsskriptprojekt ins Zielprojekt. Das Zielprogramm muss im Zielprogramm deklariert sein.

seealso See also

paTplCopyVars - Kopiert lokale Variablen.
paTplCopyDefinitions - Kopiert lokale Definitionen.
paTplCopyAll - Kopiert alle Inhalte einer POU Vorlage.

Einige variable Schlüsselwörter können definiert werden, die ersetzt werden, wenn Vorlagen von POUs kopiert werden.


paTplCopyVars

Project Automation Library -> Reference -> Templates -> Templates of programs -> paTplCopyVars

Previous chapter Next chapter Show all Show all Hide all Hide all

paTplCopyVars - kopiert die lokalen Variablen einer POU Vorlage

OK := paTplCopyVars (DSTPROG, TEMPLATE)

Parameter | Beschreibung
DSTPROG : STRING; | Name des Bestimmungsprogrammes im Zielprojekt (muss existieren).
TEMPLATE : STRING; | Name des Vorlageprogrammes im automatisierten Skript-Projekt.
OK | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion kopiert alle lokalen Variablen der definierten Vorlage vom Automatisierungsskriptprojekt ins Zielprojekt. Das Zielprogramm muss im Zielprogramm deklariert sein.

seealso See also

paTplCopySource - Kopiert den Quellcode.
paTplCopyDefinitions - Kopiert lokale Definitionen.
paTplCopyAll - Kopiert alle Inhalte einer POU Vorlage.

Einige variable Schlüsselwörter können definiert werden, die ersetzt werden, wenn Vorlagen von POUs kopiert werden.


paTplCopyDefinitions

Project Automation Library -> Reference -> Templates -> Templates of programs -> paTplCopyDefinitions

Previous chapter Next chapter Show all Show all Hide all Hide all

paTplCopyDefinitions - Kopiert die lokalen Definitionen einer POU Vorlage

OK := paTplCopyDefinitions (DSTPROG, TEMPLATE)

Parameter | Beschreibung
DSTPROG : STRING; | Name des Bestimmungsprogrammes im Zielprojekt (muss existieren).
TEMPLATE : STRING; | Name des Vorlageprogrammes im automatisierten Skript-Projekt.
OK | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion kopiert alle lokalen Definitionen der definierten Vorlage vom Automatisierungsskriptprojekt ins Zielprojekt. Das Zielprogramm muss im Zielprogramm deklariert sein.

seealso See also

paTplCopySource - Kopiert den Quellcode.
paTplCopyVars - Kopiert lokale Variablen.
paTplCopyAll - Kopiert alle Inhalte einer POU Vorlage.

Einige variable Schlüsselwörter können definiert werden, die ersetzt werden, wenn Vorlagen von POUs kopiert werden.


paTplCopyAll

Project Automation Library -> Reference -> Templates -> Templates of programs -> paTplCopyAll

Previous chapter Next chapter Show all Show all Hide all Hide all

paTplCopyAll - kopiert eine POU Vorlage

OK := paTplCopyAll (DSTPROG, TEMPLATE)

Parameter | Beschreibung
DSTPROG : STRING; | Name des Bestimmungsprogrammes im Zielprojekt (muss existieren).
TEMPLATE : STRING; | Name des Vorlageprogrammes im automatisierten Skript-Projekt.
OK | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion kopiert die gewählte Vorlage vom automatisierten Skript Projekt in das Zielprojekt. Das Kopieren beinhaltet den Quell-Code, lokale Variablen und lokale Definitionen. Das Zielprogramm muss im Zielprogramm deklariert sein.

seealso See also

paTplCopySource - Kopiert den Quellcode.
paTplCopyVars - Kopiert lokale Variablen.
paTplCopyDefinitions - Kopiert lokale Definitionen.

Einige variable Schlüsselwörter können definiert werden, die ersetzt werden, wenn Vorlagen von POUs kopiert werden.


Script parameters

Project Automation Library -> Reference -> Script parameters

The project automation system enables your script to prompt the user for entering some parameters. Such parameters are then used (as variables) by your script.

Principle

Parameters must be variables of your script project declared as global variables. Then you need to create a list of variables in your script project that groups all "parameter" variables. Finally in your script, you must call the paEditParameterList function, that opens a dialog box where the user must give values for each parameter. Then "parameter" variables can be used in your script.

A parameter must be a variable declared with a single data type (no array, no structure). All basic data types are supported. When the parameter input dialog box is open, current values of variables are shown as default value.

For a string parameter, it is possible to define a drop-list choice. For that you must set possible choices in the string value before editing parameter, separated by '|' characters. e.g.: 'Choice1|Choice2'.

Related functions

paSetParameterDesc Set the description text to be shown with a parameter.
paEditParameterList Prompt the user for entering parameters.

See an example.

Noch in diesem Kapitel

paSetParameterDesc

paEditParameterList

Example


paSetParameterDesc

Project Automation Library -> Reference -> Script parameters -> paSetParameterDesc

Previous chapter Next chapter Show all Show all Hide all Hide all

paSetParameterDesc - Definiert den Beschreibungstext, welcher mit dem Parameter angezeigt wird.

OK := paSetParameterDesc (NAME, DESC)

Parameter | Beschreibung
NAME : STRING; | Parametername, wie im Script-Projekt angegeben.
DESC : STRING; | Beschreibungstext für den User - erscheint während der Eingabe der Parameter.
OK : BOOL | TRUE wenn erfolgreich.

Beschreibung

Diese Funktion definiert den Beschreibungstext welcher zusammen mit den spezifizierten Parametern während der Eingabe angezeigt wird.

seealso See also

paEditParameterList Fordert den User zur Eingabe von Parameterwerten auf.

Siehe Beispiel.


paEditParameterList

Project Automation Library -> Reference -> Script parameters -> paEditParameterList

Previous chapter Next chapter Show all Show all Hide all Hide all

paEditParameterList - Prompt the user to enter parameter values

OK := paEditParameterList (LISTID, TITLE)

Parameter | Description
LISTID : DINT; | ID of the list of parameters (use VLID function).
TITLE : STRING; | Title of the window where the user enters the parameter.
OK : BOOL; | TRUE if the use pressed the OK button.

Description

This function opens a dialog box where the user enters values for script parameters.

seealso See also

paSetParameterDesc Set the description text to be shown with a parameter.
See an example.


Example

Project Automation Library -> Reference -> Script parameters -> Example

Previous chapter Next chapter Show all Show all Hide all Hide all

This examples shows the different steps for adding parameters to a script:

  • Declare parameters as global variables of your script project:

  • Create a list of variables with parameters:

  • ST Script:

// set decription text for parameters
paSetParameterDesc ('Param1', 'This is parameter 1');
paSetParameterDesc ('Param2', 'This is parameter 2');
paSetParameterDesc ('Param3', 'This is parameter 3');
// prompt the user for parameters
paEditParameterList (VLID ('Parameters'), 'Enter parameters now');

When the script is run, the following dialog box is open:

The Param1 parameter is a check box, because it is declared as BOOL. The Param3 is shown as a drop list because the value of Param3 (its initial value in that case) is a list of words separated by '|' characters.


miscellaneous

Project Automation Library -> Reference -> miscellaneous

Below are some other functions you can use in automation scripts:

paGetLanguage Return the selected language for the Workbench.
paTRACE... Output a report message.

Noch in diesem Kapitel

paGetLanguage

paTRACEx


paGetLanguage

Project Automation Library -> Reference -> miscellaneous -> paGetLanguage

Previous chapter Next chapter Show all Show all Hide all Hide all

paGetLanguage - Get current selected language

LGE := paGetLanguage ()

Parameter | Description
LGE : DINT; | Language identifier (see notes).

Description

This function returns the language currently selected for the Workbench. Possible returned values are:

Value | Description
_WB_USA | English
_WB_GER | German
_WB_FRA | French
_WB_ITA | Italian
_WB_SPA | Spanish
_MW_KOR | Korean

seealso See also

paTRACE... Output a report message.


paTRACEx

Project Automation Library -> Reference -> miscellaneous -> paTRACEx

Previous chapter Next chapter Show all Show all Hide all Hide all

paTRACE... - Ausgeben einer Berichtsmeldung

paTRACE0 (TEXT)
paTRACE1 (TEXT, ARG1)
paTRACE2 (TEXT, ARG1, ARG2)
paTRACE3 (TEXT, ARG1, ARG2, ARG3)
paTRACE4 (TEXT, ARG1, ARG2, ARG3, ARG3)

Parameter | Beschreibung
TEXT : STRING; | Ausgabetext.
ARG1..4 : DINT; | Argumente

Beschreibung

Die Meldung, die im TEXT Argument definiert ist, wird an das Berichtsfenster ausgegeben, wenn das Automatisierungsskript läuft. Der Meldungstext kann bis zu 4 ganzzahlige Argumente enthalten, die im TEXT-String mit speziellen Zeichenfolgen definiert sind.

%ld Vorzeichenbehafteter Wert als Dezimalzahl.
%lu dezimaler Wert ohne Vorzeichen.
%lx Hexadezimaler Wert

seealso See also

paGetLanguage Gibt die gewählte Sprache für die Workbench aus.


Workbench COM Interface

Workbench COM Interface

The Workbench offers a COM interface (K5COM.dll) which sets up on the program automation interface. As the referring object model is developed continuously this description could not be up to date.

The COM interfac can be use for e.g.:

  • declaring variables via a VBA wizard.
  • browsing programs or the variable lists.
  • automatic programming.
  • ...

This page describes the object model only. All the rest of the information can be looked up in the object library of the used programming environments (e.g. VBA).

Here you find the object model represented as a tree:

- StratonCom
- Project
- GlobalVariables
- Variables
- Variable
- VarProps
- VarProperty
- RetainVariables
- Variables
- Variable
- VarProps
- VarProperty
- Programs
- Variables
- Variable
- VarProps
- VarProperty
- ProgramContent
- ProgramObjects
- GraphicalObject
- ProgramLines
- LineObject

You can use all program automation commands through the shell of the used programming language (e.g. VBA).wer stört


Copyright

Copyright

Die in diesen Seiten enthaltenen Informationen können ohne Vorankündigung geändert werden und stellen keine Verpflichtung seitens ICP DAS dar. Ohne ausdrückliche schriftliche Erlaubnis von ICP DAS darf kein Teil dieser Seiten für irgendwelche Zwecke, in irgendeiner Form oder mit irgendwelchen Mitteln, elektronisch oder mechanisch reproduziert oder übertragen werden.

© 2015 ICP DAS CO., LTD. Alle Rechte vorbehalten.

Alle auf diesen Seiten genannten Produkt- oder Firmennamen sind Warenzeichen oder eingetragene Warenzeichen der betreffenden Eigentümer.

ICP DAS CO., LTD
www.icpdas.com

© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


SAMA Blocks

Dieser Abschnitt gibt weitere Informationen zu den Basis-Funktionsblöcken der SAMA Programmierung

Noch in diesem Kapitel

SAMA - AND

SAMA - Mittelwertbildung

SAMA - Bias

SAMA - Ableitungen

SAMA - Differenz

SAMA - Teilung

SAMA - exponential

SAMA - Höchstwert

SAMA - High/Low Limitierung

SAMA - High Auswahl

SAMA - Integral

SAMA - Logical Variable Signal Generator

SAMA - Low Limitierung

SAMA - Low Auswahl

SAMA - Manueller Transfer

SAMA - Memory (R dominant)

SAMA - Memory (S dominant)

SAMA - Multiplizierung

SAMA - Nicht lineare Funktion

SAMA - NOT

SAMA - OR

SAMA - PI Controller with Feed Forward

SAMA - Proportional

SAMA - Pulsdauer

SAMA - Qualified Logical OR (>n)

SAMA - Qualified Logical OR (<n)

SAMA - Qualified Logical OR (=n)

SAMA - Reverse Proportional

SAMA - Root Extraction

SAMA - Summierung

SAMA - Three State Signal Monitor

SAMA - Two State Signal Monitor (lower limit)

SAMA - Two State Signal Monitor (upper limit)

SAMA - Time Delay of Initiation

SAMA - Time Delay of Termination

SAMA - Transfer

SAMA - Variable Signal Generator

SAMA - Velocity Limitierung


Boolean Operations

Undokumentierte Funktion oder undokumentierter Funktionsblock

Dieser Baustein (Block) ist für spezielle Runtime Diagnosen reserviert und sollte nicht in Applikationen verwendet werden.


PID Functions by JS Automation

JS_DeadTime - analog delay

Call

INPUT : signal input.
N : number of samples (200 max).
DeadTime : delay (seconds).

Return

OUT : output signal.

info Info

Allows to put a delay on an analog signal.

attention Attention

The dead time divided by the number of samples must be very greater than cycle time.
If N = 0 the function understands 1
If N > 200 the function understands 200

JS_LeadLag - signal lead / lag

Call

Input : input signal.
Lead : lead value.
Lag : lag value.
Ts : sampling period.

Return

Out : output signal.

Function

Qn = Qn-1 + Ts/Ti.(Mn-1 - Qn-1) + Td/Ti.(Mn - Mn-1)

Qn : Output at t
Qn-1 : Output at t-1
Mn : Input at t
Mn-1 : Input at t-1
Ts : Sampling period
Ti : Lag
Td : Lead

info Info

If Lag = 0 the function is not executed.
Sampling period must be very greater than cycle time.

JS_PID - PID loop setpoint balance

Call

LSL : Loop Scale Lo
LSH : Loop Scale Hi
Auto : automatic or manual mode
Pv : Process output value
Sp : Set point value
Ramp : Setpoint Ramp ( Unit per Minute )
Balance : Auto/Manu Setpoint balancing
Action : Output action Direct or Reverse
Mixt : Interactive or Non-Interactive PID
Deriv : Derivative action
Feedback : external PID feedback for output manipulations
X0 : Adjustment value: In manual mode, output pid regulator equal to X0
You must connect obligatory a variable (not a constant and no computation on this variable
Kp : Proportionality constant
Ti : Integral time constant in minute
Td : derivative time constant in minute
Ts : Sampling period
Xmin : Minimum limit on output command value
Xmax : Maximum limit on output command value

Return

SPcur : Current Setpoint
Xout : Command

info Info

Automatic mode must be set to false at init.
Balance = 0 Non-balancing Setpoint ; =1 Balancing
Xout is limited inside specified Xmin ,Xmax range.
Xmax should be greater than Xmin.
The integral term is held when Xout reaches the limits
The Ts parameter should be greater (>>>) than the kernel cycle time.

Action :

  • Direct (0) Output increase if PV-SP positive and decrease if PV-SP negative.
  • Reverse (1) Output decrease if PV-SP positive and increase if PV-SP negative.

Mixt :

  • Interactive PID (0) : The I and D parameters are multipied by KP.
  • Non-Interactive (1) : The P,I,D parameters are independant.

Feedback :

  • The range must be 0-100 .
  • Feeback=0 : internal feedback.

JS_Ramp - Limit variation speed

Call

  • INPUT : input signal
  • Rampe : maximum variation speed ( Unit/mn)
  • Cycle : application cycle time

Return

OUT : output signal

info Info
  • The variation of speed is expressed as units per minute
  • The Cycle input must be the application cycle time

    Use GetSysInfo (_SYSINFO_CYCLETIME_MS)


RedSwitch

Funktion - Löst eine Redundanzumschaltung aus.

 | Datentyp | Beschreibung
Inputs |  |
SWITCH | BOOL | Eingang für die Auslösung einer Redundanzumschaltung
Outputs |  |
ERROR | BOOL | TRUE im Fall eines Fehlers. Z.B. keine passive Runtime verbunden.

Anmerkungen

Diese Funktion führt eine Redundanzumschaltung aus wenn der Eingang SWITCH TRUE wird.

ST Sprache

ERROR := RedSwitch (SWITCH);

FBD Sprache

Diese Funktion stehe auch in der FBD Sprache zur Verfügung.

LD Sprache

Diese Funktion stehe auch in der LD Sprache zur Verfügung.

IL Sprache

Op1: LD SWITCH
RedSwitch
ST ERROR


ROLb / ROL_SINT / ROL_USINT / ROL_BYTE

Funktion - Rotiert die Bits eines Registers nach links.

Inputs

IN : SINT 8-Bit-Register.
NBR : SINT Anzahl der Rotationen (jede Rotation ist 1 Bit).

Outputs

Q : SINT Rotiertes Register.

Diagramm

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung (ENO) behält den gleichen Status wie das Input-Rung. In der IL Sprache muss der erste Input vor dem Aufruf der Funktion geladen werden. Der zweite Input ist der Operand der Funktion.

ST Sprache

Q := ROLb (IN, NBR);

FBD Sprache

LD Sprache

Die Rotation wird nur dann ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ROLb NBR
ST Q

seealso See also

SHL SHR ROL ROR SHLb SHRb RORb SHLw SHRw ROLw RORw


ROLw / ROL_INT / ROL_UINT / ROL_WORD

Funktion - Rotiert die Bits eines Registers nach links.

Inputs

IN : INT 16-Bit-Register.
NBR : INT Anzahl der Rotationen (jede Rotation ist 1 Bit).

Outputs

Q : INT Rotiertes Register.

Diagramm

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung (ENO) behält den gleichen Status wie das Input-Rung. In der IL Sprache muss der erste Input vor dem Aufruf der Funktion geladen werden. Der zweite Input ist der Operand der Funktion.

ST Sprache

Q := ROLw (IN, NBR);

FBD Sprache

LD Sprache

Die Rotation wird nur dann ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
ROLw NBR
ST Q

seealso See also

SHL SHR ROL ROR SHLb SHRb ROLb RORb SHLw SHRw RORw


ApplyRecipeColumn RTK_IsBugCheck

Funktion - Liest den Wert eines Blue Screen of Death von MS Windows XP.

by COPA-DATA GmbH

Inputs

---

Outputs

Q : BOOL TRUE wenn ein Blue Screen of Death eingetreten ist.

Anmerkungen

Entwickelt für die RTK Realtime Runtime für Windows XP.

info Info

Nach einem Blue Screen of Death von MS Windows XP können keine Windows spezifischen Funktionen vom SPS Code mehr ausgeführt werden. Diese sind: Dateioperationen, TCP Funktionen, Funktionen der Seriellen Schnittstelle, Nicht-Echtzeit Feldbustreiber, System-Uhr Funktionen, RETAIN Variablen, schreiben von Log Messages,...

In der LD Sprache wird die Funktion nur ausgeführt wenn der Input Rung (EN) TRUE ist. Der Output Rung ist das Ergebnis der Funktion.

ST Sprache

Q := RTK_IsBugCheck ();

FBD Sprache

LD Sprache

Die Funktion wird nur ausgeführt wenn EN TRUE ist.

IL Sprache

Nicht verfügbar.


Runtime-Optionen

Die Runtime-Optionen können mit Hilfe des Menüs Compilieren des Hauptfensters eingegeben werden und müssen VOR dem Compilieren der Anweisung spezifiziert werden.

Zykluszeit

In diesem Feld müssen Sie angeben, wie die Zyklen bei der Ausführung getriggert werden sollen:

  • nicht getriggert: Das Zielsystem wartet nicht zwischen zwei Zyklen und läuft so schnell wie möglich.
  • getriggert: Sie müssen die Zyklusdauer spezifizieren (Anzahl der Millisekunden). Siehe OEM-Anleitung für Informationen zur unterstützten Präzision für die Zykluszeit Ihres Zielsystems.

Programm-Scheduling

Die Workbench ermöglicht die Definition verschiedener Sampling-Perioden für die Programme einer Anwendung. Die Vorgabeperiode 1 bedeutet, dass das Programm in jedem Zyklus ausgeführt wird. Die Definition langsamerer Sampling-Perioden für bestimmte Programme ist eine unkomplizierte Methode, die uns ermöglicht, anderen Programmen eine höhere Priorität einzuräumen.

Um das Scheduling bestimmter Anwendungsprogramme zu ändern, werden diese zunächst in der linken Liste ausgewählt. Dann drückt man auf > oder zieht die Programme in das Raster, wo für jedes ausgewählte Programm die folgenden Änderungen möglich sind:

  • Seine Sampling-Periode (Anzahl der Zyklen zwischen zwei Programmausführungen).
  • Seine Phase (Offset, mit dem langsame Programme Zyklen zugeteilt werden können).

Das obere Diagramm zeigt das Laden der Zielsystemzyklen. Bei jedem Sampling zeigt das Diagramm, wie viele Programme ausgeführt werden. Sie können das Scheduling eines Programms im Diagramm hervorheben, indem Sie es im Raster ankreuzen.

Das folgende Beispiel veranschaulicht das Scheduling einer Anwendung, die aus drei Programmen besteht. Um dem Programm P3 eine höhere Priorität zu geben, wurde für die Programme P1 und P2 die Sampling-Periode 2 bestimmt. P2 hat das Offset 1, damit es nicht im selben Zyklus wie P1 ausgeführt wird:

Example Example

 | Periode | Phase
P1 | 2 | 0
P2 | 2 | 1
P3 | 1 | 0

Das untere Diagramm zeigt, welches Programm entsprechend dieser Konfiguration in jedem Zyklus ausgeführt wird:

P1 | P2 | P1 | P2 | P1 | P2 | P1 | P2 | P1
P3 | P3 | P3 | P3 | P3 | P3 | P3 | P3 | P3
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ...


SAMA - AND

Boolean AND. Der Block akzeptiert zwischen 2 und 16 Eingaben. Verändern Sie die Größe des Blocks vertikal um weniger oder mehr Eingangswerte zu erhalten

Eingehende Werte

IN1 .. IN16 : BOOL

Bool'sche Eingangswerte

Ausgehende Werte

Q : BOOL

TRUE wenn alle eingehenden Werte TRUE sind


SAMA - Mittelwertbildung

Errechnet den Mittelwert der eingehenden Werte Der Block akzeptiert zwischen 2 und 16 Eingaben. Verändern Sie die Größe des Blocks horizontal um weniger oder mehr Eingangswerte zu erhalten

Eingehende Werte

IN1 .. IN16 : REAL

Analog Inputs

Ausgehende Werte

OUT : REAL

Mittelwert aller eingehenden Werte


SAMA - Bias

Hält den Bias Point bei der Ausgabe.

Eingehende Werte

IN : REAL

Analogeingang

Parameter

BIAS : REAL

Bias Punkt

Ausgehende Werte

OUT : REAL

IN + BIAS


SAMA - Ableitungen

Leitet das Eingangssignal ab. Die Ausgabe wird von PMIN und PMAX limitiert.

Eingehende Werte

IN : REAL

Analogsignal

Parameter

TD : TIME | Zeitdifferenz
PMIN : REAL | Minimaler Ausgangswert
PMAX : REAL | Maximaler Ausgangswert

Ausgehende Werte

OUT : REAL

Abgeleitetes Signal ist eingeschränkt auf [PMIN ... PMAX]


SAMA - Differenz

Berechnet die Differenz zwischen zwei Eingabewerten.

Eingehende Werte

IN1 : REAL | Analogeingang
IN2 : REAL | Analogeingang

Ausgehende Werte

OUT : REAL

IN1 - IN2


SAMA - Teilung

Berechnet die Teilung zwischen zwei Eingabewerten.

Eingehende Werte

IN1 : REAL | Analogeingang
IN2 : REAL | Analogeingang

Ausgehende Werte

OUT : REAL

IN1 / IN2


SAMA - exponential

Errechnet die Exponentiale der Eingabewerte.

Eingehende Werte

IN : REAL

Analogeingang

Parameter

N : DINT

Exponent

Ausgehende Werte

OUT : REAL

IN exp N


SAMA - Höchstwert

Limitiert den Maximalwert der Eingabe.

Eingehende Werte

IN : REAL

Analogeingang

Parameter

PMAX : REAL

Maximaler Ausgabewert

Ausgehende Werte

OUT : REAL

= IN if IN <= PMAX

= PMAX if IN > PMAX


SAMA - High Auswahl

Wählt das Maximum zweier Eingabewerte aus. Der Block akzeptiert zwischen 2 und 16 Eingaben. Verändern Sie die Größe des Blocks horizontal um weniger oder mehr Eingangswerte zu erhalten

Eingehende Werte

IN1 .. IN16 : REAL

Analog Inputs

Ausgehende Werte

OUT : REAL

Maximalwert aller Eingabewerte


SAMA - High/Low Limitierung

Limitiert den Maximal- und den Minimalwert der Eingabe

Eingehende Werte

IN : REAL

Analogeingang

Parameter

PMIN : REAL | Minimaler Ausgabewert
PMAX : REAL | Maximaler Ausgabewert

Ausgehende Werte

OUT : REAL

= IN if PMIN <= IN <= PMAX

= PMIN if IN < PMIN

= PMAX if IN > PMAX


SAMA - Integral

Integrierung des Input Signals Die Ausgabe wird von PMIN und PMAX limitiert.

Eingehende Werte

IN : REAL

Analogsignal

Parameter

TI : TIME | Nachstellzeit
PMIN : REAL | Minimaler Ausgangswert
PMAX : REAL | Maximaler Ausgangswert

Ausgehende Werte

OUT : REAL

Integral Signal ist eingeschränkt auf [PMIN ... PMAX]


SAMA - Logical Variable Signal Generator

Toggled den Output bei jeder Änderung des TOG Parameters von 0 auf 1.

Parameter

TOG : UDINT

Toggle Kommando

Ausgehende Werte

Q : BOOL | Toggled wenn TOG von 0 auf 1 wechselt.
STATUS : BOOL | gleich zu Q


SAMA - Two State Signal Monitor (lower limit)

Gibt TRUE zurück wenn die Eingabe größer als der definierten Minimumwert ist.

Eingehende Werte

IN : REAL

Analogeingang

Parameter

PMIN : REAL

Minimalwert

Ausgehende Werte

OUT : BOOL

FALSE wenn IN > PMIN

TRUE anderenfalls


SAMA - Low Limitierung

Limitiert den Minimalwert der Eingabe.

Eingehende Werte

IN : REAL

Analogeingang

Parameter

PMIN : REAL

Minimaler Ausgabewert

Ausgehende Werte

OUT : REAL

= IN if IN >= PMIN

= PMIN if IN < PMIN


SAMA - Low Auswahl

Wählt das Minimum zweier Eingabewerte aus. Der Block akzeptiert zwischen 2 und 16 Eingaben. Verändern Sie die Größe des Blocks horizontal um weniger oder mehr Eingangswerte zu erhalten

Eingehende Werte

IN1 .. IN16 : REAL

Analog Inputs

Ausgehende Werte

OUT : REAL

Minimalwert aller Eingabewerte


SAMA - Manueller Transfer

Wählt einen von zwei Eingabewerten aus. Änderungen werden mit dem Befehl "S" changes from FALSTE to TRUE ausgeführt. Die Änderungsrate wird vom "RATE"-Parameter eingeschränkt.

Eingehende Werte

IN1 .. IN2 : REAL

Analog Inputs

Parameter

RATE : REAL | Maximale Anzahl der Übergänge (Transitions) pro Sekunde
S : BOOL | Transition (Übergangs)-Befehl

Ausgehende Werte

OUT : REAL | IN1 oder IN2. Wechselt an jeder steigenden Flanke auf S
STATUS : BOOL | TRUE wenn IN2 ausgewählt ist


SAMA - Multiplizierung

Errechnet die Multiplikation der eingehenden Werte Der Block akzeptiert zwischen 2 und 16 Eingaben. Verändern Sie die Größe des Blocks horizontal um weniger oder mehr Eingangswerte zu erhalten

Eingehende Werte

IN1 .. IN16 : REAL

Analog Inputs

Ausgehende Werte

OUT : REAL

Multiplikation aller Eingaben


SAMA - Nicht lineare Funktion

Berechnet lineare Interpolation mit einer Punkteliste. Punkte müssen aufsteigend nach der X-Koordinate sortiert sein. Sie können zwischen 2 und 8 Punkte für die Interpolation definieren.

Eingehende Werte

IN : REAL

Input - entsprechend der X-Achse

Parameter

X1 .. X8 : REAL | X Koordinaten der Interpolationspunkte.
Y1 .. Y8 : REAL | Y Koordinaten der Interpolationspunkte.

Ausgehende Werte

OUT : REAL

Y Interpolation von IN

Diagramm


SAMA - NOT

Boolean Negation.

Eingehende Werte

IN1 : BOOL

Bool'scher Eingangswert

Ausgehende Werte

Q : BOOL

TRUE wenn IN FALSE ist / FALSE wenn IN TRUE ist


SAMA - Time Delay of Termination

Off-Delay Timer. Der Timer startet bei einem fallenden Impuls auf dem IN Input. Er stoppt, wenn die vergangene Zeit gleich zu der programmierten Zeit ist. Ein aufsteigender Impuls am IN Input setzt den Timer auf 0 zurück. Das Output Signal wird auf TRUE gesetzt, wenn der IN Input auf TRUE ansteigt; wird auf FALSE gesetzt, wenn die programmierte Zeit abgelaufen ist.

Eingehende Werte

IN : BOOL

Eingabe Trigger

Parameter

T : TIME | Dauer
RST : BOOL | Reset Befehl

Ausgehende Werte

Q : BOOL

Ausgangssignal

Zeitdiagramm (Time diagram)


SAMA - Time Delay of Initiation

Verzögerungs Timer (On-Delay Timer). Der Timer startet bei einem ansteigenden Impuls auf dem IN Input. Er stoppt, wenn die vergangene Zeit gleich zu der programmierten Zeit ist. Ein fallender Impuls am IN Input setzt den Timer auf 0 zurück. Das Output-Signal wird auf TRUE gesetzt, wenn die programmierte Zeit abgelaufen ist. Wenn der Input-Befehl scheitert wird das Signal auf FALSE zurückgesetzt.

Eingehende Werte

IN : BOOL

Eingabe Trigger

Parameter

T : TIME | Dauer
RST : BOOL | Reset Befehl

Ausgehende Werte

Q : BOOL

Ausgangssignal

Zeitdiagramm (Time diagram)


SAMA - OR

Bool'sches OR. Der Block akzeptiert zwischen 2 und 16 Eingaben. Verändern Sie die Größe des Blocks vertikal um weniger oder mehr Eingangswerte zu erhalten

Eingehende Werte

IN1 .. IN16 : BOOL

Bool'sche Eingangswerte

Ausgehende Werte

Q : BOOL

TRUE wenn mindestens eine Eingabe TRUE ist


SAMA - PI Controller with Feed Forward

Führt eine proportionale/integrale Transferfunktion oder die Differenz zwischen dem SP set point und der PV Prozessvariable aus. Der Vorlaufwert wird zum Output Signal hinzugefügt. Die finale Ausgabe wird von PMIN und PMAX limitiert.

Eingehende Werte

SP : REAL | Sollwertvorgabe
PV : REAL | Prozesswert
FF : REAL | Vorlauf

Parameter

KP : REAL | Proportionale Verstäkung (proportional gain)
TN : TIME | Reset Zeit
PMIN : REAL | Minimaler Ausgangswert
PMAX : REAL | Maximaler Ausgangswert

Ausgehende Werte

OUT : REAL

Controller output


SAMA - Proportional

Multipliziert den Input und die P Verstärkung (gain).

Eingehende Werte

IN1 : REAL

Analogeingang

Parameter

P : REAL

Verstärkung (Gain)

Ausgehende Werte

OUT : REAL

IN1 * P


SAMA - Pulsdauer

Impuls-Timer Der Timer startet bei einem ansteigenden Impuls auf dem IN Input. Er stoppt, wenn die vergangene Zeit gleich zu der programmierten Zeit ist. Ein absteigender Impuls auf dem IN Input stellt den Timer nur dann auf 0 zurück, wenn die programmierte Zeit verstrichen ist. Während der Timer läuft werden alle Impulse auf IN ignoriert. Während der Timer läuft wird das Ausgangssignal auf TRUE gesetzt.

Eingehende Werte

IN : BOOL

Eingabe Trigger

Parameter

T : TIME | Dauer
RST : BOOL | Reset Befehl

Ausgehende Werte

Q : BOOL

Ausgangssignal

Zeitdiagramm (Time diagram)


SAMA - Qualified Logical OR (=n)

Gibt TRUE zurück wenn exakt N eingehende Werte TRUE sind. Der Block akzeptiert zwischen 3 und 16 Eingaben. Verändern Sie die Größe des Blocks vertikal um weniger oder mehr Eingangswerte zu erhalten

Eingehende Werte

IN1 .. IN16 : BOOL

Bool'sche Eingangswerte

Parameter

N : DINT

Erwartete Anzahl an eingehenden Werten

Ausgehende Werte

Q : BOOL

TRUE wenn exakt N eingehende Werte TRUE sind


SAMA - Qualified Logical OR (>n)

Gibt TRUE zurück wenn mindestens N+1 eingehende Werte TRUE sind. Der Block akzeptiert zwischen 3 und 16 Eingaben. Verändern Sie die Größe des Blocks vertikal um weniger oder mehr Eingangswerte zu erhalten

Eingehende Werte

IN1 .. IN16 : BOOL

Bool'sche Eingangswerte

Parameter

N : DINT

Erwartete Anzahl an eingehenden Werten

Ausgehende Werte

Q : BOOL

TRUE wenn mindestens N+1 eingehende Werte TRUE sind


SAMA - Qualified Logical OR (<n)

Gibt TRUE zurück wenn höchstens N-1 eingehende Werte TRUE sind. Der Block akzeptiert zwischen 3 und 16 Eingaben. Verändern Sie die Größe des Blocks vertikal um weniger oder mehr Eingangswerte zu erhalten

Eingehende Werte

IN1 .. IN16 : BOOL

Bool'sche Eingangswerte

Parameter

N : DINT

Erwartete Anzahl an eingehenden Werten

Ausgehende Werte

Q : BOOL

TRUE wenn höchstens N-1 eingehende Werte TRUE sind


SAMA - Reverse Proportional

Multipliziert den Input und das Gegenteil der P Verstärkung (gain).

Eingehende Werte

IN : REAL

Analogeingang

Parameter

P : REAL

Verstärkung (Gain)

Ausgehende Werte

OUT : REAL

IN * ( - P )


SAMA - Root Extraction

Berechnet die Wurzel (N) des Inputs.

Eingehende Werte

IN : REAL

Analogeingang

Parameter

N : DINT

Exponent

Ausgehende Werte

OUT : REAL

N-te Wurzel von IN


SAMA - Memory (R dominant)

Dominant bistabil zurücksetzen (reset)

Eingehende Werte

S : BOOL | SET Befehl
R : BOOL | RESET Befehl (dominant)

Ausgehende Werte

Q : BOOL | Speicher Status
QN : BOOL | gleich zu NOT Q

Wahrheitstabelle

S | L | Q | Q
0 | 0 | unverändert | unverändert
0 | 1 | 0 | 1
1 | 0 | 1 | 0
1 | 1 | 0 | 1


SAMA - Memory (S dominant)

Dominant bistabil setzen (set)

Eingehende Werte

S : BOOL | SET Befehl (dominant)
R : BOOL | RESET Befehl

Ausgehende Werte

Q : BOOL | Speicher Status
QN : BOOL | gleich zu NOT Q

Wahrheitstabelle

S | L | Q | Q
0 | 0 | unverändert | unverändert
0 | 1 | 0 | 1
1 | 0 | 1 | 0
1 | 1 | 1 | 0


SAMA - Summierung

Errechnet die Summe aller eingehenden Werte Der Block akzeptiert zwischen 2 und 16 Eingaben. Verändern Sie die Größe des Blocks horizontal um weniger oder mehr Eingangswerte zu erhalten

Eingehende Werte

IN1 .. IN16 : REAL

Analog Inputs

Ausgehende Werte

OUT : REAL

Summe aller eingehenden Werte


SAMA - Transfer

Wählt einen von zwei Eingabewerten aus. Die Änderungsrate wird vom "RATE"-Parameter eingeschränkt.

Eingehende Werte

IN1 .. IN2 : REAL | Analog Inputs
S : BOOL | Auswahl bit

Parameter

RATE : REAL

Maximale Anzahl der Übergänge (Transitions) pro Sekunde

Ausgehende Werte

OUT : REAL

IN1 wenn S FALSE ist

IN2 wenn S TRUE ist


SAMA - Three State Signal Monitor

Gibt TRUE zurück wenn die Eingabe außerhalb des definierten Minimum- und Maximumwert liegt.

Eingehende Werte

IN : REAL

Analogeingang

Parameter

PMIN : REAL | Minimalwert
PMAX : REAL | Maximalwert

Ausgehende Werte

OUT : BOOL

FALSE wenn PMIN < IN < PMAX

TRUE anderenfalls


SAMA - Two State Signal Monitor (upper limit)

Gibt TRUE zurück wenn die Eingabe kleiner als der definierten Maximalwert ist.

Eingehende Werte

IN : REAL

Analogeingang

Parameter

PMAX : REAL

Maximalwert

Ausgehende Werte

OUT : BOOL

FALSE wenn IN < PMAX

TRUE anderenfalls


SAMA - Variable Signal Generator

Erstellt ein analoges Signal, entsprechend den UP/DN Befehlen. Der Ausgabewert ist durch Minimal- und Maximialwerte beschränkt. Seine Änderungsrate ist ebenfalls limitiert

Parameter

PMIN : REAL | Minimalwert
PMAX : REAL | Maximalwert
RATE : REAL | Maximale Anzahl der Änderungen pro Sekunde
UP : BOOL | Aufsteigender Befehl
DN : BOOL | Absteigender Befehl

Ausgehende Werte

OUT : REAL | IN1 wenn S FALSE ist IN2 wenn S TRUE ist
STATUS : UDINT | Bit-Feld (siehe nachfolgende Anmerkungen)

Folgende STATUS Bits stehen für die Ausgabe zur Verfügung:

Bit 0 (LSB) - Wert ist ansteigend

Bit 1 - Wert ist absteigend

Bit 2 - Wert umfasst den Bereich von PMIN / PMAX.


SAMA - Velocity Limitierung

Limitiert die Änderungsrate für analoge Inputs.

Eingehende Werte

IN : REAL

Analogeingang

Parameter

RATE : REAL

Maximale Anzahl der Änderungen pro Sekunde

Ausgehende Werte

OUT : REAL

Folgt IN mit der angegebenen Änderungsrate.


SET_DAY_TIME

Funktion - Setzt die Systemzeit eines Windows Betriebssystems.

 | Datentyp | Beschreibung
Inputs |  |
TM | STRING | Input String für Datum und Zeit. Format: 'TT.MM.JJJJ HH:mm:ss'
SEL | BOOL | Sendet den Wert von TM zum Betriebssytem mit der steigenden Flanke dieses Input.
Outputs |  |
Q | BOOL | TRUE wenn erfolgreich.

Anmerkungen

Das Setzen der Systemzeit mit dieser Funktion kann die Zykluszeit extrem beeinträchtigen.

Um Probleme mit dem Betriebssystem zur vermeiden muss der SEL Input sofort nach dem Funktionsaufruf wieder auf FALSE zurückgesetzt werden.

Die Zeit am Input TM muss GMT/UTC sein. Das Zielsystem berechnet die lokale Zeit aus eingestelleten Zeitzone.

ST Sprache

Q := SET_DAY_TIME (TM, SEL);

FBD Sprache

LD Sprache

Die Funktion wird nur ausgeführt wenn EN TRUE ist.
Der Output Rung enthält das Ergbnis der Funktion.
Der Ouput Rung ist FALSE wenn EN FALSE ist.

IL Sprache

Op1: LD TM
SET_DAY_TIME SEL
ST Q


Makroschritte im SFC

Ein Makroschritt ist ein Spezialsymbol, das innerhalb eines SFC Netzwerks einen Netzwerkabschnitt darstellt, der mit einem Schritt beginnt und mit einem Schritt endet. Der Rumpf des Makroschritts muss im selben Programm deklariert werden. Er beginnt mit einem speziellen Anfangsschritt, dem keine andere Verknüpfung vorangeht, und endet mit einem speziellen Endschritt, dem keine Verknüpfung folgt. Ein Makroschritt wird im Hauptnetzwerk durch doppelte horizontale Linien symbolisiert.

Zur Eingabe eines Makroschritts benutzen Sie die folgenden Schaltflächen in der SFC Toolbar:

Icon | Beschreibung
 | Einen Makroschritt einfügen.
 | Den Rumpf eines Makroschritts einfügen.

attention Attention

Das Symbol des Makroschritts und der Anfangsschritt seines Rumpfes müssen die gleiche Nummer haben. Um die Nummer eines ausgewählten Makroschrittsymbols oder Anfangsschritts zu ändern, benutzen Sie die Tastenkombination Ctrl+ENTER.


SHLb / SHL_SINT / SHL_USINT / SHL_BYTE

Funktion - Verschiebt die Bits eines Registers nach links.

Inputs

IN : SINT 8-Bit-Register.
NBS : SINT Anzahl der Verschiebungen (jede Verschiebung ist 1 Bit).

Outputs

Q : SINT Verschobenes Register.

Diagramm

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung (ENO) behält den gleichen Status wie das Input-Rung. In der IL Sprache muss der erste Input vor dem Aufruf der Funktion geladen werden. Der zweite Input ist der Operand der Funktion.

ST Sprache

Q := SHLb (IN, NBS);

FBD Sprache

LD Sprache

Die Verschiebung wird nur dann ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
SHLb NBS
ST Q

seealso See also

SHL SHR ROL ROR SHRb ROLb RORb SHLw SHRw ROLw RORw


SHLw / SHL_INT / SHL_UINT / SHL_WORD

Funktion - Verschiebt die Bits eines Registers nach links.

Inputs

IN : INT 16-Bit-Register.
NBS : INT Anzahl der Verschiebungen (jede Verschiebung ist 1 Bit).

Outputs

Q : INT Verschobenes Register.

Diagramm

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung (ENO) behält den gleichen Status wie das Input-Rung. In der IL Sprache muss der erste Input vor dem Aufruf der Funktion geladen werden. Der zweite Input ist der Operand der Funktion.

ST Sprache

Q := SHLw (IN, NBS);

FBD Sprache

LD Sprache

Die Verschiebung wird nur dann ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
SHLw NBS
ST Q

seealso See also

SHL SHR ROL ROR SHLb SHRb ROLb RORb SHRw ROLw RORw


SHRb / SHR_SINT / SHR_USINT / SHR_BYTE

Funktion - Verschiebt die Bits eines Registers nach rechts.

Inputs

IN : SINT 8-Bit-Register.
NBS : SINT Anzahl der Verschiebungen (jede Verschiebung ist 1 Bit).

Outputs

Q : SINT Verschobenes Register.

Diagramm

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung (ENO) behält den gleichen Status wie das Input-Rung. In der IL Sprache muss der erste Input vor dem Aufruf der Funktion geladen werden. Der zweite Input ist der Operand der Funktion.

ST Sprache

Q := SHRb (IN, NBS);

FBD Sprache

LD Sprache

Die Verschiebung wird nur dann ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
SHRb NBS
ST Q

seealso See also

SHL SHR ROL ROR SHLb ROLb RORb SHLw SHRw ROLw RORw


SHRw / SHR_INT / SHR_UINT / SHR_WORD

Funktion - Verschiebt die Bits eines Registers nach rechts.

Inputs

IN : INT 16-Bit-Register.
NBS : INT Anzahl der Verschiebungen (jede Verschiebung ist 1 Bit).

Outputs

Q : INT Verschobenes Register.

Diagramm

Anmerkungen

In der LD Sprache gibt das Input-Rung (EN) die Operation frei. Das Output-Rung (ENO) behält den gleichen Status wie das Input-Rung. In der IL Sprache muss der erste Input vor dem Aufruf der Funktion geladen werden. Der zweite Input ist der Operand der Funktion.

ST Sprache

Q := SHRw (IN, NBS);

FBD Sprache

LD Sprache

Die Verschiebung wird nur dann ausgeführt, wenn EN TRUE ist.
ENO hat den gleichen Wert wie EN.

IL Sprache

Op1: LD IN
SHRw NBS
ST Q

seealso See also

SHL SHR ROL ROR SHLb ROLb RORb SHLw SHRw ROLw RORw


Stop

Function - Stoppt die Runtime

 | Datentyp | Beschreibung
Inputs |  |
I | BOOL | Eingang für das Stoppen der Runtime
Outputs |  |
Q | BOOL | TRUE wenn erfolgreich.

Anmerkungen

Diese Funktion verursacht ein stoppen (anhalten) der Runtime.

ST Sprache

Q := Stop(I);

FBD Sprache

Diese Funktion stehe auch in der FBD Sprache zur Verfügung.

LD Sprache

Diese Funktion stehe auch in der LD Sprache zur Verfügung.

IL Sprache

Op1: LD I
Stop
ST Q


Terminate

Function - Terminiert (beendet) die Runtime

 | Datentyp | Beschreibung
Inputs |  |
I | BOOL | Eingang zum beenden der Runtime
Outputs |  |
Q | BOOL | TRUE wenn erfolgreich.

Anmerkungen

Diese Funktion verursacht ein beenden der Runtime.

ST Sprache

Q := Terminate(I);

FBD Sprache

Diese Funktion stehe auch in der FBD Sprache zur Verfügung.

LD Sprache

Diese Funktion stehe auch in der LD Sprache zur Verfügung.

IL Sprache

Op1: LD I
Terminate
ST Q


Test Sequences

IEC 61131-3 Programming Environment -> Ausführung der Anwendung -> Test Sequences

Previous chapter Next chapter Show all Show all Hide all Hide all

The Workbench includes an integrated tool for designing and running automated test scenarios. Test scenarios are so called "Test Sequences" and are documents of the workspace. To include a new test sequence in your workspace, right click on a folder an run the command "Insert New Item". Then, in category "Watch" select "Test Sequence" and enter a name for the sequence.

Syntax

The following syntaxes are allowed in a text sequence:

Comments

Empty and comment lines are allowed. Comments may have the following syntaxes:

// comment up to the end of line

(* delimited comment *)

Evaluation of an expression

You can evaluate a complex expression using ST operators. Function calls are not allowed within an expression. Examples:

Var1

Bool1 & (Var2 > 1000)

If an expression is entered alone on a line of a sequence, its value is simply displayed in the report when run.

Forcing a variable

A line may contain a statement to force a variable, using the syntax:

variable_name := expression ;

Examples:

Var1 := 1000;

Var1 := Var1 + 1;

Waiting for an expression to be TRUE

Use the following syntax to wait for an expression to be TRUE:

wait expression ;

A timeout may be specified in between brackets after the "wait" keyword:

wait [timeout] expression ;

Examples:

wait Bool1;

wait [t#5] Bool1 OR Bool2;

If not specified, the default timeout is 10 seconds.

Waiting for a delay

A line may contain a delay statement, using the syntax:

wait_time time_value;

Examples:

wait_time t#2s;

Use

Use the editor toolbar to check and run your sequence:

Commands:

1 | Use this button to activate or deactivate the sequence. The sequence must be deactivated for editing. When activated, the sequence can be run and tested.
2 | Check the syntax of the sequence.
3 | Abort the sequence when running.
4 | Pause the sequence when running.
5 | Start the execution of the sequence.
6 | Single step: execute the selected line
7 | Set/remove a breakpoint on the current line.
8 | Remove all breakpoints.

Use the commands of the popup menu to save the sequence and its report to a CSV file.

© ICP DAS. Please contact us for any questions or comments: service@icpdas.com


updates

Informieren Sie sich über die aktuellen News und holen Sie sich die neuesten Updates der Workbench. Alles dazu finden Sie hier:

http://www.icpdas.com/root/product/solutions/softplc_based_on_pac/win-graf/win-graf.html