CSV-Datei für OPC-Drittgeräte

Bevor Sie Daten von OPC-Items importieren können, müssen Sie manuell die Konfigurationsdaten in einer CSV-Datei bearbeiten (eine Textdatei mit kommagetrennten Werten).

Vorlage für die CSV-Datei für OPC-Geräte

Eine Vorlage für die CSV-Datei (OPC_ConfigurationData_Ver1_1.csv) ist in folgendem Pfad verfügbar: GmsMainProject\profiles\OPCDataTemplate. Basierend auf dieser Vorlage können Sie eine eigene OPC-Konfigurationsdatei erstellen.

 

OPC CSV Dateiabschnitte

Abschnitt

Beschreibung

[KOPFZEILE]

Enthält folgende Trennzeichen:

  • Listentrennzeichen “,“: Wird als Trennzeichen für das Parsen von Zeilendaten in der CSV-Datei verwendet.
  • Dezimaltrennzeichen “.“: Wird zum Parsen von Feldern verwendet, die Werte wie Gleitkommazahlen enthalten, wie Min, Max, Skalierungsfaktor (MinRaw, MaxRaw, Mineng, Maxeng) und Alarme.

Zur leichteren Identifizierung werden die Trennzeichen in den nachfolgenden Zeilen in doppelten Anführungszeichen („ “) gesetzt.

[DATEIVERSION]

Zeigt die aktuelle Version der CSV-Datei an. Sie entspricht der Desigo CC-Softwareversion.

[BIBLIOTHEK]

Gibt den Namen der Objektmodellbibliothek an, die zum Erstellen der OPC-Elemente verwendet werden soll, die in dieser Konfigurationsdatei enthalten sind.

Hinweis: Dieses Tag ist obligatorisch. Wenn dieses Tag leer gelassen wird oder die Bibliothek nicht vorhanden ist, wird eine Fehlermeldung angezeigt.

[STATE_TEXTS]

Enthält folgende Daten:

  • Tabellenname: Name der Textgruppen.
  • Index: Eine Zahl, die die verschiedenen Zustände der Textgruppe darstellt.
  • Text: Beschreibung, die den verschiedenen Status der Textgruppen zugeordnet ist.

Hinweis: StateTexts sind nur für Multistate-Punkte und Binärpunkte anwendbar (Gleitkommawerte haben keine integralen Zustände). Wenn eine CSV-Datei jedoch StateText für Punkte mit dem Datentyp Float/Double enthält, wird der Zustandstext für diesen Punkt während des Imports übersprungen.

[SERVERS]

Umfasst Serverdaten (siehe OPC-Serverdaten unten).

[GROUPS]

Schliesst Gruppendaten ein (siehe OPC-Gruppendatenweiter unten).

[ITEMS]

Schliesst Artikeldaten ein (siehe OPC-Artikeldatenunten).

Daten in „OPC Servers“

Der Abschnitt [SERVERS] ist wie folgt zusammengesetzt:

Daten in # Servers: [Name] [Description] [ProgId] [Alias] [Function Name] [Discipline ID] [Subdiscipline ID] [Type ID] [Subtype ID]

Zum Beispiel:

Server_Matrikon; Server OPC;Matrikon.OPC.Simulation.1;0;1;200;201

Data

Verwendung

Beschreibung

[Name]

Notwendig

Name des Drittanbieter-OPC-Server-Ordners wie er im System Browser angezeigt wird.
Hinweis: Verwenden Sie im Servernamen nicht das Dollarzeichen ($). Es ist ein Sonderzeichen, das bereits für die Definition der Peripherieadresse verwendet wird.

[Description]

Notwendig

Beschreibung des Drittanbieter-OPC-Item-Ordners so wie sie im System Browser angezeigt wird (in Klammern neben dem Namen).

[ProgId]

Notwendig

Programm-Identifikation für die Registry des OPC-Servers.

[Alias]

Optional

Aliasname, der dem OPC-Server zugewiesen ist.

[Function Name]

Optional

Name der Funktion, die dem OPC-Server zugewiesen ist.

[Discipline ID]

Optional

ID der Disziplin, die dem OPC-Server zugewiesen ist.

[Subdiscipline ID]

Optional

ID der Subdisziplin, die dem OPC-Server zugewiesen ist.

[Type ID]

Optional

ID des Typs, der dem OPC-Server zugewiesen ist.

[Subtype ID]

Optional

ID des Subtyps, der dem OPC-Server zugewiesen ist.

OPC-Gruppendaten

Der Abschnitt [GROUPS] ist wie folgt zusammengesetzt:

