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

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

Thema: FU Daten auslesen und verarbeiten

  1. #1
    Registriert seit
    30.10.2007
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen

    als vorabinformation

    FU Danfoss FC300
    S7 416

    Folgendes Problem

    Ich hole mir die Daten vom FU mit SFC 14 ab und sende mit SFC 15.
    Ich möchte ein universelles Baustein programmieren welches je nach bedarf an FU Anzahl flexibel erweitert werden kann.

    Ich benutze hirfür ein FC mit einem Globalem Array (Array soll das einzige anzupassende programm code sein in bezug auf FU anzahl)

    Ich versuche mit inderekter Adressierung auf ein PED zuzugreifen. Syntax überprüfung bringt keine fehler. Im SPS simulator funzt es leider nicht.

    folgender code FC9:

    [php]
    AUF "FU Danfoss"

    // Lesen

    CALL "DPRD_DAT"
    LADDR :=#FU_Adr_PE
    RET_VAL:=MW5000
    RECORD :=P#DBX 0.0 BYTE 8

    L #FU_Adr_PE
    LAR1

    L PED [ar1,p#8.0]
    T DBD 8


    // Schreiben

    CALL "DPWR_DAT"
    LADDR :=#FU_Adr_PA
    RECORD :=P#DBX 30.0 BYTE 8
    RET_VAL:=MW5000

    L #FU_Adr_PA
    LAR1

    L DBD [ar1,p#30.0]
    T PAD 1008

    BE
    [/php]Die logik zum hochrechner der DB Adressen und PED/PAD steht bereits. Einziges problem ist, dass ich über diese Art der Adressierung die PED nicht lesen kann.


    Hat jemand eine idee? liegt es am Simulator? Habe leider keine echte SPS zur Verfügung.

    Besten dank im voraus
    Zitieren Zitieren FU Daten auslesen und verarbeiten  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.788
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    Hallo,
    der SFC14,15 benutzt einen ANY-Pointer zum Beschreiben des DB's.
    Nach meiner Meinung mußt du mit dem Pointer den DB mit übergeben :
    Code:
    CALL  "DPRD_DAT"                  
           LADDR  :=#FU_Adr_PE
           RET_VAL:=MW5000
           RECORD :=P#DB100.DBX 0.0 BYTE 8       
    
    Ich habe da jetzt mal DB100 eingesetzt, da ich nicht weiß, wo dein symbolischer "FU Danfoss" hinverweisst ...

    Gruß
    LL

  3. #3
    Loadon ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    30.10.2007
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    SFC14 und SFC15 machen ihre Arbeit korrekt.

    mein probelm ist das was danach kommt.
    ich muss 2 Worte manuell abfragen mit "L PED"

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.788
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    ...
    dann habe ich dein Problem wohl noch nicht verstanden ... vielleicht versuchst du es noch einmal.

    Im Übrigen ... Simulator ?

  5. #5
    Registriert seit
    20.11.2006
    Ort
    Hamburg
    Beiträge
    225
    Danke
    35
    Erhielt 35 Danke für 32 Beiträge

    Standard

    Da stellen sich viele Fragen.

    Simulation von SFC14/15? Die Bausteine lesen/schreiben doch konsistent von/in einem DP-Slave. Wie simulierst du diesen?

    Warum willst du danach nochmal auf die direkten Eingangsdoppelwörter zugreifen? Die Daten liegen doch dann im Datenbaustein schon bereit.

    Willst du beliebig viele FUs anschließen und nur auf den PZD-Bereich zugreifen oder auch auf den PKW-Bereich?

  6. #6
    Loadon ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    30.10.2007
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Dotzi Beitrag anzeigen
    Da stellen sich viele Fragen.
    Simulation von SFC14/15? Die Bausteine lesen/schreiben doch konsistent von/in einem DP-Slave. Wie simulierst du diesen?
    Simulator starten und PED xyz mit werten füttern und dies dann auslesen.


    Ich hab es nun ganz anders gelöst. Ich schreibe und lese direkt in den PEW adressen.

    danke allen

  7. #7
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Zitat Zitat von Loadon Beitrag anzeigen
    [php]
    AUF "FU Danfoss"

    // Lesen

    CALL "DPRD_DAT"
    LADDR :=#FU_Adr_PE
    RET_VAL:=MW5000
    RECORD :=P#DBX 0.0 BYTE 8

    L #FU_Adr_PE // Das ist deine Startadresse in HEX von deinem FU
    SLD3 //Das musst du dazu einfügen das es ein Pointer wird!!!!!
    LAR1

    L PED [ar1,p#8.0]
    T DBD 8


    // Schreiben

    CALL "DPWR_DAT"
    LADDR :=#FU_Adr_PA
    RECORD :=P#DBX 30.0 BYTE 8
    RET_VAL:=MW5000

    L #FU_Adr_PA
    LAR1

    L DBD [ar1,p#30.0]
    T PAD 1008

    BE
    [/php]
    Hallo!

    Siehe mein Korrektur in deinem Programm.
    Und schau mal in die FAQ da steht schon sehr viel über Pointer drinnen!

    Aber sag mal warum wills du das PED lesen? Du lest ja sowieso alle Daten mit der SFC 14?
    Und bei record gehört ein Anypointer ran!
    siehe vorhergehende Beiträge

    godi
    Geändert von godi (09.01.2008 um 22:42 Uhr)

  8. #8
    Loadon ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    30.10.2007
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ich hatte in einem der Danfoss Handbücher gelesen das genau diese beiden datenbereiche manuell geladen werden müssen. Ich kann es aber nicht wieder finden...

    ich benutze ein Array um die Daten der FU's abzulegen. ich habe 30 FU's in der Anlage und es erschien mir als der einfachste weg den DB aufzubauen.

  9. #9
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Zitat Zitat von Loadon Beitrag anzeigen
    ich hatte in einem der Danfoss Handbücher gelesen das genau diese beiden datenbereiche manuell geladen werden müssen. Ich kann es aber nicht wieder finden...

    ich benutze ein Array um die Daten der FU's abzulegen. ich habe 30 FU's in der Anlage und es erschien mir als der einfachste weg den DB aufzubauen.
    Warum legst du dir nicht pro Motor einen UDT an?
    In den UDT kannst du dir einen Kopfbereich machen wo Statische Daten drinnstehen wie die Basisadresse und dann einen Bereich mit Eingang und einen mit Ausgang. Den UDT rufst du dir 30 mal in einem DB auf und dann hast du deine ganzen Daten von den Fu's schön gegliedert gesammelt.

  10. #10
    Loadon ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    30.10.2007
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    die idee mit den UDT ist noch besser

    danke dir ich werds mal austesten

Ähnliche Themen

  1. Systemzeit auslesen und verarbeiten
    Von GigaPitty im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 23.04.2010, 14:51
  2. Mit S7 werte von MATLAB auslesen und verarbeiten
    Von Freakadelle im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 02.02.2009, 13:56
  3. Daten aus DB auslesen
    Von netx1 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 03.06.2008, 19:06
  4. Daten auslesen
    Von SSX im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 05.12.2006, 08:47
  5. Daten lesen/schreiben und verarbeiten
    Von Supervisor im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 02.05.2006, 08:08

Lesezeichen

Berechtigungen

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