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

Page 2 of 2 FirstFirst 12
Results 11 to 19 of 19

Thread: FIFO Puffer mit 32Bit

  1. #11
    Join Date
    17.06.2004
    Location
    Offenau
    Posts
    4,079
    Danke
    210
    Erhielt 466 Danke für 366 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    dann musst du halt, entweder so wie in meinem vorschlag immer wieder die datenwörter nach dem auslesen nach untern verschieben oder du lässt deie zweipointer auf die datenwörter im kreis laufen. musst halt bei ereichen des max wertes den pointer für schreiben wieder auf den anfang setzen und bei min wert auf den letzten dtenwert. und den lesepointer genau so.
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Reply With Quote Reply With Quote ringlesen...  

  2. #12
    Join Date
    11.06.2004
    Posts
    100
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Default

    Hallo

    könnte man nicht die FC's aus der Bibliothek von 16bit auf 32bit ändern?

  3. #13
    Join Date
    06.10.2003
    Posts
    4,514
    Danke
    626
    Erhielt 787 Danke für 616 Beiträge

    Default

    Hallo Whibloc,

    Quote Originally Posted by Whibloc
    ...Das funktioniert aber nur bedingt, weil ich bei meiner Anwendung keinen Pufferüberlauf bekomme. Und mein Puffer so nicht im Kreis läuft und meinen ersten Wert überschreibt.
    Deshalb ist meine Lösung nur bedingt einsatzfähig.
    Gruss
    Im Downloadbereich von www.sps-net.de findest du ein FiFo-Beispiel für INT-Werte, bei dem "umlaufende" Zeiger für Schreiben und Lesen verwendet werden. Du kannst das Beispiel ganz einfach auf 32-Bit-Werte ändern. Oder suche hier im Form nach "MOD".

    http://www.sps-forum.de/phpBB2/viewt...&highlight=mod

    Gruß, Onkel

  4. #14
    Join Date
    20.06.2003
    Location
    Sauerland.NRW.Deutschland
    Posts
    5,451
    Danke
    99
    Erhielt 923 Danke für 628 Beiträge

    Default

    ich hab hier einen fb für s5 den ich vor einiger zeit mal geschrieben habe.

    funktioniert folgendermassen:

    mit der steigenden flanke daten eintragen werden alle dw's um eins nach unten geschoben und der neue wert oben eingetragen. der unterste wert fällt raus.

    Code:
    FB 101                               E:EIGENEST.S5D                    LAE=88   
                                                                           Blatt   1
    Netzwerk 1                   Ein Wort in Fifo speichern
    
    ===============================================================================
    Beschreibt einen DB beginnend ab DW3 (beschreibt jedes Wort)
    
    EINT = Daten eintragen anstossen.
    FIDB = FIFO-DB
    DADB = Daten-DB
    FLAN = Flankenmerker zum Daten eintragen
    IMPU = Impulsmerker zum Daten eintragen
    DATE = Daten zum Ablegen
    NUWO = Anzahl der Nutzworte
    ===============================================================================
    Name :FIFO-EIN
    Bez  :EINT      E/A/D/B/T/Z: E  BI/BY/W/D: BI
    Bez  :FIDB      E/A/D/B/T/Z: B
    Bez  :DADB      E/A/D/B/T/Z: B
    Bez  :FLAN      E/A/D/B/T/Z: A  BI/BY/W/D: BI
    Bez  :IMPU      E/A/D/B/T/Z: A  BI/BY/W/D: BI
    Bez  :DATE      E/A/D/B/T/Z: E  BI/BY/W/D: W
    Bez  :NUWO      E/A/D/B/T/Z: D  KM/KH/KY/KC/KF/KT/KZ/KG: KF
     
         :                                           EINT=Daten eintragen anstossen
         :                                           FIDB=FIFO-DB
         :                                           DADB=Daten-DB
         :                                           FLAN=Flankenmer.zum Daten eint>
         :                                           IMPU=Impulsmer.zum Daten eintr.
         :                                           DATE=Daten zum ablegen
         :                                           NUWO=Anzahl der Nutzworte
         :***
    
    Netzwerk 2
         :AWL
         :UN  =EINT                                  Daten eintragen anstossen
         :RB  =FLAN                                  Flankenmerker ruecksetzen
         :U   =EINT
         :UN  =FLAN
         :S   =FLAN
         :=   =IMPU                                  Impulsmerker
         :
         :UN  =IMPU
         :SPB =M001
         :
         :B   =DADB                                  Daten - DB
         :L   =DATE                                  Daten zum abspeichern
         :T   MW 202
         :
         :B   =FIDB                                  fifo-db
         :LW  =NUWO                                  Anzahl nutzworte
         :L   KF +2                                  endadresse -1 erzeugen
         :+F
         :T   MW 200                                 index
         :
    M002 :L   MW 200                                 lade index dw x
         :T   DW   0
         :B   DW   0
         :L   DW   0                                 lade dw x
         :T   DW   1                                 zwischenspeichern in dw1
         :L   MW 200
         :L   KF +1
         :+F                                         erzeuge index +1
         :T   DW   0                                 neuer index
         :L   DW   1                                 zwischengespeichertes dw x
         :B   DW   0
         :T   DW   0                                 im neuen index speichern
         :
         :L   MW 200                                 index -1
         :L   KF +1
         :-F
         :T   MW 200
         :L   MW 200
         :L   KF +2                                  erstes nutzwort erreicht
         &#58;><F
         &#58;SPB =M002                                  sprung bei nein
         &#58;L   MW 202                                 ablagedaten
         &#58;T   DW   3                                 im dw 3 speichern
    M001 &#58;BE
    für doppelworte hab ich einen ähnlichen, aber im mom nicht zur hand.
    falls interesse besteht.....

    siehe auch in meinem downloadbereich
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download auf meiner HP
    zum Download im Internet (Backup nicht unbedingt aktuell)

  5. #15
    Anonymous Gast

    Default

    Quote Originally Posted by volker
    ich hab hier einen fb für s5 den ich vor einiger zeit mal geschrieben habe.

    funktioniert folgendermassen:

    mit der steigenden flanke daten eintragen werden alle dw's um eins nach unten geschoben und der neue wert oben eingetragen. der unterste wert fällt raus.

    Code:
    FB 101                               E&#58;EIGENEST.S5D                    LAE=88   
                                                                           Blatt   1
    Netzwerk 1                   Ein Wort in Fifo speichern
    
    ===============================================================================
    Beschreibt einen DB beginnend ab DW3 &#40;beschreibt jedes Wort&#41;
    
    EINT = Daten eintragen anstossen.
    FIDB = FIFO-DB
    DADB = Daten-DB
    FLAN = Flankenmerker zum Daten eintragen
    IMPU = Impulsmerker zum Daten eintragen
    DATE = Daten zum Ablegen
    NUWO = Anzahl der Nutzworte
    ===============================================================================
    Name &#58;FIFO-EIN
    Bez  &#58;EINT      E/A/D/B/T/Z&#58; E  BI/BY/W/D&#58; BI
    Bez  &#58;FIDB      E/A/D/B/T/Z&#58; B
    Bez  &#58;DADB      E/A/D/B/T/Z&#58; B
    Bez  &#58;FLAN      E/A/D/B/T/Z&#58; A  BI/BY/W/D&#58; BI
    Bez  &#58;IMPU      E/A/D/B/T/Z&#58; A  BI/BY/W/D&#58; BI
    Bez  &#58;DATE      E/A/D/B/T/Z&#58; E  BI/BY/W/D&#58; W
    Bez  &#58;NUWO      E/A/D/B/T/Z&#58; D  KM/KH/KY/KC/KF/KT/KZ/KG&#58; KF
     
         &#58;                                           EINT=Daten eintragen anstossen
         &#58;                                           FIDB=FIFO-DB
         &#58;                                           DADB=Daten-DB
         &#58;                                           FLAN=Flankenmer.zum Daten eint>
         &#58;                                           IMPU=Impulsmer.zum Daten eintr.
         &#58;                                           DATE=Daten zum ablegen
         &#58;                                           NUWO=Anzahl der Nutzworte
         &#58;***
    
    Netzwerk 2
         &#58;AWL
         &#58;UN  =EINT                                  Daten eintragen anstossen
         &#58;RB  =FLAN                                  Flankenmerker ruecksetzen
         &#58;U   =EINT
         &#58;UN  =FLAN
         &#58;S   =FLAN
         &#58;=   =IMPU                                  Impulsmerker
         &#58;
         &#58;UN  =IMPU
         &#58;SPB =M001
         &#58;
         &#58;B   =DADB                                  Daten - DB
         &#58;L   =DATE                                  Daten zum abspeichern
         &#58;T   MW 202
         &#58;
         &#58;B   =FIDB                                  fifo-db
         &#58;LW  =NUWO                                  Anzahl nutzworte
         &#58;L   KF +2                                  endadresse -1 erzeugen
         &#58;+F
         &#58;T   MW 200                                 index
         &#58;
    M002 &#58;L   MW 200                                 lade index dw x
         &#58;T   DW   0
         &#58;B   DW   0
         &#58;L   DW   0                                 lade dw x
         &#58;T   DW   1                                 zwischenspeichern in dw1
         &#58;L   MW 200
         &#58;L   KF +1
         &#58;+F                                         erzeuge index +1
         &#58;T   DW   0                                 neuer index
         &#58;L   DW   1                                 zwischengespeichertes dw x
         &#58;B   DW   0
         &#58;T   DW   0                                 im neuen index speichern
         &#58;
         &#58;L   MW 200                                 index -1
         &#58;L   KF +1
         &#58;-F
         &#58;T   MW 200
         &#58;L   MW 200
         &#58;L   KF +2                                  erstes nutzwort erreicht
         &#58;><F
         &#58;SPB =M002                                  sprung bei nein
         &#58;L   MW 202                                 ablagedaten
         &#58;T   DW   3                                 im dw 3 speichern
    M001 &#58;BE
    für doppelworte hab ich einen ähnlichen, aber im mom nicht zur hand.
    falls interesse besteht.....

    siehe auch in meinem downloadbereich
    oder meinen hääää

  6. #16
    Join Date
    20.06.2003
    Location
    Sauerland.NRW.Deutschland
    Posts
    5,451
    Danke
    99
    Erhielt 923 Danke für 628 Beiträge

    Default

    Quote Originally Posted by Anonymous
    oder meinen hääää
    muss ich das jetzt verstehen?


    übrigens habe ich den fifo für s7 angepasst.

    im fifo_blk sind jetzt drin:
    blockfifo,fifo für 1 byte, fifo für 1 wort, fifo für 1 doppelwort.

    auf meiner hp.
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download auf meiner HP
    zum Download im Internet (Backup nicht unbedingt aktuell)

  7. #17
    Join Date
    14.01.2004
    Location
    Hattorf
    Posts
    3,251
    Danke
    297
    Erhielt 312 Danke für 266 Beiträge

    Default

    Hallo,
    ist doch immer wieder schön, wenn jemand was zu meckern hat, bloß zu 99% als anonymer Gast, ist doch merkwürdig, oder sollte System dahinterstecken :P .

    Man sollte schon genung Mut haben, wenn man solche Äußerungen hier losläßt, sich mit Namen einzuloggen.

    mfg

    dietmar

  8. #18
    Anonymous Gast

    Default

    Wenn es schnell gehen soll!!



    DB12 und DB13 anlegen.

    UN Bedingung
    SPB ENDE

    CALL SFC 20
    SRCBLK :=P#DB12.DBX0.0 BYTE 100
    RET_VAL:=MW206
    DSTBLK :=P#DB13.DBX0.0 BYTE 100

    CALL SFC 20
    SRCBLK :=P#DB13.DBX0.0 BYTE 100
    RET_VAL:=MW208
    DSTBLK :=P#DB12.DBX1.0 BYTE 100

    L 0
    T DB12.DBB 1

    ENDE: NOP0


    Gruss Rainer
    Reply With Quote Reply With Quote FIFO S7  

  9. #19
    Join Date
    05.11.2008
    Posts
    33
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Quote Originally Posted by volker View Post
    muss ich das jetzt verstehen?


    übrigens habe ich den fifo für s7 angepasst.

    im fifo_blk sind jetzt drin:
    blockfifo,fifo für 1 byte, fifo für 1 wort, fifo für 1 doppelwort.

    auf meiner hp.
    Hallo volker,
    es ist nun zwar schon 6 Jahre her aber deine Hompage besteht ja noch
    Nur finde ich leider den Fifo Download nicht.

    Grüße Robin T.
    Last edited by mrdoc; 22.06.2011 at 21:53.

Similar Threads

  1. Replies: 3
    Last Post: 12.06.2019, 16:37
  2. Step 7 Rechnen mit 32bit UInt
    By roman06 in forum Simatic
    Replies: 20
    Last Post: 11.11.2017, 19:27
  3. Replies: 4
    Last Post: 25.07.2017, 09:23
  4. Modbus RTU Gateway mit Puffer gesucht
    By Medium in forum Feldbusse
    Replies: 6
    Last Post: 27.05.2014, 09:19
  5. Step 7 32Bit Zähler mit Drehgebersignalauswertung + Richtung
    By Xplosion in forum Simatic
    Replies: 5
    Last Post: 28.06.2013, 20:48

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •