Interne Datenpunkte
Dieses Kapitel beschreibt die internen Datenpunkten "_SNMPManager", "_SNMPAgent", "_SNMPLiveAgent" und "_SNMPV3Entity".
Datenpunkttyp _SNMPManager
Datenpunkt | Beschreibung |
---|---|
_SNMPManager |
Der Kontrolldatenpunkttyp für den SNMP Manager (= SNMP Treiber). Der Name des Datenpunkts setzt sich zusammen aus der Treibernummer und dem im Config-File angegebenen Namen. Im Standardfall ist dies ”_1_SNMPManager” Die Elemente dieses Datenpunkts dienen zur Kommunikation mit der SNMP Treiberschicht und geben auch Rückmeldung über den Zustand des Treibers. |
Elemente vom _SNMPManager
Element | Type | Meaning |
---|---|---|
Command | string | Über dieses Element können Kommandos an die Treiberschicht gesendet werden. Dieses Element dient zu Testzwecken. |
Trap.EnterpriseOID | string | Auf den Elementen in der Trap-Gruppe werden Details zum zuletzt empfangenen SNMP Trap angezeigt. Der Enterprise-OID enthält Informationen über den Agent, welcher den Trap verschickt hat. |
Trap.IPAddress | string | Das IP Address Feld enthält die IP-Adresse des Agents, der den Trap geschickt hat. |
Trap.genericTrap | string |
Dieses Feld zeigt an, wenn ein sog. Generic trap verschickt wurde. Als Möglichkeiten stehen zur Auswahl
Die jeweilige Bedeutung dieser Begriffe sind der RFC 3418 (SNMP v2) zu entnehmen. |
Trap.PayloadType | string | Datentyp des Trap Payloads. |
Trap.specificTrap | string | Falls kein Standard Trap verschickt wurde, steht in diesem Feld der Wert des letzten Elements des Trap OIDs. |
Trap.timestamp | uint | Der Zeitstempel gibt an, wann der Trap verschickt wurde (Laufzeit des Agents entsprechend system.sysUpTime) |
Trap.PayloadOID | dyn_string | Der SNMP Trap kann weitere SNMP Elemente mitführen, die Details zum Trap aufzeigen. Diese Elemente hängen vom jeweiligen Trap ab und werden immer als Paar OID <-> Wert geschickt. Das PayloadOID Feld enthält die Object Identifier. |
Trap.PayloadValue | dyn_string |
Dieses Element enthält die Werte der Payload-Elemente. Um Octet Strings zu behandeln, welche nicht druckbare Zeichen beinhalten, kann der Config Eintrag [snmpdrv] trapPayloadOctetStringHex aktiviert werden. |
Trap.HomelessTrap | string |
Dieses Element liefert Informationen bezüglich "homeless" Traps. Die Meldung wird im folgendem Format gespeichert: <Agent Name>|<AgentId>|<SNMP Datentyp als String>(<SNMP Datentyp als Integer Wert>)|<OID>|<agent IP> Beispiel
|
Redirector | uint | Obsolete |
TrapFilter.Address | dyn_string | Der Trap-Empfänger kann Traps nach Herkunftsadresse filtern. Diese Filterung wird über das TrapFilter.Address Element ermöglicht. |
TrapFilter.OID | dyn_string | Der Trapfilter kann auch die EnterpriseOID der Traps auswerten und nur auf spezifische Traps reagieren. So kann die Flut der eintreffenden Traps z.B. auf mehrere SNMP Manager aufgeteilt werden. |
Datenpunkttyp _SNMPAgent
Datenpunkttyp | Beschreibung |
---|---|
_SNMPAgent |
Der SNMP Agent Datenpunkttyp bildet die Parametrierung für einen anzusprechenden
Agent ab. Die Datenpunktnamen setzen sich aus der Treibernummer, dem String aus
dem Configfile und der Agentnummer zusammen. Die Agentnummer kann von 1 bis
"maxAgents" reichen. Im Normalfall heißt ein Datenpunkt dann z.B.:
Anmerkung: Zusätzlich muss ein Datenpunkt mit der Bezeichnung
_SNMPAgent existieren. Ist
dies nicht der Fall, so muss der Config-Eintrag [snmpdrv] agentDPTemplate geändert
werden. |
Elemente vom _SNMPAgent
Element | Typ | Beschreibung |
---|---|---|
Access.IPAddress | string | Die IP-Adresse des Agents, z.B. 192.168.1.13, oder ein Rechnername, z.B. eiwrk068. Wenn keine IP-Adresse eingetragen wird bzw. diese wieder gelöscht wird (Leerstring), wird der Agent automatisch deaktiviert und der interne DPE Status.Timeout auf FALSE gesetzt, unabhängig in welchem Status sich dieser vorher befand. |
Access.ReadCommunity | string | Der SNMP Read Community String. |
Access.WriteCommunity | string | Der SNMP Write Community String. |
Access.Timeout | uint | Das Timeout in 1/100s, bis ein SNMP Telegramm beantwortet warten muss. Der Defaultwert ist 100 (entspricht 1s), was bei längeren Strecken oder langsameren Netzen/Agents evtl. erhöht werden muss. Gültige Werte sind 100 - 1000 (entspricht 1 - 10s). |
Access.Retries | uint | Wiederholungen, bevor ein SNMP Protokoll Fehler ausgegeben wird. Im Falle eines Timeouts (s.o.) wird das Telegramm wiederholt. Der Standardwert ist 1, maximal 10 Wiederholungen sind parametrierbar. |
Access.Protocol | uint | Das SNMP-Protokoll. 0,1 stehen für v1 und 2 für v2c. Standard ist v1. |
Access.Port | uint | Die Portnummer, unter welcher der Agent angesprochen werden soll. Das Standardport von SNMP liegt auf 161. Es kann aber hier auch jeder andere Port angegeben werden. |
Access.Flags | bit32 |
Mit diesem Element können zusätzliche Einstellung durch Setzen (=1) des entsprechenden Bit Wertes vorgenommen werden.
Wichtig: Eine Redundanzumschaltung ist nur
möglich wenn ein gültiges Target (.Redu.Access) konfiguriert ist.
Einschränkung: getBulk-Anfragen (siehe Bit 2) können nicht für
SNMP-V1-Agenten verwendet werden.
|
Status.ErrorOID | dyn_string |
Wenn ein Protokollfehler auftritt, so wird an diesem Datenpunkt die entsprechende OID angezeigt. Da hier ein DynText vorliegt, werden immer alle aktuellen nicht verfügbaren OIDs angezeigt. Des Weiterem werden auch die entsprechenden Invalid-Bits bei den WinCC OA Elementen gesetzt. Format:
Die möglichen Fehlercodes sind:
Anmerkung: Ist das Debug-Flag 29 gesetzt, werden die Fehlermeldungen auch im WinCC OA Log-Viewer ausgegeben.
|
Status.QueueLength | uint | Hier wird die aktuelle Länge der Request Queue des Agents angezeigt. Dieser Wert wird nur dann aktualisiert, wenn auch ein Protokollfehler aufgetreten ist. Er soll zu Diagnosezwecken ausgegeben werden und ist für den laufenden Betrieb unerheblich. |
Status.Timeout | bool | Dieses Bit wird gesetzt, wenn eine gewisse Zeit lang kein Telegramm mit dem Agent ausgetauscht worden ist (die Zeit wird über den Config-Eintrag agentConnectTimeout parametriert). Wenn am DPE Access.IPAddress keine IP-Adresse (Leerstring) eingetragen wurde bzw. wieder gelöscht wird, wird dieses Bit auf FALSE gesetzt, unabhängig von dessen vorherigen Status. |
Status.ConnState | bool |
Das Datenpunktelement zeigt den Verbindungsstatus des SNMP Agents an. Folgendes gilt für jeden Agent, welcher für einen SNMP Manager konfiguriert wurde:
Anmerkung: Das Konfigurieren weiterer Peripherieadressen löst keinen weiteren Alive-Check
aus.
|
Status.WriteResponse | string |
Das Datenpunktelement enthält die Antwort auf den Schreibversuch des SNMP Agents. Hierbei werden folgende Information hinterlegt:
Beispiel für das erfolgreiche Schreiben durch den Treiber:
Beispiel für ein fehlerhaftes Schreiben durch den Treiber:
Die entsprechenden Fehlercodes entnehmen Sie der Beschreibung des DPE Elementes Status.ErrorOID. |
Status.ActiveConn | int |
Zeigt das aktive Target an, mit dem der Treiber gerade kommuniziert.
|
Command | uint |
Über dieses Element können zwei Kommandos an die lokale Agent-Repräsentation abgeschickt werden:
|
Browse.Start | string |
Definiert die Start-OID für die Abfrage aller Daten des Agents. Diese werden dann auf das DPE Browse.Result geschrieben. Wenn dieses DPE leer gelassen wird, wird die Abfrage mit der Start-OID "1.3.6.1" gestartet. Es ist auch möglich, per dpSet auf dieses Datenpunktelement mehrere Browsing-Requests anzustoßen. Die Requests kommen der Reihe nach in eine Abarbeitungsliste und werden anschließend in der selben Reihenfolge abgearbeitet. Grundsätzlich gibt es kein Limit für Browsing-Requests. Ein Browsing-Request wird jedoch verworfen, wenn sich bereits ein identischer Request in der Abarbeitungsliste befindet. Jeder Browsing-Request wird durch den String identifiziert (siehe DPE "Browse.RequestId"), der auf dieses Datenpunktelement geschrieben wurde. Folgende Requests sind unterschiedlich und würden somit gleichzeitig zur Liste hinzugefügt:
|
Browse.Result | dyn_string |
In diesem DPE wird das Ergebnis der Abfrage, welche mittels Browse.Start gestartet wurde, ausgegeben. Während des Browsens steht in diesem DPE "1 - started browsing". Nachdem das Browsen erfolgreich durchgeführt wurde, enthält das Ergebnis die Daten des Agents. Ein Datensatz setzt sich immer aus 3 Zeilen zusammen:
Beispiel mit zwei Datensätzen:
Mögliche Werte für den Datentyp:
Enthält das Ergebnis keine durch 3 teilbare Anzahl an Einträgen, so handelt es sich um eine Statusmeldung. In diesem Fall steht in der ersten Zeile ein Statuscode:
Fehlercode und Beschreibung sind in der zweiten Zeile enthalten. Zum Beispiel:
|
Browse.RequestId | string | Request-ID zur Identifikation von Browsing-Requests und dessen Ergebnissen. Die ID wird gemeinsam mit dem Ergebnis der Abfrage gesetzt und entspricht immer dem String der zum Starten der Abfrage auf das Browse.Start-Datenpunktelement geschrieben wurde. |
Redu.Access.IPAdress | string | IP-Adresse (oder Computername) des redundanten Agents. Wird keine IP-Adresse gesetzt oder die Adresse gelöscht (Leerstring), wird die Entity automatisch deaktiviert, das interne Datenpunktelement Status.Timeout wird unabhängig vom aktuellen Status auf FALSE gesetzt und eine Redundanzumschaltung ist nicht möglich. |
Redu.Access.Port | uint | Port der für die Kommunikation mit dem redundanten Agent verwendet werden soll. Der Defaultport von SNMP ist 161. |
Redu.Access.ReadCommunity | string | Der SNMP-ReadCommunity-String des redundanten Agents. |
Redu.Access.WriteCommunity | string | Der SNMP-WriteCommunity-String des redundanten Agents. |
Redu.Status.ConnState | bool |
Zeigt den Verbindungsstatus des redundanten Agents. Beim Start des Managers wird dieses Datenpunktelement auf FALSE gesetzt. Erst nach der ersten erfolgreich empfangenen Nachricht wird der Status auf TRUE gesetzt Anmerkung: Wird agentAliveTimeout auf 0 gesetzt, wird dieses Element auf FALSE gesetzt
bis das redundante Target eine Nachricht erhält (nach
Redundanzumschaltung).
|
Redu.Status.Timeout | bool |
Wird gesetzt wenn mit dem Agent während der mit agentConnectTimeout konfigurierten Zeitspanne keine Nachrichten ausgetauscht wurden. Wird keine IP-Adresse definiert oder wurde die Adresse gelöscht (Leerstring), so wird dieses Element unabhängig vom aktuellen Status auf FALSE gesetzt und eine Redundanzumschaltung ist nicht möglich. |
Datenpunkttyp _SNMPLiveAgent
Datenpunkt | Beschreibung |
---|---|
_SNMPLiveAgent | Hier stehen die WinCC OA DP-Elemente, die man über SNMP abfragen kann. |
Elemente vom _SNMPLiveAgent
Element | Typ | Beschreibung |
---|---|---|
Command | string | Dieses Element kann über SNMP gesetzt werden. Wenn das MIB-Objekt 1.3.6.1.4.1.13828.2.1.12 mit einem Text beschrieben wird, so wird dieser Text auf dem DPE angezeigt. Ein CTRL-Skript kann sich also auf dieses DPE verbinden und wird aktiviert, wenn sich der Wert ändert. |
Response | string | Dieses Element wird auf das MIB-Objekt 1.3.6.1.4.1.13828.2.1.13 abgebildet und ist dafür gedacht, dass das oben erwähnte Ctrl-Script ein Ergebnis anzeigen kann, das über SNMP zugängig ist. |
SpecificTrap | string | Wenn auf dieses Element ein Wert geschrieben wird, so wird er als UserTrap vom Live Agent über den PmonProxyAgent an alle dort konfigurierten TrapTargets verschickt. Dies passiert nur, wenn im ConfigFile die UserTraps aktiviert sind. |
DPTableElements | dyn_string | Hier stehen die DPElemente, die man über SNMP abfragen kann mit ihrem zugehörigen Index. |
Datenpunkttyp _SNMPV3Entity
_SNMPAgent
existieren. Ist
dies nicht der Fall, so muss der Config-Eintrag [snmpdrv] agentDPTemplate geändert
werden.Element | Typ | Beschreibung |
---|---|---|
Command | uint |
Über dieses Element können Kommandos an den Treiber-Layer geschickt werden. Dieses Element dient zu Testzwecken.
|
Access.IPAddress | string | Die IP-Adresse der Entity, z.B. 192.168.1.13, oder ein Rechnername, z.B. eiwrk068. Wenn keine IP-Adresse eingetragen wird bzw. diese wieder gelöscht wird (Leerstring), wird die Entity automatisch deaktiviert und der interne DPE Status.Timeout auf FALSE gesetzt, unabhängig in welchem Status sich dieser vorher befand. |
Access.Port | uint | Die Portnummer, unter der der Agent angesprochen werden soll. Das Standard-Port von SNMP liegt auf 161. Es kann aber hier auch jedes andere Port angegeben werden. |
Access.Timeout | uint | Das Timeout in 1/100s, bis ein SNMP Telegramm beantwortet werden muss. Der Defaultwert ist 1s, was bei längeren Strecken oder langsameren Netzen/Agents evt. erhöht werden muss. Gültige Werte sind 1s - 10s. |
Access.Retries | uint | Wiederholungen, bevor ein SNMP Protokoll Fehler ausgegeben wird. Im Falle eines Timeouts (s.o.) wird das Telegramm wiederholt. Der Standardwert ist 1, maximal 10 Wiederholungen sind parametrierbar. |
Access.SecurityName | string | Der SecurityName bezeichnet den User/das Programm, das Zugriff auf Daten fordert. |
Access.SecurityLevel | uint |
Das SecurityLevel beschreibt, welche Sicherungsmaßnahmen beim Datenaustausch zu ergreifen sind.
Defaultwert ist (1). |
Access.ContextName | string |
Der anzusprechende Kontextname auf dem Zielrechner. Der Context beinhaltet bestimmte MIB-Objekte. Pro Agent kann nur ein Contextname angegeben werden. Sollen auf einem Agent mehrere Context-Bereiche abgefragt werden, so müssen mehrere Datenpunkte angelegt werden. |
Access.ContextEngineID | string | Die EngineID des Zielrechners. Ist diese nicht angegeben, wird sie im Zuge der Datenabfrage bestimmt. |
Access.AuthProtocol | uint |
Für die Authentifizierung der SNMP User stehen zwei Protokolle zur Verfügung.
Defaultwert ist (1). |
Access.AuthPasswd | string | Das Passwort, das für die Authentifizierung zu verwenden ist. |
Access.PrivProtocol (unsigned) | uint |
Die verschickten Daten können zur Erhöhung der Sicherheit auch verschlüsselt werden. Für diese Verschlüsselung muss ein Protokoll ausgewählt werden.
Default ist (1). |
Access.PrivPasswd | string | Das Passwort, das für die Verschlüsselung zu verwenden ist. |
Access.Flags | bit32 |
Mit diesem Element können zusätzliche Einstellung durch Setzen (=1) des entsprechenden Bit Wertes vorgenommen werden.
Wichtig: Eine Redundanzumschaltung ist nur
möglich wenn ein gültiges Target (.Redu.Access) konfiguriert ist.
|
Status.ErrorOID | dyn_string | Wenn ein Protokollfehler auftritt, so wird an diesem Datenpunkt die entsprechende OID angezeigt. Da hier ein DynText vorliegt, werden immer alle aktuellen nicht verfügbaren OIDs angezeigt. Weiters werden auch die entsprechenden Invalid-Bits bei den WinCC OA Elementen gesetzt. Wenn ein SNMPv3 USM-Fehler auftritt, wird er ebenso auf dieses DPE geschrieben. |
Status.QueueLength | uint | Hier wird die aktuelle Länge der Request Queue des Agents angezeigt. Dieser Wert wird nur dann aktualisiert, wenn auch ein Protokollfehler aufgetreten ist. Er soll zu Diagnosezwecken ausgegeben werden und ist für den laufenden Betrieb unerheblich. |
Status.Timeout | bool | Dieses Bit wird gesetzt, wenn eine gewisse Zeit lang kein Telegramm mit dem Agent ausgetauscht worden ist (die Zeit wird über den Config-Eintrag agentConnectTimeout parametriert). Wenn am DPE Access.IPAddress keine IP-Adresse (Leerstring) eingetragen wurde bzw. wieder gelöscht wird, wird dieses Bit auf FALSE gesetzt, unabhängig von dessen vorherigen Status. |
Status.ActiveConn | int |
Zeigt das aktive Target an, mit dem der Treiber gerade kommuniziert.
|
Notify.ID | uint |
Letzte Nummer der OID (Object identifier = Objektbezeichner). Diese Nummer wird zu den OID-Notifikation, die im WinCC OA MIB definiert ist, hinzugefügt. Wenn dieser DPE modifiziert wird, wird ein SNMPv3-Trap vom SNMP-Manager an die entsprechende SNMP V3-Entity gesendet. Mit -dbg 26 bekommen Sie Debugausgaben, wenn ein Trap verschickt wurde. |
Notify.Text | string | Hier geben Sie den Trap-Text ein. Wenn das Element einen Text enthält, wird der Text beim Ändern von Notify.Id gesendet. |
Browse.Start | string |
Definiert die Start-OID für die Abfrage aller Daten des Agents. Diese werden dann auf das DPE Browse.Result geschrieben. Wenn dieses DPE leer gelassen wird, wird die Abfrage mit der Start-OID "1.3.6.1" gestartet. Es ist auch möglich, per dpSet auf dieses Datenpunktelement mehrere Browsing-Requests anzustoßen. Die Requests kommen der Reihe nach in eine Abarbeitungsliste und werden anschließend in der selben Reihenfolge abgearbeitet. Grundsätzlich gibt es kein Limit für Browsing-Requests. Ein Browsing-Request wird jedoch verworfen, wenn sich bereits ein identischer Request in der Abarbeitungsliste befindet. Jeder Browsing-Request wird durch den String identifiziert (siehe DPE "Browse.RequestId"), der auf dieses Datenpunktelement geschrieben wurde. Folgende Requests sind unterschiedlich und würden somit zur Liste hinzugefügt:
|
Browse.Result | dyn_string |
In diesem DPE wird das Ergebnis der Abfrage, welche mittels Browse.Start gestartet wurde, ausgegeben. Während des Browsens steht in diesem DPE "1 - started browsing". Nachdem das Browsen erfolgreich durchgeführt wurde, enthält das Ergebnis die Daten des Agents. Ein Datensatz setzt sich immer aus 3 Zeilen zusammen:
Beispiel mit zwei Datensätzen:
Mögliche Werte für den Datentyp:
Enthält das Ergebnis keine durch 3 teilbare Anzahl an Einträgen, so handelt es sich um eine Statusmeldung. In diesem Fall steht in der ersten Zeile ein Statuscode: 1 - Abfrage gestartet -1 - Fehler Fehlercode und Beschreibung sind in der zweiten Zeile enthalten. Zum Beispiel: -1 -5#SNMP++: SNMP request timed out |
Browse.RequestId | string | Request-ID zur Identifikation von Browsing-Requests und dessen Ergebnissen. Die ID wird gemeinsam mit dem Ergebnis der Abfrage gesetzt und entspricht immer dem String der zum Starten der Abfrage auf das Browse.Start-Datenpunktelement geschrieben wurde. |
Redu.Access.IPAdress | string | IP-Adresse (oder Computername) des redundanten Agents. Wird keine IP-Adresse gesetzt oder die Adresse gelöscht (Leerstring), wird die Entity automatisch deaktiviert, das interne Datenpunktelement Status.Timeout wird unabhängig vom aktuellen Status auf FALSE gesetzt und eine Redundanzumschaltung ist nicht möglich. |
Redu.Access.Port | uint | Port der für die Kommunikation mit dem redundanten Agent verwendet werden soll. Der Defaultport von SNMP ist 161. |
Redu.Access.SecurityName | string | Der SecurityName bezeichnet den User/das Programm, das Zugriff auf Daten fordert. |
Redu.Access.SecurityLevel | uint |
Definiert die Sicherheitsmaßnahmen beim Datenaustausch:
Defaultwert ist (1). |
Redu.Access.ContextName | string | ContextName des redundanten Agents |
Redu.Access.ContextEngineID | string | ContextEngineID des redundanten Agents |
Redu.Access.AuthProtocol | uint |
Für die Authentifizierung der SNMP User stehen zwei Protokolle zur Verfügung.
Defaultwert ist (1). |
Redu.Access.AuthPassword | string | Das Passwort, das für die Authentifizierung zu verwenden ist. |
Redu.Access.PrivProtocol | uint |
Die verschickten Daten können zur Erhöhung der Sicherheit auch verschlüsselt werden. Für diese Verschlüsselung muss ein Protokoll ausgewählt werden.
Default ist (1). |
Redu.Access.PrivPasswd | string | Das Passwort, das für die Verschlüsselung zu verwenden ist. |
Redu.Status.ConnState | bool |
Zeigt den Verbindungsstatus des redundanten Agents. Beim Start des Managers wird dieses Datenpunktelement auf FALSE gesetzt. Erst nach der ersten erfolgreich empfangenen Nachricht wird der Status auf TRUE gesetzt Anmerkung: Wird agentAliveTimeout auf 0 gesetzt, wird dieses Element auf FALSE gesetzt
bis das redundante Target eine Nachricht erhält (nach
Redundanzumschaltung).
|
Redu.Status.Timeout | bool |
Wird gesetzt wenn mit dem Agent während der mit agentConnectTimeout konfigurierten Zeitspanne keine Nachrichten ausgetauscht wurden. Wird keine IP-Adresse definiert oder wurde die Adresse gelöscht (Leerstring), so wird dieses Element unabhängig vom aktuellen Status auf FALSE gesetzt und eine Redundanzumschaltung ist nicht möglich. |