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

Ergebnis 1 bis 7 von 7

Thema: Integer als Dezimalstelle?

  1. #1
    Registriert seit
    23.05.2007
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo an alle ich bin der neue! Und habe gleich einen totalen Blackout! Ich habe als in Parameter ein "Int" und versuche den gemäß Algebra zur Potenz umzuwandeln: Soll heissen aus 0 wird 0 aus 1 wir 10 aus 2 wird 100 aus 3 wird 1000 u.s.w. Also das Ergebniss von 10 hoch "Int" ? Hat jemand eine Lösung? Gruß compi
    Zitieren Zitieren Integer als Dezimalstelle?  

  2. #2
    Registriert seit
    20.12.2006
    Beiträge
    275
    Danke
    20
    Erhielt 29 Danke für 27 Beiträge

    Standard

    Wenn ich das richtig verstehe möchtest du eine Zahl z.B. 1000
    in Exponentenanzeige darstellen.
    Dies geht nur in der Real Darstellung 32Bit Format.
    Dazu muß Int in Dint und dann in Real gewandelt werden.


    Bitverbieger

  3. #3
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.725
    Danke
    314
    Erhielt 1.519 Danke für 1.282 Beiträge

    Standard

    10 hoch x - Rechnung:
    http://www.sps-forum.de/showthread.php?t=6081

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  4. #4
    Registriert seit
    10.05.2005
    Beiträge
    1.996
    Danke
    219
    Erhielt 232 Danke für 204 Beiträge

    Standard

    Hi

    Versuch es doch mal hier.


    https://support.automation.siemens.c...ad=treecontent


    P.S: "Unten rechts" gibts einen "Danke"-Button

    Karl
    Karl

  5. #5
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Zitat Zitat von compi Beitrag anzeigen
    Hallo an alle ich bin der neue! Und habe gleich einen totalen Blackout! Ich habe als in Parameter ein "Int" und versuche den gemäß Algebra zur Potenz umzuwandeln: Soll heissen aus 0 wird 0 aus 1 wir 10 aus 2 wird 100 aus 3 wird 1000 u.s.w. Also das Ergebniss von 10 hoch "Int" ? Hat jemand eine Lösung? Gruß compi
    10 hoch 0 ist übrigens 1

  6. #6
    compi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.05.2007
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Antwort aber noch nicht kompetter Baustein! Noch keine Fehlerbehadelung aber die funktion ist schon gegeben! Danke an alle die geholfen haben! Leider bleibt die etwas geringe unschärfe von 5 Kommastellen aber besser geht es wohl nicht! FUNCTION FC 3 : VOID TITLE = //Es können bis zu Dinteger nach Real und anders herum gewandelt werden. // //Ret_Val: //0 = alles OK //1 = int oder Dint ist 0 dann ist real 0.0 //2 = Real ist 0.0 dann ist Dint oder int 0 AUTHOR : LP VERSION : 0.1 VAR_INPUT real_Dint : BOOL ; //1=(von real nach Dint) real_Int : BOOL ; //1=(von real nach int) Dint_real : BOOL ; //1=(von Dint nach real) int_real : BOOL ; //1=(von Int nach real) zener_potenz : INT ; //Anzahl der Dezimalstellen der Real Zahl ( nur positive Zahlen) END_VAR VAR_OUTPUT Error : BOOL ; END_VAR VAR_IN_OUT Dint_in_out : DINT ; //Integer Ganzzahl 32 bit Int_in_out : INT ; //Integer Ganzzahl 16 bit real_in_out : REAL ; //Realzahl END_VAR VAR_TEMP R_Dezimal : REAL ; zener_potenz_1 : REAL ; //Anzahl der Dezimalstellen der Real Zahl ( nur positive Zahlen) Grunzpotenz : REAL ; END_VAR BEGIN NETWORK TITLE =Alarme verarbeiten NETWORK TITLE =Dezimalstellen in 10`ner Potenzen wandeln L 1.000000e+001; LN ; L #zener_potenz; DTR ; *R ; EXP ; T #R_Dezimal; NETWORK TITLE =Fehlerbehandlung NETWORK TITLE =Real nach Dint U #real_Dint; SPB r_d; NETWORK TITLE =Real nach int U #real_Int; SPB r_i; NETWORK TITLE =Dint nach real U #Dint_real; SPB d_r; NETWORK TITLE =int nach real U #int_real; SPB i_r; NETWORK TITLE =Real nach DInt berechnen r_d: L #real_in_out; L #R_Dezimal; *R ; RND ; T #Dint_in_out; BEA ; NETWORK TITLE =Real nach Int berechnen r_i: L #real_in_out; L #R_Dezimal; *R ; RND ; T #Int_in_out; BEA ; NETWORK TITLE =DInt nach real berechnen d_r: L #Dint_in_out; DTR ; L #R_Dezimal; /R ; T #real_in_out; BEA ; NETWORK TITLE =Int nach real berechnen i_r: L #Int_in_out; DTR ; L #R_Dezimal; /R ; T #real_in_out; BEA ; END_FUNCTION Gruß compi

  7. #7
    Registriert seit
    10.05.2005
    Beiträge
    1.996
    Danke
    219
    Erhielt 232 Danke für 204 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Compi

    Oben rechts gibt es so ein Gitter # damit kannst du sowas wie unten machen.



    Der Code hier ist von Compi.
    (Nicht ausgerichtet, war zu faul dazu, Umbrüche fehlen, wollte nur zeigen wie das funkt )

    Code:
     
    FUNCTION FC 3 :
    VOID TITLE = //Es können bis zu Dinteger nach Real und anders herum gewandelt werden. // //Ret_Val: //0 = alles OK //1 = int oder Dint ist 0 dann ist real 0.0 //2 = Real ist 0.0 dann ist Dint oder int 0 AUTHOR : LP VERSION : 0.1 
    VAR_INPUT real_Dint : BOOL ; //1=(von real nach Dint)
        real_Int : BOOL ; //1=(von real nach int) 
        Dint_real : BOOL ; //1=(von Dint nach real) int_real : BOOL ; //1=(von Int nach real) zener_potenz : INT ; //Anzahl der Dezimalstellen der Real Zahl ( nur positive Zahlen) END_VAR VAR_OUTPUT Error : BOOL ; END_VAR VAR_IN_OUT Dint_in_out : DINT ; //Integer Ganzzahl 32 bit Int_in_out : INT ; //Integer Ganzzahl 16 bit real_in_out : REAL ; //Realzahl END_VAR VAR_TEMP R_Dezimal : REAL ; zener_potenz_1 : REAL ; //Anzahl der Dezimalstellen der Real Zahl ( nur positive Zahlen) Grunzpotenz : REAL ; END_VAR BEGIN NETWORK TITLE =Alarme verarbeiten NETWORK TITLE =Dezimalstellen in 10`ner Potenzen wandeln L 1.000000e+001; LN ; L #zener_potenz; DTR ; *R ; EXP ; T #R_Dezimal; NETWORK TITLE =Fehlerbehandlung NETWORK TITLE =Real nach Dint U #real_Dint; SPB r_d; NETWORK TITLE =Real nach int U #real_Int; SPB r_i; NETWORK TITLE =Dint nach real U #Dint_real; SPB d_r; NETWORK TITLE =int nach real U #int_real; SPB i_r; NETWORK TITLE =Real nach DInt berechnen r_d: L #real_in_out; L #R_Dezimal; *R ; RND ; T #Dint_in_out; BEA ; NETWORK TITLE =Real nach Int berechnen r_i: L #real_in_out; L #R_Dezimal; *R ; RND ; T #Int_in_out; BEA ; NETWORK TITLE =DInt nach real berechnen d_r: L #Dint_in_out; DTR ; L #R_Dezimal; /R ; T #real_in_out; BEA ; NETWORK TITLE =Int nach real berechnen i_r: L #Int_in_out; DTR ; L #R_Dezimal; /R ; T #real_in_out; BEA ; END_FUNCTION
    Ach ja, und unten rechts ist ein "Danke-Button" solltest du ihn irgenwann brauchen.
    Karl

Ähnliche Themen

  1. WinCC V7 Dezimalstelle verschieben
    Von golfsiew im Forum HMI
    Antworten: 7
    Letzter Beitrag: 10.03.2010, 06:57
  2. integer 32Bit in integer 16 Bit wandeln
    Von slk230-power im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 09.11.2009, 22:35
  3. Integer in Hex
    Von snowkopp im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 22.09.2009, 20:42
  4. Integer, Hex
    Von Anonymous im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 13.01.2006, 22:08
  5. Umwandlung Integer(32bit) in Integer(16bit)
    Von Kojote im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 18.08.2005, 10:56

Lesezeichen

Berechtigungen

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