IEC 60870 Server

Übersicht

Die Funktion ist ab PROCON-Connect v1.4.0 verfügbar.

Der IEC 60870 Server in PROCON-Connect stellt Prozessdaten und Zustandsinformationen für übergeordnete Leitsysteme bereit. Er ermöglicht es, Anlagenkomponenten zuverlässig in Energieverteil- und Automatisierungsstrukturen einzubinden. Der Server empfängt und verarbeitet IEC 60870 Telegramme und stellt die enthaltenen Informationen in Form von Tags innerhalb von PROCON-Connect zur Verfügung.

Über diese Tag-Abbildung werden Messwerte, Schaltbefehle, Ereignisse und Statusinformationen aus den IEC 60870 Telegrammen nahtlos in die Software integriert. Die Daten können anschließend für Prozessanbindungen, Logik- und Funktionsmodule, Visualisierungen sowie für die Weitergabe an andere Protokolle genutzt werden. Dadurch dient der IEC 60870 Server als zentrale Schnittstelle, um IEC-konforme Feldgeräte sicher und flexibel in die Gesamtarchitektur von PROCON-Connect einzubinden.

Server-Übersicht

Übersicht zur Verwaltung bestehender Server sowie Einstiegspunkt für das Hinzufügen neuer Server.

60870 server overview
  1. Name: Eindeutiger Name des Servers. Dieser kann beim Hinzufügen des Servers frei vergeben werden und dient lediglich der Zuordnung in der Übersicht.

  2. Server-Typ: Der Server kann vom Typ 104 (TCP) oder 101 (seriell) sein. Der Server-Typ beeinflusst die Konfigurationspunkte beim Hinzufügen eines Servers sowie dessen Kommunikationsprotokoll.

  3. Status: Mögliche Status sind Aktiv, Gestoppt, Fehler oder Nicht lizenziert. Nur ein aktiver Server kann Nachrichten senden und empfangen.

  4. Optionen-Menü: Einstiegspunkt für manuelles Hinzufügen von Informationsobjekten, den Import von Informationsobjekten oder das Bearbeiten und Löschen des Servers.

Server konfigurieren

Über den Button (1) kann ein neuer Server hinzugefügt und direkt konfiguriert werden.
Über das Optionen-Menü (2) kann die Konfiguration eines bestehenden Servers angepasst werden.
60870 server configuration

In einem Server können folgende Parameter konfiguriert werden:

  • Name: Der Name des Servers wird auf der Übersichtsseite angezeigt und soll die Zuordnung erleichtern.

  • Aktivierung: Der Server kann über diese Einstellung aktiviert bzw. deaktiviert werden. Nur ein aktiver Server kann Telegramme senden und empfangen.

  • Pulse Konfiguration: Die hier definierten Parameter legen fest, wie lange die Ausgänge bei Ausführung eines Pulsbefehls gesetzt werden. Das Puls-Handling übernimmt der 60870-Server.

    • Standarddauer (ms): Gibt die Standard-Impulsdauer an, die für Stellbefehle verwendet wird, wenn keine alternative Pulsdauer spezifiziert ist. Typischerweise im Bereich 50 - 500 ms.

    • Kurzdauer (ms): Definiert eine verkürzte Impulsdauer für spezielle Stellbefehle mit geringem zeitlichem Bedarf.

    • Langdauer (ms): Legt die verlängerte Impulsdauer fest.

  • Tag-Zuordnung Verbindungsstatus: Abbildung des Verbindungsstatus auf einem logischen oder numerischen Tag.

    • Logischer Tag: 0 = kein Client verbunden. 1 = Mindestens ein Client verbunden.

    • Numerischer Tag: 0 = kein Client verbunden. n = n Clients verbunden. Beispiel: 2 = 2 Clients zeitgleich verbunden.

104-Server konfigurieren

