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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 23

Thema: Speichern von Werten in einem Datenbaustein

  1. #11
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.224
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ohoh,

    es wäre tatsächlich sinnvoll, wenn du dir vorher entweder die S7-Hilfe oder noch besser ein Fachbuch oder die Tutorials auf der Siemens-Homepage zum Thema FC, FB, Instanz-DB durcharbeitest.

    Ein Instanz-DB wird beim Aufruf eines FB mit angegeben. Ist er nicht vorhanden, wird er vom System erstellt. Du solltest also zuerst mal deinen vorhandenen DB101 umbenennen und dann deinen FB-Aufruf nochmals neu erstellen. Alle Daten im Instanz-DB deines FB- kommen aus dem Deklarationsteil des FB. Wenn du selbst an den DB Hand anlegst und dort noch zusätzliche Datenanfügst oder welche löscht, wird er nicht mehr vom System akzeptiert, er wird rot dargestellt. Das Gleiche passiert, wenn dein DB101 eine ätere Version ist, also nicht mehr zu deinem zwischenzeitlich geänderten FB paßt.

    Daten im Nutz-DB, der dann wohl ein globaler DB ist, der keinem FB als Instanz-DB zugeordnet ist, kannst du natürlich von außen ändern, dazu ist er ja da, Daten in einem Instanz-DB solltest du nach möglichkeit nicht beschreiben, das sollte nur der FB tun, dem der DB "gehört".

    Dein Code ist so nicht richtig.

    Code:
    U  #Fahrauftrag1
    L  1
    T  DB101.DBW62.0
    
    U  #Fahrauftrag2
    L  2
    T  DB101.DBW62.0
    Das U #FahrauftragX wirkt sich nicht auf Ladebefehle aus, diese sind nicht (maxi hör gut zu ) VKE-abhängig.

    Also:

    Code:
          U     #Fahrauftrag1
          SPBN  NEX1
          L     1
          SPA   END
    
    NEX1: U     #Fahrauftrag2
          SPBN  NEX2
          L     2
          SPA   END
    
    NEX2: U     #Fahrauftrag3
    .
    .
    .
    
    END:  T     DB101.DBW   62
    Geändert von Ralle (04.10.2007 um 20:34 Uhr)
    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

  2. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    robertganss (04.10.2007)

  3. #12
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Code:
    U  #Fahrauftrag1
    SPBN NEX1
    L  1
    SPA ENDE
     
    NEX1: U  #Fahrauftrag2
    SPBN NEX2
    L  2
    SPA ENDE
     
    NEX2: ...
    .
    .
    .
     
    ENDE:  T  DB101.DBW62
    Eigentlich braucht man für diese paar Programmzeilen keinen FB, es sollte auch ein FC ausreichen.

    Also einfach einen FC2 mit dem Programmcode von Ralle erstellen.

    Gruß Kai

  4. Folgender Benutzer sagt Danke zu Kai für den nützlichen Beitrag:

    robertganss (04.10.2007)

  5. #13
    robertganss ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.10.2007
    Beiträge
    13
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen dank für die mühe !

    da ich versucht habe, durch möglichst wenig arbeit viel zu erreichen, habe ich vieles in dem tutorial bei siemens überflogen oder ausgelassen!
    werde in den nächsten wochen das mal nachholen. da es aber nur für private zwecke ist, wollte ich möglichst schnell zu einem ergebnis kommen.

    ich hätte aber noch eine frage:

    ich hab nirgends nachlesen können, wie ich im nachhinein herausfinde, ob ein DB ein instanz-DB oder ein glober ist.
    Ich weiss auch nicht wie ich an einem FB sehe, welchem Instanz-DB er zugeortnet ist.

    Ich selber hatte mir auch schon gedacht, ich schreibe diese programmzeilen in den dazugehörigen FB, aber wenn ich dann im OB den FB akualisiere, nimmt er mir auch nicht mehr den Datenbaustein an.

    Und jetzt werd ich mich ein wenig an die Unterlagen setzen und lernen.

    Vielen Dank im vorraus

  6. #14
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.224
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Gute Frage.

    1. Du kannst dir in den Referenzdaten die Programmstruktur anzeigen lassen. Dort steht neben einem FB, dessen IDB, allerdings nur, wenn der FB im Programm auch verwendet, also aufgerufen wird.

    2. In der Symboldatei steht bei einem IDB in der Spalte Datentyp der dazugehörige FB.
    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

  7. #15
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Um mir das zu sparen lege ich diese Kennung direkt im Symbol mit ab.
    DB_G bzw. DB_I_FBxxxx

    GRüße dtsclipper!
    Das Grauen lauert in der Zwischenablage !!

  8. #16
    robertganss ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.10.2007
    Beiträge
    13
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi,

    nach allen Hilfen die ich erhalten habe, bin ich leider auf keinen grünen Zweig gekommen.
    Ich hab jetzt das Programm im Anhang beigefügt, wer Lust hat eine Blick drüber zu werfen würde mir eine große Freude machen.
    Der NutzDB ist der Db 101 und im FB2 hab ich versucht auf ihn zuzugreifen!
    Hat nicht funktioniert, hab wahrscheinlich noch viel zu wenig Ahnung von dem ganzen!!
    Wenns jemand schafft mir nur den FB2 richtig zu erstellen und ihn den OB einzufügen wäre mir sehr viel geholfen.

    Vielen Dank
    Angehängte Dateien Angehängte Dateien

  9. #17
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Du hast in Deinem Programmcode eine Endlosschleife drin:

    Code:
          U     #Fahrsatz1
          SPBN  NEX1
          L     1
          SPA   ENDE
     
    NEX1: U     #Fahrsatz2
          SPBN  NEX2
          L     2
          SPA   ENDE
     
    NEX2: U     #Fahrsatz3
          SPBN  NEX3
          L     3
          SPA   ENDE
     
    NEX3: U     #Fahrsatz4
          SPBN  NEX1
          L     4
          SPA   ENDE
     
    ENDE: T     DB101.DBW   62
    Außerdem brauchst Du für diese paar Zeilen Programmcode keinen FB und damit auch keinen Instanz-DB.

    Du solltest also folgendes machen:

    Deinen FB2 löschen und einen neuen FC2 mit folgendem Programmcode anlegen:

    Code:
          U     #Fahrsatz1
          SPBN  NEX1
          L     1
          SPA   AUSG
     
    NEX1: U     #Fahrsatz2
          SPBN  NEX2
          L     2
          SPA   AUSG
     
    NEX2: U     #Fahrsatz3
          SPBN  NEX3
          L     3
          SPA   AUSG
     
    NEX3: U     #Fahrsatz4
          SPBN  ENDE
          L     4
          SPA   AUSG
     
    AUSG: T     "NUDB".Axis.Motion_Task_No
     
    ENDE: BEA
    Gruß Kai

  10. #18
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Und der FB2/DB2 ( bzw. FC2 mit Kai's Änderung !!! ) ist nirgendwo aufgerufen.

    Und Obacht: Im FB10 NW12 wird das DW62 vom DW90 überschrieben.
    Vermutlich ein REset to Default, aber leider nicht kommentiert.
    Das DW90 ist aber im DB nicht existent, könnte also zu problemen führen.

    Grüße dtsclipper
    Das Grauen lauert in der Zwischenablage !!

  11. #19
    robertganss ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.10.2007
    Beiträge
    13
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank für die Programmkorrektur !

    das mit dem Verweis im FB10 auf DBW 90 hatte ich gewusst, hatte nicht aktuelle version geschickt, aber vielen dank, dass ihr euch so damit beschäftig habt.
    Was mir jetzt noch sehr am Herzen liegen würde: Da der FB2 (jetzt FC2) auf den DB101 zugreift muss man das ja auch im OB angeben?! Also wenn man den FB2 im OB aufruft, und dann den DB101 (NutzDB) beim FB2 einträgt, erscheint er rot, wenn das noch gelöst werden kann, wären meine Probleme gelöst !

    Robert

  12. #20
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von robertganss Beitrag anzeigen
    Was mir jetzt noch sehr am Herzen liegen würde: Da der FB2 (jetzt FC2) auf den DB101 zugreift muss man das ja auch im OB angeben?! Also wenn man den FB2 im OB aufruft, und dann den DB101 (NutzDB) beim FB2 einträgt, erscheint er rot, wenn das noch gelöst werden kann, wären meine Probleme gelöst !
    Der DB, der am FB2 eingetragen wird, ist der so genannte Index-DB des FB2. Der Index-DB wird dem FB2 zugeordnet und enthält interne Daten des FB2. Als Index-DB für den FB2 muss man einen neuen, noch nicht verwendeten DB auswählen. Als Index-DB kann man z. B. den DB2 auswählen.

    Der DB101 hingegen ist ein globaler DB, der keinem FB direkt zugeordnet ist. Der DB101 kann Daten für alle FBs und FCs im Programm enthalten, d. h. alle Bausteine können auf den DB101 zugreifen. Der DB101 wird im Programm schon verwendet und kann daher nicht als Index-DB für den FB2 verwendet werden. Wenn man den DB101 am FB2 einträgt, erscheint er also rot.

    Gruß Kai

Ähnliche Themen

  1. Online Datenbaustein mit Werten in Excel
    Von NAT_SS im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 06.08.2015, 16:33
  2. Step 7, Datenbaustein online speichern
    Von WIX im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 27.11.2010, 13:29
  3. Zeiten zyklisch in einem DB speichern
    Von Sebastian im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 28.03.2006, 15:58
  4. speichern bei einem ereignis
    Von Anonymous im Forum Hochsprachen - OPC
    Antworten: 11
    Letzter Beitrag: 20.12.2005, 13:42
  5. wie lege ich daten in einem Datenbaustein mit arrays ab ?
    Von Tom100 im Forum Programmierstrategien
    Antworten: 7
    Letzter Beitrag: 03.06.2005, 09:03

Lesezeichen

Berechtigungen

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