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

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

Thema: Arbeiten mit zwei Pointern im FB

  1. #1
    Registriert seit
    17.12.2008
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Unglücklich


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo
    ich möchte mit zwei Pointern im FB arbeiten. Im FC kann ich das ohne Probleme. Habe schon gelesen das der FB das AR2 benutzt.
    Hat jemand eine Lösung?

    Danke

    Gruß
    Ottokar


    L #Adr_DB1
    T #Pointer_DB1
    SLW 3
    LAR1

    L #Adr_DB2
    T #Pointer_DB2
    SLW 3
    LAR2


    AUF #DB1
    L DBW [AR1,P#20.0]

    AUF #DB2
    T DBW [AR2,P#0.0]
    Zitieren Zitieren Arbeiten mit zwei Pointern im FB  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.260
    Danke
    537
    Erhielt 2.707 Danke für 1.956 Beiträge

    Standard

    Sieh mal hier: http://www.sps-forum.de/showthread.p...ght=Offset+AR2

    Ansonsten aus reiner Faulheit und der Einfachheit vielleicht:

    L #Adr_DB1
    T #Pointer_DB1
    SLW 3
    LAR1

    AUF #DB1
    L DBW [AR1,P#20.0]
    T #Temp_Hilfsvar //Word im Bereich Temp

    L #Adr_DB2
    T #Pointer_DB2
    SLW 3
    LAR1

    L #Temp_Hilfsvar
    AUF #DB2
    T DBW [AR1,P#0.0]
    Wenn beim Umkopieren keinerlei Zugriff auf Variablen der Multiinstanz erfolgt, sollte es auch reichen, vor dem Kopieren das AR2 zu retten und nach dem kopieren das AR2 wieder herzustellen. bei Bedarf auch den offenen DB retten und wieder herstellen.

    TAR2 RETTAR2 //DWord im Temp-Verzeichnis

    L #Adr_DB1
    T #Pointer_DB1
    SLW 3
    LAR1

    L #Adr_DB2
    T #Pointer_DB2
    SLW 3
    LAR2


    AUF #DB1
    L DBW [AR1,P#20.0]

    AUF #DB2
    T DBW [AR2,P#0.0]

    LAR2 RETTAR2
    PS: Nimm SLD3 statt SLW3
    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

  3. #3
    Registriert seit
    15.10.2007
    Ort
    St.Pölten
    Beiträge
    875
    Danke
    98
    Erhielt 200 Danke für 188 Beiträge

    Standard

    hast du schon die suchfunktion benutzt???
    es gibt viele gute beiträge zu diesem thema hier im forum.
    Beginne jeden Tag mit einem lächeln,es kann dir nämlich während des Tages sehr schnell vergehen.

  4. #4
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    773
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    oder du sicherst die Adressregister bevor du sie verwendest temporär und schreibst sie am ende wieder zurück.
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  5. #5
    Registriert seit
    15.10.2007
    Ort
    St.Pölten
    Beiträge
    875
    Danke
    98
    Erhielt 200 Danke für 188 Beiträge

    Standard

    Zitat Zitat von Gerri Beitrag anzeigen
    oder du sicherst die Adressregister bevor du sie verwendest temporär und schreibst sie am ende wieder zurück.
    das sollte man in einem FB immer tun wenn man die beiden AR verdreht,oder?
    Beginne jeden Tag mit einem lächeln,es kann dir nämlich während des Tages sehr schnell vergehen.

  6. #6
    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 Gerhard K Beitrag anzeigen
    das sollte man in einem FB immer tun wenn man die beiden AR verdreht,oder?

    und in FCs die für Weckalarmaufrufe gebaut werden
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. #7
    Registriert seit
    11.10.2006
    Ort
    Verden (Aller)
    Beiträge
    532
    Danke
    31
    Erhielt 58 Danke für 49 Beiträge

    Standard

    Und wenn im Weckalarm ein FB aufgerufen wird?.....
    "Ein lahmer Drecksplanet ist das, ich habe nicht das geringste Mitleid" (Prostetnik Vogon Jeltz)

  8. #8
    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 derwestermann Beitrag anzeigen
    Und wenn im Weckalarm ein FB aufgerufen wird?.....
    verstehe diese anmerkung nicht! es gilt: sichern!

    komme ich aus dem main_prog in den weckalarm, sichere ich - egal ob FC oder FB aufgerufen wird - beide adressregister und schreibe sie nach weckalarm abarbeitung zurück, damit das main_prog anstandslos weiterlaufen kann.

    zusätzlich wird bei mir noch der letzte offene global-db gesichtert und wieder auf gemacht, wenn der wert <>0 ist.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  9. #9
    Registriert seit
    06.10.2003
    Beiträge
    3.445
    Danke
    453
    Erhielt 509 Danke für 411 Beiträge

    Standard

    Hallo 4L,

    Zitat Zitat von vierlagig Beitrag anzeigen
    verstehe diese anmerkung nicht! es gilt: sichern!

    komme ich aus dem main_prog in den weckalarm, sichere ich - egal ob FC oder FB aufgerufen wird - beide adressregister und schreibe sie nach weckalarm abarbeitung zurück, damit das main_prog anstandslos weiterlaufen kann.

    zusätzlich wird bei mir noch der letzte offene global-db gesichtert und wieder auf gemacht, wenn der wert <>0 ist.
    Woher hast du diese Weisheit?


    Gruß, Onkel
    Geändert von Onkel Dagobert (27.01.2009 um 22:24 Uhr)
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  10. #10
    Registriert seit
    29.03.2004
    Beiträge
    5.793
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das erledigt doch das Betriebsystem, wir sind hier doch nicht am Assembler:

    Wie werden die Adressregister 1/2 bei Unterbrechung der zyklischen Bearbeitung durch einen Alarm-OB gesichert?

    Anleitung:
    Wird die Programmbearbeitung durch einen OB mit höherer Priorität unterbrochen (z.B. Unterbrechung des zyklischen OB1 durch den Weckalarm OB35), dann speichert das Betriebssystem die aktuellen Inhalte der Akkumulatoren / Adressregister sowie die Nummer / Größe der geöffneten Datenbausteine im Unterbrechungs-Stack.
    Ist die Bearbeitung des neuen OB beendet, lädt das Betriebssystem die Informationen aus dem Unterbrechungs-Stack und nimmt die Bearbeitung des unterbrochenen Bausteins an der Stelle erneut auf, an der die Unterbrechung auftrat.

Ähnliche Themen

  1. Indirekte Adressierung mit 2 Pointern
    Von TorstenX im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 01.03.2011, 12:39
  2. Indirekte Adressierung FB mit Pointern
    Von kliebisch.m im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 28.10.2010, 12:06
  3. Antworten: 1
    Letzter Beitrag: 30.05.2010, 10:58
  4. Frage(n) zu Pointern
    Von pinolino im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 08.07.2009, 07:29
  5. Fragen zu Pointern
    Von INST im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 28.05.2004, 19:20

Lesezeichen

Berechtigungen

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