Diese Parameter sind 104-spezifisch:

  • Serveradresse: Bindungsadresse und Port, unter denen der Server erreichbar sein soll. Standard Port ist 2404. Unter u-OS sind Bindungsadresse und Port nicht konfigurierbar und es werden immer Adresse 0.0.0.0 und Port 2404 verwendet.

  • T1: Zeitlimit für übertragene APDUs im I/U-Format (in Sekunden). Wenn das Zeitlimit ohne Bestätigung abgelaufen ist, wird die Verbindung geschlossen. Dies wird vom Absender verwendet, um festzustellen, ob der Empfänger eine Nachricht nicht bestätigt hat.

  • T2: Zeitlimit für die Bestätigung von Nachrichten (in Sekunden). Dieses Zeitlimit wird vom Empfänger verwendet, um den Zeitpunkt zu bestimmen, zu dem die Nachrichtenbestätigung gesendet werden muss.

  • T3: Zeitlimit für das Senden von Testtelegrammen bei einer inaktiven Verbindung.

  • K: Anzahl der unbestätigten APDUs im I-Format. Der Absender beendet die Übertragung nach K unbestätigten I-Nachrichten.

  • W: Anzahl der unbestätigten APDUs im I-Format. Der Empfänger bestätigt spätestens nach W Nachrichten.

  • Größe niedrigpriorisierte Warteschlange: Verwendung für zyklische und Event/Spontaneous Messwertübertragungen. Die Warteschlange arbeitet nach dem FIFO-Prinzip. Ist die Warteschlange voll, wenn ein neues Telegramm hinzugefügt wird, wird das älteste Telegramm entfernt.

  • Größe hochpriorisierte Warteschlange: Verwendung für Antworten auf Befehle. Die Warteschlange arbeitet nach dem FIFO-Prinzip. Ist die Warteschlange voll, wenn ein neues Telegramm hinzugefügt wird, wird das älteste Telegramm entfernt.

Client-Whitelisting

Das Whitelisting erlaubt die Angabe von beliebig vielen IP-Adressen. Im Auslieferungszustand ist die Liste leer und es kann sich jeder beliebige Client mit dem Server verbinden. Die Liste ist die Grundlage für den Aufbau von Redundanzgruppen, da die Clients dem Server hierzu bekannt sein müssen.

Es gelten folgende Mechaniken:

  • Ist kein Client angelegt, werden Verbindungen aller Clients zugelassen, eine IP-basierte Prüfung findet nicht statt.

  • Ist mindestens ein Client angelegt, werden nur Verbindungen gelisteter Clients zugelassen, deren Enabled-Parameter aktiv ist.

  • Sind nur Clients hinterlegt, die alle disabled sind, ist gar kein Verbindungsaufbau durch Clients möglich.

101-Server konfigurieren

Diese Parameter sind 101-spezifisch:

  • Serieller Port: Bezeichnung der seriellen Schnittstelle, die für die Kommunikation genutzt werden soll, bspw. COM1.

  • Baudrate: Geschwindigkeit der physischen Datenübertragung in Baud. Default ist 9600.

  • Datenbits: Anzahl der Datenbits. Default ist 8.

  • Stoppbits: Anzahl der Stoppbits. Default ist 1.

  • Parität: Keine, gerade oder ungerade Parität einstellbar. Default ist Keine.

  • Modus: Verbindungsmodus. Mögliche Auswahlen sind unbalanced und balanced. Default ist unbalanced.

  • Adresslänge (Bytes): Adresslänge in Bytes. Default ist 1 Byte.

  • Bestätigungs-Timeout (ms): Timeout für Bestätigung. Default ist 500 ms.

  • Lokale Verbindungsschichtadresse: Default ist 1.

  • Entfernte Verbindungsschichtadresse: Default ist 1.

  • Gemeinsame Adresse (CA) - Bytes: Länge der CA in Bytes. Möglich sind 1 oder 2 Byte. Default ist 2.

  • Informationsobjektadresse (IOA) - Bytes: Länge der IOA in Bytes. Möglich sind 1 bis 3 Byte. Default ist 3.

  • Übertragungsursache (COT) - Bytes: Länge der CA in Bytes. Möglich sind 1 oder 2 Byte. Default ist 2.

Informationsobjektübersicht

Zur Informationsobjektübersicht gelangt man, indem man zunächst auf die IEC 60870-5 Server Übersichtsseite navigiert. Durch Klick auf einen Server-Eintrag öffnet sich dessen Informationsobjektübersicht.

