Schrittkettenprogrammierung

michaelg

Level-1
Beiträge
19
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo alle zusammen!
Bin seit geraumer Zeit begeisterter Leser dieses Forum und mein Respekt an die jenigen die dieses Thema so gut beherrschen, im Gegensatz zu mir.

Ich beschäftige mich nur in meiner Freizeit mit der SPS und besitze auch keine Hardware sondern nur Software.
Ich lese sehr viel zu dem Thema und erhoffe mir dadurch die Grundzüge der SPS zu verstehen.

Jetzt bin ich bei einem Punkt angekommen wo ich nicht mehr weiter komme.

Wie zerlegt man eine Schrittkettensteuerung in die einzelnen Schritte???

Gibt es ein "Standard"? Wie man es machen muß?

Ich finde einfach nie den richtigen Anfang.

Bin über jeden "Gedankenanstoß" dankbar.

mfg
Michael

P.S.: Gruß an vl. Bin über deine Beiträge begeistert.
 
eine möglichkeit eine schrittkette aufzubauen, ist die sprungleiste ... viele finden sie nicht schön, ich find sie praktikabel

Code:
*
      L     #iSchrittZaehler
      SPL   err                         //Sprungziel, wenn #iSchrittZaehler > 4 ist
      SPA   st0                         //Sprungziel, wenn #iSchrittZaehler = 0 ist
      SPA   st1                         //Sprungziel, wenn #iSchrittZaehler = 1 ist
      SPA   st2                         //Sprungziel, wenn #iSchrittZaehler = 2 ist
      SPA   st3                         //Sprungziel, wenn #iSchrittZaehler = 3 ist
      SPA   st4                         //Sprungziel, wenn #iSchrittZaehler = 4 ist

err:  SPA   end

st0:  //zulässige operationen
      *
      SPA   end

st1:  //zulässige operationen
      *
      SPA   end

st2:  //zulässige operationen
      *
      SPA   end

st3:  //zulässige operationen
      *
      SPA   end

st4:  //zulässige operationen
      *
      SPA   end

end:  //fehlerbehandlung wenn notwendig
in den einzelnen sprungzielen kannst du dann die schrittaktionen ausformulieren oder bausteinaufrufe anlegen, je nachdem wie umfangreich deine schrittkette ist. wenn die bedingung zum weiterschalten erfüllt ist den schrittzähler um eins erhöhen und schon wird der nächste schritt abgearbeitet ...

es gibt auch schrittketten konstrukte, die vor der implementierung der schrittaktionen den schrittzähler vergleichen ...

aber ich bin der meinung, im forum gibt es zum suchbegriff schrittkette sehr viel zu lesen ... trag doch mal deine fragen zusammen ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Methode, die ich immer meide ! :ROFLMAO:

:-?*schäm*:oops:

Ich kenne es gar nicht anders... Die von 4l oben sieht interessant aus.

Ich habe irgendwo noch ein Schulprojekt rumliegen. Falls Interesse besteht, kann ich ja mal gucken, wo es geblieben ist und das Ding hochladen.
Dann hat man was zum Nachmachen. Ist nix dolles (alles mit SR), aber zum üben reicht es vielleicht.


Gruß,

dia
 
Ich möchte jetzt allerdings nicht darüber urteilen ob es auch die beste Methode ist.

auf jeden fall ist es die speicherintensivste. kann ich mit der SPL 255 schritte mit einem word abdecken, brauch ich für die selbe schrittanzahl beim S/R 32 worte :rolleyes:

dazu kommt, dass der eindeutige schrittzähler schneller und einfacher interpretiert werden kann, auch von nicht so fähigen programmierern ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
auf jeden fall ist es die speicherintensivste. kann ich mit der SPL 255 schritte mit einem word abdecken, brauch ich für die selbe schrittanzahl beim S/R 32 worte :rolleyes: ...
Auf jeden Fall ein Argument, dass für die von dir vorgestellte Methode mit den Sprüngen spricht.

