TIA Projektname/Stand auf HMI anzeigen

Die Vorschlag von SPS-Andy macht Sinn wenn genau kein stringente Kontrolle mit von wem oder wann Programmänderungen gemacht werden.
Anstatt eine (korrekte) Versionsnummer zu haben, dann kann man ein Zähler auf die HMI haben wo angezeigt wird wieviele Programmänderungen gemacht wurde (über die Checksum erkennt), und vielleicht auch ein Zeitstempel wann die letzte Änderung gemacht wurde, wenn die SPS-Uhr stimmt.
Man konnte ein Systemmeldung generieren so dass dies auch gelogt wird.
Und sogar ein email abschicken 'Programm von Machine XX wurde gerade geändert' so dass man gewarnt wird das jemand rumpokert in das Programm.
Das ist eine andere Welt als meiner.

- - -

Ich befürchte dass in die Zukunft bekommt jeden Programm und Maschine ein Zertifikat der separat hantiert werden muss.
Siemens hat schon damit angefangen mit die verschlüsselte Zugriff von die HMIs auf die SPSen.
Anstatt die Programmversion und Checksum in SPS und HMI ohne Aufwand erreichbar zu machen, fangen Siemens an mit dies.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich befürchte dass in die Zukunft bekommt jeden Programm und Maschine ein Zertifikat der separat hantiert werden muss.
Siemens hat schon damit angefangen mit die verschlüsselte Zugriff von die HMIs auf die SPSen.
Wir kommen auch regelmäßig zu Steuerungen, wo niemand mehr drankommt, weil irgendwas verschlüsselt, passwortgeschütz oder sonstwas ist...
Es braucht halt grundsätzlich jemanden, der sich (vollzeit) um solche Themen kümmert...
 
Wie ist das eigentlich mit ISO 9000? Arbeiten Betriebe/Programmierer heutzutage noch mit Qualitätsmanagement? Da bräuchte man doch theoretisch nur beschreiben, daß und wie die Programmierer die Versionsnummer zu händeln haben,
[..]
PS: darunter müsste dann auch das Projekt-Dateien-Management fallen.
Haben wir und machen wir. Alles (wichtiges) ist in SOPs (Standard Operating Procedures) beschrieben.
 
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.
Dieses Problem könnte man vermeiden indem man jeder Checksumme eine Versionsnummer zuweist. Und wenn es eine neue Checksumme gibt wird dieser eine Neue Version zugewiesen. Falls die Checksumme bereits bekannt ist wird die dazugehörige Versionsnummer verwendet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dieses Problem könnte man vermeiden indem man jeder Checksumme eine Versionsnummer zuweist. Und wenn es eine neue Checksumme gibt wird dieser eine Neue Version zugewiesen. Falls die Checksumme bereits bekannt ist wird die dazugehörige Versionsnummer verwendet.
Eine "neue" CheckSum in einer verhältnismässig aufwändig erfassten und gespeicherten CheckSumHistorie wiederzuerkennen, dürfte nicht das Problem sein. Aber wer sorgt dafür, dass jedesmal, wenn eine neue CheckSum erkannt wird, die dazu passende, "reale" VersionsNummer zugeordnet wird? Wer sorgt dafür, dass nicht ein und dieselbe VersionsNummer ganz unterschiedlichen Ständen zugeordnet sein kann?
Umsetzbar ist Deine Idee sicherlich, aber ich bezweifle, dass ...
- einerseits die manuellen Eingriffe dadurch erspart bleiben und
- andererseits der angestrebte Zweck überhaupt erfüllt wird.
 
Dieses Problem könnte man vermeiden indem man jeder Checksumme eine Versionsnummer zuweist. Und wenn es eine neue Checksumme gibt wird dieser eine Neue Version zugewiesen. Falls die Checksumme bereits bekannt ist wird die dazugehörige Versionsnummer verwendet.
Wie sollen einem fabrikneuen HMI-Panel alte Checksummen und Versionsnummern bekannt sein?

Ganz davon abgesehen, daß beim HMI eine "Checksumme" reine Theorie ist, weil es da keine Checksumme gibt, die die Runtime auslesen könnte. Der Code läuft eh' nur auf einer SPS-CPU ... und da müsste man dem SPS-Programm die alten Checksummen und zugehörigen Versionsnummern händisch beibringen - also wieder nichts mit Automatik, also total unbrauchbar.

Harald
 
Wie sollen einem fabrikneuen HMI-Panel alte Checksummen und Versionsnummern bekannt sein?

Ganz davon abgesehen, daß beim HMI eine "Checksumme" reine Theorie ist, weil es da keine Checksumme gibt, die die Runtime auslesen könnte. Der Code läuft eh' nur auf einer SPS-CPU ... und da müsste man dem SPS-Programm die alten Checksummen und zugehörigen Versionsnummern händisch beibringen - also wieder nichts mit Automatik, also total unbrauchbar.

