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

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

Thema: Schieberegister verfeinern

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hey,

    ich hätte ein Anliegen zum Thema Schieberegister und hoffe mir kann jemand hier eventuell einen kleinen Tipp geben.

    Zur Problemstellung: Es geht um ein Förderband auf welchem Werkstücke durch eine Maschine befördert werden. Hier wird ein Schieberegister (32 Bit, SLD) verwendet um eine Möglichkeit zu haben, zu prüfen ob an Position X gerade ein Werkstück vorhanden ist oder nicht. In dem Fall ist an dem entsprechenden Bit für die entsprechende Position im Schieberegister eine 1 vorhanden.

    Damit eine 1 (Werkstück vorhanden) in das Schieberegister geschoben wird, muss das Signal einer Lichtschranke am Einlauf der Maschine vorhanden sein und dort das Werkstück erkennen. Über den Maschinentakt wird mit jeder positiven Flanke die 1 um ein Bit verschoben. Das Ganze über insgesamt vier Merker-Doppelworte.

    Nun zu dem Problem: Eine neue Erkennung soll installiert werden. Die derzeitige Auflösung des Schieberegisters ist für diese Erkennung zu ungenau.

    Das heisst, an der Stelle wo die Erkennung in der Maschine positioniert ist, benötige ich zur Programmierung dieser optimalerweise ca. 10 einzelne Bits.
    Durch mein vorhandenes Schieberegister habe ich allerdings nur ein Bit zur Verfügung.

    Ich suche nun eine Möglichkeit, wie ich zwischen beispielsweise im Bereich von 5 aufeinanderfolgenden Bits in meinem bestehenden, schlecht aufgelösten Schieberegister ein zweites, feiner ausgelöstes Schieberegister für meine Erkennung erstellen könnte.

    Ich bräuchte hier einen Ansatz, wie ich das ganze verfeinern könnte z.B. um den Faktor 10. An dem vorhandenen Schieberegister soll jedoch nach Möglichkeit nichts geändert werden.

    Ein neues Schieberegister zu erstellen welches einfach einen größeren Bereich umfasst, also anstatt der 4 MDW dann das 10 fache würde ja nicht ausreichen, da der Maschinentakt von seiner Geschwindigkeit gleich bleiben würde. Also wäre mein Ansatz, wie bekomme ich den vorhandenen Maschinentakt (0_1_0_1_0_1 ...) in der Steuerung von der Geschwindigkeit her verzehnfacht.

    Vielleicht liege ich auch falsch und jemand könnte mir einmal schreiben, wie man sowas eleganter löst.

    Vielen Dank
    Geändert von incude (19.05.2011 um 06:09 Uhr)
    Zitieren Zitieren Schieberegister verfeinern  

  2. #2
    Registriert seit
    08.07.2007
    Ort
    Burbach
    Beiträge
    366
    Danke
    80
    Erhielt 34 Danke für 32 Beiträge

    Standard

    Auf den ersten Blick würde ich sagen, mach Dir ein Schieberegister, welches ein ganzes Wort schieben kann. Dann hast Du Bits genug.

    Das alte Verfahren kannst Du dann natürlich nicht mehr weiter nutzen.

    Ideen findest Du vielleicht hier

    http://www.sps-forum.de/showthread.p...chieberegister
    Lieber Feste feiern, als feste arbeiten.

  3. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.708
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo,
    für mich war das Ganze etwas widersprüchlich.
    Was willst du nun haben :
    - ein "Schieberegister" das Worte statt Bits verschiebt und du somit für jetzige Bit-Position Werte verabeiten kannst ?
    - ein "Schiebe-Register" das eine höhere Auflösung hat, also statt z.B. cm in Zukunft auf mm auflößt ?

    Das wäre 2 grundverschiedene Ansätze.
    Würdest du in SCL programmieren wollen / können ?

    Gruß
    Larry

  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

    Ja, ich würde auch blasterbocks Vorschlag empfehlen. Den Maschinentakt willst/musst du wohl beibehalten. Also nimmst statt eines Bits ein Word oder Doppelword und schiebst dieses. In das Word kannst du dann deine "verfeinerten" Informationen ablegen. Was du da hineinschreibst, ist ja komplett dir überlassen.
    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. #5
    Registriert seit
    21.05.2011
    Ort
    sauerland
    Beiträge
    33
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo ,
    habe momentan ein ähnliches Problem. An eine Anlage ist eine Förderkette, welche Gehänge durch diese Anlage transportiert. Diese Gehänge sollen jetzt mit verschiedene fertigungsdaten bearbeitet werden.( sechs Zeiten und eine vorgabe zwischen 0 und 100% )
    Mein Ansatz ist jetzt folgender: In einen DB lege ich die felder mit den Programmen ab.
    In ein zweiter DB wird den fertigungsauftrag hinten angeschoben,und wird vorne gelöscht wenn ein Gehänge durch die Anlage Transportiert wurde.
    Ich will keine Rezeptur machen weil meine Daten dann nur im OP liegen und nicht in der SPS, datensicherung der S7 würde dann nicht automatisch meine Rezepte sichern.
    Da ich aber ein alter S5 Hase bin und bei S7 mir alles selbst beibringen musste folgende Frage:
    kann ich wie bei S5 in S7 ein ähnliches Befehl wie < A DB0 und dann B MW5> verwenden, also eine INDIZIERTE BEARBEITUNG ????
    Wenn ja, wo finde ich bei S7 detaillierte info´s dazu, sonst kackt mir die Kiste ab, und das will ich nicht riskieren!!!
    Zitieren Zitieren Ähnliches Problem  

  6. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Zitat Zitat von fliegender holländer Beitrag anzeigen
    kann ich wie bei S5 in S7 ein ähnliches Befehl wie < A DB0 und dann B MW5> verwenden, also eine INDIZIERTE BEARBEITUNG ????
    Wenn ja, wo finde ich bei S7 detaillierte info´s dazu
    Hallo,
    lies mal in der Step7-Hilfe zu AWL unter "indirekte Adressierung".
    Die "speicherindirekte Adressierung" funktioniert wie der S5-Befehl "B MWx" und kommt indizierter Bearbeitung schon sehr nahe.
    Wenn Du SCL hast, dann kannst Du mit SCL leicht auch höhere Datentypen echt indiziert verarbeiten.

    Mit der "registerindirekten Adressierung" mit Hilfe von 2 Adressregistern wird man noch flexibler, allerdings muß man beachten, daß die Pointer in den Adressregistern Bit-Adressen sind und keine Indexe. Für die korrekte Adressberechnung zur Adressierung von Elementen muß man selber sorgen.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    fliegender holländer (21.05.2011)

  8. #7
    Registriert seit
    21.05.2011
    Ort
    sauerland
    Beiträge
    33
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Danke für den Tipp, PN-DP,

    ich bin leider wie gesagt ein ( alter) S5 Hase, und muss mir von S7 alles an programmiertricks aus vorhandene Programme abgucken.Da gibt es welche die über den Mond nach Rom gehen, und es dann noch für eine gute Lösung halten. Mir liegt das meiste daran das ein Programm auch für anderen lesbar ist ohne erst mal zwei Tage über das Programm zu hängen.
    Und leider beherrschen nicht alle SCL, ich auch (noch ?)nicht.
    werde es mir garantiert aber mal ganz genau angucken weil es viele Potentialen hat.

    Wenn ich 32 Bit intus habe, kann ich auch ALLES!!!

  9. #8
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    Hallo zusammen,

    Zitat Zitat von fliegender holländer Beitrag anzeigen
    Hallo ,
    Da ich aber ein alter S5 Hase bin und bei S7 mir alles selbst beibringen musste folgende Frage:
    kann ich wie bei S5 in S7 ein ähnliches Befehl wie < A DB0 und dann B MW5> verwenden, also eine INDIZIERTE BEARBEITUNG ????
    Wenn ja, wo finde ich bei S7 detaillierte info´s dazu, sonst kackt mir die Kiste ab, und das will ich nicht riskieren!!!
    Zitat Zitat von PN/DP Beitrag anzeigen
    Hallo,
    lies mal in der Step7-Hilfe zu AWL unter "indirekte Adressierung".
    Die "speicherindirekte Adressierung" funktioniert wie der S5-Befehl "B MWx" und kommt indizierter Bearbeitung schon sehr nahe.
    Harald
    ... zustimm ... [accepted]

    Hier noch ein Beitrag, wie die S5- und S7-Operationen unterscheiden:

    http://support.automation.siemens.co...ad=treecontent

    Viel Erfolg !

    Gruss an beide...

  10. Folgender Benutzer sagt Danke zu SoftMachine für den nützlichen Beitrag:

    fliegender holländer (22.05.2011)

  11. #9
    incude ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.05.2011
    Beiträge
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ahhhhhhh, jetzt hab ich verstanden was Ihr meint.

    Mit jedem Maschinentakt also nicht immer nur um ein Bit, sondern um ein ganzes Wort verschieben und somit für jede Position letztlich 8 Bits zur Verfügung zu haben.

    So ähnlich wird das bei einer unserer Maschinen in S5 gemacht. Der Ansatz ist gut, vielleicht hat ja noch jemand ein Programmbeispiel für mich.

    Aber ich setz mich mal dran und versuch ne Lösung zu finden ...

  12. #10
    Registriert seit
    08.07.2007
    Ort
    Burbach
    Beiträge
    366
    Danke
    80
    Erhielt 34 Danke für 32 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    In der einfachsten Form wird es wohl so aussehen.
    Code:
          U     M      5.0
          FP    M      5.1
          SPBN  m001
          L     MW   108
          T     MW   110
          L     MW   106
          T     MW   108
          L     MW   104
          T     MW   106
          L     MW   102
          T     MW   104
          L     MW   100
          T     MW   102
    m001: NOP   0
    Wobei der M5.0 Dein Schiebezeitpunkt ist und das MW 100 die aktuellen Daten enthält.
    Die anderen MW enthalten jeweils den geschobenen Stand deiner Daten.

    Wichtig ist der FP M 5.1, weil der sicherstellt, dass pro Ereignis am M5.0 die Daten nur exakt einmal geschoben werden.

    Das kann man natürlich auch mit DBW'S machen.

    Es geht auch ganz elegant, wenn man sich ein Schieberegister mit Schreib- und Lesezeigern aufbaut. Ist aber dann schwieriger zu verstehen.
    Lieber Feste feiern, als feste arbeiten.

Ähnliche Themen

  1. Schieberegister mit S7-300
    Von Spag im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 06.08.2008, 13:06
  2. Schieberegister
    Von Schenker im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 08.10.2007, 11:09
  3. Schieberegister
    Von Mütze im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 22.10.2006, 06:01
  4. Schieberegister
    Von Anonymous im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 30.01.2006, 08:47
  5. Schieberegister mit S7-200
    Von Anonymous im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 14.10.2003, 15:00

Lesezeichen

Berechtigungen

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