dazu kommt, dass der eindeutige schrittzähler schneller und einfacher interpretiert werden kann, auch von nicht so fähigen programmierern ...
Das mit der Interpretation hängt wohl davon ab, was der "Programmierer" in seiner Ausbildung vermittelt bekommen hat. Bei mir Persönlich wurde die Schrittkettenprogrammierung mit SR Gliedern unterrichtet. In der gewerblichen Ausbildung und in der Technikerschule.
Eigentlich sollten aber beide Methoden von jemandem der in unserem Bereich arbeitet ohne größere Probleme Interprtierbar sein.
 
Ich habe mal in meinem Archiv (unsortierter Papierstapel) gewühlt und 2 Aufgaben gefunden, die geradezu nach einer Schrittkette schreien.

Das eine hieß "Die Bohrmaschine" und das andere "Handhabungsgerät"

Ich würde Aufgabenstellung und Funktionsplan/-diagramm rausrücken.
Nur die Lösung bleibt hier... Vielleicht wäre das was für den Lehrgangsthread?

Wenn es jemand haben möchte, scanne ich das ein und stelle es ins Forum.
---------------------------------------------------------------------------------
Nachtrag: Bohrmaschine ist drin

http://www.sps-forum.de/showpost.php?p=165935&postcount=242

Handhabungsgerät:

http://www.sps-forum.de/showpost.php?p=166101&postcount=243




Gruß,

dia
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey, das wäre günstig. Ich bin ohnehin gerade dabei Ausbildungsunterlagen für unsere Azubis zu erstellen und das wäre vielleicht mal was, das noch nicht 10 Mal in der Berufsschule durchgenommen würde.
 
Hey, das wäre günstig. Ich bin ohnehin gerade dabei Ausbildungsunterlagen für unsere Azubis zu erstellen und das wäre vielleicht mal was, das noch nicht 10 Mal in der Berufsschule durchgenommen würde.


