Forum: Mikrocontroller und Digitale Elektronik step 7 Programme


von Alexander B. (alexander_b86)


Lesenswert?

Moin alle miteinander

Ich hätte mal ne frage bezüglich der Programmierung von der step 7.
In der schule lernte ich das alles via schrittkette zu programmieren sei 
wegen Übersicht und so
Im Studium ist es nun mehr eine schrittkette freie Programmierung.
Daher meine Frage welches Verfahren benutzt man nun für  größere 
programme.
Ist es da dem Programmierer überlassen wie er programmiert oder gibt's 
da ein ungeschriebenes Gesetz das man sich an eine Version hallten muss.

Schon mal danke für eure antworten

von Comeback K. (fork_m)


Lesenswert?

Kommt immer drauf an was du machen möchtest. Kein Schwarz-Weiß-Denken. 
;)

von abc.def (Gast)


Lesenswert?

Kommt immer drauf an.
Mein Prof hat damals erzählt, der Ingenieur programmiert in AWL, der 
Techniker in FUP, und KOP ist so blöd, daß man es gar nicht sgen kann.
In der Praxis stand ich nachts um 3 an der Maschine, das PG 4Meter 
entfernt auf online geschaltet und ich wollte sehen, was die dig. E im 
Programm machen. AWL ist spätestens nach der 3. Klammerebene nicht mehr 
intuitiv, bei FUP kann ich das & und >= nur noch mit dem Fernglas lesen. 
Lösung war ganz einfach: KOP. Da sollte man sich von akademischen 
Zwängen befreien. Klar ist aber, daß sich bestimmte Probleme nur in AWL 
lösen lassen.
Ich habe mal eine Maschine programmiert, die ca. 50 unabhängige 
Baugruppen hatte, je 2-3 Zylinder, gleichzeitig in Betrieb. Jede bekam 
eine Schrittkette. Natürlich könnte man für jedes eine extra Task 
aufmachen; dann ist der ProgramCounter eben der Schrittzeiger. Aber 
einzelne PB in KOP, das war einfacher und auch für den Wartungstechniker 
(der für 20 unterschiedliche Maschinen zuständig ist, und beim Bau der 
Masch nicht dabei gewesen ist), verständlich.
Übrigens gibt es Schrittketten auch in 'C': Schritt-Nummer wird in einer 
Variable gespeichert, in einer case-Verzweigung werden die Schritte 
ausgewählt, und der Schritt-Übergang ist nur, die SChritt-Nummer zu 
ändern. Das ganze muß immer (_delay ist verboten, warten auf Bedingung 
ist verboten) wieder aufgerufen werden; zB im 1ms-Interrupt.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

abc.def schrieb:
> Lösung war ganz einfach: KOP.

Die noch bessere Lösung ist: SCL

> Übrigens gibt es Schrittketten auch in 'C': Schritt-Nummer wird in einer
> Variable gespeichert, in einer case-Verzweigung werden die Schritte
> ausgewählt, und der Schritt-Übergang ist nur, die SChritt-Nummer zu
> ändern. Das ganze muß immer (_delay ist verboten, warten auf Bedingung
> ist verboten) wieder aufgerufen werden; zB im 1ms-Interrupt.

Genau diese Vorgehensweise hat sich bei unseren Projekten in SCL sehr 
bewährt. Insbesondere kann man die Schrittnummer auch sehr gut in 
irgendwelchen Fehlermeldungen ausgeben und weiß sofort, an welcher 
Stelle es hakt.

Der einzige wichtige Nachteil, den ich bei SCL sehe, besteht darin, dass 
man die Persistenz von Datenbausteinen nicht dargestellt bekommt. Ist 
dieses Problem in aktuellen Versionen von STEP7 mittlerweile behoben?

von SPS Programmierer (Gast)


Lesenswert?

Andreas Schweigstill schrieb:

So in der Art mache ich das auch. Automatikprogramme mittels SCL/AWL 
erstellen, für einzelne Aggregate mittels SCL/AWL jeweils einen Baustein 
erstellen (z.B. für Pumpen, Analogwerte etc) und diese dann über KOP mit 
EAs beschalten. Wenn man die Bausteine vorher ordentlich getestet hat, 
dann sieht man damit während der IBN auch sehr schnell, welcher Eingang 
Beispielsweie noch für Pumpe X fehlt etc. Außerdem spart man sich damit 
ständiges neu programmieren von Funktionen, eine Pumpe funktioniert in 
95% der Fälle gleich  und wenn doch etwas anders ist, dann kann man den 
Baustein ja bedenkenlos erweitern. Damit muss man sich dann auch bei 
zukünftigen Projekten hauptsächlich um die Automatik kümmern, zumindest 
wenn die Projekte einigermaßen ähnlich sind.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.