Software Resilienz im SPS-/Produktionsbereich

Zuviel Werbung?
-> Hier kostenlos registrieren
@Blockmove : so ein Super-Alleskönner-Baustein macht auch keinen Sinn und ist auch nicht mit DRY gemeint. Hier geht es aus meiner Sicht eher um sich wiederholende identische Operationen (die man ggf. sinnvoll als Funktion abbilden kann - also z.B. FC) - gleiche Berechnungen (aber 10 mal programmiert) - ein Baustein für einen FU, der dann x-mal verwendet werden kann - etc.

Gerade im Bereich Intralogistik (Fördertechnik) findet man aber ganz häufig diese "Super-Alleskönner-Bausteine".
Wie gesagt im Prinzip verleitet es auch dazu und es gibt auch Fördertechniksysteme wo dies sinnvoll ist. Selbst Codegeneratoren sind für manche Fördertechniken klasse (Verteilzentren, Flughafenlogistik, ...). Aber es gibt es auch Anlagen, wo dies absolut nichts ist.
Wir haben bei uns 2 Fördertechnik-Lieferanten, die unterschiedlich nicht sein könnten. Der eine verwendet sein Framework und der andere programmiert beinahe wie zu S5-Zeiten. Und nun ratet mal wessen Anlagen weniger Probleme machen und welcher Lieferant schneller bei der Inbetriebnahme ist. ;).
Aber sowas gehört eben auch zum Prozess-KnowHow und zur Projektarbeit.
 
Fort und Weiterbildung kann ich als Angestellter nur einfördern aber selbst bezahlen will ich so etwas nicht. Am Ende bin ich nicht Selbständig und der Gewinn geht an meine Firma. Also sehe ich sie hier auch in der Verantwortung.
Da decken sich unsere Ansichten nicht so ganz.
Ich kann mich auch neben meinem Job mit Technik beschäftigen und mich weiterbilden.
Hab ich in jungen Jahren viel gemacht und es hat sich für mich bezahlt gemacht.
Dazu gehöhrt natürlich auch ein Arbeitgeber / Vorgesetzer, der sowas erkennt und auch fördert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da decken sich unsere Ansichten nicht so ganz.
Ich kann mich auch neben meinem Job mit Technik beschäftigen und mich weiterbilden.
Hab ich in jungen Jahren viel gemacht und es hat sich für mich bezahlt gemacht.
Dazu gehöhrt natürlich auch ein Arbeitgeber / Vorgesetzer, der sowas erkennt und auch fördert.
Da geb ich dir recht. Das kann man machen. Die Grenzen sind bei mir die Kosten.
 
Da geb ich dir recht. Das kann man machen. Die Grenzen sind bei mir die Kosten.

Heute ist das ganze doch viel billiger als in meiner Jugend.
Du bekommst doch schon einen Großteil der Informationen online und kostenlos.
Ach ja: Auch das Stöbern hier im Forum ist eine Art von Weiterbildung :)
Alleine schon von der Diskussion hier kannst doch einiges an Kenntnissen mitnehmen :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Heute ist das ganze doch viel billiger als in meiner Jugend.
Du bekommst doch schon einen Großteil der Informationen online und kostenlos.
Ach ja: Auch das Stöbern hier im Forum ist eine Art von Weiterbildung :)
Alleine schon von der Diskussion hier kannst doch einiges an Kenntnissen mitnehmen :)
Ja, sowas mach gerne. Das stimmt. Aktuell ist das sehr einfach an Infos zu kommen.
 
