FSM "best practice"

littleTree

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

ich bin neu in diesem Forum und was Automatisierung/Finite State Machines angeht noch recht unerfahren. Vor Kurzem habe ich mit meiner Masterarbeit angefangen, in welcher eine der Hauptaufgaben darin besteht die State Machine für einen neuen Prüfstand zu erstellen. Dabei geht es nicht darum die State Machine "auf" der SPS zu programmieren, sondern in erster Linie einfach nur darum das ganze Konstrukt graphisch in Form eines State Charts zu erstellen. Nachdem ich zu Beginn noch nie den Begriff FSM gehört hatte, habe ich mich erstmal durch etwas theoretisch Literatur und diverse Foren/Videos gekämpft, um mir die Materie näher zu bringen.
Meine erste Erkenntnis war dann, dass ich irgendeine Software brauche, welche mir eine möglichst einfach graphische Darstellung/die Erzeugung von Zustandsdiagrammen ermöglicht. Dafür gibt es ja eine breite Auswahl an Produkten, wobei ich mich letztlich für MatLab/Simulink entschieden habe, wo man in der Simulink Umgebung sehr angenehm graphisch eine FSM erstellen kann. Vielleicht noch als Hintergrund zur Wahl von Simulink, hier an der Uni haben wir automatisch die Lizenzen dafür (also kostenfrei) und die Umgebung ist mir aufgrund vom Studium schon etwas vertraut. Das ist wiederum ganz hilfreich, da ich hier am Lehrstuhl mit dieser Abschlussarbeit eher Pionierarbeit betreibe und somit bei einer anderen Software auch niemanden hätte, wo ich bei allgemeine Fragen mal nachhaken könnte.
An der Stelle wäre es wohl noch sinnvoll zu erwähnen, dass ich Chemie- und Bioingenieurwesen (also quasi Verfahrenstechnik) studiere. Somit ist es das erste Mal, dass ich mich mit FSM's beschäftige, aber ich besitze "zumindest" das logische/konzeptionelle Wissen wie der Prüfstand aufgebaut werden muss bzw. wie dessen Abläufe aussehen, also welche Zustände für diesen relevant sind. Ich habe auch vor meiner MA an einem zugekauften ähnlichen Prüfstand gearbeitet und somit von der Materie die beschrieben werden soll ein gutes Verständnis.

So viel zum Hintergrund meines Posts.

Auch wenn ich mittlerweile einen gewisse Vorstellung wie ich vorzugehen habe und auch schon ein paar Basic Sachen gelernt habe, in den Simulink Schulungen zu State Charts, so möchte ich mich nicht einfach in die Arbeit stürzen bevor ich nicht einen ganz klaren Plan/eine vernünftige Struktur für das gesamte Projekt besitze. Und an dieser Stelle kommt hier das Forum ins Spiel. Mir ist aus meiner Arbeit mit Programmiersprachen (VBA, Python) bekannt, dass es gewisse "best practices" gibt, welche das Leben ungemein erleichtern. Und vor allem im vorangeschrittenen Projekten wird damit das Debuggen und die Übersichtlichkeit sehr positiv beeinflusst. Gibt es für das Erstellen von FSM's auch entsprechende best practices/Styleguides oder ähnliches, die man als Anfänger befolgen sollte?

P.S. Meine Aufgabe besteht zwar grundlegend in der Erstellung von State Charts einer FSM, aber diese Charts können mit dem PLC-Coder Tool von Simulink in Code umgewandelt werden (ein weiterer Grund warum ich Simulink nutze/nutzen möchte).
Literatur ist für Abschlussarbeiten auch immer von großer Bedeutung, allerdings hört diese bei den theoretischen Überlegungen auf. Und die eigentliche Erstellung/Umsetzung die in der Industrie auch praktiziert wird gibt es klassischerweise nicht als Paper oder Buch, falls ihr dort Werke oder gute Quellen kennt würde ich mich natürlich freuen. (Bisher habe ich in meinen Arbeiten die besten Inputs aus Onlineforen bezogen, bei allem was mit Programmieren zu tun hatte, aber die eignen sich halt leider oft nicht so gut zum Zitieren ;) )

Ich bin für jeglichen Input dankbar!

euer littleTree :)
 
Mahltzeit,