60870 server IOA overview
  1. Name: Name für das Informationsobjekt. Wird in der Informationsobjektüberischt angezeigt. Optional.

  2. IEC-Datentyp: Datentyp des Informationsobjekts.

  3. CA: Gemeinsame Adresse des Informationsobjekts in zweifacher Notation: Ganzzahl und byteweise.

  4. IOA: Informationsobjektadresse in zweifacher Notation: Ganzzahl und byteweise.

  5. Tags: Auflistung aller Tags, die in dem Informationsobjekt zugeordnet wurden.

  6. Optionen-Menü: Einstiegspunkt für das Bearbeiten oder Löschen eines bestehenden Informationsobjekts.

In der Konfiguration von Informationsobjekten werden mehrere Tags zugeordnet. Die Verbindung von Informationsobjekt zu Tags führt du Abhängigkeiten. Die Konsistenz der Konfiguration wird beim Öffnen der Übersicht automatisch durchgeführt. Unstimmigkeiten werden durch ein Warndreieck in der ersten Spalte der Informationsobjektübersicht angezeigt. Weitere Infos werden in einem Tooltip angezeigt, wenn der Mauszeiger über dem Warndreick positioniert ist. Bei der Prüfung werden die Wertbereiche der zugeordneten Tags im Zusammenspiel mit dem IEC-Datentyp betrachtet.

Informationsobjekte konfigurieren

Über das Optionen-Menü des jeweiligen Servers kann ein neues Informationsobjekt hinzugefügt werden. Dort befindet sich die Option Informationsobjekt hinzufügen (1).
Über das Optionen-Menü eines bestehenden Informationsobjekts (2) kann dieses bearbeitet werden.
60870 server IOA configuration

Allgemeine Parameter

In einem Informationsobjekt können folgende Parameter immer konfiguriert werden. Diese Parameter sind nicht abhängig vom IEC-Datentyp.

  • Name: Name für das Informationsobjekt. Wird in der Informationsobjektüberischt angezeigt. Optional.

  • Gemeinsame Adresse (CA): Die CA kann im linken Feld als singuläre Zahl oder rechts byte-weise eingetragen werden. [1; 65534] sind Stationsadressen, 65535 ist globale Adresse.

  • Informationsobjektadresse (IOA): Die IOA kann im linken Feld als singuläre Zahl oder rechts byte-weise eingetragen werden.

  • IEC-Datentyp: Der IEC-Datentyp ist über ein Dropdown auswählbar. Die Auswahl beeinflusst die nachstehenden Konfigurationsmöglichkeiten, bspw. die zur Verfügung stehenden Tag-Zuordnungen.

Parameter in Überwachungsrichtung

Für alle IEC-Datentypen in Überwachungsrichtung stehen folgende Parameter zur Verfügung:

  • Generalabfrage: Informationsobjekt wird in Antwort auf Generalabfrage aufgenommen.

  • Gruppenabfrage: Informationsobjekte in Überwachungsrichtung können Gruppen zugeordnet werden. Es können beliebig viele Gruppen parallel zugewiesen werden. Auch eine Kombination mit der Generalabfrage ist möglich.

  • Zyklische Übertragung (COT1): Informationsobjekte in Überwachungsrichtung können zyklisch übertragen werden.

  • Event/Spontaneous Übertragung (COT3): Informationsobjekte in Überwachungsrichtung können bei Wertänderung übertragen werden. Es können absolute und prozentuale Schwellwerte definiert werden, um welche sich der Wert im Vergleich zur letzten Übertragung verändert haben muss.

In Abhängigkeit vom IEC-Datentyp sind folgende Tag-Zuordnungen in Überwachungsrichtung möglich:

  • Wert: Tag, dessen Wert übertragen werden soll.

  • Qualität: Tag, der die Qualitätsinformationen enthält. Die Qualitätsinformationen werden mittels Integer abgebildet. Die Qualitätsinformationen können bitweise bspw. auf Codesys-Ebene extrahiert werden.

  • Transient: Boolean Tag, der abbildet, ob sich das Informationsobjekt gerade im Übergang befindet. true = Übergang, false = stetig.

  • Zeitstempel: Tag, der den Zeitstempel enthält. Wenn kein Tag gewählt wird, wird der jüngste Zeitstempel der sonstigen Tag-Zuordnungen (Wert, Qualität, Transient) übertragen. Die Quelle des Zeitstempels ist treiberabhängig. Für treiberspezifische Details siehe Treibereinstellungen.

