Zustandsautomat- Statemachine - SPS

formatting link
formatting link
formatting link
Hallo, gibt es ein Programm, das hilft eine SPS Ablaufsteuerung zu erstellen?

Wenn ja welche nimmt Ihr? Gerne auch Freeware.

Grüße Manuela

Reply to
Manuela Abele
Loading thread data ...

Manuela Abele schrieb:

Nehme ich zwar (noch) nicht, aber nach 3min bei Tante Goo* fand ich dies:

PLCEdit

Als Einstiegsseite ist vielleicht

formatting link

gar nicht so schlecht.

--
MfG Knut
~Subject: * [NewsGroup] *
Reply to
Knut Schottstädt

Du hast ja schon ein paar Links gepostet. Was hast du für Anforderungen? Soll es auf kleinen Microcontrollern laufen? Wie leistungsfähig ist der Microcontroller? Oder soll es nur auf dem PC laufen, oder auf fertigen SPS-Geräten?

Ein Standard ist EN 61131-3, der verschiedene Programmiersprachen beschreibt. Möglich ist auch, eine Ablaufsteuerung in C zu programmieren, was den Vorteil hat, daß es C-Compiler für viele Microcontroller gibt, teilweise sogar kostenlos.

Sieht dann im Prinzip so aus:

int status = 0; while (1) { switch (status) { case 1: if (übergangsbedingung1()) { tuWas1(); status = 2; } else if (übergangsbedingungX()) { tuWasX(); status = Y; } break; case 2: if (übergangsbedingung2()) { tuWas2(); status = 3; } break; usw.

Ist beliebig erweiterbar, kann aber auch leicht unübersichtlich werden in dieser einfachen Form.

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Hallo,

Der Endkunde erwartet saubere, strukturierte Doku. CMMI Standard.

PC basierte Steuerung über I/O Karte.

ok. Wie würdest du das grafisch darstellen? Für nicht Programmierer.

Grüße Manuela

Reply to
Manuela Abele

Für diesen Personenkreis mit einem einfach hingepinselten Flussdiagramm mit Visio oder ähnlicher Software.

Ich hatte früher ein Tool verwendet,dass aus dem C-Quelltext Nassi-Shneiderman Diagramme oder Flussdiagramme erzeugt hat. Allerdings taucht dann der Originalcode immer auf, nicht so dolle wenn man das als Doku weitergibt.

73 de Tom
--
Thomas 'Tom' Malkus, DL7BJ
Locator JO43GC * DL-QRP-AG #1186 * AGCW-DL #2737 * DARC OV I19
Reply to
Thomas 'Tom' Malkus

Hallo Frank,

Frank Buss schrieb:

Genau so etwas suche ich als Programm für Unix/Linux: Ich möchte die Zustände mit den Übergangsbedingungen möglichst grafisch malen und dann das fertige C-Programm (mit den case-Anweisungen etc.) ausgeworfen haben.

Ist da jemandem etwas Passendes bekannt?

Hintergrund: ich habe viel mit Kundenwünschen zu tun, die eine kleine Mikrocontrollersteuerung (AVR, PIC, 8051 ;-) mit einfachen Anforderungen wünschen (z.B. 10 Eingangsrelais, 10 Ausgangsrelais). Da wäre es schön, wenn ich das schnell grafisch zusammenschieben könnte und dann der Code halbwegs fertig ausgespuckt würde. Von mir aus kann es auch ein textbasierendes Tool sein.

Es wird halt sonst schnell unübersichtlich, wenn die Zustände mehr werden.

Chris

Reply to
Christoph Matuschek

Manuela Abele schrieb:

!!!

!!!

Danke für den Morgenwitz!

- Henry

--
www.ehydra.dyndns.info
Reply to
Henry Kiefer

Am Fri, 17 Oct 2008 06:36:28 +0200 schrieb Manuela Abele:

LabView. Verständlicher wird es dadurch nicht.

Lutz

--
Mit unseren Sensoren ist der Administrator informiert, bevor es Probleme im 
Serverraum gibt: preiswerte Monitoring Hard- und Software-kostenloses Plugin 
auch für Nagios - Nachricht per e-mail,SMS und SNMP: http://www.messpc.de
Neu: Ethernetbox jetzt auch im 19 Zoll Gehäuse mit 12 Ports für Sensoren
Reply to
Lutz Schulze

einfachen

w=E4re

dann

Von Seiten der expliziten SPS-Hersteller sind solche Systeme vorhanden. Zum Beispiel gibt es Siemens Logo, das ich jetzt aber explizit nicht kenne, weil es mir zu klein ist. Viele m=F6chten auch eine SPS auf einem Microcontroller darstellen und sich das Drumherum selbst dazubauen, um hier flexibel zu sein. Somit ist Deine Frage nicht neu. Viele haben sich daran versucht aber ohne tats=E4chlich einen gr=F6=DFeren Erfolg verbuchen zu k=F6nnen. Ich erinnere da beispielsweise= an die C-Control von Conrad, die wohl noch zu den erfolgreichsten dieser Gattung z=E4hlt. Ein anderer Vertreter ist die k=FCrzlich verstorbene reine Software L=F6sung Parsic. Beide bieten das Funktionsplan Konzept.=20

Der Grund daf=FCr, dass dieser Erfolg trotz Nachfrage ausblieb, ist IMHO, dass sich weder diejenigen, die diese Nachfrage betreiben (auch ihr hier in diesem Thread) noch diejenigen, die sie verwirklichten, dar=FCber klar sind, dass allein die Implementierung der SPS Sprachen nicht das einzige Erfolgsgeheimnis der SPS ist. Vielmehr kann eine SPS auch in der eingebauten Anwendung getestet werden. Zum Beispiel kann sie alle Ein und Ausg=E4nge und auch jeden inneren Merker (Variable) sichtbar machen (sogenanntes In-System Debugging). Zudem ist die zugeh=F6rige PC Umgebung so einfach verstehbar, wie m=F6glich gehalten. Und am Mangel dieser M=F6glichkeiten sind bisher alle diese Projekte gescheitert. Bis heute wartet man auf ein Projekt, das in der Lage ist, dies zu tun.=20

Der Grund daf=FCr liegt wie gesagt auch darin, dass die Nachfrager vergessen, das In-System Debugging zu erw=E4hnen, wenn sie wie hier einen SPS Ersatz nachfagen. Auch habt ihr vergessen, zu erw=E4hnen, welche der SPS-Sprachen ihr verwirklicht haben wollt. IMHO inplizieren nahezu alle Nachfrager dabei den Funktionsplan und die AWL. Das sieht man daran, dass nahezu alle "professionellen" Einf=FChrungskurse (meist wegen der erforderlichen Siemens Lizenz vierstellig kostend) als auch die Berufsschulen nahezu ausschlie=DFlich diese beiden Sprachen lehren und diese auch in der Praxis eingesetzt werden. Etwas Anderes scheint einer gro=DFen Masse von Anwendern nicht vermittelbar zu sein. Da nutzt es wenig, wenn manche Wortf=FChrer innerhalb des SPS Bereiches etwas Anderes zu behaupten versuchen. Die Abstimmung erfolgt hier mit den =46=FCssen, das hei=DFt durch den Markt. =20

Es n=FCtzt halt nichts, wenn ein Ingenieur ein Programm in der h=F6heren SPS-Programmiersprache ST schreibt, aber die SPS Techniker vor Ort diese nicht verstehen, ja h=E4ufig noch nicht einmal wissen, dass diese Sprache =FCberhaupt existiert.

Daher w=FCrde ich jetzt Manuela Abele und Cristoph Matuschek fragen wollen:

1) Welche SPS Programmiersprachen nutzt ihr und kennt ihr? 2) Seht ihr Euch bei der Inbetriebnahme auch beispielsweise die Darstellungen der Ausg=E4nge und Eing=E4nge an?
Reply to
Paul Rosen

