IEC61499

IEC61499

Vorheriges Kapitel Nächstes Kapitel Alle anzeigen Alle anzeigen Alle verbergen Alle verbergen
© Ing. Punzenberger COPA-DATA GmbH. Sollten Sie Fragen oder Anregungen zur Dokumentation haben, wenden Sie sich bitte an: documentation@copadata.com

Driver for connecting PLCs supporting the simple spontaneous communication protocol. This protocol has been developed by the Automatition and control institute (TU-Wien) and Ing. Punzenberger COPA-DATA GmbH in the course of the OntoReA project. The protocol was specifically designed to communicate with IEC 61499 based controls.

Noch in diesem Kapitel

IEC61499 - Datenblatt

Treiber-Historie

Voraussetzungen

Konfiguration

Variablen anlegen

Treiberspezifische Funktionen

Treiberkommandos

Service and protocol specification

Fehleranalyse


IEC61499 - Datenblatt

IEC61499 -> IEC61499 - Datenblatt

Allgemein: |
Treiberdateiname | IEC61499.exe
Treiberbezeichnung | IEC 61499 Treiber
Steuerungs-Typen | IEC 61499 kompatible Steuerungen
Steuerungs-Hersteller | IEC;

Treiber unterstützt: |
Protokoll | SSCP;
Adressierung: Adress-basiert | x
Adressierung: Namens-basiert | -
Kommunikation spontan | x
Kommunikation pollend | -
Online Browsing | -
Offline Browsing | -
Echtzeitfähig | x
Blockwrite | -
Modemfähig | -
Serielles Logging | -
RDA numerisch | -
RDA String | -

Voraussetzungen: |
Hardware PC | -
Software PC | -
Hardware Steuerung | -
Software Steuerung | Kommunikationsbausteine für das SSCP Protokoll müssen implementiert werden. Beschreibung siehe Treiberdokumentation.
Benötigt v-dll | -

Plattformen: |
Betriebssysteme | Windows XP, Vista, 7, Server 2003, Server 2008/R2;
CE Plattformen |


Treiber-Historie

IEC61499 -> Treiber-Historie

Datum | Treiberversion | Änderung
25.02.10 | 100 | Treiberdokumentation wurde neu erstellt


Voraussetzungen

IEC61499 -> Voraussetzungen

Dieses Kapitel enthält Informationen zu den Voraussetzungen, die für die Verwendung des Treibers erforderlich sind.


Konfiguration

IEC61499 -> Konfiguration

In diesem Kapitel lesen Sie, wie Sie den Treiber im Projekt anlegen und welche Einstellungen beim Treiber möglich sind.

info Info

Weitere Einstellungen, die Sie für Variablen in zenon vornehmen können, finden Sie im Kapitel Variablen der Online-Hilfe.

Noch in diesem Kapitel

Anlegen eines Treibers

Einstellungen im Treiberdialog


Anlegen eines Treibers

IEC61499 -> Konfiguration -> Anlegen eines Treibers

Um einen neuen Treiber anzulegen:

  • Klicken Sie mit der rechten Maustaste im Projektmanager auf Treiber und selektieren Sie im Kontextmenü Treiber neu.
  • In der folgenden Dialogbox bietet Ihnen das Programm eine Auflistung aller verfügbaren Treiber an.

  • Selektieren Sie den gewünschten Treiber und vergeben Sie eine Bezeichnung für diesen:
    • Die Treiberbezeichnung muss eindeutig sein, d.h. wird ein und derselbe Treiber mehrmals im Projekt verwendet, so muss jeweils eine neue Bezeichnung vergeben werden.
    • Die Treiberbezeichnung ist Bestandteil des Dateinamens. Daher darf Sie nur Zeichen enthalten, die vom Betriebssystem unterstützt werden. Nicht gültige Zeichen werden durch einen Unterstrich (_) ersetzt.
    • Achtung: Die Bezeichnung kann später nicht mehr geändert werden.
  • Bestätigen Sie den Dialog mit OK. Im folgenden Dialog werden die einzelnen Konfigurationen der jeweiligen Treiber eingestellt.
  • Für ein Projekt müssen nur die jeweils notwendigen Treiber eingebunden werden. Späteres Einbinden eines weiteren Treibers ist problemlos möglich.

info Info

Bei neu angelegten Projekten oder bei bestehenden Projekten, die in eine Version ab 6.21 konvertiert werden, werden die folgenden Treiber automatisch angelegt:

  • Intern
  • MathDr32
  • SysDrv.


Einstellungen im Treiberdialog

IEC61499 -> Konfiguration -> Einstellungen im Treiberdialog

Folgende Einstellungen können Sie beim Treiber vornehmen:

Noch in diesem Kapitel

Allgemein

Connections


Allgemein

IEC61499 -> Konfiguration -> Einstellungen im Treiberdialog -> Allgemein

Vorheriges Kapitel Nächstes Kapitel Alle anzeigen Alle anzeigen Alle verbergen Alle verbergen
© Ing. Punzenberger COPA-DATA GmbH. Sollten Sie Fragen oder Anregungen zur Dokumentation haben, wenden Sie sich bitte an: documentation@copadata.com

Parameter

Beschreibung

Modus

Ermöglicht ein Umschalten zwischen Hardware und Simulationsmodus

  • Hardware:

    Die Verbindung zur Steuerung wird hergestellt.

  • Simulation - statisch

    Es wird keine Kommunikation zur Steuerung aufgebaut, die Werte werden vom Treiber simuliert. In diesem Modus bleiben die Werte konstant bzw. die Variablen behalten die über zenon Logic gesetzen Werte. Jede Variable hat seinen eigenen Speicherbereich. z.B. zwei Variablen vom Typ Merker mit Offset 79, können zur Laufzeit unterschiedliche Werte haben und beeinflussen sich gegenseitig nicht. Ausnahme: Der Simulatortreiber.

  • Simulation - zählend

    Es wird keine Kommunikation zur Steuerung aufgebaut, die Werte werden vom Treiber simuliert. In diesem Modus zählt der Treiber die Werte innerhalb ihres Wertebereichs automatisch hoch.

  • Simulation - programmiert

    Es wird keine Kommunikation zur Steuerung aufgebaut, die Werte werden von einem frei programmierbaren Simulationsprojekt berechnet. Das Simulationsprojekt wird mit der zenon Logic Workbench erstellt und läuft in einer in den Treiber integrierten zenon Logic Runtime ab. Details siehe Kapitel Treibersimulation.

Update-Liste im Speicher Halten

Einmal angeforderte Variablen werden weiterhin von der Steuerung angefordert, auch wenn diese aktuell nicht mehr benötigt werden.
Dies hat den Vorteil, dass z.B. mehrmalige Bildumschaltungen nach dem erstmaligen Aufschalten beschleunigt werden, da die Variablen nicht neu angefordert werden müssen. Der Nachteil ist eine erhöhte Belastung der Kommunikation zur Steuerung.

Ausgänge schreibbar

Aktiv: Ausgänge können beschrieben werden.

Inaktiv: Das Beschreiben der Ausgänge wird unterbunden.

Hinweis: Steht nicht für jeden Treiber zur Verfügungen.

Variablenabbild remanent

Diese Option speichert und restauriert den aktuellen Wert, den Zeitstempel und die Status eines Datenpunkts.

Grundvoraussetzung: Die Variable muss einen gültigen Wert und Zeitstempel besitzen.

Das Variablenabbild wird im Modus Hardware gespeichert wenn:

  • einer der Status S_MERKER_1(0) bis S_MERKER8(7), REVISION(9), AUS(20) oder ERSATZWERT(27) aktiv ist

Das Variablenabbild wird immer gespeichert wenn:

  • die Variable vom Objekttyp Treibervariable ist
  • der Treiber im Simulationsmodus läuft. (nicht programmierte Simulation)

Folgende Status werden beim Start der Runtime nicht restauriert:

  • SELECT(8)
  • WR-ACK(40)
  • WR-SUC(41)

Der Modus Simulation - programmiert beim Treiberstart ist kein Kriterium, um das remanente Variablenabbild zu restaurieren.

Am Standby-Server stoppen

Einstellung für Redundanz bei Treibern, die nur eine Kommunikationsverbindung erlauben. Dazu wird der Treiber am Standby-Server gestoppt und erst beim Hochstufen wieder gestartet.

Achtung: Ist diese Option aktiv, ist die lückenlose Archivierung nicht mehr gewährleistet.

