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

Ergebnis 1 bis 5 von 5

Thema: S7-300 Schieberegister schreiben

  1. #1
    TomTom Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe folgendes Problem :

    Ich möchte gern zu Testzwecken ein Schieberegister schreiben wo sich die Worte in einem 1Hz-Takt ändern.
    Ein Vergleicher soll dabei prüfen wie oft bereits geschoben worden ist und das ganze bei >5 wieder löschen.

    Nun weiß ich nicht genau wie ich anfangen soll und welche Realisierung am sinnvollsten ist (z.B. mit INC oder SLW).

    Vielleicht kann mir ja einer ein wenig helfen


    Danke
    Zitieren Zitieren Gelöst: S7-300 Schieberegister schreiben  

  2. "Ich habe da ne Frage zum Sfc 20:
    Laut Siemenshilfe darf sich Quell- und Zielfeld nicht überlappen.
    Das würde ja in deinem Beispiel passieren oder verstehe ich da was falsch?
    Bzw ist das egal?"


  3. #2
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Ich würds so machen:
    Code:
     
          L     0
          L     #Anzahl                     //Anzahl um wieviel Stellen geschoben werden soll
          ==I   
          SPBN  m3
          L     #Wert                       //Wert der geschoben werden soll
          T     #Rette_Wert                 //wenn Anzahl Null ist dann Rette Wert
    m3:   L     5
          L     #Wert                       //Wert der geschoben werden soll
          <I    
          SPB   m4
          L     #Rette_Wert                 //Wenn Anzahl größer als 5 dann beschreibe
          T     #Wert                       //Wert der geschoben werden soll mit geretteten Wert
          L     0                           //Und lösche
          T     #Anzahl                     //Anzahl um wieviel Stellen geschoben werden soll
    m4:   U     M      0.1                  //Taktmerker (Welcher es mit 1Hz ist weiß ich gerade nicht)
          FP    #HM
          SPBN  m5
          L     #Anzahl                     //Anzahl um wieviel Stellen geschoben werden soll
          L     1
          +I                                //zähle plus 1 zu
          T     #Anzahl                     //Anzahl um wieviel Stellen geschoben werden soll
          L     #Wert                       //Wert der geschoben werden soll
          SLW                               //Schiebe Wert um die Anzahl die im Akku 2 LL steht
          T     #Wert                       //beschreibe Wert der geschoben werden soll mit neuen Daten
    m5:   NOP   0
    Aber weiß nicht obs so auch sinnvoll ist

    Lg Godi

  4. #3
    Registriert seit
    15.11.2005
    Beiträge
    89
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also ich würde über den SFC20 (Blockmove) schieben.
    Zu beachten ist dabei nur, dass der aktuellste Wert im letzten
    Datenwort steht. Beispiel

    Code:
          U BLINK1HZ         //1Hz Flasher
          FP HMBLINK        //Hilfsmerker für pos.Flanke des Flashers
          SPBN  MOVE
    //Zu scheibenden Wert bereitstellen
          L     #SCHIEBEWERT
          T     DB100.DBW10
    //Werte schieben
          CALL  "BLKMOV"
           SRCBLK :=P#DB100.DBX2.0 BYTE 10
           RET_VAL:=#STATUS
           DSTBLK :=P#DB100.DBX0.0 BYTE 10
    //Zähle durchgeführte Takte
         L #TAKTE
         + 1
         T #TAKTE
         L 5   //Vergleiche, ob schon 5 mal geschoben wurde
         >=I
         SPBN MOVE
         L B#16#0 //Füllwert zum Löschen des Bereiches bereitstellen
         T #FILL_VAL
         T #TAKTE //Anzahl der bisherigen Schiebevorgänge initialisieren
         CALL  "FILL"
           BVAL   :=#FILLVAL
           RET_VAL:=#STATUS
           BLK    :=P#DB100.DBX2.0 BYTE 10
    MOVE: NOP 0
    Der DB hat folgende Struktur:

    DBW0...INT...rausfliegender letzter Wert
    DBW2...INT...Wert 5
    DBW4...INT...Wert 4
    DBW6...INT...Wert 3
    DBW8...INT...Wert 2
    DBW10..INT...Wert 1
    DBW12..INT...DUMMY

    Ich baue auf diese Weise Puffer für Messwerte zur X/s-Berechnung auf.
    Ist auch schön für längere Schiebepuffer aufzubauen.

    Hoffe, das hilft Dir weiter.
    _________________________________________
    Solls funktionieren, oder darfs auch Siemens sein?

  5. #4
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Ich habe da ne Frage zum Sfc 20:
    Laut Siemenshilfe darf sich Quell- und Zielfeld nicht überlappen.
    Das würde ja in deinem Beispiel passieren oder verstehe ich da was falsch?
    Bzw ist das egal?

  6. #5
    Registriert seit
    15.11.2005
    Beiträge
    89
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Für normale Kopiervorgänge per SFC20 hat das schon seine Richtigkeit.
    Der SFC20 arbeitet rückwärts, darum kann man (durch Ignorieren der Siemens-Hilfe) wie zuvor beschrieben ein Schieberegister mit grösseren
    Datenblöcken aufbauen. Benutze dies um z.B. Mittelwert und Streuung über
    x Messwerte zu berechnen.

    @TomTom
    Wahrscheinlich schoß meine Antwort an Deiner Frage vorbei, da ich mir nicht sicher bin, was Du mit Schieberegister meintest.
    Willst Du das Wort selbst in sich schieben (SLW,SRW...) oder das
    Wort in einem Datenbereich bewegen (meine Antwort) ?
    _________________________________________
    Solls funktionieren, oder darfs auch Siemens sein?

Ähnliche Themen

  1. Schieberegister????
    Von cobeq im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 09.05.2011, 07:43
  2. schieberegister für INT
    Von ladychaos im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 14.04.2011, 08:00
  3. Schieberegister
    Von Wasserkraft im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 23.09.2007, 15:03
  4. Schieberegister
    Von Anonymous im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 23.01.2006, 21:54
  5. Schieberegister
    Von Anonymous im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 27.05.2005, 09:11

Lesezeichen

Berechtigungen

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