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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 26

Thema: Block_DB übergibt kein DB

  1. #1
    Registriert seit
    28.02.2006
    Ort
    Ostsee 5 min zum Strand
    Beiträge
    780
    Danke
    92
    Erhielt 110 Danke für 98 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin,
    ich bastel und probiere gerade etwas rum, da ich etliche Fehlermeldungen für 8 Heizzonen auswerten muss.
    Nun möchte ich die DBs als Block_DB an den FB übergeben.
    Aber im FB wird kein DB geöffnet, warum?

    CPU Vipa 315SN, anbei Bilder FB99 Online und OB1 der Aufruf.
    Der geöffnete DB ist immer 0, schreibe ich direkt im FB den DB rein (Auf DB61) funktioniert es natürlich
    Angehängte Grafiken Angehängte Grafiken
    Gruß von der Ostsee

    Nordischerjung
    _____________________

    Wenn man seinem Paßbild ähnlich zu sehen beginnt, sollte man schleunigst Urlaub machen. (Vico Torriani, schw. Entertainer)

    Ich habe eine Diät gemacht und fettem Essen und Alkohol abgeschworen - in zwei Wochen verlor ich 14 Tage. (Joe E. Lewis)
    Zitieren Zitieren Block_DB übergibt kein DB  

  2. #2
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zugriff im multiinstanzfähigen FB (Bausteinversion 2) auf einen Parameter vom Typ BLOCK_DB schlägt den DB 0 auf. Nachfolgende Datenzugriffe bringen die CPU in STOP. Bei TIMER, COUNTER, BLOCK_FC, BLOCK_FB wird auch immer T 0, Z 0, FC 0 bzw. FB 0 verwendet.
    ... step7 hilfe
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. #3
    Avatar von Nordischerjung
    Nordischerjung ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    28.02.2006
    Ort
    Ostsee 5 min zum Strand
    Beiträge
    780
    Danke
    92
    Erhielt 110 Danke für 98 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    ... step7 hilfe
    Wo hast du das denn gefunden?
    Bedeutet das, dass ich keine Multiinstanz mit dem mist machen kann?
    Oder muss ich das noch auf Int und dann Auf DB[INT]?
    Gruß von der Ostsee

    Nordischerjung
    _____________________

    Wenn man seinem Paßbild ähnlich zu sehen beginnt, sollte man schleunigst Urlaub machen. (Vico Torriani, schw. Entertainer)

    Ich habe eine Diät gemacht und fettem Essen und Alkohol abgeschworen - in zwei Wochen verlor ich 14 Tage. (Joe E. Lewis)

  4. #4
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Nordischerjung Beitrag anzeigen
    Wo hast du das denn gefunden?
    Bedeutet das, dass ich keine Multiinstanz mit dem mist machen kann?
    Oder muss ich das noch auf Int und dann Auf DB[INT]?
    MCR Funktionalität

    ich würds mit AUF DB[word/int] machen
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  5. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    Nordischerjung (31.01.2011)

  6. #5
    Avatar von Nordischerjung
    Nordischerjung ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    28.02.2006
    Ort
    Ostsee 5 min zum Strand
    Beiträge
    780
    Danke
    92
    Erhielt 110 Danke für 98 Beiträge

    Standard

    Ich dachte wegen Referenzliste und so,
    na toll, dann eben nicht
    Gruß von der Ostsee

    Nordischerjung
    _____________________

    Wenn man seinem Paßbild ähnlich zu sehen beginnt, sollte man schleunigst Urlaub machen. (Vico Torriani, schw. Entertainer)

    Ich habe eine Diät gemacht und fettem Essen und Alkohol abgeschworen - in zwei Wochen verlor ich 14 Tage. (Joe E. Lewis)

  7. #6
    Avatar von Nordischerjung
    Nordischerjung ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    28.02.2006
    Ort
    Ostsee 5 min zum Strand
    Beiträge
    780
    Danke
    92
    Erhielt 110 Danke für 98 Beiträge

    Standard

    Ich kämpfe hier immer noch mit Multi..

    Kann man folgendes vereinfachen?
    NW1
    Code:
     
          L     P##_p_fehler_fuehler        // IN_OUT Stör DB Pointer
          LAR1  
          L     W [AR1,P#0.0]               // erstes Wort des Pointers enthält die DB-Nr.
          T     #DB_Nr_Pointer              // DB Nr Störungs DB
    
          L     D [AR1,P#2.0]               // Bereichskennung. Byte u. Bitadresse 
          T     #Pointert_Bit
          LAR1                              // Pointer AR1
          LAR2                              // Pointer AR2
          L     P#16.0                      // + 16 Byte, da Quittbit um 16 Byte versetzt
          +AR2
    NW2
    Code:
          AUF   DB [#DB_Nr_Pointer]         // Auf DB Störung ermittelt aus IN_OUT Pointer
    
          U     #fehler_zone_1[0]           // DBX14.0 auf Temp übertragen s. NW Kommentar NW 3
          S      [AR1,P#0.0]                // Setze Störbit Bit x.0
    
          UN     [AR1,P#0.0]                // UN Störbit x.0
          R      [AR2,P#0.0]                // Reset Quittierbit x+16.0
    
          U      [AR2,P#0.0]                // Quittierbit
          UN    #fehler_zone_1[0]           // keine Fehler mehr
          R      [AR1,P#0.0]                // Störbit
    NW3
    Code:
          U     #fehler_zone_2[0]           // DBX14.0 auf Temp übertragen s. NW Kommentar NW 3
          S      [AR1,P#0.1]                // Setze Störbit Bit x.0
    
    
          UN     [AR1,P#0.1]                // UN Störbit x.0
          R      [AR2,P#0.1]                // Reset Quittierbit x+16.0
    
          U      [AR2,P#0.1]                // Quittierbit
          UN    #fehler_zone_2[0]           // keine Fehler mehr
          R      [AR1,P#0.1]                // Störbit
    Das ganze muss ich 8 mal aufrufen, für jede Zone.
    Des weiteren muss ich noch 7 weitere Fehler so auswerten.
    Im NW 1 P##p_fehler_fuehler wird dann ein anderer Pointer
    # fehler_zone_1[0] ist ein Array of Bool, in dem stehen die Bits für die entsprechenden Fehler z.B. Bit 0 = Fühler defekt, Bit 1 = Fühler falsch verdrahtet usw. denn habe ich für jede Zone

    Kann man das ganze irgend wie geschickter lösen oder muss ich tatsächlich 64x STRG+C und STRG+V und alles händisch ändern .
    Ich hab es auch schon mit Loop versucht, aber ich habe gerade ein knick in den Gehirnwindungen. Mir scheint mir fehlt mindestens ein LAR3. Oder denke ich zu kompliziert?
    Gruß von der Ostsee

    Nordischerjung
    _____________________

    Wenn man seinem Paßbild ähnlich zu sehen beginnt, sollte man schleunigst Urlaub machen. (Vico Torriani, schw. Entertainer)

    Ich habe eine Diät gemacht und fettem Essen und Alkohol abgeschworen - in zwei Wochen verlor ich 14 Tage. (Joe E. Lewis)

  8. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Hallo,
    ich stolpere gerade über dieses Ding ...
    Ich glaube du bringst mit der Multi-Instanz-Geschichte etwas durcheinander. Das folgende wäre wahrscheinlich das, was du eigentlich haben willst aber anscheinend nicht so machst :
    Code:
    Call FB8 , DB11
     
    Call FB8 , DB 12
     
    Call FB8 , DB13
     
    etc.
    ... von irgendwelchen Beschaltungen des FB mal abgesehen.
    Das kannst du so machen, wenn alles, was du dir "merken" will in dem FB in dem I-DB des FB abgelegt wird - das sind dann deine Variablen im STAT-Bereich desselben.
    Ferner müßtest du dann alle Informationen, die der FB von "aussen" benötigt über die Schnittstelle desselben (also die IN's und OUT's und IN_OUT's) übergeben.

    Ist es das ... oder denkst du an etwas völlig anderes ...?

    Gruß
    Larry

  9. #8
    Avatar von Nordischerjung
    Nordischerjung ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    28.02.2006
    Ort
    Ostsee 5 min zum Strand
    Beiträge
    780
    Danke
    92
    Erhielt 110 Danke für 98 Beiträge

    Standard

    Ich glaube du bringst mit der Multi-Instanz-Geschichte etwas durcheinander.
    Ne ich glaube nicht, ich weiß das ich mehrmals den gleichen FB aufrufen kann mit IDB im IDB des übergeordneten FB usw.
    Eigentlich wollte ich es nicht so verschachteln, 1 FB Störungen, in dem FB 4 FBs Störung Extruder in den FBs jeweils 56 FBs nur für die Heizung.
    Ich dachte es würde mit einer Schleife oder so einfacher werden.
    Wenn ich dann doch auf FBs gehen muss, wie übergebe ich dann diese Pointer geschichte, NW 1 bleibt in dem FB und NW 2 wird ein eigener?
    Gruß von der Ostsee

    Nordischerjung
    _____________________

    Wenn man seinem Paßbild ähnlich zu sehen beginnt, sollte man schleunigst Urlaub machen. (Vico Torriani, schw. Entertainer)

    Ich habe eine Diät gemacht und fettem Essen und Alkohol abgeschworen - in zwei Wochen verlor ich 14 Tage. (Joe E. Lewis)

  10. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    ... beschreib doch bitte mal genau, was es werden soll ...
    Den Weg, den ich denke, das du ihn gehen möchtest, finde ich nicht so toll ...

  11. #10
    Avatar von Nordischerjung
    Nordischerjung ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    28.02.2006
    Ort
    Ostsee 5 min zum Strand
    Beiträge
    780
    Danke
    92
    Erhielt 110 Danke für 98 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Na gut,

    ich habe 4 Extruder mit je 8 Heizungen. Jede Heizung hat 7 verschiedene Fehlermeldungen die ich auswerten möchte.
    Diese liegen als Bit im DBW14 des jeweiligen DBs vor.
    z.B. DB61.DBX14.0 == Fühlerbruch, DB61.DBX14.1 == Fühler falsch angeschlossen usw.
    Das möchte ich so kurz wie möglich auswerten. Am besten ein lockeren Zweizeiler
    Des wegen dachte ich an einer Schleife oder so, aber ich weiß Zykluszeit...
    ich dachte mir, da frag ich euch SPS Gurus mal, welchen weg ihr gehen würdet.
    Gruß von der Ostsee

    Nordischerjung
    _____________________

    Wenn man seinem Paßbild ähnlich zu sehen beginnt, sollte man schleunigst Urlaub machen. (Vico Torriani, schw. Entertainer)

    Ich habe eine Diät gemacht und fettem Essen und Alkohol abgeschworen - in zwei Wochen verlor ich 14 Tage. (Joe E. Lewis)

Ähnliche Themen

  1. Problem mit SCL-Baustein..Block_DB
    Von slani_bw im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 18.05.2008, 00:09
  2. Antworten: 4
    Letzter Beitrag: 26.04.2007, 21:05
  3. Block_DB typ als parameter übergeben ?
    Von michdan im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 19.02.2007, 17:59
  4. Block_DB über zwei funktionen weiterreichen
    Von plant1 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 13.08.2006, 15:17
  5. BLOCK_DB
    Von Lazarus™ im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 16.09.2005, 09:54

Lesezeichen

Berechtigungen

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