Willkommen in der TIA-Hoelle

Techpriester

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, liebe Forengemeinde.

Ich habe vor einigen Monaten eine neue Stelle angetreten und stehe quasi vor einem unloesbar scheinenden Problem. Es geht hierbei viel weniger um Code als um Struktur.

Folgendes ist mein Problem:
In unserer Firma werden grosse Anlagen programmiert. Die Programme gelten in unserem Industriezweig als "cutting edge",
Die Programme sind fuer einen Normalsterblichen allerdings nicht zu verstehen:

-Kaum bis gar keine Dokumentation,
-hunderte Netzwerke mit einem Labyrinth aus Merkern, absoluten und relativen Adressen und "Testmerker" an jeder Ecke.
-jede Maschine verarbeitet sehr viel unnoetigen Code, egal ob physische Komponenten vorhanden sind, oder nicht.
(z.B. eine Andruckrolle, die es nicht in jeder Anlage gibt, wird im Programm dennoch bearbeitet, auch wenn es keinen physisch schaltbaren Ausgang dazu gibt)
-aufeinandertreffen komplett unterschiedlicher Programmierstile und immer wieder neuschreiben von Anlagenteilen, weil einem Programmierer der Code eines anderen nicht passt oder diesen nicht versteht. (Funktionierender SCL Baustein wird geloescht weil Programmierer2 SCL fuer unverständlich hält und wird durch AWL ersetzt)
-Flickenteppicharbeit in der an verschiedenen Stellen unterschiedliche, parallel programmierte Staende angelegt werden, die miteinander konkurrieren.

Die Liste ist schier endlos.

Meine Frage ist daher, wie werden diese Probleme anderorts gehandhabt? Ich bin zwar an der SPS ausgebildet, aber meine Tätigkeit dient vielmehr der Optimierung von Prozessen.
Es gibt doch sicherlich einige Ansätze, wie man innerhalb einer Abteilung die Mitarbeiter auf einen gemeinsamen Nenner bringt, sodass die fabrizierten Programme sowohl verständlich als auch wartbar bleiben und nicht bei "X funktioniert nicht" sofort ganze FBs und DBs geloescht und neu geschrieben werden muessen.
 
Zuletzt bearbeitet:
Die Programme sind fuer einen Normalsterblichen allerdings nicht zu verstehen:

-Kaum bis gar keine Dokumentation,
-hunderte Netzwerke mit einem Labyrinth aus Merkern, absoluten und relativen Adressen und "Testmerker" an jeder Ecke.
-jede Maschine verarbeitet sehr viel unnoetigen Code, egal ob physische Komponenten vorhanden sind, oder nicht.
(z.B. eine Andruckrolle, die es nicht in jeder Anlage gibt, wird im Programm dennoch bearbeitet, auch wenn es keinen physisch schaltbaren Ausgang dazu gibt)
-aufeinandertreffen komplett unterschiedlicher Programmierstile und immer wieder neuschreiben von Anlagenteilen, weil einem Programmierer der Code eines anderen nicht passt oder diesen nicht versteht. (Funktionierender SCL Baustein wird geloescht weil Programmierer2 SCL fuer unverständlich hält und wird durch AWL ersetzt)
-Flickenteppicharbeit in der an verschiedenen Stellen unterschiedliche, parallel programmierte Staende angelegt werden, die miteinander konkurrieren.

Die Liste ist schier endlos.

Tja, so ging es mir bei meinem ersten Job auch. Sei froh, da lernt man dann erst mal Programme zu lesen und zu verstehen.
Danach kann man es ja einfach selber besser machen, dokumentieren, strukturieren usw.

Zum Titel "TIA Hölle", da kann TIA aber nichts dafür. Solche Problemchen hat man auch mit Step5, Step7, CoDeSys oder was auch immer ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zum Titel "TIA Hölle", da kann TIA aber nichts dafür. Solche Problemchen hat man auch mit Step5, Step7, CoDeSys oder was auch immer
Ich weiß, das habe ich nur geschrieben weil es halt TIA ist, mit dem ich mich herumschlagen muss... ;) Hat tatsächlich nix mit TIA also Programm an sich zu tun.

