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

Ergebnis 1 bis 6 von 6

Thema: Schiebefunktion

  1. #1
    Registriert seit
    27.02.2010
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!
    Ich habe eine Frage zu einem SPS-Programm. Folgender Hintergrund: Prüfkörper werden mit Kamera auf Fehler überprüft und in 3 Kategorien eingestuft. (i.O., n.i.O., n.e.)
    Die Aussortierung nach der Bilderstellung erfolgt taktweise in der folgenden Reihenfolge
    ( --> 4 Stationen:
    1. Kamera,
    2. Aussortierung i.O.,
    3. Aussortierung n.i.O.,
    4. Aussortierung n.e.)
    Die Stationen werden mittels eines Rundschalttisches taktweise erreicht.

    Die Ausgänge der Bildverarbeitung schalten folgendermaßen:

    _____i.O._ n.i.O._ n.e.__ leer
    A0.0 |_ 1 _|_ 0 _|_ 1 _|_ 0 _|
    A0.1 |_ 0 _|_ 1 _|_ 1 _|_ 0 _|

    Der Schieberegister soll folgendermaßen aussehen:
    An den 3 Stationen soll verglichen werden, ob die "reingeschobenen" Zustände (10 oder 01 oder 11 oder 00) mit denen übereinstimmen, die an den jeweiligen Stationen eine Aussortierung vorsieht.

    ________ ?__?__?_
    ________(1) (0) (1)
    ________(0) (1) (1)
    A0.0 --> | X | X | X | (Schieberichtung: nach
    A0.1 --> | X | X | X | rechts)


    Ich benötige hierzu einen Schieber, der jeden Takt die neu erhaltenen Ausgänge um 1 Feld weiter nach rechts schiebt und eine Vergleichsoperation, die an den 3 Stationen vergleicht und bestimmte Ausgänge daraufhin aktiviert oder nicht.
    Ich hab im Internet schon einige hilfreiche Sachen gesehen, aber keine speziellen, für diesen Fall.
    Ich arbeite mit Step 7 an einer CPU S7/200-211

    Vielen Dank für Tipps im Voraus!
    Trappatobi
    Zitieren Zitieren Schiebefunktion  

  2. #2
    Registriert seit
    03.01.2010
    Ort
    Augsburg
    Beiträge
    59
    Danke
    4
    Erhielt 11 Danke für 11 Beiträge

    Standard

    Hallo
    sooooo wird es nicht sein ! Schreibe DEIN Programm und stelle es hier zur Diskussion - dann und nur dann kannst du hier Hilfe erwarten. Sonst kannst du mir oder anderen Kollegen einen Autrag gegen Bezahlung geben und es wird gemacht.
    Grüße
    Janusz

  3. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo,
    mal so als kleine Anregung :
    Bilde dir für jede Station ein Datenbyte (oder größer) in dem du die signifikanten Ergebnisse der Station und auch der anderen Stationen ablegen kannst. Wenn du nun den Tisch vor-taktest dann schiebst du bei einem Tisch mit 3 Positionen Speicher_Station_3 -> Speicher_Station_1 und Speicher_Station_2 -> Speicher_Station_3 und Speicher_Station_1 -> Speicher_Station_2. Wenn du rückwärts taktest dann entsprechend umgekehrt. So kannst du dann bei jeder Station die durchgeführten Aktionen hinterlegen und entsprechend bei den weiteren Stationen mit den vorhandenen Ergebnissen weiter-arbeiten.
    Wird dem Speicher irgendwo das Teil entnommen dann löscht du an dieser Stelle den Speicher.

    Viel Spaß beim Programmieren ...

    Gruß
    LL

  4. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    janusz (28.02.2010)

  5. #4
    Trappatobi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.02.2010
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich erwarte auch kein fertiges Programm, was ohne weiteres übertragbar ist. Aber über ein paar kleine Tipps, wie von Larry Laffer wäre ich schon sehr erfreut. Mein geschriebenes Programm ist noch in Bearbeitung...

  6. #5
    Trappatobi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.02.2010
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich hab ein Programm erstellt, habe aber noch ein Problem. Der Ablauf hat sich vereinfacht, es gibt nur noch 2 Auswahlkriterien. i.O. und n.i.O.!
    Meine Variante sieht folgendermaßen aus:

    LD Rundschalttisch-Takt:E1.0
    EU
    SHRB i.O.-Signal:E0.3, V100.0, +1

    LD i.O.-Signal:E0.3
    U Aussonderungsbefehl:E0.1
    = i.O.-Düse:A0.3

    LDN SM1.1
    U Aussonderungsbefehl:E0.1
    = n.i.O-Düse:A0.4

    Im Einzelnen:
    Bei jedem Takt des Rundschalttisches (E1.0) wird die steigende Flanke (EU) genutzt, um im Schieberegister (SHRB) eine Stelle zu verschieben. Als DATA benutze ich das Signal E0.3,was herausgegeben wird, wenn das Prüfteil in Ordnung ist.
    Dann wird auch die entsprechende Düse (A0.3) im nächsten Takt betätigt.
    Wenn kein i.O.-Signal kommt, wird eine Null als DATA weitergeschoben und nach einem weiterem Takt "fällt" diese Null aus dem Schieberegister heraus (SM1.1) und betätigt dann die n.i.O.-Düse (A0.4). Die Aussonderungsbefehle werden anderweitig gesetzt.
    Die ganze Sache funktioniert, allerdings bläst die n.i.O.-Düse bei jedem Takt! Der Sondermerker SM1.1 bekommt keine "1", bei i.O.-Teilen... Hat das mit dem "niederwertigsten Bit" (V100.0) zu tun? Ich verstehe den Sinn und dessen Bedeutung für den Register nicht ganz. V100.0 ist willkürlich gesetzt...
    Kann mir da jemand helfen?!?

  7. #6
    Registriert seit
    19.11.2008
    Ort
    Schweigen am Weintor
    Beiträge
    707
    Danke
    191
    Erhielt 161 Danke für 92 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Überlauf_unzulässig
    SM1.1
    Von einigen Operationen bei Überlauf oder ungültigem num. Wert auf 1 gesetzt.

    erstma brauchst du zwei register die schiebst ja zwei werte!

    Schieberegister Schiebt bei Drehen
    LD E0.3
    ED
    SRB VB100, 1
    SRB VB101, 1

    St1 Kamera
    Drehteller am Drehteller
    LDW= Z0, 0
    UN E0.3
    INCW Z0

    Drehteller in Position
    LDW= Z0, 1
    U E0.3
    INCW Z0

    Register Löschen
    LDW= Z0, 2
    R V100.7, 1
    R V101.7, 1
    UN V100.7
    UN V101.7
    INCW Z0

    Register mit Kameraauswerung Füttern
    LDW= Z0, 3
    LPS
    U E0.0 // gut
    S V100.7, 1
    LRD
    U E0.1 // schlecht
    S V101.7, 1
    LRD
    TON T37, 1
    LPP
    U T37
    MOVW 0, Z0


    jetzt ein takt weiter auswerung
    LD V100.6
    ON V101.6
    = A0.3 //io

    noch ein takt weiter

    LDN V100.5
    O V101.5
    = A0.4 //nio

    ein takt weiter

    LD V100.4
    O V101.4
    = A0.5 //unbekannt



    keine garantie ob das register richtigrum jetzt is ich verwechsel des immer mit rechts rum und linksrum von 0.7 nach 0.0 oder andersrum

Ähnliche Themen

  1. Schiebefunktion
    Von Zito im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 09.04.2011, 10:09

Lesezeichen

Berechtigungen

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