Definition einer native EIP Peripherieadresse

Das gezeigte Panel ermöglicht das Konfigurieren einer Peripherieadresse für native EIP SPSen mit dem Ethernet/IP Treiber.

Referenz

Der fertig formatierte Adress-String. Die Adresse kann entweder direkt in das Textfeld eingegeben oder über die separaten Felder definiert werden.

Referenz Syntax

<device>:L.<logix tag>
Anmerkung: Bitte beachten Sie, dass die frühere Syntax <device>.<logix or pccc tag> aus Kompatibilitätsgründen weiterhin gültig ist, jedoch nicht mehr verwendet werden sollte.

Treibernummer

Muss mit der Instanz des EIP Treibers übereinstimmen.

Verbindungs-Name

Legt fest, welcher SPS die Adresse zugeordnet werden soll.

Art

Die Art der ausgewählten SPS (kann hier nicht verändert werden).

SPS-Variablen

Der genaue symbolische Variablenname der in der SPS verwendet wird. Zusätzlich kann bei INT und DINT Variablen die (optionale) Endung .<Bitnummer> angehängt werden, um ein bestimmtes Bit auszuwählen.

Wird der Index einer Array-Variable nicht angegeben, wird automatisch auf das erste Element zugegriffen.

Wenn implizite Nachrichtenübermittlung verwendet wird, muss das Byte-Offset und die Größe im Format <TagSetName>/<Offset>[:<Größe>] angegeben werden. MyTagSet/0:50 würde zum Beispiel vom Tag-Set mit Namen MyTagSet beginnend an Position 0 50 Elemente lesen. Das Byte-Offset startet mit 0 und muss zwingend angegeben werden, die Länge ist jedoch optional und sollte nur für Listen angegeben werden.

Transformationsart

Wählt die Transformationsart für die SPS aus der Auswahlliste aus. Die Transformationsart muss mit dem Datentyp der ausgewählten Variable der SPS übereinstimmen. Ansonsten wird die Anfrage von der SPS abgelehnt. Folgende Auswahlmöglichkeiten sind vorhanden:

  • Int16
  • Int32
  • Uint16
  • Uint32
  • Float32
  • Char
  • String
  • Bit
  • Bit in word
  • Bit in dword
  • Blob
  • Raw Text Array
  • Bit in Byte
  • Float64 (Double)
  • Raw Text (16-bit to 2 char string)

Strings werden mit ihrer aktuellen Textlänge gesendet, allerdings ab 82 Byte abgeschnitten.

Anmerkung: Benutzerdefinierte Strings mit einer Länge größer als 82 Bytes werden nicht unterstützt für Logix SPSen.

Die "Raw Text Array to string" Transformation ermöglicht es, Texte, die in einem INT-Array der PLC gespeichert sind, mit zwei Buchstaben pro Element in einen WinCC OA String-Datenpunkt zu übertragen.

Es ist möglich eine gesamte Struktur in ein Blob-DPE (bis zur konfigurierten Message-Size von 512 - 2048 Bytes) einzulesen. Das Lesen von Blob Datenpunktelementen wird bei Logix SPSen nicht in Abfragen zusammengefasst. Das Schreiben von Blob-Datenpunktelementen auf Logix-SPSen wird nicht unterstützt.

Für "Bit in Byte" wird intern innerhalb der SPS der SINT Typ verwendet. Für "Bit in word" verwendet die SPS intern den Typ INT.

Wenn der Typ nicht oben gelistet ist, so ist der zugehörige Basis Typ mit richtiger Länge zu wählen. In WinCC OA gibt es keinen Unterschied zwischen einem BCD-Typ, wie UINT_BCD, und dem zugehörigen Basis Typ UINT.

Bit in word und Bit in dword ermöglichen das Lesen eines angegebenen Bits eines WORD oder DWORD Symbols. Dazu muss das optionale .bit Suffix für die SPS Variable verwendet werden, wie oben beschrieben (z. B. MyWord.5 um Bit 5 von MyWord zu lesen). Omron SPSen unterstützen für diese Transformationsart keine Schreiboperationen.

Für Adressen auf Dyn-Datenpunkten ist der zugehörige Basis Typ zu wählen, wenn beispielsweise eine int16 Liste übertragen werden soll, so ist die Transformationsart int16 zu verwenden.

Die Transformationsart Raw Text kann verwendet werden, um 2-Zeichen Text von oder zu WinCC OA String-Datenpunkten und einem 16-Bit SPS Register zu übertragen. Der Text verwendet hier standardmäßig die Little-Endian-Bytereihenfolge, eine swap-bytes Checkbox ermöglicht das Umkehren alternierender Bytes.

