Details zum Pmon

Dieses Kapitel ist für fortgeschrittene WinCC OA Anwender, die weitere Details über Debugmöglichkeiten und wichtige Informationen zum Pmon erfahren möchten.

Debug-Levels

Um mögliche Fehlerquellen während der Aktionen aufzuspüren, gibt es auch für den Pmon die Möglichkeit Kommandozeilenoptionen zum Debuggen zu verwenden. Informationen über alle weiteren Optionen können mit -helpdbg abgefragt werden (siehe auch Manageroptionen).

Debug-Level Beschreibung
-dbg 2 Diese Option gibt detaillierte Informationen beim Pmon aus.
-SNMP Show SNMP debug info.
-report all Zeigt den aktuellen Status aller Manager, den aktuellen Pmon Modus sowie die zur Zeit aufgebauten TCP-Verbindungen.

Kommandozeilenoptionen beim Pmon

Neben den standardmäßigen Kommandozeilenoptionen (z.B. -report, -help, ...), gibt es für den Pmon weitere spezielle Optionen für die Verwaltung eines WinCC OA Projektes.

Option Beschreibung
-auth <olduser> <oldpassword> <user> <password> Setzt in die progs-Datei einen User und das dazugehörige verschlüsselte Passwort, welches nötig ist, um per HTTP verändernd auf den Pmon zugreifen zu können. Zum Löschen von User/Passwort muss ein "" als neuer Wert angegeben werden. Der angegebene User muss immer übereinstimmen, wenn das definierte Passwort in der progs-Datei leer ist, benötigt man kein Passwort. Zum Ändern vom Passwort müssen der Benutzer und das alte Passwort eingegeben werden.
-command

Erlaubt es, Pmon Kommandos mit Hilfe der Kommandozeile aufzurufen. Syntax und verfügbare Kommandos finden sich unter Kommandos beim speziellen Pmon Protokoll.

Hinweis

Wenn User und Passwort nicht erforderlich sind für den Aufruf, muss das Element "##" nicht im Aufruf enthalten sein. z.B "-command START_ALL" anstatt "-command ##START_ALL". Ebenfalls muss das Trennzeichen ":" nur verwendet werden, wenn das Kommando ein entsprechendes Subkommando benötigt, z.B. "-command SINGLE_MGR:START 1"

-helpcommand Liefert eine Liste der verfügbaren Kommandos. Siehe auch Kommandos
-n, -noAutostart Verhindert den automatischen Hochlauf des WinCC OA Projektes und startet den Pmon im WAIT_MODE.
-port <portNum> Definiert den Server-Port für die TCP-Kommandos.
-status

Gibt im Rückgabewert an, ob ein Pmon für dieses Projekt schon läuft: 0=Pmon läuft, 3=Pmon gestoppt, 4 = unbekannt.

Nicht verfügbar wenn der Pmon als Service gestartet wird.

-stop

Wenn ein Pmon für dieses Projekt schon läuft, wird er (und damit das gesamte Projekt) niedergefahren und gestoppt.

Nicht verfügbar wenn der Pmon als Service gestartet wird.

-stopWait

Wie -stop, nur wird solange gewartet, bis das Projekt komplett gestoppt wurde und sich der Pmon beendet hat.

Nicht verfügbar wenn der Pmon als Service gestartet wird.

Kommandos beim speziellen Pmon Protokoll (pmon_query())

Mit diesen Kommandos kann die komplette PmonTable über das spezielle Pmon Protokoll am TCP-Server Port abgefragt aber auch verändert werden. Der Aufbau eines Kommandos sieht folgendermaßen aus:

user#cleartextPassword#<command>:[<subcommand>[<arguments>]]

"Subcommand" und "Arguments" sind optional. Die eckigen Klammern sind nicht Teil der Message. Beispiel für ein Kommando:

SINGLE_MGR:START 3

Die weiteren Kommandos entnehmen Sie nachfolgend angeführter Tabelle.

Kommando Subkommando Beschreibung
START_ALL Startet das Projekt (nur im Modus WAIT_MODE erlaubt).
STOP_ALL Stoppt das Projekt (vom letzten zum ersten Manager).
RESTART_ALL Stoppt das Projekt und startet es dann neu (nur im Modus WAIT_MODE erlaubt).
SINGLE_MGR Kommandos für einzelne Manager mit folgenden <subcommands>:
START <idx> Startet den Manager mit dem Index <idx> (beginnend mit 1, Index 0 ist Pmon selbst).
STOP <idx> Stoppt den Manager mit dem Index <idx>. Es wird ein kill -15 versucht.
KILL <idx> Stoppt den Manager mit dem Index <idx>. Es wird ein kill -9 versucht.
DEL <idx> Löscht den Manager mit dem Index <idx> aus der Pmon-Tabelle und damit auch aus der progs-Datei. Das ist nur dann erlaubt, wenn dieser und alle folgenden Manager gestoppt sind.
INS <idx> <manager> <startMode> <secKill> <restartCount> <resetMin> <commandlineOptions> Fügt einen neuen Manager an der gewünschten Position ein. Das ist nur dann erlaubt, wenn dieser und alle folgenden Manager gestoppt sind.

