Problem mit Drive ES und Danfoss Umrichter

A

Anonymous

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte mit einer S7 315DP2 einen Danfoss Umrichtermotor FCM 350 über Profibus steuern. GSD-Dateien hab ich schon gefunden und installiert. Mein Problem ist, das ich keine Kommunikation, besser gesagt Telegramme an den Umrichter schicken bzw. empfangen kann. Nun hab ich in der Doku vom Umrichter gelesen, das man dazu den Siemens FB 36 "PCDAT AC32" (oder so ähnlich) benötigt. In meiner Step7 Version V5.2 SP2 ist dieser Baustein nicht vorhanden. Ich hab etwas im Netz gesucht und rausgefunden, das der FB in Drive ES enthalten sein soll. Nun hab ich mir Drive ES besorgt. Leider ist in Drive ES dieser FB auch nicht enthalten. Kann mir jemand sagen, wo ich diesen Baustein finde?

Vielen Dank

Gruß

Swissman
 
Drive ES FB36 PDAT AC_2

Hi!

Wenn du Drive ES installiert hast,müsste in der Bibliothek 'DRVDP7'
der gesuchte Baustein FB36 PDAT AC_2 enthalten sein.

Benutze selbst step7 5.3 und Drive ES 5.3

MfG
tomtom222
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

komisch, bei mir ist der nicht drin - hab Drive ES Basic - liegt es daran?
Kann man die Bibiliothek auch exportieren? Wenn ja, könntest du Sie mir per mail schicken?

MfG
 
Danfoss

Willst du den Regler über DPV1 parametrieren oder wofür benötigst du diese Art der Kommunikation?
Normalerweise reicht es, wenn du über das PPO Protokoll die Steuerbit's setzt und den Sollwert vorgibst. Du kannst den Regler direkt über T PAW/ L PEW erreichen. Eine weitere Möglichkeit besteht in der konsistenten Datenübertragung. Hierzu benötigst du den SFC 14 (Empfangen) und den SFC 15 (Senden).

Hier ein Bspl. für Empfangen
Code:
   CALL  "DPRD_DAT"                  // Empfange Daten mit Bereichskonsistenz  Achse 1
       LADDR  :=#ANXX_Achse1            // ab Adresse (PEW) 700
       RET_VAL:=#Bus_Lesefehler         // Lesefehler auslesen
       RECORD :=#Recive_A1              // Schreibe Werte in Empfangsstruktur 6 Worte/12 Byte
      L     #Bus_Lesefehler             // Lesefehler auslesen
      L     0                           // Steht ein Fehler an ?
      <>I                               // 
      R     #Recive_A1.PZD1.Bit0        // Reset Lebensmerker Achse 1

      L     #Recive_A1.HIW              // Istwert Geschwindigkeit von Slave 1 zur Visualisierung
      SSI   4                           // Rechtsbündig ausrichten (Vorzeichen beibehalten)
      T     #Visi.Speed.Achse1_ist      // *** Istgeschwindigkeit Achse 1

und ein Bspl. für senden

Code:
      U     #M.Eins                     // Lebensmerker an Achse 1
      =     #Send_A1.PZD1.Bit7          // 

      CALL  "DPWR_DAT"                  // Sende Daten mit Bereichskonsistenz  Achse 1
       LADDR  :=#ANXX_Achse1            // ab Adresse (PAW) X
       RECORD :=#Send_A1                // Lese Werte von Sendestruktur - 6 Worte/12 Byte
       RET_VAL:=#Bus_Sendefehler        // Sendefehler bereitstellen
      L     #Bus_Sendefehler            // Lesefehler auslesen
      L     0                           // Steht ein Fehler an ?
      <>I                               // 
      =     #M.Schreibfehler_A1         // Schreibfehler Achse 1

Dabei sind Recive_A1 und Send_A1 Array's, die folgendermassen angelegt sind.