Aktiv: Versetzt den Treiber am nicht-prozessführenden Server automatisch in einen Stop-ähnlichen Zustand. Im Unterschied zum Stoppen über Treiberkommando erhält die Variable nicht den Status abgeschaltet, sondern einen leeren Wert. Damit wird verhindert, dass beim Hochstufen zum Server nicht relevante Werte in AML , CEL und Archiv erzeugt werden.

Update Zeit Global

Aktiv: Die eingestellte Globale Update Zeit in ms wird für alle Variablen im Projekt verwendet. Die bei den Variablen eingestellte Priorität wird nicht verwendet.
Inaktiv: Die eingestellten Prioritäten werden für die einzelnen Variablen verwendet.

Priorität

Hier werden die Pollingzeiten der einzelnen Prioritäten eingestellt. Alle Variablen mit der entsprechenden Priorität werden in der eingestellten Zeit gepollt. Die Zuordnung zu den Variablen erfolgt separat bei jeder Variablen über die Einstellungen in den Variableneigenschaften.
Mit den Prioritäten kann die Kommunikation der einzelnen Variablen auf die Wichtigkeit bzw. benötigte Aktualität abgestuft werden. Daraus ergibt sich eine verbesserte Verteilung der Kommunikationslast.

Update Zeit zyklische Treiber

Für zyklische Treiber gilt:

Beim Sollwert Setzen, Advicen von Variablen und bei Requests wird sofort ein Lesezyklus für alle Treiber ausgelöst - unabhängig von der eingestellten Update Zeit. Damit wird sicher gestellt, dass der Wert nach dem Schreiben in der Visualisierung sofort zur Verfügung steht. Update-Zeiten können damit für zyklische Treiber kürzer ausfallen als eingestellt.


Connections

IEC61499 -> Konfiguration -> Einstellungen im Treiberdialog -> Connections

Vorheriges Kapitel Nächstes Kapitel Alle anzeigen Alle anzeigen Alle verbergen Alle verbergen
© Ing. Punzenberger COPA-DATA GmbH. Sollten Sie Fragen oder Anregungen zur Dokumentation haben, wenden Sie sich bitte an: documentation@copadata.com

Konfiguration der Verbindungen zu den Steuerungen.

Parameter | Beschreibung
Connections | Enthält die Konfigurierten Verbindungen. Durch Auswählen einer Verbindung werden die Verbindungseinstellungen rechts angezeigt.
Connection name | Frei wählbarer Name zur leichteren Unterscheidung der Verbindungen.
Net address | Die Netzadresse identifiziert die Verbindung. Jede Verbindung muss daher eine eindeutige Netzadresse haben. Variablen werden einer Verbindung über die Netzadresse zugeordnet.
IP Adresse | IP Adresse der Steuerung, mit der kommuniziert wird.
Port number | TCP Port der Steuerung, mit der kommuniziert wird.
Timeout [ms] | Timeout Zeit in Millisekunden.
Error wait time [ms] | Fehlerwartezeit in Millisekunden.

Neue Verbindung anlegen

  1. klicken Sie auf die Schaltfläche Neu
  2. Tragen Sie die Verbindungsdetails ein
  3. klicken Sie auf Save

Verbindung bearbeiten

  1. wählen Sie in der Verbindungsliste die gewünschte Verbindung
  2. klicken Sie auf die Schaltfläche Edit
  3. ändern Sie die Verbindungsparameter
  4. schließen Sie mit Save ab

Verbindung löschen

  1. wählen Sie in der Verbindungsliste die gewünschte Verbindung
  2. klicken Sie auf die Schaltfläche Delete
  3. die Verbindung wird aus der Liste gelöscht


Variablen anlegen

IEC61499 -> Variablen anlegen

So werden Variablen im zenon Editor angelegt:

Noch in diesem Kapitel

Variablen im Editor anlegen

Adressierung

Treiberobjekte und Datentypen

Variablen anlegen durch Import

Treibervariablen


Variablen im Editor anlegen

IEC61499 -> Variablen anlegen -> Variablen im Editor anlegen

Variablen können angelegt werden:

  • als einfache Variable
  • in Arrays
  • als Struktur-Variablen

Dialog Variable

Um eine neue Variable zu erstellen, gleich welchen Typs:

  1. wählen Sie im Knoten Variablen im Kontextmenü den Befehl Variable neu

  2. der Dialog zur Konfiguration der Variable wird geöffnet
  3. konfigurieren Sie die Variable
  4. welche Einstellungen möglich sind, hängt ab vom Typ der Variablen

Eigenschaft

Beschreibung

Name

Eindeutiger Name der Variablen. Ist eine Variable mit gleichem Namen im Projekt bereits vorhanden, kann keine weitere Variable mit diesem Namen angelegt werden.

Achtung: Das Zeichen # ist im Variablennamen nicht zugelassen. Bei Verwendung nicht zugelassener Zeichen kann die Variablenerstellung nicht abgeschlossen werden, die Schaltfläche Fertigstellen bleibt inaktiv.

Treiber

Wählen Sie aus der Dropdownliste den gewünschten Treiber.

Hinweis: Sollte im Projekt noch kein Treiber angelegt sein, wird automatisch der Treiber für interne Variable (Intern.exe) geladen.

Treiber-Objekttyp

Wählen Sie aus der Dropdownliste den passenden Treiber-Objekttyp aus.

Datentyp

Wählen Sie den gewünschten Datentyp. Klick auf die Schaltfläche ... öffnet den Auswahl-Dialog.

Array-Einstellungen

Erweiterte Einstellungen für Array-Variablen. Details dazu lesen Sie im Abschnitt Arrays.

Adressierungsoptionen

Erweiterte Einstellungen für Arrays und Struktur-Variablen. Details dazu lesen Sie im jeweiligen Abschnitt.

Automatische Elementeaktivierung

Erweiterte Einstellungen für Arrays und Struktur-Variablen. Details dazu lesen Sie im jeweiligen Abschnitt.

Ableitung vom Datentyp

Messbereich, Signalbereich und Sollwert Setzen werden immer:

  • vom Datentyp abgeleitet
  • beim Ändern des Datentyps automatisch angepasst

Hinweis Signalbereich: Bei einem Wechsel auf einen Datentyp, der den eingestellten Signalbereich nicht unterstützt, wird der Signalbereich automatisch angepasst. Zum Beispiel wird bei einem Wechsel von INT auf SINT der Signalbereich auf 127 geändert. Die Anpassung erfolgt auch dann, wenn der Signalbereich nicht vom Datentyp abgeleitet wurde. In diesem Fall muss der Messbereich manuell angepasst werden.


Adressierung

IEC61499 -> Variablen anlegen -> Adressierung

Gruppe/Eigenschaft

Beschreibung

Allgemein

Interne ID: Adressierung

Allgemein

Allgemeine Eigenschaften der Variable oder des Datentyps.

Mehr im Online-Handbuch

Diese Funktion ist in VBA (mit Klassenname) und im XML-Export (ohne Klassenname) wie folgt anzusprechen: ""

Name

Interne ID: Adressierung

Name

Eindeutiger Name der Variable. Das Zeichen # ist nicht erlaubt.
Hinweis: Für Treiber, die auf einer zenon Logic Verbindung beruhen, ist ein Präfix zu beachten. Details siehe Abschnitt Anlegen von B und B Variablen in zenon Logic im Handbuch.
Änderungen des Variablennamens müssen in den Programmierumgebungen (VBA, VSTA, PCE) nachgezogen werden.

Achtung: Diese Eigenschaft steht für die Sprachumschaltung nicht zur Verfügung.

Mehr im Online-Handbuch

Diese Funktion ist in VBA (mit Klassenname) und im XML-Export (ohne Klassenname) wie folgt anzusprechen: ""

Frei vergebbarer Name.

Achtung: Je zenon Projekt muss der Name eindeutig sein.

Kennung

Interne ID: Adressierung

Kennung

Frei definierbarer String für die Identifikation der Variable oder des Datentyps.

Beispiel: Kann bei der Online-Sprachumschaltung anstatt des Variablennamens verwendet werden, da dieser nicht sprachumschaltbar ist.

Mehr im Online-Handbuch

Diese Funktion ist in VBA (mit Klassenname) und im XML-Export (ohne Klassenname) wie folgt anzusprechen: ""

Frei vergebbare Kennung, z. B. für Betriebsmittelkennung, Kommentar...

Adressierung

Interne ID: Adressierung

Adressierung

Eigenschaften für die Adressierung der Variable.

Mehr im Online-Handbuch

Diese Funktion ist in VBA (mit Klassenname) und im XML-Export (ohne Klassenname) wie folgt anzusprechen: ""