ist f=FCr jedes SPS Programm im Betriebssystem verankert

Switch Konstruktionen mit Multiplexer/Demultiplexer, der von der Switch Variable gesteuert wird.

if/else Konstuktionen mit UND/ODER Gattern oder Multiplexer/Demultiplexer UND L=F6sung:=20

Lade =FCbergangsbedingung UND KW2 =20 Lade Nicht =FCbergangsbedingung UND Y ODER =3D Status

Nat=FCrlich muss das in hier nicht dargestellte Grafik ummgestzt werden.

Wie das eingebunden wird, kommt auf den Inhalt von euWasX()an. Wir haben es eben nicht mit einer prozeduralen Sprache zu tun.

Reply to
Paul Rosen

versehentlich zu fr=FCh abgeschickt: Ist nat=FCrlich vereinfacht und gibt nicht das wieder, was die Aufgabenstellung war, soll aber das Prinzip verdeutlichen. Das Problem dabei ist, dass schon vom Ansatz bei "Teile und Herrsche" die SPS Denkweise anders vorgeht. Man muss das Ausgangsproblem kennen, um hier ad=E4quate L=F6sungen zu pr=E4sentieren.=20

Reply to
Paul Rosen

[...]

Für einfache State-Machines male ich gelegentlich Bubble-Diagramme (Zustandsgrafen). Jedem Zustand seine Blase und jedem Übergang mit Bedingung seinen Pfeil. Wenn man die Namen so wählt, dass sie im Programmcode wiederzufinden sind und der Programmcode übersichtlich dargestellt ist, wie hier im Threat schon vorgestellt wurde, dann sollte das von der geneigten Fachfrau, dem geneigten Fachmann auf der Kundenseite akzeptiert werden können.

