WinCCflexible MP370 15" Devicename auslesen

PN/DP

User des Jahres 2011-2013; 2015-2017; 2020-2022
Beiträge
21.965
Reaktionspunkte
6.836
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

weiß jemand, wie man in der WinCCflexible-Runtime auf einem MP370 15" den Devicename auslesen kann?

Der Devicename wird in "Control Panel - Communication Properties" eingegeben und steht in der WinCE 3.0 Registry unter
[HKEY_LOCAL_MACHINE\Ident]
"Desc"="MP370 Device"
"Name"="MP370_1" <--- das ist der Devicename

Dieser Devicename entspricht auf Windows-PC dem Hostname (Computername).

Scheinbar gibt es in WinCCflexible 2007 keine Systemfunktion dafür. (in 2 Wochen habe ich WCF2008 )
Gibt es vielleicht so eine Art Systemvariablen wie in anderen Visualisierungen?
Oder gibt es eine Möglichkeit die Registry zu lesen?

Ich habe zwar durch langes probieren eine Lösung gefunden, doch das muß doch noch einfacher gehen.

Meine bisherige Lösung kurzgefasst:
in einem Script "CMD.EXE" aufrufen, "ipconfig /all" ausführen lassen, dessen Ausgabe in eine Datei
umlenken, die Datei einlesen und nach der Zeile mit "Host name" suchen, nach dem Doppelpunkt steht
dann der gesuchte Hostname (=Devicename)

An meiner Lösung gefällt mir nicht, daß sehr kurz sichtbar ein Fenster aufpopt (der CMD) und daß
ich in meinem Script eine Warteschleife einfügen mußte (auf die Ausgabedatei warten).

Also, kennt jemand eine elegantere Lösung?

Gruß
PN/DP
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OP unterscheiden bei identischer Projektierung

Hi,
Hintergrund meiner Frage:

Ich habe öfters entlang einer Produktionsstraße mehrere Operatorpanels, alle
enthalten die gleichen Bilder und bieten die gleichen Bedienmöglichkeiten.
Oder ein Bedienstand hat mehrere OP, um gleichzeitig mehrere Bilder beobachten
zu können. Ich erstelle für alle OP nur eine einzige WCF-Projektierung und
transferiere diese ohne Änderungen auf jedes Operatorpanel.
Die OP sind per Ethernet an die SPS gekoppelt.
Die Operatorpanels sind alle identisch, bis auf die IP-Adresse und den Devicename.

Manchmal soll aber nur das erste oder letzte OP zusätzliche Bilder anzeigen.
Oder es können Rezepte oder Schichtprotokolle bearbeitet werden. Dann müssen
die OP so veriegelt werden, daß deren Bearbeitung nicht gleichzeitig auf mehreren
OP möglich ist. Dann wird in etwa angezeigt: "Funktion gesperrt, das Rezept wird
gerade am OPxxx bearbeitet".

Für die besondere Freigabe von Bildern muß das OP also seine eigene Identität
kennen, abhängig davon werden Bildaufruf-Buttons sichtbar oder nicht.

Dafür benötige ich irgendein uniques Merkmal, was durch Runtime-Restart oder Transfer
der Projektierung nicht verlorengeht. Der Devicename, der bei jedem OP einmal bei der
Erstinbetriebnahme eingegeben wird, ist ein geeignetes Merkmal.
Allerdings komme ich da nur so umständlich ran, um es auszulesen.

Denkbar wäre es auch, im FLASH der OP eine Art INI-Datei anzulegen, die beim
Runtime-Start ausgelesen wird. Das Anlegen der Datei ist aber für den Erst-Inbetriebnehmer
ziemlich umständlich, und spätestens bei einem Firmware-Update wäre die Datei weg.

Gruß
PN/DP
 
Morgen PN/DP
Wie ist es denn wenn du die Datei auf einer Speicherkarte
auslagerst, die werden beim Firmware-Update nicht Plattgemacht.
Ich lege auch Paramter-Datein und Rezepte auf diese Karte.

gruß helmut
 
perfekte Lösung gesucht

Guten Morgen Helmut,

ja, die Idee mit der Speicherkarte im OP hatte ich auch schon.
Dann müßte ich eben in jedes OP eine Speicherkarte stecken.
Und auf jede Karte müßte eine andere INI-Datei.

Ich möchte es aber den Mechantronikern der Anlage möglichst einfach
machen, ein neues oder ausgetauschtes OP in Betrieb zu nehmen. :cool:

Ich habe schon viele Möglichkeiten in Betracht gezogen und ausprobiert
und bin zu dem Schluß gekommen, daß das Auslesen des Devicename die
idealste Möglichkeit ist. Der muß bei der Erstinbetriebnahme einmal
eingegeben werden, alle weiteren Anpassungen macht die Runtime dann
automatisch ohne Zutun der Inbetriebnehmer bei Fehlerrisiko fast Null.

Leider läßt sich der Devicename nur ganz umständlich auslesen.
Wie im EP geschildert habe ich dafür eine Lösung, als Perfektionist
hätte ich aber gerne eine bessere Lösung ohne die beschriebenen
Nebenwirkungen (kurzes Bildflackern, Warteschleife).

Falls es wirklich keine bessere Lösung gibt, kann ich die Funktion
GetHostname() ja mal auf die WinCCflexible-Wunschliste setzen.
GetHostname() gibt es in jedem Windows, auch WinCE. Es sei denn,
Siemens hat da seine Finger mit drin. Die haben das arme WinCE ja
dermaßen verstümmelt! :-(

Das vorhandensein/nichtvorhandensein einer Speicherkarte nutze ich
außerdem schon für einen anderen Zweck: Variablenarchive/Trendkurven
Das Auslagern der Archive zu einem PC zur Langzeitarchivierung
soll nur 1 OP machen.
Trotzdem können alle OP Trendkurven anzeigen,
keine Karte da: Anzeige Echtzeit-Kurven (1 Stunde)
Karte gesteckt: Anzeige Archiv-Kurven (so groß das Archiv definiert ist)

Gruß PN/DP
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aber gerade das Vorhandensein einer Speicherkarte macht das
auswecheseln eines Panels sehr Konfortabel.
Ich setze oft MP mit Soft-SPS ein. Bei auslieferung mache ich
ein Backup auf die Speicherkarte. So ist mir möglich das der Kunde
selbständig das Panel bei einen Defekt austauschen kann.
Ein fall war das ein Stapeler ins Panel gefahren ist.
Diese Backup und Restore sachen beherschen heute schon sehr
viel Leute.
 
Hoch lebe die Speicherkarte

Helmut,

OK, da hast Du allerdings recht, das Argument mit der Speicherkarte
für ein ständig verfügbares Panel-Backup ist unschlagbar.
Gerade, wo heute auf fast jedem von Siemens neu gelieferten Panel
eine neuere Firmware drauf ist als man braucht. Durch das zurückspielen
des Voll-Backups spart man sich dann gleich das Firmware-Downgrade.

Nagut, die OP-spezifische Datei muß ja nur einmal erstellt werden.
Kann man ja eine extra Konfigurationsseite in WCCflexible einbauen.

Jetzt muß nur noch einer dafür sorgen, daß nach einer Änderung per
Fernwartung ein neues Vollbackup gemacht wird.

Das stell' ich mir aber gut vor: ich brauche die neue Projektversion nur
noch auf 1 OP von Ferne aufspielen. Wenn das getestet ist, können
die Anlagen-Mechatroniker das Update selbständig auf die anderen OP
verteilen. (Backup vom geänderten Panel erstellen und in die anderen OP
1:1 einspielen, dann noch IP-Adresse und Devicename wieder richtig
eingeben, ferdisch!)

Ab sofort erhält jedes OP eine Speicherkarte!
Kostet ja fast nix (weil es ja keine Siemens-Karte sein muß ;) ).

Gruß PN/DP

PS: Ich finde es trotzdem ärgerlich, daß es eine einfache GetHostname()-
Funktion in WinCCflexible nicht gibt!!! :evil: :sc7:
 
Zurück
Oben