Netzadresse

Interne ID: Adressierung

Netzadresse

Busadresse oder Netzadresse der Variable.
Minimum: 0.
Maximum: 4294967295.
Default: 0.

Mehr im Online-Handbuch

Diese Funktion ist in VBA (mit Klassenname) und im XML-Export (ohne Klassenname) wie folgt anzusprechen: ""

Busadresse oder Netzadresse der Variablen.

Diese Adresse bezieht sich auf die Busadresse der Verbindungsprojektierung im Treiber. Damit wird ausgewählt auf welcher Steuerung sich die Variable befindet.

Datenbaustein

Interne ID: Adressierung

Datenbaustein

Nummer des Datenbausteins.
Minimum: 0.
Maximum: 4294967295.
Default: 0.

Mehr im Online-Handbuch

Diese Funktion ist in VBA (mit Klassenname) und im XML-Export (ohne Klassenname) wie folgt anzusprechen: ""

Nicht verwendet

Offset

Interne ID: Adressierung

Offset

Offset der Variable.
Bei linear adressierenden Steuerungen: der Speicherbereich.
Bei namensauflösenden Steuerungen: die Zuweisungsadresse.
Minimum: 0.
Maximum: 4294967295.
Default: 0.

Mehr im Online-Handbuch

Diese Funktion ist in VBA (mit Klassenname) und im XML-Export (ohne Klassenname) wie folgt anzusprechen: ""

Offset der Variablen, gibt die ID der Variable in der Steuerung an. Einstellbar von 0 bis 4294967295 .

Ausrichtung

Interne ID: Adressierung

Ausrichtung

Abhängig von der Granularität des Treibers die Position der Variable innerhalb des definierten Offsets.

Für Byte-Variablen:
HiByte: Höherwertiges Byte im Wort-Offset.
LoByte: Niederwertiges Byte im Wort-Offset.
HiWord-HiByte Höherwerztiges Byte im höherwertigen Wort im Doppelwort-Offset.
HiWord-LoByte: Niederwertiges Byte im höherwertigen Word im Doppelwort-Offset.
LoWord-HiByte: Höherwertiges Byte im niederwertigen Wort im Doppelwort-Offset.
LoWord-LoByte: Niederwertiges Byte im niederwertigen Wort im Doppelwort-Offset.

Für Wort-Variablen:
HiWord: Höherwertiges Wort im Doppelwort-Offset.
LoWord: Niederwertiges Wort im Doppelwort-Offset.

Mehr im Online-Handbuch

Diese Funktion ist in VBA (mit Klassenname) und im XML-Export (ohne Klassenname) wie folgt anzusprechen: ""

Wird für diesen Treiber nicht verwendet.

Bit-Nummer

Interne ID: Adressierung

Bit-Nummer

Nummer des Bits innerhalb des eingestellten Offsets.
Minimum: 0.
Maximum: 65535.
Default: 0.

Mehr im Online-Handbuch

Diese Funktion ist in VBA (mit Klassenname) und im XML-Export (ohne Klassenname) wie folgt anzusprechen: ""

Wird für diesen Treiber nicht verwendet.

Stringlänge

Interne ID: Adressierung

Stringlänge

Nur verfügbar bei String-Variablen:
Maximale Anzahl von Zeichen, die die Variable aufnehmen kann.
Minimum: 0 Zeichen.
Maximum: 65535 Zeichen.
Default: 5 Zeichen.

Mehr im Online-Handbuch

Diese Funktion ist in VBA (mit Klassenname) und im XML-Export (ohne Klassenname) wie folgt anzusprechen: ""

Nur verfügbar bei String-Variablen: Maximale Anzahl von Zeichen, die die Variable aufnehmen kann.

Treiber Anbindung/Treiber-Objekttyp

Interne ID: Adressierung

Treiber-Objekttyp

Abhängig vom verwendeten Teiber wird bei der Erstellung der Variable ein Objekttyp ausgewählt und kann hier später geändert werden.
Siemens: Datenbaustein, Merker, Ein-/Ausgang.
Modbus: Coil und Holding Register.

Mehr im Online-Handbuch

Diese Funktion ist in VBA (mit Klassenname) und im XML-Export (ohne Klassenname) wie folgt anzusprechen: ""

Interne ID: Adressierung

Treiber Anbindung

Treiber-spezifische Eigenschaften für die Variable.

Mehr im Online-Handbuch

Diese Funktion ist in VBA (mit Klassenname) und im XML-Export (ohne Klassenname) wie folgt anzusprechen: ""

Abhängig vom verwendeten Treiber wird bei der Erstellung der Variablen ein Objekttyp ausgewählt und kann hier später geändert werden.

Treiber Anbindung/Datentyp

Interne ID: Adressierung

Datentyp

Datentyp der Variable; wird beim Erstellen der Variable ausgewählt und kann hier später verändert werden.

ACHTUNG: Wenn der Datentyp nachträglich geändert wird, müssen alle anderen Eigenschaften der Variable überprüft bzw. angepasst werden.

Mehr im Online-Handbuch

Diese Funktion ist in VBA (mit Klassenname) und im XML-Export (ohne Klassenname) wie folgt anzusprechen: ""

Datentyp der Variablen. Wird beim Erstellen der Variablen ausgewählt und kann hier später verändert werden.

ACHTUNG: Wenn der Datentyp nachträglich geändert wird, müssen alle anderen Eigenschaften der Variablen überprüft bzw. angepasst werden.


Treiberobjekte und Datentypen

IEC61499 -> Variablen anlegen -> Treiberobjekte und Datentypen

Vorheriges Kapitel Nächstes Kapitel Alle anzeigen Alle anzeigen Alle verbergen Alle verbergen
© Ing. Punzenberger COPA-DATA GmbH. Sollten Sie Fragen oder Anregungen zur Dokumentation haben, wenden Sie sich bitte an: documentation@copadata.com

Treiberobjekte sind in der Steuerung verfügbare Bereiche wie z.B. Merker, Datenbausteine usw. Hier lesen Sie, welche Treiberobjekte vom Treiber zur Verfügung gestellt werden und welche IEC-Datentypen dem jeweiligen Treiberobjekt zugeordnet werden können.

Noch in diesem Kapitel

Treiberobjekte

Zuordnung der Datentypen


Treiberobjekte

IEC61499 -> Variablen anlegen -> Treiberobjekte und Datentypen -> Treiberobjekte

Vorheriges Kapitel Nächstes Kapitel Alle anzeigen Alle anzeigen Alle verbergen Alle verbergen
© Ing. Punzenberger COPA-DATA GmbH. Sollten Sie Fragen oder Anregungen zur Dokumentation haben, wenden Sie sich bitte an: documentation@copadata.com

Folgende Objekttypen stehen in diesem Treiber zur Verfügung:

Treiberobjekttyp | Kanaltyp | Lesen / Schreiben | Unterstützte Datentypen | Beschreibung
SPS-Merker | 8 | L/S | BOOL, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, STRING | SSCP Variable in der Steuerung
Treibervariable | 35 | L/S | BOOL, SINT, USINT, INT, UINT, DINT, UDINT, REAL, STRING | Variablen zur statistischen Auswertung der Kommunikation. Weitere Infos finden Sie bei den Treibervariablen


Zuordnung der Datentypen

IEC61499 -> Variablen anlegen -> Treiberobjekte und Datentypen -> Zuordnung der Datentypen

Vorheriges Kapitel Nächstes Kapitel Alle anzeigen Alle anzeigen Alle verbergen Alle verbergen
© Ing. Punzenberger COPA-DATA GmbH. Sollten Sie Fragen oder Anregungen zur Dokumentation haben, wenden Sie sich bitte an: documentation@copadata.com

Alle Variablen in zenon werden von IEC-Datentypen abgeleitet. In folgender Tabelle werden zur besseren Übersicht die IEC-Datentypen den Datentypen der Steuerung gegenübergestellt.

Steuerung | zenon | Datenart
BOOL | BOOL | 8
USINT | USINT | 9
SINT | SINT | 10
UINT | UINT | 2
INT | INT | 1
UDINT | UDINT | 4
DINT | DINT | 3
- | ULINT | 27
- | LINT | 26
REAL | REAL | 5
LREAL | LREAL | 6
STRING | STRING | 12
- | WSTRING | 21
- | DATE | 18
- | TIME | 17
- | DATE_AND_TIME | 20
- | TOD (Time of Day) | 19

Datenart: Die Eigenschaft Datenart ist die interne numerische Bezeichnung des Datentyps. Diese wird auch für den erweiterten DBF Import/Export der Variablen verwendet.