IEC Datentyp

Wert

Qualität

Transient

Zeitstempel

[001] M_SP_NA_1 - Single Point Value

x

x

[003] M_DP_NA_1 - Double Point Value

x

x

[005] M_ST_NA_1 - Step Position Information

x

x

x

[009] M_ME_NA_1 - Measured Value, Normalized

x

x

[011] M_ME_NB_1 - Measured Value, Scaled

x

x

[013] M_ME_NC_1 - Measured Value, Short

x

x

[015] M_IT_NA_1 - Integrated Totals

x

x

[021] M_ME_ND_1 - Measured Value Without Quality

x

[030] M_SP_TB_1 - Single Point Value with CP56Time2a

x

x

x

[031] M_DP_TB_1 - Double Point Value with CP56Time2a

x

x

x

[032] M_ST_TB_1 - Step Position Information with CP56Time2a

x

x

x

x

[034] M_ME_TD_1 - Measured Value, Normalized with CP56Time2a

x

x

x

[035] M_ME_TE_1 - Measured Value, Scaled with CP56Time2a

x

x

x

[036] M_ME_TF_1 - Measured Value, Short with CP56Time2a

x

x

x

[037] M_IT_TB_1 - Integrated Totals with CP56Time2a

x

x

x

Parameter in Befehlsrichtung

In Abhängigkeit vom IEC-Datentyp sind folgende Tag-Zuordnungen in Befehlsrichtung möglich:

  • Wert: Tag, dessen Wert übertragen übertragen werden soll.

  • Qualifier: Tag, der die Qualitätsinformationen enthält. Die Qualitätsinformationen werden mittels Integer abgebildet.

  • Select/Execute: Boolean Tag, der zur Vorbereitung von Nachrichten verwendet werden kann. true = Execute, false = Select.

  • Übertragungsursache: Tag, der eine Info darüber enthält, ob der Befehl eine ACTIVATION oder eine DEACTIVATION ist. Kann in der SPS ausgewertet werden, um die Umsetzung eines laufenden Befehls abzubrechen.

  • Zeitstempel: Tag, der den Zeitstempel enthält. Wenn kein Tag gewählt wird, wird der jüngste Zeitstempel der sonstigen Tag-Zuordnungen (Wert, Qualität, Transient) übertragen. Die Quelle des Zeitstempels ist treiberabhängig. Für treiberspezifische Details siehe Treibereinstellungen.

IEC Datentyp

Wert

Qualifier

Select/Execute

Übertragungsursache

Zeitstempel

[045] C_SC_NA_1 - Single Command

x

x

x

x

[046] C_DC_NA_1 - Double Command

x

x

x

x

[047] C_RC_NA_1 - Step Command

x

x

x

x

[048] C_SE_NA_1 - Setpoint Command, Normalized

x

x

x

x

[049] C_SE_NB_1 - Setpoint Command, Scaled

x

x

x

x

[050] C_SE_NC_1 - Setpoint Command, Short

x

x

x

x

[058] C_SC_TA_1 - Single Command with CP56Time2a

x

x

x

x

x

[059] C_DC_TA_1 - Double Command with CP56Time2a

x

x

x

x

x

[060] C_RC_TA_1 - Step Command with CP56Time2a

x

x

x

x

x

[061] C_SE_TA_1 - Setpoint Command, Normalized with CP56Time2a

x

x

x

x

x

[062] C_SE_TB_1 - Setpoint Command, Scaled with CP56Time2a

x

x

x

x

x

[063] C_SE_TC_1 - Setpoint Command, Short with CP56Time2a

x

x

x

x

x

Schreib-Feedback Tag-Zuordnung