Harald
Das ganze wird natürlich in der SPS programmiert unter Verwendung der Funktion GetChecksum, Checksummen und die dazugehörigen Versionsnummer in einem Array ablegen und vergleichen. Falls Checksumme nicht vorhanden im Array, eintragen und Versionsnummer vergeben
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine "neue" CheckSum in einer verhältnismässig aufwändig erfassten und gespeicherten CheckSumHistorie wiederzuerkennen, dürfte nicht das Problem sein. Aber wer sorgt dafür, dass jedesmal, wenn eine neue CheckSum erkannt wird, die dazu passende, "reale" VersionsNummer zugeordnet wird? Wer sorgt dafür, dass nicht ein und dieselbe VersionsNummer ganz unterschiedlichen Ständen zugeordnet sein kann?
Umsetzbar ist Deine Idee sicherlich, aber ich bezweifle, dass ...
- einerseits die manuellen Eingriffe dadurch erspart bleiben und
- andererseits der angestrebte Zweck überhaupt erfüllt wird.
Unabhängig davon ob die Funktion brauchbar oder sinnvoll ist kann man das definitiv SPS-weise realisieren. Eventuell noch einen „Ringspeicher“ indem die ältesten Checksummen gelöscht werden. Man kann das ganze auch weiterspinnen und sich die Daten in eine CSV ablegen als Langzeitarchiv.

Was ich mit meinem Kommentar nur sagen wollte ist, das man es korrekt programmieren kann, sodass neuere Versionsnummern nicht alten Projektständen zugewiesen werden.
 
Unabhängig davon ob die Funktion brauchbar oder sinnvoll ist kann man das definitiv SPS-weise realisieren. (...)

Was ich mit meinem Kommentar nur sagen wollte ist, das man es korrekt programmieren kann, sodass neuere Versionsnummern nicht alten Projektständen zugewiesen werden.
Wie löst Dein SPS-Programm korrekt das Problem, was entsteht, wenn die CPU und/oder die Speicherkarte kaputt geht und ausgetauscht wird? Dann lädt jemand das korrekte aktuelle Programm und das ist dann die Programmversion 0.1 ?
Wo willst Du die Checksummen automatisiert hinterlegen ohne daß es die Checksummen verändert?

Und wie willst Du Deine Programmidee auf das HMI-Projekt anwenden?

Harald
 
Wo willst Du die Checksummen automatisiert hinterlegen ohne daß es die Checksummen verändert?
Eine Lösung hat er bereits genannt ...
Man kann das ganze auch weiterspinnen und sich die Daten in eine CSV ablegen als Langzeitarchiv.
... glaube ich.
Aber die CheckSum wird sich doch hoffentlich nicht "millisekündlich" ändern, wenn sich "irgendwelche" Daten ändern?
Änderungen in den ProgrammBausteinen, in DatenStrukturen und bei InitialWerten von Daten wären angenehm, aber sonstige aktuelle Daten - und mögen sie als noch so remanent deklariert sein - wären wohl störend!?
Und die zuletzt gültige CheckSum sollte auch keinen Einfluss auf eine neu ermittelte haben, wenn man sie nicht irgendwo hin kopiert hat, wo sie sich dann doch auswirkt?

PS:
Wo müsste man denn Daten ablegen, die nur zur Parametrierung der Software dienen sollen, und deren Änderungen wie ProgrammÄnderungen die CheckSum ändern sollen?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
es handelt sich tatsächlich um ein nicht all zu einfaches, automatisierbares thema was ich hier umsetzen soll.
anyways ich glaube fast, dass aktuell eine händische version die einfachste ist, auch wenns mir nicht gefällt.
egal wie man es dreht. die checksum erfassung ist ja schön, kann aber, genau wie ein string von jeglichem Programmierer jederzeit verändert werden. Und das widerspricht ja eigentlich der "sicherheit", die man eigentlich haben will.
 
Von Beitrag #1:
ich wurde vom Kunden gebeten die Version meines Projektes, also den Speicherstand auf dem Panel anzuzeigen.
Frag die Kunde was wird genau mit dies gemeint.
Muss das online Programm mit die Offline Programversion verglicken werden, und zwar ohne das man sich mit TIA anhängt ? In den Fall kann man den automatische 'Checksumzähler' nicht verwenden.
Muss man erkennen können, ob das Online Programm manipuliert wurde ? In den Fall kann man den Checksum verwenden - aber nicht als ein Zähler. Man muss den online Checksum protokolieren so dass man den Wert spähter vergleichen kann.
Oder..
 
Zurück
Oben