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

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

Thema: "PPO Typ3" (4 Bytes) über Profib ohne SFC15 senden

  1. #1
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo ich habe eine Frage zum Thema Profibus !

    Gibt es eine Möglichkeit 4 Bytes ( 2 PAW ) konsistent an einen Profibus Slave (Frequenzumrichter) zu übertragen ohne SFC15 zu benutzen?
    Wenn ja gebt mir bitte einen Tip!
    Zurzeit kann ich leider nur die 4 Bytes also genaugenommen Zustandswort und Drehzahlistwert Anzeigen !
    Das Aber ohne SFC14

    Grüsse Torsten
    Zitieren Zitieren Gelöst: "PPO Typ3" (4 Bytes) über Profib ohne SFC15 senden  

  2. "Hallo, das is mir aber neu dass T PAD xy nicht konsistent ist. Wie kommste denn darauf? Und was kommt an RET_VAL vom SFC raus wenns nich funktioniert?

    MfG
    André Räppel"


  3. #2
    Registriert seit
    30.08.2003
    Beiträge
    2.196
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Hallo Torsten,

    mit T PAD xy kannste eigentlich die 4 Bytes konsistent übertragen

    MfG
    André Räppel
    Zitieren Zitieren Kommunikation  

  4. #3
    Anonymous Gast

    Standard

    Danke

  5. #4
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Nein, T PAD überträgt 2 Worte wortkonsistent. In 999 von 1000 Fällen oder noch häufiger wird das keinen Unterschied machen, aber prinzipiell ist es möglich, damit Unsinn zu lesen.

  6. #5
    Anonymous Gast

    Standard

    Ich möchte auf diesem weg des Steuerwort und die Sollfrequenz an den FU mit PPO3 senden, aber der FU macht nix

    Grüsse Torsten

  7. #6
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.849
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    hallo

    ich habe im mom ein ähnliches problem nur andersrum.

    ich wollte mit sfc 14/15 die daten an einen mm440 (typ: ppo1) übertragen.
    cpu ist eine 315-2-dp.(315-2af03-0ab0)
    aber das klappt nicht. der gleiche baustein funktioniert mit einer 313c-2dp und einem mm430 einwandfrei.

    siemens meint das wird wohl an der cpu liegen. die haben das an den custumersupport weitergeleitet und werden sich nochmal bei mir melden.
    ich werd dann mal berichten was dabei rauskommt.

    wenn ich direkt die peripherie anspreche funktionierts.
    sollte auch bei dir. unabhängig von ppo1/ppo3.

    so funktionierts bei mir.
    Code:
    PZD_Addr_1_temp	DWORD		PZD Anfangsadresse 1	
    PZD_Addr_2_temp	DWORD		PZD Anfangsadresse 2	
    
          L     #PZD_Addr
          T     #PZD_Addr_1_temp
          L     2
          +I    
          T     #PZD_Addr_2_temp
    
    //Zustandswort lesen
          L     PEW [#PZD_Addr_1_temp]
          T     DBW   22
          L     PEW [#PZD_Addr_2_temp]
          T     DBW   24
    erea: NOP   0
    
    
    //Steuerwort schreiben
          L     DBW    8
          T     PAW [#PZD_Addr_1_temp]
          L     DBW   10
          T     PAW [#PZD_Addr_2_temp]
    ewri: NOP   0
    so gehts komischerweise nicht
    Code:
    //Zustandswort lesen
          CALL  SFC   14
           LADDR  :=#PZD_Addr_1_temp
           RET_VAL:=#Ret_Val_SFC14
           RECORD :=P#DBX 22.0 BYTE 4
    
    
    //Steuerwort schreiben
          CALL  SFC   15
           LADDR  :=#PZD_Addr_1_temp
           RECORD :=P#DBX 8.0 BYTE 4
           RET_VAL:=#Ret_Val_SFC15
    ob das mit dem direkten peripheriezugriff auch auf die 4 pkw's klappt werde ich morgen testen und berichten.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  8. #7
    Registriert seit
    30.08.2003
    Beiträge
    2.196
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Hallo, das is mir aber neu dass T PAD xy nicht konsistent ist. Wie kommste denn darauf? Und was kommt an RET_VAL vom SFC raus wenns nich funktioniert?

    MfG
    André Räppel
    Zitieren Zitieren Konsistenz  

  9. #8
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.849
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    Zitat Zitat von sps-concept
    Und was kommt an RET_VAL vom SFC raus wenns nich funktioniert?
    falls du mich meinst.

    hab ich nicht drauf geachtet. werd ich morgen aber nachholen.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation
    Zitieren Zitieren Re: Konsistenz  

  10. #9
    Registriert seit
    25.06.2003
    Ort
    Emden
    Beiträge
    61
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Moin,
    um einen Frequenzumrichter mit dem PPO3 Protokoll anzusteuern musst du nicht unbedingt konsitent arbeiten, da das Steuerwort und der Sollwert für sich jeweils Wortkonsistent übertragen werden. Ich nutze die konsistente Übertragung nur bei grösseren Protokollen wie PPO4, wenn ich eine 'wortübergreifende Funktionsbelegung' benötige.

    Ich habe hier mal ein einfaches aufgeschlüsseltes Listing, welches einen PPO3 Danfoss-VLT ansteuert. Über den Eingang ANXX kann die Adresse aus der Hardwarekonfiguration vorgegeben werden.

    Ich habe die jeweiligen Steuer- und Statusbits aufgeschlüsselt, damit man (falls nötig) die FC für individuelle Zwecke anpassen kann. Die Sollwertvorgabe entspricht 0-1024 (0-1000 wegen einfacher Rechnen -0-100% Anwendervorgabe *10)

    Code:
    FUNCTION "VLT_Steuern" : VOID
    TITLE =Ansteuerung VLT über Profibus und Istwert/Status auslesen
    AUTHOR : de_Vries
    FAMILY : Multi_FC
    NAME : VLT_PB
    VERSION : 0.1
    
    
    VAR_INPUT
      ANXX_VLT : INT ;  //PEW/PAW Adresse für ANEI/ANAU VLT
      Sollwert : INT ;  //Sollwert VLT
      Start : BOOL ;    //Start Reglerfreigabe VLT
    END_VAR
    VAR_IN_OUT
      Stoerung : BOOL ; //M :Störung Allgemein
      Speed_Ist : INT ; //Istwert VLT
      Status : INT ;    //Statuswort von VLT Regler
    END_VAR
    VAR_TEMP
      Steuern_VLT : STRUCT  //Steuerwort für Danfoss Profibusanbindung
       Bit_8 : BOOL ;   //VLT Steuerbit: Bit 0 = OFF            Bit 1 = Festdrehzahl ein
       Bit_9 : BOOL ;   //VLT Steuerbit: Bit 0 = Rampe 1 ein    Bit 1 = Rampe 2 ein
       Bit_10 : BOOL ;  //VLT Steuerbit: Bit 0 = Daten ungültig Bit 1 = Daten gültig
       Bit_11 : BOOL ;  //VLT Steuerbit: Bit 0 = Relais 01 off  Bit 1 = Relais 01 on
       Bit_12 : BOOL ;  //VLT Steuerbit: Bit 0 = Relais 01 off  Bit 1 = Relais 01 on
       Bit_13 : BOOL ;  //VLT Steuerbit: Wahleinstellung 1 lsb
       Bit_14 : BOOL ;  //VLT Steuerbit: Wahleinstellung 1 msb
       Bit_15 : BOOL ;  //VLT Steuerbit: Bit 0 = Vorfahrt       Bit 1 = Reversierung
       Bit_0 : BOOL ;   //VLT Steuerbit: Wahl Festsollwert lsb
       Bit_1 : BOOL ;   //VLT Steuerbit: Wahl Festsollwert msb
       Bit_2 : BOOL ;   //VLT Steuerbit: Bit 0 = DC-Bremse       Bit 1 = Rampe
       Bit_3 : BOOL ;   //VLT Steuerbit: Bit 0 = Freilauf        Bit 1 = Aktiv
       Bit_4 : BOOL ;   //VLT Steuerbit: Bit 0 = Schnellstop     Bit 1 = Rampe
       Bit_5 : BOOL ;   //VLT Steuerbit: Bit 0 = Halten          Bit 1 = Rampe aktiv
       Bit_6 : BOOL ;   //VLT Steuerbit: Bit 0 = Rampenstop      Bit 1 = Start
       Bit_7 : BOOL ;   //VLT Steuerbit: Bit 0 = n.Quittieren    Bit 1 = Quittieren
      END_STRUCT ;  
      Status_VLT : STRUCT   //Statuswort für Danfoss Profibusanbindung
       Bit_8 &#58; BOOL ;   //VLT Statusbit&#58; Bit 0 = Drehzahl >< Soll  Bit 1 = Drehzahl = Soll
       Bit_9 &#58; BOOL ;   //VLT Statusbit&#58; Bit 0 = Ortbetrieb        Bit 1 = Busbetrieb
       Bit_10 &#58; BOOL ;  //VLT Statusbit&#58; Bit 0 = Frequenzgrenze    Bit 1 = Frequenz OK
       Bit_11 &#58; BOOL ;  //VLT Statusbit&#58; Bit 0 = Läuft             Bit 1 = Läuft nicht
       Bit_12 &#58; BOOL ;  //VLT Statusbit&#58; Bit 0 = VLT OK            Bit 1 = VLT nicht OK
       Bit_13 &#58; BOOL ;  //VLT Statusbit&#58; Bit 0 = Spannung OK       Bit 1 = Spannungsgrenze
       Bit_14 &#58; BOOL ;  //VLT Statusbit&#58; Bit 0 = Drehmoment OK     Bit 1 = Momentengrenze
       Bit_15 &#58; BOOL ;  //VLT Statusbit&#58; Bit 0 = Timer OK          Bit 1 = Timergrenze
       Bit_0 &#58; BOOL ;   //VLT Statusbit&#58; Bit 0 = Steuer. n.bereit  Bit 1 = Steuerung bereit 
       Bit_1 &#58; BOOL ;   //VLT Statusbit&#58; Bit 0 = VLT nicht bereit  Bit 1 = VLT bereit
       Bit_2 &#58; BOOL ;   //VLT Statusbit&#58; Bit 0 = Motor Freilauf    Bit 1 = Motor Aktiv
       Bit_3 &#58; BOOL ;   //VLT Statusbit&#58; Bit 0 = Kein Fehler       Bit 1 = Abschaltung
       Bit_4 &#58; BOOL ;   //VLT Statusbit&#58; Bit 0 = Reserve           Bit 1 = Reserve
       Bit_5 &#58; BOOL ;   //VLT Statusbit&#58; Bit 0 = Reserve           Bit 1 = Reserve
       Bit_6 &#58; BOOL ;   //VLT Statusbit&#58; Bit 0 = Reserve           Bit 1 = Reserve
       Bit_7 &#58; BOOL ;   //VLT Statusbit&#58; Bit 0 = Keine Warnung     Bit 1 = Warnung
      END_STRUCT ;  
      Nicht_genutzt &#58; INT ; //Nicht genutzter Bereich &#40;Schmiermerker&#41;
      Statuswort &#58; INT ;    //Statuswort für VLT Regler
      Steuerwort &#58; INT ;    //Steuerwort für VLT Regler
    END_VAR
    BEGIN
    NETWORK
    TITLE =Ansteuerung VLT über Profibus und Istwert/Status auslesen
    
          L     #ANXX_VLT; // Eingangsadresse als Formaloperant 
          SLW   3; // Bitregister ausblenden
          LAR1  ; // in Adressregister laden
    
    // -------------------------  Steuerwort vorbelegen  --------------------------------
    
          SET   ; // VKE auf '1' setzen
          R     #Steuern_VLT.Bit_0; // = Festsollwert lsb aus
          R     #Steuern_VLT.Bit_1; // = Festsollwert msb aus
          =     #Steuern_VLT.Bit_2; // = DC-Bremse aus, Rampenbetrieb ein
          =     #Steuern_VLT.Bit_3; // = Motor aktiv
          =     #Steuern_VLT.Bit_4; // = Schnellstop aus, Rampenbetrieb ein
          =     #Steuern_VLT.Bit_5; // = Haltebetrieb aus, Rampenbetrieb ein
          R     #Steuern_VLT.Bit_6; // = Rampenstop
          R     #Steuern_VLT.Bit_7; // = nicht quittieren
          R     #Steuern_VLT.Bit_8; // = Festdrehzahl aus
          R     #Steuern_VLT.Bit_9; // = Rampe 1 ein
          R     #Steuern_VLT.Bit_10; // = Bit 10 > 0 aktiv
          R     #Steuern_VLT.Bit_11; // = Relais 1 aus
          R     #Steuern_VLT.Bit_12; // = Relais 2 aus
          R     #Steuern_VLT.Bit_13; // = Wahleinstellung 1 lsb aus
          R     #Steuern_VLT.Bit_14; // = Wahleinstellung 1 msb aus
          R     #Steuern_VLT.Bit_15; // = Reversierung aus
    
    // ------------------------  Statuswort / Istwert auslesen  ---------------------------
    
          L     PEW &#91;AR1,P#0.0&#93;; // Statuswort
          T     #Statuswort; // in LD laden
          T     #Status; // zur Ausgabe
          CALL "BLKMOV" &#40;// Statuswort
               SRCBLK                   &#58;= #Statuswort,// in Statuswort Struktur schreiben
               RET_VAL                  &#58;= #Nicht_genutzt,// 
               DSTBLK                   &#58;= #Status_VLT&#41;;// 
    
          L     PEW &#91;AR1,P#2.0&#93;; // Istgeschwindigkeit laden
          SSI   4; // Rechtsbündig ausrichten &#40;Vorzeichen beibehalten&#41;
          T     #Speed_Ist; // Übergabe an Ausgang
    
          O     #Status_VLT.Bit_3; // Oder VLT Abschaltung
          O     #Status_VLT.Bit_12; // oder VLT ist nicht OK
          =     #Stoerung; // VLT Störung
    
    // -----------------------------  Antrieb starten  -----------------------------------
    
          U     #Start; // Und Start VLT
          U     #Status_VLT.Bit_0; // und Steuerung ist bereit
          U     #Status_VLT.Bit_1; // und VLT ist bereit
          UN    #Status_VLT.Bit_12; // und VLT ist OK
          =     #Steuern_VLT.Bit_6; // = VLT Start
    
          CALL "BLKMOV" &#40;// Steuerword Struktur
               SRCBLK                   &#58;= #Steuern_VLT,// in Steuerwort für Übergabe schreiben
               RET_VAL                  &#58;= #Nicht_genutzt,// 
               DSTBLK                   &#58;= #Steuerwort&#41;;// 
    
    // -----------------------------  Werte zum VLT  -------------------------------------
    
          L     #Steuerwort; // Steuerwort 
          T     PAW &#91;AR1,P#0.0&#93;; // in VLT laden
          L     #Sollwert; // Sollwert
          SLW   4; // Linksbündig Ausrichten
          T     PAW &#91;AR1,P#2.0&#93;; // in VLT laden
    END_FUNCTION
    mfG
    Ingo dV

    Regelmässiges Versagen ist auch
    eine Form der Zuverlässigkeit
    Zitieren Zitieren Kositenz und so  

  11. #10
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo mit dem SFC15 gehts jetzt aber Dein Script probier ich morgen auch mal!
    Warom nehmen denn hier fast alle PPO1?
    Was erleichtert mir das?

    Torsten

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 30.05.2011, 17:16
  2. "Index Pulse", "Home Switch" und "Position Limit Switch"
    Von senmeis im Forum Antriebstechnik
    Antworten: 3
    Letzter Beitrag: 07.03.2011, 11:21
  3. Aufbau einer Zuhaltung der Kat.3 ohne Fehlerausschluss "Betätigerbruch"
    Von nikraym im Forum Maschinensicherheit - Normen und Richtlinien
    Antworten: 15
    Letzter Beitrag: 26.01.2010, 13:27
  4. Antworten: 2
    Letzter Beitrag: 14.12.2007, 15:09
  5. Bausteineschützen ohne "Know How Schutz"
    Von Elch im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 15.02.2005, 08:06

Lesezeichen

Berechtigungen

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