In Befehlsrichtung sind zusätzlich Tag-Zuordnungen notwendig, um die Antworten einer Steuerung einem konkreten Befehl zuordnen zu können.

  • Anfragezähler: Der Wert dieses nummerischen Tags wird automatisch inkrementiert, sobald das zugeordnete Kommando empfangen wurde. Angebundene Steuerungen können auf Veränderungen dieses Wertes prüfen, um die Auslösung des Kommandos festzustellen.

  • Antwortzähler: Angebundene Steuerungen sollten nach Abarbeitung des Kommandos den Wert des Antwortzählers auf den Wert des Anfragezählers erhöhen. Auf diese Weise wird dem IEC60870-Server mitgeteilt, dass die Abarbeitung abgeschlossen ist. Der Server quittiert daraufhin die Arbarbeitung gegenüber dem Client mit COT_ACTIVATION_TERMINATION (COT10).

  • Antwortstatus: Angebundene Steuerungen sollten diesen boolean Tag auf true setzen, wenn die Abarbeitung des Kommandos erfolgreich war. Andernfalls sollte der Wert auf false gesetzt werden. Der Antwortstatus muss gesetzt werden, bevor der Antwortzähler gesetzt wird. Ist der Status false, wird COT_ACTIVATION_TERMINATION (COT10) mit gesetztem Nagativ-Flag gesendet.

Der Block Schreib Feedback Tag Zuordnung wird genutzt, um einen Befehl und seine Antwort auf dem 60870 Server zusammenzuführen:

  • Der Befehl wird an die SPS übertragen und der Anfragezähler zur SPS erhöht.

  • Die SPS führt den Befehl gemäß interner Logik aus.

  • Das Ergebnis kann auf den Antwortstatus geschrieben werden.

  • Anschließend kann SPS-seitig der Antwortzähler mit dem Anfragezähler gleichgesetzt werden.

  • Der 60870 kann den Antwortstatus nun auswerten und weiter an den Client übermitteln.

Übertragung des zugehörigen Messwerts (COT 11)

Verknüpfung eines Messwerts mit einem Kommando. Nach Ausführung des Kommandos wird dieser Messwert mit COT 11 übertragen.

  • Zugehöriger Messwert: Tag, der den zu übertragenden Messwert enthält.

Informationsobjekte importieren

Die Konfiguration von 60870-Servern basiert häufig auf Excel-basierten Datenpunktlisten, die von Energieversorgungsunternehmen anlagenspezifisch zur Verfügung gestellt werden. Der csv-basierte Import von Informationsobjekten soll die Übernahme dieser Informationen ins System effizient ermöglichen.

Die bearbeitete csv-Datei kann anschließend in zwei Systeme importiert werden: Codesys und PROCON-Connect.

Für Codesys ist ein Import-Skript verfügbar, das auf Basis von hinterlegtem Variablennamen und IEC-Datentyp eine passende Variable in der globalen Variablenliste (GVL) erzeugt. Das Skript wird als Codesys-package zur Verfügung gestellt und kann entsprechend installiert werden.

Für den 60870-Server kann die Option Informationsobjekte importieren genutzt werden, um die Informationsobjekte anzulegen.

Im Rahmen des Imports kann eine zuvor angelegte Codesys-Verbindung gewählt werden. Enthält die csv-Datei Tag-Namen, werden diese Variablennamen in der Variablenliste der gewählten Codesys-Verbindung automatisch importiert und im Informationsobjekt gemappt.

Für alle übrigen Treiber müssen die entsprechenden Tags zuvor händisch importiert werden. Beim Import werden dann innerhalb von PROCON-Connect namensgleiche Tags gesucht und automatisch im Informationsobjekt zugeordnet.

Obwohl dieser Mechanismus auf dem Tag-Namen basiert, werden Tags in Informationsobjekten über ihre technische ID referenziert, d. h. eine nachträgliche Umbenennung eines Tags hebt die Zuordnung nicht auf.

Enstiegspunkt Import

Einstiegspunkt ist die Server-Übersicht. Über das Optionen-Menü eines bestehenden 60870-Servers kann die Option Informationsobjekte importieren aufgerufen werden. Es öffnet ein Dialog. Über den Dialog kann das notwendige csv-Template heruntergeladen werden bzw. eine bereits vorbereitete Datei für den Import hochgeladen werden.

Konfiguration der csv-Datei

Feldtrenner ist das Zeichen ;
Datei und Import unterstützen den Zeichensatz UTF-8.
Die csv-Datei enthält folgende Spalten (* = Pflichtfeld):

csv-Spalte

