StateMachine entwickeln mit C#, SoftSPS, B&R oder Beckhoff
Oct 26, 2009 16 Replies
S
Sandra Bauer
Hallo, ich suche eine Software, in der ich eine StateMachine grafisch entwickeln kann.
Input Event -> Case Event AchseOnPos: Check State: Case InProgress1 Move yAchse default: nichts
Wie entwickelt Ihr das? Tools? Oder nur auf dem Papier? Excel Sheet? Gr=FC=DFe Sandra
Didn't find your answer? Ask the community — no account required.
H
Helmut Hullen
Hallo, Sandra,
Du meintest am 26.10.09:
[...]
Excel ist eine Tabellen-Kalkulation. Bei einer StateMachine ist garnichts bis fast nichts zu rechnen, zu kalkulieren.
Also ist Excel auch dafür ungeeignet.
Für den Entwurf dürften Papier und Bleistift (oder Kreide und Wandtafel) am ehesten hilfreich sein.
Und für die Entwicklung einer StateMachine dürften Programmiersprache und Zielsystem so gut wie irrelevant sein.
Viele Gruesse! Helmut
L
Leo Meyer
Wozu würde man so etwas brauchen? Antwort: Um Nicht-Programmierern die Möglichkeit zum "indirekten Programmieren" zu geben. Und das macht man normalerweise - und vernünftigerweise - nicht. Warum? Nehmen wir mal an, Deine Software generiert Dir aus der State Machine den Quellcode. Der Code wird dann sehr schwer zu lesen und zu debuggen sein, d.h. die Wartung des Projekts wird für Nicht-Programmierer unmöglich, sobald die State Machine eine gewisse Komplexität übersteigt (und das soll und wird sie irgendwann). Zudem werden die Anforderungen steigen und eine reine Generierung aus einer State Machine wird nicht mehr ausreichen. Du wirst Modifikationen machen müssen, die nur ein erfahrener Programmierer sinnvoll (wartbar) machen kann, d.h. Du solltest bei so einem Projekt von vornherein auf einen solchen zurückgreifen. Wie soetwas - spektakulär gescheitert - im Endeffekt aussieht, lässt sich an diesem Beispiel absehen:
formatting link
Na, das ist doch schon mal was.
Zum Zeichnen der State Machine nehme ich gerne Visio, obwohl es da jedes gute CAD- Programm auch tut. Das kann man dann schön präsentieren und mit Kunden diskutieren. Wenn ich für mich komplexere State Machines entwerfe oder vereinfache, reichen Papier und Bleistift. Ausprogrammieren tu ich das dann von Hand. Natürlich wäre es mit Visio möglich, die Code-Generierung zu automatisieren, mit den oben beschriebenen Folgen. Finger weg von so einer Lösung!
Falls Du es Dir dennoch antun willst, wäre "ASCET" ein geeigneter Suchbegriff. Wobei das nicht so aussieht, als ob es ohne weiteres für Nicht-Programmierer verwendbar wäre. Für eine Machbarkeitsstudie im Studium mag es vielleicht gehen.
f'up: de.sci.informatik.misc
Gruß, Leo
J
Joerg
Hier (USA) oft mit Software wie dieser:
formatting link
Ich weiss aber nicht ob es dafuer ein User Interface in Deutsch gibt. Das meiste laesst sich graphisch aus Bloecken am Bildschirm zusammenschustern. Fuer kompliziertere Routinen und Setup sind allerdings kurze "Sequences" noetig, die sehr aehnlich zur Programmiersprache C geschrieben werden.
S
Sandra Bauer
Hallo Helmut,
ja es geht halt um Dokumentation und um Qualit=E4t.
formatting link
Ich suche einfach ein Musterprojekt mit C#(NET) --- Schnittstelle --- OPC? oder andere --- SoftSPS ..........................................................................= ....verwendet fertige Herstellertreiber, wie Achse etc.
Wo finde ich so etwas?
Viele Gruesse! Sandra
J
Joerg
Oh je, hoert sich nach Schlipstraeger-ISO9000 an ... :-)
Normalerweise geht man da so vor: Sehen was fuer Interfaces angesteuert werden muessen. Dann die jeweiligen Hersteller fragen ob es dafuer wenigstens zu einem entsprechende Beispielprojekte gibt. Falls Du .NET-Aufsatz meinst, koennte es in industriellen Bereichen allerdings schlecht aussehen. Aber vielleicht ist das in Europa anders.
M
Magnus Walter
Sandra Bauer schrieb:
Ich habe das immer recht schnell in Excel gemacht, Spaltebreite auf 5mm, dann über Rahmenformatierung Aktionen und Transitionen grafisch erstellt, per Text die Logik detailliert..Verknüpfungen mittels &&, ||, ^^ und () dargestellt..Visio war ungeschickt, da nicht jeder im Projektteam die SW hatte..Damit haben wir auch recht komplexe Fertigungsanlagen und Testsysteme geplant, ich habe diese Doku. während der SW-Erstellung immer aktuell gehalten, das hat mir das Leben bei späteren Erweiterungen einfacher gemacht..
Magnus
V
Volker Birk
Da sollte ich vielleicht einhaken:
Eine Statemachine könnte man in UML2 mit BOUML zeichnen, dann nach XMI exportieren, und mit YSLT einen einfachen Compiler schreiben, der daraus bestens lesbaren Quellcode macht, und zwar in der Programmiersprache der Wahl:
formatting link
Viele Grüsse, VB.
S
Sandra Bauer
Hallo,
hast nicht mal ein Muster?
Um das geht es halt.
formatting link
Irgendwann braucht man ein fixen Job, kein Paktrikum;-) Wie machen es die Experten? Wie sieht das Zusammenspiel C# , SPS , aus. Es muss doch irgendwo Musterprojekte geben? Es muss doch irgendwo Beispiele geben.
Gerne hochladen, =FCber
formatting link
Gr=FC=DFe Sandra
S
Sebastian Löwenhag
Hi Sandra,
Sandra Bauer schrieb:
Das ist in der Tat richtig.
Das kann ich dir nicht sagen, bin kein Experte. :-)
Die Fragestellung ist eigentlich unabhängig von C#. C# suggeriert irgendwas PC oder PC ähnliches (IPC, Controller mit nem WinCE...). Die Frage ist nun, welche Schnittstellen hat die SPS und welche der PC. Hier muss eine Schnittmenge gefunden werden, die nicht null ist. Mit C# kann man eigentlich auf alles vorhandene, auf das auch Windows zugreifen kann, zugreifen. Sei es nativ über .net oder mit Treibern.
Wie ich schon in dem anderen Thread schrieb, binde ich zur Zeit eine Wago SPS mit Ethernet über Modbus/TCP an eine C# Applikation. Das dies C# ist, ist aber eher zufall, hätte auch nen C++ mit Qt für die GUI werden können.
Ich glaube dafür sind die individuellen Anforderungen der Projekte zu verschieden. Da köchelt jeder sein eigenes Süppchen, zumal die Komponenten meist auch sehr unterschiedlich sind. Ich bin ein Freund von Ethernet, aber RS485/RS232, CAN usw. habe ich auch schon alles gesehen. Aber auch dieses alles ist mit C#, C++, Java ansteuerbar.
Was die ursprüngliche Frage angeht. Wie schon meine Vorredner schrieben, ein großes Whiteboard ist Gold wert. Danach digitalisiere ich sowas gerne in MS Visio.
Gruß Sebastian
J
Joerg
formatting link
Na das steht doch in der Job Anzeige, was sie wollen: Siemens Simatic und C#. Der erste Schritt waere dann in Foren hinein, die das diskutieren. Zum Beispiel hier wo auch ein Link zu Muster-Code gebracht wird:
formatting link
Zugang zu Files bekommt man in solchen Foren meist nur nach Anmeldung. Eine hoefliche Anfrage bei Siemens waere ebenfalls sinnvoll.
Anfrage in c.a.embedded koennte auch helfen. Sind aber meist Amerikaner und daher geht das in Sachen SPS eher Richtung GE-Fanuc und Allen-Bradley. Fuer eine Web Suche: In englisch heisst das PLC fuer "Programmable Logic Controller".
W
Werner Auer
"Sandra Bauer" schrieb
formatting link
die Lernen Lernen und Lernen und alles nacheinander
Wenn man Dir nun nochmal erklären muss, das es Demos bei Beckhoff gibt, solltest Du Dich besser nicht auf diesen Job bewerben, dann wirst Du ihn nicht bringen.
W
Werner Auer
"Sandra Bauer" schrieb
formatting link
formatting link
W
Werner Auer
"Sandra Bauer" schrieb
formatting link
W
Werner Auer
"Sandra Bauer" schrieb
formatting link
M
Magnus Walter
Sandra Bauer schrieb:
formatting link
Na ja, das ist doch schon mal ein Abgrenzung. State machines oder Zustandsautomaten werden in Step7 u.a. grafisch mit S7-Graph projektiert und programmiert, guckst Du hier:
formatting link
Das hat natürlich den Charme, daß man sich die Struktur direkt im Engineeringsystem baut und damit schon Teile der SW erstellt. Das war für uns im Sondermaschinenbau, vielleicht resultierend aus unseren Graph5-Erfahrungen, nicht das Mittel der Wahl, da Kodegröße und Perfomance auf "schmalbrüstigen" Systemen schnell zu Problemen führten. Wir haben das Ganze unter Verwendung der o.g. Excel-PAP's mit AWL in Form vo standardisierten Schrittketten realisiert. Mit B&R-Systemen ging es uns da ähnlich, deren AS lief damals(2002) nicht wie erwartet, da sind wir auf C ausgewichen und haben unsere Ketten mit switch-case-Statements aufgebaut.
Muster kann ich Dir hochladen, nur ob's Dir was bringt...
Magnus
S
Sandra Bauer
Hallo,
kannst ja eins mal machen, um ein Gesp=FCr zu bekommen.
Gibt es eine Art 'Vorgehensweise' bzgl. Analyse. Wie macht Ihr das, auch =FCber StateMachine. Maschinenprogrammierung 2 Achs oder 3 Achssysteme etc.
Gr=FC=DFe Sandra
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.