X_PUT Syntax mit SCL

dtmuller

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Ich will X_PUT/X_GET mit SCL verwenden, bekomme aber die Syntax für die Adr.parameter nicht richtig hin.

Ich hab probiert:
Code:
X_PUT(REQ:=TRUE, CONT:=TRUE, DEST_ID:=3, 
  VAR_ADDR:=P#DB29.DBX 0.0 BYTE 12, SD:=P#DB4.DBX0.0 BYTE 12, 
  RET_VAL:=xputErr, BUSY:=xputBusy);
Die Parameter VAR_ADDR und SD werden so nicht akzeptiert: "Illegal datatype for constant!".
Kann mir da jemand von Euch helfen?

Viele Grüsse
Daniel
 
Warum er die Any-Parameter so nicht nimmt kann ich auch nicht sagen, aber

xputErr:=X_PUT(REQ := TRUE // IN: BOOL
,CONT := TRUE // IN: BOOL
,DEST_ID := Word#3 // IN: WORD
,VAR_ADDR := "DB_VAR_ADDR".VAR_ADDR_1 // IN: ANY
,SD := "DB_SD".SD_1 // IN: ANY
,BUSY := xputBusy // OUT: BOOL
); // INT
Dieser Aufruf wird erstmal akzeptiert. Dabei habe ich die 12-Byte Datenstrukturen, die du brauchst in eine UDT (Symbolisch XPUT) gelegt und diese UDT in den DB29 und DB4 gepackt.

Die UDT beginnt im DB29 bei DBW0, und heißt VAR_ADDR_1 und im DB4 SD_1. Die DB heißen "DB_VAR_ADDR" und "DB_SD".
Wenn für alles eine Symolik vorhanden ist kannst die oben genannten Variablen an den SFC schreiben, das akzeptiert er.
Wenn du die Symbolik nicht weißt, ruf den Baustein mal in AWL auf:

Code:
CALL  "X_PUT"
       REQ     :=TRUE
       CONT    :=TRUE
       DEST_ID :=W#16#3
       VAR_ADDR:="DB_VAR_ADDR".VAR_ADDR_1    //P#DB29.DBX 0.0 BYTE 12
       SD      :="DB_SD".SD_1           //P#DB4.DBX 0.0 BYTE 12
       RET_VAL :=#xputerr
       BUSY    :=#xputBusy
die auskommentierten Any sind die Originalen. Wenn du die anträgst, dann macht der Editor daraus automatisch die symbolischen Parameter, sofern die Symolik korrekt ist und existiert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke Ralle für die schnelle Antwort. Den Umweg über UDT hab ich nicht hinbekommen. Ich habe aber Deinen Tipp befolgt und den Aufruf in einen FB in AWL ausgegliedert. Das funktioniert!

Trotzdem würde mich interessieren, wie man die ANY-Parameter für x_put in SCL direkt angibt. Falls das jemand weis...

Gruss
Daniel
 
Ich stell mal ein Testprojekt hier rein, da kannst du dir den SCL-Aufruf und die DB+UDT mal ansehen.
 

Anhänge

  • Xput.zip
    274 KB · Aufrufe: 20
Zurück
Oben