Variablen anlegen durch Import

IEC61499 -> Variablen anlegen -> Variablen anlegen durch Import

Vorheriges Kapitel Nächstes Kapitel Alle anzeigen Alle anzeigen Alle verbergen Alle verbergen
© Ing. Punzenberger COPA-DATA GmbH. Sollten Sie Fragen oder Anregungen zur Dokumentation haben, wenden Sie sich bitte an: documentation@copadata.com

Variablen können auch mittels Variablenimport angelegt werden. Für jeden Treiber stehen XML- und DBF-Import zur Verfügung.

Noch in diesem Kapitel

XML Import

DBF Import/Export


XML Import

IEC61499 -> Variablen anlegen -> Variablen anlegen durch Import -> XML Import

Vorheriges Kapitel Nächstes Kapitel Alle anzeigen Alle anzeigen Alle verbergen Alle verbergen
© Ing. Punzenberger COPA-DATA GmbH. Sollten Sie Fragen oder Anregungen zur Dokumentation haben, wenden Sie sich bitte an: documentation@copadata.com

Für den Import/Export von Variablen gilt:

  • Der Import/Export darf nicht aus dem Globalprojekt gestartet werden.
  • Der Start erfolgt über:
    • Kontextmenü zu Variablen bzw. Datentyp im Projektbaum
    • oder Kontextmenü einer Variablen bzw. eines Datentyps
    • oder Symbol in der Symbolleiste Variablen

attention Achtung

Beim Import/Überschreiben von existierenden Datentypen werden alle Variablen geändert, die auf diesem existierenden Datentyp basieren.

Beispiel:

Es existiert ein Datentyp XYZ abgeleitet vom Typ INT mit Variablen, die auf diesem Datentyp basieren. Ihre zu importierende XML-Datei enthält ebenfalls einen Datentyp mit Namen XYZ, allerdings abgeleitet vom Typ STRING. Wird dieser Datentyp importiert, so wird der existierende Datentyp überschrieben und bei allen auf ihm basierenden Variablen der Typ angepasst. D.h. die Variablen sind jetzt STRING- und keine INT-Variablen mehr.


DBF Import/Export

IEC61499 -> Variablen anlegen -> Variablen anlegen durch Import -> DBF Import/Export

Vorheriges Kapitel Nächstes Kapitel Alle anzeigen Alle anzeigen Alle verbergen Alle verbergen
© Ing. Punzenberger COPA-DATA GmbH. Sollten Sie Fragen oder Anregungen zur Dokumentation haben, wenden Sie sich bitte an: documentation@copadata.com

Daten können nach dBase exportiert und aus dBase importiert werden.

Import DBF-Datei

Um den Import zu starten:

  1. führen Sie einen Rechtsklick auf die Variablenliste aus
  2. wählen Sie im Dropdownmenü von Erweiterter Export/Import ... den Befehl dBase importieren
  3. folgen Sie dem Importassistenten

Das Format der Datei ist im Kapitel Dateiaufbau beschrieben.

info Info

Beachten Sie:

  • Treiberobjekttyp und Datentyp müssen in der DBF-Datei an den Zieltreiber angepasst werden, damit Variablen importiert werden.
  • dBase unterstützt beim Import keine Strukturen oder Arrays (komplexe Variablen).

Export DBF-Datei

Um den Export zu starten:

  1. führen Sie einen Rechtsklick auf die Variablenliste aus
  2. wählen Sie im Dropdownmenü von Erweiterter Export/Import ... den Befehl dBase exportieren
  3. folgen Sie dem Exportassistenten

attention Achtung

DBF-Dateien:

  • müssen in der Benennung dem 8.3 DOS Format für Dateinamen entsprechen (8 alphanumerische Zeichen für Name, 3 Zeichen Erweiterung, keine Leerzeichen)
  • dürfen im Pfadnamen keinen Punkt (.) enthalten.
    Z.B. ist der Pfad C:\users\Max.Mustermann\test.dbf ungültig.
    Gültig wäre: C:\users\MaxMustermann\test.dbf
  • müssen nahe am Stammverzeichnis (Root) abgelegt werden, um die eventuelle Beschränkungen für Dateinamenlänge inklusive Pfad zu erfüllen: maximal 255 Zeichen

Das Format der Datei ist im Kapitel Dateiaufbau beschrieben.

info Info

dBase unterstützt beim Export keine Strukturen oder Arrays (komplexe Variablen).

Dateiaufbau der dBase Exportdatei

Für den Variablenimport und -export muss die dBaseIV-Datei folgende Struktur und Inhalte besitzen.

attention Achtung

dBase unterstützt keine Strukturen oder Arrays (komplexe Variablen).

DBF-Dateien müssen:

  • in der Benennung dem 8.3 DOS Format für Dateinamen entsprechen (8 alphanumerische Zeichen für Name, 3 Zeichen Erweiterung, keine Leerzeichen)
  • nahe am Stammverzeichnis (Root) abgelegt werden

Struktur

Bezeichnung | Typ | Feldgröße | Bemerkung
KANALNAME | Char | 128 | Variablenname. Länge kann über den Eintrag MAX_LAENGE in der project.ini eingeschränkt werden.
KANAL_R | C | 128 | Ursprünglicher Name einer Variablen, der durch den Eintrag unter KANALNAME ersetzt werden soll (Feld/Spalte muss manuell angelegt werden). Länge kann über den Eintrag MAX_LAENGE in der project.ini eingeschränkt werden.
KANAL_D | Log | 1 | Variable wird bei Eintrag 1 gelöscht (Feld/Spalte muss manuell angelegt werden).
TAGNR | C | 128 | Kennung. Länge kann über den Eintrag MAX_LAENGE in der project.ini eingeschränkt werden.
EINHEIT | C | 11 | Technische Maßeinheit
DATENART | C | 3 | Datenart (z.B. Bit, Byte, Wort, ...) entspricht dem Datentyp.
KANALTYP | C | 3 | Speicherbereich in der SPS (z.B. Merkerbereich, Datenbereich, ...) entspricht Treiber-Objekttyp.
HWKANAL | Num | 3 | Bus-Adresse
BAUSTEIN | N | 3 | Datenbaustein-Adresse (nur bei Variablen aus den Datenbereich der SPS)
ADRESSE | N | 5 | Offset
BITADR | N | 2 | Für Bit-Variablen: Bitadresse Für Byte-Variablen: 0=niederwertig, 8=höherwertig Für String-Variablen: Stringlänge (max. 63 Zeichen)
ARRAYSIZE | N | 16 | Anzahl der Variablen im Array für Index-Variablen ACHTUNG: Nur die erste Variable steht voll zur Verfügung. Alle folgenden sind nur über VBA oder den Rezeptgruppen Manager zugänglich
LES_SCHR | L | 1 | Lese-Schreib-Berechtigung 0: Sollwert setzen ist nicht erlaubt 1: Sollwert setzen ist erlaubt
MIT_ZEIT | L | 1 | Zeitstempelung in zenon (nur wenn vom Treiber unterstützt)
OBJEKT | N | 2 | Treiberspezifische ID-Nummer des Primitivobjekts setzt sich zusammen aus KANALTYP und DATENART
SIGMIN | Float | 16 | Rohwertsignal minimal (Signalauflösung)
SIGMAX | F | 16 | Rohwertsignal maximal (Signalauflösung)
ANZMIN | F | 16 | technischer Wert minimal (Messbereich)
ANZMAX | F | 16 | technischer Wert maximal (Messbereich)
ANZKOMMA | N | 1 | Anzahl der Nachkommastellen für die Darstellung der Werte (Messbereich)
UPDATERATE | F | 19 | Updaterate für Mathematikvariablen (in sec, eine Dezimalstelle möglich) bei allen anderen Variablen nicht verwendet
MEMTIEFE | N | 7 | Nur aus Kompatibilitätsgründen vorhanden
HDRATE | F | 19 | HD-Updaterate für hist. Werte (in sec, eine Dezimalstelle möglich)
HDTIEFE | N | 7 | HD-Eintragtiefe für hist. Werte (Anzahl)
NACHSORT | L | 1 | HD-Werte als nachsortierte Werte
DRRATE | F | 19 | Aktualisierung an die Ausgabe (für zenon DDE-Server, in sec, eine Kommastelle möglich)
HYST_PLUS | F | 16 | Positive Hysterese; ausgehend vom Messbereich
HYST_MINUS | F | 16 | Negative Hyterese; ausgehend vom Messbereich
PRIOR | N | 16 | Priorität der Variable
REAMATRIZE | C | 32 | Name der zugeordnete Reaktionsmatrix
ERSATZWERT | F | 16 | Ersatzwert; ausgehend vom Messbereich
SOLLMIN | F | 16 | Sollwertgrenze Minimum; ausgehend vom Messbereich
SOLLMAX | F | 16 | Sollwertgrenze Maximum; ausgehend vom Messbereich
VOMSTANDBY | L | 1 | Variable vom Standby Server anfordern; der Wert der Variable wird im redundanten Netzwerkbetrieb nicht vom Server sondern vom Standby-Server angefordert
RESOURCE | C | 128 | Betriebsmittelkennung. Freier String für Export und Anzeige in Listen. Länge kann über den Eintrag MAX_LAENGE in der project.ini eingeschränkt werden.
ADJWVBA | L | 1 | Nichtlineare Wertanpassung: 0: Nichtlineare Wertanpassung wird verwendet 1: Nichtlineare Wertanpassung wird nicht verwendet
ADJZENON | C | 128 | Verknüpftes VBA-Makro zum Lesen der Variablenwerte für die nichtlineare Wertanpassung.
ADJWVBA | C | 128 | Verknüpftes VBA-Makro zum Schreiben der Variablenwerte für die nichtlineare Wertanpassung.
ZWREMA | N | 16 | Verknüpfte Zählwert-Rema.
MAXGRAD | N | 16 | Maximaler Gradient für die Zählwert-Rema.

