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

Ergebnis 1 bis 7 von 7

Thema: SFC 0 in Funktion benutzen

  1. #1
    Registriert seit
    19.12.2006
    Beiträge
    185
    Danke
    25
    Erhielt 26 Danke für 21 Beiträge

    Standard


    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
    Zitieren Zitieren SFC 0 in Funktion benutzen  

  2. #2
    Registriert seit
    08.04.2008
    Ort
    Köln
    Beiträge
    844
    Danke
    39
    Erhielt 244 Danke für 199 Beiträge

    Standard

    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

  3. #3
    mkd ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.12.2006
    Beiträge
    185
    Danke
    25
    Erhielt 26 Danke für 21 Beiträge

    Standard

    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

  4. #4
    Registriert seit
    08.04.2008
    Ort
    Köln
    Beiträge
    844
    Danke
    39
    Erhielt 244 Danke für 199 Beiträge

    Standard

    Hallo Daniel,

    Wozu machst Du denn das???
    [QUOTE=mkd;224502]
    Code:
          L     D [AR1,P#2.0]
          T     #temp
    
          L     #temp
          LAR1
    Grüße
    Gebs

  5. #5
    mkd ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.12.2006
    Beiträge
    185
    Danke
    25
    Erhielt 26 Danke für 21 Beiträge

    Standard

    Weil ich irgend etwas nicht richtig verstanden habe ?


    Kann ich auch

    Code:
     L     P#2.0                       
          +AR1
    schreiben ?

    Daniel

  6. #6
    Registriert seit
    08.04.2008
    Ort
    Köln
    Beiträge
    844
    Danke
    39
    Erhielt 244 Danke für 199 Beiträge

    Standard

    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
    Geändert von Gebs (28.10.2009 um 10:39 Uhr)

  7. #7
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.224
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    [QUOTE=Gebs;224504]Hallo Daniel,

    Wozu machst Du denn das???
    Zitat Zitat von mkd Beitrag anzeigen
    Code:
          L     D [AR1,P#2.0]
          T     #temp
    
          L     #temp
          LAR1
    Grüße
    Gebs
    Lol, ich dachte, Gebs meint was Anderes.

    Du kannst #temp völlig weglassen, wenn du nicht nochmals über diesen Pointer zugreifen willst:

    Code:
          L     D [AR1,P#2.0]
          LAR1
    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

Ähnliche Themen

  1. ACCONtrolS7 wie benutzen?
    Von Denno im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 08.12.2010, 19:11
  2. SD Karten benutzen?
    Von Domi55 im Forum HMI
    Antworten: 0
    Letzter Beitrag: 27.02.2009, 08:32
  3. FB mehrmals benutzen
    Von Zapot im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 16.11.2006, 22:03
  4. Such-Funktion benutzen!!!!
    Von Maxl im Forum Stammtisch
    Antworten: 1
    Letzter Beitrag: 06.01.2006, 10:50
  5. PDA als Wireless HMI benutzen
    Von Helmut im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 01.08.2005, 13:34

Lesezeichen

Berechtigungen

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