Software Engineering für Steuerungssoftware

SPSnewbie91

Level-2
Beiträge
186
Reaktionspunkte
10
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen.

Ich habe in meiner Firma die Möglichkeit bekommen ein aktuelles Projekt direkt als Bachelorarbeit zu nutzen. Dabei geht es um die Programmierung der SPS via TIA Portal V18 und Erstellung eines digitalen Zwillings mit der Software fe-screen.sim. Der Titel der Arbeit lautet "Virtuelle Inbetriebnahme - Digitaler Zwilling". Problemstellung ist darzustellen in wie weit man frühzeitig Software- und Konstruktionsfehler erkennt und diese Erkenntnisse sich positiv oder auch negativ auf die reale Inbetriebnahme auswirken. Ich habe mir vorher recht wenig Gedanken bzgl. Software Engineering gemacht. Hab das nie gelernt, bin allgemein noch recht frisch in der SPS Programmierung und soweit ich mich mitlerweile schlau gemacht habe ist die klassische Vorgehensweise auch nicht üblich bei der SPS-Programmierung. Ich habe quasi einfach drauf los programmiert, den digitalen Zwilling erstellt, alles getestet, Änderungen in der Programmierung vorgenommem, Konstruktionsfehler an die Konstruktion weitergegeben und mir alles stichpunktartig mitgeschrieben um es später aufs Papier zu bringen.
Meinen ersten Entwurf hat mein Professor dann schon mal zu Nichte gemacht 😅. Er möchte ein Modell sehen, wie ich meine Software entwickelt habe. Am Besten wäre das V-Modell.

1711611665000.png
Ich habe mir auch schon Videos dazu angesehen und ein bisschen was dazu gelesen, nur verstehe ich nicht ganz, wie ich das ganze für meine SPS-Programmierung ummünzen soll.

Systemanforderungsanalyse: Hier beschreibe ich die Anforderungen an die Software. Also hier beschreibe ich mehr oder weniger die Wünsche des Kunden. Was soll die Anlage schlussendlich machen. Denke das habe ich so richtig interpretiert.

System-Architektur: Hier beißt es schon aus. Ich verstehe nicht ganz was mit System-Architektur gemeint ist.

System-Entwurf: Auch hier habe ich ehrlich gesagt keine Ahnung was ich dazu schreiben soll bzw. beschreiben soll.

Software-Architektur: Dazu habe ich gelesen kann man beschreiben welche Programmiersprachen man verwendet hat und warum diese für den jeweiligen Anwendungsfall am sinnvollsten sind. Außerdem hätte ich hier die Kommunikation zwischen digitalem Zwilling und der Steuerungssoftware beschrieben (via PLCSIM Advanced). Kann ich hier auch beschreiben, wie ich meine Software strukturiert habe?

1711612583548.png

Ich habe z.B. eine Funktionsgruppe eingeführt, da mehrere keinen Sinn ergeben, da die Einzelnen Gewerke nicht unabhängig voneinander arbeiten können.



Software-Entwurf: Hier stehe ich auch wieder auf dem Schlauch. Ich habe gelesen, dass man in dieser Phase sogenannte UML-Diagramme erstellt. Dazu gibt es ja unzählige Möglichkeiten. Objektorientierte Programmierung gibt es ja in der SPS nicht wirklich, deshalb weiß ich nicht welche UML-Diagramme ich für SPS verwenden könnte. In der Konzeptphase mit dem Kunden wurden so ähnliche Ablaufdiagramme erstellt.

1711612304872.png

Das ist aber wohl nicht mehr als eine Ablaufbeschreibung nehme ich an.

Software-Entwurf: Gut hier beschreibe ich die eigentliche Programmierung. Hier gehe ich explizit auf die wichtigsten Bausteine in meinem Programm ein und beschreibe zusätzlich, wie ich den digitalen Zwilling erstellt habe. Wie habe ich das CAD modelliert, damit ich daraus den digitalen Zwilling erstellen konnte. Wie verknüpfe ich die Baugruppen mit den benötigten Bewegungsarten usw... Ich denke das sollte so passen.

Unit-Tests: Hier hätte ich per Hand-Funktion einzelne Stellglieder wie Pneumatikzylinder getestet. Kommunikation mit der SPS wird dabei mitgetestet und ob die Stellglieder im digitalen Zwilling die richtige Bewegung ausführen usw.

Integrations-Test: Hier weiß ich auch nicht so Recht was ich schreiben soll

System-Integration: Hier auch nicht.

Abnahme: Hier beschreibe ich, dass meine Software den Anforderungen entspricht usw...


