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

Ergebnis 1 bis 9 von 9

Thema: Temperatur_Sollwertvorgabe

  1. #1
    Registriert seit
    02.04.2010
    Beiträge
    6
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute!

    Ich habe folgende Aufgabenstellung:

    Es soll ein Temperatursollwert über ein Drehpoti vorgegeben werden.

    Das Poti hat eine TempSkala von +50°C bis 250°C und gibt sie in Form einer
    Spannung von 0 bis 10V an den Eingangskanal 3, Steckplatz 5.

    Die Auflösung der Temperatur soll in 1/10°C an das MW 10 geschrieben werden.

    Meine Lösung ist:

    Eingangskanal 3, Steckplatz 5 bedeutet EW 277. (ist das richtig?)

    Temp.Differenz ist: 200°C bei einer 1/10°C Auflösung nehme ich den Zahlenwert 2000 an.

    0...2000 entspricht meiner Spannung 0...10V und 0...27648.
    Mein TemperaturOffset von 50°C ist: 500

    Die Normierungsvorschrift:

    1/10 * (2000/27648 * EW 277 + 500) = MW 10

    Das SPS-Programm:

    L 2000
    L 27648
    /D
    L EW 277
    *D
    L 500
    +D
    L 10
    /D
    T MW 10

    ----

    Wird die Berechnung vom Programm richtig verarbeitet? Wenn ich z.B. 2000
    durch 27648 teile. Rundet der Rechner auf (Integer) oder kann er Komma-rechnen?
    Ist die Berechnung der Solltemp. insgesamt richtig? Oder habe ich es irgedwo verbockt?

    Besten Dank für die Hilfe

    Airen
    Zitieren Zitieren Temperatur_Sollwertvorgabe  

  2. #2
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von Airen Beitrag anzeigen

    Eingangskanal 3, Steckplatz 5 bedeutet EW 277. (ist das richtig?)
    Also ich denke mal, dass ein Wort auf gerader Adresse beginnen sollte.


    Zu Analogverarbeitung gibt doch hier:
    http://www.sps-forum.de/showthread.php?t=19311

    eine echt gute Beschreibung


    bike

  3. #3
    Registriert seit
    19.12.2008
    Beiträge
    336
    Danke
    19
    Erhielt 28 Danke für 28 Beiträge

    Standard

    Zitat Zitat von Airen Beitrag anzeigen
    Wird die Berechnung vom Programm richtig verarbeitet? Wenn ich z.B. 2000
    durch 27648 teile. Rundet der Rechner auf (Integer) oder kann er Komma-rechnen?
    Er kann Komma-rechnen - dafür nimmt man dann aber die REAL's und nicht die DINT. In einem REAL könntest du dir die Temperartur auch korrekt in °C darstellen und nicht in 1/10°. Das sähe dann so aus :
    Code:
    L 200.0
    L 27648.0
    /R
    L EW 277     // <--- ?????? siehe auch Beitrag von Bike
    ITD
    DTR
    *R
    L 50.0
    +R
    T MD 10

  4. #4
    Airen ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.04.2010
    Beiträge
    6
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von bike Beitrag anzeigen
    Also ich denke mal, dass ein Wort auf gerader Adresse beginnen sollte.


    Zu Analogverarbeitung gibt doch hier:
    http://www.sps-forum.de/showthread.php?t=19311

    eine echt gute Beschreibung


    bike
    @bike
    Was für dich so offensichtlich ist, ist es nicht für jedermann. Und bevor ich mir etwas genau anschaue, muss ich wissen, dass ich es falsch gemacht habe. Deswegen auch meine Frage dahinter.
    Du hast aber recht! Ich habe mich um eins verzählt. Es soll EW 278 heißen.

    Trotzdem danke für den Hinweis.
    Airen

  5. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    @Airen:
    Dein Programm wird so nicht funktionieren.
    Die erste Division (weil DINT-Division ergibt als Ergebnis "0") :
    Code:
    L 2000
    L 27648
    /D               // hier ist es dann Null - und alles andere dann auch.
    L EW 277
    *D
    L 500
    +D
    L 10
    /D
    T MW 10
    Vielleicht solltest du dir mit dem Code von Lupo etwas Schickes bauen ...

    Gruß
    LL

    Nachtrag: ich hatte natürlich den Offset vergessen. Dadurch hast du dann wenigsten (unabhängig von deinem Analog-Eingang) immer 50 im MW stehen ...
    Geändert von Larry Laffer (05.04.2010 um 17:46 Uhr)

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

    Airen (05.04.2010)

  7. #6
    Airen ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.04.2010
    Beiträge
    6
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    @Lupo

    wenn ich das Programm folgendermaßen schreibe:

    L 2000
    L EW 278
    *D
    L 27648
    /D
    L 500
    +D
    T MW 10

    d.h. erst multipliziere und anschließend durch 27648 dividiere, sollte ich auch
    auf ein relativ genaues Ergebnis kommen, ohne mit R rechnen zu müssen.

    Die Angabe in 1/10 °C ist eine Vorgabe vom Prof.

    gruß

  8. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Sorum geht es natürlich auch ... aber bitte beachten :
    Code:
    L PEW 278

  9. #8
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Man kann ja ruhig mit DINT rechnen, aber erst die Multiplikation, dann die Division durchführen!

    Code:
    L L#2000
    L PEW 277
    ITD         //ok, das muß nicht sein, wenn EW277 nur positive Zahlen bringt!
    *D
    L L#27648
    /D
    L L+500
    +D
    L L#10
    /D         //das schneidet dann natürlich die Kommastelle ienfach ab!
    T MW 10
    Besser ohne

    L L#10
    /D

    und in WinCCFlex wie auch ProTool kann man DINT-werte als Kommawerte darstellen, indem man die Anzahl der Kommata einfach angibt.

    PS: Ah, er hat es schon selbst erkannt, prima!!
    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

  10. #9
    Registriert seit
    01.04.2010
    Beiträge
    306
    Danke
    18
    Erhielt 38 Danke für 37 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi

    ich frag mich immer wieso die Leute sich immer Gedanken um die Skalierung machen!

    Wenn es sich um eine CPU (300´ter, 400´ter) von Siemens handelt werden von Step7 schon Skalierbausteine mitgeliefert, die Bausteine liegen im Verzeichnis Standart Library\TI-S7 Converting Blocks

    FC105 zum Skalieren von AI´s
    FC106 zum Skalieren von AO´s

    Der einzigste grund von diesen Bausteinen abzuweichen wäre

    ein nicht lineares Signal (AI)
    Eine CPU die die Bausteine nicht unterstützt
    oder die Zykluszeit

    Gruß

Lesezeichen

Berechtigungen

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