attention Achtung

Beim Import müssen Treiberobjekttyp und Datentyp in der DBF-Datei an den Zieltreiber angepasst werden, damit Variablen importiert werden.

Grenzwertdefinition

Grenzwertdefinition für Grenzwert 1 bis 4, bzw. Zustand 1 bis 4:

Bezeichnung | Typ | Feldgröße | Bemerkung
AKTIV1 | L | 1 | Grenzwert aktiv (pro Grenzwert vorhanden)
GRENZWERT1 | F | 20 | technischer Wert oder ID-Nummer der verknüpften Variable für einen dynamischen Grenzwert (siehe VARIABLEx) (wenn unter VARIABLEx 1 steht und hier -1, wird die bestehende Variablenzuordnung nicht überschrieben)
SCHWWERT1 | F | 16 | Schwellwert für den Grenzwert
HYSTERESE1 | F | 14 | wird nicht verwendet
BLINKEN1 | L | 1 | Blinkattribut setzen
BTB1 | L | 1 | Protokollierung in CEL
ALARM1 | L | 1 | Alarm
DRUCKEN1 | L | 1 | Druckerausgabe (bei CEL oder Alarm)
QUITTIER1 | L | 1 | quittierpflichtig
LOESCHE1 | L | 1 | löschpflichtig
VARIABLE1 | L | 1 | dyn. Grenzwertverknüpfung der Grenzwert wird nicht durch einen absoluten Wert (siehe Feld GRENZWERTx) festgelegt.
FUNC1 | L | 1 | Funktionsverknüpfung
ASK_FUNC1 | L | 1 | Ausführung über die Alarmverwaltung
FUNC_NR1 | N | 10 | ID-Nummer der verknüpften Funktions (steht hier -1, so wird die bestehende Funktion beim Import nicht überschrieben)
A_GRUPPE1 | N | 10 | Alarm/Ereignis-Gruppe
A_KLASSE1 | N | 10 | Alarm/Ereignis-Klasse
MIN_MAX1 | C | 3 | Minimum, Maximum
FARBE1 | N | 10 | Farbe als Windowskodierung
GRENZTXT1 | C | 66 | Grenzwerttext
A_DELAY1 | N | 10 | Zeitverzögerung
INVISIBLE1 | L | 1 | Unsichtbar

Bezeichnungen in der Spalte Bemerkung beziehen sich auf die in den Dialogboxen zur Definition von Variablen verwendeten Begriffe. Bei Unklarheiten, siehe Kapitel Variablendefinition.


Treibervariablen

IEC61499 -> Variablen anlegen -> Treibervariablen

Das Treiberkit implementiert eine Reihe von Treibervariablen. Diese sind unterteilt in:

  • Information
  • Konfiguration
  • Statistik und
  • Fehlermeldungen

Die Definitionen der im Treiberkit implementierten Variablen sind in der Importdatei drvvar.dbf (auf der CD im Verzeichnis: CD_Laufwerk:/Predefined/Variables) verfügbar und können von dort importiert werden.

Hinweis: Variablennamen müssen in zenon einzigartig sein. Soll nach einem Import der Treibervariablen aus drvvar.dbf ein erneuter Import durchgeführt werden, müssen die zuvor importierten Variablen umbenannt werden.

info Info

Nicht jeder Treiber unterstützt alle Treibervariablen.

Zum Beispiel werden:

  • Variablen für Modem-Informationen nur von modemfähigen Treibern unterstützt
  • Treibervariablen für den Polling-Zyklus nur für rein pollenden Treibern
  • verbindungsbezogene Informationen wie ErrorMSG nur von Treibern, die zu einem Zeitpunkt nur eine Verbindung bearbeiten

Information

Name aus Import | Typ | Offset | Erklärung
MainVersion | UINT | 0 | Haupt-Versionsnummer des Treibers.
SubVersion | UINT | 1 | Sub-Versionsnummer des Treibers.
BuildVersion | UINT | 29 | Build-Versionsnummer des Treibers.
RTMajor | UINT | 49 | zenon Hauptversionsnummer
RTMinor | UINT | 50 | zenon Sub-Versionsnummer
RTSp | UINT | 51 | zenon Servicepack-Nummer
RTBuild | UINT | 52 | zenon Buildnummer
LineStateIdle | BOOL | 24.0 | TRUE, wenn die Modemleitung belegt ist.
LineStateOffering | BOOL | 24.1 | TRUE, wenn ein Anruf rein kommt.
LineStateAccepted | BOOL | 24.2 | Der Anruf wird angenommen.
LineStateDialtone | BOOL | 24.3 | Rufton wurde erkannt.
LineStateDialing | BOOL | 24.4 | Wahl aktiv.
LineStateRingBack | BOOL | 24.5 | Während Verbindungsaufbau.
LineStateBusy | BOOL | 24.6 | Zielstation besetzt.
LineStateSpecialInfo | BOOL | 24.7 | Spezielle Statusinformation empfangen.
LineStateConnected | BOOL | 24.8 | Verbindung hergestellt.
LineStateProceeding | BOOL | 24.9 | Wahl ausgeführt.
LineStateOnHold | BOOL | 24.10 | Verbindung in Halten.
LineStateConferenced | BOOL | 24.11 | Verbindung im Konferenzmodus.
LineStateOnHoldPendConf | BOOL | 24.12 | Verbindung in Halten für Konferenz.
LineStateOnHoldPendTransfer | BOOL | 24.13 | Verbindung in Halten für Transfer.
LineStateDisconnected | BOOL | 24.14 | Verbindung beendet.
LineStateUnknow | BOOL | 24.15 | Verbindungszustand nicht bekannt.
ModemStatus | UDINT | 24 | Aktueller Modemstatus.
TreiberStop | BOOL | 28 | Treiber gestoppt Bei Treiberstop, hat die Variable den Wert TRUE und ein OFF-Bit. Nach dem Treiberstart, hat die Variable den Wert FALSE und kein OFF-Bit.
SimulRTState | UDINT | 60 | Informiert über Status der Runtime bei Treibersimulation.

Konfiguration

