Statische Variablen absolut Adressieren

dpd80

Level-1
Beiträge
222
Reaktionspunkte
23
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Is vielleicht ne blöde Frage (obwohl, sowas gibts ja gar nicht :) ), aber kann ich in, out und statische Variablen in einem FB absolut adressieren um z.B über einen Pointer zu adressieren?

Wenn ich in nem FB schreibe: L LD4, dann lädt er ja Doppelwort 4 aus dem temporären Variablen.
 
... ja kannst du, denn die werden ja mit im I-DB des FB's abgelegt. Den Snn kann ich allerdings nicht ganz nachvollziehen, da du sie ja auch innerhalb des FB symbolisch direkt ansprechen kannst.

Vielleicht solltest du mal andeuten, was du da im Hinterkopf hast ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Beispiel am Datentyp DATE_AND_TIME.:
Code:
      TAR2                              // Multiinstanz DB Offset
      LAR1  
      L     P##SPS_DT                   // Basisadresse SPS_DT laden
      +AR1  

      L     DINO                        // Datenbaustein Nummer
      T     #temp_w                     // sichern
      AUF   DB [#temp_w]                // Datenbaustein öffnen


      L     B [AR1,P#0.0]               // Jahr
      BTI   
      T     #SPS.Jahr
      L     B [AR1,P#1.0]               // Monat
      BTI   
      T     #SPS.Monat
      L     B [AR1,P#2.0]               // Tag

MfG
Daniel
 
@Larry
Ja, über den I-DB is klar. Aber wenn ich davon z.B. ne Multi-Instanz mache, sind das ja immer andere Adressen im I-DB.

Ich möchte im Prinzip Werte in den Stat-Variablen Zwischenspeichern und zwar pro Zyklus einen Wert und dann nen Pointer erhöhen und im nächsten Zyklus in das nächste Fach schreiben. Irgendwann nehmen ich mir dann die zwischengespeicherten Werte und verarbeite die dann weiter. Aber um mit dem Pointer immer ein Fach in den Stat-Variablen weiterzugehen kann ich die ja nicht symbolisch Adressieren.

Natürlich kann ich das ganze auch anders lösen, aber so hätte es mir am besten gefallen. :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie gesagt, klar gibt es andere Lösungen, aber es ging mir jetzt nur um die Frage, ob es überhaupt möglich ist.

Sorry, hatte meine Antwort grad wieder gelöscht, weil Käse. Was ich meinte, war Zugriff auf das Array über den Index. Das geht bei SCL, aber nicht bei AWL :???:.
 
Ich möchte im Prinzip Werte in den Stat-Variablen Zwischenspeichern und zwar pro Zyklus einen Wert und dann nen Pointer erhöhen und im nächsten Zyklus in das nächste Fach schreiben. Irgendwann nehmen ich mir dann die zwischengespeicherten Werte und verarbeite die dann weiter. Aber um mit dem Pointer immer ein Fach in den Stat-Variablen weiterzugehen kann ich die ja nicht symbolisch Adressieren.

Etwas ähnliches habe ich hier gemacht bei der Sortierung mit Bubblesort (FC200, Netzwerk 3):

http://www.sps-forum.de/showpost.php?p=115726&postcount=7

Ansonsten schau Dir das mal an:

http://www.sps-forum.de/showthread.php?t=8887

Gruß Kai
 
Hallo dpd80,

ich verfahre bei solchen Sachen genau wie von Ralle beschrieben.
Bei uns geht es sehr oft darum Kurven-Daten zu erfassen (über z.B. OB35). Hier nutze ich genau dieses Verfahren. Ich habe in meinem FB ein ARRAY_of_Werte und eine INT-Variable Schreib_Index. Mit jedem Aufruf des OB35 schreibe ich den neu eingelesenen Wert auf die Variable Werte [Schreib_Index] und erhöhe dann den Index entsprechend.

Diese Dinge realisiere ich (der besser Lesbarkeit wegen) normalerweise mittels SCL.

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sorry, hatte meine Antwort grad wieder gelöscht, weil Käse. Was ich meinte, war Zugriff auf das Array über den Index. Das geht bei SCL, aber nicht bei AWL :???:.

... warum nicht ?
Du musst dann halt nur den Index zu einem Pointer umbasteln, was aber m.E. nichts an der Sache ändert ...
 
@LL

Ja, aber das ist nicht die wirklich einfache Lösung, an die ich eigentlich dachte und die so nicht geht.
 
Zurück
Oben