Das Problem ist, dass die Software und der DZ schon komplett fertig sind. Der FAT der virtuellen Anlage ist auch schon gewesen und wurde vom Kunden abgenommen. Ich habe mir zu den oben genannten Dingen während der Programmierung überhaupt keine Gedanken gemacht, da ich nicht dachte, dass das mal relevant sein könnte.
Hat jemand eine Idee oder Vorschläge, wie ich explizit das V-Modell auf die Erstellung einer Steuerungssoftware (vllt noch zusätzlich mit Erstellung eines digitalen Zwillings) anwenden könnte? Hat jemand allgemein Erfahrung im Software Engineering und könnte mir dazu Tipps geben?

Vielen Dank schon mal im Voraus.

Grüße
SPSnewbie91
 
Moin SPSnewbie91,

das ist schon richtig, daß viele Software = Software die SPS-Programmierung mit der Anwendungsprogrammierung über einen Kamm scheren.
Zumal in einer Uni oder FH. Welchen Schwerpunkt hat denn Dein Prof? Kommt er aus der IT oder aus der Automatisierung?
Daraufhin mußt Du Dein Konzept abstimmen, denn wohl oder übel hängst Du von seinem Wohlwollen ab. Dementsprechend mußt Du aber auch Deine Texte gestalten, denn ob jemand aus der IT überhaupt versteht, wie das in einer SPS abläuft, ist nicht sicher. Du mußt Dich also damit beschäftigen "wer ist meine Leserschaft, wo muß ich ihn/sie abholen".

Dazu gehört dann auch, daß es das V-Modell gibt, wenn aber einzelne Aspekte Deiner Meinung nach für die SPS-Programmierung nicht passen, dann muß man das so schreiben und begründen. Das Problem in einer Arbeit ist nicht, daß etwas nicht zutrifft, sondern das komplette Fehlen in der Ausarbeitung ohne Begründung. Man muß darauf eingehen, warum man etwas nicht so anwenden konnte.

Gedanken zu den einzelnen Punkten:
Systemarchitektur: Hier würde ich vermutlich eher auf den Hardware-Aufbau eingehen: Was muß wo wie warum erledigt werden?

Systementwurf: Systemarchitektur in Hard- und Software abbilden: Wo sitzt die SPS, was ist ihre Aufgabe. Wo sitzt eine Bedienstation, was ist ihre Aufgabe. Warum ist der Aufbau so gewählt. Warum ggf. eine standalone Visualisierung anstatt eines Webservers auf der SPS - so als Beispiel...

Software-Architektur: Welche einzelnen Funktionen gibt es, kann man sie in FBs/FCs kapseln? Warum? Welche Schnittstellen gibt es zwischen den Modulen?

Software-Entwurf: Aus der Architektur ein ablauffähiges Design machen... Ablaufdiagram.... Wie verschalte ich die Module?

Unit-Tests: Deine einzelnen Module aus der Architektur testen: Modul "Pneumatikzylinder" programmieren und testen.

Integrationstests: Arbeiten die Module so zusammen, wie sie sollen? Ergibt sich ein ablauffähiges Programm, das theoretisch tut, was es soll?

Systemintegration: Bis jetzt war alles Theorie... funktioniert das Programm auch mit realen Bauteilen?

Abnahme: Funktionieren alle geforderten Funktionen, ist der Kunde zufrieden?

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin SPSnewbie91,

das ist schon richtig, daß viele Software = Software die SPS-Programmierung mit der Anwendungsprogrammierung über einen Kamm scheren.
Zumal in einer Uni oder FH. Welchen Schwerpunkt hat denn Dein Prof? Kommt er aus der IT oder aus der Automatisierung?
Daraufhin mußt Du Dein Konzept abstimmen, denn wohl oder übel hängst Du von seinem Wohlwollen ab. Dementsprechend mußt Du aber auch Deine Texte gestalten, denn ob jemand aus der IT überhaupt versteht, wie das in einer SPS abläuft, ist nicht sicher. Du mußt Dich also damit beschäftigen "wer ist meine Leserschaft, wo muß ich ihn/sie abholen".

Dazu gehört dann auch, daß es das V-Modell gibt, wenn aber einzelne Aspekte Deiner Meinung nach für die SPS-Programmierung nicht passen, dann muß man das so schreiben und begründen. Das Problem in einer Arbeit ist nicht, daß etwas nicht zutrifft, sondern das komplette Fehlen in der Ausarbeitung ohne Begründung. Man muß darauf eingehen, warum man etwas nicht so anwenden konnte.

Gedanken zu den einzelnen Punkten:
Systemarchitektur: Hier würde ich vermutlich eher auf den Hardware-Aufbau eingehen: Was muß wo wie warum erledigt werden?

Systementwurf: Systemarchitektur in Hard- und Software abbilden: Wo sitzt die SPS, was ist ihre Aufgabe. Wo sitzt eine Bedienstation, was ist ihre Aufgabe. Warum ist der Aufbau so gewählt. Warum ggf. eine standalone Visualisierung anstatt eines Webservers auf der SPS - so als Beispiel...

