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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 26

Thema: Das Adressregister - tolle Sache, aber was gibt es zu beachten

  1. #11
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von LittleJack86 Beitrag anzeigen
    D
    Das Hinzurechnen geschieht allerdings automatisch von der Steuerung. In welchen Fällen muss dieser Versatz dann von mir aktiv berücksichtigt werden? Wenn ich z.B. mit LB auf den Lokal-Datenbereich zugrefen möchte?
    Mann kann dies schön sehen wenn man sich den MC7 Code der auf der Steuerung ist wieder in AWL zurückwandelt:

    aus z.b.:

    Code:
          U     #INIT
          R     #TRIGGERABRUCH_GESENDET
          R     #TRIGGER_GESENDET
    wird dann:

    Code:
          U     DIX[AR2,P#8.1]
          R     [AR2,P#64.3]  
          R     [AR2,P#64.2]
    und aus zugriffen an höhren adressen wird (bb liegt bei 60000)

    Code:
         L    #bb
    wird

    Code:
          TAR2  LD0           
          +AR2  P#4090.0      
          +AR2  P#4090.0      
          +AR2  P#4090.0      
          +AR2  P#4090.0      
          +AR2  P#4090.0      
          +AR2  P#4090.0      
          +AR2  P#4090.0      
          +AR2  P#4090.0      
          +AR2  P#4090.0      
          +AR2  P#4090.0      
          +AR2  P#4090.0      
          +AR2  P#4090.0      
          +AR2  P#4090.0      
          +AR2  P#4090.0      
          L     DIW[AR2,P#2740.0]
          LAR2  LD0
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  2. Folgender Benutzer sagt Danke zu Jochen Kühner für den nützlichen Beitrag:

    LittleJack86 (21.01.2011)

  3. #12
    Registriert seit
    09.04.2008
    Beiträge
    42
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von M-Ott Beitrag anzeigen
    z.B. DB20.DBW10 als IN, INOUT oder OUT-Parameter eines FC (ändert das DB-Register)
    ...also so geschrieben ist mir das eh klar, ändert aber NUR das DB-Register.
    Noch was dazu, der übergebene Wert z.B. DB20.DBW10 als INOUT-Parameter wird aber beim Aufruf des FC in den Temporären bereich übergeben und ändert somit nur direkt beim aufruf des FC das DB-Register, oder wird das DB-Register immer geändert sobald ich im FC diese Variable anspreche? (habe ich eigentlich noch nie so in einem FC verwendet)

    Zitat Zitat von M-Ott Beitrag anzeigen
    Wenn Du eine Struct als FB- oder FC-Parameter angibst, ändert sich jedesmal, wenn Du auf einen Teil davon zugreifst, das AR1, Du musst also in diesem Fall darauf aufpassen, dass ein evtl. von Dir dort hinterlegter Wert nicht überschrieben wird.
    kannst du mir dazu ein kurzes Bespiel geben? Dass ist mir noch nicht ganz verständlich.

  4. #13
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.191
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Kleine Abschwächung:
    Im Gegensatz zum AR2 muß man AR1 nicht vor der Verwendung für das System sichern und wiederherstellen.
    Das System erwartet keinen bestimmten Inhalt im AR1. Wenn es AR1 verwendet, dann initialisiert es das AR1 auch jedesmal selbst.

    Man muß nur aufpassen wenn man selbst AR1 verwendet (z.B. in einer Schleife!) und eine der 4 genannten Situationen hat. Dann muß man damit rechnen, daß das System rücksichtslos "meinen" AR1-Inhalt verändert hat. Man muß den eigenen AR1-Inhalt selber vor dem System retten.

    @LittleJack86
    "vollqualifizierter DB-Zugriff" ist, wenn in der Zugriffsadresse die DB-Nummer mit enthalten ist: L DB20.DBW10
    Dann macht das System bei jedem Zugriff implizit ein AUF DBxx.
    L DBW10 ohne Angabe der DB-Nummer ist ein "unqualifizierter" DB-Zugriff auf den gerade (zufällig?!) geöffneten DB.

    "Strukturkomponente eines Formalparameters"
    Wenn z.B. eine Struktur an einen FC oder FB übergeben wird, dann wird tatsächlich nur die Anfangsadresse als Pointer übergeben. Wenn nun innerhalb der FC oder FB auf ein Element der übergebenen Struktur zugegriffen wird, dann muß "das System" selber indirekt adressieren. D.h. in etwa: AR1 wird mit dem übergebenen Pointer geladen und zeigt damit auf den Anfang der Struktur, für den Zugriff auf ein Element wird dann noch der bekannte Offset zum AR1 adressiert.
    Wenn die übergebene Struktur aus einem DB stammt (was fast immer der Fall ist), dann muß auch das DB-Register für den indirekten Zugriff auf die Struktur vom System verwendet werden. Das DB-Register enthält nach dem Zugriff die DB-Nummer der übergebenen Struktur.
    Diese normalerweise nicht sichtbaren indirekten Zugriffe auf Strukturkomponenten verbrauchen übrigens unheimlich viel Programmspeicher für die Adressberechnung, ich meine das waren je Zugriff ca. 42 Byte Code. Deshalb sollte man bei Übergabe von Strukturen diese vor der Verwendung zuerst in die temporären Lokaldaten umkopieren und dann auf diese lokale Kopie zugreifen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    hopp (20.10.2014)

  6. #14
    Registriert seit
    09.04.2008
    Beiträge
    42
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Jetzt ist mir das Ganze schon viel besser verständlich.
    Einmal Danke an alle für eure Antworten!

    @Jochen Kühner
    Diese Ansicht auf den Code zeigt schon sehr gut wie die SPS die Adressen verarbeitet.

    @PN/DP
    Dir natürlich auch vielen Dank für die Erklärung!
    Du hast ja den Aufwand für die SPS bei einem Zugriff mit Structurkomponenten angesprochen, dazu fällt mir noch eine Frage ein welche ich mir schon länger gestellt habe.
    Weißt du evtl. ob es für die SPS mehr Aufwand ist wenn ich
    DB10.DBW 100 anspreche oder wenn ich
    MW100 anspreche?

    Florian

  7. #15
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Zitat Zitat von LittleJack86 Beitrag anzeigen
    Weißt du evtl. ob es für die SPS mehr Aufwand ist wenn ich DB10.DBW 100 anspreche oder wenn ich
    MW100 anspreche?
    Wenn Du mit Aufwand "Zeitaufwand" meinst: Ja, es ist mehr Aufwand (zumindestens bei der S7-300).

    Wenn Dich das ganze im Detail interessiert, kannst Du Dir beim Siemens-Support die Operationslisten herunterladen, da steht die detailierte Ausführungszeit für jede Anweisung drin.
    Gruß
    Michael

  8. #16
    Registriert seit
    09.04.2008
    Beiträge
    42
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja meinte ich, es äußert sich eh jeder Aufwand in Zeit. Die Liste werd ich mach nachlesen.
    Auf die Frage bin ich gekommen weil ich schon öfter mal gesehen hab das Werte in einen DB geschrieben werden (so als Merkerersatz) obwohl dies eigentlich nicht wirklich notwendig gewesen wäre. Es vermutlich nur aus dem Grund geschehen ist damit man das Programm problemlos in eine Steuerung kopieren kann ohne auf die Belegung der Merker eingehen zu müssen (was natürlich auch ein Grund sein kann).
    DANKE

  9. #17
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.191
    Danke
    923
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von LittleJack86 Beitrag anzeigen
    Weißt du evtl. ob es für die SPS mehr Aufwand ist wenn ich
    DB10.DBW 100 anspreche oder wenn ich
    MW100 anspreche?
    Die Operations-Ausführungszeiten sind CPU-abhängig. Bei den aktuellen S7-300 CPU besteht kein Unterschied bei der Ausführungszeit einer Ladeoperation, egal ob auf ein Merkerwort (L MW100) oder vollqualifiziert auf ein DB-Wort (L DB10.DBW100) zugegriffen wird. Bei älteren S7-300 CPU hat das Laden eines DB-Wortes mehr als doppelt so lange wie das Laden eines Merkerwortes gedauert (wegen der implizit enthaltenen Operation AUF DBxx).

    Die Ladeoperationen sind aber je nach Operand unterschiedlich lang, L MWxx benötigt 2 Byte Programmspeicher, L DBxx.DBWxx benötigt 6 Byte Programmspeicher.

    Details siehe in den Operationslisten der jeweiligen CPU - dabei genaue Bestell-Nummer beachten!

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  10. #18
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Die Operations-Ausführungszeiten sind CPU-abhängig. Bei den aktuellen S7-300 CPU besteht kein Unterschied bei der Ausführungszeit einer Ladeoperation,...
    Das trifft für solche CPUs zu, die bereits mit der Firmwareversion 3.0 erschienen sind. Die aktuellen Kompakt-CPUs haben alle noch ältere Fimrware und somit unterschiedliche Zugriffszeiten.
    Gruß
    Michael

  11. #19
    Registriert seit
    18.02.2014
    Beiträge
    13
    Danke
    2
    Erhielt 2 Danke für 1 Beitrag

    Standard

    Wie schaut es denn aus, wenn ich einen AR2 Zugriff innerhalb eines FCs mache, dieser FC wird in oberster Instanz im OB1 gecallt.

    Der FC hat sowohl Eingangs und Ausgangsparameter

    Führt das zu Problemen bei der Benutzung mit AR2?
    Geändert von M.Arlitt (04.07.2014 um 11:34 Uhr)

  12. #20
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    .
    Nur bei FB´s, bei FC´s dürftest du keine Probleme habenm, siehe Beitrag#6 Absatz 4 .
    Geändert von SoftMachine (04.07.2014 um 11:50 Uhr) Grund: Link richtig, aber falsche Beitrags-Nummer genannt
    kind regards
    SoftMachine

Ähnliche Themen

  1. Insolvenz, was als AN beachten?
    Von Boxy im Forum Stammtisch
    Antworten: 22
    Letzter Beitrag: 28.08.2011, 04:11
  2. Traurige Sache, Anna Nicole Smith ist tot
    Von Unregistrierter gast im Forum Stammtisch
    Antworten: 8
    Letzter Beitrag: 09.02.2007, 10:14
  3. Komische Sache, beim installieren von Step7
    Von Lazarus™ im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 22.07.2005, 19:25
  4. Step 7 V5.2 SP1, Siemens hat die Sache nicht im Griff.
    Von Anonymous im Forum PC- und Netzwerktechnik
    Antworten: 2
    Letzter Beitrag: 09.09.2003, 16:55

Stichworte

Lesezeichen

Berechtigungen

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