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

Ergebnis 1 bis 8 von 8

Thema: Korrekter Aufruf von DPWR_DAT (SFC14) in SCL?

  1. #1
    Registriert seit
    15.05.2007
    Beiträge
    46
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen, ich habe folgendes Prob:

    ich muss in einem FB von einer DP auslesen. Der FB ist in SCL geschrieben:

    Ich möchte nun den Aufruf des SFC14 auch in SCL nachbilden, der in AWL funktioniert!
    INPUTS_DRIVES = globaler DB
    PD_IN_INDRADRIVE_ADR_5.EK_IN_DCP = Struktur im DB (14 Byte)

    Aufruf in SCL geht nicht:
    Code:
     _test := DPWR_DAT (LADDR := W#16#10C, RECORD := INPUTS_DRIVES.PD_IN_INDRADRIVE_ADR_5.EK_IN_DCP );
    Die Fehlermeldung im SCL Compiler ist "ungültiger Datentyp"

    Aufruf in AWL geht:
    Code:
        call DPRD_DAT(                  // call SFC14 (read input peripherie adresses)
               LADDR  := W#16#10C,                // source peripherie adress 268(10) = 10C(16)
               RET_VAL:= MW120,
               RECORD := INPUTS_DRIVES.PD_IN_INDRADRIVE_ADR_5.EK_IN_DCP    // 7 words realtime channel
            );
    Kann mir bitte jemand sagen wie ich meinen ANY Pointer im SCL füttern muss damit der Compiler mir ne Freude macht.

    Ich habe natürlich schon im Forum gesucht aber noch nicht wirklich die Lösung für mich gefunden.

    Ich habe auch folgendes ausprobiert - hat auch nicht funktioniert:
    https://www.automation.siemens.com/W...96&Language=de

    siehe dort unter:
    Code:
    DATA_BLOCK SendeDB und EmpfDB
      struct
        data_1_32 : array [1..32] of byte
        data_33_64 : array [1..32] of byte
      end_struct
    begin
    end_data_block
    
    Die 32-Byte-Einheiten sind nötig, damit SCL den Any-Pointer für den SFC-Aufruf richtig bildet.
    
    Absender:
    
    rv1 := DPWR_DAT (LADDR := W#16#C8, RECORD := SendeDB.data_1_32);
    rv2 := DPWR_DAT (LADDR := W#16#E8, RECORD := SendeDB.data_33_64);
    
    Empfänger
    
    rv1 := DPRD_DAT (LADDR := W#16#3E8, RECORD = EmpfDB.data_1_32);
    rv2 := DPRD_DAT (LADDR := W#16#408, RECORD = EmpfDB.data_33_64);
    vielen Dank für eure Hilfe

    chris
    Zitieren Zitieren Korrekter Aufruf von DPWR_DAT (SFC14) in SCL?  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Welche Variable ist den die mit dem "ungültigen Datentyp" ?
    Welchen Typ hat "_test" ?

  3. #3
    Registriert seit
    15.05.2007
    Beiträge
    46
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hi, sorry nein _test ist eine tempvar im Format WORD

    Es betrifft diese hier

    RECORD := INPUTS_DRIVES.PD_IN_INDRADRIVE_ADR_5.EK_IN_DCP

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    ich befürchte, dass SCL die Unterstruktur in dem externen DB nicht kennt / erkennt.
    Kannst du den Datenbereich nicht auch genauso in die Instanz deines FB's holen - dann wäre das so kein Problem ...

  5. #5
    Registriert seit
    15.05.2007
    Beiträge
    46
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ich habs eigentlich schon versucht,

    ich hab mir eine stat var in diesem FB angelegt, die genau die struktur von

    INPUTS_DRIVES.PD_IN_INDRADRIVE_ADR_5.EK_IN_DCP

    hat.

    Aber das gleiche Ergebnis.

    Also FB mit zugeordnetem DBi, in diesem eine stat mit der Struktur die ich brauche und das als Parameter Record Output an den SFC gehängt.

    hmmm....

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

    Standard

    Vielleicht geht es, wenn du den Datenbereich als INPUT-Var Any definierst und deine Struktur von außen in den SCL-FB übergibst.

    In etwa so wie hier: http://www.sps-forum.de/showpost.php...0&postcount=13
    Geändert von Ralle (25.03.2009 um 15:30 Uhr)
    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

  7. #7
    Registriert seit
    30.06.2007
    Ort
    Minden (Westf.)
    Beiträge
    178
    Danke
    42
    Erhielt 21 Danke für 21 Beiträge

    Standard

    Zitat Zitat von iga-graz Beitrag anzeigen
    ich habs eigentlich schon versucht,

    ich hab mir eine stat var in diesem FB angelegt, die genau die struktur von

    INPUTS_DRIVES.PD_IN_INDRADRIVE_ADR_5.EK_IN_DCP

    hat.

    Aber das gleiche Ergebnis.

    Also FB mit zugeordnetem DBi, in diesem eine stat mit der Struktur die ich brauche und das als Parameter Record Output an den SFC gehängt.

    hmmm....
    Hi, also als statische Struktur sollte das funktionieren. Hab's schon ein paar mal so gemacht. (siehe Dateianhang).
    Angehängte Dateien Angehängte Dateien

  8. #8
    Registriert seit
    15.05.2007
    Beiträge
    46
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Daumen hoch


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ups, sorry bin grade auf meinen fehler draufgekommen,

    ich habe den ret_val des sfc14 mit einer als WORD definierten Variable gefüttert, es wird aber nur eine Var im INT Format akzeptiert.

    Der Rest funktioniert aber in SCL.

    Ich kann also eine Struktur ganz einfach an den SFC übergeben.

    Vielen Dank für eure Hilfe.

    best Grüsse Chris

Ähnliche Themen

  1. SFC14 in AG
    Von Andy_speedy im Forum Feldbusse
    Antworten: 8
    Letzter Beitrag: 16.03.2008, 15:35
  2. Sfc14 / Sfc 15
    Von WL7001 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 14.02.2008, 12:25
  3. Max Datenlänge von SFC14
    Von guenni im Forum Feldbusse
    Antworten: 19
    Letzter Beitrag: 23.03.2007, 18:12
  4. Sfc14 Dprd_dat Dp
    Von GeroldT im Forum Feldbusse
    Antworten: 1
    Letzter Beitrag: 05.02.2007, 14:09
  5. Fehlermeldung SFC14/15
    Von S.Scholl im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 16.05.2006, 09:50

Lesezeichen

Berechtigungen

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