Software-Architektur: Welche einzelnen Funktionen gibt es, kann man sie in FBs/FCs kapseln? Warum? Welche Schnittstellen gibt es zwischen den Modulen?

Software-Entwurf: Aus der Architektur ein ablauffähiges Design machen... Ablaufdiagram.... Wie verschalte ich die Module?

Unit-Tests: Deine einzelnen Module aus der Architektur testen: Modul "Pneumatikzylinder" programmieren und testen.

Integrationstests: Arbeiten die Module so zusammen, wie sie sollen? Ergibt sich ein ablauffähiges Programm, das theoretisch tut, was es soll?

Systemintegration: Bis jetzt war alles Theorie... funktioniert das Programm auch mit realen Bauteilen?

Abnahme: Funktionieren alle geforderten Funktionen, ist der Kunde zufrieden?

Gruß
Hallo JSEngineering.

Danke für deine ausführliche Erklärung. Ich denke das hat mir schon mal sehr weitergeholfen. Mein Professor kommt aus der Automatisierungstechnik. Also er hat schon Ahnung bzgl. SPS, Roboter, Schnittstellen etc.

Gruß
 
Moin SPSnewbie91,

das ist schon richtig, daß viele Software = Software die SPS-Programmierung mit der Anwendungsprogrammierung über einen Kamm scheren.
Zumal in einer Uni oder FH. Welchen Schwerpunkt hat denn Dein Prof? Kommt er aus der IT oder aus der Automatisierung?
Daraufhin mußt Du Dein Konzept abstimmen, denn wohl oder übel hängst Du von seinem Wohlwollen ab. Dementsprechend mußt Du aber auch Deine Texte gestalten, denn ob jemand aus der IT überhaupt versteht, wie das in einer SPS abläuft, ist nicht sicher. Du mußt Dich also damit beschäftigen "wer ist meine Leserschaft, wo muß ich ihn/sie abholen".

Dazu gehört dann auch, daß es das V-Modell gibt, wenn aber einzelne Aspekte Deiner Meinung nach für die SPS-Programmierung nicht passen, dann muß man das so schreiben und begründen. Das Problem in einer Arbeit ist nicht, daß etwas nicht zutrifft, sondern das komplette Fehlen in der Ausarbeitung ohne Begründung. Man muß darauf eingehen, warum man etwas nicht so anwenden konnte.

Gedanken zu den einzelnen Punkten:
Systemarchitektur: Hier würde ich vermutlich eher auf den Hardware-Aufbau eingehen: Was muß wo wie warum erledigt werden?

Systementwurf: Systemarchitektur in Hard- und Software abbilden: Wo sitzt die SPS, was ist ihre Aufgabe. Wo sitzt eine Bedienstation, was ist ihre Aufgabe. Warum ist der Aufbau so gewählt. Warum ggf. eine standalone Visualisierung anstatt eines Webservers auf der SPS - so als Beispiel...

Software-Architektur: Welche einzelnen Funktionen gibt es, kann man sie in FBs/FCs kapseln? Warum? Welche Schnittstellen gibt es zwischen den Modulen?

Software-Entwurf: Aus der Architektur ein ablauffähiges Design machen... Ablaufdiagram.... Wie verschalte ich die Module?

Unit-Tests: Deine einzelnen Module aus der Architektur testen: Modul "Pneumatikzylinder" programmieren und testen.

Integrationstests: Arbeiten die Module so zusammen, wie sie sollen? Ergibt sich ein ablauffähiges Programm, das theoretisch tut, was es soll?

Systemintegration: Bis jetzt war alles Theorie... funktioniert das Programm auch mit realen Bauteilen?

Abnahme: Funktionieren alle geforderten Funktionen, ist der Kunde zufrieden?

Gruß
In meinem Fall denke ich kann ich auf die Hardware nicht eingehen. Es geht ja eigentlich um den digitalen Zwilling. Dem ist es egal welchen Umrichter ich verwende, welche CPX, welche SPS usw. Damit möchte ich rein die Funktionalität meiner Software testen.
Könnte ich zu System Architektur und Entwurf etwas anderes schreiben?
 
Ich hätte beispielsweise beschrieben, warum ich mich für die Software fe.screen-sim zur Erstellung des digitalen Zwillings entschieden habe. In wie weit die Software den Anforderungen des Kunden gerecht wird bzw. wie diese damit eingehalten werden können. Wäre das eine Möglichkeit?
 
grundsätzlich kannst Du auch bei der SPS-Softwareentwicklung nach dem V-Modell arbeiten... Bei der Safetyschulung haben die sogar explizit drauf hingewiesen:
1711620488885.png

