TIA Block vom Übersetzen ausschließen

Zuviel Werbung?
-> Hier kostenlos registrieren
Na gut, dann mal ein Beispiel, für den Praktiker!
Ich sitze vor Ort an einer Anlage, die läuft und Programmiere eine Funktion, um Daten irgendwohin zu übergeben.
Testen will ich die später, ich programmiere erst einmal nur.
Plötzlich tritt ein Fehler an der Anlage auf und ich will schnell eine kleine Änderung vornehmen.
Geht nicht, mit dem angefangenen Code, sind noch ein paar Syntaxfehler drin usw.
Wäre schon schön, wenn ich trotzdem was machen könnte. Immerhin, Vorteil zu Klassik, ich kann den fehlerhaften Code abspeichern.
Nachteil, ich kann keinen anderen Baustein ändern und übertragen.

1. Lass das NIE deine Versicherung hören! Bei "OPs am offenen Herz" zahlen die nicht, wenn was schiefgeht.

2. Für solche Fälle nutzt man das Backup der bereits eingespielten Software und nicht den Stand, den du gerade bearbeitest/erweiterst.

Kleine Anekdote aus dem wahren Leben:
Ein SPS-Programmierer (kurz vor Rente) hat jahrelang eine S7-Anlage gewartet und erweitert.
Immer schön während des laufenden Betriebs mit Step-7-Classic geändert.
Es gab immer wieder Probleme und dann hat ein Kollege das Programm aus der Steuerung zurück gelesen.
Über 100 Compilerfehler! Es war ein Wunder, dass die Anlage überhaupt lief und nicht einfach hochgegangen ist.
 
Lass das NIE deine Versicherung hören! Bei "OPs am offenen Herz" zahlen die nicht, wenn was schiefgeht.

Dass kann meine Versicherung schon wissen, dass ich dass so mache. Ich bin schon in der Lage, mein Handeln zu verantworten.
Wie macht ihr denn eine "OP am offenen Herzen" also Inbetriebnahme? Komplett fertiges Programm einspielen, funktioniert und
dass wars? Also ich sitze tagelang an laufenden Maschinen und spiele Änderungen ein.

Für solche Fälle nutzt man das Backup der bereits eingespielten Software und nicht den Stand, den du gerade bearbeitest/erweiterst.
Das heist also, nach jeder Änderung ein Backup, das Backup beschriften und bei Bedarf irgendeines dieser Backups wieder einspielen?

Wo passieren denn dann mehr Fehler.

Aber wie Ralle schon schrieb:
dann mal ein Beispiel, für den Praktiker!
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
1. Lass das NIE deine Versicherung hören! Bei "OPs am offenen Herz" zahlen die nicht, wenn was schiefgeht.

2. Für solche Fälle nutzt man das Backup der bereits eingespielten Software und nicht den Stand, den du gerade bearbeitest/erweiterst.

Kleine Anekdote aus dem wahren Leben:
Ein SPS-Programmierer (kurz vor Rente) hat jahrelang eine S7-Anlage gewartet und erweitert.
Immer schön während des laufenden Betriebs mit Step-7-Classic geändert.
Es gab immer wieder Probleme und dann hat ein Kollege das Programm aus der Steuerung zurück gelesen.
Über 100 Compilerfehler! Es war ein Wunder, dass die Anlage überhaupt lief und nicht einfach hochgegangen ist.

Das ist Bullshit hoch 10!
Auch Step7 Klassik hat falsche Programme (Syntax natürlich) nicht auf die SPS gelassen, die konnten nicht mal im Projekt abgespeichert werden.
Frag mal deinen Kollegen aus dem Leben, ob er evtl. eine andere (neuer/älter) Step7-Version genutzt hat, keine UDT für die DB hatte usw.
Aus SCL compilierte Programme zurücklesen, gibt Pseudo-AWL-Code, der teilweise genau diese Fehler ausgibt.
So entstehen Gerüchte!

Ich hab extra geschrieben, getestet wird später. Ich will den Programmierer bei einer IBN vor Ort sehen, der das wesentlich anders macht.

Klar kann ich das auch in einem zweiten Nebenprojekt machen, war ja auch ein Beispiel, das eben machmal vorkommt. (Kopfschüttel-Smiley fehlt leider)
 
Eben,
SCL Code bei der 300ér kann man eh nicht rücklesen, wenn die Quellen fehlen kommt man nicht weit.
Das einzigste was man zurück erhält ist ein AWL Code.
Daher kann ich das Beispiel aus dem "wahren Leben" auch nicht so ganz nachvollziehen.
 