Name aus Import | Typ | Offset | Erklärung
ReconnectInRead | BOOL | 27 | Wenn TRUE, dann wird beim Lesen automatisch ein Neuaufbau der Verbindung durchgeführt.
ApplyCom | BOOL | 36 | Änderungen an den Einstellungen der seriellen Schnittstelle zuweisen. Das Schreiben auf diese Variable hat unmittelbar den Aufruf der Methode SrvDrvVarApplyCom zur Folge (aktuell ohne weitere Funktion).
ApplyModem | BOOL | 37 | Änderungen an den Modemeinstellungen zuweisen. Das Schreiben auf diese Variable hat unmittelbar den Aufruf der Methode SrvDrvVarApplyModem zur Folge. Diese schließt die aktuelle Verbindung und öffnet eine neue entsprechend den Einstellungen PhoneNumberSet und ModemHwAdrSet.
PhoneNumberSet | STRING | 38 | Telefonnummer, welche verwendet werden soll.
ModemHwAdrSet | DINT | 39 | Hardwareadresse, welche zu der Telefonnummer gehört.
GlobalUpdate | UDINT | 3 | Updatezeit in Millisekunden (ms).
BGlobalUpdaten | BOOL | 4 | TRUE, wenn die Updatezeit global ist.
TreiberSimul | BOOL | 5 | TRUE, wenn der Treiber in Simulation ist.
TreiberProzab | BOOL | 6 | TRUE, wenn das Prozessabbild gehalten werden soll.
ModemActive | BOOL | 7 | TRUE, wenn das Modem bei diesem Treiber aktiv ist.
Device | STRING | 8 | Name der seriellen Schnittstelle oder Name des Modem.
ComPort | UINT | 9 | Nummer der seriellen Schnittstelle.
Baudrate | UDINT | 10 | Baudrate der seriellen Schnittstelle.
Parity | SINT | 11 | Parität der seriellen Schnittstelle.
ByteSize | SINT | 14 | Bitanzahl pro Zeichen der seriellen Schnittstelle. Wert = 0, wenn der Treiber keine serielle Kommunikation herstellen kann.
StopBit | SINT | 13 | Anzahl der Stoppbits der seriellen Schnittstelle.
Autoconnect | BOOL | 16 | TRUE, wenn die Modemverbindung automatisch beim Lesen/Schreiben aufgebaut werden soll.
PhoneNumber | STRING | 17 | Aktuelle Telefonnummer.
ModemHwAdr | DINT | 21 | Hardwareadresse zur aktuellen Telefonnummer.
RxIdleTime | UINT | 18 | Wenn länger als diese Zeit in Sekunden (s) erfolgreich kein Datenverkehr stattfindet, wird die Modemverbindung beendet.
WriteTimeout | UDINT | 19 | Maximale Schreibdauer bei einer Modemverbindung in Millisekunden (ms).
RingCountSet | UDINT | 20 | So oft läutet ein hereinkommender Anruf, bevor dieser angenommen wird.
ReCallIdleTime | UINT | 53 | Wartezeit zwischen Anrufen in Sekunden (s).
ConnectTimeout | UDINT | 54 | Zeit in Sekunden (s) für Verbindungsaufbau.

Statistik

Name aus Import | Typ | Offset | Erklärung
MaxWriteTime | UDINT | 31 | Längste Zeit in Millisekunden (ms), die zum Schreiben benötigt wird.
MinWriteTime | UDINT | 32 | Kürzeste Zeit in Millisekunden (ms), die zum Schreiben benötigt wird.
MaxBlkReadTime | UDINT | 40 | Längste Zeit in Millisekunden (ms), die zum Lesen eines Datenblocks benötigt wird.
MinBlkReadTime | UDINT | 41 | Kürzeste Zeit in Millisekunden (ms), die zum Lesen eines Datenblocks benötigt wird.
WriteErrorCount | UDINT | 33 | Anzahl der Schreibfehler.
ReadSucceedCount | UDINT | 35 | Anzahl der erfolgreichen Leseversuche.
MaxCycleTime | UDINT | 22 | Längste Zeit in Millisekunden (ms), die zum Lesen aller angeforderten Daten benötigt wurde.
MinCycleTime | UDINT | 23 | Kürzeste Zeit in Millisekunden (ms), die zum Lesen aller angeforderten Daten benötigt wurde.
WriteCount | UDINT | 26 | Anzahl der Schreibversuche.
ReadErrorCount | UDINT | 34 | Anzahl der fehlerhaften Leseversuche.
MaxUpdateTimeNormal | UDINT | 56 | Zeit seit letzter Aktualisierung der Prioritätsgruppe Normal in Millisekunden (ms).
MaxUpdateTimeHigher | UDINT | 57 | Zeit seit letzter Aktualisierung der Prioritätsgruppe Höher in Millisekunden (ms).
MaxUpdateTimeHigh | UDINT | 58 | Zeit seit letzter Aktualisierung der Prioritätsgruppe Hoch in Millisekunden (ms).
MaxUpdateTimeHighest | UDINT | 59 | Zeit seit letzter Aktualisierung der Prioritätsgruppe Höchste in Millisekunden (ms).
PokeFinish | BOOL | 55 | Geht für eine Abfrage auf 1, wenn alle anstehenden Pokes ausgeführt wurden.

Fehlermeldungen

Name aus Import | Typ | Offset | Erklärung
ErrorTimeDW | UDINT | 2 | Zeit (in Sekunden seit 1.1.1970), wann der letzte Fehler auftrat.
ErrorTimeS | STRING | 2 | Zeit (in Sekunden seit 1.1.1970), wann der letzte Fehler als String auftrat.
RdErrPrimObj | UDINT | 42 | Nummer des PrimObjektes, als der letzte Lesefehler verursacht wurde.
RdErrStationsName | STRING | 43 | Name der Station, als der letzte Lesefehler verursacht wurde.
RdErrBlockCount | UINT | 44 | Anzahl der zu lesenden Blöcke, als der letzte Lesefehler verursacht wurde.
RdErrHwAdresse | UDINT | 45 | Hardwareadresse, als der letzte Lesefehler verursacht wurde.
RdErrDatablockNo | UDINT | 46 | Bausteinnummer, als der letzte Lesefehler verursacht wurde.
RdErrMarkerNo | UDINT | 47 | Merkernummer, als der letzte Lesefehler verursacht wurde.
RdErrSize | UDINT | 48 | Blockgröße, als der letzte Lesefehler verursacht wurde.
DrvError | SINT | 25 | Fehlermeldung als Nummer.
DrvErrorMsg | STRING | 30 | Fehlermeldung als Klartext.
ErrorFile | STRING | 15 | Name der Fehlerprotokolldatei.


Treiberspezifische Funktionen

IEC61499 -> Treiberspezifische Funktionen

Dieser Treiber unterstützt folgende Funktionen:

Keine


Treiberkommandos

IEC61499 -> Treiberkommandos

Dieses Kapitel beschreibt Standardfunktionalitäten, die für die meisten zenon Treiber gültig sind. Nicht alle hier beschriebenen Funktionalitäten stehen für jeden Treiber zur Verfügung. Zum Beispiel enthält ein Treiber, der laut Datenblatt keine Modemverbindung unterstützt, auch keine Modem-Funktionalitäten.

Treiberkommandos dienen dazu, Treiber über zenon zu beeinflussen, z. B. starten und stoppen.
Die Projektierung erfolgt über die Funktion Treiber Kommandos. Dazu:

  • legen Sie eine neue Funktion an
  • wählen Sie Variablen -> Treiberkommandos
  • der Dialog zur Konfiguration wird geöffnet

Parameter

Beschreibung

Treiber

Dropdownliste mit allen im Projekt geladenen Treibern.

Aktueller Zustand

Fixer Eintrag, in aktuellen Versionen ohne Funktion.

Treiberkommando

Dropdownliste zur Auswahl des Kommandos.
  • Treiber starten (Online-Modus)

Treiber wird neu initialisiert und gestartet.
  • Treiber stoppen (Offline-Modus)

Treiber wird angehalten, es werden keine neuen Daten angenommen.

Hinweis: Ist der Treiber im Offline-Modus, erhalten alle Variablen, die für diesem Treiber angelegt wurden, den Status Abgeschaltet (OFF; Bit 20).

  • Treiber in Simulationsmodus

Treiber wird in den Simulationsmodus gesetzt.
Die Werte aller Variablen des Treibers werden vom Treiber simuliert. Es werden keine Werte von der angeschlossenen Hardware (z.B. SPS, Bussystem, ...) angezeigt.
  • Treiber in Hardwaremodus

Treiber wird in den Hardwaremodus gesetzt.
Für die Variablen des Treibers werden die Werte von der angeschlossenen Hardware (z.B. SPS, Bussystem, ...) angezeigt.
  • Treiberspezifisches Kommando

Eingabe treiberspezifischer Kommandos. Öffnet Eingabefeld für die Eingabe eines Kommandos.
  • Treiber Sollwertsetzen aktivieren

Sollwert setzen auf Treiber ist erlaubt.
  • Treiber Sollwertsetzen deaktivieren

Sollwert setzen auf Treiber wird verhindert.
  • Verbindung mit Modem aufbauen

Verbindung aufbauen (für Modem-Treiber). Öffnet Eingabefelder für Hardware-Adresse und Eingabe der zu wählenden Nummer.
  • Verbindung mit Modem trennen

Verbindung beenden (für Modem-Treiber).

Diesen Dialog zur Runtime anbieten

Dialog wird zur Runtime für Änderungen angeboten.

Treiberkommandos im Netzwerk

Wenn sich der Rechner, auf dem die Funktion Treiberkommandos ausgeführt wird, im zenon Netzwerk befindet, werden zusätzliche Aktionen ausgeführt. Ein spezielles Netzwerkkommando wird vom Rechner zum Server des Projekts gesendet, der dann die gewünschte Aktion auf seinem Treiber durchführt. Zusätzlich sendet der Server das gleiche Treiberkommando zum Standby des Projekts. Der Standby führt die Aktion auch auf seinem Treiber aus.

Dadurch ist gewährleistet, dass Server und Standby synchronisiert sind. Dies funktioniert nur, wenn Server und Standby jeweils eine funktionierende und unabhängige Verbindung zur Hardware haben.


Service and protocol specification

IEC61499 -> Service and protocol specification

SIMPLE spontaneous communication protocol

Connecting industrial controls to a SCADA system

Version 1.0

Automation and Control Institute, TU-Wien

Ing. Punzenberger COPA-DATA GmbH

Contents

  • Tables
  • Introduction
  • Service specification
  • Common service parameters
  • Subscribe service
  • Unsubscribe service
  • Notification service
  • Write service
  • Ping service
  • Service directions
  • Protocol specification
  • Encoding of PDU data types
  • PDU encoding
  • PDU header
  • Service parameters
  • Appendix
  • Generic server implementation for IEC61499 based controls

Tables

  • Table 1: Service status codes
  • Table 2: Service DP-Flags
  • Table 3: Subscribe service - Service parameters
  • Table 4: Unsubscribe service - Service parameters
  • Table 5: Notification service - Service parameters
  • Table 6: Write service - Service parameters
  • Table 7: Ping service - Service parameters
  • Tabelle 8: Service directions
  • Table 9: PDU encoding - PDU data types
  • Table 10: PDU encoding – PDU header
  • Table 11: PDU encoding - Type of service
  • Table 12: Parameter encoding - Subscribe request
  • Table 13: Parameter encoding - Subscribe response
  • Table 14: Parameter encoding - Notification
  • Table 15: Parameter encoding - Unsubscribe request
  • Table 16: Parameter encoding - Unsubscribe response
  • Table 17: Parameter encoding - Write request
  • Table 18: Parameter encoding - Write response
  • Table 19: Parameter encoding - Ping request
  • Table 20: Parameter encoding - Ping response

Introduction

The aim of this document is the specification of a simple communication protocol enabling a SCADA system to spontaneously read data-points from industrial controls and to write values to data points. Data-points are implicitly or explicitly defined variables with a primitive data type (BOOL, USINT, SINT, UINT, INT, UDINT, DINT, REAL, LREAL or STRING). A data-point is addressed by a numerical ID, uniquely identifying the data-point inside a control.

This specification covers the layers 5 through 7 of the ISO/OSI reference model; it does not define any requirements for the layers 1 to 4, except that a reliable connection orientated transport protocol (like. TCP) must be used.

Noch in diesem Kapitel

Service specification

Protocol specification

Appendix


Service specification

IEC61499 -> Service and protocol specification -> Service specification

Vorheriges Kapitel Nächstes Kapitel Alle anzeigen Alle anzeigen Alle verbergen Alle verbergen
© Ing. Punzenberger COPA-DATA GmbH. Sollten Sie Fragen oder Anregungen zur Dokumentation haben, wenden Sie sich bitte an: documentation@copadata.com

Service specification

Services are initiated by a service request. The service is then executed on the remote host and the execution is either explicitly acknowledged by a service response or implicitly by the lower communication layers. Services must be executed sequentially (i.e. the next service must not be initiated before the last service has been completed).

The execution domain of the services is the ISO/OSI layer four connection. A device may support multiple connections. If a connection is terminated all resources allocated to that connection and the services executed are freed in the device.

Common service parameters

This section describes commonly used service parameters.

Time-stamp

The time is given in seconds since 1.1.1970 UTC. Time units smaller than seconds can be expressed using the fractional part.

The time stamp may be zero in case the device does not support time stamping.

Status

Service status codes

Value | Description
0 | Success
1 | Reserved
2 | Invalid parameters
3 | Invalid data point ID
4 | Operation on data point failed
5 | Operation not permitted
6...240 | Reserved
241...255 | Device specific

Table 1: Service status codes

DP-Flags

This parameter contains additional status information on the data-point. It is only present in positive responses (i.e. the error-code parameter contains zero)

Flag | Bit | Description
FLAG_NO_VALUE | 0 | The data point does not contain a valid value

Table 2: Service DP-Flags

Subscribe service

Register a data-point (DP) for change of value reporting. When a device receives a subscribe service request and the given DP exists the device includes the current value of the DP in the service responds and starts monitoring the DP. If the value of the DP changes the device compares its value (CV) with the last value transmitted (LV) to the SCADA system. If one of the equations below becomes true a notification service request is sent by the device. The last value transmitted either by the subscribe response or a notification request must be stored internally in the device.

  1. CV > LV + Positive hysteresis
  2. CV < LV – Negative hysteresis

Positive and negative hysteresis cannot be defined for data-points of the data type STRING. For strings each change of value is reported to the SCADA system.

If the ISO/OSI layer four connection is terminated all subscribed data-points are unsubscribed automatically when the devices frees the resources allocated by the connection.

If a subscribe service request is received for a data-point, which has been already subscribed, a positive response is sent including the current value of the data point. The second request does not change the DP’s subscription state, i.e. possibly differing hysteresis information is ignored.

Parameter name | Data type | Req | Res
Data-point ID | UDINT | M | M (=)
Positive hysteresis | [ANY] | O | -
Negative hysteresis | [ANY] | O | -
Status | USINT | - | M
DP-Flags | USINT | - | O
Time-stamp | LREAL | - | O
Value | [ANY] | - | O

Table 3: Subscribe service - Service parameters

Data-point ID

This parameter contains the unique ID of the data point.

Positive hysteresis

Optional - Positive hysteresis. If this parameter is omitted the positive hysteresis is set to zero.

Negative hysteresis

Optional - Negative hysteresis. If this parameter is omitted the negative hysteresis is set to zero.

Status

See section "Common service parameters".

Flags

See section "Common service parameters".

This field is only present in positive responses (i.e. the error-code parameter contains zero)

Time-stamp

Time-stamp describing the time the data-point has been assigned the value contained in this notification.

This field is omitted if the notification does not contain a value.

See section "Common service parameters".

Value

This parameter contains the current value of the data-point. It is omitted if the data-point does not contain a valid value (The flags parameter contains FLAG_NO_VALUE flag) or in case of a negative response.

(*) If positive or negative hysteresis is used both parameters must be present and of the same data type.

Unsubscribe service

Unsubscribe a data-point previously registered for change of value reporting.

Parameter name | Data type | Req | Res
Data-point ID | UDINT | M | M (=)
Status | USINT | - | M

Table 4: Unsubscribe service - Service parameters

Data-point ID

This parameter contains the unique ID of the data point.

Status

See section "Common service parameters".

Notification service

A notification service request is sent by the device when a monitored data-point changes its value. See section "Subscribe service".

Parameter name | Data type | Req
Data-point ID | UDINT | M
Flags | USINT | M
Time-stamp | LREAL | O
Value | [ANY] | O

Table 5: Notification service - Service parameters

Data-point ID

This parameter contains the unique ID of the data point.

Flags

See section "Common service parameters".

This field is only present in positive responses (i.e. the error-code parameter contains zero)

Time-stamp

Time-stamp describing the time the data-point has been assigned the value contained in this notification.

This field is omitted if the notification does not contain a value.

See section "Common service parameters".

Value

This parameter contains the current value of the data-point. It is omitted if the data-point does not contain a valid value (The flags parameter contains FLAG_NO_VALUE flag) or in case of a negative response.

Write service

The write service is initiated by the SCADA system. It is used to write a value defined by the SCADA to the specified data-point of the device.

Parameter name | Data type | Req | Res
Data-point ID | UDINT | M | M (=)
Value | [ANY] | M | -
Status | USINT | - | M

Table 6: Write service - Service parameters

Data-point ID

This parameter contains the unique ID of the data-point.

Value

This parameter contains the value which should be written to the data-point.

Status

See section "Common service parameters".

Ping service

The ping service can be used by a host to verify that the connection to the remote machine is still valid. This is especially important if the connection is not cyclically tested by the lower ISO/OSI layers. This service can be initiated by either the SCADA system or the device.

Parameter name | Data type | Req | Res
Cookie | UDINT | M | M (=)
Status | USINT | - | M

