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

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 22 von 22

Thema: Adresse von Formaloperanden ermitteln

  1. #21
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    669
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Katzi Beitrag anzeigen
    @SPSKILLER

    Das ist richtig, aber man weiss immer noch nicht das genaue Bit, das dem FC von aussen übergeben wurde.
    ... kapier ich nicht.
    Bei deiner Methode weisst du doch auch nur die Adresse vom UDT.Meldung
    Das Signal "Sign" ist auch nicht bekannt, oder?

    Micha
    "arbeite klug, nicht hart" - deutsches Sprichwort

  2. #22
    Registriert seit
    14.11.2008
    Beiträge
    66
    Danke
    3
    Erhielt 6 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wenn ich das so lese, scheint mir, dass schon Step7 mal einen Pointer, mal einen Pointer auf Pointer übergibt. Allerdings ist so kaum vorstellbar, wie VAR_INPUT funktionieren kann. Benutzt Step7 intern undokumentierte Workarounds?

    Oder übergibst du selbst beim Funktionsaufruf mal den Merker selbst, mal einen Pointer auf ein Bit?

    Andererseits denke ich, (um de Bedenken von forendiva weiter auszuführen), dass eine solche Datenstruktur im Merkerbereich vielleicht gar nicht nötig ist. Statt dessen würde ich einen UDT anlegen, der die 5 Bits und alles weitere enthält, und bei Bedarf Arrays und sonstiges in Global-DBs. Dann kannst du diesen UDT in VAR_IN_OUT übergeben. Mit SCL könntest du dann weitere Direktzugriffe auf AR1 eliminieren.

    Oder hängt alles vom Aufbau des mysteröisen UDT11 und dem dazugehörenden Code ab? Dann könntest du die Bits noch in Arrays ablegen und einen Index auf die Arrays übergeben; der Index ist für alle Arrays gleich. Die Arrays liegen dann am besten in einem DB und der FC21 kann dann von SCL profitieren.

    Außerdem habe ich auch schon von einer gewöhnlichen VAR_...-Variablen den Pointer genommen, dann online ausprobiert, auf was das eigentlich zeigt, und darauf basierend speziellen Step7-Code geschrieben. In manchen Fällen ist das ein Pointer auf Pointer, obwohl aus Quellcodesicht nur ein UDT übergeben wird. So wie hier, erkennbar am "V..."-Pointer.

Ähnliche Themen

  1. Adresse von Struct in TEMP ermitteln
    Von cosmomaster im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 23.05.2011, 19:17
  2. in SCL Adresse von String im IDB ermitteln
    Von Ralle im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 03.03.2011, 09:39
  3. DB Adresse ermitteln
    Von Marc_Quark im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 22.10.2009, 08:22
  4. Adresse des geöffneten DBs ermitteln
    Von Woto im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 29.09.2008, 12:09
  5. Adresse im Instanzdatenbaustein ermitteln
    Von hubiwahn im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 25.09.2006, 16:14

Stichworte

Lesezeichen

Berechtigungen

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