Für die neuzeitlichen Programmierer (PC mit C++ usw.) ist wohl UML und das ganze Gerödel von Rational-Rose das zur Zeit angesagte Werkzeug. Da kann man aus einer einfachen Zustandsmaschine "Use Cases" machen und in den verschiedensten Formen (Zustandsdiagramme, Schwimmbahnen, einer Abart von Petri-Netzen, usw) darstellen. Man sagt, das soll dann auch von Schlipsträgern verstanden werden können. Wenn ich mich längere Zeit (6 Monate) nicht mehr damit beschäftigt habe, dann verstehe ich mit oder ohne Schlips nix mehr davon. Vor Allem nicht, wenn ein echter neuzeitlicher Softwerker das ganze auf die Bahn gebracht hat...

soweit Ing.olf

Reply to
Ingolf Pohl

Meiner Erfahrung nach setzt sich UML Sprache trotz Normierung auf dem Markt nicht durch, weil die Masse der SPS-Coder dies nicht versteht. Meinem Eindruck zufolge ist hier fast nur Funktionsplan und AWL angesagt. Wenn sich ein Problem mit den Mitteln dieser Sprachen nicht l=F6sen l=E4sst, kommen die SPS-Bausteine zum Einsatz. Und da sind alle Normen, die Du auf Wikipedia findest, zwar existent und implementiert, werden aber in der Praxis kaum eingesetzt, da die =C4nderungsm=F6glichkeiten mit der Zugreifbarkeit des Original-Programmierers stehen und fallen.=20

Daher gibt es auf Basis von AWL und Funktionsplan eine Quasi-Norm, die Du auf Wikipedia nicht finden wirst, weil es dort als Werbung aufgefasst w=FCrde. Diese Norm hei=DFt "Siemens", "Step5" oder "Step7" = mit den dort verf=FCgbaren Bausteinen, wie der Blick auf Stellenanzeigen und Verf=FCgbarkeit von Kursen z.B. bei den Kammern zeigt.=20

Auf eine weithin akzeptierte L=F6sung, die nicht auf "Siemens" basiert, wirst Du daher zum derzeitigen Zeitpunkt vermutlich leider verzichten m=FCssen. Wirklich SPS-ad=E4quate Freeware existiert leider derzeit auch nicht. Insbesondere keine, die auf Basis von AWL oder Funktionsplan Bausteine zur Verf=FCgung stellt, welche die oben angegebenen Probleme l=F6sen. Mehr dazu in meiner Antwort auf das erste Posting in diesem Thread von Christoph Matuschek.

Reply to
Paul Rosen

Hallo,

also ich mache/möchte es so machen. I_O Karte von

formatting link
formatting link

Danach polle ich mit VS2008, C# die Eingange ab. 10ms, brauche keine direkte Echtzeit. Evtl. Threadprobleme....

