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

Ergebnis 1 bis 10 von 10

Thema: Problem mit Schieberegister

  1. #1
    Registriert seit
    31.08.2006
    Beiträge
    17
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen

    ich benötige eure Hilfe, ich bringe etwas einfach nicht hin.

    Ich habe folgendes Problem.

    Auf einem Förderband kommen Gläser durch eine Kontrolle, wo dann entschieden wird, ob sie abgeschoben werden müssen (ausschuss) oder ob sie gut sind.

    Das Ganze wird so gemacht:

    Eine Lichtschranke (E124.0) aktiviert die Kamera, welche dann entscheidet ob Ausschuss oder nicht. Ist das Teil Ausschuss bekommt die SPS einen kurzen Impuls (einstellbare Länge) (E124.1). Dann geht das Glas noch ca. 30cm weiter, wo dann ein Zylinder ist. Der hat auch eine Lichtschranke, damit das Glas rechtzeitig abgeschoben werden kann.

    Wie kann ich das nun anstellen? Bis das Glas beim Zylinder ist, hat die Kamera sicherlich schon 2 weitere Gläser erfasst.

    Ich habe es mit einem Schieberegister probiert, bin aber totaler Anfänger.
    Also Programmieren kann ich eigentlich schon, aber nichts was mit int und dbs zu tun hat

    Könnt ihr mit bitte Helfen????

    CPU (S7 300): CPU414C-2DP


    Gruss Daniel
    Geändert von danielch (24.01.2007 um 11:42 Uhr)
    Zitieren Zitieren Problem mit Schieberegister  

  2. #2
    Registriert seit
    11.10.2005
    Ort
    Pirmasens
    Beiträge
    401
    Danke
    158
    Erhielt 74 Danke für 54 Beiträge

    Standard

    Hi,
    glaube das könnte Dir weiter helfen http://www.sps-forum.de/showthread.php?t=10483


    HDD

  3. #3
    danielch ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    31.08.2006
    Beiträge
    17
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von HDD Beitrag anzeigen
    Hi,
    glaube das könnte Dir weiter helfen http://www.sps-forum.de/showthread.php?t=10483


    HDD

    könnte evtl. gehen. könnte ich trotzdem noch die lösung mit dem Schieberegister haben?

    Das Problem der Anlage ist halt, dass bis das Glas abgeschoben ist, die Kamera schon ein neues Glas erfasst hat. Ist das beim anderen Beispiel auch so oder wofür sind denn dort die verschiedenen Schritte?

    Gruss und DANKE!!!!

  4. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Mal ein paar grundsätzliche Überlegungen dazu:

    Ich geh mal davon aus, daß maximal 8 Gläser zwischen Kontrollstation und
    Auswurf passen (wenn mehr, muß man das erweitern).
    Dafür würden dann 2 Merkerworte genutzt, in einem steht, ob ein Teil vorhanden
    ist, in dem anderen, ob es ein IO-Teil ist.

    Code:
    Bit   Teil      Teil      
          vorhanden IO
          MW100     MW102
    
    .0    1         1       Glas an Kontrollstation
    .1    1         0       1. Glas nach Kontrollstation (Teil + NIO)
    .2    1         1       2. Glas nach Kontrollstation (Teil + IO)
    .3    1         1       3. Glas nach Kontrollstation (Teil + IO)
    .4    1         1       4. Glas nach Kontrollstation (Teil + IO)
    .5    0         0       5. Glas nach Kontrollstation (kein Teil)
    .6    0         0       6. Glas nach Kontrollstation (kein Teil)
    .7    0         0       7. Glas nach Kontrollstation (kein Teil)
    Wenn die Kontrollstation ein Glas vermessen hat, nimmt sie die beiden Merkerworte
    und schiebt deren Inhalt 1 nach links (rechts = M100.0 = Kontrollstation).
    Dann trägt sie in M100.0 eine 1 und M102.0 ihr Ergebnis (1=IO, 0=NIO) ein.
    Das macht sie ganz stur, evtl. kann man noch nachsehen, ob sie links eine 1
    rausgeschoben hat. Wenn das der Fall war, dann ist ein Fehler aufgetreten,
    da kein Glas bisher die Auswurfstation passiert hat und soviele Gläser nicht
    zwischen die beiden Stationen passen.

    Die Auswurfstation wartet aus eine Flanke ihrer Lichttschtranke. Mit der Flanke
    macht sie folgendes:

    MW100 nehmen, von links an (M100.7) nach rechts nachsehen, ob der Merker 1 ist.
    Wenn ja, im selben Bit von MW102 nachsehen, ob IO (1) oder NIO. Bei NIO, Teil
    rauswerfen. Diese beiden Bits im MW100 und MW102 auf Null setzen.

    sollte die Auswurfstation von links nach rechts durchlaufen und im M100.0 eine
    0 finden, ist das auch ein Fehler, da dann eigentlich kein Glas bei der
    Auswurfstation hätte ankommen dürfen!

    Das mal in aller Kürze und möglichts einfach zum Prinzip, daß ich verwenden würde.
    Mit einem Datenbaustein und indirekter Adressierung würde ich das wohl machen.

    PS: Eins muß dabei klar sein, kommt etwas durcheinander, weil jemand ein Glas
    herausnimmt, eins runterfällt, oder die LS 2 Flanken bei einer Flasche
    erzeugt, dann werden ab diesem Zeitpunkt die falschen Gläser rausgeworfen!!!
    Geändert von Ralle (24.01.2007 um 16:26 Uhr)
    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

  5. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    SIGGI (04.04.2009)

  6. #5
    danielch ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    31.08.2006
    Beiträge
    17
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    danke für die Antwort!!
    Habe gerade herausgefunden, dass nur ein Glas in konflikt kommt, da wir den abstanz jetzt ganz klein haben. Also währen das schlechte zum Zylinder kommt, wird gleichzeitig ein anderes Kontrolliert.
    Gibt es da eine einfachere Variante???

    Gruss und danke

  7. #6
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Die Kontrollstation setzt M100.0 für Teil kontrolliert und M102.0 für Teil IO.
    Diese Bits werden von der Auswurfstation mit der Flanke "Flasche da" abgefragt und dann sofort zurückgesetzt. Die Kontrollstation wartet mit dem setzen ihrer Bits immer, bis M100.0 = 0 und M102.0 = 0. Wenn der Abstand zwischen Kontroll- und Auswurfstation 1 Glasabstand oder kleiner ist, sollte das so gehen.

    oder alternativ

    Kontrollstation setzt M100.0 und M102.0, schiebt diese beiden Worte dann eins nach links.
    Die Auswurfstation fragt bei einer Flanke "Flasche da" die Merker 100.1 und 102.1 ab.
    Aber auch hier, nicht schieben, bevor M100.1 und M102.1 nicht wieder auf 0 sind.
    Geändert von Ralle (24.01.2007 um 16:28 Uhr)
    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. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    SIGGI (04.04.2009)

  9. #7
    danielch ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    31.08.2006
    Beiträge
    17
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Die Kontrollstation setzt M100.0 für Teil kontrolliert und M102.0 für Teil IO.
    Diese Bits werden von der Auswurfstation mit der Flanke "Flasche da" abgefragt und dann sofort zurückgesetzt. Die Kontrollstation wartet mit dem setzen ihrer Bits immer, bis M100.0 = 0 und M102.0 = 0. Wenn der Abstand zwischen Kontroll- und Auswurfstation 1 Glasabstand oder kleiner ist, sollte das so gehen.

    oder alternativ

    Kontrollstation setzt M100.0 und M102.0, schiebt diese beiden Worte dann eins nach links.
    Die Auswurfstation fragt bei einer Flanke "Flasche da" die Merker 100.1 und 102.1 ab.
    Aber auch hier, nicht schieben, bevor M100.1 und M102.1 nicht wieder auf 0 sind.

    Hallo

    danke für die tolle antwort!
    ja das würde so funktionieren.

    habe das auch so gemacht und es funktioniert. es gibt jedoch ein Problem....

    manchmal sind die gläser gestaut und kommen ohne abstand. Da geht das leider nicht.

    kannst du mir evtl. noch eine lösung machen,wenn die Gläser keinen abstand haben?

    Die Kontrollstatsion gibt ein Impuls, wenn das Glas ausschuss ist.

    Die Gläser kommen so:

    Manchmal mit ca. 1/2 Glas abstand. Also es reicht zuerst kontrollieren und dann auswerfen.

    Wenn die Gläser aber gestaut sind, dann haben sie keinen abstand (Lichtschranke reagiert trotzdem). Dann kann es vorkommen, dass zuerst zwei kontrolliert werden und dann erst eines ausgeworfen wird, dann wieder eines in die kontrolle.. und und und. beim letzten werden dann zwei ausgeworfen.

    ich habe es mit dem FC90 versucht. Da ist mein Problem, dass es bei Stau nicht funktioniert

    Wäre für eine Problemlösung sehr dankbar!!!

    Gruss

  10. #8
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Was meinst du mit

    Lichtschranke reagiert trotzdem
    Gibt es trotzdem bei jedem Glas an der Auswurfstation einen Impuls? Das wäre schön, denn dann könnte man die etwas kompliziertere Lösung mit den 2 Merkerworten einsetzen. Da könne sich bis zu 8 (im Beispiel) Gläser stauen und es würden die Richtigen ausgeworfen.
    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

  11. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    SIGGI (04.04.2009)

  12. #9
    danielch ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    31.08.2006
    Beiträge
    17
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Was meinst du mit



    Gibt es trotzdem bei jedem Glas an der Auswurfstation einen Impuls? Das wäre schön, denn dann könnte man die etwas kompliziertere Lösung mit den 2 Merkerworten einsetzen. Da könne sich bis zu 8 (im Beispiel) Gläser stauen und es würden die Richtigen ausgeworfen.

    ja es ist so, dass die lichtschranke trotzdem reagiert.es ist eine, die auf glas reagiert und der ca. 4mm breite Schlitz zwischen den Gläseren (wegen dem Deckel) reicht um zu erkennen wann ein neues Glas kommt. Auch die Kontrolle funktioniert.
    Also bei Stau stehen die Gläser ja nicht still, sondern kommen einfach alle aneinander.

    8 Gläser sind nie in der Kontrolle. Wie schon gesagt. Es kommt vor, dass ein Glas kontrolliert wird und bevor dieses abgeworfen werden kenn (oder bei i.O halt nicht) schon ein neues Glas in die Kontrolle kommt.

    Also wenn die zahl dann egal ist würd ich auch mehr nehmen, denn dann könnte ich die Distanz Kontrolle - Abwurf grösser machen.

    Aber eben, ich weiss nicht wie Programmieren Hab das mit den MW und DBs halt nicht so im Griff, der Rest ist kein Problem.... (also so einfache DBs wie für das Schieberegister gehen schon)

    Gruss

  13. Folgender Benutzer sagt Danke zu danielch für den nützlichen Beitrag:

    SIGGI (04.04.2009)

  14. #10
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Normalerweise lebe ich ja davon, solchen Code, für Leute wie euch zu schreiben .

    Ich hab das mal wirklich ganz einfach und ganz schnell zusammengeschrieben und auch am Simulator getestet. Es ist zu Fuß und nicht ganz schick mit indirekter Adressierung usw., nur mal für Alle, die das hinterher wieder besser können . Die Merker und Eingänge hab ich nicht mit Symbolik versehen, da die sich bei dir eh ändern werden, die Texte sollten alles erklären.

    Code:
    FUNCTION FC 20 : VOID
    TITLE =Kamerakontrolle und Glasauswurf
    AUTHOR : Ralle
    FAMILY : System
    NAME : KamGlas
    VERSION : 1.0
    
    BEGIN
    NETWORK
    TITLE =Kameraauswertung
    
          U     E      1.0; //Kamera meldet fertig
          FP    M     98.0; //Flankenmerker Kamera fertig
          SPBN  KFL1; 
    
          L     MW   100; 
          SLW   1; 
          T     MW   100; 
    
          L     MW   102; 
          SLW   1; 
          T     MW   102; 
    
          SET   ; 
          S     M    101.0; //ein Glas war da und ist kontrolliert worden --> Achtung, Byte 101 stehet rechts im Wort!!!
    
          U     E      1.1; //es war ein NIO-Teil
          S     M    103.0; //es war ein NIO-Glas --> Achtung, Byte 103 steht rechts im Wort!!!
    
    //Kontrolle, zuviel Gläser in der Kette bis zum Auswurf
          U     M    100.7; //das wären 16 Gäser!
          S     M     98.1; //Fehlermerker gesetzt, später irgendwo auswerten, melden und zurücksetzen !!!!
    
    KFL1: NOP   0; 
    NETWORK
    TITLE =Auswurf
    
          U     E      2.0; //LS Auswurf erkennt ein Glas
          FP    M     99.0; //Flankenmerker LS Auswurf
          SPBN  KFL2; 
    
    //Ich mach das mal für 8 Gläser
          U     M    101.7; 
          SPB   M007; 
    
          U     M    101.6; 
          SPB   M006; 
    
          U     M    101.5; 
          SPB   M005; 
    
          U     M    101.4; 
          SPB   M004; 
    
          U     M    101.3; 
          SPB   M003; 
    
          U     M    101.2; 
          SPB   M002; 
    
          U     M    101.1; 
          SPB   M001; 
    
          U     M    101.0; 
          SPB   M000; 
          SPA   FEH2; 
    
    //Glas Nr 8 wurde erkannt
    M007: SET   ; 
    
          U     M    103.7; //NIO-Glas
          S     M     99.1; //Glas auswerfen, Merker nach dem Auswerfen wieder zurücksetzen!
    
          SET   ; 
          R     M    101.7; //Glas vorhanden und
          R     M    103.7; //Glas NIO auf Null
          SPA   KFL2; 
    
    //Glas Nr 7 wurde erkannt
    M006: SET   ; 
    
          U     M    103.6; //NIO-Glas
          S     M     99.1; //Glas auswerfen
    
          SET   ; 
          R     M    101.6; //Glas vorhanden und
          R     M    103.6; //Glas NIO auf Null
          SPA   KFL2; 
    
    //Glas Nr 6 wurde erkannt
    M005: SET   ; 
    
          U     M    103.5; //NIO-Glas
          S     M     99.1; //Glas auswerfen
    
          SET   ; 
          R     M    101.5; //Glas vorhanden und
          R     M    103.5; //Glas NIO auf Null
          SPA   KFL2; 
    
    //Glas Nr 5 wurde erkannt
    M004: SET   ; 
    
          U     M    103.4; //NIO-Glas
          S     M     99.1; //Glas auswerfen
    
          SET   ; 
          R     M    101.4; //Glas vorhanden und
          R     M    103.4; //Glas NIO auf Null
          SPA   KFL2; 
    
    //Glas Nr 4 wurde erkannt
    M003: SET   ; 
    
          U     M    103.3; //NIO-Glas
          S     M     99.1; //Glas auswerfen
    
          SET   ; 
          R     M    101.3; //Glas vorhanden und
          R     M    103.3; //Glas NIO auf Null
          SPA   KFL2; 
    
    //Glas Nr 3 wurde erkannt
    M002: SET   ; 
    
          U     M    103.2; //NIO-Glas
          S     M     99.1; //Glas auswerfen
    
          SET   ; 
          R     M    101.2; //Glas vorhanden und
          R     M    103.2; //Glas NIO auf Null
          SPA   KFL2; 
    
    //Glas Nr 2 wurde erkannt
    M001: SET   ; 
    
          U     M    103.1; //NIO-Glas
          S     M     99.1; //Glas auswerfen
    
          SET   ; 
          R     M    101.1; //Glas vorhanden und
          R     M    103.1; //Glas NIO auf Null
          SPA   KFL2; 
    
    //Glas Nr 1 wurde erkannt
    M000: SET   ; 
    
          U     M    103.0; //NIO-Glas
          S     M     99.1; //Glas auswerfen
    
          SET   ; 
          R     M    101.0; //Glas vorhanden und
          R     M    103.0; //Glas NIO auf Null
          SPA   KFL2; 
    
    //Wenn eine LS-Flanke erkannt wurde, aber keine Daten (kein Merker
    //im MW100 ist gesetzt) vorhanden sind, ist das ein Fehler
    FEH2: SET   ; 
          S     M     99.2; //Datenfehler oder LS-Fehler am Auswerfer, später irgendwo auswerten, melden und zurücksetzen !!!!
    
    KFL2: NOP   0; 
    END_FUNCTION
    Der Code ist eine AWL-Quelle. Du kannst ihne hier rauskopieren, unter Quellen im Programmordner eine neue Quelle einfügen und dann den Code drt reinkopieren. Nach dem Übersetzen hast du dann einen FC20. Sollte es diesen schon in deinem Programm geben, mußt du in der Quelle einen anderen eintragen, sonst wird dein bestehender FC beim Übersetzen überschrieben!

    E 1.0 - Kamera meldet Fertig
    E 1.1 - Kamera meldet NIO (normalerweise meldet man ja IO, dann im PRG einfach rumdrehen!)
    M98.1 - Fehler, Kamera hat zu viele Teile geprüft, Auswurf hat nichts erkannt?

    E 2.0 - LS Auswurf erkennt Glas
    M 99.1 - Glas auswerfen
    M 99.2 - Fehler, LS hat Glas erkannt, es sind aber keine Daten vorhanden (Damit könnte man das "Glas" aus zwangsweise auswerfen)

    Die Merker habe ich nur gesetzt, zurücksetzen mußt du sie im Programm dann selbst. M98.1 kommt erst mit Glas 16, das kann man verändern.
    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

  15. Folgende 2 Benutzer sagen Danke zu Ralle für den nützlichen Beitrag:

    danielch (23.10.2007),SIGGI (04.04.2009)

Ähnliche Themen

  1. B&R Schieberegister?
    Von Anaconda55 im Forum CODESYS und IEC61131
    Antworten: 20
    Letzter Beitrag: 07.09.2009, 02:05
  2. Problem ARRAY/Schieberegister
    Von Barni im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 27.08.2009, 12:31
  3. kleines Problem mit Schieberegister
    Von Klaus.Ka im Forum Programmierstrategien
    Antworten: 10
    Letzter Beitrag: 31.08.2008, 16:49
  4. Compact Logix Problem mit Schieberegister
    Von BMLLER6758 im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 25.09.2006, 20:16
  5. Schieberegister
    Von Anonymous im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 23.01.2006, 21:54

Lesezeichen

Berechtigungen

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