TIA Projektname/Stand auf HMI anzeigen

Sickone4

Well-known member
Beiträge
68
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo,

ich wurde vom Kunden gebeten die Version meines Projektes, also den Speicherstand auf dem Panel anzuzeigen.
Mir ist nicht bekannt, wie und ob das geht. Ich habe mal in Option+ geschaut aber auch nichts gefunden.

Hat jemand eine "einfache" Lösung, wie man das auslesen/anzeigen kann?

Eine Möglichkeit via E/A Feld und händisch einen String eintragen finde ich nicht gut, da hier oft eine Aktualisierung nach dem speichern vergessen wird.

MfG
Sven
 

ChristophD

Well-known member
Beiträge
5.536
Punkte Reaktionen
1.385
würde nen DB "Projekt-Informationen" anlegen dort die gewünschten Daten eintragen und per HMI auslesen.
Die Daten müssen natürlich jeweils bei projektänderung manuell im DB aktualisiert werden.
 

SPS-Andy

Active member
Beiträge
40
Punkte Reaktionen
8
Hallo,

es gibt de Befehl "GetChecksum" damit kann man die Prüfsumme aus der CPU lesen.
Dann ein kleinen Baustein der die Aktuelle Prüfsumme mit der letzten Vergleicht. Im falle von 1 hoch zählen.
Somit muss nicht manuell bearbeitet werden (wird sonnst eh vergessen)
 

SPS-Andy

Active member
Beiträge
40
Punkte Reaktionen
8
Zuviel Werbung?
->Hier kostenlos registrieren
So könnte das aussehen, Die version wird dann als Real angegeben mit 1.01 beim nächsten übertragen dann 1.02 usw.

Code:
REGION Checksumme auslesen
    #GetChecksum_Instance(Scope := 1,
                          Range := 0,
                          Subrange := 0,
                          Checksum := #"Checksum akt.");
    
END_REGION


REGION Version hochzählen;
    
    IF #"Checksum akt." <> #"Checksum speicher 1" THEN
        #SW_V := #SW_V + 1;
        #"Checksum speicher 1" := #"Checksum akt.";
    END_IF;
    
    #"SW-Version" := (INT_TO_REAL(UINT_TO_INT(#SW_V))) / 100;
    
END_REGION
 

JesperMP

Well-known member
Beiträge
7.347
Punkte Reaktionen
1.529
es gibt de Befehl "GetChecksum" damit kann man die Prüfsumme aus der CPU lesen.
Dann ein kleinen Baustein der die Aktuelle Prüfsumme mit der letzten Vergleicht. Im falle von 1 hoch zählen.
Somit muss nicht manuell bearbeitet werden (wird sonnst eh vergessen)
Nicht schlecht.
Aber dann haben identische Maschinen unterschiedliche Versionsnummern.
Ich suche auch wie man automatisch ein Versionsstand von das TIA Programm in die CPU hinterlegen kann.
Dasselbe mit die HMI.
Ich möchte dass man auf ein Bild auf die HMI die Versionsstände visuell checken kann. Was ist die aktuelle Version, und sind PLC und HMI Programme synkronisiert ?
 

SPS-Andy

Active member
Beiträge
40
Punkte Reaktionen
8
Nicht schlecht.
Aber dann haben identische Maschinen unterschiedliche Versionsnummern.
Ich suche auch wie man automatisch ein Versionsstand von das TIA Programm in die CPU hinterlegen kann.
Dasselbe mit die HMI.
Ich möchte dass man auf ein Bild auf die HMI die Versionsstände visuell checken kann. Was ist die aktuelle Version, und sind PLC und HMI Programme synkronisiert ?
Bin nicht 100% sicher aber bei gleicher Software sollte auch die Checksum gleich sein. Bedeutet, wenn man die Checksum anzeigt, kann man bei mehreren baugleichen Anlagen vergleichen, ob die Software gleich ist. (ähnlich wie bei safety Programmen.)
 

JesperMP

Well-known member
Beiträge
7.347
Punkte Reaktionen
1.529
Zuviel Werbung?
->Hier kostenlos registrieren
Also, man kann die Checksum im SPS Programm auslesen, gibt es auch ein Systemfunktion für dasselbe in die WinCC HMI ?
Dass wäre dann eine Möglichkeit.
Man konnte vielleicht sogar die Werte vergleichen und ein Warnung anzeigen wenn sie unterschieldich sind.
 

Maggi

Well-known member
Beiträge
77
Punkte Reaktionen
10
Zuviel Werbung?
->Hier kostenlos registrieren
So könnte das aussehen, Die version wird dann als Real angegeben mit 1.01 beim nächsten übertragen dann 1.02 usw.