Dann möchte ich es so mache, wie Frank es zeigte. int status = 0; while (1) { switch (status) { case 1: if (übergangsbedingung1()) { tuWas1(); status = 2; } else if (übergangsbedingungX()) { tuWasX(); status = Y; } break; case 2: if (übergangsbedingung2()) { tuWas2(); status = 3; } break; usw.

Grüße Manuela

Reply to
Manuela Abele

Hallo,

;-) ok, hast ein Beispiel dazu? Wie so etwas aussieht. Link zu Rational. Ist wahrscheinlich nicht Freeware. ;-) Wenn ich mich längere Zeit (6

Gruß, Manuela

Reply to
Manuela Abele

Weder Beispiel zur Hand, noch einen Link parat. Als ich mich das letzte Mal mit UML versucht habe, gab's von Rational Rose eine Demoversion. Viele MBs und unbedingt Windows und überhaupt zum "mal eben schnell" ansehen viel zu aufgeblasen... Interssant wird das wohl wirklich für große SW-Projekte mit objektorientierter Programmierung usw. Ein einfaches Buch, welches sich der UML bedient ist "Objektorientierung in 7 Tagen", das geht wohl als Schnelleinstieg, allerdings wirklich in den OOP-Bereich.Die Darstellungsarten der UML kommen aber fast alle darin vor...

Der Wikipedia-Link wurde ja im Prinzip schon genannt, wobei ich finde, dass der es wieder nur für Leute erklärt, die es schon kennen...

formatting link

Wie gesagt, bei einfachen State-Machines einfach so'n Blasen-Bildchen, die werden einem bei VHDL-Designs ja auch immer noch angeboten...

Oder vielleicht auch SDT, das haben meine Ex-Kollegen bei Hagenuk erfolgreich eingesetzt, ist aber irgendwie nicht so allgemein verbreitet, liegt wohl an der Distributionspolitik der Erzeugerfirma. Nur die obersten vielleicht 100 bis 500 Firmen beliefern zu wollen...

user.informatik.uni-goettingen.de/~tele1/WS200203/Exercise/tut.pdf

Gruß Ing.olf

Reply to
Ingolf Pohl

Wenn du keine direkte Echtzeit brauchst, also z.B. Heizungsanlagensteuerung, im Gegensatz zu Schweissroboter, dann kann man wohl einen Windows-PC einsetzen, wenn man es nicht am Internet hat oder zumindest automatische Updates ausschaltet, damit nicht eines Tages das Haus abbrennt, weil Windows meint, gerade zu einem ungünstigen Zeitpunkt ein Reboot auslösen zu müssen. Was anderes wäre WindowsCE, was sogar echtzeitfähig ist, aber ich würde dem auch nicht unbedingt eine zeitkritische Robotersteuerung anvertrauen. Obwohl ich einen Nähmaschinenhersteller kenne, der WindowsCE auf seinen Geräten einsetzt (große Teile, mit Display usw.) und per Treiber auch zeitkritische Dinge dort steuert.

Würde ich nicht so machen :-) Wenn du schon C# nimmst, dann gibt es doch wunderbare GUI-Möglichkeiten, um das direkt grafisch einzugeben und auszuführen.

Gibt auch viel im Internet, z.B. das hier sieht zwar nicht schön, aber funktional aus:

formatting link

Habe da leider aktuell keine Zeit zu, aber sowas sollte man in einer Woche (für einen erfahrenen Programmierer) in C# programmieren können und dann statt der Simulation oder der Code-Generierung direkt die IO-Karte ansteuern.

UML halte ich nicht für geeignet für SPS. Ist recht nett, wenn man Klassendiagramme damit zeichnet, wobei man es aber meiner Meinung nach nur zur Kommunikation mit anderen Programmierern oder Dokumentation einsetzen sollte, nicht alles bis ins Detail aufmalen, da ist der Quelltext die bessere Referenz. Bei SPS wirst du Schwierigkeiten haben, die für UML definierten Elemente auf Steuerungstechnik abzubilden. Sowas wie Funktionsplan oder Ladder Logic erscheint mir sinnvoller, zumal das nicht nur den Ablauf dokumentiert, sondern sogar direkt ausführbar ist.

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Am Fri, 17 Oct 2008 06:36:28 +0200 schrieb Manuela Abele:

Da würde ich, wie oft von Joerg erwähnt, auch zu DAQ Factory raten:

formatting link

Lutz

-- Mit unseren Sensoren ist der Administrator informiert, bevor es Probleme im Serverraum gibt: preiswerte Monitoring Hard- und Software-kostenloses Plugin auch für Nagios - Nachricht per e-mail,SMS und SNMP:

formatting link
Neu: Ethernetbox jetzt auch im 19 Zoll Gehäuse mit 12 Ports für Sensoren

Reply to
Lutz Schulze

Wenn man LabJack (ein I/O USB-Interface fuer um die $100 kauft), liegt eine Mini-Version von DAQ Factory dabei. Fuer einfache Sachen reicht die.

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Hallo Frank,

naja ;-)

ok. Wann hättest denn wieder mehr Zeit?

formatting link
formatting link
formatting link

Kennt jemand kostengünstige Hardware (eine Art Experimentierkasten, Kosmos) in dem man I O 's ansteuern kann? Finde nichts brauchbares.

Einzubinden in C# mit Hilfe einer Assembly, keine DLL (C++) Hier könnte man doch dann gut die Windows Workflow Fondation anwenden.

Grüße Manuela

Reply to
Manuela Abele

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.