Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: Encoder gesteuerter Ablauf

  1. #1
    Registriert seit
    28.02.2018
    Beiträge
    10
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Miteinander,

    ich kämpfe aktuell mit einem Problem, das um Ehrlich zu sein ein bisschen meine Fähigkeiten übersteigt.

    Ich habe eine Anlage bestehend aus einem Förderband und mehreren Bearbeitungsstationen (mehrere Bearbeitungsschritte).
    Bisher war das ganze einfach per S7-1200 zeitgesteuert.
    Also Band läuft an, nach 1s aktiviere Station 1 (Aufsprühen) nach 4s aktiviere Station 2 (Bürste), nach 5s deaktiviere Station 1, nach 8s aktiviere Station 3 (Absaugung) etc.
    Hat mit allen Nachteilen einer zeitlichen Steuerung auch soweit sehr gut funktioniert.

    Jetzt haben wir allerdings den Motor ausgetauscht. Der neue Motor hat einen Encoder, und den würde ich gerne nutzen, um die Genauigkeit des Ablaufs zu erhöhen.
    Neues Programm soll also beispielhaft sein:
    - Nach 285 steps (=100mm) aktiviere Station 1
    - Nach 1000 Steps (=350mm) aktiviere Station 2
    etc.


    Bisher habe ich geschafft den Encoder mit der SPS (S7-1200) zu verbinden.
    Über den Highspeed Counter HSC_1 bekomme ich eine Verbindung zum Encoder und speichere mir die Encoder-Schritte in eine Variable: Encoder - DINT - %ID1000
    Soweit ist es getestet und funktioniert.


    Woran ich jetzt aber verzweifle ist eben genau diese Abfrage bzw. der Vergleich zwischen "aktuellen Encoder Steps" und "Encoder Steps wo geschalten werden soll".
    Das habe ich ehrlich gesagt noch nie gemacht.
    Um das Ganze in das restliche Programm schön einzugliedern würde ich gerne im KOP arbeiten / bleiben.
    Sind hier die "Vergleicher" Bausteine sinnvoll? Oder gibt es da eine bessere, elegantere oder einfachere Lösung?


    Ich bin leicht verzweifelt und bitte daher um eure Hilfe!

    Liebe Grüße,
    Georg
    Zitieren Zitieren Encoder gesteuerter Ablauf  

  2. #2
    Registriert seit
    03.12.2008
    Beiträge
    783
    Danke
    185
    Erhielt 214 Danke für 131 Beiträge

    Standard

    Hallo
    Zunächst einmal wäre es wichtig, dass du den Encoder Zählwert nach jedem Bearbeitungszyklus wieder "Nullen" kannst.
    Dann sollte das Vergleichen des Istwertes mit einem vorgegebenen Sollwert eigentlich kein Problem sein.

    Wenn du den Istwert nicht nullen kannst wird es etwas aufwändiger weil du ja dann immer die Differenz ermitteln musst.
    Außerdem hast du dann das Problem, dass es irgendwann einen Zahlenüberlauf gibt und der Zählwert von "ganz groß" auf "Null" springt.
    Das würde natürlich auch einiges durcheinander bringen.

    Die Vergleicherbefehle (CMP >=I, CMP <=I, CMP >=D, CMP <=D) sind dir vertraut?

  3. #3
    gepet ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.02.2018
    Beiträge
    10
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Paul,

    danke für deine Antwort!
    Ich habe mich jetzt mal an den Vergleicher-Blöcken versucht. Mit "CMP >=" funktioniert es soweit ganz gut. Was meinst du mit "CMP >= I" bzw. "CMP >= D"? Integer?


    Das mit dem Nullen meines Encoder-Zählwerts ist ein guter Punkt, den wollte ich aufgreifen sobald die Vergleicher gelöst sind.
    Zum Testen Starte ich die CPU neu, damit der Speicher gelöscht wird. Ist aber auch keine Dauerlösung.
    Hast jemand eine Idee dazu, wie ich das zurücksetzen am besten lösen kann?

  4. #4
    Registriert seit
    03.12.2008
    Beiträge
    783
    Danke
    185
    Erhielt 214 Danke für 131 Beiträge

    Standard

    Hallo
    Bei CMP ==I steht I für Integer
    Bei CMP ==D steht D für Doppelinteger (ist das was du brauchst weil du ja oben geschrieben hast der Wert liegt als DINT vor)

    Zum Nullen:
    Hast du schon mal versucht einfach über eine Beobachtungstabelle den Wert auf "0" zu steuern?
    Benutzt du für die schnellen Zähleigänge irgendwelche "Systembausteine" oder Ähnliches?
    Wenn "Ja" haben diese evtl. sogar einen Eingang fürs nullen.
    Habe leider nur selten mit der 1200er zu tun.....

  5. #5
    gepet ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.02.2018
    Beiträge
    10
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich verwende aktuell keine Systembausteine für den HSC sondern schreibe direkt in die Adresse ID1000.

    Wäre es möglich, mit z.B. dem "MOVE" Block dein Wert von ID1000 einfach mit 0 zu überschreiben?
    Also quasi beim IN eine 0 angeben und beim OUT1 dann die ID1000?
    Hab leider noch nie mit Move-Blöcken gearbeitet bisher.

  6. #6
    Registriert seit
    03.12.2008
    Beiträge
    783
    Danke
    185
    Erhielt 214 Danke für 131 Beiträge

    Standard

    Wie ist der Encoder denn angeschlossen?
    Ich vernute mal, dass es einfach 2 "Spuren" sind die auf 2 schnelle Eingange gehen.
    Oder ist der über Profinet / Profibus angeschlossen?
    Das ID (Eingangsdoppelwort?) macht mich etwas stutzig.

    Ich kenne das so (allerdings S7 313C ):
    2 Eingänge werden in der Hardware-Config als schnelle Zähler deklariert und mit 2 Drähten angeschlossen.
    Dann gibt es einen SFB47. Der wertet die Eingänge aus und schreibt den Zählwert in einen Datenbaustein.


    Probier doch einfach mal aus was passiert wenn du in einer Beobachtungstabelle das ID1000 anschaust
    und dann auf "0" steuerst.
    Bleibt die "0" drin stehen?
    oder
    bleibt der alte Wert drin?

    Und "Ja" der MOVE Befehl wäre dafür geeignet.

  7. #7
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.657
    Danke
    589
    Erhielt 2.804 Danke für 2.032 Beiträge

    Standard

    Da der HighSpeedCounter genutzt wird, kann man in der Doku zur 1200-er ganz sicher auch finden, wie dieser zurückgesetzt werden kann.
    Das würde ich auf jeden Fall machen, bei Start des Ablaufs, Counter auf Null, Startvariablen und Verriegelungsvariablen der Stationen auf False.
    Dann mit Vergleichern für jede Station Istwert und Sollwert auf > vergleichen und bei Überschreiten des eingestellten Wertes eine Startvariable für die jeweilige Station Triggern.
    Nach beeenden der Arbeit der Station eine Fertigvariable-Setzen, die verhinder, dass die Station ein zweites Mal arbeitet. (Verrgiegelung mit der Startvariable)

    Wenn man es schick machen will, kann man die Counterausgabe vor Nutzung auch noch in mm oer zentel mm umrechnen, so dass man es einfacher hat, Änderungen der Startpositionen einzugeben.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  8. #8
    gepet ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.02.2018
    Beiträge
    10
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Miteinander,

    Danke noch einmal für eure Antworten!

    Ich kenne das so (allerdings S7 313C ):
    2 Eingänge werden in der Hardware-Config als schnelle Zähler deklariert und mit 2 Drähten angeschlossen.
    Dann gibt es einen SFB47. Der wertet die Eingänge aus und schreibt den Zählwert in einen Datenbaustein.
    Also ich habe ebenfalls 2 Eingänge I0.0 und I0.1 als schnelle Zähler deklariert und den Encoder dort angeschlossen.
    Dann bei "E/A-Adressen" als "Anfangsadresse" 1000 gewählt.
    Dann habe ich in der PLC-Variablentabelle eine DInt Variable angelegt (Encoder benannt) und die Adresse auf %ID1000 gesetzt. Und diese Variable zählt hoch bzw. runter mit jedem Step den der Encoder macht.
    Im Prinzip diesem Video folgend: https://www.youtube.com/watch?v=azTtnc1BsxM



    Ich bin mittlerweile auch mit dem Programm weiter gekommen. Das Vergleichen und schalten funktioniert wie gewünscht, nur das Resetten macht weiterhin Schwierigkeiten.
    Versucht habe ich einen MOVE-Baustein, mit IN = 0 und OUT = Encoder. Der setzt die Encoder-Variable auch auf 0, aber nur solange wie der MOVE-Baustein geschalten ist. Sobald der nicht mehr geschalten ist hat die Encoder-Variable wieder den ursprünglichen Wert.
    Dabei war mir leider auch die 1200er Doku bisher keine Hilfe.

    Hier wäre ich über Tipps noch sehr dankbar!!

  9. #9
    Registriert seit
    19.07.2013
    Beiträge
    32
    Danke
    1
    Erhielt 4 Danke für 3 Beiträge

    Standard

    Ich hatte mit der 1200'er noch nicht zu tun, aber wenn ich das von dir verlinkte Video ansehe ist bei 2:09 zu sehen wo du den Reset aktivieren kannst. Und wenn du das da aktiviert hast kannst du in dem Fenster das bei 2:15 zu sehen ist wahrscheinlich einen Merker an den Reset-Input schreiben und damit deinen Zähler Rücksetzen.

  10. #10
    gepet ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.02.2018
    Beiträge
    10
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich hatte mit der 1200'er noch nicht zu tun, aber wenn ich das von dir verlinkte Video ansehe ist bei 2:09 zu sehen wo du den Reset aktivieren kannst. Und wenn du das da aktiviert hast kannst du in dem Fenster das bei 2:15 zu sehen ist wahrscheinlich einen Merker an den Reset-Input schreiben und damit deinen Zähler Rücksetzen.
    Hi,
    Das ist dir ganz richtig aufgefallen. Problem an der Sache ist nur, dass in dem Video offensichtlich eine andere Firmware (4.1 oder niedriger) verwendet wird, und ich die V4.2 in meiner SPS habe. Da schaut das leider ganz anders aus und diese "simple" Reset-Einstellung kann ich nirgends mehr finden...

Ähnliche Themen

  1. Ablauf Roboterzelle ??
    Von CNC840D im Forum Programmierstrategien
    Antworten: 4
    Letzter Beitrag: 17.01.2013, 09:51
  2. Programmaufbau, -ablauf
    Von Stoif im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 27.05.2009, 21:47
  3. Zeitlicher Ablauf in ST
    Von Basstarono im Forum CODESYS und IEC61131
    Antworten: 23
    Letzter Beitrag: 19.08.2008, 16:23
  4. Ablauf Regallager
    Von sr-83 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 09.10.2007, 11:03
  5. Energiesparlampe mit DC-gesteuerter Dimmer dimmen
    Von wonderfulworld im Forum Elektronik
    Antworten: 12
    Letzter Beitrag: 08.09.2007, 14:48

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •