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

Ergebnis 1 bis 9 von 9

Thema: Wandlung Zahlenwerte

  1. #1
    Registriert seit
    03.09.2004
    Ort
    Münster
    Beiträge
    193
    Danke
    15
    Erhielt 16 Danke für 14 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Profi´s

    habe eine S7-300 CPU 317, damit werden Achsen mit Bosch-Rexroth Servoregler positioniert. Läuft alles prima.
    Nun kommt zusätzlich eine Meßstation hinzu die vorab die Rohteile vermessen soll. Dafür wird ein Analoger Sensor 4-20 mA mit FC105
    genutzt, Daten werden richtig gelesen, alles O.K.



    Jetzt mein Problem:
    Verfahrdaten DB222.DBD0 (Wert L#10080 in Status Variable Ansicht)
    Messdaten DB122.DBD44 (Wert 0.186 in Status Variable Ansicht)

    Habe mit DTB,DTR,Floor,Ceil etc versucht die Daten anzugleichen!!
    Beispiel:

    L DB122.DBD44 (Sensor Daten)
    DTR
    T DB122.DBD48 (gewandelte Sensor Daten)

    L DB222.DBD0 (Verfahrdaten für den Servoregler)
    L DB122.DBD48 ( Pluss Messdaten gewandelt vom Sensor)
    +R
    T DB222.DBD200 (Reale Verfahrdaten für Servo)

    Die Daten müssen nur addiert werden, aber habe alle Wandlungsformate genutzt. Mir ist klar dass die Messdaten (DB122.DBD44) im Gleitpunktformat vorliegen.

    Wie kann ich die Datenformate anpassen.

    Vorab danke für eure Hilfe.
    Bis dann mal

    Martin
    Zitieren Zitieren Wandlung Zahlenwerte  

  2. #2
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Die Achsdaten liegen meist in 1/1000 mm vor (Kann meistes eingestellt werden)
    Aus dem FC105 kommt ja ein Real, aus dem regler aber Dint.
    Das anpassen der Werte ist kein Problem, jedoch musst Du die größen anpassen (Hast Du nicht angegeben)

    Wenn Der Analogsensor z.B. mm liefert , der Regler jedoch 1/1000mm so musst Du das erst auf einen Nenner bringen.

    Beim Wandel ist schon richtig:
    Code:
    L DB222.DBD0 (Verfahrdaten für den Servoregler)
    DTR 
    L 1000.0
    /R
    L DB122.DBD48 ( Pluss Messdaten gewandelt vom Sensor)
    +R
    T DB222.DBD200 (Reale Verfahrdaten für Servo)

  3. Folgender Benutzer sagt Danke zu jabba für den nützlichen Beitrag:

    Martin L. (10.04.2009)

  4. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zitat Zitat von jabba Beitrag anzeigen
    Die Achsdaten liegen meist in 1/1000 mm vor (Kann meistes eingestellt werden)
    Aus dem FC105 kommt ja ein Real, aus dem regler aber Dint.
    Das anpassen der Werte ist kein Problem, jedoch musst Du die größen anpassen (Hast Du nicht angegeben)

    Wenn Der Analogsensor z.B. mm liefert , der Regler jedoch 1/1000mm so musst Du das erst auf einen Nenner bringen.

    Beim Wandel ist schon richtig:
    Code:
    L DB222.DBD0 (Verfahrdaten für den Servoregler)
    DTR 
    L 1000.0
    /R
    L DB122.DBD48 ( Pluss Messdaten gewandelt vom Sensor)
    +R
    T DB222.DBD200 (Reale Verfahrdaten für Servo)
    Wobei ich es unbedingt vorziehen würde, die Daten vom Sensor- in das Reglerformat zu wandeln.

    Also vom Sensor (Real) in DINT wandeln, dann *1000 und zum Regler addieren. Realzahlen sind in der Genauigkeit begrenzt.
    Code:
          L     #realSensor
          TRUNC 
          L     L#1000
          *D   
          L     #dintIstServo
          +D
          T     #dintZielServo
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

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

    Martin L. (10.04.2009)

  6. #4
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Im Grunde sehe ich das auch so,
    in dem Beispiel sind aber die Reglersollwerte als Real.
    Falls der Sollwert auch als DINT geschrieben werden muss dann kein Frage sollte es bei DINT bleiben.

  7. #5
    Martin L. ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.09.2004
    Ort
    Münster
    Beiträge
    193
    Danke
    15
    Erhielt 16 Danke für 14 Beiträge

    Standard

    Hallo Ralle & Jabba,

    die Servo-Verfahrsollwerte vom Touchpanel zum Indradrive müssen Dint
    sein. da liegt auch nicht dass Problem!!

    In dr Variablen Ansicht sehe ich z.B. als Sollwert für den Servoregler
    DBD22.DBD0 = L#10098 (Dint) (100,98 mm) O.K.
    Messwert:
    DB122.DBD44 = 0.186 (Gleitpunkt) (0.186 mm)

    Diese Werte müssen addiert werden. da aber die Servoregler Daten,die nicht verändert werden sollten, da der Bosch-Rexroth Indradrive dass
    Dint Format braucht, muss ich natürlich die Sensordaten auf das Dint Format anpassen und addieren!! Aber wie?
    Mit Trunc zB. gehen mir alle Nachkommastellen verloren.
    Bis dann mal

    Martin

  8. #6
    Registriert seit
    23.05.2008
    Beiträge
    27
    Danke
    0
    Erhielt 14 Danke für 12 Beiträge

    Pfeil

    Zitat Zitat von Ralle Beitrag anzeigen
    Wobei ich es unbedingt vorziehen würde, die Daten vom Sensor- in das Reglerformat zu wandeln.

    Also vom Sensor (Real) in DINT wandeln, dann *1000 und zum Regler addieren. Realzahlen sind in der Genauigkeit begrenzt.
    Code:
          L     #realSensor
          TRUNC 
          L     L#1000
          *D   
          L     #dintIstServo
          +D
          T     #dintZielServo

    Nimm das Beispiel von Ralle und multipliziere erst mit 1000, dann klappts auch mit den Nachkommastellen.

    Also :
    Code:
          L     #realSensor
          L     1000.0
          *R
          TRUNC   
          L     #dintIstServo
          +D
          T     #dintZielServo
    Stephan

    Nachtrag:
    Wenn du nicht sicher ausschließen kannst das du den Dint Bereich nicht überschreitest ist es auf jeden Fall noch sinnvoll das Overflow-Bit auszuwerten.
    Geändert von Isch (10.04.2009 um 12:40 Uhr)

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

    Martin L. (10.04.2009)

  10. #7
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Zitat Zitat von Martin L. Beitrag anzeigen
    Hallo Ralle & Jabba,

    die Servo-Verfahrsollwerte vom Touchpanel zum Indradrive müssen Dint
    sein. da liegt auch nicht dass Problem!!

    In dr Variablen Ansicht sehe ich z.B. als Sollwert für den Servoregler
    DBD22.DBD0 = L#10098 (Dint) (100,98 mm) O.K.
    Messwert:
    DB122.DBD44 = 0.186 (Gleitpunkt) (0.186 mm)

    Diese Werte müssen addiert werden. da aber die Servoregler Daten,die nicht verändert werden sollten, da der Bosch-Rexroth Indradrive dass
    Dint Format braucht, muss ich natürlich die Sensordaten auf das Dint Format anpassen und addieren!! Aber wie?
    Mit Trunc zB. gehen mir alle Nachkommastellen verloren.
    Da Du in 1/100 mm die Werte vom Servo verarbeitest muss Du den Realwert erst mit 100.0 mutiplizieren und dann wandeln. Dabei geht dir aber die Rundung der letzten Stelle verloren 1/100mm.
    Code:
    //DBD22.DBD0 = L#10098 (Dint) (100,98 mm) O.K. 
    // Messwert:
    L DB122.DBD44 = 0.186 (Gleitpunkt) (0.186 mm)
    L 100.0
    *R                  //= 18.6 1/100mm
    TRUNC            //=L#18 = 0.18mm
    L #DIntIstServo
    +D
    T #DintSollServo
    Geändert von jabba (10.04.2009 um 14:02 Uhr)

  11. #8
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    @Isch und Jabba

    Yep, korrekt, in dem Falle erst multiplizieren.

    RND statt TRUNC rundet beim Wandeln nach DINT auch noch.
    Geändert von Ralle (10.04.2009 um 19:36 Uhr)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  12. #9
    Martin L. ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.09.2004
    Ort
    Münster
    Beiträge
    193
    Danke
    15
    Erhielt 16 Danke für 14 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo jabba, Ralle & Isch,

    dank euch allen, eigentlich eine logische Sache,
    erst die Kommastellen verschieben und danach wandeln.
    Bis dann mal

    Martin

Ähnliche Themen

  1. zwei Zahlenwerte Vergleichen (Komparator?)
    Von berc im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 24.06.2011, 23:01
  2. Step-7 Zahlenwerte lesen/überprüfen
    Von Q-Dog im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 12.01.2009, 19:08
  3. OPC Negative Zahlenwerte
    Von Gucky_av im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 24.06.2008, 19:29
  4. Wandlung von Real => INT
    Von Heinz im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 29.07.2005, 12:33
  5. Überschriebene Zahlenwerte
    Von M_S im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 09.04.2005, 19:44

Lesezeichen

Berechtigungen

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