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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 31

Thema: Any Pointer in multi FB

  1. #11
    Avatar von Farinin
    Farinin ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    15.10.2005
    Ort
    49586 Neuenkirchen
    Beiträge
    329
    Danke
    30
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, in Bezug auf deine Rückmeldung:
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Im Falle von "call FB1 , DB100" sollte der Code, so wie du ihn hast funktionieren.
    Im anderen Fall mußt du dem "LAR1 P##iKopplung" danach noch den Inhalt des AR2 hinzufügen.
    Also ich benutze "den anderen Fall" und suche halt die Lösung an welcher Stelle ich das AR2 aufrechnen muss!
    SG Farinin

  2. #12
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    also dann so :
    Code:
    LAR1 P##iKopplung
    +AR2
    // ... und dann weiter im Text (wie in deinem Code)

  3. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Farinin (23.02.2011)

  4. #13
    Avatar von Farinin
    Farinin ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    15.10.2005
    Ort
    49586 Neuenkirchen
    Beiträge
    329
    Danke
    30
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Ok, vielen Dank vorab. Werde ich gleich testen!
    SG Farinin

  5. #14
    Avatar von Farinin
    Farinin ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    15.10.2005
    Ort
    49586 Neuenkirchen
    Beiträge
    329
    Danke
    30
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Hallo Larry. Ich habe das nun so getestet.
    Code:
          LAR1  P##iKoppeladresse
          +AR2  
          L     W [AR1,P#4.0]               // Datenbausteinnummer
          T     #tDB
          L     D [AR1,P#6.0]               // Bereichszeiger
          SLD   8
          SRD   8
          LAR1  
          AUF   DB [#tDB]
    Der Aufruf des DB's klappt auch, aber die Berechnung der Anfangsadresse nicht. Muß da auch noch ein Offset addiert werden?
    SG Farinin

  6. #15
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    ... die Anfangsadresse des ANY-Pointers ist der Bit-Pointer auf deine Ziel-Adresse (also um den Faktor 8 höher) aber für die Indexierung korrekt.
    Du solltest also als Zahlenwert Hex120 oder dez. 288 drin stehen haben ...

  7. #16
    Avatar von Farinin
    Farinin ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    15.10.2005
    Ort
    49586 Neuenkirchen
    Beiträge
    329
    Danke
    30
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Ich habe es getestet und der Bereichszeiger wird auch beim Aufruf auch korrekt errechnet. Aber beim zweiten Aufruf des DB's errechnet sich die gleiche Adresse, obwohl von außen eine andere übergeben wird.
    SG Farinin

  8. #17
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Erklär mal genauer ... beim 2. Aufruf des DB's ???
    Vielleicht auch mal mit etwas (mehr) Code ...

  9. #18
    Avatar von Farinin
    Farinin ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    15.10.2005
    Ort
    49586 Neuenkirchen
    Beiträge
    329
    Danke
    30
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Also genauer:
    Multiinstanzierter Aufruf:

    OB1
    + FB12 , DB12 // Antriebe
    + ... // Antrieb A (z.B. Motor (FB 200))
    + ... // Antrieb B (z.B. Ventil (FB 230))
    + ... // Antrieb C (z.B. Ventil (FB 230))
    + ... // Antrieb D (z.B. Motor (FB 200))

    Die Antriebe werden je Typ mit E/A's & mit einen Koppel DB (DB100) verschaltet. Bislang verfügen die FB's dann über einen Eingang vom Typ Block DB und einer Koppeladresse vom Typ Int.
    Code:
    AUF iDB_Nr
    L iKoppeladresse
    SLD 3
    LAR1
    Das hat aber den Nachteil, dass bei fehlerhafter Progammierung, über die Referenzdaten keine Suche möglich ist. Daher hatte ich die Idee den Any Pointer zu zerlegen und den entsprechenden DB zu öffnen und die Koppeladresse ins AR1 zu laden.
    Das hat zwei Vorteile. Zu einem findet man dies in den Referenzdaten und zum Anderen kann man den Pointer symbolisch programmieren.
    Angehängte Grafiken Angehängte Grafiken
    SG Farinin

  10. #19
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Ich fasse das jetzt noch mal zusammen - dein Code sieht nun so aus :
    Code:
        LAR1  P##iKopplung
          +AR2
          L     W [AR1,P#0.0]
          T     LW     0
          L     W [AR1,P#2.0]
          T    LW     2
          L     W [AR1,P#4.0]
          T     LW     4
          L     D [AR1,P#6.0]
          T     LD     6
     
          L     LW     4
          T     #tDB_No
     
          L     D [AR1,P#6.0]
          SLD   8
          SRD   8
          LAR1                     // hier legst du den übergebenen Pointer ins AR1
          AUF DB [tDB_No]    // hier schlägst du den im Pointer übergebenen DB auf
          L    W [AR1,p#0.0]  // mit den nun folgenden Lade-Befehlen würdest du den ANY-Pointer verwenden
    ... hast du es so ?

  11. #20
    Avatar von Farinin
    Farinin ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    15.10.2005
    Ort
    49586 Neuenkirchen
    Beiträge
    329
    Danke
    30
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ja genau so habe ich es
    SG Farinin

Ähnliche Themen

  1. PNOZ Multi Mini
    Von Anaconda55 im Forum Schaltschrankbau
    Antworten: 1
    Letzter Beitrag: 10.02.2011, 17:09
  2. Antworten: 17
    Letzter Beitrag: 06.08.2010, 09:41
  3. Multi-Instanzen
    Von JOKER83 im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 11.06.2009, 19:08
  4. multi touch TP´s
    Von cindy im Forum HMI
    Antworten: 1
    Letzter Beitrag: 14.11.2008, 15:06
  5. Multi FB`S
    Von MichaelHuf im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 23.07.2005, 16:19

Lesezeichen

Berechtigungen

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