MIB

MIB

Wie bereits erwähnt, werden die über SNMP ausgetauschten Daten in so genannte MIBs (Management Information Base) gespeichert. MIB ist eine Datei, in der die Daten in einer Baumstruktur gespeichert werden. Die WinCC OA Daten und die Daten von Netzwerkgeräten werden also in einem MIB gespeichert.

Ein eigener Standard wird verwendet, um die MIB-Variablen (Variabeltypen usw.) zu definieren. Der Standard heißt SMI (Structure of Management Information). Die MIB-Beschreibungen definieren, wie die Elemente strukturiert sind. Der Objektbezeichner (Object identifiert= OID) identifiziert die MIB-Variablen. Die MIB OIDs werden von den Agentherstellern freigegeben oder werden im Internet veröffentlicht. Zusätzlich gibt es Standard-MIBs für die Verwaltung von Netzwerken. MIB-Definitionen können über Texteditor angesehen werden. Der Manager fordert die Daten über einen Befehl (get) an.

WinCC OA MIB

Die verfügbaren Daten können grob in zwei Kategorien unterteilt werden. Da gibt es zunächst jene Daten, welche bereits vor dem Start eines Projekts zur Verfügung (die Daten werden vom Pmon-Agent zur Verfügung gestellt) stehen. Es sind dies all jene Daten, die der PMON Dienst im Shared Memory ablegt.

Die zweite Kategorie sind dann Life-Daten, welche direkt über den WinCC OA Agent geliefert werden. Diese Daten stehen nur dann zur Verfügung, wenn ein entsprechender Agent läuft und Verbindung zum Eventmanager hat. Im nachfolgenden Diagramm werden alle Informationen, die vom Pmon und live Agent zur Verfügung gestellt werden, angezeigt. Die Daten, die vom Pmon Agent zur Verfügung gestellt werden in der Tabelle als blau angezeigt. Die Daten, die vom Live Agent zur Verfügung gestellt werden, werden als gelb angezeigt. Die Datenelemente pmonCommand(3) und ctrlScriptReq(12) können vom SNMP Manager aktiv beeinflusst werden. Jede Zeile dieser Tabelle entspricht einem Datenpunktelement. Der laufende Prozess kann keinesfalls über diese Elemente beeinflusst werden, d.h. alle Werte sind nur lesbar.

Abbildung 1. Struktur der ETM MIB

Um mit SMIv2 konform zu gehen, wurden alle Namen in Englisch gehalten und mit kleinen Anfangsbuchstaben versehen. Im MIB-Bezeichner dürfen des Weiteren kein Unterstriche "_" oder Bindestriche "-" vorkommen.

Die Elemente werden in der folgenden Tabelle besser beschrieben:

Name OID Agent Bedeutung
etmModules ...13828.1 Um die Erweiterbarkeit und Verwaltung gemäß SMIv2 zu gewährleisten, wurde als oberstes Element ein Knoten in die MIB eingebaut, wo sich alle Teilbäume der ETM-MIB anmelden können. Derzeit gibt es nur den PVSS2-Teilbaum und daher hier auch nur ein Unterelement.
etmAgentVersion ...13828.1.1.0 Gibt die Version des WinCC OA SNMP Agents als String an.
pvss2MIB ...13828.1.2 Dieser Eintrag enthält Informationen zur pvss2MIB, also zum entsprechenden Modul der ETM-MIB.
pvss2 ...13828.2 Dies ist das pvss2MIB-Modul. Da dieses Modul die Nummer 2 hat, wurde auch für den entsprechenden Eintrag im etmModules-Zweig die Nummer 2 vergeben.
project ...13828.2.1

Dies ist der oberste Knoten für ein WinCC OA Projekt. Seine Nummer ist standardmäßig 1. In der ersten Implementierungsphase wird nur ein Projekt unterstützt ( WinCC OA Environment Variable)

Bei einem Projektwechsel muss der Pmon Agent angehalten und neu gestartet werden, um die Änderungen mitzubekommen.

projName x.1.0 PMON, RO

Ein String, welcher den Namen des Projekts enthält. Dieser Name wird in Zusammenhang mit dem Pmon ermittelt und dient der eindeutigen Identifizierung des WinCC OA Projekts.

Der Projektname wird direkt aus dem Logfile gelesen.

pmonState x.2.0 PMON, RO

Ein Integer-Wert, der über den Zustand des Pmon Dienstes Auskunft gibt:

0 ... halted, 1 ... init, 2 ... running

pmonCommand x.3.0 PMON, RW Über diesen String kann dem Pmon Agent ein Kommando geschickt werden. Es ist die gleiche Syntax wie bei der direkten Kommunikation über TCP zu verwenden.
pvssAgentState x.4.0 PMON, RO

Dieses Element gibt Auskunft über den Zustand des SNMPAgent, des Kopplers zu den WinCC OA Live Daten. Dies ist eine Spiegelung aus der Manager-Tabelle nach x.N. Die Daten sind somit zwar redundant, können aber ohne weiteren Vergleich des Managernamens angesprochen werden.

0 ... halted, 1 ... init, 2 ... running

logDirSize x.5.0 PMON, RO Der SNMP Agent überwacht die Größe des Log-Verzeichnisses. Im Gegensatz zum Pmon, welcher nur das WinCC OA .log-File beobachtet, wird hier die Summe aller Log-Dateien abgebildet. Es können somit also auch alle anderen Files mitüberwacht werden. Größenangabe in KBytes.
nofManagers x.6.0 PMON, RO Der Pmon gibt hier an, wie viele Managereinträge derzeit existieren. Die entsprechenden Infos zu den einzelnen Managern findet man dann unter (x.10).
managerTable x.10

Der SNMP Agent dient zur Verwaltung des WinCC OA Systems. Neben der Steuerung des Projekts über den Pmon Dienst stellt die WinCC OA MIB die Zustände aller Manager im Projekt in dieser Tabelle dar.

Die aktive Beeinflussung des Projekts ist aus Konsistenzgründen nur über den Pmon Dienst möglich. Der einzige Weg, die Projekteinstellungen und den Managerstatus zu beeinflussen, ist somit das Element x.3. Alle Einträge dieser Tabelle sind ReadOnly.

manIndex Der Index des Managers.
manName x.10.1.2.idx PMON, RO Ein WinCC OA Manager, der im Projekt eingetragen ist. Der Name deutet auf das jeweilige EXE-File hin.
manType x.10.1.3.idx PMON, RO

Der Manager-Typ. Dieser Typ ist wichtig, um die Infos aus den Statistics-Datenpunkten richtig zuordnen zu können. Da der Typ derzeit in der PmonTable noch nicht drinnen ist, muss er zusätzlich dort implementiert werden. Andernfalls habe ich keine Zuordnung zu den Live-Daten.

0 .. unknown, 1 .. event, 2 .. driver, 3 .. data, 4 .. ui, 5 .. ctrl, 6 .. ascii, 7 .. api, 8 .. device, 9 .. redu,

10 .. report, 12 .. dist

manNum x.10.1.4.idx PMON, RO Die Manager-Nummer
manOptions x.10.1.5.idx PMON, RO Startoptionen des Managers
manState x.10.1.6.idx PMON, RO

Der aktuelle Zustand des Managers. Nur wenn dieses Element auf "running" steht, haben die nächsten beiden Elemente auch einen sinnvollen Wert.

0 ... halted, 1 ... init, 2 ... running

manStartTime x.10.1.7.idx PMON, RO Der Zeitpunkt des letzten Programmstarts
manPID x.10.1.8.idx PMON, RO Die PID des Prozesses
manStartMode x.10.1.9.idx PMON, RO

Die Starteinstellungen

0 .. manual, 1 .. once, 2 .. always

secKill x.10.1.10.idx PMON, RO Zeit bis zum Kill in Sekunden
restartCount x.10.1.11.idx PMON, RO Anzahl der Startwiederholungen, bevor abgebrochen wird
resetMin x.10.1.12.idx PMON, RO Zeit die ein Manager laufen muss, bevor der RestartCounter wieder auf 0 gesetzt wird.
ctrlScriptReq x.12.0 AGENT, RW Über dieses Element kann eine Funktion in einer speziellen Control-Bibliothek aufgerufen werden. Der Wert dieser MIB Variable wird auf das interne LiveAgent Datenpunktelement _x_SNMPLiveAgent.Command geschrieben. Über dieses Datenpunktelement kann dann ein CTRL-Skript ausgelöst werden. Das Ergebnis dieser Funktion kann im folgenden Element abgebildet werden. Da es sich um eine TextVar handelt, können auch Kommandos ähnlich wie im Pmon implementiert werden.
ctrlScriptRes x.13.0 AGENT, RO

Wird eine Funktion über x.12 aufgerufen, so kann hier das Ergebnis in Textform dargestellt werden.

Auf 1.3.6.1.4.1.13828.2.1.13.0 wird der Specific Trap abgebildet.

dpTable x.20

Diese Tabelle ist vorgesehen, um im Live Agent Datenpunkt definierte Datenpunktelemente nach außen zu publizieren. Die Tabelle besteht dabei aus fünf Spalten. Neben dem Namen des Datenpunktes werden auch der Onlinewert, Statusbits, die Online-Zeit und der User übertragen. Andere Werte sind im Moment nicht vorgesehen.

Weiters ist vom Konzept her zunächst nicht vorgesehen, dass über diese Tabelle Originalwerte gesetzt werden können. Jegliches Setzen von Werten bzw. Beeinflussen des Prozessabbildes erfolgt ausschließlich über die Control-Funktionen unter x.12. So kann das Setzen von Werten besser kontrolliert werden.

Die Tabelle wird vom WinCC OA Live Agent evaluiert und die Werte stehen daher nur über diesen Manager zur Verfügung.

dpElementIndex
dpElementName x.20.1.2.idx AGENT, RO Name des Datenpunkts (evt. inkl. Config.Detail.Attribut, gedacht für eine spätere Erweiterung).
dpElementValue x.20.1.3.idx AGENT, RO Onlinewert des oben bezeichneten Datenpunktelements. Der Wert wird als String übertragen.
dpElementTime x.20.1.4.idx AGENT, RO Onlinezeit, zu der der Wert gesetzt wurde
dpElementBits x.20.1.5.idx AGENT, RO Statusbits des oben bezeichneten DPElements
dpElementUser x.20.1.6.idx AGENT, RO Benutzer des oben bezeichneten DPElements