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

Page 1 of 2 12 LastLast
Results 1 to 10 of 12

Thread: Arbeiten mit zwei Pointern im FB

  1. #1
    Join Date
    17.12.2008
    Posts
    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]
    Reply With Quote Reply With Quote Arbeiten mit zwei Pointern im FB  

  2. #2
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    13,806
    Danke
    746
    Erhielt 3,127 Danke für 2,231 Beiträge

    Default

    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
    Join Date
    15.10.2007
    Location
    St.Pölten
    Posts
    875
    Danke
    98
    Erhielt 200 Danke für 188 Beiträge

    Default

    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
    Join Date
    04.01.2008
    Location
    Wien
    Posts
    819
    Danke
    142
    Erhielt 40 Danke für 36 Beiträge

    Default

    oder du sicherst die Adressregister bevor du sie verwendest temporär und schreibst sie am ende wieder zurück.

  5. #5
    Join Date
    15.10.2007
    Location
    St.Pölten
    Posts
    875
    Danke
    98
    Erhielt 200 Danke für 188 Beiträge

    Default

    Quote Originally Posted by Gerri View Post
    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
    Join Date
    08.08.2007
    Location
    Dresden
    Posts
    9,882
    Danke
    1,064
    Erhielt 2,056 Danke für 1,632 Beiträge

    Default

    Quote Originally Posted by Gerhard K View Post
    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
    Join Date
    11.10.2006
    Location
    Verden (Aller)
    Posts
    560
    Danke
    34
    Erhielt 60 Danke für 51 Beiträge

    Default

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

  8. #8
    Join Date
    08.08.2007
    Location
    Dresden
    Posts
    9,882
    Danke
    1,064
    Erhielt 2,056 Danke für 1,632 Beiträge

    Default

    Quote Originally Posted by derwestermann View Post
    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
    Join Date
    06.10.2003
    Posts
    4,474
    Danke
    619
    Erhielt 772 Danke für 606 Beiträge

    Default

    Hallo 4L,

    Quote Originally Posted by vierlagig View Post
    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
    Last edited by Onkel Dagobert; 27.01.2009 at 22:24.
    Der höchste Lohn für unsere Bemühungen ist nicht das, was wir dafür bekommen, sondern das, was wir dadurch werden.
    John Ruskin

  10. #10
    Join Date
    29.03.2004
    Posts
    7,257
    Danke
    165
    Erhielt 2,178 Danke für 1,559 Beiträge

    Default


    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.

Similar Threads

  1. Replies: 5
    Last Post: 18.04.2018, 09:10
  2. Kann man mit Pointern auch WORD adressieren ?
    By mega_ohm in forum Simatic
    Replies: 3
    Last Post: 23.09.2012, 18:00
  3. Hilfe mit Pointern
    By d.schubert1982 in forum Simatic
    Replies: 7
    Last Post: 08.02.2012, 16:36
  4. Indirekte Adressierung mit 2 Pointern
    By TorstenX in forum Simatic
    Replies: 6
    Last Post: 01.03.2011, 12:39
  5. Indirekte Adressierung FB mit Pointern
    By kliebisch.m in forum Simatic
    Replies: 5
    Last Post: 28.10.2010, 12:06

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •