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

Ergebnis 1 bis 8 von 8

Thema: WinCC V7 Dezimalstelle verschieben

  1. #1
    Registriert seit
    09.11.2009
    Beiträge
    29
    Danke
    10
    Erhielt 2 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich möchte z.B. den Wert der Ausentemperatur von einer S7 317 einlesen.
    Dieser Wert steht im DB 1 Wort 20 als 47 für 4,7 °C.
    Wie kann ich den Wert in WinCC umrechnen, das z.B. für die 47 eine 4,7 erscheint??? Habe schon ein Script geschrieben in dem ich die 47 durch 10 teile. Da kommt dann 4 raus. Die Nachkommastelle wurde weggelassen. Bei einer negative Zahl kommt 0 raus.

    Vielen Dank im vorraus.
    Zitieren Zitieren WinCC V7 Dezimalstelle verschieben  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Hallo,
    ich weiß jetzt nicht, on WinCC eine "lineare Skalierung" kann. Das wäre eventuell ein Ansatz.
    Ansonsten solltest du bei deiner Division den Variablentyp berücksichtigen. Wenn deine 47 ein INT sind (und das nehme ich stark an), dann ergibt das bei der Division durch 10 dann 4. Der Variablentyp für den umgerechneten Wert muß dann natürlich ein REAL sein. Dann funktioniert das auch in dem Script.
    Diese Division mit der anschließenden Übermittlung des umgerechneten Wertes kannst du natürlich genausogut in der SPS machen - vielleicht hättest du dann den Fehler auch schneller bemerkt ...

    Gruß
    LL

  3. #3
    golfsiew ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.11.2009
    Beiträge
    29
    Danke
    10
    Erhielt 2 Danke für 1 Beitrag

    Standard

    ok, die Zahl ist im INT Format als vorzeichenbehaftetes 16bit Zahl.
    ich bräuchte also REAL vorzeichenbehaftete 32 bit Zahl mit Nachkommastelle. Es in der SPS zu ändern ist kein Problem. Ich Visualisiere mit WinCC eine Gebäudeleittechnik, wo ich mir die Daten von einer Fremd SPS hole und wollte deswegen nicht auf diese irgendetwas hin und her rechnen. Probiere aber das mit dem skalieren.
    Vielen Dank...schönes Wochenende.

  4. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Hi,
    mit der Skalierung und Nachkommastelle ist bei WinCC etwas konfus.

    Du legst eine Variable vom Typ 32-Bit Float an.
    Dann gibt es bei Formatanpassung eine Möglichkeit wie "FloatToWord", ich kann das im Moment nicht nachschauen.
    Danach noch die Skalierung aktivieren, und bei Prozess z.B. 0-100 und bei Variable 0-10 einstellen. Somit hast du im WinCC aus deiner SPS Integervariable eine Gleitpunktvariable mit einer Nachkommastelle im WinCC gemacht

    Gruß
    Thomas
    Geändert von Thomas_v2.1 (05.03.2010 um 17:39 Uhr)

  5. Folgende 2 Benutzer sagen Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    golfsiew (10.03.2010)

  6. #5
    Registriert seit
    21.05.2008
    Beiträge
    13
    Danke
    0
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Habe schon ein Script geschrieben in dem ich die 47 durch 10 teile. Da kommt dann 4 raus. Die Nachkommastelle wurde weggelassen. Bei einer negative Zahl kommt 0 raus.
    Hallo,

    hast du mal versucht in diesem Script statt durch 10 durch 10.0 zu teilen?
    Also ungefähr so

    float xy = 0;
    xy = intvariable / 10.0;

    Sollte eigentlich funktionieren.

    Gruß Dirk
    Zitieren Zitieren RE: WinCC V7 Dezimalstelle verschieben  

  7. Folgender Benutzer sagt Danke zu virtualdirk für den nützlichen Beitrag:

    golfsiew (10.03.2010)

  8. #6
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Zitat Zitat von golfsiew Beitrag anzeigen
    ich möchte z.B. den Wert der Ausentemperatur von einer S7 317 einlesen.
    Dieser Wert steht im DB 1 Wort 20 als 47 für 4,7 °C.
    Wie kann ich den Wert in WinCC umrechnen, das z.B. für die 47 eine 4,7 erscheint???
    Siehe die folgenden Siemens-FAQ:

    WORD-Prozesswert mit Nachkommastellen in WinCC darstellen

    FRAGE:
    Wie kann ich einen WORD-Wert aus der CPU in WinCC mit zwei Nachkommastellen darstellen?

    ANTWORT:
    Sie haben in der CPU eine Variable vom Typ "WORD" abgelegt und möchten diesen Wert in WinCC mit zwei Nachkommastellen darstellen. Führen Sie dazu die folgenden Schritte aus:
    1. Legen Sie eine Variable vom Typ "Gleitkommazahl 32 Bit IEEE 745" im WinCC-Variablenhaushalt an.
    2. Stellen Sie unter Formanpassung "FloatToUnsignedWord" ein.
      Mit diesen Schritten wird der WORD-Wert von 2 Bytes auf 4 Bytes erweitert und es wird eine Konvertierung der Festkommazahl in eine Gleitpunktzahl vorgenommen.
    3. Aktivieren Sie die lineare Skalierung. Tragen Sie in den entsprechenden Feldern die folgenden Werte ein.
      "Wertebereich Prozeß" > "Wert1" > "0"
      "Wertebereich Prozeß" > "Wert2" > "1000"
      "Wertebereich Variable" > "Wert1" > "0"
      "Wertebereich Variable" > "Wert2" > "10"
      Durch diesem Schritt legen Sie die Anzahl der Nachkommastellen fest. Wenn Sie drei Nachkommastellen benötigen, dann ändern Sie den "Wert2" von 1000 in 10000.
    ID9396564 WORD-Prozesswert mit Nachkommastellen in WinCC darstellen

    Gruß Kai

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

    golfsiew (10.03.2010)

  10. #7
    Registriert seit
    23.08.2004
    Beiträge
    565
    Danke
    73
    Erhielt 19 Danke für 18 Beiträge

    Standard

    wichtig wäre vieleicht noch zu sagen das im EA Feld die Nachkommastelle auch eingetragen ist z.B. 99,99 bzw s99,99 fürs vorzeichen

  11. Folgender Benutzer sagt Danke zu Bender25 für den nützlichen Beitrag:

    golfsiew (10.03.2010)

  12. #8
    golfsiew ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.11.2009
    Beiträge
    29
    Danke
    10
    Erhielt 2 Danke für 1 Beitrag

    Lächeln


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Habe den Tipp von Kai ausprobiert und es funzst.

    Vielen Dank

Ähnliche Themen

  1. Wincc- In "C" Dateien, verschieben, kopieren, löschen?
    Von Bosga im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 26.12.2008, 16:54
  2. Antworten: 2
    Letzter Beitrag: 05.08.2008, 08:43
  3. Integer als Dezimalstelle?
    Von compi im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 24.05.2007, 22:05
  4. Daten verschieben
    Von puehri im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 17.07.2006, 19:22
  5. WinCC 6 EA-Feld Kommastelle verschieben
    Von Anonymous im Forum HMI
    Antworten: 1
    Letzter Beitrag: 09.08.2005, 14:32

Stichworte

Lesezeichen

Berechtigungen

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