beim lesen deines Posts musste ich (laut meinem Schreibtischnachbarn) irgendwann ein bisschen arg mitleidig gegrinst haben.
Die meisten meiner Kollegen würden dich bei deiner Fragestellung vermutlich erst einmal angucken wie ein Auto, um kurz danach Fackeln & Mistgabeln auszupacken.
Ich kenne da so ein paar Kandidaten für die symbolische Deklarationen & alles außerhalb von AWL (eine unheilige Mischung aus Siemens-Style & Assembler-Syntax) Teufelswerk ist.
Kurz: FSM oder gar State Charts zur Dokumentation dieser sind, entsprechend meiner Erfahrung, in der freien SPSler-Wildbahn eher...selten.
Die Doku oder Planung verdient schließlich kein Geld ¯\(°_o)/¯

Ich hab schon mal bei einem Arbeitgeber mit "Enterprise Architect" gearbeitet.
Ist eine UML-Software zum Entwurf von Software. Wie die Überschneidungen zwischen UML-Software und Simulink aussehen, kann ich dir leider nicht sagen.
Ich hab dazu hier auch noch ein Fachbuch rumfahren "SCL und OOP mit dem TIA-Portal" ISBN 978-3-8007-4432-9.
Das Buch betrifft deine Fragestellung zwar nur am Rande, liefert aber zumindest einige interessante Ideen zum Erstellen eines Schlachtplans.
Viele klassische Konzepte der (PC-)Softwareentwicklung lassen sich in einer SPS leider nicht so einfach umsetzen, da SPSen sprachlich sehr viel statischer sind als alles was du aus dem Hochsprachen-Bereich gewohnt sein dürftest.

Für kleinere Dokumentationen benutze ich "yEd".
Das ist ein kostenloses Programm zum Erstellen von Flussdiagrammen.
Ist allerdings nur für bunte Kästchen & Pfeile mit etwas Text zu gebrauchen, dafür sehr unkompliziert im Einsatz.

Das was am ehesten sprachlich in einer SPS an FSM ran kommt wäre SFC bzw. Graph.
In diesem Fall wäre dein Code auch gleich dein State Chart.

Aus dem Siemens-Bereich gäbe es für "Best Practices" z.B. den Siemens Style Guide.
https://support.industry.siemens.co...s7-1500-und-wincc-(tia-portal)?dti=0&lc=de-DE
Hier geht es aber sehr stark um die (Style-)Details der Umsetzung, weniger um Konzepte zum Aufbau der Gesammtstruktur.
Die meisten Siemens-basierten Firmen verwenden diesen Style oder eine Abwandlung davon.
Oder halt "Narrenfreiheit für die Narren", hauptsache am Ende wird die Rechnung bezahlt.
1698756882255.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
eine der Hauptaufgaben darin besteht die State Machine für einen neuen Prüfstand zu erstellen. Dabei geht es nicht darum die State Machine "auf" der SPS zu programmieren, sondern in erster Linie einfach nur darum das ganze Konstrukt graphisch in Form eines State Charts zu erstellen.

Also willst Du die Verfahrenstechnischen Abläufe erfinden?

Grundsätzlich ist Simulink da ja nicht verkehrt. Damit kannst Du die Schritte malen. Wenn Du noch nen einfaches Prozessmodel dranbaust auch testen/simulieren. Und am Ende über nen Targetlink auch auf ner ordentlichen Steuerungshardware laufen lassen und an die Hardware anbinden...

https://www.sps-forum.de/threads/programmablaufplan-oder-ähnliches.69443/

https://www.sps-forum.de/threads/schrittkette-zeichnen.10345/
 
Jetzt musste ich schmunzeln, @Botimperator! :D Vielleicht habe ich etwas Information vergessen...
Ich mach das mal in Bulletpoints, dann ist es vielleicht übersichtlicher:
  • Aufgabe State Machine
  • Herausforderung besteht im schlauem Konzept der Zustände
  • Prüfstandsplanung und Bau sind auch Teil meiner Arbeit
  • Habe also quasi eine kleine Sandbox
  • Theoretisch könnte man auch direkt eine Statemachine erstellen, aber das könnte evtl. den zeitlichen Rahmen sprengen mit den anderen Aufgaben
  • Und ohne ein Statecharttool ist es unmöglich den Prüfstand darzustellen (ich sage nur Komplexität und Änderungen im laufenden Projekt)