Parameter

Beschreibung

name

Name

Zweck des Signals. Wird in UI angezeigt zur besseren Zuordnung. Datentyp: String.

datatype *

IEC-Datentyp

Nummer des IEC-Datentyps, bspw. 20 für Generalabfrage. Datentyp: Numerisch, [0; 126].

caLow *

CA Low

Low Byte der Common Address der ASDU (Application Service Data Unit). Wird bei seriellen Konfigurationen eine CA über nur ein Byte ausgewählt, ist für den Import nur das Feld CA L zu nutzen. Das Feld CA H bleibt dann leer und ist kein Pflichtfeld. Datentyp: Numerisch, [0, 127].

caHigh *

CA High

High Byte der Common Address der ASDU (Application Service Data Unit). Datentyp: Numerisch, [0, 127].

ioaLow *

IOA Low

Low Byte der Information Object Address (IOA). Datentyp: Numerisch, [0; 127].

ioaMid *

IOA Mid

Middle Byte der Information Object Address (IOA). Wird bei seriellen Konfigurationen die IOA über nur zwei Byte ausgewählt, sind IOA L und IOA H für den Import zu nutzen. IAM M bleibt in diesem Fall leer und ist kein Pflichtfeld. Datentyp: Numerisch, [0; 127].

ioaHigh *

IOA High

High Byte der Information Object Address (IOA). Datentyp: Numerisch, [0; 127].

valueTagName

Wert

Tag, der den Wert abbildet. Datentyp: String.

valueTagComment

Wert Kommentar

Kommentar zu dem Tag. Wird beim Import in Codesys als Quell-Code-Kommentar hinter die Variable geschrieben. Datentyp: String.

timestampTagName

Zeitstempel

Name des Tags, der den CP56Time2a Zeitstempel abbildet. Datentyp: String(CP56Time2a Zeitstempel).

timestampTagComment

Zeitstempel Kommentar

Kommentar zu dem Tag. Wird beim Import in Codesys als Quell-Code-Kommentar hinter die Variable geschrieben. Datentyp: String.

qualityTagName

Qualität

Name des Tags, der die Qualitätsinformation in Überwachungsrichtung abbildet. Datentyp: Numerisch.

qualityTagComment

Qualität Kommentar

Kommentar zu dem Tag. Wird beim Import in Codesys als Quell-Code-Kommentar hinter die Variable geschrieben. Datentyp: String.

qualifierTagName

Qualifier

Name des Tags, der die Qualitätsinformation in Befehlsrichtung abbildet. Datentyp: Numerisch.

qualifierTagComment

Qualifier Kommentar

Kommentar zu dem Tag. Wird beim Import in Codesys als Quell-Code-Kommentar hinter die Variable geschrieben. Datentyp: String.

selectExecuteTagName

Select/Execute

Name des Tags, der zum Vorbereiten von Nachrichten verwendet wird. Datentyp: String.

selectExecuteTagComment

Select/Execute Kommentar

Kommentar zu dem Tag. Wird beim Import in Codesys als Quell-Code-Kommentar hinter die Variable geschrieben. Datentyp: String.

transientTagName

Transient

Name des Tags, der den Übergangszustand abbildet. Datentyp: String.

transientTagComment

Transient Kommentar

Kommentar zu dem Tag. Wird beim Import in Codesys als Quell-Code-Kommentar hinter die Variable geschrieben. Datentyp: String.

causeOfTransmissionTagName

Übertragungsursache

Name des Tags, der bestimmt, ob das Kommando eine ACTIVATION oder eine DEACTIVATION ist. Datentyp: String.

causeOfTransmissionTagComment

Übertragungsursache Kommentar

Kommentar zu dem Tag. Wird beim Import in Codesys als Quell-Code-Kommentar hinter die Variable geschrieben. Datentyp: String.

requestCounterTagName

Anfragezähler

Name des Tags, der den Anfragezähler abbildet. Datentyp: String.

requestCounterTagComment

Anfragezähler Kommentar

Kommentar zu dem Tag. Wird beim Import in Codesys als Quell-Code-Kommentar hinter die Variable geschrieben. Datentyp: String.

responseCounterTagName

Antwortzähler

