TIA Gleiches Programm für verschiedene Hardwarekonfigurationen

Wrox

Level-1
Beiträge
14
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

für verschiedene Kunden entwickeln wir ein einzelnes SPS Programm, dass dann an die Kunden ausgeliefert und von denen selbstständig auf die SPS übertragen wird. Da die Kunden die SPS selbst einkaufen, kann es sich um verschiedene CPUs (z.B. 1211C, 1212C) und auch jeweils verschiedene Firmwareversionen handeln. Außerdem gibt es Varianten mit und ohne Kommunikationsmodulen. Wenn vorhanden, können diese Kommunikationsmodule ja wieder verschiedene Versionsstände haben. Wenn die von uns verwendete Hardwarekonfiguration dann nicht zu dem tatsächlich vom Kunden verwendeten Gerät passt, laufen wir in einen Fehlerzustand.

Bisher haben wir im TIA Portal deswegen für jede einzelne Kombinationsmöglichkeit ein eigenes Gerät mit jeweils eigener Software angelegt, mit der passenden Hardwarekonfiguration versehen und den einzelnen Kunden dann die passende Version ausgeliefert. Je mehr Kombinationen zu unterstützen sind, desto aufwändiger und fehleranfälliger wird es jedoch all diese einzelnen Kombinationen zu pflegen.

Gibt es eine Möglichkeit diesen imensen Wartungsaufwand zu verringern? Ich habe hier eine ähnliche Frage gefunden, allerdings gibt es dort leider keine richtige Lösung für das Problem.
 
Es gibt wohl in kleinerem Umfang die Möglichkeit, zumindest die zus. Baugruppen über den Webbrowser änderbar zu machen. (lediglich die CPU selbst kannst du da nicht wechseln)
Hab so eine bei mir auf der Arbeit, nur ist der Code nicht von mir und teils noch Knowhow geschützt :)

Aber ich denke, in der Richtung könntest du mal weiter forschen.

MfG Fabsi
 
Es gibt für IO's eine Möglichkeit bei der 1500er nennt sich Variantensteuerung. Ob das ganze auch bei CPU's geht und bei der 1200er geht musst du mal gucken.

https://support.industry.siemens.co...antenmanagement-mit-simatic-s7?dti=0&lc=de-WW
1500 zentrale und dezentrale Baugruppen

1200 nur zentrale Baugruppen

Funktioniert sogar ziemlich gut.

Aber für ein Programm auf unterschiedliche CPUs aufspielen? Glaub ich nicht. Zumal es je nach Firmware und CPU kleinere bis große Unterschiede in den Bausteinen gibt.
 
Danke für die bisherigen Antworten. Ich selbst habe bisher leider nicht viel Ahnung.

Zu der Geschichte mit dem Webserver habe ich bisher leider nichts gefunden. Diese Variantensteuerung erscheint mir aber vielversprechend. Wenn ich das richtig verstanden habe, ist es aber bei jeder Änderung des Steuerdatensatzes nötig das Programm neu zu kompilieren und in die S7 zu laden. Ich kann nicht einmalig das Programm übersetzen, ausliefern und dann vor Ort ohne TIA Portal den korrekten Steuerdatensatz einspielen (z.B. mit dem Simatic Automation Tool oder durch ein externes Tool z.B. mit libnodave), oder?
 
Danke für den Hinweis, malloc. Das könnte durchaus noch nützlich sein, aber ist nicht ganz die Richtung, in die meine Frage abzielte. Ich versuch es mal anders auszudrücken.

Ich versuche die Anzahl an Kompilaten, die wir erstellen müssen zu minimieren. Bisher erstellen und pflegen wir fast 20 verschiedene Versionen, denen im Prinzip immer die gleiche Software zu Grunde liegt und die sich nur in der projektierten Hardware (und ggf. dem Aufruf eines FBs bzgl. des Kommunikationsmoduls) unterscheiden. Da ist mal eine 1211 V4.0 ohne Kommunikationsmodul, mal eine 1211 V4.1 mit einem Kommunikationsmodul, mal eine 1214 V4.1 mit zwei Kommunikationsmodulen, usw. usw.
Ich würde den Wartungsaufwand gerne reduzieren und nur noch eine Version pflegen müssen. Idealerweise erstelle ich dann nur noch ein Kompilat (pro CPU), schicke das dem Kunden und der kann die Software dann selbstständig und ohne TIA Portal für die tatsächliche Hardware konfigurieren und in Betrieb nehmen.