Die "Raw Text Array" Transformationsart wird verwendet, um ein SPS Array von 2-Zeichen Text Registern zu einem WinCC OA-String-Datenpunkt zu transformieren. Die Nachricht wird von der SPS abgelehnt, wenn ein String geschrieben wird der länger als das SPS Array ist.

Anmerkung: Strukturen, wie TIMER können nicht ausgetauscht werden, wenn eine Omron SPS zum Einsatz kommt, nur die einzelnen Felder können an WinCC OA gesendet werden.

Alt/Neu-Vergleich

Diese Option kann nur ausgewählt werden, wenn die Transferrichtung auf "Eingang" eingestellt ist. Beim Verwenden dieser Option werden Daten nur dann gesendet, wenn eine Änderung vorliegt. Der Vergleich basiert auf den nicht konvertierten Originaldaten.

Richtung

Legt fest ob Werte eines DPE zu der SPS (Ausgang) gesendet werden sollen, oder von der SPS in den DP eingelesen werden soll (Eingang). Die "Ein/Aus" Auswahl ermöglicht beides, sollte aber mit Vorsicht verwendet werden.

Empfangsmodus

Folgende Möglichkeiten gibt es:

  • Polling - Ermöglicht es, diese Adresse zu einer Pollgruppe, welche geplant werden kann, hinzuzufügen.
  • Einzelabfrage – Die Adresse wird nur durch das Schreiben des Elementnamens auf das interne Datenpunktelement _DriverCommon.SQ bei Bedarf abgefragt. Diese Adressen werden auch bei einer Generalabfrage durch den EIP Treiber abgefragt.
  • Implizit – Ermöglicht High-Speed-Updates von WinCC OA-Datenpunktelementen von der SPS ohne Polling. Der Treiber sucht um zyklische Updates für ein definiertes Tag-Set an. Sobald diese Anfrage durch die SPS akzeptiert wurde, beginnt sie UDP Datagramme, die die Daten für das gesamte Tag-Set beinhalten, in der angegebenen Rate zu versenden, ohne dass die Daten abgefragt werden müssen.

Pollgruppe

Wählt bereits bestehende Pollgruppen aus. Sollten keine Pollgruppen verfügbar sein, müssen diese mit den spezifischen Parametern im entsprechenden Panel erstellt werden. Dieses Panel wird durch Klicken auf die Pollgruppen Schaltfläche geöffnet (siehe Pollgruppen für zusätzliche Information über Pollgruppen und Polling Parameter).

Implizite Tag-Sets

Wählt bereits bestehende Tag-Sets für die Implizite Nachrichtenübermittlung aus. Sollten keine Tag-Sets verfügbar sein, müssen diese mit den spezifischen Parametern im entsprechenden Panel erstellt werden. Dieses Panel wird durch Klicken auf die Tag-Sets Schaltfläche geöffnet (siehe Ethernet/IP Implizite Nachrichtenübermittlung für zusätzliche Informationen).

Adresse aktiv

Wird die Check Box Adresse aktiv ausgewählt, verwendet der Treiber die Adresse (siehe auch Referenztabelle). Ist die Adresse inaktiv, können die Attribute gesetzt und abgefragt werden, aber der Treiber verwendet diese nicht. Das bedeutet das für diesen Datenpunkt keine Werte an ein entferntes System gesendet oder von diesem empfangen werden können.

Zusätzliche Informationen zu Datentypen

Arrays

Die höchsten Transferraten können erzielt werden, wenn die Daten PLC-seitig in Arrays gruppiert werden. Diese Arrays können dann in WinCC OA entweder in entsprechende dyn-Datenpunkte, oder pro Array-Element in separate Datenpunktelemente eingelesen werden. Bei Verwendung von einzelnen Array-Elementen werden diese je nach MaxGap-Einstellung automatisch in Blöcke zusammengefasst, was zu einer besseren Übertragungsrate führt.

  • Beim Zugriff auf Bool-Arrays müssen diese als 32 Bit Integer Arrays adressiert werden. Anstatt beispielsweise SomeBits[70] zu adressieren, wird SomeBits[2].6 definiert.
  • Es ist möglich komplette SPS-Arrays in dyn-Datenpunktelemente des entsprechenden Typs einzulesen.

  • Folgende Syntax ermöglicht es, bestimmte Bereiche von SPS-Arrays abzufragen: ArrayName[starting-index]:range. Zum Beispiel werden durch MyIntArray[30]:10 die Elemente 30 bis 39 von MyIntArray in den konfigurierten dyn-Datenpunkt gelesen. Auch wenn die Abfrage bei Index 0 gestartet wird, muss trotzdem MyIntArray[0]:range definiert werden. MyIntArray:range ist nicht erlaubt.
  • Multidimensionale Arrays können in einen WinCC OA dyn-Datenpunkt eingelesen werden, wobei diese in diesem Fall eindimensional abgebildet werden. Wenn Startindex und Bereich festgelegt werden, müssen alle Dimensionen angegeben werden.
  • Werden Elemente des gleichen Arrays in einzelne (nicht dynamische) Datenpunktelemente eingelesen, werden benachbarte Elemente je nach MaxGap-Einstellung in Blöcken optimiert zusammengefasst. Wenn nur wenige Elemente eines Arrays abgefragt werden, kann MaxGap > 5 zu einer Verbesserung führen.
  • Sollen Arrays als gesamtes abgefragt werden, d.h. ohne Angabe einer Arraylänge, muss entweder Read by ID aktiviert sein, oder die Info-Query manuell durchgeführt werden.