Code:
  Recive_A1 : STRUCT    //Empfange Achse 1
   ZSW : STRUCT     //Zustandswort
    Bit8 : BOOL ;   //Drehzahl >< Soll/Istdrehzahl = Solldrehzahl
    Bit9 : BOOL ;   //Ortbetrieb/Busbetrieb
    Bit10 : BOOL ;  //Frequenzgrenze/Frequenz OK
    Bit11 : BOOL ;  //Läuft/Läuft nicht
    Bit12 : BOOL ;  //VLT OK/VLT nicht OK
    Bit13 : BOOL ;  //Spannung OK/Spannungsgrenze
    Bit14 : BOOL ;  //Drehmoment OK/Momentengrenze
    Bit15 : BOOL ;  //Timer OK/Timergrenze
    Bit0 : BOOL ;   //Steuerung nicht bereit/Steuerung bereit 
    Bit1 : BOOL ;   //VLT nicht bereit/VLT bereit
    Bit2 : BOOL ;   //Motor Freilauf/Motor Aktiv
    Bit3 : BOOL ;   //Kein Fehler/Abschaltung
    Bit4 : BOOL ;   //RESERVE
    Bit5 : BOOL ;   //RESERVE
    Bit6 : BOOL ;   //RESERVE
    Bit7 : BOOL ;   //RESERVE
   END_STRUCT ; 
   HIW : INT ;  //Hauptistwert
   PZD1 : STRUCT    //Prozessdaten 1
    Bit8 : BOOL ;   //RESERVE
    Bit9 : BOOL ;   //RESERVE
    Bit10 : BOOL ;  //RESERVE
    Bit11 : BOOL ;  //RESERVE
    Bit12 : BOOL ;  //RESERVE
    Bit13 : BOOL ;  //RESERVE
    Bit14 : BOOL ;  //RESERVE
    Bit15 : BOOL ;  //RESERVE
    Bit0 : BOOL ;   //Lebensmerker
    Bit1 : BOOL ;   //Antrieb Störung
    Bit2 : BOOL ;   //Antrieb ist reverenziert
    Bit3 : BOOL ;   //Antrieb ist auf Startposition
    Bit4 : BOOL ;   //Sync Fehler
    Bit5 : BOOL ;   //Reserve
    Bit6 : BOOL ;   //Reserve
    Bit7 : BOOL ;   //Reserve
   END_STRUCT ; 
   PZD2_und_3 : DINT ;  //Prozessdaten 2 und 3 - Geberistwert (AVEL)
   PZD4 : INT ; //Prozessdaten 4 - Achsstatus
  END_STRUCT ;

Code:
  Send_A1 : STRUCT  //Sende an Achse 1
   STW : STRUCT     //Steuerwort
    Bit8 : BOOL ;   //Reserve
    Bit9 : BOOL ;   //Reserve
    Bit10 : BOOL ;  //Reserve
    Bit11 : BOOL ;  //Reserve
    Bit12 : BOOL ;  //Reserve
    Bit13 : BOOL ;  //Reserve
    Bit14 : BOOL ;  //Reserve
    Bit15 : BOOL ;  //Reserve
    Bit0 : BOOL ;   //Reglerfreigabe
    Bit1 : BOOL ;   //Reserve
    Bit2 : BOOL ;   //Reserve
    Bit3 : BOOL ;   //Reserve
    Bit4 : BOOL ;   //Reserve
    Bit5 : BOOL ;   //Reserve
    Bit6 : BOOL ;   //Reserve
    Bit7 : BOOL ;   //Reserve
   END_STRUCT ; 
   HSW : INT ;  //Hauptsollwert
   PZD1 : STRUCT    //Prozessdaten 1
    Bit8 : BOOL ;   //Freigabe manueller Gebertest
    Bit9 : BOOL ;   //Reserve
    Bit10 : BOOL ;  //Reserve
    Bit11 : BOOL ;  //Reserve
    Bit12 : BOOL ;  //Reserve
    Bit13 : BOOL ;  //Reserve
    Bit14 : BOOL ;  //Reserve
    Bit15 : BOOL ;  //Reserve
    Bit0 : BOOL ;   //Antrieb Rütteln (Rampen schnell)
    Bit1 : BOOL ;   //Antrieb Ausrichten (Indexposition suchen)
    Bit2 : BOOL ;   //Antrieb reversieren (Sollwert Master reversieren)
    Bit3 : BOOL ;   //Antrieb quittieren (Reset Störungen)
    Bit4 : BOOL ;   //Anwahl Eichen (Freigabe Antrieb Eichen)
    Bit5 : BOOL ;   //Taster Eichen (3 Sekunden drücken)
    Bit6 : BOOL ;   //Antrieb zur Startposition (Indexposition anfahren)
    Bit7 : BOOL ;   //Lebensmerker
   END_STRUCT ; 
   PZD2 : INT ; //Prozessdaten 2 - Nicht genutzt
   PZD3 : INT ; //Prozessdaten 3 - Nicht genutzt
   PZD4 : INT ; //Prozessdaten 4 - Nicht genutzt
  END_STRUCT ;

Dieses Bspl. ist mit PPO4 Modulkonsistenz projektiert. Für einfachere Anwendungen reicht das PPO3. Hierbei wird dann nur das ZSW/HIW bzw.
STW/HSW übertragen.

ZSW = Zustandswort
HIW = Hauptistwert
STW = Statuswort
HSW = Hauptsollwert
 
Hi,

die Steuerung des Umrichters über Profibus ist eine Aufgabe meiner Projektarbeit für die Technikerschule. Die Analog Ein/Ausgänge dürfen nicht benutzt werden. Die Lösung mit den SFC&s sieht gut aus, haben wir schon probiert - läuft nicht. Laut Danfoss ist dieser FB zwingend notwendig, um mit diesem Umrichter zu kommunizieren.

Gruß

Swissman
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danfoss

Nun, eine Kommunikation Über die SFC's muss möglich sein. Wichtig ist, dass in der Hardwarekonfig 'Module konsistent PCD' angewählt ist.
Den PDAT_AC2 benötige ich nur zur Azyklischen Kommunikation über DPV1.
 
Zurück
Oben