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

Ergebnis 1 bis 7 von 7

Thema: 8bit Schieberegisterin einer S5-95U

  1. #1
    Registriert seit
    01.02.2013
    Beiträge
    2
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo. Ich versuche gerade Schieberegister zu programmieren. und zwar hätte ich gern das im sekundentakt die Merkerbytes weitergeschoben werden. Startbyte MB10 - nach einer sekunde sollte der wert ins MB11 geschoben werden und danach das MB10 auf 0 gesetzt werden. nach einer weiteren sekunde sollte das MB11 ins MB12 geschoben werden und mb11 wieder auf null gesetzt werden. dieser vorgang soll sich bis MB20 wiederholen. kann mir da jemand helfen? Herzlichen dank im voraus
    Zitieren Zitieren 8bit Schieberegisterin einer S5-95U  

  2. #2
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Mit jeder Flanke des Sekundentaktes einen Zähler weiterzählen.
    Wenn der Zählerstand 11 ist wieder auf 0 reseten
    In Abhängigkeit des Zählerstandes und der Flanke (SPB) an eine Sprungmarke springen wo Deine Operation (L MBx / T MBy / L 0 / T MBx) ausgeführt wird.

  3. #3
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.168
    Danke
    921
    Erhielt 3.287 Danke für 2.656 Beiträge

    Standard

    Wo hast Du da Dein Problem? Bei der Erzeugung des Schiebetaktimpulses oder beim Schieben/Kopieren?
    Weil nur wenige Byte zu schieben sind würde ich keine Schleife mit indirekter Adressierung programmieren, sondern einfach die nötigen paar Operationen hintereinanderweg schreiben. (Und das müßte man auch in Step5 in FUP/KOP programmieren können.)

    Präzisierung nötig: Willst Du tatsächlich nur je 1 Byte in 10 Schritten weiterschieben oder jeweils das ganze Schieberegister um 1 Byte höherschieben?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #4
    Registriert seit
    01.02.2013
    Beiträge
    2
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    An die sache mit dem Zähler habe ich am anfang auch gedacht. das ist aber in diesem fall nicht optimal.
    Ich brauche das Schieberegister um auf einem Sägewerg Brettdaten( Länge,breite und Dicke) über eine ca 200 m lange förderstrecke zu schicken damit die Steuerung am ende die brettdaten hat und die bretter richtig sortiert. auf dieser Strecke kann nur ein brett oder auch mehrere Bretter unterwegs sein. das heißt wenn daten im MByte 14 sind muss ich im MByte 10 Daten wegschicken können . und im MB 20 werden die daten dann ausgewertet und entschieden wo das Brett das gerade auf den Sortierförderer geschoben wird hingworfen wird.

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

    Standard

    Zitat Zitat von christianhabeler Beitrag anzeigen
    Hallo. Ich versuche gerade Schieberegister zu programmieren. und zwar hätte ich gern das im sekundentakt die Merkerbytes weitergeschoben werden. Startbyte MB10 - nach einer sekunde sollte der wert ins MB11 geschoben werden und danach das MB10 auf 0 gesetzt werden. nach einer weiteren sekunde sollte das MB11 ins MB12 geschoben werden und mb11 wieder auf null gesetzt werden. dieser vorgang soll sich bis MB20 wiederholen. kann mir da jemand helfen? Herzlichen dank im voraus
    Ich verstehe nicht, wieso MB11 in MB12 geschoben werden soll und danach MB11 Null gesetzt wird. Vielmehr sollte danach MB10 in MB11 geschoben werden. Wenn zu dieser Zeit in MB10 nichts eingestellt wurde, dann ist da ja ohnehin eine Null drin.

    Den Sekundentakt bildest du als Flanke!
    Code dann etwa so:

    Code:
    UN Sek_Takt
    SPB M001
    
    L MB19
    T MB20
    
    L MB18
    T MB19
    
    L MB17
    T MB18
    
    ...
    
    L MB 11
    T MB12
    
    L MB10
    T MB11
    
    L KF 0
    T MB10
    
    M001: NOP 0
    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

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

    christianhabeler (01.02.2013)

  7. #6
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    Zitat Zitat von christianhabeler Beitrag anzeigen
    Ich brauche das Schieberegister um auf einem Sägewerg Brettdaten( Länge,breite und Dicke) über eine ca 200 m lange förderstrecke zu schicken damit die Steuerung am ende die brettdaten hat und die bretter richtig sortiert. auf dieser Strecke kann nur ein brett oder auch mehrere Bretter unterwegs sein.
    also eine teileverfolgung.
    da stell ich mir die frage warum alle sekunde geschoben werden soll. das schieben sollte ehr ereignisgesteuert sein.
    also in etwas so.
    brett verläßt säge-> daten in mb10 schieben
    brett erreicht posit 1->mb10 nach mb11
    .....
    brett am sortierer angekommen->mb19 nach mb20
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  8. #7
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    solltest du aber nur anfang und ende haben mußt du die sache anders angehen.

    1. brett verläßt säge
    alle daten um 1 nach unten schieben (ein baustein der das für datenworte macht liegt auf meiner hp (FiLo,LiFo)
    einen zähler (MW100) um 1 erhöhen (dieser sagt wieviel bretter unterwegs sind)
    2. neue daten in mb10 eintragen.

    das wiederholt sich jetzt oder eben auch nicht.

    3. brett kommt am ende an.
    in abhängigkeit des zählerstandes weißt du in welchem byte sich die daten des ältesten bretts befinden.

    hier ist jetzt indirekte adressierung gefragt.
    l mw100 //zb 3
    l 9 //+9 da dein erster datensatz im byte 10 liegt
    +F
    t mw102
    B mw102
    l mb 0 //hier wird jetzt nicht mb0 geladen sondern die adresse des wertes im akku1. also 3+9=12. also mb 12

    nun zähler um 1 verringern da ja jetzt ein brett weniger unterwegs ist.
    Geändert von volker (01.02.2013 um 12:23 Uhr)
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

Ähnliche Themen

  1. Adapter für S5-95U mitnur einer Schnittstelle
    Von MaurerT im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 07.05.2009, 08:12
  2. Zykluszeit einer S5 95U
    Von 1schilcher im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 19.09.2007, 09:53
  3. Antworten: 2
    Letzter Beitrag: 02.01.2007, 22:47
  4. Bit in einer 8Bit Variable mit VBS setzen
    Von Anonymous im Forum HMI
    Antworten: 4
    Letzter Beitrag: 14.12.2005, 11:45
  5. MB (8bit) in Word,Int oder ähnliches umwandeln
    Von Lars Bizare im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 30.09.2005, 11:44

Lesezeichen

Berechtigungen

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