SFC 0 in Funktion benutzen

mkd

Level-2
Beiträge
197
Reaktionspunkte
30
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte den SFC0 in einer Funktion benutzen - soweit so gut.
Jetzt möchte ich den PDT Eingang mit einer IN Variable der Funktion füttern.

Code:
      CALL  SFC    0                    // SFC0
       PDT    :=#DateTimeSet       // In Variable
       RET_VAL:=#retval              // Temp Int
Die SFC0 verlangt dort eine Variable vom Typ DATE_TIME. Im Normalfall muss der Parameter ja symbolisch angelegt werden.

Gibt es eine Möglichkeit hier eine IN Variable zu übergeben?


Danke!

Daniel
 
Hallo Daniel,

es ist leider nicht möglich eine IN-Variable zu übergeben.
Du musst die IN-Variable auf eine TEMP-Variable kopieren und diese dann übergeben.

Grüße
Gebs
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,


danke für die Info. Ich habe jetzt die Zeit (steht in Form von Pointer im Baustein zur verfügung) in eine temp Variable kopiert

Code:
//Inhalt von Pointer auf DateTimeSet zur indirekten Adressierung
//in AR1

      L     P##DateTimeSet
      LAR1  

      L     D [AR1,P#2.0]
      T     #temp

      L     #temp
      LAR1  

//Inhalt von Pinter auf DateTimeSet in temp Variable temp_DT kopieren 
      L     D [AR1,P#0.0]               //Byte 0...3
      T     LD     8

      L     D [AR1,P#4.0]               //Byte 4...7
      T     LD    12
und dann der SFC0 übergeben

Code:
     CALL  SFC    0
       PDT    :=#temp_DT
       RET_VAL:=#retval



Gruß
Daniel
 
Weil ich irgend etwas nicht richtig verstanden habe ?
:ROFLMAO:

Kann ich auch

Code:
 L     P#2.0                       
      +AR1
schreiben ?

Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Daniel,

ich habe überlesen, dass Du die Zeit mit einem Pointer übergibst.
Dann ist es nätürlich richtig so wie Du's geschrieben hast.

Wenn Du am IN direkt einen Wert dranschreibst, dann siehts anders aus.

Grüße
Gebs
 
Zuletzt bearbeitet:
Zurück
Oben