Damit ist jetzt erst nochmal das Grundlegende abgedeckt. Eigentlich wollten meine Betreuer erst einfach "nur eine State Machine bitte", dass ich die aber nicht einfach auf ein Blockblatt zeichnen kann oder mir so mal eben erstelle ohne sie quasi gleich zu Programmieren ist ihnen nicht in den Sinn gekommen. Daher war auch Simulink dann ein guter Kompromiss, da ich da ein 1 A graphisches Tool habe, wo dann am Ende nicht der nächste arme Studi sich ransetzen muss und das in Code übersetzt, sondern man das automatisch machen lassen kann.
Hoffe das geschriebene ergibt irgendwie Sinn?
Sonst vielen Dank schon mal, die Antwort hat mir auf jeden Fall weitergeholfen. Und das es in der Industrie anders läuft ist mir absolut klar, komme erst frisch aus einem 6 monatigen Praktikum bei einem globalen Chemieindustrie Konzern, wo ich mein eigenes Kundenprojekt mit Simulation hatte und da ist es halt sch*** egal, was du machst, Hauptsache der Kunde bekommt seine Ergebnisse. Großer Unterschied hier war aber, dass ich zumindest einen Kollegen hatte der mit der gleichen Software gearbeitet haben und man so zumindest wusste in welche Richtung man sich grob begeben muss.
An der Uni läuft alles leider bisschen anders und gerade so Sachen wie Software und Lizenzen wird hier nicht einheitlich gehandhabt und unterscheidet sich von Arbeitsgruppe zu Arbeitsgruppe.
Das Buch werde ich mir mal anschauen, generell hilft es mir gerade enorm mich in die gesamte Thematik einzuarbeiten und auch so
gesehen "unnützes" Wissen mir anzueignen, welches mir aber mehr Verständnis ermöglicht.
Und ja die Hochsprachen die ich bisher verwendet haben sind doch nochmal ganz anders, finde es aber trotzdem sehr spannend und wertvoll zum Schluss meines Studiums mich damit zu beschäftigen und meinen Horizont noch etwas zu erweitern ;)

Also willst Du die Verfahrenstechnischen Abläufe erfinden?
Sozusagen, die Schwierigkeit besteht jetzt auch erstmal darin, dass der Prüfstand doch relativ komplex ist und ich mir eben erstmal sehr genau überlegen muss, wie/was/wann/wo passiert bzw. passieren soll. Und es eben auch was Sicherheit im Betrieb angeht ein paar Herausforderungen gibt.
Du hast noch einen super wichtigen Punkt angesprochen @ducati, die Möglichkeit das Modell in Simulink zu testen. Darin sehe ich persönlich sogar den größten Vorteil in den mir zur Verfügung stehenden Optionen. Zusätzlich gibt es auch noch eine klasse Dokumentation für alle Simulink Themen, an der Stelle muss ich die Jungs und Mädels von MatLab echt mal loben!
 
Da gabs letztens schon ne Diskussion hier, ob es sinnvoll ist, die Sicherheitsfuntkionen nen Studenten auslegen zu lassen... Stichwort "hinreichend qualifizierte Person"...
Absolut berechtigte Aussage, habe mich da wohl auch etwas unglücklich ausgedrückt. Ich bin hier nicht alleinverantwortlich für das Thema Sicherheit. Bin Teil einer Arbeitsgruppe die den Prüfstand baut, ist also kein 1 Mann Job. In puncto Sicherheit geht es darum zum Beispiel intelligente Abgasabsaugungs-/Abgasführungskonzepte zu entwerfen, die dann im Team besprochen werden. Heißt wenn ich mit guten Ideen ankomme werden die auch umgesetzt, sonst eben die von Anderen aus dem Team.
Kurz um, ich würde mich auch nicht wohl fühlen alleinverantwortlich dieses Thema zu behandeln (wobei das Meiste eh schon steht, und nur noch ein paar kleine "Add-Ons" fehlen).

Edit:
Das hätte ich jetzt fast vergessen. Die von dir @ducati verlinkten Threads waren sehr hilfreich! Vielen Dank nochmal :)
 
Zuletzt bearbeitet:
Zurück
Oben