Zum Rest: An und für sich hast du evtl. recht. Aber wenn du dann einen Informatikexperten, der den Mist studiert hat an die Hand bekommst, der dir was erklären sollen und der dann nur sagt:
"Viel Glück. Das KANNST du nicht verstehen. Ich verstehe es selbst nicht."
Dann ist das ganze eine sehr entmutigende Erfahrung und denke, es muss sich grundlegend was ändern in der Firma. Nicht zuletzt weil die betreffenden Personen die das Chaos fabrizieren bald alle hintereinander in Rente gehen und dann können wir die Programmierabteilung dicht machen, wenn keiner mehr durch den Code durchsteigt...
 
Zuletzt bearbeitet:
"Viel Glück. Das KANNST du nicht verstehen. Ich verstehe es selbst nicht."
Das ist eine Frage der Einstellung und der Selbstsicherheit. Dann beweise ihm halt das Gegenteil.

es muss sich grundlegend was ändern in der Firma.
Das denken viele, vor allem wenn sie neu irgendwo anfangen. Das wird halt schwer.

Nicht zuletzt weil die betreffenden Personen die das Chaos fabrizieren bald alle hintereinander in Rente gehen
Na ist doch super, das ist doch deine Gelegenheit es in die Hand zu nehmen und besser zu machen.

und dann können wir die Programmierabteilung dicht machen
Meine Erfahrung der letzten Jahrzehnte:
Es gab immer wieder mal die Situation, dass einer der TOP-Programmierer gekündigt hat und dann alle gedacht haben,
danach ist es vorbei, es wird nichts mehr klappen. Aber es ging immer weiter und es hat auch immer geklappt. Leute
haben sich dann damit einfach intensiver beschäftigt und waren dann irgendwann selber die gefragten TOP-Programmierer..

wenn keiner mehr durch den Code durchsteigt
Dann muss man sich damit länger beschäftigen, überlegen, Kommentare reinschreiben usw. usw...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hier liegt das Problem ... Zeigt sich regelmässig hier im Forum :ROFLMAO:
Duck und Weg :D

Ja, ich warte auch schon auf die Kommentare ganz bestimmter Personen. Vor allem weil die Wörter Merker, AWL und indirekte Adressierung gefallen sind.

Ok, auch duck und weg ;)
 
Haha. Danke für die Antworten.

Ich spreche nicht von einem forenexperten, sondern von jemandem, der tatsächlich 1A SCL Programme schreibt. Die Seniorprogrammierer löschen das aber sofort wieder raus, weil sie nur AWL und KOP können. XD

An sich stimmt es wohl: Einfach kann jeder. Später werden wir wohl oder übel die ganzen Programme neu schreiben müssen...
 
Ich spreche nicht von einem forenexperten, sondern von jemandem, der tatsächlich 1A SCL Programme schreibt. Die Seniorprogrammierer löschen das aber sofort wieder raus, weil sie nur AWL und KOP können. XD
... oder weil im Problemfall beim Kunde/Fernwartung Programme in SCL völlig ungeeignet zur schnellen Fehlersuche sind? :cool:

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... oder weil im Problemfall beim Kunde/Fernwartung Programme in SCL völlig ungeeignet zur schnellen Fehlersuche sind? :cool:

Naja, evtl. Aber selbst wenn es das wäre, dann müssten sich die Parteien miteinander absprechen anstatt sich gegenseitig die Netzwerke zu löschen. Wenn dann mir die selben Leute erzählen das sie nie SPS Programmieren o.ä. gelernt haben sondern es nur "learning by doing" machen, habe ich zwar schon Respekt davor, dass man damit 30 Jahre im Business überleben kann, es sagt aber auch viel aus wenn die gleichen Personen noch nichtmal gewisse Grundfunktionen der SPS und der Software kennen. Genau so sehen dann aber auch hinterher die Programme aus. XD
 
-aufeinandertreffen komplett unterschiedlicher Programmierstile und immer wieder neuschreiben von Anlagenteilen, weil einem Programmierer der Code eines anderen nicht passt oder diesen nicht versteht. (Funktionierender SCL Baustein wird geloescht weil Programmierer2 SCL fuer unverständlich hält und wird durch AWL ersetzt)
-Flickenteppicharbeit in der an verschiedenen Stellen unterschiedliche, parallel programmierte Staende angelegt werden, die miteinander konkurrieren.