# Groups Data: [Parent Server Name] [Name] [Description] [Alias] [Function Name] [Discipline ID] [Subdiscipline ID] [Type ID] [Subtype ID]

Zum Beispiel:

Server_Matrikon;Group_1;Group_1;0;1;200;201

Daten

Verwendung

Beschreibung

[Parent Server Name]

Notwendig

Name des übergeordneten OPC-Servers für die OPC-Gruppe.

[Name]

Notwendig

Name des OPC-Gruppenordners wie er im System Browser angezeigt wird.

Hinweis: Im Gruppennamen darf kein Dollarzeichen ($) vorkommen. Dies ist ein Sonderzeichen, das in der Definition der Peripherieadresse verwendet wird.

[Description]

Notwendig

Beschreibung des OPC-Gruppenordners so wie sie im System Browser angezeigt wird (in Klammern neben dem Namen).

[Alias]

Optional

Aliasname, der der OPC-Gruppe zugewiesen ist.

[Function Name]

Optional

Name der Funktion, die dem OPC-Gruppe zugewiesen ist.

[Discipline ID]

Optional

ID der Disziplin, die dem OPC-Gruppe zugewiesen ist.

[Subdiscipline ID]

Optional

ID der Subdisziplin, die dem OPC-Gruppe zugewiesen ist.

[Type ID]

Optional

ID des Typs, der der OPC-Gruppe zugewiesen ist.

[Subtype ID]

Optional

ID des Subtyps, der der OPC-Gruppe zugewiesen ist.

OPC-Items-Daten

Der Abschnitt [ITEMS] ist wie folgt zusammengesetzt:

# Items Data: [Parent Group Name] [Name] [Description] [Item Address] [Data Type] [Direction (Access Level)] [Object Model] [Object Model Property] [Alias] [Function Name] [Discipline ID] [Subdiscipline ID] [Type ID] [Subtype ID] [Min] [Max] [MinRaw] [MaxRaw] [MinEng] [MaxEng] [Resolution] [Eng Unit] [StateText] [Alarm Class] [Alarm Type] [Alarm Value] [Event Text] [Normal Text] [Upper Hysteresis] [Lower Hysteresis] [NoAlarmOn][Logical Hierarchy] [User Hierarchy]

Zum Beispiel:

Group1;IntInput1;Int Input1;Group1.Int1 VT_I4;IO;IntegerInput1;0;1;200;201;0;100;5;60;10;100;Alarm;EQ;50;Event Text;NormalText; \Bldg1\Flr1\R1\;\MyUser1\Room1\

Daten

Verwendung

Beschreibung

[Parent Group Name]

Notwendig

Name der übergeordneten OPC-Gruppe für das OPC-Item.

[Name]

Notwendig

Name des OPC-Item-Ordners wie er im System Browser angezeigt wird.

[Description]

Notwendig

Beschreibung des OPC-Item-Ordners so wie sie im System Browser angezeigt wird (in Klammern neben dem Namen).

[Item Address]

Notwendig

Name des Tags, der in der Peripherieadresse verwendet wird.

Hinweis: Die Peripherieadresse besteht aus den folgenden Einträgen, die bei Servernamen, Gruppennamen und Item-Namen jeweils durch "$" getrennt werden.
Die einzelnen Einträge dürfen jeweils maximal 100 Zeichen lang sein.

[Data Type]

Notwendig

Siehe Datentypen von OPC-Items.

[Direction (Access Level)]

Notwendig

Gibt an, ob ein OPC-Item ein Eingang, ein Ausgang oder ein kombinierter Ein-/Ausgang ist (siehe OPC-Items-Richtung).

[Object Model]

Optional

Name des Objektmodells des zu erstellenden OPC-Item-Punkts.

Hinweis: Dieses Feld kann erst nach dem Import eines Objektmodells verwendet werden. Der Eintrag wird verworfen, wenn er ungültig ist. Das Feld kann jedoch leer gelassen werden.

[Object ModelProperty]

Optional

Der Name der mit dem OPC-Item verknüpften Objektmodelleigenschaft, wenn das Feld [Object Model] in der Datei angegeben ist.

[Alias]

Optional

Aliasname, der dem OPC-Item zugewiesen ist.

[Function Name]

Optional

Name der Funktion, die dem OPC-Item zugewiesen ist.

[Discipline ID]

Optional

ID der Disziplin, die dem OPC-Item zugewiesen ist.

[Subdiscipline ID]

Optional

ID der Subdisziplin, die dem OPC-Item zugewiesen ist.

[Type ID]

Optional

