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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: PUT / GET in SCL

  1. #1
    Registriert seit
    19.07.2007
    Beiträge
    78
    Danke
    14
    Erhielt 2 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    irgendwas scheine ich falsch zu machen aber ich komme nicht dahinter was es ist.
    Ich möchte eine Put / Get S7-Verbindung zu einer anderen Steuerung aufbauen.
    Habe das ganze aus Verzweiflung in FUP programmiert und auch zum Laufen gebracht.
    In SCL schaffe ich das leider nicht. Immer wenn ich den Pointer im Aufruf an den entsprechenden Eingang / Ausgang schreibe, meckert der SCL-Editor.
    Warum geht das nicht genauso wie in FUP. Hat da jemand Erfahrung und kann mir helfen? Kann zur Veranschaulichung auch gerne die Aufrufe mal posten wenn es was bringt!

    Grüße
    Carsten
    Zitieren Zitieren PUT / GET in SCL  

  2. #2
    Registriert seit
    29.10.2010
    Beiträge
    555
    Danke
    58
    Erhielt 39 Danke für 37 Beiträge

    Standard

    Poste doch erstmal das Programm, vielleicht kann man da schon was sehen.

  3. #3
    Registriert seit
    19.07.2007
    Beiträge
    78
    Danke
    14
    Erhielt 2 Danke für 1 Beitrag

    Standard

    So sieht der Aufruf vereinfacht in SCL aus.

    GET(REQ := M0.7 // IN: BOOL
    ,ID := 16#01 // IN: WORD
    ,ADDR_1 := P#DB112.DBX0.0 BYTE 2 //RT_DATEN_RCV.SRC_POINTER // INOUT: ANY
    ,RD_1 := P#DB114.DBX0.0 BYTE 2 //RT_DATEN_RCV.DST_POINTER // INOUT: ANY
    );

    bei der Übersetzung meckert der Editot dann : Unzulässiger Datentyp für Konstante

  4. #4
    Registriert seit
    09.08.2006
    Beiträge
    3.638
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Schau mal in der SCL Hilfe unter POINTER

    Gruß.

  5. #5
    Registriert seit
    19.07.2007
    Beiträge
    78
    Danke
    14
    Erhielt 2 Danke für 1 Beitrag

    Standard

    Wenn ich da die Lösung gefunden bzw. verstanden hätte, dann würde ich hier ja nicht fragen oder?

  6. #6
    Registriert seit
    09.08.2006
    Beiträge
    3.638
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Also ich verstehs so, dass eine Konstante kein Pointer sein soll... probier mal ne IN_OUT Variable für den Pointer aus.

    Hab hier nur die Hilfe vom SCL 5.3 da ists gut erklärt, wenns im TIA nicht so ist, dann bin ich mal wieder froh, nix mit TIA machen zu müssen.

    Gruß.
    Geändert von ducati (13.12.2012 um 13:06 Uhr)

  7. #7
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.582
    Danke
    63
    Erhielt 261 Danke für 221 Beiträge

    Standard

    Ich denke das geht nur mit der AT-Sicht.
    Siehe hier: http://www.sps-forum.de/showthread.p...rameter-in-SCL
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

  8. #8
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.582
    Danke
    63
    Erhielt 261 Danke für 221 Beiträge

    Standard

    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

  9. #9
    Registriert seit
    09.08.2006
    Beiträge
    3.638
    Danke
    912
    Erhielt 661 Danke für 543 Beiträge

    Standard

    Jo, entweder den Pointer über nen STRUCT selber zusammenbauen, oder von nem Eingang übernehmen...

    selber zusammenbauen könnte dann so aussehen:

    Code:
    VAR_TEMP
     READ : ANY;   
     _READ AT READ : STRUCT                       
            ID : BYTE;  
            Typ : BYTE; 
            Laenge : WORD;  
            DBNr : WORD;  
            Adresse : DWORD;  
           END_STRUCT;  
     
     WRITE : ANY;
    _WRITE AT WRITE : STRUCT                      
            ID : BYTE;  
            Typ : BYTE;  
            Laenge : WORD;  
            DBNr : WORD;  
            Adresse : DWORD;  
        END_STRUCT; 
       
    END_VAR 
    
    BEGINN;
           _READ.ID := 16#10;                // fest
            _READ.Typ :=  16#2;               // 2 für Byte (fest)
            _READ.Laenge := INT_TO_WORD(2);        // DB-Länge
            _READ.DBNr :=INT_TO_WORD(112);          // DB-Nummer
            _READ.Adresse := DW#16#84000000;  // fest
     
            _WRITE.ID := 16#10;  
            _WRITE.Typ :=  16#2;  
            _WRITE.Laenge :=INT_TO_WORD(2);  
            _WRITE.DBNr :=DINT_TO_WORD(112);  
            _WRITE.Adresse := DW#16#84000000;  
    
    GET(REQ      := M0.7,           
           ID         := 16#01,        
           ADDR_1 := READ,     
           RD_1    := WRITE     
              );
    ungetestet! aber so in etwas müsste es gehen, hat GET nen Rückgabewert?...

    Gruß.

    PS: trotzdem wären nähere Angaben vom TE von Vorteil. Was soll genau gemacht werden, ist es jetzt TIA etc...
    Geändert von ducati (13.12.2012 um 14:44 Uhr)

  10. #10
    Registriert seit
    08.11.2011
    Beiträge
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Was willst du denn übertragen?

    Ist die Quelle / das Ziel immer gleich oder ändert sich da was zur Laufzeit?
    Grüße,
    Stefan!

Ähnliche Themen

  1. Performance PUT/GET Verbindung
    Von MW im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 25.07.2012, 18:35
  2. PUT GET Fehler
    Von Bensen83 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 04.09.2011, 13:29
  3. Put/get S74142dp
    Von Ahnungsloser im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 05.08.2008, 22:30
  4. ANY am PUT einer FC möglich?
    Von C_H im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 06.02.2008, 16:35
  5. PUT und Get
    Von Farinin im Forum Simatic
    Antworten: 20
    Letzter Beitrag: 19.01.2007, 15:40

Lesezeichen

Berechtigungen

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