Name des Tags, der den Antwortzähler abbildet. Datentyp: String.

responseCounterTagComment

Antwortzähler Kommentar

Kommentar zu dem Tag. Wird beim Import in Codesys als Quell-Code-Kommentar hinter die Variable geschrieben. Datentyp: String.

responseStatusTagName

Antwortstatus

Name des Tags, der den Antwortstatus abbildet. Datentyp: String.

responseStatusTagComment

Antwortstatus Kommentar

Kommentar zu dem Tag. Wird beim Import in Codesys als Quell-Code-Kommentar hinter die Variable geschrieben. Datentyp: String.

spontaneousEnabled

Event/Spontaneous Übertragung (COT3)

TRUE = Spontanübertragung aktiviert. FALSE oder [leer] = Spontanübertragung nicht aktiviert. Datentyp: Boolean.

spontaneousThresholdType

Schwellwerttyp

Die Schwellwertprüfung kann gar nicht, absolut oder relativ erfolgen. Datentyp: Enum. Beim Import sind folgende Schlüsselwörter möglich:
  • Procentual - Aktiviert die prozentuale Schwellwertprüfung auf Basis des zuletzt gesendeten Werts. Die Eintragung eines Schwellwerts wird benötigt.

  • Absolute - Aktiviert die prozentuale Schwellwertprüfung auf Basis des zuletzt gesendeten Werts. Die Eintragung eines Schwellwerts wird benötigt.

  • [leer] - Eine Schwellwertprüfung findet nicht statt.

spontaneousThresholdValue

Schwellwert

Der Wert muss angegeben werden, wenn die Schwellwertart prozentual oder absolut gewählt wurde. Als Dezimaltrenner ist der Punkt zu verwenden, Beispiel: 3.75. Datentyp: Numerisch, positive Zahlen.

stationInterrogationEnabled

Gruppenabfragen

TRUE = Generalabfrage (COT 20) bzw. Generalzählerabfrage (COT 37) aktiv. False oder [leer] = Generalabfrage/Generalzählerabfrage nicht aktiv. Datentyp: Boolean.

interrogationGroups

Gruppen

Konfiguration für Gruppenabfragen. 1 - 16 für Messwerte. 1 - 4 für Zähler. Mehrere Gruppen können kommagetrennt angegeben werden, Beispiel: 1, 16. Datentyp: String.

cyclicPublishIntervalSec

Zyklische Übertragung (COT1)

Es kann eine positiver Integer hinterlegt werden. Die Einheit ist Sekunden. Der Import aktiviert die zyklische Übertragung automatisch, wenn ein Wert festgelegt ist. Bleibt das Feld leer, wird die zyklische Übertragung nicht aktiviert. Datentyp: Numerisch, positive Zahlen.

Verhalten des Imports

Kann ich die csv-Datei mit Excel bearbeiten?

Ja, das ist eingeschränkt möglich. In Abhängigkeit der Kultur- und csv-Einstellungen kann jedoch bereits beim Öffnen der csv-Datei eine automatische Anpassung erfolgen.

Excel manipuliert auf Basis der Kultureinstellungen folgende Daten automatisch beim Öffnen:

  • Regionsabhängige Listentrenner (, vs. ;)

  • Regionsabhängige Dezimaltrenner (. → ,)

  • Regionsabhängige Datumsumwandlung (01-02 → 01. Februar oder 02. Januar)

  • Regionsabhängige Zahlenerkennung (, vs. .)

  • Entfernen führender Nullen (00123 → 123)

  • Umwandlung in wissenschaftliche Notation (1234500000000 → 1.2345E+12)

  • Falsche Interpretation bei UTF-8 ohne BOM (Ä → Ä)

  • Automatische Formatierung von Prozent- oder Währungsformaten

  • Entfernung oder Fehlinterpretation von Escape-Sequenzen

  • Umwandlung von leeren Strings in leere Feldger (““ → NULL)

Folgende Einstellungen müssen daher regionsabhängig angepasst werden:

  • Regionseinstellungen Betriebssystem: Windows Systemsteuerung Region Weitere Einstellungen Listentrennzeichen (;)

  • Optionen Excel: Excel Optionen Erweitert
    • Trennzeichen aus Betriebssystem verwenden

    • Automatische Zahlenerkennung

    • Zahlenformatierung verwerden

    • Datenkonvertierung bei Text einfügen

    • Kommaformatierung

    • Automatische wissenschaftliche Notation

    • je nach Version und Region können weitere Einstellungen notwendig sein.