Nochmal ein Update. Was denkt ihr über die neuen Punkte. Das Thema Schulung ist mit noch so ins Hirn gekommen.
  1. Anforderungsanalyse:
    • Verstehen Sie die Anforderungen Ihrer Anwendung klar, bevor Sie mit der Entwicklung beginnen.Klare Anforderungen sind entscheidend für die Entwicklung stabiler Software. Hintergrundwissen und Erfahrung zu den Anforderungen sind hilfreich.
  2. Zusammenarbeit mit anderen Disziplinen:
    • Arbeiten Sie eng mit Ingenieuren, die für die Mechanik, Elektronik und Steuerungssysteme verantwortlich sind, zusammen, um sicherzustellen, dass alle Aspekte integriert sind.
  3. Robuste Fehlerbehandlung:
    • Implementiere effektive Fehlerbehandlung, um unerwartete Probleme abzufangen und angemessen zu reagieren.
    • Protokolliere Fehlermeldungen für spätere Diagnose und Behebung.
  4. Klare Struktur und Lesbarkeit:
    • Verwende aussagekräftige Bezeichner für Variablen, Funktionen und Klassen.
    • Halte den Code gut strukturiert und formatiert, um die Lesbarkeit zu erleichtern.
    • Kommentiere komplexen Code, um anderen Entwicklern das Verständnis zu erleichtern.
  5. Vermeidung von Redundanz:
    • Vermeide doppelten Code (Redundanz), um Wartbarkeit und Änderbarkeit zu verbessern.
    • Nutze Funktionen und Klassen, um Code logisch zu organisieren und zu wiederverwenden.
  6. Effiziente Ressourcennutzung:
    • Achte darauf, Ressourcen wie Speicher und CPU effizient zu nutzen.
    • Schließe Ressourcen, wenn sie nicht mehr benötigt werden, um Lecks zu vermeiden.
  7. Gute Dokumentation und Kommunikation:
    • Dokumentiere den Code klar und konsistent, um anderen Entwicklern die Arbeit zu erleichtern.
    • Beschreibe Schnittstellen, Funktionen und wichtige Entscheidungen. Biete Plattformen für den Informationsaustausch zwischen den Fachexperten.
  8. Einhalten von Coding Standards:
    • Befolge die geltenden Coding Standards für die verwendete Programmiersprache.
    • Konsistenz in der Formatierung und im Stil fördert die Lesbarkeit und Wartbarkeit.
  9. Tests und Testautomatisierung:
    • Schreibe umfassende Tests, um sicherzustellen, dass der Code korrekt funktioniert.
    • Automatisiere Tests, um eine konsistente Überprüfung bei Codeänderungen sicherzustellen.
  10. Versionierung und Backups:
    • Verwende ein Versionskontrollsystem wie Git, um den Code zu verfolgen und zu sichern.
    • Erstelle regelmäßig Backups, um Datenverlust zu verhindern.
  11. Performanceoptimierung:
    • Identifiziere und behebe Engpässe in der Performance, um eine reibungslose Ausführung sicherzustellen.
  12. Sicherheit:
    • Berücksichtige Sicherheitsaspekte und verhindere potenzielle Schwachstellen.
    • Validiere Benutzereingaben.
  13. Schulung und Support:
    • Stellen Sie sicher, dass die Benutzer und das Wartungspersonal ausreichend geschult sind, um mit der Software der Sondermaschine umzugehen. Bieten Sie effektiven technischen Support.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... irgendwie ist für mich die HMI-Geschichte da gar nicht (mehr ?) berüksichtigt.
Ein ganz wichtiger Punkt für mich ist, dass die HMI so aufgebaut ist, dass sie von normalen Bedienpersonal durchblickt, verstanden und gehandelt werden kann - und zwar ohne, dass diese Leute dafür erst eine großartige Schulung besuchen müssen.
So in etwa steht es in meinem Pflichtenheft und das läßt sich nach meinen Erfahrungen auch umsetzen - wenn man denn will (kann aber tatsächlich nicht jeder hersteller obwohl es eigentlich Standard sein sollte und auch eine generelle zentrale Forderung ist).
 
Nochmal ein Update. Was denkt ihr über die neuen Punkte. Das Thema Schulung ist mit noch so ins Hirn gekommen.
  1. Anforderungsanalyse:
    • Verstehen Sie die Anforderungen Ihrer Anwendung klar, bevor Sie mit der Entwicklung beginnen.Klare Anforderungen sind entscheidend für die Entwicklung stabiler Software. Hintergrundwissen und Erfahrung zu den Anforderungen sind hilfreich.
  2. Zusammenarbeit mit anderen Disziplinen:
    • Arbeiten Sie eng mit Ingenieuren, die für die Mechanik, Elektronik und Steuerungssysteme verantwortlich sind, zusammen, um sicherzustellen, dass alle Aspekte integriert sind.
  3. Robuste Fehlerbehandlung:
    • Implementiere effektive Fehlerbehandlung, um unerwartete Probleme abzufangen und angemessen zu reagieren.
    • Protokolliere Fehlermeldungen für spätere Diagnose und Behebung.
  4. Klare Struktur und Lesbarkeit:
    • Verwende aussagekräftige Bezeichner für Variablen, Funktionen und Klassen.
    • Halte den Code gut strukturiert und formatiert, um die Lesbarkeit zu erleichtern.
    • Kommentiere komplexen Code, um anderen Entwicklern das Verständnis zu erleichtern.
  5. Vermeidung von Redundanz:
    • Vermeide doppelten Code (Redundanz), um Wartbarkeit und Änderbarkeit zu verbessern.
    • Nutze Funktionen und Klassen, um Code logisch zu organisieren und zu wiederverwenden.
  6. Effiziente Ressourcennutzung:
    • Achte darauf, Ressourcen wie Speicher und CPU effizient zu nutzen.
    • Schließe Ressourcen, wenn sie nicht mehr benötigt werden, um Lecks zu vermeiden.
  7. Gute Dokumentation und Kommunikation:
    • Dokumentiere den Code klar und konsistent, um anderen Entwicklern die Arbeit zu erleichtern.
    • Beschreibe Schnittstellen, Funktionen und wichtige Entscheidungen. Biete Plattformen für den Informationsaustausch zwischen den Fachexperten.
  8. Einhalten von Coding Standards:
    • Befolge die geltenden Coding Standards für die verwendete Programmiersprache.
    • Konsistenz in der Formatierung und im Stil fördert die Lesbarkeit und Wartbarkeit.
  9. Tests und Testautomatisierung:
    • Schreibe umfassende Tests, um sicherzustellen, dass der Code korrekt funktioniert.
    • Automatisiere Tests, um eine konsistente Überprüfung bei Codeänderungen sicherzustellen.
  10. Versionierung und Backups:
    • Verwende ein Versionskontrollsystem wie Git, um den Code zu verfolgen und zu sichern.
    • Erstelle regelmäßig Backups, um Datenverlust zu verhindern.
  11. Performanceoptimierung:
    • Identifiziere und behebe Engpässe in der Performance, um eine reibungslose Ausführung sicherzustellen.
  12. Sicherheit:
    • Berücksichtige Sicherheitsaspekte und verhindere potenzielle Schwachstellen.
    • Validiere Benutzereingaben.
  13. Schulung und Support:
    • Stellen Sie sicher, dass die Benutzer und das Wartungspersonal ausreichend geschult sind, um mit der Software der Sondermaschine umzugehen. Bieten Sie effektiven technischen Support.
Hört sich zwar alles gut an, aber ziemlich unkonkret. Jemand der keinen Plan hat, wird mit diesen Infos auch kein "gutes" Projekt zustande bringen.
Jemand der nen Plan hat, naja für den ists mal abundzu zum in sich gehen nicht schlecht.
Die grundsätzlichen Probleme, die zum Chaos führen, lassen sich aber meistens eh nicht ändern, sonst hätte mans fürs zweite Projekt schon getan...

Bsp. Wenn Du vom Planer/Kunden/Anlagenbauer/Mechaniker/Technologen keine ordentlichen Vorgaben für die Softwarefunktionen krigst, wird das auch in 5 Jahren noch so sein. Da kannst dich auf den Kopf stellen...

Die Welt kann sowieso niemand retten. Man kann nur für sich selbst bestmöglich mit der gegebenen Situation umgehen...

Ich für mich versuche grob zu verstehen, was die Anlage machen soll, und programmiere unabhängig der Vorgaben möglichst sinnvolle Funktionen, ohne das die Anlage größeren Quatsch macht. Damit bin ich bisher immer gut gefahren und es gibt ganz selten Ärger. Ellenlange Funktionsbeschreibungsbesprechungsrunden führn aber nach meiner Erfahrung im Detail leider zu nichts. Was nicht heissen soll, dass man im Zweifelsfall mal den Planer nicht anruft und nachfragt...

Der für mich wichtigste Startpunkt fehlt aber schonmal. SPS-Software sollte nur jemand schreiben, der die notwendige Ausbildung dazu hat. Also mal Automatisierungstechnik gelernt hat und/oder die entsprechende Berufserfahrung hat, bevor er alleine auf ein Projekt losgelassen wird.
 
Zuletzt bearbeitet:
irgendwie ist für mich die HMI-Geschichte da gar nicht (mehr ?) berüksichtigt.
Stimmt!


Für mich widerspricht sich das:

Jemand der keinen Plan hat, wird mit diesen Infos auch kein "gutes" Projekt zustande bringen.

Mit dem:

Fort- und Weiterbildung


Ich habe Schwierigkeiten zu sagen, dass Erfahrung wichtig ist für stabile Software und gleichzeitig muss die Liste für jemanden sein der "kein Plan" hat
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe Schwierigkeiten zu sagen, dass Erfahrung wichtig ist für stabile Software und gleichzeitig muss die Liste für jemanden sein der "kein Plan" hat

Die Punkte greifen ineinander.
Im Sondermaschinen- oder Anlagenbau hast du immer wieder mit neuen Technologien und Prozessen zu tun.
Der mechanische Konstrukteur oder Verfahrenstechniker beschäftigit sich damit und muß dann die Anforderungen verständlich spezifizieren.
Selbst wenn er das noch so gut macht (was ganz oft nicht der Fall ist), wird es immer wieder Unklarheiten und Klärungsbedarf geben.
Und da ist es eben gut, wenn du durch Erfahrung und / oder Weiterbildung auf einem Level bist um sich auf Augenhöhe mit dem anderen zu unterhalten. Weiterbildung bezieht also nicht nur auf Elektrotechnik oder SPS sondern z.B. auch auf Pneumatik, Hydraulik oder Chemie.
 
