Any auf Ausgang Problem

Limette

Level-2
Beiträge
282
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
Var_out
DatenArray: Array[0..49] of Byte
End_var

Var_temp
AnytoData: Any
End_var

      LAR1  P##AnytoData 

      L     B#16#10                     // 10h für S7       
      T     LB [AR1,P#0.0]

      L     B#16#2                      // 02h für BYTE 
      T     LB [AR1,P#1.0]

      L     50                             // iDataLength  
      T     LW [AR1,P#2.0]

      L     1                               // DB-Nummer 
      T     LD [AR1,P#4.0]

      L     70                             // Offset   
      SLD   3
      T     LD [AR1,P#6.0]

      L     B#16#82                     // 82 für Ausgang. hab eigentlich alle durchprobiert, es funktioniert keins davon.
      T     LB [AR1,P#6.0]


CALL  "BLKMOV"
       SRCBLK :=#AnytoData  
       RET_VAL:=#_ret_val
       DSTBLK :=#DatenArray     
 NOP


Leider schreibt es leider nie etwas in das Array. Offset, Repeatfactor und DB Nummer stimmen sicher und in diesem DB steht auch was drin(Array of Byte).
Hat ihr mir nen guten Rat ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Limette,

Du überschreibst Dir die DB-Nummer. Es muss LW [AR1,P#4.0] heissen.
Und dann bei Bereich die 84.

Schau doch auch mal was der RetVal ausspuckt.

Grüße
Gebs
 
Hallo Limette,

Du überschreibst Dir die DB-Nummer. Es muss LW [AR1,P#4.0] heissen.
Und dann bei Bereich die 84.

Schau doch auch mal was der RetVal ausspuckt.

Grüße
Gebs

So klappts, wunderbar. danke.

Willst du/ihr mir noch ein wenig ausführen, warum ich meine DB-Nummer überschrieben habe ?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Limette,

LW [AR1,p#4.0] ist deine Anfangsadresse, von wo aus deine in den Akku geladenen Daten in deinen Pointer geschrieben werden.
Als LW landet die 1 in Byte 5.
Als LD landet die 1 in Byte 7.
Somit wird die 1 beim nächsten LD [AR1,p#6.0] also überschrieben.
Wobei sie also nicht nur überschrieben wurde, sondern an der falschen Position eingetragen wurde.
Kleine Ursache, große Wirkung ;-)

Gruß
Toki
 
Zurück
Oben