Code:
REGION Checksumme auslesen
    #GetChecksum_Instance(Scope := 1,
                          Range := 0,
                          Subrange := 0,
                          Checksum := #"Checksum akt.");
 
END_REGION


REGION Version hochzählen;
 
    IF #"Checksum akt." <> #"Checksum speicher 1" THEN
        #SW_V := #SW_V + 1;
        #"Checksum speicher 1" := #"Checksum akt.";
    END_IF;
 
    #"SW-Version" := (INT_TO_REAL(UINT_TO_INT(#SW_V))) / 100;
 
END_REGION
Aber wie sieht es aus wenn man das HMI neu überträgt? Bzw. wie stelle ich sicher das #"Checksum speicher 1" nicht wieder zurückgesetzt wird?
 

ssyn

Well-known member
Beiträge
80
Punkte Reaktionen
4
Hmm, wenn man zufällig nach neue Version 2 wird wieder alte Version 1 hochladen?

Code:
IF #"Checksum akt." <> #"Checksum speicher 1"

Und da kommt in HMI "neue" Version 3.
 

JesperMP

Well-known member
Beiträge
7.347
Punkte Reaktionen
1.529
Ich wurde nicht ein Versionsnummer generieren lassen, sondern die Checksum anzeigen lassen.
Wenn man die Checksum von die HMI nicht auslesen kann, gibt es keinen Weg.
(also nicht die Checksum von die SPS auf die HMI anzeigen, sondern die Checksum von die HMI auf die HMI anzeigen).

Für die HMI wird nur versucht etwas mit die Datum zu basteln. Das führt mMn. zu nichts.
 

Heinileini

Well-known member
Beiträge
5.445
Punkte Reaktionen
1.195

PN/DP

User des Jahres 2011-2013; 2015-2017; 2020-2021
Beiträge
19.049
Punkte Reaktionen
5.705
Egal wie vermeintlich clever man sich anstellt, es gibt nichts was automatisch wirklich funktioniert. Die Versionsnummer/Buildnummer des HMI-Projektes muß händisch vom HMI-Programmierer angepasst werden.
Es gibt zwar in den Eigenschaften des HMI-Projektes eine Versionsnummer/Buildnummer, an die kommt man aber in der Runtime nicht ran.

Harald
 

MichaelScz

Member
Beiträge
5
Punkte Reaktionen
0
Ich habe so etwas auch schon leider vergeblich gesucht. Eine Alternative wäre es eine remanente Datumsvariable anzulegen und dann im HMI eine Seite anlegen auf der man per Button-Click (mit Benutzerrechten) das aktuelle Datum und Uhrzeit in die Variable schreibt. Tut mir Leid keine einfachere Lösung anbieten zu können. 😕
 

Heinileini

Well-known member
Beiträge
5.445
Punkte Reaktionen
1.195
Zuviel Werbung?
->Hier kostenlos registrieren
Was wäre der Sinn einer solchen Checksum- bzw. LetzteÄnderungsZeitpunkts-Eingabe/-Anzeige?
Doch eigentlich nur den generellen (= nicht näher spezifizierten) Hinweis bilden zu können:
"Achtung! Hier ist nicht (mehr) das drin, was (eigentlich gar nicht) draufsteht."
Den Zeitpunkt der letzten Änderung könnte man mit ZugriffsMöglichkeit auf die Checksum natürlich automatisch generieren nach der Methode "die Checksum hat sich zuletzt geändert am ... um ... Uhr".
 
Zuletzt bearbeitet:

PN/DP

User des Jahres 2011-2013; 2015-2017; 2020-2021
Beiträge
19.049
Punkte Reaktionen
5.705
Der Sinn der Anzeige einer Versionsnummer auf dem HMI ist, daß man "optisch" vergleichen kann, ob man (wahrscheinlich) das richtige HMI-Projekt hat zu der Version, die auf dem Panel geladen ist.
Weil ein Detailvergleich oder genereller Vergleich offline vs. online für die HMI nicht möglich ist, und bekanntermaßen fast alle HMI-Programmierer schlampig mit den Projektversionen umgehen und auch fast alle "vergessen", die HMI-Version händisch einzutragen. ;)

Harald
 

JesperMP

Well-known member
Beiträge
7.347
Punkte Reaktionen
1.529
Gründe für die Versionsnummer bzw. die Checksum(me):
1. checken ob SPS und HMI Versionsstände synkron sind.
2. checken on SPS/HMI mit die Version arbeitet die man erwartet.
3. checken ob eine unautorisierte Programmänderung geladen wurde.
 
Oben