Das Anlagensimulationsmodell, also Virtuelle Inbetriebnahme bzw. Digitaler Zwilling würd ich dann rechts bei SW-Modultest bis hin zu Intergationstest einordnen...

Im Endeffekt arbeitest Du wie immer, nur die verschiedenen Tätigkeiten ordnest Du den Feldern zu, mit Schnittstelle, Meilensteinen usw.
 
In meinem Fall denke ich kann ich auf die Hardware nicht eingehen. Es geht ja eigentlich um den digitalen Zwilling. Dem ist es egal welchen Umrichter ich verwende, welche CPX, welche SPS usw. Damit möchte ich rein die Funktionalität meiner Software testen.
Also nöö??? Warum soll es dem digitalen Zwilling egal sein, welcher Umrichter verbaut ist? U.U. muss der digitale Zwilling die Schnittstellen sowie die Funktionalitäten (Rampen, integrierte Regler etc.) des Umrichters abbilden...
 
grundsätzlich kannst Du auch bei der SPS-Softwareentwicklung nach dem V-Modell arbeiten... Bei der Safetyschulung haben die sogar explizit drauf hingewiesen:
Anhang anzeigen 76756

Das Anlagensimulationsmodell, also Virtuelle Inbetriebnahme bzw. Digitaler Zwilling würd ich dann rechts bei SW-Modultest bis hin zu Intergationstest einordnen...

Im Endeffekt arbeitest Du wie immer, nur die verschiedenen Tätigkeiten ordnest Du den Feldern zu, mit Schnittstelle, Meilensteinen usw.
Danke dafür. Hast du zu diesem Bild eine Quelle bzw. kannst du mir das pdf dazu weiterleiten? Ohne Quellenangaben kann ich das für meine Arbeit leider nicht verwenden :)
 
Also nöö??? Warum soll es dem digitalen Zwilling egal sein, welcher Umrichter verbaut ist? U.U. muss der digitale Zwilling die Schnittstellen sowie die Funktionalitäten (Rampen, integrierte Regler etc.) des Umrichters abbilden...
In der Software fe.screen-sim gibt es Bibliotheken mit Bausteinen um einen Umrichter zu simulieren. In meinem Fall einer mit 6 Prozessdatenworte. Ich kann den Baustein natürlich mit Rampen, Geschwindigkeiten etc. mit den Ausgängen meiner SPS parametrieren. Dem Baustein ist es dabei aber egal ob es ein SEW oder Danfoss Umrichter ist. Das habe ich gemeint. Ich könnte beispielsweise beschreiben warum ich mich für einen Umrichter mit 6 anstatt 3 oder 12 usw Prozessdatenworte entschieden habe. Das wäre eine Möglichkeit denke ich
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke dafür. Hast du zu diesem Bild eine Quelle bzw. kannst du mir das pdf dazu weiterleiten? Ohne Quellenangaben kann ich das für meine Arbeit leider nicht verwenden :)
Du sollst das nicht in der Arbeit verwenden. Der Screenshot ist nur zur Verdeutlichung der Thematik...
 
Selbst malen und dann erläutern. Das zeigt dann dem Prof auch, daß Du es verstanden hast.
Eine Abschlußarbeit besteht nicht aus Copy&Paste.
Ganz so einfach ist das nicht. Ich kann nicht einfach ein V-Modell "erfinden". Wie mein Prof mir gesagt hat muss ich alles mit Quellen angeben ansonsten sind es nur Behauptungen. Aber egal. Es geht sicherlich auch so.
 
Ganz so einfach ist das nicht. Ich kann nicht einfach ein V-Modell "erfinden". Wie mein Prof mir gesagt hat muss ich alles mit Quellen angeben ansonsten sind es nur Behauptungen. Aber egal. Es geht sicherlich auch so.
Du weißt, wie das V-Modell grundlegend aussieht. Was hindert dich daran, eine auf deine Situation angepasste Variante zu erstellen. Eine Abschlussarbeit erfordert auch einen gewissen Teil an mentaler Eigenleistung.
 
Ganz so einfach ist das nicht. Ich kann nicht einfach ein V-Modell "erfinden". Wie mein Prof mir gesagt hat muss ich alles mit Quellen angeben ansonsten sind es nur Behauptungen. Aber egal. Es geht sicherlich auch so.
Es geht ja nicht ums erfinden, sondern das V-Modell als solches auf deine Thesis übertragen.. natürlich darfst du die Grafik dann selbsterstellen.. solange du die Quelle zum Modell angibst, auf der deine Eigenleistung basiert.

Du brauchst halt eine wissenschaftliche Grundlage. Google Scholar und Research Gate sind auch deine Freunde.
 
Zurück
Oben