ID des Typs, der dem OPC-Item zugewiesen ist.

[Subtype ID]

Optional

ID des Subtyps, der dem OPC-Item zugewiesen ist.

[Min]

Optional

Minimalwert eines Punkts (falls verfügbar).

[Max]

Optional

Maximalwert eines Punkts (falls verfügbar).

[MinRaw]

Optional

Untergrenze der Rohwerteskala.

[MaxRaw]

Optional

Obergrenze der Rohwerteskala.

[MinEng]

Optional

Untergrenze der Konfigurationswerteskala.

[MaxEng]

Optional

Obergrenze der Konfigurationswerteskala.

[Resolution]

Optional

Für reale Zahlen (Gleitkomma) die Anzahl der Ziffern, die nach dem Dezimaltrennzeichen (Komma) angezeigt werden.

[EngUnit]

Optional

Text, der die Konfigurationseinheit angibt.

[StateText]

Optional

Name der Textgruppe, die zur Darstellung des Werts eines OPC-Items verwendet wird.

Hinweis: Zustandstexte können nur mit den Eigenschaften GmsEnum und GmsBool verknüpft werden.

[Alarm Class]

Optional

Alarmklasse, die für einen Alarm aktiviert wird (z.B. Alarm, Systemhinweis, Blocked$Fault)
Verwenden Sie das Dollarzeichen ($), um mehrere Alarme oder Alarmklassen zu trennen.
Syntax:
<AlarmClass1>$<AlarmClass2>$ <AlarmClass3>…

Beispiel: Alarm$Fault$Anomaly

[Alarm Type]

Optional

Bedingung für das Auslösen eines Alarms (siehe Alarmkonfiguration für OPC).

Syntax:
<AlarmType1>$<AlarmType2>$ <AlarmType3>…

Hinweis: Fehlt diese Angabe, wird der Punkt ohne Alarmkonfiguration importiert.

[Alarm Value]

Optional

Wert oder Wertebereich, für den ein Alarm ausgegeben wird. Der Bereich wird durch das Dollarzeichen ($) gekennzeichnet.

Wenn beispielsweise der Alarmwert 40$50 lautet, liegen die Alarmwerte zwischen 40 und 50.

Syntax:
<AlarmValue1>$<AlarmValue2>$ <AlarmValue3>…

Die Operatoren BET (zwischen) und NBET (nicht zwischen) haben folgende Syntax: [Value1$Value2].
Für mehrere Alarme, die sowohl Gleichheits- als auch Bereichsalarme enthalten, muss die Syntax wie folgt lauten: “10$[40$50]”.

Hinweis: Wenn das Feld [StateText] definiert ist, wird es vom Feld [AlarmValue] verwendet. Fehlt diese Angabe, wird der Punkt ohne Alarmierung importiert.

[Event Text]

Optional

Text, der bei off-normalen Bedingungen (eingehenden Alarmen) angezeigt wird.

Für mehrere Alarme können mehrere off-normale Bedingungstexte definiert werden.

Syntax:
<EventText1>$<EventText2>$ <EventText3>…

Beispiele: "Error", "Error$Warning", "Error$Warning$DangerLevel" …

[Normal Text]

Optional

Text, der bei normalen Bedingungen (ausgehenden Alarmen) angezeigt wird.

Für mehrere Alarme können mehrere normale Bedingungstexte definiert werden.

Syntax: [NormalText]=<NormalText1>$<NormalText2>$ <NormalText3>…

Beispiele: "Normal", "OK$Normal", "Normal$OK$Normal" …

[Upper Hysteresis]

Optional

Oberer Bereich für den Alarmwert, über dem ein Alarm ausgelöst wird.

Wenn zum Beispiel der Alarmwert grösser als 50 und die obere Hysterese gleich 2 ist, wird der Alarm ausgelöst, sobald ein Alarmwert von über 52 erreicht ist.

[Lower Hysteresis]

Optional

Unterer Bereich für den Alarmwert, unter dem ein Alarm ausgelöst wird.

Dieser Wert ist immer negativ.
Wenn zum Beispiel der Alarmwert kleiner als 50 und die untere Hysterese gleich -2 ist, wird der Alarm ausgelöst, sobald ein Alarmwert von unter 48 erreicht ist.

NoAlarmOn

Optional

Um zu verhindern, dass bei einem Verbindungsausfall zum Gerät bei einem Standardwert ein Alarm ausgelöst wird, muss dieses Feld auf DriverFail gesetzt werden.

Hinweis: Der Standardwert für die OPC-Suche ist nicht gesetzt.

[Logical Hierarchy]

