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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 20

Thema: SSI Geber an SPS...

  1. #11
    Registriert seit
    13.04.2008
    Ort
    Großraum KA
    Beiträge
    963
    Danke
    52
    Erhielt 128 Danke für 112 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @ Maxi
    die Baugruppe ist sehr leicht zu konfigurieren. SSI Daten in der HW Konfig eingeben, ( Achtung die kann nur 13, 21 oder 25 bit ), Codeart ( binär oder gray ), Schritte je Umdrehung, Adressen auswählen anschliessen und das Ding rennt.

    Das habe sogar ich auf Anhieb geschafft.

    peter(R)

  2. #12
    Registriert seit
    02.04.2006
    Ort
    nähe Muc
    Beiträge
    2.787
    Danke
    115
    Erhielt 126 Danke für 107 Beiträge

    Standard

    Kommt die FM352-5 auch mit Überlauf klar?

    Wäre ja endlich mal was neues.
    Was ich mich früher schon teils mit Positionieungen und Mivis gespielt hatte.
    ___________________________________________





    Sende eine SMS mit dem Stichwort "Feuer" an die 112 und innerhalb von 10 Minuten steht ein roter Partybus mit derbem Sound vor deiner Tür.


    AGB: Wer Rechtschreibfehler findet darf diese behalten. Bitte meine in eile gefertigten, selten anfallenden Vertipsler zu entschuldigen.

  3. #13
    Registriert seit
    13.04.2008
    Ort
    Großraum KA
    Beiträge
    963
    Danke
    52
    Erhielt 128 Danke für 112 Beiträge

    Standard

    @ maxi

    da haben wir aneinander vorbei geredet. Ich meinte die FM338 !!
    Die FM352 ist ja nur ein Nockenschaltwerk !! Nockenschaltwerke mit Überlauf sind mir noch nicht begegnet.


    peter(R)

  4. #14
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    673
    Danke
    22
    Erhielt 143 Danke für 135 Beiträge

    Standard

    Wir brauchen die Et200S 6ES7 138-4DB0x-0AB0 baugruppe. Mit u.a. Siemens Gebers von 25Bit (Multi turn) und 13Bit (Single turn), Sick seilgebers 25Bit multiturn und MTS liniar encoders . Wir haben eine programm gemacht fur soft nullstellen und umrechnung von Puls nach mm oder grad. Hierunter die code
    Code:
    FUNCTION_BLOCK FB 300
    TITLE =SSI_Encoders
    { S7_language := '19(1) Niederländisch (Niederlande)  10.05.2005  00:03:02' }
    VERSION : 0.2
    
    VAR_INPUT
      Nulstellen : BOOL ; //Aanstoten nulstellen
      Adres : INT ; //Adres SSI moduul
    END_VAR
    VAR_OUTPUT
      AktPlaats : DINT ; 
    END_VAR
    VAR
      AantalBits : INT  := 25; //Aantal bits geldig encoder
      Puls_Omw : INT  := 8192; //Aantal pulsen per omwenteling encoder
      MM_Omw : REAL  := 1.000000e+000; //MM per omwenteling van encoder
      AktWaarde : DINT ; //AktueleWaarde encoder
      RefWaarde : DINT ; //Referentiewaarde nulstellen
      StatusUP : BOOL ; //Status UP STS_UP
      StatusDN : BOOL ; //Status DN STS_DN
      StatusDI : BOOL ; //Status DI STS_DI
      ERR_24V : BOOL ; //Kortsluiting opnemerstroomverzorging 24V
      ERR_SSI : BOOL ; //Fout absoluut encoder
      ERR_PARA : BOOL ; //Parameter fout
      RDY : BOOL ; //Bedrijfsgereed
      Res47 : BOOL ; //gereserveert
      STS_LOAD : BOOL ; //Laadfunctie loopt
      ERR_LOAD : BOOL ; //Fout bij laadfunctie
      CMP : BOOL ; //Vergelijkingswaarde 1 bereikt
      CMP2 : BOOL ; //Vergelijkingswaarde 2 bereikt
      Res54 : BOOL ; //gereserveert
      Res55 : BOOL ; //gereserveert
      Res56 : BOOL ; //gereserveert
      Res57 : BOOL ; //gereserveert
      CMP_VAL1 : BOOL ; //Vergelijkingswaarde 1 laden
      CMP_VAL2 : BOOL ; //Vergelijkingswaarde 2 laden
      ResQ42 : BOOL ; 
      ResQ43 : BOOL ; 
      ResQ44 : BOOL ; 
      ResQ45 : BOOL ; 
      LATCH_ACK : BOOL ; //Bevestigen Latch functie
      EXTF_ACK : BOOL ; //Bevestiging foutmelding
      Fout : BOOL ; //Fout in SSI
      Reset_Fout : BOOL ; //Aansturen reset fout
      MetSnelheid : BOOL ; //Snelheid berekenen = 1
      NulstellenKlaar : BOOL ; 
      CMP_VAL : DINT ; //Vergelijkingswaarde naar SSI moduul
      WaardeNulstellen : DINT ; //Waarde die gewenst wordt bij nulstellen
      Copy_Plaats : DINT ; 
      Snelheid : DINT ; //Snelheid in uitgangseenh/sec
      SampleTime : REAL ; 
    END_VAR
    VAR_TEMP
      Schuiven : INT ; 
      Tussengeheugen : DINT ; 
      Pulsen : DINT ; 
      bits13 : BOOL ; 
      R_fout : BOOL ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =
          U     #Reset_Fout; 
          U     #Fout; 
          =     #EXTF_ACK; 
    // reset fout
          L     32; 
          L     #AantalBits; 
          -I    ; 
          T     #Schuiven; 
          L     #AantalBits; 
          L     13; 
          ==I   ; 
          =     #bits13; 
          L     #Adres; 
          SLW   3; 
          LAR1  ; 
          L     PEW [AR1,P#4.0]; 
    //status meldingen uit SSI moduul
          T     DIW   24; 
    
          O     #ERR_PARA; 
          O     #ERR_SSI; 
          O     #ERR_24V; 
          UN    #Fout; 
          =     #R_fout; 
          O     #ERR_PARA; 
          O     #ERR_SSI; 
          O     #ERR_24V; 
          =     #Fout; 
          U     #Reset_Fout; 
          U     #Fout; 
          O     #R_fout; 
          =     #EXTF_ACK; 
          UN    #CMP_VAL1; 
          UN    #CMP_VAL2; 
          O     #ERR_LOAD; 
          O     #STS_LOAD; 
          SPB   m2; 
          L     #CMP_VAL; 
    //vergelijkings waarde naar SSI moduul   
          T     PAD [AR1,P#0.0]; 
    m2:   L     DIB   26; 
    //Stuurbits naar SSI moduul
          T     PAB [AR1,P#4.0]; 
          UN    #RDY; 
          U     #Fout; 
          SPB   eind; 
    // als er een fout is dan oude waarde uitgeven 
          L     PED [AR1,P#0.0]; 
          T     #AktWaarde; 
    //Waarde encoder
          L     #Schuiven; 
          TAK   ; 
          SLD   ; 
          T     #Tussengeheugen; 
          UN    #Nulstellen; 
          O     #NulstellenKlaar; 
          SPB   m001; 
    // nulstellen
          L     #WaardeNulstellen; 
          DTR   ; 
          L     #Puls_Omw; 
          DTR   ; 
          *R    ; 
          L     #MM_Omw; 
          /R    ; 
          RND   ; 
          L     #Schuiven; 
          TAK   ; 
          SLD   ; 
          NEGD  ; 
          L     #Tussengeheugen; 
          +D    ; 
          NEGD  ; 
          T     #RefWaarde; 
          L     #Tussengeheugen; 
    m001: L     #RefWaarde; 
          +D    ; 
          L     #Schuiven; 
          TAK   ; 
          SSD   ; 
          T     #Pulsen; 
          UN    #bits13; 
          SPB   z1; 
          L     L#-1250; 
          >=D   ; 
          TAK   ; 
          SPB   z1; 
          L     L#8192; 
          +D    ; 
    // bij 13 bit bereik tussen -1250 tot 6942
    z1:   DTR   ; 
          L     #MM_Omw; 
          *R    ; 
          L     #Puls_Omw; 
          DTR   ; 
          /R    ; 
          RND   ; 
          T     #AktPlaats; 
          U     #Nulstellen; 
          =     #NulstellenKlaar; 
    eind: UN    #MetSnelheid; 
          O     #Fout; 
          SPB   end; 
          U     #Nulstellen; 
          UN    #NulstellenKlaar; 
          SPB   end; 
          L     #Copy_Plaats; 
          L     #Pulsen; 
          T     #Copy_Plaats; 
          -D    ; 
          NEGD  ; 
          DTR   ; 
          L     #MM_Omw; 
          *R    ; 
          L     #Puls_Omw; 
          ITD   ; 
          DTR   ; 
          /R    ; 
          L     #SampleTime; 
          /R    ; 
          RND   ; 
          T     #Snelheid; 
          SPA   EIND; 
    end:  L     0; 
          T     #Snelheid; 
    EIND: U     #Nulstellen; 
          =     #NulstellenKlaar; 
    END_FUNCTION_BLOCK
    MVG,

    Joop

  5. #15
    Registriert seit
    13.10.2007
    Beiträge
    12.033
    Danke
    2.788
    Erhielt 3.269 Danke für 2.157 Beiträge

    Standard

    Hilfe Marlob, kannst du das mal übersetzen, ich dacht alle
    Holländer können Deutsch

    Zitat Zitat von JoopB Beitrag anzeigen
    Wir brauchen die Et200S 6ES7 138-4DB0x-0AB0 baugruppe. Mit u.a. Siemens Gebers von 25Bit (Multi turn) und 13Bit (Single turn), Sick seilgebers 25Bit multiturn und MTS liniar encoders . Wir haben eine programm gemacht fur soft nullstellen und umrechnung von Puls nach mm oder grad. Hierunter die code
    Code:
    FUNCTION_BLOCK FB 300
    TITLE =SSI_Encoders
    { S7_language := '19(1) Niederländisch (Niederlande)  10.05.2005  00:03:02' }
    VERSION : 0.2
     
    VAR_INPUT
      Nulstellen : BOOL ; //Aanstoten nulstellen
      Adres : INT ; //Adres SSI moduul
    END_VAR
    VAR_OUTPUT
      AktPlaats : DINT ; 
    END_VAR
    VAR
      AantalBits : INT  := 25; //Aantal bits geldig encoder
      Puls_Omw : INT  := 8192; //Aantal pulsen per omwenteling encoder
      MM_Omw : REAL  := 1.000000e+000; //MM per omwenteling van encoder
      AktWaarde : DINT ; //AktueleWaarde encoder
      RefWaarde : DINT ; //Referentiewaarde nulstellen
      StatusUP : BOOL ; //Status UP STS_UP
      StatusDN : BOOL ; //Status DN STS_DN
      StatusDI : BOOL ; //Status DI STS_DI
      ERR_24V : BOOL ; //Kortsluiting opnemerstroomverzorging 24V
      ERR_SSI : BOOL ; //Fout absoluut encoder
      ERR_PARA : BOOL ; //Parameter fout
      RDY : BOOL ; //Bedrijfsgereed
      Res47 : BOOL ; //gereserveert
      STS_LOAD : BOOL ; //Laadfunctie loopt
      ERR_LOAD : BOOL ; //Fout bij laadfunctie
      CMP : BOOL ; //Vergelijkingswaarde 1 bereikt
      CMP2 : BOOL ; //Vergelijkingswaarde 2 bereikt
      Res54 : BOOL ; //gereserveert
      Res55 : BOOL ; //gereserveert
      Res56 : BOOL ; //gereserveert
      Res57 : BOOL ; //gereserveert
      CMP_VAL1 : BOOL ; //Vergelijkingswaarde 1 laden
      CMP_VAL2 : BOOL ; //Vergelijkingswaarde 2 laden
      ResQ42 : BOOL ; 
      ResQ43 : BOOL ; 
      ResQ44 : BOOL ; 
      ResQ45 : BOOL ; 
      LATCH_ACK : BOOL ; //Bevestigen Latch functie
      EXTF_ACK : BOOL ; //Bevestiging foutmelding
      Fout : BOOL ; //Fout in SSI
      Reset_Fout : BOOL ; //Aansturen reset fout
      MetSnelheid : BOOL ; //Snelheid berekenen = 1
      NulstellenKlaar : BOOL ; 
      CMP_VAL : DINT ; //Vergelijkingswaarde naar SSI moduul
      WaardeNulstellen : DINT ; //Waarde die gewenst wordt bij nulstellen
      Copy_Plaats : DINT ; 
      Snelheid : DINT ; //Snelheid in uitgangseenh/sec
      SampleTime : REAL ; 
    END_VAR
    VAR_TEMP
      Schuiven : INT ; 
      Tussengeheugen : DINT ; 
      Pulsen : DINT ; 
      bits13 : BOOL ; 
      R_fout : BOOL ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =
          U     #Reset_Fout; 
          U     #Fout; 
          =     #EXTF_ACK; 
    // reset fout
          L     32; 
          L     #AantalBits; 
          -I    ; 
          T     #Schuiven; 
          L     #AantalBits; 
          L     13; 
          ==I   ; 
          =     #bits13; 
          L     #Adres; 
          SLW   3; 
          LAR1  ; 
          L     PEW [AR1,P#4.0]; 
    //status meldingen uit SSI moduul
          T     DIW   24; 
     
          O     #ERR_PARA; 
          O     #ERR_SSI; 
          O     #ERR_24V; 
          UN    #Fout; 
          =     #R_fout; 
          O     #ERR_PARA; 
          O     #ERR_SSI; 
          O     #ERR_24V; 
          =     #Fout; 
          U     #Reset_Fout; 
          U     #Fout; 
          O     #R_fout; 
          =     #EXTF_ACK; 
          UN    #CMP_VAL1; 
          UN    #CMP_VAL2; 
          O     #ERR_LOAD; 
          O     #STS_LOAD; 
          SPB   m2; 
          L     #CMP_VAL; 
    //vergelijkings waarde naar SSI moduul   
          T     PAD [AR1,P#0.0]; 
    m2:   L     DIB   26; 
    //Stuurbits naar SSI moduul
          T     PAB [AR1,P#4.0]; 
          UN    #RDY; 
          U     #Fout; 
          SPB   eind; 
    // als er een fout is dan oude waarde uitgeven 
          L     PED [AR1,P#0.0]; 
          T     #AktWaarde; 
    //Waarde encoder
          L     #Schuiven; 
          TAK   ; 
          SLD   ; 
          T     #Tussengeheugen; 
          UN    #Nulstellen; 
          O     #NulstellenKlaar; 
          SPB   m001; 
    // nulstellen
          L     #WaardeNulstellen; 
          DTR   ; 
          L     #Puls_Omw; 
          DTR   ; 
          *R    ; 
          L     #MM_Omw; 
          /R    ; 
          RND   ; 
          L     #Schuiven; 
          TAK   ; 
          SLD   ; 
          NEGD  ; 
          L     #Tussengeheugen; 
          +D    ; 
          NEGD  ; 
          T     #RefWaarde; 
          L     #Tussengeheugen; 
    m001: L     #RefWaarde; 
          +D    ; 
          L     #Schuiven; 
          TAK   ; 
          SSD   ; 
          T     #Pulsen; 
          UN    #bits13; 
          SPB   z1; 
          L     L#-1250; 
          >=D   ; 
          TAK   ; 
          SPB   z1; 
          L     L#8192; 
          +D    ; 
    // bij 13 bit bereik tussen -1250 tot 6942
    z1:   DTR   ; 
          L     #MM_Omw; 
          *R    ; 
          L     #Puls_Omw; 
          DTR   ; 
          /R    ; 
          RND   ; 
          T     #AktPlaats; 
          U     #Nulstellen; 
          =     #NulstellenKlaar; 
    eind: UN    #MetSnelheid; 
          O     #Fout; 
          SPB   end; 
          U     #Nulstellen; 
          UN    #NulstellenKlaar; 
          SPB   end; 
          L     #Copy_Plaats; 
          L     #Pulsen; 
          T     #Copy_Plaats; 
          -D    ; 
          NEGD  ; 
          DTR   ; 
          L     #MM_Omw; 
          *R    ; 
          L     #Puls_Omw; 
          ITD   ; 
          DTR   ; 
          /R    ; 
          L     #SampleTime; 
          /R    ; 
          RND   ; 
          T     #Snelheid; 
          SPA   EIND; 
    end:  L     0; 
          T     #Snelheid; 
    EIND: U     #Nulstellen; 
          =     #NulstellenKlaar; 
    END_FUNCTION_BLOCK
    MVG,

    Joop
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  6. #16
    Registriert seit
    02.04.2006
    Ort
    nähe Muc
    Beiträge
    2.787
    Danke
    115
    Erhielt 126 Danke für 107 Beiträge

    Standard

    Zitat Zitat von peter(R) Beitrag anzeigen
    @ maxi

    da haben wir aneinander vorbei geredet. Ich meinte die FM338 !!
    Die FM352 ist ja nur ein Nockenschaltwerk !! Nockenschaltwerke mit Überlauf sind mir noch nicht begegnet.


    peter(R)

    Ich meinte diese hier:

    http://www.automation.siemens.com/mc...n/Default.aspx

    (Noch nie in die Hände bekommen bisher)

    Im Siemens Datenblatt stand etwas ob diese einen Überlauf/Übersprung kann mit : Ja

    Die FM 338 kenne ich und habe ich schon sehr oft verwendet.
    Bei der 338 haben wir grundsätzlich ohne (und weit entfernt vom) Überlauf gearbeitet.

    Jemand schon verwendet und mit dieser Karte/CPU wirklich ein Überlauf kein Problem?
    ___________________________________________





    Sende eine SMS mit dem Stichwort "Feuer" an die 112 und innerhalb von 10 Minuten steht ein roter Partybus mit derbem Sound vor deiner Tür.


    AGB: Wer Rechtschreibfehler findet darf diese behalten. Bitte meine in eile gefertigten, selten anfallenden Vertipsler zu entschuldigen.

  7. #17
    Registriert seit
    13.04.2008
    Ort
    Großraum KA
    Beiträge
    963
    Danke
    52
    Erhielt 128 Danke für 112 Beiträge

    Standard

    Ganz schön teuer das Ding !! Wenn man nicht unbedingt Höchstgeschwindigkeit braucht ( und nur dafür ist das Modul gebaut ) kann man für den Preisunterschied schon ein weilchen Programmieren.
    Ich denke mal den Über- Unterlauf kann man - wenn er sich in Grenzen hält ( kleiner eine Umdrehung ) - programmtechnisch ohne große Mühe erschlagen.

    peter(R)

  8. #18
    Registriert seit
    11.07.2004
    Beiträge
    1.597
    Danke
    10
    Erhielt 213 Danke für 183 Beiträge

    Standard

    Wenn man mehrere Umdrehungen des Gebers hat nimmt man üblicherweise Multiturn Geber. Die können im Unterschied zu den Singleturn Gebern die Umdrehungen auch noch ermitteln und dann zur Auswertung gebracht werden.

  9. #19
    Registriert seit
    17.11.2010
    Beiträge
    3
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    @MSB
    An der Maschine, wo ich zuletzt SSI-Multiturn-Drehgeber an einer Linearachse hatte, waren alle so eingebaut, daß im Verfahrbereich kein Überlauf eingetreten ist. Ich wollte halt lediglich am Bediengerät eine Möglichkeit schaffen nach Gebertausch den referenz-Offset neu eingeben zu können. Und dabei fragte ich mich, was passiert wenn der Geber halt so eingebaut ist, daß ein Über- oder Unterlauf eintritt.
    ...eigentlich nur ein wenig Logik...
    Genau, aber dabei hatte ich irgendwie eine Denkblockade und bin nicht auf eine anständige Lösung gekommen.

    @peter(R)
    Wie oben schon geschrieben: Ist ein Multiturngeber, der den gesamten Verfahrbereich innerhalb der 4096 Umdrehungen abdeckt. Mein Problem handelt nur von einer ungünstigen Einbaulage.

    @JoopB
    Vielen Dank für den Code. Ich habe die niederländisch benannten Variablen und Kommentare mal in Google ins englische übersetzen lassen und in S7 eingelesen. Falls Interesse besteht könnte ich die übersetzte Quelle hier posten.

    Gruß,
    Skotti

  10. #20
    Registriert seit
    23.07.2003
    Beiträge
    209
    Danke
    22
    Erhielt 14 Danke für 12 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi ...

    also die FM352-5 (das Nockenschaltwerk) kommt prima mit einem Überlauf eines rotatorischen SSI-Gebers klar, wir setzen das Teil bei Extenter-Pressen ein, ist wenn man sich damit auseinandersetzt auch recht einfach zu programmieren (okok - das erste mal und ohne Lesen der Doku bestimmt nicht )

    Aber auch mit einer SSI-Karte auf der ET200S (zur Not wenn man mehrere braucht auch auf der S7-300 direkt) kann man sicher ohne Probleme einen Überlauf abfangen, in dem man sich entweder genau beim Nulldurchgang / bzw. beim Durchlauf des größten wertes) entweder das Richtungssignal anschaut (das die Karte als bit gibt) oder die Richtung anhand der letzten Änderung ermittelt ... somit kann man dann Intern mit einem (jenachdem wie gross man es braucht) Int / Dint die Überläufe zählen und dann mit dem Istwert multiplizieren.

    Oder man nimmt jeweils die Geberdifferenz zwischen 2 Zyklen (eventuell via OB3x mit dem hätte man gleich noch Geschwindigkeit) und addiert dieses zu einem DINT dazu, sollte auch funktionieren ?!?

    Nur geht hier bei beiden Varianten beim Überlauf und anschliessender Spannungslosigkeit (ok den wert kann ich remanent speichern, aber wer sagt mir das da keiner mehr als eine Runde am Geber dreht) eventuell die Position flöten.

    Gruss,
    michael

Ähnliche Themen

  1. Drehimpuls geber und SPS
    Von awe_wolfsburg im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 28.05.2010, 11:12
  2. EnDat-Geber
    Von automations im Forum Antriebstechnik
    Antworten: 4
    Letzter Beitrag: 19.05.2010, 22:04
  3. 2 Geber an CPU 313C
    Von zloyduh im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 06.05.2010, 20:59
  4. SSI-Geber mit B&R
    Von kw21 im Forum Sonstige Steuerungen
    Antworten: 3
    Letzter Beitrag: 08.02.2010, 20:54
  5. SSI-Geber?
    Von Lobo im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 30.01.2006, 20:58

Lesezeichen

Berechtigungen

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