Anny auf Lokaldaten geht nicht bei DPRead???

Jochen Kühner

Level-3
Beiträge
4.291
Reaktionspunkte
527
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, Ich möchte folgendes machen:
Code:
   L     W#16#1002                   //Typ BYTE
      T     LW     0
      L     #EW_GROESSE                 //Anzahl Bytes
      T     LW     2
      L     0                           //Quell-DB
      T     LW     4
      L     14                          //Startadresse SCANNERDATEN in Lokaldaten
      SLD   3
      OD    DW#16#86000000              //86 Lokaldatenbereich (84 DB)
      T     LD     6

      CALL  "DPRD_DAT"
       LADDR  :=#EW_ANFANG
       RET_VAL:=#RET_VAL_INT
       RECORD :=#ANY_AUF_SCANNERDATEN

der Pointer Any_auf_Scannerdaten fängt in den Lokaldaten bei adresse 0 an, die Scannerdaten als array bei 14.

Wenn Ich nun das Scannerdaten array auf 32 Bytes verkleinere und direkt an den SFC anlege funktionierts, wenn ich aber das über diesen any machen will (in #EW_GROESSE steht 32) gehts nicht.

Rückgabewert vom SFC 8325 bedeutet:

Bereichsfehler beim Schreiben eines Parameters.Dieser Fehlercode zeigt an, daß sich der Parameter x in einem Bereich befindet, der für die Systemfunktion unzulässig ist. Die Beschreibung der jeweiligen Funktion gibt die Bereiche an, die für die Funktion unzulässig sind.
 
Hallo,

dein #Any_auf_Scannerdaten ist ja schon ein Pointer. Ich vermute Pointer im Pointer geht nicht und der SFC versucht direkt auf L0.0 zu Schreiben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Any

Hallo,

leg ab LW0 eine Variable vom Typ ANY an. Dann kannst du zwar nicht mehr direkt symbolisch zugreifen, aber das hast du ja eh nicht durchgängig gemacht. Wies scheint hast dus so gemacht.

Aber wenn du das Array gleich symbolisch ranschreibst ists ein ANY für den SFC

André
 
Zuletzt bearbeitet:
Any

lt Hilfe steht für RECORD das:

RECORD OUTPUT ANY E, A, M, D, L
Also sind Lokaldaten ok. Und mit L P#L 14.0 kommts auch aufs Gleiche.

P.S.: Ists ein FC oder FB? Wenn FB könnteste mal mit statischen Variablen experimentieren.

André
 
Zuletzt bearbeitet:
..Wenn Ich nun das Scannerdaten array auf 32 Bytes verkleinere und direkt an den SFC anlege funktionierts, wenn ich aber das über diesen any machen will (in #EW_GROESSE steht 32) gehts nicht...
Ich kann nicht wirklich nachvollziehen, warum es in einem Fall funktioniert und im anderen Fall nicht. Die SFC14 muss (sollte) natürlich auf die Vorgänger-Lokaldaten schreiben. In beiden Fällen zeigt der Any auf L14.0. Wird der Any von der SFC bei symbolischer Adressierung anders interpretiert als beim Selberbasteln?


Gruß, Onkel
 
Ich kann nicht wirklich nachvollziehen, warum es in einem Fall funktioniert und im anderen Fall nicht. Die SFC14 muss (sollte) natürlich auf die Vorgänger-Lokaldaten schreiben. In beiden Fällen zeigt der Any auf L14.0. Wird der Any von der SFC bei symbolischer Adressierung anders interpretiert als beim Selberbasteln?


Gruß, Onkel

um das zu beurteilen sollte man sich den code mal in der makro-darstellung also MC7-code ansehen.
 
Zurück
Oben