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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Adressoperator in AWL ?

  1. #11
    Avatar von kiestumpe
    kiestumpe ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Ralle
    Irgendwie kann ich dir jetzt nicht mehr folgen, deklariere die Variablen als Bool, Word, Timer, DWord und schreib dann deine Variablen ran.
    Wozu willst du denn in diesem Fall mit Zeigern und Offsets rumopern?
    Hallo

    @Ralle,

    wollen ist übertrieben - freiwillig gewzungen, da dieser FC nicht verändert werden soll- daher hat es sich auch mit dem Umwandeln in einen FB.
    Dieser FC macht dann aus der Übergebenen Adresse wieder einen Zeiger in den Zugehörigen.

    Mit dieser Adresse wird in dem FC ausser dem Zeitzähler noch eine Liste verarbeitet, die gleich im Anschluss im DB steht, einschliesslich Index und variabler Länge.
    Nur wenn ich das obige lese, gehts schlicht und einfach nicht, oder?

    MfG

    Kiestumpe
    Geändert von kiestumpe (15.03.2006 um 13:15 Uhr)

  2. #12
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Tut mit leid kiestumpe, ich versteh jetzt absolut nicht mehr, was du überhaut machen willst. Willst du diesen FC in einen eigenen FC verpacken? Wenn du ihn nicht ändern darfst, mußt du ihn so aufrufen wie er ist, geht dann ja nicht anders. Wenn du einen eigenen FC drumherumbauen willst, der die Parameter symbolisch entgegenmimmt, dann nimm Any-Zeiger, die werden als Zeiger übergeben und sind dann wieder auseinanderzunehmen.
    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. #13
    Avatar von kiestumpe
    kiestumpe ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard

    Hallo Ralle,

    verpacken will ich den FC- Ventilsteuerung nicht nochmal, lediglich aufrufen.
    Weg wollte ich von
    DB_Adressbereich_T := DW#16#150,// Adressber.Timer Ventil1
    im call Aufruf, zu Symbolik und Adressoperator.

    Aber es scheint so, dass ich diese Adresse nirgends her bekomme.

    Trotzdem danke für eure Bemühungen.

    Gruss

  4. #14
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Ach so, jetzt wird es etwas klarer, du wolltest die symolische Adresse auseinanderbauen und dann die "Einzelteile" an den FC schreiben?
    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

  5. #15
    Registriert seit
    06.10.2003
    Beiträge
    3.403
    Danke
    447
    Erhielt 502 Danke für 406 Beiträge

    Standard

    Hallo,

    Code:
          CALL  "Ventilsteuerung"
           NotAus_OK          :="Not_Aus_OK"
           Verriegelung       :=FALSE
           Rueckmeldung_ZU    :="RMZ_A4-V02"
           Rueckmeldung_AUF   :="RMA_A4-V02"
           Ueberwachung_EIN   :=#watch
           Zeitbasis          :="Sek_Flag"
           DB_Nummer          :=W#16#6E     // DB-Nr.
           DB_Adressbereich_SB:=DW#16#8     // Adressber.SB Ventil2
           DB_Adressbereich_T :=DW#16#1A0   // Adressber.Timer Ventil2
           MW_Adressbereich   :=DW#16#4B0   // Vergleichsvar.Adresse
           Ausgang_Ventil     :="A4-V02"
    Schreibe dir doch eine FC der du die Adressbereiche als Pointer symbolisch übergibst. In dieser FC liest du aus den Pointern die Adressen aus und legst sie auf Ausgänge der FC. Mit diesen wiederum versorgst du obigen Baustein "Ventilsteuerung". Müsste eigentlich gehen, oder?


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

  6. #16
    Registriert seit
    23.10.2008
    Ort
    Vreden
    Beiträge
    33
    Danke
    2
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von kiestumpe Beitrag anzeigen
    Hallo,

    ich versuch gerade die Adresse einer Variablen innerhalb eines DB's zu ermitteln:
    Wenn ich den Wert in den Akku lade und anschliessend das AR1 auslese erhalte ich diesen Wert nicht (kommt immer 0)
    MfG
    kiestumpe
    Hallo,
    etwas spät aber ich hatte gerade das gleiche Problem und wusste nicht mehr wie ich die Byte Adresse eines Arrays des InstanzDB in den Akku laden. Im Web habe ich nichts gefunden nur die Enttäuschenden üblichen Antworten: Sage doch mal was du machen willst! Ätz.
    Naja jedenfalls kann man die Adresse sehrwohl erfahren und in den Akku laden.
    Habe ein Array im Stat eines FB angelegt: Wert Array[1..90] of Byte
    Ersteinmal auf den ersten Wert des Arrays Zeigen und dann sie adresse auslesen. Eigendlich sau Easy.
    LAR1 P##Wert
    TAR1
    SLD 16
    SRD 16
    SRD 3

    Und da ist er im Akku1, der Byte Versatz zum ersten Byte des Arrays.

    Machnmal sind die Probleme doch echt zäh bis man die einfache Lösung sieht.
    uhu was? Nix wisse...

Lesezeichen

Berechtigungen

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