PROP_PUT <idx> <startMode> <secKill> <restartCount> <resetMin>

<commandlineOptions>

Ändert die Überwachungsparameter für den Manager mit Index <idx>.

Der startMode muss als Wort (once, manual, always) angegeben werden.

PROP_GET <idx>

Erfragt die aktuellen Einstellungen. Die Antwort auf dieses Kommando ist wie folgt aufgebaut:

<startMode> <secKill> <restartCount> <resetMin> <commandlineOptions>

DEBUG <idx> <arguments> Schickt die <arguments> wie ein killdbg an den angegebenen Manager.
MGRLIST Kommandos zum Auflisten der Manager mit folgenden <subcommands>:
LIST

Liefert die definierten Manager in folgendem Format:

LIST:<count>

<manager>;<startMode>;<secKill>;<restartCount>;<resetMin>;<CommandlineOptions>

....

;

STATI

Liefert den Status aller definierten Manager im folgenden Format:

<state> ... 0 (gestoppt), 1 (init) oder 2 (running), 3 (blocked)

<PID> ... Process ID numerisch

<startMode> ... 0 (manual), 1 (once), 2 (always)

<startTime> ... z.B. 2003.03.25 17:06:07.123

<manNum> ... Manager Nummer (wird teilweise vom Data-Manager vergeben)

Der Status "blocked" wird nur im Überwachungsmodus vom pmon erkannt.

LIST:<count>

<state>;<PID>;<startMode>;<startTime>;<manNum>

<state>;<PID>;<startMode>;<startTime>;<manNum>

...

<mode_numeric> <mode_string> <emergency_active_numeric><demoMode_active_numeric>

;

Die Zeile <mode_numeric> <mode_string> <emergency_active_numeric> <demoMode_active_numeric>

zeigt den aktuellen Pmon Modus selbst (numerisch und als Text), und den

Emergency Modus mit 0 (nicht aktiv) oder 1 (aktiv) und den

Demo-Lizenz Modus mit 0 (nicht aktiv) oder 1 (aktiv)..

z.B. "0 START_MODE 0 1"

Die letzte Zeile die nur aus ";" besteht markiert das Ende der Liste.

PROJECT

Liefert den Namen des Projektes, das der Pmon bedient.

Kommandos, welche die progs-Datei beeinflussen, erzeugen automatisch eine neue progs-Datei, sodass diese Änderungen im shared-memory und in der progs-Datei synchron gehalten werden.

Anmerkung: Wie Sie mit diesen spezifischen Kommandos beim Pmon Protokoll in CTRL-Skripts arbeiten, entnehmen Sie der Library < wincc_oa_path >/scripts/libs/pmon.ctl, in der die Funktionen verwendet werden (z.B. Manager in die Console einfügen/löschen/bearbeiten).
Anmerkung: Einige Funktionen benötigen die Angabe vom Index des Managers, welcher angesprochen werden soll. Der Index der Manager die der Pmon ansprechen kann, beginnt bei 1, da der Pmon selbst den Index 0 besitzt. In der letzten Spalte der Konsole (Spalte shmlr, siehe folgende Abbildung) wird für jeden Manager der Index angegeben, allerdings beginnt hier die Nummerierung beim Pmon mit 1. Für die Funktionen im pmon.ctl muss also "Index aus der Konsole -1" verwendet werden.

Deaktivierung des Aufschaltens von Windows Info-Dialogen, wenn ein WinCC OA Prozess gestoppt wird

Es kann vorkommen, dass Windows Info-Dialoge aufgeschalten werden, wenn ein WinCC OA Prozess (Manager) gestoppt wird. Der Prozess läuft dann so lange weiter, bist der Info-Dialog nicht bestätigt wird. Solche Info-Dialoge können z.B. sein:

  • Sende-Dialoge an Microsoft
  • Debugger-Dialoge, wenn ein Debugger installiert ist

  • Andere Info-Dialoge mit Informationen zum gestoppten Prozess

Das Aufschalten der Windows-Dialoge kann möglicherweise mit einer der beiden folgenden Windows Konfigurationsanpassungen deaktiviert werden.

  1. Änderung der Registry-Einstellung DontShowUI
    1. Öffnen Sie die Eingabeaufforderung (Win+R), geben Sie "regedit" ein und klicken Sie auf OK.
    2. Wechseln Sie ins Verzeichnis HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting\.
    3. Führen Sie einen Doppelklick auf den Schlüssel DontShowUI aus und setzen Sie den Wert auf 1.
    4. Wenn dieser Schlüssel dort nicht zu finden ist, ersuchen Sie diesen im Verzeichnis HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting\.
    5. Starten Sie den Rechner neu.
  2. Änderung der Registry-Einstellung ErrorMode
    1. Öffnen Sie die Eingabeaufforderung (Win+R), geben Sie "regedit" ein und klicken Sie auf OK.
    2. Wechseln Sie ins Verzeichnis HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows\.

    3. Führen Sie einen Doppelklick auf den Schlüssel ErrorMode aus und setzen Sie den Wert auf 2.

    4. Starten Sie den Rechner neu.