Die Punkte greifen ineinander.
Im Sondermaschinen- oder Anlagenbau hast du immer wieder mit neuen Technologien und Prozessen zu tun.
Der mechanische Konstrukteur oder Verfahrenstechniker beschäftigit sich damit und muß dann die Anforderungen verständlich spezifizieren.
Selbst wenn er das noch so gut macht (was ganz oft nicht der Fall ist), wird es immer wieder Unklarheiten und Klärungsbedarf geben.
Und da ist es eben gut, wenn du durch Erfahrung und / oder Weiterbildung auf einem Level bist um sich auf Augenhöhe mit dem anderen zu unterhalten. Weiterbildung bezieht also nicht nur auf Elektrotechnik oder SPS sondern z.B. auch auf Pneumatik, Hydraulik oder Chemie.
Ich geb dir recht!

Was ich eigentlich sagen wollte ist, dass wenn jemand keine Plan hat, kann ich auch nicht erwarten kann das eine stabile Software entsteht.


Ich muss ihn dann schulen und an der Seite stehen. Und dann eventuell die Liste auch erklären, damit er sie versteht.
 
Was ich eigentlich sagen wollte ist, dass wenn jemand keine Plan hat, kann ich auch nicht erwarten kann das eine stabile Software entsteht
Davon ist auszugehen.
Ich muss ihn dann schulen und an der Seite stehen. Und dann eventuell die Liste auch erklären, damit er sie versteht.
Ob Schulen reicht, ich sage mal es gehört auch Berufserfahrung und jemand, der einen auch über die Jahre "formt".
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich geb dir recht!

Was ich eigentlich sagen wollte ist, dass wenn jemand keine Plan hat, kann ich auch nicht erwarten kann das eine stabile Software entsteht.


Ich muss ihn dann schulen und an der Seite stehen. Und dann eventuell die Liste auch erklären, damit er sie versteht.

Irgendwie habe ich den Eindruck, dass du zu sehr in Hierachien und starren Organisationen hängst.
Wenn mir Informationen oder KnowHow fehlt, dann schaue ich da selber danach und erwarte nicht, dass mir was erklärt wird.
Als SPSler bist du quasi der letzte an der Anlage und musst all das zusammanfügen was sich andere ausgedacht haben.
Die Softskills (Kommunikation, Umgang mit Menschen, Durchsetzungsvermögen, usw) sind da genauso wichtig wie Fachkenntnis.
 
@ducati : Das, was der OP hier schreibt, ist eine Art Leitbild und aus meiner Sicht auch so zu verstehen.

@Blockmove : Ist nicht ganz richtig was du schreibst (aus meiner Sicht).
Ich hatte lange Jahre in einer Fabrik gearbeitet wo wir unsere Produktions-Maschinen (Montage-Automaten) komplett selbst erstellt haben.
Hier lief es irgendwann so, dass es am Anfang eine Besprechung zwischen dem Konstrukteur und dem Programmierer gegeben hat um das Grundsätzliche festzulegen - im Verlauf des Fortschreitens des Projektes kamen dann der Elektriker dazu, die Instandhaltung und am Ende auch die Produktion. Auf diese Weise liessen sich schon sehr sehr viele Dinge im Vorfeld ausräumen und es hat die Inbetriebnahme am Ende schon extrem verkürzen können. Ich muss aber auch gestehen, dass Erfahrung (Zitat von @DeltaMikeAir) dabei auch ein nicht unwesentlicher Punkt war.
 
Irgendwie habe ich den Eindruck, dass du zu sehr in Hierachien und starren Organisationen hängst.
Wenn mir Informationen oder KnowHow fehlt, dann schaue ich da selber danach und erwarte nicht, dass mir was erklärt wird.
Als SPSler bist du quasi der letzte an der Anlage und musst all das zusammanfügen was sich andere ausgedacht haben.
Die Softskills (Kommunikation, Umgang mit Menschen, Durchsetzungsvermögen, usw) sind da genauso wichtig wie Fachkenntnis.
Ich habe irgendwie geahnt, dass das kommt!


Natürlich kann man es selbst machen. Aber es ist effektiver wenn man es gezeigt bekommt.


So funktioniert der Mensch und im ganzen Leben ist es so. Wir stecken auch keine Kinder in den Raum und sagen : "lernt selbst!" Wir haben dafür auch Lehrer ausgebildet. Ich fange jetzt keine Diskussion über unser schulsystem an!


Was ich damit sagen möchte ist, man tut sich leichter wenn man Hilfestellung hat.


Und ich bin sicher niemand der in Hierachien oder Organisationen denkt. Ich sage gerne meinen Chef was er nicht richtig macht 🤣


Und gleichzeitig lass ich mir gerne helfen und helfe anderen gerne. Deswegen auch die Aktivität in diesem Forum. Würde ich alles selbst können, bräuchte ich so ein Forum nicht! Wenn ich nach allem selbst schauen könnte und müsste.

Oder warum bist du hier?
 
Zurück
Oben