Du bist der nächste der einen Neuen Stil reinbringt, aber anscheinend doch
keine Lösung parat hat, so das der Senior Programmierer „HURRA“ schreit.
 
-jede Maschine verarbeitet sehr viel unnoetigen Code, egal ob physische Komponenten vorhanden sind, oder nicht.
Das ist eine bekannte Dilemma.
Entweder Sonderprogramme erstellen, genau angepasst an die aktuelle Maschine.
Oder ein Standardprogramm erstellen, der Optionen hantieren kann. Komplizierter, aber den Vorteil ist dass man diesen Standardprogramm über die Dauer entwickeln und Warten kann.
Wie versuchen den letztere Weg zu gehen.

-aufeinandertreffen komplett unterschiedlicher Programmierstile und immer wieder neuschreiben von Anlagenteilen, weil einem Programmierer der Code eines anderen nicht passt oder diesen nicht versteht. (Funktionierender SCL Baustein wird geloescht weil Programmierer2 SCL fuer unverständlich hält und wird durch AWL ersetzt)
https://xkcd.com/927/
 
Eigentlich ist das ein Thema für deinen Vorgesetzten....

Im Prinzip ja, ein heißes Eisen. Er hat gerade erst angefangen dort.
Und wer weiß wie es wirklich ist. Ist doch überall so. Mechaniker schimpfen
über Elektriker und anders herum, beide meckern dann gemeinschaftlich gegen
den Konstrukteur usw. usw.
Aber eigentlich macht jeder seinen Job, es wird halt gerne gemeckert.
Da jetzt beim Geschäftsführer ein Fass aufmachen? Da hat man ganz schnell alle gegen sich, inkl. GF
 
Das ist eine bekannte Dilemma.
Oder ein Standardprogramm erstellen, der Optionen hantieren kann. Komplizierter, aber den Vorteil ist dass man diesen Standardprogramm über die Dauer entwickeln und Warten kann.
Wie versuchen den letztere Weg zu gehen.

In meiner alten Firma haben wir das nur so gelöst. Das hat sehr gut funktioniert. Allerdings muss man auch dazu sagen, dass wir u.a. einen Art zentralen "Server" hatten, den jede SPS beim Booten kontaktiert hat. Dort hat sie dann Ihre Konfig abgeholt bzw. die passenden Bits wurden an- oder ausgeschaltet.
Auch wurde hier Konsequent jede Funktion in einen FB gelegt, welcher von einer Person gepflegt wurde. Hat man diesen FB benötigt, wurde er einfach in das Programm importiert und verwendet.

Aber das bedeutet halt auch, dass man ein paar Grundlegende Programmierregeln aufstellt, die Verbindlich für alle gelten. Und ja, dass funktioniert nur nach vorne oder wenn man eine Steuerungsgeneration wechselt.....
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Allerdings muss man auch dazu sagen, dass wir u.a. einen Art zentralen "Server" hatten, den jede SPS beim Booten kontaktiert hat. Dort hat sie dann Ihre Konfig abgeholt bzw. die passenden Bits wurden an- oder ausgeschaltet.
Das finde ich interessant. Könntest du das technisch genauer erläutern?
 
Wenn diese Bausteine sachgemäß angelegt und verwendet werden, dann hat doch Kunde / Fernwartung im Normalfall eh nichts dran verloren.

Naja, das ist in der Theorie so.
Aber ich hab gelernt, dass der Normalfall der Sonderfall ist :D
Spaß beiseite. Setzt man SCL sinnvoll ein, steigt die Qualität deutlich im Vergleich zu AWL.
Aber unsere Erfahrung zeigt auch, dass bei Verwendung von SCL für simple logische Verknüpfungen mehr Fehler auftreten als bei KOP/FUP. Ich denke viele kennen die if-then-elsif-else-endif-Orgien. Wir diskutieren, ob wie wir unsere Liefervorgaben sinnvoll anpassen können.

Gruß
Blockmove
 
Zurück
Oben