Optional

Pfad der technischen Sicht, unter dem der Punkt für das OPC-Item erstellt wird, vorausgesetzt ein Ordner der technischen Sicht wurde als Basisordner für die technische Hierarchie festgelegt.

Syntax: \<Level0>\<Level1>\…\<Level-n>\

Beispiel: \BuildingA\Floor3\room403\

Hinweis: Ein umgekehrter Schrägstrich (\) wird als Ebenentrennzeichen sowie am Anfang und Ende des Pfads verwendet.
Das Importprogramm fügt den Datenpunkt automatisch nach dem letzten Trennzeichen zum technischen Hierarchiepfad hinzu. Anschliessend wird die resultierende Hierarchie zum Basisordner der technischen Sicht im System Browser hinzugefügt.
Wenn zum Beispiel der Datenpunkt "Light403_11" mit dem Hierarchiepfad "\BuildingA\Floor3\Room403\" verknüpft wird, ist im System Browser die folgende technische Hierarchie zu sehen:
"<Logical Hierarchy Root Node>\Building A\Floor3\Room403\Light403_11".

[User Hierarchy]

Optional

Pfad der benutzerdefinierten Sicht, unter dem der Punkt für das OPC-Item erstellt wird, vorausgesetzt ein Ordner der Betreibersicht wurde als Basisordner für die Betreiberhierarchie festgelegt.

Syntax: \<Level0>\<Level1>\…\<Level-n>\

Beispiel: \BuildingA\Floor3\room403\

Hinweis: Ein umgekehrter Schrägstrich (\) wird als Ebenentrennzeichen sowie am Anfang und Ende des Pfads verwendet.
Das Importprogramm fügt den Datenpunkt automatisch nach dem letzten Trennzeichen zum benutzerdefinierten Hierarchiepfad hinzu. Anschliessend wird die resultierende Hierarchie zum Basisordner der benutzerdefinierten Sicht im System Browser hinzugefügt.
Wenn zum Beispiel der Datenpunkt "Light403_11" mit dem Hierarchiepfad "\BuildingA\Floor3\Room403\" verknüpft wird, ist im System Browser die folgende benutzerdefinierte Hierarchie zu sehen:
"<User Hierarchy Root Node>\Building A\Floor3\Room403\Light403_11".

Hinweise zum Bearbeiten der CSV-Datei

  • Wenn Sie eine Datei in Microsoft Excel bearbeiten, trennen Sie die Felder durch Strichpunkte (Semikolon).
  • Jede Kommentarzeile beginnt mit einer Raute (#). Diese Zeilen werden während des Imports ignoriert.
  • Die Elemente einer OPC-Konfigurationsdatei müssen in der folgenden Reihenfolge hinzugefügt werden: Server, Gruppen und Items. Eine Änderung dieser Reihenfolge kann dazu führen, dass Daten während des Imports abgelehnt werden.
  • Wenn Sie in der CSV-Datei keinen Funktionsnamen (Function Name) eintragen, werden Standardwerte aus der Konfiguration des Objektmodells übernommen.
  • Wenn eines der Alarmfelder einen Fehler enthält, wird der Datenpunkt zwar importiert, aber kein Alarm konfiguriert.
  • Wenn in einem der Felder mehrere Alarmkonfigurationen aufgeführt werden, muss das Dollarzeichen ($) als Trennzeichen verwendet werden.

 

Sonderzeichen

  • Ein Semikolon (;) wird als Feldtrenner verwendet. Verwenden Sie kein Semikolon (;) in den Strings.
  • Verwenden Sie kein Dollarzeichen ($) in den Namen von Servern oder Gruppen. Dieses Sonderzeichen wird bereits in der Definition der Peripherieadresse verwendet (siehe Daten von OPC-Items).
  • Im Feld [Name] der Elemente (Server, Gruppen und Items) werden die Zeichen aus der folgenden Tabelle durch Unterstriche ersetzt:

 

Glyphe

Beschreibung

 

Whitespace

/

Schrägstrich

\\

Doppelter umgekehrter Schrägstrich

-

Minuszeichen

?

(Fragezeichen)

.

Punkt

!

Ausrufezeichen

@

At-Zeichen

#

Raute

%

Prozentzeichen

^

Zirkumflex

$

Dollarzeichen

,

Komma

;

Semikolon

[

Linke eckige Klammer

]

Rechte eckige Klammer

{

Linke geschweifte Klammer

}

Rechte geschweifte Klammer

(

Linke Klammer

)

Rechte Klammer

\t

Tabulator

*

Stern

§

Paragraphenzeichen