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

Ergebnis 1 bis 8 von 8

Thema: Fifo mit 4 Teile

  1. #1
    Registriert seit
    26.07.2009
    Ort
    Bayern
    Beiträge
    23
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Habe einen Baustein der für 8 Teile geschrieben wurde. (FC97)
    Er wurde nie fertig gestellt.
    Dann bin ich auch der Meinung das die Parametrierung nicht richtig ist.
    Die letzten 2 Teile wurde als Temporäre Variable angelegt.
    Ich denke es müßen alle 8 Teile als Input Variable angelegt sein.
    Das nächste Problem ist das die CPU in Stop geht.
    Das Problem laut Fehler-Code 80B1 vom "RetVal".

    Der FC96 ist für 4 Teile was mir persönlich lieber wäre.
    Der Baustein funktioniert aber auch nicht.

    Datenbausteine werden im RAM der CPU angelegt aber das wars dann auch schon.

    Ist das so überhaupt möglich? Oder wäre nicht ein FB mit Instanzdatenbaustein besser.

    Könnt ihr mir helfen dabei helfen wo der Fehler ist.

    Mfg Tom
    Angehängte Dateien Angehängte Dateien
    Zitieren Zitieren Fifo mit 4 Teile  

  2. #2
    Registriert seit
    31.03.2010
    Beiträge
    335
    Danke
    3
    Erhielt 33 Danke für 32 Beiträge

    Standard

    Was willst du schaffen?Das der Baustein in der CPU läuft oder soll der Baustein verbessert werden?
    Wäre auch noch interessant was wo in dem DB abgelegt ist und was damit gemacht werden soll?
    So ist das ganze ein undurchsichtiges Blatt!


    Der FC 96 läuft zwar aber der ergibt irgendwie keinen sinn!!
    Musste hier beim Aufruf Ceat_Db noch etwas hinzufügen und tzwar das Attrib!
    Hast du den Baustein schon mal am laufen gehapt?

    Mfg
    Geändert von SCM (05.03.2012 um 21:05 Uhr)
    Wer aufhört, besser zu werden, hat aufgehört, gut zu sein!

  3. #3
    tommylik ist gerade online Neuer Benutzer
    Themenstarter
    Registriert seit
    26.07.2009
    Ort
    Bayern
    Beiträge
    23
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo SCM,

    Vielen Dank für deine Antwort.

    Ich möchte das der Baustein in der CPU läuft wenn es ohne Verbesserung nicht geht soll es mir Recht sein.
    Ich weiß nur das da vom Creat_DB Virtuelle DB's im RAM angelegt werden. Zum Daten hin und herschieben.
    Das ganze sollte für 2 Roboter genutzt werden die einen Speicher mit 4 Türen haben.
    Der eine legt ein und der andere nimmt wieder raus.

    Ich selbst habe den Baustein nicht zum laufen bekommen, wie ich oben schon geschrieben hatte geht die CPU in STOP.
    Die Orginalversion ist der FC97 aber ich habe nur 4 Teile für die Eingänge zur Verfügung.

    Warum ergibt der FC96 keinen Sinn?
    Dann müßte doch der FC97 auch keinen Sinn ergeben, er hat nur mehr Fächer zur Verfügung.

    Mir wurde der Baustei zur verfügung gestellt damit ich einen Anfang habe.
    Ich wollte mich nicht bloß stellenvor meinen Kollegen, aber ich habe nicht viel Ahnung von AWL.

    Deswegen habe ich mich an Euch Profis gewendet.

    Vielleicht ist es ja möglich den FC 97 so umzuschreiben das man ihn für 4, 6 oder 8 Teile verwendet.
    Durch eine Eingang gibt man die Anzahl vor.
    Die Plätze die nicht genutz werden könnte man mit einem Low Bit beschalten.

    Vielen Dank noch mal für deine Hilfe

    MFg Tom
    Zitieren Zitieren Fifo mit 4 Teile  

  4. #4
    Registriert seit
    21.10.2010
    Beiträge
    158
    Danke
    21
    Erhielt 29 Danke für 17 Beiträge

    Standard

    Warum verwendest du nicht den FC90 (Word Shift Register) aus der Standard-Bibliothek?
    Damit die CPU nicht stoppt, solltest du den OB121 (Programming Error) laden, ich lade aber immer auch OB82, OB85, OB86, OB87 und OB122.

  5. #5
    Registriert seit
    05.01.2009
    Ort
    69198 Schriesheim
    Beiträge
    236
    Danke
    54
    Erhielt 34 Danke für 33 Beiträge

    Standard

    Hallo,
    also die CPU geht in den Stop weil kein Platz mehr für einen DB ist.
    Du erzeugst permanent Datenbausteine in den Grenzen
    LOW_LIMIT := W#16#A,
    UP_LIMIT := W#16#50,
    wenn die Grenze in diesem Fall DB 80 erreicht ist geht die CPU in den Stop .
    Auch hier ist ein Unterschied zu dem FC96 zu erkennen ( von A bis F ).
    Und überhaupt
    Er wurde nie fertig gestellt.
    was heißt das nun genau kann er was oder nicht ( weshalb sollte ich mir Gedanken über einen Baustein machen der nicht funktioniert ? ) dann programmiere doch lieber deinen eigenen FC der das der Anwendung entsprechende leistet.

    Es ist extrem schwierig mit solchen Aussagen
    Ich möchte das der Baustein in der CPU läuft wenn es ohne Verbesserung nicht geht soll es mir Recht sein.
    Ich weiß nur das da vom Creat_DB Virtuelle DB's im RAM angelegt werden. Zum Daten hin und herschieben.
    Das ganze sollte für 2 Roboter genutzt werden die einen Speicher mit 4 Türen haben.
    Der eine legt ein und der andere nimmt wieder raus.

    gruß Thomas

  6. #6
    Registriert seit
    31.03.2010
    Beiträge
    335
    Danke
    3
    Erhielt 33 Danke für 32 Beiträge

    Standard

    So seh ich das auch!Mach doch einen Baustein der deinen Vorstellungen entspricht!
    Der FC96 läuft wie gesagt bei mir! Jedoch ist der ganze Baustein meiner Meinung nach nicht besonders übersichtlich bzw. gut aufgebaut das ist jedoch ansichtsache!!


    Laut deiner Beschreibung was der Baustein können muss ist es doch nicht schwer!Der Roboter der einlegt kann nur einlegen wenn das fach leer ist oder?
    Der Robotor der etwas raus nimmt kann das nur wenn etwas drinnen ist?

    Also brauchst du ja nur zu wissen wo der Roboter steht damit du weißt welchen Fach du die Information geben musst das eingelegert bzw. ausgelagert wurde!

    Was willst du sonst noch so wissen?Wo als letztes eingetragen bzw. ausgetragen wurde?

    Mfg
    Wer aufhört, besser zu werden, hat aufgehört, gut zu sein!

  7. #7
    Registriert seit
    20.04.2010
    Ort
    Rostock an der Warnow
    Beiträge
    47
    Danke
    7
    Erhielt 9 Danke für 8 Beiträge

    Unglücklich

    Hallo,

    der FC96 läuft bei mir nur zusammen mit dem OB121, weil er fehlerhaft ist.
    Der SFC 22 darf nur einmal aufgerufen werden, um die DB's zu erzeugen. Beim nächsten Zyklus sind die DB's ja vorhanden und
    der SFC 22 erzeugt die Fehlermeldung 80B1 ( siehe auch Beschreibung SFC22 ).

    " 80B1 Es ist keine DB-Nummer frei. "
    "DB_NUMBER OUTPUT WORD E, A, M, D, L Die Datenbausteinnummer ist die Nummer des erstellten Datenbausteins.
    Im Fehlerfall (Bit 15 von RET_VAL wurde gesetzt) wird in DB_NUMBER
    der Wert 0 eingetragen. "

    L #DB_No // #DB_No ist jetzt = 0
    L 0
    >I
    CLR
    SAVE
    BEB // Der Baustein wird nicht beendet
    AUF DB [#DB_No] // Aufruf des "DB 0", den es in der S7 nicht gibt !!!

    Gruß Kalle
    Zitieren Zitieren Sfc22 - create_db  

  8. #8
    Registriert seit
    05.01.2009
    Ort
    69198 Schriesheim
    Beiträge
    236
    Danke
    54
    Erhielt 34 Danke für 33 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo nochmal,

    was das Datenbausteinhandling angeht könntest du zunächst prüfen ob vorhanden, und wenn nicht erzeugen z.B.:
    Code:
     
         U     #erster_Zyklus              //im ersten Zyklus muß die kleinste DB Nummer geschrieben werden
          SPBN  nore                        //Aussprung bei VKE 0
          L     W#16#A                      //Anfangs DB Adresse einrichten
          T     #Datenbausteinnummer        //in Statische Variable kopieren
          SET                               //VKE auf 1 setzen
          S     #Hilfsmerkerarray[0]        //Hilfsmerker setzen
    nore: NOP   0                           //Sprungziel bei nicht erster Zyklus
       
       U     #Hilfsmerkerarray[0]        //Bedingung ob Hilfsmerker noch gesetzt ( DB Adresse < W#16#50 )
          SPBN  C001                        //Sprungziel
          CALL  "TEST_DB"                   //Aufruf der Systemfunktion
           DB_NUMBER :=#Datenbausteinnummer
           RET_VAL   :=#RET_Val_DB_Test
           DB_LENGTH :=#DB_Length
           WRITE_PROT:=#Protected
      
        L     #RET_Val_DB_Test            //Auswerten des Fehlercodes
          L     W#16#80B1                   //DB nicht vorhanden
          ==I                               // vergleich auf "DB nicht vorhanden"
          SPBN  ohne                        //Sprungziel wenn DB vorhanden
       
       CALL  "CREAT_DB"                  //Aufruf Systemfunktion erzeuge DB
           LOW_LIMIT:=#Datenbausteinnummer
           UP_LIMIT :=#Datenbausteinnummer
           COUNT    :=W#16#38
           RET_VAL  :=#Ret_Val_DB_Cre
           DB_NUMBER:=#DB_Number
    
    ohne: NOP   0                           //Sprungziel wenn DB vorhanden
          L     #Datenbausteinnummer        //Laden der  DB Nummer
          L     #DB_Number                     //vergleich ob gerade erzeugt
          ==i
          R     #Hilfsmerkerarray[0]        //DB´s erzeugt weiter im Programm
          BEB
    
     L     #Datenbausteinnummer        //Laden der  DB Nummer
    l 1
    +I                                //für laufende Nummer
          T     #Datenbausteinnummer        //neue DB Nummer
          L     W#16#50                     //lade w#16#50 für Bausteinanzahl Obergrenze
          >I                                //vergleich auf größer
        hier kommt die Reaktion wenn die DB Obergrenze überschritten ist
    dann sollte wenigstens mal die CPU im Run bleiben, und du weißt welcher DB relevant ist die Nummer
    wäre dann DB_Number.
    Ich denke du mußt wirklich nen FB dafür nehmen

Ähnliche Themen

  1. FIFO mit S7 ????
    Von moclam im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 24.10.2013, 10:43
  2. SCL FIFO mit zwei Ausgabewerten
    Von zloyduh im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 18.02.2012, 22:41
  3. FIFO Puffer mit 32Bit
    Von Anonymous im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 22.06.2011, 18:58
  4. Fifo mit SCL erstellen ???
    Von Chris30 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 11.07.2010, 10:09
  5. Schieberegister (FIFO) mit Pointer
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 31.03.2004, 18:55

Lesezeichen

Berechtigungen

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