Table 7: Ping service - Service parameters

Cookie

Arbitrary value repeated in the response.

Status

See section "Common service parameters".

Service directions

 | SCADA system | Industrial control / PLC
Subscribe | Initiate | Execute
Unsubscribe | Initiate | Execute
Notification | Execute | Initiate
Write | Initiate | Execute
Ping | Initiate, Execute | Initiate, Execute

Tabelle 8: Service directions


Protocol specification

IEC61499 -> Service and protocol specification -> Protocol specification

Vorheriges Kapitel Nächstes Kapitel Alle anzeigen Alle anzeigen Alle verbergen Alle verbergen
© Ing. Punzenberger COPA-DATA GmbH. Sollten Sie Fragen oder Anregungen zur Dokumentation haben, wenden Sie sich bitte an: documentation@copadata.com

This chapter defines the protocol data units (PDU) used to transmit the service requests and responses already described.

Encoding of PDU data types

The following table describes the encoding of the PDU data types.

Type | Encoding
BOOL | 8 Bit 0 … FALSE 1 … TRUE 2 … 255 Reserved
SINT, USINT | 8 Bit
INT, UINT | 16 Bit, Big-endian
DINT, UDINT | 32 Bit, Big-endian
LREAL | ANSI/IEEE-754 double precision floating point (64 Bit)
[ANY] | Encoding according to ASN.1 BER

Table 9: PDU encoding - PDU data types

PDU encoding

This section describes the encoding of the PDUs used to transmit the service requests and responses.

PDU header

Each telegram transmitted starts with the PDU header defined in the table below.

Offset | Data type | Field
0 | USINT | Reserved (0)
1 | UINT | Length
3 | UINT | Reserved (1)
5 | UINT | Service
7 | - | Service parameters

Table 10: PDU encoding – PDU header

Reserved (0) [USINT]

Reserved for future use.

Length [UINT]

This field defines the length of the service parameters in Bytes.

Reserved (1) [UINT]

Reserved for future use.

Service [UINT]

This field is used to identify the service type. The possible types are listed in the following table.

Value (hex) | Type of service
0000 | Reserved
0001 | Subscribe request
8001 | Subscribe response
0002 | Unsubscribe request
8002 | Unsubscribe response
0003 | Notification request
0004 | Write request
8004 | Write response
0005 | Ping request
8005 | Ping response
0006...8000 | Reserved
8006…FFFF | Reserved

Table 11: PDU encoding - Type of service

Service parameters

The tables below describe the encoding of the service parameters defined in the section "".

Offset | Parameter name | Data type
0 | Data-point ID | UDINT
4 | Positive hysteresis | [ANY]
- | Negative hysteresis | [ANY]

Table 12: Parameter encoding - Subscribe request

Offset | Parameter name | Data type
0 | Data-point ID | UDINT
4 | Status | USINT
5 | Flags | USINT
6 | Time-stamp | U64
14 | Value | [ANY]

Table 13: Parameter encoding - Subscribe response

Offset | Parameter name | Data type
0 | Data-point ID | UDINT
4 | Flags | USINT
5 | Time-stamp | U64
13 | Value | [ANY]

Table 14: Parameter encoding - Notification

Offset | Parameter name | Data type
0 | Data-point ID | UDINT

Table 15: Parameter encoding - Unsubscribe request

Offset | Parameter name | Data type
0 | Data-point ID | UDINT
4 | Status | USINT

Table 16: Parameter encoding - Unsubscribe response

Offset | Parameter name | Data type
0 | Data-point ID | UDINT
4 | Value | [ANY]

Table 17: Parameter encoding - Write request

Offset | Parameter name | Data type
0 | Data-point ID | UDINT
4 | Status | USINT

Table 18: Parameter encoding - Write response

Offset | Parameter name | Data type
0 | Cookie | UDINT

Table 19: Parameter encoding - Ping request

Offset | Parameter name | Data type
0 | Cookie | UDINT
4 | Status | USINT

Table 20: Parameter encoding - Ping response


Appendix

IEC61499 -> Service and protocol specification -> Appendix

Generic server implementation for IEC61499 based controls

The communication is done via a separate SCADA resource. This SCADA resource multiplexes the data coming from the application and puts this data stream into the server block. This is for data to be presented in the SCADA system. In the other direction (e.g. set points from SCADA) the SCADA sends a data stream to the IEC 61499 server function block. The connected de-multiplexer extracts the date and provides it to the application.


Fehleranalyse

IEC61499 -> Fehleranalyse

Sollte es zu Kommunikationsproblemen kommen, bietet dieses Kapitel Hilfen, um den Fehler zu finden.

Noch in diesem Kapitel

Analysetool

Checkliste


Analysetool

IEC61499 -> Fehleranalyse -> Analysetool

Alle zenon Module wie z.B. Editor, Runtime, Treiber, usw. schreiben Meldungen in eine gemeinsame Log-Datei. Um sie korrekt und übersichtlich anzuzeigen, benutzen Sie das Programm Diagnose Viewer, das mit zenon mitinstalliert wird. Sie finden es unter Start/Alle Programme/zenon/Tools 7.00 -> Diagviewer.

zenon Treiber protokollieren alle Fehler in Log-Dateien. Der Standardordner für die Log-Dateien ist der Ordner LOG unterhalb des Ordners ProgramData, zum Beispiel: C:\ProgramData\zenon \zenon700\LOG für die zenon Version 7.00 SP0. Log-Dateien sind Textdateien mit einer speziellen Struktur.

Achtung: Mit den Standardeinstellungen zeichnet ein Treiber nur Fehlerinformationen auf. Mit dem Diagnose Viewer kann bei den meisten Treibern die Diagnose-Ebene auf „Debug" und „Deep Debug" erweitert werden. Damit protokolliert der Treiber auch alle anderen wesentlichen Aufgaben und Ereignisse.

Im Diagnose Viewer kann man auch:

  • eben erstellte Einträge live mitverfolgen
  • die Aufzeichnungseinstellungen anpassen
  • den Ordner, in dem die Log-Dateien gespeichert werden, ändern

Hinweise:

  1. Unter Windows CE werden aus Ressourcegründen auch Fehler standardmäßig nicht protokolliert.
  2. Der Diagnose Viewer zeigt alle Einträge in UTC (Koordinierter Weltzeit) an und nicht in der lokalen Zeit.
  3. Der Diagnose Viewer zeigt in seiner Standardeinstellung nicht alle Spalten einer Log-Datei an. Um mehr Spalten anzuzeigen, aktivieren Sie die Eigenschaft Add all columns with entry im Kontextmenü der Spaltentitel.
  4. Bei Verwendung von reinem Error-Logging befindet sich eine Problembeschreibung in der Spalte Error text. In anderen Diagnose-Ebenen befindet sich diese Beschreibung in der Spalte General text.
  5. Viele Treiber zeichnen bei Kommunikationsprobleme auch Fehlernummern auf, die die SPS ihnen zuweist. Diese werden in Error text und/oder Error code und/oder Driver error parameter(1 und 2) angezeigt. Hinweise zur Bedeutung der Fehlercodes erhalten Sie in der Treiberdokumentation und der Protokoll/SPS-Beschreibung.
  6. Stellen Sie am Ende Ihrer Tests den Diagnose-Level von Debug oder Deep Debug wieder zurück. Bei Debug und Deep Debug fallen beim Protokollieren sehr viele Daten an, die auf der Festplatte gespeichert werden und die Leistung Ihres Systems beeinflussen können. Diese werden auch nach dem Schließen des Diagnose Viewers weiter aufgezeichnet.

info Info

Weitere Informationen zum Diagnose Viewer finden Sie im Kapitel Diagnose Viewer.


Checkliste

IEC61499 -> Fehleranalyse -> Checkliste

Überprüfen Sie bei Kommunikationsfehler:

  • Ist die Steuerung an die Stromversorgung angeschlossen?
  • Sind die Teilnehmer im TCP/IP-Netz verfügbar?
  • Kann die Steuerung über den Ping Befehl erreicht werden?
  • Kann die Steuerung auf dem entsprechenden Port über TELNET erreicht werden?
  • Wurde die Netzadresse sowohl im Treiberdialog als auch in den Adresseigenschaften der Variablen korrekt eingestellt.?
  • Wird in der Variable der richtige Objekttyp verwendet?
  • Stimmt die Offset-Adressierung der Variablen mit der ID in der Steuerung überein?
  • Analyse mit Hilfe des Diagnose Viewers: Welche Meldungen werden angezeigt?