Einstellungen für den SSI Treiber
[ssi] aliveInstrNr
- Typ
- unsigned
- Default
- 0
- Wertebereich
- >=0
Über diesen Eintrag ist einstellbar, welche Befehlsnummer beim Versenden von
Alive-Telegrammen (Typ Impulsbefehl) verwendet werden soll. Dieser Eintrag ist nur dann
notwendig und sinnvoll, wenn der SSI-Treiber redundant betrieben wird und die verschiedenen
Replicas (siehe Redundanz) ihre Verbindungen mit unterschiedlichen Impulsbefehlen
überwachen. Die Peripherieadresse des Datenpunktes, der für diese Aliveüberwachung dient,
muss trotzdem bei allen Replicas gleich sein, nur die Befehlsnummer (siehe Kapitel
Telegrammformate - Befehl) darf unterschiedlich sein (dies ist durch diesen Eintrag
einstellbar).
Beispiel:
(0) aliveInstrNr = 0
(1) aliveInstrNr = 1
Die Befehlsnummern der Alive-Telegramme entsprechen hier den Replicanummern.
[ssi] aliveName
- Typ
- string
- Default
- _SSI_Alive_
Basisname der SSI-Alive-Datenpunkte. An diesen Basisnamen wird vom Treiber automatisch die
Treibernummer angehängt. Beispiel: "_SSI_Alive_1" für den Treiber Nummer 1 Typ
dieser Datenpunkte: _SSI_Alive
[ssi] connection
- Typ
- string int int
Gibt die wichtigsten Verbindungsparameter an.
Syntax:
connection = <hostname> <portnumber> <time>
- <hostname> - Der Hostname des Kommunikationspartners. Dieser muss inklusive der
Domainbezeichnung angegeben werden.
- <portnumber> - die Portnummer der Verbindung. Diese ist auf 0 zu setzen, wenn
der Treiber als Server agiert (in diesem Fall muss der Eintrag tcpServerPort in der
Konfigurationsdatei existieren).
- <time> - Die Zeit gibt bei Clientverbindungen an, nach wie vielen Sekunden beim
Verbindungsausfall versucht wird die Verbindung erneut aufzubauen.
Beispiel:
connection = "mymachine.co.at" 2073 6
Dieser Treiber kommuniziert mit der vorgelagerten Komponente, die die Internetadresse
"mymachine.co.at" hat. Der Treiber agiert dabei als Client. Sechs Sekunden nach einem
erkannten Verbindungsausfall versucht er einen erneuten Verbindungsaufbau zur vorgelagerten
Komponente durchzuführen.
Beispiel:
tcpServerPort = 2073
connection = "othermachine.co.at" 0 10
In diesem Fall agiert der Treiber als Server. Es muss einen Eintrag tcpServerPort geben,
der angibt, über welche Portnummer der Treiber seine Dienste zur Verfügung stellt. Der
letzte Parameter (die Reconnect-Zeit) hat in diesem Fall keine Bedeutung.
[ssi] dadfName
- Typ
- string
- Default
- _SSI_DaDf_Table
Name des Datenpunkts, mittels dem die Zuordnung zwischen Datenart und Datenformat
parametriert werden kann. Typ dieses Datenpunktes: _SSI_DaDf
[ssi] defaultImpulseTime
- Typ
- int
- Default
- 8
- Wertebereich
- 0 - 255
Bei den Impulsbefehlen, die vom Treiber an die SAT-Komponenten geschickt werden, kann eine
Zeitdauer parametriert werden (siehe Kapitel Telegrammformate - Befehl). Damit nicht zu
jedem Befehlsdatenpunkt diese Zeitdauer parametriert werden muss, gibt es die Möglichkeit,
mit diesem Eintrag einen Defaultwert anzugeben. Dieser ist als Byte so anzugeben, wie er im
SAT-Format erwartet wird (siehe unten). Fehlt dieser Eintrag in der Konfigurationsdatei,
dann wird als Defaulteinstellung 8 (= 00001000) angenommen, was einer Schaltzeit von 100 ms
(= 2x50 ms - siehe unten) entspricht. Folgende Informationen sind in diesem Byte enthalten:
- Zeit (Bit 0 und 1) 0 für 50 ms, 1 für 500 ms, 10 für 1 s, 11 für 10 s
- Faktor (Bit 2-6) 1..31 Schaltzeit = Zeit - Faktor
- OW (Bit 7) 1...Überschreibt bereits laufendes Kommando
0...Überschreiben nicht erlaubt.
Beispiel:
defaultImpulseTime = 4
Setzt den Defaultwert für die Schaltzeit der Impulsbefehle auf 50 ms.
Beispiel:
defaultImpulseTime = 134
Setzt den Defaultwert für die Schaltzeit der Impulsbefehle auf eine Sekunde mit gesetztem
Überschreibbit.
[ssi] drvSmoothMode
- Typ
- int
- Wertebereich
- 0,1,2
Definiert das Glättungsverhalten. Folgende Werte können für diesen Config-Eintrag gesetzt
werden:
- 0 - Die Glättung wird immer durchgeführt.
- 1 - Es werden nur spontane Wertänderungen geglättet.
- 2 - Die Glättung wird nie durchgeführt.
Dieser Wert wird auf den Datenpunkt _Driver<num>.SM vom Typ _DriverCommon
geschrieben.
[ssi] hostId
- Typ
- int int
Gibt den Namen der eigenen Komponente im System an (<region> und <component>).
Läuft der Treiber in einem redundanten System und soll daher mehrfach betrieben werden, so
kann für jede Instanz ein eigener Eintrag für die HostId angegeben werden, indem jedem
Eintrag die Nummer der Replica vorangestellt wird (in runden Klammern, siehe Eintrag
tcpServerPort).
[ssi] impztName
- Typ
- string
- Default
- _SSI_Impulse_Times
Name des Datenpunktes, der ein dynamisches Array von Impulszeiten (für binäre SSI-Befehle)
enthält. Typ dieses Datenpunktes: _SSI_Impulse_Type
[ssi] keet
- Typ
- int int
Regionsnummer und Komponentennummer der vorgelagerten Komponente im System (das ist die
Komponente, die unmittelbar mit WinCC OA verbunden ist). Wird benötigt zur Initialisierung
der komponentenspezifischen internen Datenpunkte. Die Werte müssen mit den zu erwarteten
Regionsnummern und Komponentennummern der SSI-Telegramme übereinstimmen. Siehe auch
keetConnection.
[ssi] keetConnection
- Typ
- int int string int int
Der Config-Eintrag keetConnection fasst die Einträge keet/connection bzw.
redundancyKeet/redundancyConnection zusammen. Mit diesem Eintrag können mehr als 2
Verbindungen definiert werden. Die Parameter sind:
- Regionsnummer der Verbindung
- Komponentennummer der Verbindung
- IP-Name des Partners
- Portnummer (0 falls der Treiber als Server agiert), üblicherweise 2073
- Timeout für einen Reconnect
Die Einträge keet/connection bzw. redundancyKeet/redundancyConnection werden der
Kompatibilität halber weiterhin unterstützt. Die Reihenfolge der Einträge ist beliebig, der
Treiber schickt Befehle zu allen Partnern und liest Meldungen von allen Partnern.
Beispiel:
[ssi]
keetConnections = 1 101 "SSIHost" 1723 10
[ssi] mapComponent
- Typ
- unsigned unsigned
- Wertebereich
- 0..255, 0..255
Mit diesem Eintrag kann eine Komponentennummer auf eine andere abgebildet werden. Damit
ist es möglich, Werte von verschiedenen, redundanten SAT-Anlagen zu erhalten, die
entsprechenden Datenpunkte jedoch nur einmal zu parametrieren. Im Config-Eintrag wird die
Komponentennummer und ihr 'Alias' angegeben.
Beispiel:
mapComponent = 2 22
Erhält der Treiber ein Telegramm mit der Komponente 2, so sucht er erst nach einer
Peripherieadresse für diese Komponente. Findet er keine, so sucht er eine für die Komponente
22.
[ssi] mapRegion
- Typ
- unsigned unsigned
- Wertebereich
- 0..255, 0..255
Mit diesem Eintrag kann eine Regionsnummer auf eine andere abgebildet werden. Die
Reihenfolge der Zahlen im Eintrag ist <SPS-Regionsnummer> <WinCC
OA-Regionsnummer>. In Telegrammen von der SPS wird die Regionsnummer immer auf die
abgeändert, die in WinCC OA gültig ist, bevor nach dem entsprechenden DP gesucht wird. In
Befehlstelegrammen und auch in Systemtelegrammen vom Treiber wird als Source-Regionsnummer
im Telegrammkopf weiterhin die in 'hostID' spezifizierte verwendet, also ohne Mapping, für
eine Target-Regionsnummer in Systemtelegrammen die abgebildet aus dem DP. In der
Config-Datei sollten in 'hostID', 'keet', 'redundancyKeet' und 'reachableComponent'
weiterhin die in WinCC OA gültigen Regionsnummern verwendet werden. Jede Regionsnummer darf
höchstens einmal je Treiber abgebildet werden.
[ssi] mapUserBit
- Typ
- int string
- Wertebereich
- 1 - 8; TestMode, Spontan, NotSorted, NEZ, Available, Ersatzwert, HighPriority, AbschaltungManuell
Die im SSI-Telegramm gesetzten Flags können bei Bedarf auf Userbits des
Originalwert-Konfigs abgebildet werden. Dabei sind für den 1. Parameter die Eintrage 1 bis 8
erlaubt (für 8 Userbits), für den 2. Parameter können die folgenden Einträge angegeben
werden:
- 'TestMode'
- 'Spontan'
- 'NotSorted'
- 'NEZ'
- 'Available'
- 'Ersatzwert'
- 'HighPriority'
- 'AbschaltungManuell'
GA- und Invalid-Bit werden immer abgebildet und zwar auf die dafür vorgesehenen und
gleichnamigen Bits des Originalwertkonfigs.
[ssi] reachableComponent
- Typ
- int int
Regionsnummer und Komponentennummer einer Komponente im System (außer der vorgelagerten -
siehe Eintrag "keet" oben). Wird benötigt zur Initialisierung der
komponentenspezifischen internen Datenpunkte. Die Werte müssen mit den zu erwarteten
Regionsnummern und Komponentennummern der SSI-Telegramme übereinstimmen.
[ssi] redundancyConnection
- Typ
- string int int
Die Bedeutung der Parameter entspricht denen des Eintrags connection. Dieser Eintrag ist
dann erforderlich, wenn es zwei redundante Fernwirkkomponenten (KE/ET) gibt, die mit einem
Treiber verbunden werden. Die Kommunikation mit mehr als zwei redundanten KE/ET ist derzeit
im SSI-Treiber nicht möglich.
Beispiel:
connection = "firstmachine.co.at" 2073 10
redundancyConnection = "secondmachine.co.at" 2074 10
Der Treiber soll zwei Verbindungen aufbauen (beide als Client). Alle Daten, die von den
beiden redundanten KE/ET kommen, werden vom Treiber weiterverarbeitet (und an den
Event-Manager weitergeleitet, sofern sie nicht geglättet werden). Normalerweise schickt nur
das aktive der beiden KE/ET tatsächlich Nutzdaten (eine Ausnahme stellen Alive-Telegramme
dar, die nur der Verbindungsüberwachung dienen).
[ssi] redundancyKeet
- Typ
- int int
Die Bedeutung der Parameter entspricht denen des Eintrags keet. Dieser Eintrag ist dann
erforderlich, wenn es zwei redundante Fernwirkkomponenten (KE/ET) gibt, die mit einem
Treiber verbunden werden. Soll mit mehr als 2 redundanten KE/ET kommuniziert werden, so
müssen statt der Einträge "connection", "keet", "redundancyConnection" für jede KE/ET ein
Eintrag "keetConnection" verwendet werden. The parameters here have the same meaning as
those in the keet statement. This statement is necessary when there are two redundant
remote devices (KE/ET) connected to one driver. If the system needs to communicate with
more than 2 redundant KE/ET components, then one "keetConnection" entry must be used for
each KE/ET instead of the entries "connection", "keet" and "redundancyConnection".
[ssi] selectTime
- Typ
- int int
- Wertebereich
- >=0; >=0
Maximalzeit in Sekunden (1.Parameter) und Millisekunden (2.Parameter), die im select auf
das Eintreffen neuer Daten gewartet werden soll.
[ssi] ssiMaxLength
- Typ
- int
- Default
- 1024
- Wertebereich
- >0
Gibt die maximale Länge eines SSI-Telegramms in Byte an.
[ssi] subAdrInUse
- Typ
- string
- Default
- No
- Wertebereich
- Yes|No
Gibt an, ob die Subadresse bei der Quelladresse des Telegramms berücksichtigt
("Yes") oder immer auf 0 gesetzt werden soll ("No").
[ssi] sysAllName
- Typ
- string
- Default
- _SSI_ALL_
Basisname aller KE/ET spezifischen Datenpunkte zur Verwaltung der Systemtelegramme in
Befehlsrichtung (analog zu sysMsgName).
[ssi] sysMsgName
- Typ
- string
- Default
- _SSI_SYS_
Basisname aller komponentenspezifischen Datenpunkte zur Verwaltung der Systemtelegramme.
Je Komponente im System muss ein Datenpunkt angelegt werden, auf den eingehende und
ausgehende Systemtelegramme abgebildet werden (z.B. GA). Der Name besteht dann aus dem hier
angegebenen Basisnamen und der Regions- und Komponentennummer, durch '_' getrennt (Beispiel:
"_SSI_SYS_255_1" für Komponente 1). Es ist darauf zu achten, dass der Basisname immer mit
einem "_" endet.
[ssi] tcpServerPort
- Typ
- int
- Wertebereich
- >0
Gibt den Serverport für die von diesem Treiber hergestellte TCP-Verbindung an. Dieser
Eintrag ist nur dann erforderlich, wenn der Treiber als Server-Dienst zur Verfügung stellen
soll. Wird der Treiber in ein redundantes System eingebunden und soll daher mehrfach laufen,
so kann für jede Instanz ein eigener Eintrag für den Serverport angegeben werden.