Zum Lesen von Arrays werden automatisch so viele Transaktionen verwendet, wie notwendig. Dies ermöglicht das Lesen von Arrays beliebiger Größe. Eine Array-Leseoperation ist immer eine separate Transaktion mit der SPS und wird daher nicht mit anderen Tags gruppiert.

Anders als beim Lesen muss das ganze Array in eine Nachricht passen, wenn Arrays geschrieben werden sollen. Das bedeutet, dass die maximale Array-Länge von dem Element-Typ und der konfigurierten Nachrichten-Größe abhängig ist.

Um größere Arrays zu schreiben können, müssen diese durch Verwendung von Start-Index und Range in mehrere Dyn-Datenpunkte aufgeteilt werden.

Anmerkung: Die Größe der Symboltabelle der SPS wirkt sich signifikant auf die Performance aus. Wird die Anzahl an Zeilen der Symboltabelle reduziert kann das zu einer starken Steigerung der Übertragungsrate führen. Da ein Array als einzelne Zeile zählt, bedeutet ein Array mit 1000 Elementen eine bessere Performance als 10 Arrays mit jeweils 100 Elementen.
Anmerkung: Elemente werden nur bei eindimensionalen Arrays gruppiert.
Anmerkung: Für Omron SPSen wird keine Bereichsabfrage von Bool-Arrays unterstützt.
VORSICHT: Eine Array-Adresse darf nur einmal konfiguriert werden. Das bedeutet dass es beispielsweise nicht erlaubt ist, die Adressen MyIntArray[0]:10 und MyIntArray[3] zu konfigurieren, da MyIntArray[3] auch im Bereich von MyIntArray[0]:10 liegt. Solche Konfigurationen müssen unterlassen werden, um unerwartetes Verhalten und Datenverlust zu vermeiden.
DPE type PLC data type Transformation Address example Notes
int INT int16 MyInt Reads value of MyInt
int INT Array Element int16 MyIntArray[5] Reads value of element 5 of MyIntArray
int DINT int32 MyDInt Reads value of MyDInt
int DINT array element int32 MyDIntArray[5] Reads value of element 5 of MyDIntArray
float REAL float32 MyReal Reads value of MyReal
float REAL array element float32 MyRealArray[5] Reads value of element 5 of MyRealArray
bool BOOL bit MyBool Reads value of MyBool
bool INT bit in word MyInt.3 Reads value of bit 3 MyInt
bool INT array element bit in word MyIntArray[5].3 Reads value of bit 3 of 6th word, i.e. bit 163
dyn int INT array int16 MyIntArray Reads complete array, requires info query to be performed
dyn int INT array int16 MyIntArray[5]:3 Reads 3 values from MyIntArray starting with element 5
dyn int DINT array int32 MyDIntArray Reads complete array, requires info query to be performed
dyn int DINT array int32 MyDIntArray[5]:3 Reads 3 values from MyDIntArray starting with element 5
dyn float REAL array float32 MyRealArray Reads complete array, requires info query to be performed
dyn float REAL array float32 MyRealArray[5]:3 Reads 3 values from MyRealArray starting with element 5
dyn bool BOOL array bit MyBoolArray Reads complete array, requires info query to be performed
dyn bool BOOL array bit MyBoolArray[5]:3 Reads 96 bits from MyBoolArray starting at bit 160

Program tags

Per Default greift der EIP-Treiber auf Controller-Tags der SPS zu. Es ist aber auch möglich auf Program-Tags zuzugreifen indem die folgende Syntax verwendet wird:

Program:programName.tagName

Omron CJ2 SPS Konfiguration

Eine Omron CJ2 SPS implementiert das Ethernet/IP Protokoll fast wie eine Allen Bradley ControlLogix SPS. Alle Datentransfers basieren auf symbolischen Tag-Namen. Es ist nicht möglich eine Block-Adresse in dem EIP Treiber direkt abzufragen, es muss stattdessen zur Symbol-Tabelle in CX-Programmer hinzugefügt werden und als Net. Variable für Publication konfiguriert werden.