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

Ergebnis 1 bis 7 von 7

Thema: Negative Exponenten

  1. #1
    Registriert seit
    06.10.2003
    Beiträge
    3.414
    Danke
    451
    Erhielt 506 Danke für 408 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    ich bekomme von einem DP-Teilnehmer einen codierten Wert zurück.

    Die Bits haben folgende Bedeutung:
    Bit 0 == 2^-5 == 0,03125
    Bit 1 == 2^-4 == 0,06250
    Bit 2 == 2^-3 == 0,12500
    Bit 3 == 2^-2 == 0,25000
    Bit 4 == 2^-1 == 0,50000
    Bit 5 == 2^-0 == 1,00000

    Die Summe der Werte entspricht einem Prozentwert von 0 bis ca. 197 den ich verarbeiten muss.

    Gelöst habe ich es erst einmal wie folgt:

    Code:
    //*** Motorstrom berechnen
          L     2#0
    //+++ Bit 0 == 2^-5
          U     #SF.IN.MOTORSTROM_BIT_0
          SPBN  M0
          L     3125                        // 0,03125
          +D    
    //+++ Bit 1 == 2^-4
    M0:   U     #SF.IN.MOTORSTROM_BIT_1
          SPBN  M1
          L     6250                        // 0,06250
          +D    
    //+++ Bit 2 == 2^-3
    M1:   U     #SF.IN.MOTORSTROM_BIT_2
          SPBN  M2
          L     12500                       // 0,12500
          +D    
    //+++ Bit 3 == 2^-2
    M2:   U     #SF.IN.MOTORSTROM_BIT_3
          SPBN  M3
          L     25000                       // 0,25000
          +D    
    //+++ Bit 4 == 2^-1
    M3:   U     #SF.IN.MOTORSTROM_BIT_4
          SPBN  M4
          L     L#50000                     // 0,50000
          +D    
    //+++ Bit 5 == 2^0
    M4:   U     #SF.IN.MOTORSTROM_BIT_5
          SPBN  M5
          L     L#100000                    // 1,00000
          +D    
    M5:   T     #TEMP_DINT
    Es muss doch aber auch etwas eleganter gehen. Hat jemand eine Idee?


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford
    Zitieren Zitieren Negative Exponenten  

  2. #2
    Registriert seit
    20.11.2004
    Ort
    Linz, OÖ
    Beiträge
    1.365
    Danke
    96
    Erhielt 177 Danke für 133 Beiträge

    Standard

    Also, so wie mich das anschaut, Ist Bit 1 immer das doppelt von Bit 0, Bit 2 das doppelte von Bit 1 usw.
    Bei Binärzahlen verhält es sich genau gleich - Bit 1 (2) ist das doppelt von Bit 0 (1) - Bit 2 (4) is das doppelte von Bit 1 usw.

    Das heißt, dass Du eigentlich nur das Eingangsbyte (oder Wort) * 3125 multiplizieren musst:

    Code:
    L    SF.IN.MOTORSTROM
    L    2#11111
    UW
    ITD
    L    L#3125
    *D
    T    #TEMP_DINT
    Aus dem Wort werden alle Bits außer den untersten 6 ausmaskiert, anschließend mal 3125 multipliziert - fertig!


    mfg
    Maxl
    Geändert von Maxl (16.12.2006 um 22:03 Uhr)

  3. #3
    Registriert seit
    28.06.2006
    Ort
    Königreich Neuseeland
    Beiträge
    2.027
    Danke
    133
    Erhielt 96 Danke für 76 Beiträge

    Standard

    Zitat Zitat von Maxl Beitrag anzeigen
    Aus dem Wort werden alle Bits außer den untersten 6 ausmaskiert, anschließend mal 3125 multipliziert - fertig!
    Genau, Maxl, das sieht aus wie ne normale lineare Skalierung.

  4. #4
    Avatar von Onkel Dagobert
    Onkel Dagobert ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.10.2003
    Beiträge
    3.414
    Danke
    451
    Erhielt 506 Danke für 408 Beiträge

    Standard

    Hallo Maxl,

    genau das habe ich gesucht, danke!
    Die letzte Woche war wohl doch etwas zu stressig . Und morgen muss ich nochmal ran .


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  5. #5
    Avatar von Onkel Dagobert
    Onkel Dagobert ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.10.2003
    Beiträge
    3.414
    Danke
    451
    Erhielt 506 Danke für 408 Beiträge

    Standard

    Hallo Registrierter,

    Zitat Zitat von Unregistrierter gast Beitrag anzeigen
    ..das sieht aus wie ne normale lineare Skalierung.
    Und du triffst es aufs Wort. Hatte es einfach nicht erkannt. Danke dir.


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  6. #6
    Registriert seit
    02.10.2006
    Ort
    Tirol
    Beiträge
    159
    Danke
    17
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Hallo,

    wenn ich mich nicht täusche, sieht das ganze aus wie beim Siemens High Feature Softstart. Und da passt der Faktor 3125 wie ihn Maxl schon erwähnt hat.
    Zitieren Zitieren Siemens Softstart  

  7. #7
    Avatar von Onkel Dagobert
    Onkel Dagobert ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.10.2003
    Beiträge
    3.414
    Danke
    451
    Erhielt 506 Danke für 408 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo tomate,

    Zitat Zitat von tomatensaft Beitrag anzeigen
    Hallo,

    wenn ich mich nicht täusche, sieht das ganze aus wie beim Siemens High Feature Softstart...
    Gut erkannt, genau so ist es.


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

Ähnliche Themen

  1. Negative Zahlen anzeigen?
    Von petzi im Forum HMI
    Antworten: 14
    Letzter Beitrag: 17.08.2010, 09:31
  2. Negative Werte begrenzen
    Von cboerm im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 01.07.2010, 22:58
  3. OPC Negative Zahlenwerte
    Von Gucky_av im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 24.06.2008, 19:29
  4. Negative Erfahrungsberichte
    Von Atommolch im Forum Stammtisch
    Antworten: 17
    Letzter Beitrag: 24.07.2007, 06:25
  5. Negative Flanke, wie projektieren?
    Von Anonymous im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 17.01.2005, 16:16

Lesezeichen

Berechtigungen

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