Alternative Tools wie Visual Studio Code oder Notepad++ können mit csv-Plugin und csv-Linter erweitert werden und erlauben im Gegensatz zu Excel eine csv-Bearbeitung ohne unbeabsichtigte Manipulation.

Was passiert, wenn ein oder mehrere Pflichtfelder nicht gefüllt sind?

Der Datensatz wird beim Import ignoriert. Die übrigen Datensätze werden importiert. Der Vorfall wird nach dem Import als Notification sowie im Ereignisprotokoll angezeigt.

Was passiert, wenn bereits ein Informationsobjekt existiert, dessen Pflichtfelder identisch sind mit einem Importdatensatz?

Der bestehende Datensatz wird gelöscht und mit den Daten aus dem Importdatensatz neu angelegt.

Was passiert bei einem Import mit bereits bestehenden Datensätzen?

Bereits bestehende Datensätze werden ignoriert. Eine Ausnahme bildet die Konstellation, wenn alle Pflichtfelder eines Importdatensatzes mit allen Pflichtfeldern eines Bestandsdatensatzes übereinstimmt.

Was passiert, wenn mit einem anderen Zeichensatz als UTF-8 importiert wird?

Die Inhalte werden nicht erkannt und können nicht importiert werden.

Was passiert, wenn das Trennzeichen ; verändert wird?

Die Aufteilung der csv-Datei kann nicht erkannt werden. Ein Import ist nicht möglich.

Kann die Reihenfolge der Spalten verändert werden?

Ja, die Reihenfolge ist egal. Die Spalten werden dynamisch auf Basis ihrer Überschrift erkannt.

Kann ich die Überschriften verändern oder die erste Zeile aus der Datei entfernen?

Nein, die exakte Überschrift/erste Zeile wird benötigt, da die Spaltenzuordnung auf Basis der Spaltenüberschriften dynamisch erfolgt.

Einige der Spalten sind für mich nicht relevant, kann ich diese aus der Import-Datei löschen?

Ja, Spalten können gelöscht werden. Pflichtfelder müssen erhalten bleiben.

Globale Adresse

Die CA 65535 wird als globale Adresse interpretiert. Eine Abfrage der Station 65535 liefert somit alle Werte der Stationen 1 bis 65534 zurück.

Schreibverhalten von Tag-Mappings

Bei Verwendung der Treiber CODESYS, OPCUA oder TIA v2: Alle zugeordneten Tags eines Informationsobjekts (z. B. Wert und Qualifier) werden gleichzeitig in die SPS geschrieben.

Für alle anderen Treiber werden mehrere Schreibanforderungen verwendet. Die Übertragung an den Prozess ist hier also nicht atomar.

Informationsobjekte im Ereignisprotokoll

Im Ereignisprotokoll kann die Kommunikation des 60870 Servers nachvollzogen werden.

60870 event log
  1. Filter: Das Ereignisprotokoll kann wie im Screenshot dargestellt auf 60870 gefiltert werden, sodass nur relevante Ereignisse angezeigt werden.

  2. Level: Für die Anzeige der Kommunikationsnachrichten muss in der Konfiguration des Ereignisprotokolls das Log Level des 60870-5 Service auf debug gestellt werden.

  3. Inhalt: Es werden Details zum Versand des Informationsobjekts und den übertragenen Werten angezeigt. Die dargestellten Infos sind abhängig vom IEC-Datentyp. Neben den bereits definierten Parametern können folgende Parameter zusätzlich im Log erscheinen:

    • OA (Origin Address): Bei Messwert-Updates wird die Herkunftsadresse 0 gesetzt. Bei Antworten auf Befehle wird die Herkunftsadresse des Befehls genutzt.

    • Negativ: Fehler-Bit für Antworten auf Befehle. 0 = kein Fehler, 1 = Fehler. Fehler können bspw. auftreten, wenn die PLC nicht erreichbar ist oder einen Fehler zurückgibt.