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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Was macht SCL denn da mit dem AR2?

  1. #1
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Code:
    A7f4: CLR   
          U     #tmp_high_actuated
          =     #Timer_high_Fault.IN
          L     #Para.TVZ_high
          T     #Timer_high_Fault.PT
          +AR2  P#46.0
          UC    "TON"
          +AR2  P#8146.0
          U     #Timer_high_Fault.Q
          =     #Status.high
          L     #Timer_high_Fault.ET
          T     #Status.Timer_high_Rest
          U     #tmp_low_actuated
          =     #Timer_low_Fault.IN
          L     #Para.TVZ_low
          T     #Timer_low_Fault.PT
          +AR2  P#68.0
          UC    "TON"
          +AR2  P#8124.0
          U     #Timer_low_Fault.Q
          =     #Status.low
          L     #Timer_low_Fault.ET
          T     #Status.Timer_low_Rest
          U     L      0.3
          SAVE  
          BE
    46 und 68 sind die Adr. im Instanz DB. Aber wofür benötigt er dieses und was macht er mit den 8124 und 8146?

    Ist es nicht auch gefährlich in einem FB mit dem AR2 rumzuspielen?

    pt
    Gegen Schwachsinn, Schwachköpfe und armselige Trittbrettfahrer kann man nicht argumentieren.

    Gott sieht alles, auch Signaturen in Geheimschrift,,... aber er petzt nicht.
    Zitieren Zitieren Was macht SCL denn da mit dem AR2?  

  2. #2
    Registriert seit
    29.01.2004
    Beiträge
    322
    Danke
    10
    Erhielt 22 Danke für 22 Beiträge

    Standard

    Hallo pt
    Kenne mich mit SCL gar nicht gut aus, weiss aber das das AR2 von Step7 bei multiinstanzen als Basisadressregisterverwendet wird. 46 und 68 scheint, wie du schon geschrieben hast, die Zeiger auf die TONs zu sein. Warum danach die 8000er werte kommen kann ich mir auch nicht vorstellen. Ist den der InstanzDB so groß?

    Gruß

    Andreas

  3. #3
    Registriert seit
    30.08.2003
    Beiträge
    2.196
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Hallo PT,

    wenn man in FBs das AR2 verwendet dann sollte man es immer vorher sichern und anschliessend restaurieren.

    MfG
    André Räppel
    Zitieren Zitieren AR2  

  4. #4
    plc_tippser ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard

    Der Instanz-DB ist 86 Byte lang.


    Komischerweise wird das AR2 nicht vorher gesichert. Es taucht das erste mal in dem Frakment auf, das ich oben gepostet habe.

    Also kann ich das AR2 schon in einem FB nutzen, sollte es nur vorher temporär speichern und nach der Nutzung wiederherstellen!?

    Gruß, pt
    Gegen Schwachsinn, Schwachköpfe und armselige Trittbrettfahrer kann man nicht argumentieren.

    Gott sieht alles, auch Signaturen in Geheimschrift,,... aber er petzt nicht.

  5. #5
    Registriert seit
    29.01.2004
    Beiträge
    322
    Danke
    10
    Erhielt 22 Danke für 22 Beiträge

    Standard

    Hallo SPS-Concept
    Ich habe gelesen, dass das AR2 nur bei FBs mit Multiinstanzen gesichert werden muß. Bei "normalen" FBs spielt es keine Rolle. Oder hast du da andere Erfahrung?

    Gruß

    Andreas

  6. #6
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Die Werte mit 8xxx ergänzen 46 bzw. 68 zu 8192. Meine Vermutung ist, daß der gesamte addressierbare Bereich hier 8192 Bits=1024 Bytes ist. Die "Addition" von 8146.0 ist dann eigentlich eine Subtraktion, die das Register auf den alten Wert bringt.
    Da die Übergabe der Werte an den aufgerufenen Baustein TON über den Lokaldatenstack erfolgt, sollte AR2 auch dahin zeigen. Auf diese Weise bekommt der Baustein TON eine Kopie des Lokaldatenstacks ab 46.0 bzw 68.0 "zu sehen".

  7. #7
    Registriert seit
    29.01.2004
    Beiträge
    322
    Danke
    10
    Erhielt 22 Danke für 22 Beiträge

    Standard

    @Zottel
    Du meinst der SCL-Compiler schiebt das AR2 damit wieder auf die Adresse 0.0, oder?

    Gruß

    Andreas

  8. #8
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    aus einem schlauen buch.

    • s7 verwendet bei multiinstanzfähigen funktionsbausteienen das ar2 als basisadressregister für instanzdaten. beim aufruf einer instanz steht p#dbx0.0 im ar2 und alle zugriffe auf bausteinparameter oder statische lokaldaten im fb verwenden die registerindirekte bereichsinterne adressierung mit dem operandenbereich di über dieses register. ein aufruf eine lokalinstanz erhöht mit +ar2 p#y.x die basisadresse, so dass innerhalb des aufgerufenen fb, der den instanz-db des aufgerufenen fb verwendet, relativ zu dieser adresse zugeriffen werden kann. auf diese weise können fb sowohl als eigenständige instanz als auch als lokalinstanz(und hier an beliebiger stelle in einem fb, auch mehrfach) aufgerufen werden.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  9. #9
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von Znarf
    @Zottel
    Du meinst der SCL-Compiler schiebt das AR2 damit wieder auf die Adresse 0.0, oder?
    Ja so ähnlich. Einige Dinge wären interessant zu wissen:
    1. Ob der FB von PLC_tippser multinstanzfähig ist.
    2. Wie der Aufruf diese FB aussieht, insbesondere ob der Compiler dort das AR2 auf einen definierten Wert setzt. Das könnte aber auch die Firmware beim Eintritt in einen FB tun.
    3. Ob der so von SCL generierte FB als "normaler" FB verwendbar ist.
    4. Wie groß der gesamte Bereich der Lokaldaten der CPU ist.

  10. #10
    Registriert seit
    29.01.2004
    Beiträge
    322
    Danke
    10
    Erhielt 22 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zottel
    zu 1 würde ich sagen, das der FB von pt eine Multiinstanz sein muß, da er ja den SFB3 (TON) aufruft, der ja auch instanziert werden muss.

    zu 2 würde ich auf Volker zurückgreifen, der schreibt, dass beim Aufruf einer Instanz P#DBX0.0 ins AR2 geladen wird (Habe übrigens das gleiche Buch wie Volker )

    zu 3 würde ich sagen, dass wenn pt die TONs weglässt, dann müsste er einen normalen FB haben.

    zu 4 habe ich herausgefunden das bei den CPUs bis 317 der L-Stack pro Prioritätsklasse (also pro OB-Aufruf) fest auf 256Bytes eingestellt ist

    Gruß

    Andreas

Ähnliche Themen

  1. Sagt mal, bin ich denn der einzigste...
    Von IBN-Service im Forum Stammtisch
    Antworten: 7
    Letzter Beitrag: 20.12.2010, 07:53
  2. Was sind denn IEC-Timer?!
    Von MikeJ im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 03.05.2010, 23:02
  3. Wo ist denn UG
    Von jabba im Forum Stammtisch
    Antworten: 2
    Letzter Beitrag: 13.12.2009, 12:01
  4. Wer macht denn Sowas ??
    Von mega_ohm im Forum Stammtisch
    Antworten: 143
    Letzter Beitrag: 24.10.2007, 09:54
  5. ICQ? was ist denn das
    Von plc_tippser im Forum Stammtisch
    Antworten: 4
    Letzter Beitrag: 02.08.2004, 08:31

Lesezeichen

Berechtigungen

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