Konfigurationsdatei IEC Treiber
Diese Seite enthält beispielhafte Config-Dateien für den IEC Treiber. Details zu den Einträgen entnehmen Sie dem Kapitel Mögliche Config-Einträge des IEC Treibers.
Ein Mischbetrieb des IEC101 und IEC 104 in einem Treiber ist nicht möglich! Dazu sind 2 Treiber erforderlich.
Mit der WinCC OA Version 3.10 wurde das interne DPE _IecConnection.Config.ConnInfo implementiert, welches die Config-Einträge "connection" und "connection_101" ersetzt. Somit kann das Erstellen neuer Verbindungen im Panel in den Verbindungseinstellungen erfolgen. Dadurch ist ein Treiberneustart, wenn ein neues IEC Gerät hinzugefügt wurde oder wenn sich Verbindungsparameter (z.B. IP-Adresse) geändert haben, nicht mehr erforderlich. Der Eintrag aus dem internen DPE (falls vorhanden) hat höheres Gewicht als der in der Config Datei (falls vorhanden).
IEC 104
Für den korrekten Start eines IEC104 Treibers sind folgende Config-Einträge möglich:
Beispiel für Config-Datei des IEC 104
Da hier WinCC OA als Client dient, muss kein tcpServerPort angeben werden:
[iec_1]
connection = "Gateway1" "GW1" 2404 10 //Verbindung zu Gateway1
connection = "Gateway2" "GW2" 2404 10 //Verbindung zu Gateway2
Dabei bedeuten:
-
"Gateway1" (name): (Logischer) Name dieser Verbindung. Für jede Verbindung gibt es einen Datenpunkt "_<name>" vom Typ "_IecConnection". Diese DP werden im Panel für Verbindungen automatisch angelegt. Bei redundanten Treibern muss sich der Name auf beiden Replicas wie folgt unterscheiden: z.B. "name" auf $HOST1 und "name_2" auf $HOST2.
-
"GW1" (host) : Name (oder IP-Adresse) des Hosts, zu dem sich der Treiber verbinden soll bzw. von dem er eine Verbindung akzeptiert z.B. eiwnt160, bei einem fremden Rechner oder localhost, wenn der eigene Rechner verwendet wird.
-
2404 (port): Portnummer, wenn der Treiber ein TCP-Client ist und von sich aus eine Verbindung versucht, oder 0, wenn der Treiber ein TCP-Server ist. Im letzteren Fall muss der Eintrag "tcpServerPort" vorhanden sein.
-
10 (timeout): Timeout Intervall, in dem der Treiber eine Verbindung auf TCP-Ebene versucht, wenn er TCP-Client ist.
Für IEC-104 können theoretisch bis zu 32766 Verbindungen aufgebaut werden! Die praktische Grenze richtet sich nach den Performanceanforderungen.
Für jede Verbindung ("connection = " in der Config-Datei) muss ein DP vom Typ _IecConnection existieren, welcher automatisch im Panel für Verbindungen angelegt wird (siehe Panel für Verbindungen).
IEC 101
Beispiel für Config-Datei des IEC 101, unbalanced Mode (unsymmetrische Übertragung)
WinCC OA ist dabei als Master konfiguriert:
[iec_1]
connection_101 = "Gateway1" "Com1" 2
connection_101 = "Gateway2" "Com1" 1
device_101 = "Com1" "V24" "com1"9600,e,8,1"
balanced_101 = "No"
master_101 = "Yes"
timeout_t2 = 10000
sizeof_LA_101 = 1
# die Parametrierung des IEC101-Treibers unter Linux:
[iec_1]
connection_101 = "Gateway1" "Ser0" 5
device_101 = "Ser0" "V24" "/dev/ttyS0"9600,e,8,1"
station_101 = 1
balanced_101 = "no"
master_101 = "Yes"
timeout_t2 = 1000
sizeof_LA_101 = 1
Dabei bedeuten:
-
"Gateway1" (<name>): (Logischer) Name dieser Verbindung analog einer IEC104 Verbindung
-
"Com1" (<devname>): Name eines device_101
-
2 (<101 Linkadresse>): logische Adresse des IEC101 Partners im unbalanced Mode
-
"V24" (<type>): Fix "V24" (für eine serielle Verbindung)
-
"com1"9600,e,8,1" (<Gerätedaten>): Je nach Type werden hier die gerätespezifischen Daten
erfasst. Gerätedaten ist ein String der Form "port"baud,parity,datenbits,stopbits"
-
"No" (balanced_101): Damit ist Übertragungsart unsymmetrisch festgelegt ("unbalanced mode")
-
"Yes" (master_101): Damit ist "iec_1" als Hauptstation festgelegt. Alle anderen sind dann Unterstationen (Slave). Für die symmetrische Übertragung ist dieser Eintrag obsolet.
-
timeout_t2: Der Eintrag timeout_t2 ist nur für den unbalanced Mode relevant und er definiert das Pollintervall, in dem Daten abgefragt werden. Ist die Zeit z.B. 1s, so fragt der Treiber jede Unterstation im 1s Intervall ab. Der Eintrag wird in Millisekunden angegeben.
-
1 (sizeof_LA_101): Anzahl Bytes für die Linkadresse. Im Unbalanced Mode muss dieser Config-Eintrag vorhanden und ungleich 0 sein!
Beispiel für Config-Datei des IEC 101, balanced Mode (symmetrische Übertragung).
Da hier balanced Mode verwendet wird, sind 2 Treiber erforderlich (beide Stationen gleich berechtigt" in diesem Beispiel werden 2 Treiber zu Testzwecken verwendet. Im Normalfall wir natürlich nur ein Treiber benötigt):
[iec_1]
connection_101 = "Gateway1" "Com1"
device_101 = "Com1" "V24" "com1"9600,e,8,1"
balanced_101 = "Yes" // symmetrische Übertragung, balanced mode
Dabei bedeuten:
-
"Yes" (balanced_101): Damit wird die symmetrische Übertragungsart ("balanced mode") festgelegt.
Die anderen Einträge entsprechen in Ihrer Bedeutung, jenen wie sie für die unsymmetrische Übertragung gelten.
IEC 101 - Erweiterung: Serielle Kommunikation über TCP Verbindung
Der IEC 101 Treiber wurde dahingehend erweitert, dass es möglich ist das serielle Protokoll auch über eine TCP Verbindung zu benutzen. Dies erleichtert die Handhabung von ethernet-serial Konvertern, da keine virtuelle COM Schnittstelle mehr notwendig ist. Der Konverter kann dabei TCP Server oder TCP Client sein und transparent oder im RFC2217 Modus betrieben werden.
Hierfür muss der Config-Eintrag "device_101" angepasst werden.
device_101 = <devName> <Typ> <Gerätedaten>
Die Einstellungen für <devName> und <Typ> werden analog zur herkömmlichen seriellen Konfiguration vorgenommen, jedoch müssen die <Gerätedaten> folgendermaßen angepasst werden:
tcp[s][rfc]:<Host:Port (IPv4 oder IPv6)> [tcp timeout]
Element | Beschreibung |
---|---|
tcp | Präfix, welches angibt, dass die Kommunikation via TCP erfolgen soll. |
s | Zusatz, der angibt, ob es sich um einen Server handelt. Wird s nicht gesetzt, handelt es sich um eine Client Verbindung (optional). |
rfc | Zusatz, der angibt, ob der RFC2217-Modus verwendet werden soll (optional). |
Host |
Name oder IP des Hosts Hinweis Bei einem Server kann der Hostname leer sein. Wenn einer angegeben wird so wird dieser ignoriert. D.h. der Server akzeptiert Verbindungen von beliebigen hostnamen. |
Port | Port, der für die Verbindung verwendet werden soll. Bei einem Server ist diese Portnummer der "listening port". |
tcp timeout | Timeout, welcher für die TCP Verbindung verwendet werden soll. Default: 10 Sekunden (optional). |
Beispiel
Nachfolgend 3 Beispiele zur Konfiguration der Gerätedaten bei der Verwendung einer TCP Verbindung:
"tcp:127.0.0.1:3040" => Client mit 10sec timeout
"tcps:localhost:3041 5" => Server mit 5sec timeout
"tcprfc:[::1]:3042 2" => Client mit RFC2217-Modus, IPv6-Adresse und 2sec timeout