Da würde ich lieber nicht drauf wetten... Wenn ich das richtig mitbekommen habe, stecken die Lehrer/Ausbilder sich diese Art von Aufgaben irgendwie gegenseitig zu (das spart 'ne Menge an Vorbereitung)... Hier im Forum sind schon mindestens zwei Leute, die aus einer ganz anderen Ecke kommen und die gleichen Aufgaben hatten.
Aber Du kannst ja Deine Aufgaben auch gerne hier zur Verfügung stellen!
Ich persönlich finde es besser, wenn man ein Projekt hat, an dem man arbeiten kann, als irgendwelche Dinge aus Handbüchern abzuarbeiten...

Gruß,
dia
 
Ich persönlich finde es auch besser wenn die Azubis konkrete Projekte lösen müssen. Leider sind unsere Projekte ziehmlich aufwendig und nicht so gut geeignet um Grundlagen bei der Programmierung zu vermitteln.

Die Sachen, die ich bereits habe, kann ich Anfang nächster Woche mal reinstellen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn die Berufschullehrer sich die Projekte gegenseitig zustecken, warum machen wir das dann eigentlich nicht auch so?
Ich bin auch gerade dabei, ein Projekt für unsere Azubis zusammenzustellen.
Warum wird das Rad immer wieder neu erfunden...?


Zum Thema Schrittketten mit RS Gliedern:
Wenn überhaupt, sollte man das aber mit Setz- und Rücksetzanweisungen machen!


Wenn ich so was sehe wie:
(Ich schreib das mal ganz vereinfacht in AWL, meine aber eine FUP Programmierung mit RS Gliedern)

...
U Schritt2
R Schritt 1

U Schritt 1
U Bedingung
S Schritt 2
U Schritt 3
R Schritt 2
...

dann sträuben sich mir die Haare! :sm14:
In einer Schrittkette ist EIN (in Worten EIN) Schritt gleichzeitig aktiv
(Parallelverzweigungen ausgenommen).
Bei der Programmierung mit RS-Gliedern wie hier angedeutet sind für einen Zyklus lang 2 Schritte aktiv! Iiiiiih! :sm11:
 
eine möglichkeit eine schrittkette aufzubauen, ist die sprungleiste ... viele finden sie nicht schön, ich find sie praktikabel

Code:
*
      L     #iSchrittZaehler
      SPL   err                         //Sprungziel, wenn #iSchrittZaehler > 4 ist
      SPA   st0                         //Sprungziel, wenn #iSchrittZaehler = 0 ist
      SPA   st1                         //Sprungziel, wenn #iSchrittZaehler = 1 ist
      SPA   st2                         //Sprungziel, wenn #iSchrittZaehler = 2 ist
      SPA   st3                         //Sprungziel, wenn #iSchrittZaehler = 3 ist
      SPA   st4                         //Sprungziel, wenn #iSchrittZaehler = 4 ist

err:  SPA   end

st0:  //zulässige operationen
      *
      SPA   end

st1:  //zulässige operationen
      *
      SPA   end

st2:  //zulässige operationen
      *
      SPA   end

st3:  //zulässige operationen
      *
      SPA   end

st4:  //zulässige operationen
      *
      SPA   end

end:  //fehlerbehandlung wenn notwendig
in den einzelnen sprungzielen kannst du dann die schrittaktionen ausformulieren oder bausteinaufrufe anlegen, je nachdem wie umfangreich deine schrittkette ist. wenn die bedingung zum weiterschalten erfüllt ist den schrittzähler um eins erhöhen und schon wird der nächste schritt abgearbeitet ...

es gibt auch schrittketten konstrukte, die vor der implementierung der schrittaktionen den schrittzähler vergleichen ...

aber ich bin der meinung, im forum gibt es zum suchbegriff schrittkette sehr viel zu lesen ... trag doch mal deine fragen zusammen ...

Da muss aber in den jeweiligen Schritten noch gesprungen werden, wenn die Bedingung noch nicht erfüllt ist, oder???

könnte so aussehen, oder?

UN #Sprungbedingung
SPB end
U #Sprungbedingung
L #iSchrittZaehler
L 1
+ I
T #iSchrittZaehler

Und am Ende müsste noch das stehen, oder?

end: nop 0

Bitte bestätigen oder korrigieren.
LG,
Robert
 
Ähm fast...
Code:
      L     #iSchrittZaehler

      SPL   err                         //Sprungziel, wenn #iSchrittZaehler > 4 ist
      SPA   st0                         //Sprungziel, wenn #iSchrittZaehler = 0 ist
      SPA   st1                         //Sprungziel, wenn #iSchrittZaehler = 1 ist
      SPA   st2                         //Sprungziel, wenn #iSchrittZaehler = 2 ist
      SPA   st3                         //Sprungziel, wenn #iSchrittZaehler = 3 ist
      SPA   st4                         //Sprungziel, wenn #iSchrittZaehler = 4 ist

err:  SPA   end

st0:  U #Sprungbedingung
      SPBN  end
      // was man halt in dem Sprung machen will, wenn Bedingung erfüllt
      L     #iSchrittZaehler
      INC   1
      T     #iSchrittZaehler
      SPA   end

st1:  //zulässige operationen
      *
      SPA   end

st2:  //zulässige operationen
      *
      SPA   end

st3:  //zulässige operationen
      *
      SPA   end

st4:  //zulässige operationen
      *
      SPA   end

end:  //fehlerbehandlung wenn notwendig

Nimm lieber SPBN, denn du willst ja in dem Schritt "hängen bleiben" bis eben deine Vorgabe für diesen Schritt erfüllt ist.
Erst wenn deine Vorgabe erfüllt ist, wird nicht zum Ende gesprungen, sondern der Schritt abgearbeitet und der Schrittzähler
um 1 erhöht, damit beim nächsten Programmdurchlauf mit dem nächsten Schritt weiter gemacht wird :)

MfG Fabsi
 
Zurück
Oben