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

Ergebnis 1 bis 10 von 10

Thema: S7 <-> Dynavert T05, Drehzahl

  1. #1
    Registriert seit
    23.05.2008
    Beiträge
    131
    Danke
    59
    Erhielt 11 Danke für 10 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    guten morgen,

    ich habe zur zeit ein projekt mit loher-antrieben dynavert t05, diese sind über profibus mit der sps (s7-317 2dp/pn) verbunden. die kommunikation funktioniert auch und die motoren lassen sich sauber ansteuern (dreht richtig los, fährt an gewünschter rampe runter). jetzt soll aber auch noch die drehzahl vorgegeben werden. diese wird über ein poti (+/-10V, es werden aber die +10V verwendet) eingestellt. allerdings kann man den antrieben nur eine eine maximale drehzahl von 4000hex zuweisen, das bit 2^15 beeinflußt die drehrichtung. dies möchte ich nicht, da die drehrichtung bereits über das steuerwort dem antrieb mitgeteilt wird.

    Code:
     
    Netzwerk x
    Kommentar: einlesen des Potiwertes
          U     "Log1"
          =     L      0.0
          BLD   103
          CALL  "SCALE"
           IN     :=PEW162
           HI_LIM :=1.000000e+002
           LO_LIM :=-1.000000e+002
           BIPOLAR:=L0.0
           RET_VAL:=MW106
           OUT    :=MD154
          NOP   0
    
    Netzwerk x+1
    Kommentar: wandeln in mw
          L     MD   154
          T     MW   182
          NOP   0
    wie kann ich vermeiden, dass die werte größer als 4000hex werden? stehe ein bisschen auf dem schlauch.
    Zitieren Zitieren S7 <-> Dynavert T05, Drehzahl  

  2. #2
    Registriert seit
    30.06.2007
    Ort
    In der Pfalz
    Beiträge
    503
    Danke
    72
    Erhielt 77 Danke für 65 Beiträge

    Standard

    Den Eingangswert mit 4000Hex vergleichen und wenn er höher ist eben nur die 4000 Hex übergeben.

    Oder hab ich da jetzt was falsch verstanden?

  3. #3
    Avatar von testuser
    testuser ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    23.05.2008
    Beiträge
    131
    Danke
    59
    Erhielt 11 Danke für 10 Beiträge

    Standard

    das hatte ich mir auch schon überlegt, denke aber es geht dann eine ganze menge verloren. mir wurde erklärt die 4000hex sind die max drehzahl (entsprechen 100%) und wenn ich die jetzt da einfach "abschneide" läuft er zu viel mit 100% und der poti ist im oberen bereich sinnbefreit ().

    ich denke eher an sowas, zu sagen der potiwert kann maximal FFFFhex sein und dies entspricht 4000hex, als drehzahl für den antrieb. und das dann mit dem eingelesen wert (X) zu multiplizieren. also (4000h/FFFFh)*X = drehzahl für den antrieb. dies funtktioniert aber nicht so, wie ich es mir denke/vorstelle.

  4. #4
    Registriert seit
    30.06.2007
    Ort
    In der Pfalz
    Beiträge
    503
    Danke
    72
    Erhielt 77 Danke für 65 Beiträge

    Standard

    Dann solltest du dir einen eigenen SCALE schreiben.

    Es gibt allgemeine Berechnungsformeln für Ein und Ausgangsnormierung.

    Für Eingang:

    REAW=((OGRNB-UGRNB) : (OGREB-UGREB))*(AE-UGREB)+UGRNB

    AE: Digitalisierter Analogeingabewert
    OGREB: Obergrenze Eingangsnennbereich
    UGREB: Untergrenze Eingangsnennbereich
    OGRNB: Obergrenze Normierungsbereich
    UGRNB: Untergrenze Normierungsbereich
    REAW: Normierter Analogeingabewert

    Für Ausgang:

    AA=((OGRAB-UGRAB) : (OGRNB-UGRNB))*(RAEW-UGRNB)+UGRAB

    RAEW: Interner normierter Ausgabewert
    OGRNB: Obergrenze Normierungsbereich
    UGRNB: Untergrenze Normierungsbereich
    OGRAB: Obergrenze Ausgangsnennbereich
    UGRAB: Untergrenze Ausgangsnennbereich
    AA: Digitaler Ausgabewert für Analogausgabebaugruppe

  5. Folgender Benutzer sagt Danke zu Steve81 für den nützlichen Beitrag:

    testuser (30.10.2008)

  6. #5
    Avatar von testuser
    testuser ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    23.05.2008
    Beiträge
    131
    Danke
    59
    Erhielt 11 Danke für 10 Beiträge

    Standard

    also so (?):

    Code:
    //dint zu int
          L     #AE
          T     #H_AE
    
    //berechnung normierungsbereich
          L     #OGRNB
          L     #UGRNB
          -I    
          T     #NB
    
    //berechnung eingangsbereich
          L     #OGREB
          L     #UGREB
          -I    
          T     #EB
    
    //bilden der summe
          L     #AE
          L     #UGREB
          -I    
          L     #UGREB
          +I    
          T     #SUM
    
    //berechnen der multiplikation
          L     #NB
          L     #EB
          /I    
          L     #SUM
          *I    
          T     #REAW
    habe mir das jetzt als fb geschrieben. der baustein aufruf würde dann so aussehen (?):

    Code:
          CALL  "SCALE_TU" , DB15
           OGRNB:=MW184//hier steht W#16#4000 drin
           UGRNB:=0
           OGREB:=100
           UGREB:=-100
           AE   :=PEW160
           REAW :=MW180
          NOP   0
    könnte das funktionieren???

  7. #6
    Registriert seit
    30.06.2007
    Ort
    In der Pfalz
    Beiträge
    503
    Danke
    72
    Erhielt 77 Danke für 65 Beiträge

    Standard

    Sieht eigentlich ganz gut aus. Musst aber das Ergebnis nach / noch runden (ROUND) wegen INT.

  8. #7
    Registriert seit
    30.06.2007
    Ort
    In der Pfalz
    Beiträge
    503
    Danke
    72
    Erhielt 77 Danke für 65 Beiträge

    Standard

    Zitat Zitat von testuser Beitrag anzeigen
    also so (?):

    Code:
    //dint zu int
          L     #AE
          T     #H_AE
     
    //berechnung normierungsbereich
          L     #OGRNB
          L     #UGRNB
          -I    
          T     #NB
     
    //berechnung eingangsbereich
          L     #OGREB
          L     #UGREB
          -I    
          T     #EB
     
    //bilden der summe
          L     #AE
          L     #UGREB
          -I    
          L     #UGREB    hier weg
          +I    
          T     #SUM
     
    //berechnen der multiplikation
          L     #NB
          L     #EB
          /I    
          L     #SUM
          *I 
          L     #UGREB    hier hin
          +I    
          T     #REAW
    habe mir das jetzt als fb geschrieben. der baustein aufruf würde dann so aussehen (?):

    Code:
          CALL  "SCALE_TU" , DB15
           OGRNB:=MW184//hier steht W#16#4000 drin
           UGRNB:=0
           OGREB:=100
           UGREB:=-100
           AE   :=PEW160
           REAW :=MW180
          NOP   0
    könnte das funktionieren???
    Vorsicht, Punkt vor Strich und Klammern beachten.

  9. Folgender Benutzer sagt Danke zu Steve81 für den nützlichen Beitrag:

    testuser (30.10.2008)

  10. #8
    Avatar von testuser
    testuser ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    23.05.2008
    Beiträge
    131
    Danke
    59
    Erhielt 11 Danke für 10 Beiträge

    Standard

    habe jetzt nochmal mit einem arbeitskollegen drüber gesprochen und der meinte es geht auch anders.

    der wertebereich geht zur zeit von 0..65535 und ich will ihn in einen bereich von 0..16384 bringen. also meinte er, es reicht wenn ich den eingelesenen wert durch vier teile. rein theoretisch müsste es gehen, aber in der praxis?

    und noch eine frage @Steve81: was meinst du mit ROUND, habe diesen befehl nicht in awl?

  11. #9
    Registriert seit
    15.10.2007
    Ort
    St.Pölten
    Beiträge
    875
    Danke
    98
    Erhielt 200 Danke für 188 Beiträge

    Standard

    probiers mit RND dann wirds klappen.runden von gleitkommazahlen
    Beginne jeden Tag mit einem lächeln,es kann dir nämlich während des Tages sehr schnell vergehen.

  12. Folgender Benutzer sagt Danke zu Gerhard K für den nützlichen Beitrag:

    testuser (30.10.2008)

  13. #10
    Registriert seit
    30.06.2007
    Ort
    In der Pfalz
    Beiträge
    503
    Danke
    72
    Erhielt 77 Danke für 65 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von testuser Beitrag anzeigen
    und noch eine frage @Steve81: was meinst du mit ROUND, habe diesen befehl nicht in awl?
    Sorry, war bei FUP, da heist der Funktionsblock glaub ich so. Bei AWL wie von Gerhard K. geschrieben mit RND.

Ähnliche Themen

  1. max. Drehzahl Asynmchronmotor
    Von Jörg_24 im Forum Antriebstechnik
    Antworten: 6
    Letzter Beitrag: 18.02.2010, 19:18
  2. Drehzahl errechnen
    Von MSB im Forum Programmierstrategien
    Antworten: 1
    Letzter Beitrag: 18.10.2008, 08:56
  3. Berechnung der Drehzahl bei FU
    Von Stift1802 im Forum Antriebstechnik
    Antworten: 3
    Letzter Beitrag: 25.08.2008, 20:07
  4. Drehzahl regeln
    Von Stromer im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 19.04.2008, 21:53
  5. drehzahl vorgabe
    Von prinz1978 im Forum Programmierstrategien
    Antworten: 25
    Letzter Beitrag: 28.03.2008, 15:47

Lesezeichen

Berechtigungen

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