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

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

Thema: Alternative zu BLKMOV

  1. #11
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard


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

    die Variable Record ist vom Typ "any" nicht "pointer". Das ist ein kleiner aber feiner Unterschied. Deshalb fehlt noch etwas in deiner Deklaration.

    Gruß Hagen
    Was fehlt denn? Er nennt ihn zwar "quell_pointer", aber er wird doch als Any mit Daten beschickt. Ich geh mal davon aus, er ist auch als Any definiert, sonst sollte der SFC15 doch meckern.
    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

  2. #12
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    versuch doch bitte mal folgende Änderung :
    Code:
          LAR1  P##quell_pointer            // Pointer Quell-Daten
          L     B#16#10                     // Syntax-ID
          T     LB [AR1,P#0.0]
          L     B#16#2                      // Datentyp Byte
          T     LB [AR1,P#1.0]
          L     10                          // Anzahl Byte
          T     LW [AR1,P#2.0]
          L     22                          // Quell-DB
          T     LW [AR1,P#4.0]
         L     L#2
         SLD   3                           // Byte-Adresse
         T     LD [AR1,P#6.0]
          L     B#16#84                     // Speicherbereich DB
          T     LB [AR1,P#6.0]
    Gruß
    LL
    Glaub nicht das wirklich die Ursache ist, hatte früher auch immer SLW 3 genutzt und erst bei größeren Adressen machte sich der Fehler (richtig ist SLD 3) bemerkbar. Aber der Hinweis ist korrekt und sollte unbedingt beherzigt werden.
    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
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    @Ralle:
    Ansonsten konnte ich keinen Fehler erkennen ... Somit konnte ich mir vorstellen, das er als High-Word noch den Rest der letzten Operation hatte. Das würde durch "L L#2" ausgemerzt werden ...

  4. #14
    Registriert seit
    17.10.2007
    Ort
    35043 Marburg
    Beiträge
    176
    Danke
    4
    Erhielt 30 Danke für 29 Beiträge

    Standard

    Code:
    L     L#2
    SLD   3
    T     LD [AR1,P#6.0]
    L     B#16#84
    T     LB [AR1,P#6.0]
    Hallo,

    falls das nicht zu unflexible ist könntest du auch direkt schreiben:
    Code:
    L P#DBX2.0
    T LD [AR1,P 6.0]
    Grüße...

  5. #15
    Registriert seit
    13.03.2004
    Beiträge
    135
    Danke
    10
    Erhielt 6 Danke für 6 Beiträge

    Standard

    @Ralle

    Zitat Zitat von Ralle Beitrag anzeigen
    Was fehlt denn? Er nennt ihn zwar "quell_pointer", aber er wird doch als Any mit Daten beschickt. Ich geh mal davon aus, er ist auch als Any definiert, sonst sollte der SFC15 doch meckern.
    Du hast natürlich recht. Ich habe nicht richtig hingeschaut. Sorry! Kann jetzt erstmal auch keinen Fehler entdecken außer den mit SLD statt SLW.

    Eine gute Referenz stellt wie immer der Link auf Volkers Erklärung dar:

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

    Gruß Hagen
    Im Zweifel, tue immer das richtige!

  6. #16
    Registriert seit
    23.05.2008
    Beiträge
    32
    Danke
    20
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Erstmal danke...wie schon gesagt ist der pointer natürlich vom typ any.
    Die Änderung von SLW in SLD brachte keinen Erfolg. Der Pointer funktioniert im OB auch einwandfrei, aber der gleiche Aufruf in einem FB führt zu diesem Bereichslängenfehler.

    Edit:
    Ich habe mir jetzt einen eigenen FC zur Übertragung geschrieben, der meine Anforderungen erfüllen kann. Trotzdem müsste es doch möglich sein den any-pointer in einem FB an den SFC zu übergeben...muss man vllt AR2 ins Spiel bringen?
    Edit²:
    Mein Baustein macht beim Aufruf im FB den gleichen Mist. Er holt sich aus dem übergebene pointer völlig falsche Werte...zB anstatt DB20, DB0...
    Geändert von /*Matthias*/ (11.07.2008 um 11:32 Uhr)

  7. #17
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    ... dann stellt doch mal den echten Code deines FB hier ein ...

    Nachtrag:
    Der DB ist schon in der richtigen Größe vorhanden ...?
    Geändert von Larry Laffer (11.07.2008 um 12:43 Uhr) Grund: Nachtrag

  8. Folgende 2 Benutzer sagen Danke zu Larry Laffer für den nützlichen Beitrag:

    /*Matthias*/ (11.07.2008),SIGGI (29.10.2008)

  9. #18
    Registriert seit
    06.10.2003
    Beiträge
    3.447
    Danke
    454
    Erhielt 509 Danke für 411 Beiträge

    Standard

    Hallo Matthias,

    wenn du den Any-Pointer im FB über AR1 zusammenstellst, wird das ohne weiteres nicht funktionieren, mit AR2 schon garnicht. Ich vermeide so etwas generell in einem FB.
    Siehe auch: Berger-Bibel, Psalm 25.4

    Das Einfachste wird sein, du legst dir einen ANY in den temp. Lokaldaten des FB an, schreibst die entsprechenden Daten direkt dort hin und übergibst diesen Any an die SFC bzw. FC.

    Oder du übergibst alle Parameter an die FC und bastelst dort daraus einen Any. In der FC muss dann AR1 am Anfang gesichert, und am Ende wieder hergestellt werden, falls es verwendet wird.


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  10. Folgender Benutzer sagt Danke zu Onkel Dagobert für den nützlichen Beitrag:

    /*Matthias*/ (11.07.2008)

  11. #19
    Registriert seit
    23.05.2008
    Beiträge
    32
    Danke
    20
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    mea culpa, mea culpa, mea maxima culpa.
    es funktioniert jetzt mit dem pointer...ich hatte durch meine ständigen Änderungen(löschen von variablen usw.) den Datentyp von dem quell_pointer wohl versehentlich in Bool geändert. tut mir echt leid. aber merkwürdigerweise hat der sfc nicht darüber gemeckert.
    @Onkel
    Ja ich hatte da etwas im Kopf mit any-pointern und multiinstanzen...da wird ja auf den pointer der offset aus dem ar2 addiert.

Ähnliche Themen

  1. BLKMOV für Simatic S5
    Von matziane im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 08.11.2011, 13:39
  2. Blkmov
    Von sps_mitte im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 06.08.2010, 12:24
  3. blkmov in SCL
    Von Felse im Forum Simatic
    Antworten: 31
    Letzter Beitrag: 25.03.2009, 14:20
  4. Sfc 20 blkmov
    Von Franz im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 29.12.2008, 14:24
  5. BlkMov
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 15.02.2004, 11:33

Lesezeichen

Berechtigungen

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