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

Ergebnis 1 bis 4 von 4

Thema: Schieberegister (FIFO) mit Pointer

  1. #1
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi
    Ich habe hier eine kleine Aufgabe:
    Ich möchte über eine längere Bandstrecke den Teiletyp verfolgen. Am Anfang des Bandes laufen Teile mit verschiedenen Typnummern (1-10) ein. Am Ende des Bandes, wenn diese Teile wieder ausfahren, möchte ich die Typnummer des entsprechenden Teiles wieder wissen. Die Erkennung, wann ein Teil ein- bzw ausläuft erfolgt über Sensoren. Auf dem Band haben maximal 100 Teile Platz. Es handelt sich also um eine Art Schieberegister oder besser FIFO (First In, First Out).
    Bei der S5 haben wir ja sowas über die "Bearbeite"-Funktion B MW0 gemacht. Bei der S7 müßte das aber über Pointer bestimmt besser gehen.
    Wer hat eine gute Idee?
    Zitieren Zitieren Gelöst: Schieberegister (FIFO) mit Pointer  

  2. "NW1 Einlesen FIFO
    U(
    U DB2.DBX 4.0
    BLD 100
    FP DB2.DBX 4.4
    )
    SPBNB _001
    CALL FC 84
    DATA :=DB2.DBW0
    TABLE:=DB2.DBW10
    _001: U BIE
    = DB2.DBX 4.1
    NW2 Start Eintrag
    U DB2.DBX 4.1
    R DB2.DBX 4.0
    NW3 Auslesen FIFO
    U(
    U DB2.DBX 4.2
    BLD 100
    FP DB2.DBX 4.5
    )
    SPBNB _002
    CALL FC 85
    TABLE :=DB2.DBW10
    RET_VAL:=DB2.DBW2
    _002: U BIE
    = DB2.DBX 4.3
    NW4
    U DB2.DBX 4.3
    R DB2.DBX 4.2

    DB2
    Eingabedaten_FC84 WORD W#16#0 Eintrag in FIFO
    Ausgabedaten_FC85 WORD W#16#0 Austrag aus FIFO
    EN_Funktion_Start_FC84 BOOL FALSE Start Eintrag
    ENQ_Funktion_ok_FC84 BOOL FALSE Eintrag ok
    EN_Funktion_Start_FC85 BOOL FALSE Start Austrag
    ENQ_Funktion_ok_FC85 BOOL FALSE Austrag ok
    FHM_Eintrag BOOL FALSE Flankenhilfsmerker Eintrag
    FHM_Austrag BOOL FALSE Flankenhilfsmerker Austrag
    Reserve_6 ARRAY[1..4]
    BYTE
    Tabellenlaenge INT 6 FC84/FC85
    Anzahl_Eintraege INT 0 FC84/FC85
    Eintrag1 WORD W#16#0 FC84/FC85
    Eintrag2 WORD W#16#0 FC84/FC85
    Eintrag3 WORD W#16#0 FC84/FC85
    Eintrag4 WORD W#16#0 FC84/FC85
    Eintrag5 WORD W#16#0 FC84/FC85
    Eintrag6 WORD W#16#0 FC84/FC85
    Reserve_26 ARRAY[1..74]
    BYTE"


  3. #2
    Necki Gast

    Standard

    Ich werde mal nachsehen, wie ich es realisiert habe.
    Schon mal irgendwo gemacht, muß es aber erst noch prüfen!

    MfG
    Zitieren Zitieren Ich schaue mal nach  

  4. #3
    Registriert seit
    30.08.2003
    Beiträge
    2.187
    Danke
    30
    Erhielt 256 Danke für 227 Beiträge

    Standard

    Hallo jimmy,

    das geht nicht nur besser über Pointer, sondern nur über Pointer weil es die Bearbeitefunktion so nicht mehr gibt. Wenn du schon was aus S5-Zeiten hast, übersetz es und pass es an...

    MfG
    André Räppel
    Zitieren Zitieren Register  

  5. #4
    Anonymous Gast

    Standard

    NW1 Einlesen FIFO
    U(
    U DB2.DBX 4.0
    BLD 100
    FP DB2.DBX 4.4
    )
    SPBNB _001
    CALL FC 84
    DATA :=DB2.DBW0
    TABLE:=DB2.DBW10
    _001: U BIE
    = DB2.DBX 4.1
    NW2 Start Eintrag
    U DB2.DBX 4.1
    R DB2.DBX 4.0
    NW3 Auslesen FIFO
    U(
    U DB2.DBX 4.2
    BLD 100
    FP DB2.DBX 4.5
    )
    SPBNB _002
    CALL FC 85
    TABLE :=DB2.DBW10
    RET_VAL:=DB2.DBW2
    _002: U BIE
    = DB2.DBX 4.3
    NW4
    U DB2.DBX 4.3
    R DB2.DBX 4.2

    DB2
    Eingabedaten_FC84 WORD W#16#0 Eintrag in FIFO
    Ausgabedaten_FC85 WORD W#16#0 Austrag aus FIFO
    EN_Funktion_Start_FC84 BOOL FALSE Start Eintrag
    ENQ_Funktion_ok_FC84 BOOL FALSE Eintrag ok
    EN_Funktion_Start_FC85 BOOL FALSE Start Austrag
    ENQ_Funktion_ok_FC85 BOOL FALSE Austrag ok
    FHM_Eintrag BOOL FALSE Flankenhilfsmerker Eintrag
    FHM_Austrag BOOL FALSE Flankenhilfsmerker Austrag
    Reserve_6 ARRAY[1..4]
    BYTE
    Tabellenlaenge INT 6 FC84/FC85
    Anzahl_Eintraege INT 0 FC84/FC85
    Eintrag1 WORD W#16#0 FC84/FC85
    Eintrag2 WORD W#16#0 FC84/FC85
    Eintrag3 WORD W#16#0 FC84/FC85
    Eintrag4 WORD W#16#0 FC84/FC85
    Eintrag5 WORD W#16#0 FC84/FC85
    Eintrag6 WORD W#16#0 FC84/FC85
    Reserve_26 ARRAY[1..74]
    BYTE

Ähnliche Themen

  1. Pointer Zeiger FIFO LIFO
    Von plc_tippser im Forum FAQ
    Antworten: 1
    Letzter Beitrag: 22.02.2015, 18:53
  2. FIFO mit S7 ????
    Von moclam im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 24.10.2013, 10:43
  3. FIFO-Schieberegister mit Concept für Modicon Quantum
    Von Trajan im Forum Programmierstrategien
    Antworten: 0
    Letzter Beitrag: 14.04.2009, 13:54
  4. in ein Schieberegister per Pointer zugreifen
    Von Perfektionist im Forum Programmierstrategien
    Antworten: 16
    Letzter Beitrag: 25.08.2008, 16:17
  5. Fifo
    Von sweber im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 14.06.2007, 15:06

Lesezeichen

Berechtigungen

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