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

Ergebnis 1 bis 6 von 6

Thema: MM420 über Profibus steuern -> Drivelib wird wegen Know How Schutz nicht übersetzt

  1. #1
    Registriert seit
    30.01.2006
    Beiträge
    115
    Danke
    2
    Erhielt 10 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    Möcht einen MM420 über Profibus steuern.
    Im TIA 13 SP1 Update 3 ist der MM420 eingebunden über das Standartprotokoll.
    Ich habe nun den FB SINA_Speed aus der Biobiothek in den OB1 gezogen.
    Es wurde auch ein FB angelegt.
    Ich kann den Baustein aber nicht übersetzen, weil er den Baustein aktualisieren will,
    ich aber das Passwort (natürlicherweise) nicht weiss

    Genaue Meldung:
    SINA_SPEED (FB285),Der vorliegende Baustein ist inkompatibel und muss neu übersetzt werden. Dies ist nur mit gültigem Passwort möglich.,,,23:31:30
    SINA_SPEED (FB285),Der Baustein kann nur mit gültigem Passwort übersetzt werden.,,,23:31:30

    Was kann ich da machen?
    Habe mich jetzt 4 Stunden gespielt. Morgen sollte das Ding laufen

    Hat eventuell einer einen Baustein um über PPO3 oder sonstige Protokolle mit dem Umformer zu kommunizieren?
    Brauche nur Aus/Ein/Drehrichtungsumkehr/Störung quittieren und Sollwertvorgabe.
    Status brauche ich nur Läuft/Störung.
    Geändert von Nethacks (22.07.2015 um 23:32 Uhr)
    Zitieren Zitieren MM420 über Profibus steuern -> Drivelib wird wegen Know How Schutz nicht übersetzt  

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

    Standard

    Ich wußte gar nicht, dass es dazu einen fertigen Baustein von Siemens gibt ...

    Was du eigentlich nur machen mußt :
    In deinem Fall sendest du das Steuerwort und den Sollwert (auch ein Wort) zum Umrichter hin (an die projektierte Perepherie-Adresse).
    Du erhältst das Statuswort und den Istwert (auch ein Wort) zurück.
    Dafür könntest du dir relativ schnell einen eigenen FB erstellen in Steuerbits richtig beschaltest und den Sollwert passend übergibst.
    Entsprechend den Status wieder auflösen.

    Gruß
    Larry

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

    Standard

    ... so könnte das dann z.B. in AWL aussehen :
    Code:
    FUNCTION_BLOCK "FB302"
    TITLE =UP Fahren Siemens MicroMaster 4xx
    AUTHOR : 'Larry'
    VERSION : 1.2
    
    VAR_INPUT
      PxB_Kopplung : INT ; //1.Perepherie-Adresse vom Koppelbereich
      Freigabe : BOOL ; //Betriebs-Freigabe des Bausteins
      Antrieb_vorwaerts : BOOL ; //Freigabe für "Antrieb fahren"
      Antrieb_rueckwaerts : BOOL ; //Freigabe für "Antrieb rückwärts"
      Stoerung_Quit : BOOL ; //Störung Regler quittieren
      Motor_n_Soll : INT ; //Solldrehzahl des Motors   [1/Min.]
      Motor_n_50Hz : INT ; //Motor-Drehzahl bei 50Hz   [1/Min.]
      Regler_f_max : INT ; //Regler-Einstellung für f_max  [Hz]
    END_VAR
    VAR_OUTPUT
      RM_Antrieb_vorwaerts : BOOL ; //MM4_ZSW1_Bit_2
      RM_Antrieb_rueckwaerts : BOOL ; //MM4_ZSW1_Bit_2
      RM_Antrieb_bereit : BOOL ; //MM4_ZSW1_Bit_3
      RM_Antrieb_Warnung : BOOL ; //MM4_ZSW1_Bit_7
      RM_Antrieb_f_Ist : INT ; //MM4_Frequenzistwert
    END_VAR
    VAR
      SendeDaten : STRUCT  
       STW1 : STRUCT  
        _08_Tippen_Rechts : BOOL ; //1=Tippen rechts EIN/ 0=Tippen rechts AUS
        _09_Tippen_Links : BOOL ; //1=Tippen links EIN/ 0=Tippen links AUS
        _10_Fuehrung_vom_AG : BOOL ; //1=Führung von AG gefordert/ 0=keine Führung von AG gefordert
        _11_Sollwert_Invertiert : BOOL ; //1=Sollwertinvertierung/ 0=keine Sollwertinvertierung
        _12 : BOOL ; //-
        _13_Motorpoti_inc : BOOL ; //1=Motorpoti rauf EIN/ 0=Motorpoti rauf AUS
        _14_Motorpoti_dec : BOOL ; //1=Motorpoti runterEIN/ 0=Motorpoti rauf AUS
        _15_Steuerung_an_BOP : BOOL ; //1=Vorortsteuerung(BOP/AOP) aktiv/ 0=Fernsteuerung aktiv
        _00_EIN : BOOL ; //1=EIN/ 0=AUS1 
        _01_EIN2 : BOOL ; //1=Betriebsbedingung/ 0=AUS2 - Impulssperre sofortige Spannungfreischaltung
        _02_EIN3 : BOOL ; //1=Betriebsbedingung/ 0=AUS3 - Schnellhalt
        _03_Betriebs_Freigabe : BOOL ; //1=Betrieb freigeben/ 0=Betrieb sperren
        _04_Betriebs_Freigabe2 : BOOL ; //1=Betriebsbedingung/ 0=Hochlaufgeber sperren
        _05_Betreibs_Freigabe3 : BOOL ; //1=Hochlaufgeber freigaben/ 0= HLG stoppen
        _06_Sollwert_Freigabe : BOOL ; //1=Sollwert freigaben/ 0=Sollwert sperren
        _07_Quit_Stoerung : BOOL ; //1=Störung quittieren/ 0= keine Bedeutung
       END_STRUCT ; 
       N_Soll : WORD ; 
      END_STRUCT ; 
      EmpfangsDaten : STRUCT  
       ZSW1 : STRUCT  
        _08_keine_Abweichung : BOOL ; //1=Keine Soll-Istabweichung/ 0=Soll-Istabweichung
        _09_AG_Fuehrung : BOOL ; //1=Führung von AG gefordert/ 0=keine Führung von AG gefordert
        _10_fmax : BOOL ; //1=fmax erreicht/ 0=fmax unterschritten
        _11_keine_Warnung : BOOL ; //1=Keine Warnung/ 0=Warnung:Motor an der Stromgrenze
        _12_Motor_Haltebremse : BOOL ; //1= / 0=Motor Haltebremse
        _13_Motor_bereit : BOOL ; //1= / 0=Motor Überlast
        _14_Links_Rechtslauf : BOOL ; //1=Rechtslauf / 0=Linkslauf
        _15_Regler_bereit : BOOL ; //1= /0=Umrichter Überlast
        _00_Einschaltbereit : BOOL ; //1=Einschaltbereit/ 0=Nicht einschaltbereit
        _01_Betriebsbereit : BOOL ; //1=Betriebsbereit/  0=Nicht betriebsbereit
        _02_Betrieb_Freigabe : BOOL ; //1=Betrieb freigegeben/ 0=Betrieb gesperrt
        _03_Stoerung : BOOL ; //1=Störung / 0=keine Störung
        _04_nicht_AUS2 : BOOL ; //1=Kein AUS2 / 0=AUS2 Befehl steht an 
        _05_nicht_AUS3 : BOOL ; //1=Kein AUS3 / 0=AUS3 Befehl steht an  
        _06_Einschaltsperre : BOOL ; //1=Einschaltsperre / 0=Keine Einschaltsperre 
        _07_Warnung : BOOL ; //1=Warnung / 0= keine Warnung 
       END_STRUCT ; 
       N_Ist : WORD ; 
      END_STRUCT ; 
      Reset_Impuls : "TP"; 
    END_VAR
    VAR_TEMP
      Pxx_Adresse : DWORD ; 
      Faktor_n_50Hz : REAL ; 
      Motor_f_Soll : REAL ; 
      Regler_fmax : REAL ; 
      Faktor_f : REAL ; 
      RM_Regler_OK : BOOL ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =Adresse umkopieren
          L     #PxB_Kopplung; // Adresse laut HW-Konfig im Integer-Format
          SLD   3; // Konvertierung ins Pointerformat: 3 Stellen nach links schieben 
          T     #Pxx_Adresse; // Bit-Pointer von Adresse in Doppelwort
    NETWORK
    TITLE =Prozessdaten vom MM4xx empfangen mittels Direktzugriff 
          L     P##EmpfangsDaten; 
          LAR1  ; 
          TAR2  ; 
          +AR1  ; 
          L     PED [#Pxx_Adresse]; // Prozessdaten vom MM4xx empfangen
          T     D [AR1,P#0.0]; 
    NETWORK
    TITLE = 
          U     #EmpfangsDaten.ZSW1._00_Einschaltbereit; 
          U     #EmpfangsDaten.ZSW1._01_Betriebsbereit; 
          U     #EmpfangsDaten.ZSW1._02_Betrieb_Freigabe; 
          U     #EmpfangsDaten.ZSW1._04_nicht_AUS2; 
          U     #EmpfangsDaten.ZSW1._05_nicht_AUS3; 
          UN    #EmpfangsDaten.ZSW1._06_Einschaltsperre; 
          =     #RM_Regler_OK; 
    NETWORK
    TITLE =Steuersignale + Sollwert generieren
          U     #Freigabe; 
          =     #SendeDaten.STW1._03_Betriebs_Freigabe; 
          =     #SendeDaten.STW1._04_Betriebs_Freigabe2; 
          =     #SendeDaten.STW1._05_Betreibs_Freigabe3; 
          =     #SendeDaten.STW1._10_Fuehrung_vom_AG; 
          =     #SendeDaten.STW1._01_EIN2; 
          =     #SendeDaten.STW1._02_EIN3; 
          CLR   ; 
          =     #SendeDaten.STW1._08_Tippen_Rechts; 
          =     #SendeDaten.STW1._09_Tippen_Links; 
    //      =     #SendeDaten.STW1._12
          =     #SendeDaten.STW1._13_Motorpoti_inc; 
          =     #SendeDaten.STW1._14_Motorpoti_dec; 
          =     #SendeDaten.STW1._15_Steuerung_an_BOP; 
          U     #Freigabe; 
          U(    ; 
          O     #Antrieb_vorwaerts; 
          O     #Antrieb_rueckwaerts; 
          )     ; 
          =     #SendeDaten.STW1._06_Sollwert_Freigabe; 
          =     #SendeDaten.STW1._00_EIN; 
          U     #Freigabe; 
          U     #Antrieb_rueckwaerts; 
          =     #SendeDaten.STW1._11_Sollwert_Invertiert; 
          CALL #Reset_Impuls (
               IN                       := #Freigabe,
               PT                       := T#200MS);
          U     #Stoerung_Quit; 
          O     #Reset_Impuls.Q; 
          =     #SendeDaten.STW1._07_Quit_Stoerung; 
    NETWORK
    TITLE = 
          L     #Regler_f_max; 
          ITD   ; 
          DTR   ; 
          T     #Regler_fmax; 
          L     #Motor_n_Soll; 
          ITD   ; 
          DTR   ; 
          L     #Motor_n_50Hz; 
          ITD   ; 
          DTR   ; 
          /R    ; 
          T     #Faktor_n_50Hz; // Umrechnungsfaktor nMax / n50Hz
          L     5.000000e+001; 
          *R    ; 
          T     #Motor_f_Soll; // errechnete Soll-Frequenz
          L     #Regler_fmax; 
          /R    ; 
          T     #Faktor_f; // Formfaktor für f-max
          SPA   chk1; 
    chk1: L     #Faktor_f; 
          L     0.000000e+000; 
          >=R   ; 
          SPB   chk2; 
          L     0.000000e+000; 
          T     #Faktor_f; 
    chk2: L     #Faktor_f; 
          L     1.000000e+000; 
          <=R   ; 
          SPB   chkX; 
          L     1.000000e+000; 
          T     #Faktor_f; 
    chkX: L     1.638400e+004; // max.Wert Ansteuerung Regler (Hex 4000) 
          L     #Faktor_f; 
          *R    ; 
          RND-  ; 
          T     #SendeDaten.N_Soll; 
    NETWORK
    TITLE =Zustandswort 1 + Drehzahlistwert 
          U     #EmpfangsDaten.ZSW1._02_Betrieb_Freigabe; 
          U     #EmpfangsDaten.ZSW1._14_Links_Rechtslauf; 
          =     #RM_Antrieb_vorwaerts; 
          U     #EmpfangsDaten.ZSW1._02_Betrieb_Freigabe; 
          UN    #EmpfangsDaten.ZSW1._14_Links_Rechtslauf; 
          =     #RM_Antrieb_rueckwaerts; 
          U     #Freigabe; 
          U     #EmpfangsDaten.ZSW1._15_Regler_bereit; 
          UN    #EmpfangsDaten.ZSW1._03_Stoerung; 
          =     #RM_Antrieb_bereit; 
          U     #EmpfangsDaten.ZSW1._07_Warnung; 
          =     #RM_Antrieb_Warnung; 
    NETWORK
    TITLE = 
    // PZD2 - Drehzahlistwert
          L     #EmpfangsDaten.N_Ist; 
          ITD   ; 
          DTR   ; 
          L     1.638400e+004; 
          /R    ; 
          L     #Motor_n_Soll; 
          *R    ; 
          RND+  ; 
          T     #RM_Antrieb_f_Ist; 
    NETWORK
    TITLE =Senden der Prozessdaten zum MM4
          L     P##SendeDaten; 
          LAR1  ; 
          TAR2  ; 
          +AR1  ; 
          L     D [AR1,P#0.0]; 
          T     PAD [#Pxx_Adresse]; // Steuerwort 1 + Hauptsollwert zum MM4 schicken
    END_FUNCTION_BLOCK

  4. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Nethacks (24.07.2015)

  5. #4
    Registriert seit
    05.04.2012
    Beiträge
    961
    Danke
    97
    Erhielt 217 Danke für 192 Beiträge

    Standard

    ... hier vorgefertigte UDT´s für die Standardtelegramme (falls kein MM420 auftaucht, dann eben das Telegramm aus dem SINAMICS G oder S nehmen, solange es das gleiche ist)

    https://support.industry.siemens.com.../view/82841762

    Welche Steuerung setzt Du ein?

  6. Folgender Benutzer sagt Danke zu zako für den nützlichen Beitrag:

    Nethacks (24.07.2015)

  7. #5
    Nethacks ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.01.2006
    Beiträge
    115
    Danke
    2
    Erhielt 10 Danke für 5 Beiträge

    Standard

    Danke Leute.
    Komme erst in 3 Stunden zur Anlage.
    Werde ein feedback geben, was besser funktioniert hat

  8. #6
    Nethacks ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.01.2006
    Beiträge
    115
    Danke
    2
    Erhielt 10 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    Wie versprochen ein Feedback:
    Leider konnte ich den Code in AWL im TIA nicht übersetzen.
    Habe jetzt doch den Sina_Speed verwendet.
    Es gibt zwei Versionen der Drivelib!!!
    Eine davon (die V4) lässt sich anstandslos übersetzen und funktioniert auch einwandfrei.
    Danke nochmals für die Hilfe.

Ähnliche Themen

  1. Sirius 3RW44 über Profibus steuern?
    Von kassla im Forum Antriebstechnik
    Antworten: 0
    Letzter Beitrag: 18.07.2011, 16:51
  2. SEW Movitrac über Profibus steuern
    Von ottopaul im Forum SEW-EURODRIVE
    Antworten: 21
    Letzter Beitrag: 07.05.2008, 07:50
  3. MM420 über Profibus
    Von Lobo im Forum Antriebstechnik
    Antworten: 1
    Letzter Beitrag: 29.01.2008, 07:34
  4. 3 MM420 und Touchpanel über Profibus
    Von Nordischerjung im Forum Feldbusse
    Antworten: 1
    Letzter Beitrag: 19.09.2006, 17:23
  5. MM420 über Profibus steuern
    Von Buchholz im Forum Feldbusse
    Antworten: 1
    Letzter Beitrag: 17.09.2006, 23:54

Lesezeichen

Berechtigungen

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