Ich bin leider kein SPS-Programmierer und es gibt auch keinen hier im Haus. Gehört nicht zum Kerngeschäft :(
 
Gerne.
Ich muss nochmal genauer nachfragen:
Bei dem Kompilat handelt es sich aber schon um ein TIA-Projekt, wenn ihr für verschiedene Kunden ein einzelnes SPS-Programm entwickelt, oder?
Ist das gesamte SPS-Programm von euch, oder ein bestimmter Teil? (Also: liefert ihr einzelne FBs, oder ein gesamtes TIA-Projekt aus?)
Wie bringt der Kunde das neue Programm ohne TIA-Portal auf die Steuerung? (da hast du dich wahrscheinlich etwas vertan)

Viele Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich das richtig verstanden habe, ist es aber bei jeder Änderung des Steuerdatensatzes nötig das Programm neu zu kompilieren und in die S7 zu laden. Ich kann nicht einmalig das Programm übersetzen, ausliefern und dann vor Ort ohne TIA Portal den korrekten Steuerdatensatz einspielen (z.B. mit dem Simatic Automation Tool oder durch ein externes Tool z.B. mit libnodave), oder?

Nicht unbedingt. Wir erstellen den Datensatz über die HMI indem wir während die CPU noch in Stopp ist die Variablen im DB beschreiben.
 
Sofern du nur Variablen in den DBs lesen/schreiben möchtest, kannst du das extern erledigen. Wenn du die Struktur der Datenbausteine ändern möchtest, musst du neu kompilieren und Bausteine laden. Dafür brauchst du dann TIA. Ebenso wenn du den Code (FBs oder FCs) ändern möchtest.
 
Du musst mit TIA eigentlich gar keine Hardwarekonfig ausliefern.
Man kann in der Hardware eine "Nicht spezifizierte CPU" einfügen und TIA sich die Hardware vor Ort vor dem bespielen dann selbst erkennen lassen.

Du brauchst dafür aber ein PG mit TIA vor Ort wo die CPU steht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wir erstellen ein komplettes SPS-Programm (also nicht nur einzelne Bausteine) mit TIA und "exportieren" das Ganze über die "Card Reader/ USB-Speicher" Funktion in ein Verzeichnis. Das bekommt dann der Kunde und kann es dann mit dem SIMATIC Automation Tool selbstständig in die SPS einspielen. Da das Tool kostenlos ist, braucht der Kunde dann kein TIA o.ä. zu kaufen und kann das Programm dennoch selbst aufspielen.

Bisher führen wir diesen "Export" eben für jede Hardwarekonfiguration einzeln durch. Jeweils aus einem eigenen Projekt mit eigener Codebasis. Die Implementierung ist aber immer die gleiche. Eine kleine Änderung muss deswegen aktuell jedes mal an X Stellen kopiert werden. Ich habe jetzt schon die meisten Bausteine in eine globale Bibliothek ausgelagert, damit man zumindest diese nur noch einmal ändern muss.

Ich würde aber gerne noch einen Schritt weiter gehen und nur noch ein Projekt (oder wenn es nicht anders geht eins pro CPU) haben, sodass ich jedem Kunden, unabhängig von der tatsächlichen Hardware vor Ort das gleiche Kompilat schicken kann, die korrekte Hardware dann erst bei der Inbetriebnahme spezifiziert wird und ich dadurch weniger Wartungsaufwand habe und das ganze nicht mehr so Fehleranfällig ist.

Wenn ich euch jetzt richtig verstanden habe, dann geht das nur teilweise. Ich muss für jede CPU eine einzelne Hardwarekonfiguration projektieren (da bei der Inbetriebnahme kein TIA zur Verfügung steht). Kann in dieser Hardwarekonfiguration dann aber die maximale Anzahl an Kommunikationsmodulen projektieren und erst bei der Inbetriebnahme über die Variantensteuerung die tatsächliche Konfiguration angeben. Das geht auch ohne TIA, indem ich in den Steuerdatensatz von außen schreibe (z.B. libnodave) bevor die CPU nach Run geht. Diese Änderung bleibt dann auch remanent.

Habe ich das so korrekt verstanden?
 
Zurück
Oben