Lies mal den gesamten Themenverlauf von vorne und du wirst sehen, dass sich das "fertig" nicht auf den funktionellen Codeinhalt des Bausteins bezog, sondern darauf, dass der Compiler die Bausteine als fehlerhaft ermittelt hat.
Dieser Thread ist im Vergleich zu manchen anderen recht übersichtlich und es war ein leichtes, ihn nochmal zu lesen.
Dennoch, die Stelle, an der der Compiler über SyntaxFehler stolpert, finde ich in Deiner Antwort und nicht in der "Aufgabenstellung".
Vielleicht sehe ich auf meinem Bildschirm nur eine zensierte Version des Thread? Oder die ZeilenAbstände waren zu gering, so dass ich nicht richtig zwischen den Zeilen lesen konnte.


… ich halte es für richtig, dass man ein Programm oder Programmteile nicht in eine CPU übertragen kann, wenn der Compiler bereits meckert.
Ich auch!
Aber "nicht fertige" Bausteine können doch auch solche sein, von denen nur die fertigen Teile z.Z. benötigt werden und aktiviert sind und die noch unfertigen Teile erst später in Betrieb genommen werden sollen und die der Compiler nicht bemeckert.
Ich traue dem TE durchaus zu, dass er verantwortlich handeln kann und nicht nach Hilfe ruft, um dem System absurde Eigenschaften abzuverlangen.

Gruss, Heinileini
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eben,
SCL Code bei der 300ér kann man eh nicht rücklesen, wenn die Quellen fehlen kommt man nicht weit.
Das einzigste was man zurück erhält ist ein AWL Code.
Daher kann ich das Beispiel aus dem "wahren Leben" auch nicht so ganz nachvollziehen.

Teilweise nicht mal AWL, kannst du hier irgendwo im Forum finden, das haben wir vor einigen Jahren mal diskutiert.
Den Code bekam man dann nur mit Fehlern.
 
Ist zwar bisschen länger her mit dem Thread.

Lege einfach eine zweite identische SPS bei TIA an und kopiere die noch unvollständigen Bausteine in den Programmbausteinordner der zweiten CPU. Lösch die dann in der ersten CPU und kannst dann einfach übersetzen, ohne das TIA meckert. Sobald der Baustein fertig ist, kopierst du den wieder in die davor gesehene CPU und lässt es mitübersetzen.

Gruß
 
Ich sehe 3. Möglichkeiten.

1. Arbeite mit der Projektbibliothek, wie bereits hier im Thread erwähnt. Wenn dein Programm auf der Maschine eingespielt ist und abgenommen, kannst du die Bausteine in die Projekt bibliothek schieben. Wenn du dann was anpassen möchtest, kannst du die Bausteine editieren und wenn du zwischen durch was an anderer stellen ändern must, kannst du zwischen den Versionen wechseln.
2. Du nutzt die Möglichkeiten von Multiuserprojekten, die man auch als einzelner Programmierer nutzen kann. Dann hast du ein sogenanntes Server Projekt, wo du mittels Units verschiedene Bereiche definieren kannst in dem dann unabhängig gearbeitet werden kann. Zudem gibt es eine Historie in der man zurückspringen kann. Bin mir aber nicht sicher, ob es da eine Möglichkeit gibt um einen Merge auszuführen, um dann nebenbeigemachte Änderungen zusammen zu führen.
3. Wenn du ein Programm modifizierts, mach es in einem temporären Duplikat. Dann kannst du bei Fehlerbehebung an einer Maschine das aktuelle nehmen. Um die Änderungen vom Original in dein Duplikat nachzuziehen oder andersherum, kannst du das jeweils zu importierende Projekt als Referenz projekt öffnen und mit dem Vergleich der PLCs die Unterschiede anzeigen und dann in dem Zielprojekt nachziehen.

Jede Möglichkeit hat Vor- und Nachteile. Man sollte aber das aktuelle "freigegebene" Projekt in einer Maschine immer in einem Archiv haben. Damit man im Fall von Bugfixes darauf zurückgreifen kann.

Stimme aber zu, dass es eine schöne Möglichkeit ist, wenn man Bausteine aus dem Compile ausschließen könnte, sofern sie nicht in der PLC Code aufgerufen werden.
Das rüber kopieren in eine andere PLC habe ich bisher auch gemacht. Insbesondere auch um alten Code später mit neuen vergleichen zu können oder einfach um den Alt-Stand auch zu haben. Ich nenne die PLCs meisten dann Boneyard_PLC.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also in Codesys 2 ging das. Das man einzelne Bausteine vom Übersetzen ausschließen konnte.

Ist also nicht abwiegig diese Idee. Und in Tia habe ich die Funktion auch schon vermisst …
 
Hallo,

in diesem Thread # 788 hatte ich diesen Wunsch schon mal geäußert. Ich würde so eine Funktion sehr begrüßen.

 
Zurück
Oben