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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: Probleme beim Umwandeln von INT --> Real

  1. #1
    Registriert seit
    05.10.2009
    Beiträge
    14
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    habe da schon wieder mal ein Problem.

    Für die Parametrierung an einem PID-Regler brauche ich Real Format. Ich bekomme über ein paar DBWs mehrere INT und rechne die dann um in REAL. Jetzt mein Problem, in einigen NW funktioniert es in anderen wieder nicht, ich frag mich warum? Ich verwende temporäre Variablen, hier mal ein Auszug von 3 NW in denen es NICHT funktioniert:

    Code:
    NW 3: Hier bekomme ich den Sollwert und rechne um:
          U(    
          U(    
          U(    
          L     "DB_Analog".Sollwert_ADZ
          T     "DB-Reglerwerte".SW_WRG
          SET   
          SAVE  
          CLR   
          U     BIE
          )     
          SPBNB _01b
          L     "DB-Reglerwerte".SW_WRG
          ITD   
          T     #t_dint
          SET   
          SAVE  
          CLR   
    _01b: U     BIE
          )     
          SPBNB _020
          L     #t_dint
          DTR   
          T     #t_real
          SET   
          SAVE  
          CLR   
    _020: U     BIE
          )     
          SPBNB _021
          L     #t_real
          L     1.000000e+001
          /R    
          T     #t_SW
    _021: NOP   0
    
    NW5: Proportionalwert
          U(    
          U(    
          L     "DB-Reglerwerte".PW_WRG
          ITD   
          T     #t_dint
          SET   
          SAVE  
          CLR   
          U     BIE
          )     
          SPBNB _022
          L     #t_dint
          DTR   
          T     #t_real
          SET   
          SAVE  
          CLR   
    _022: U     BIE
          )     
          SPBNB _023
          L     #t_real
          L     1.000000e+001
          /R    
          T     #t_PW
    _023: NOP   0
    
    NW6: Totzone
          U(    
          U(    
          L     "DB-Reglerwerte".TZ_WRG
          ITD   
          T     #t_dint
          SET   
          SAVE  
          CLR   
          U     BIE
          )     
          SPBNB _025
          L     #t_dint
          DTR   
          T     #t_real
          SET   
          SAVE  
          CLR   
    _025: U     BIE
          )     
          SPBNB _026
          L     #t_real
          L     1.000000e+001
          /R    
          T     #t_TZ
    _026: NOP   0
    Beim Istwert, den ich im NW2 (genauso) umrechne funktioniert es. Die Temporären variablen (z.B. #t_real und #t_dint)werden ja immerwieder überschrieben, daher kann ich sie ja auch mehrmals verwenden oder nicht?!

    Da es anscheinend an der Umrechnung hakt, bekomme ich meinen Regler auch nicht zum laufen, da dort dann an den Parametern für Sollwert, Proportionalwert und Totzone kein Real Format anliegt.

    So noch paar Daten:
    SW: Step 7 V5.4 SP5 HF1
    HW: CPU 317-2


    MfG
    Geändert von Stahlhart (08.06.2010 um 11:38 Uhr)
    Zitieren Zitieren Probleme beim Umwandeln von INT --> Real  

  2. #2
    Registriert seit
    26.05.2009
    Beiträge
    541
    Danke
    35
    Erhielt 78 Danke für 69 Beiträge

    Standard

    Tach,

    so richtig durchblicken tu ich da nicht!
    Vielleicht kannst du mal die Code-Funktion hier vom Forum benutzen
    Code:
    CODE
    /CODE
    Des weiteren wären ein paar Kommentare sehr hilfreich.

    Kann es sein, dass dein BIE = 0 ist?!
    Dann sieht es nämlich so aus, als würde er durch die ganze Berechung und Umwandlung durchspringen.

    Code:
    U     BIE
          )     
          SPBNB _005
    ...
    _005: U     BIE
          )     
          SPBNB _006
    ...
    _006: U     BIE
          )     
          SPBNB _007
    ...
    _007: NOP   0
    Wenn dein BIE am Anfang 0 ist und sich der ja bei den Sprüngen nicht ändert, dann springt der komplett durch das Programm ohne irgendwelche Berechnungen bzw. Umrechnungen.

    Gruß wolder
    Wenn du denkst du denkst, dann denkst du nur, dass du denkst, denn beim Denken der Gedanken, kommt dir der Gedanke, dass das Denken der Gedanken ein gedankenloses Denken ist

  3. #3
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von wolder Beitrag anzeigen
    Kann es sein, dass dein BIE = 0 ist?!
    Dann sieht es nämlich so aus, als würde er durch die ganze Berechung und Umwandlung durchspringen.

    Code:
    U     BIE
          )     
          SPBNB _005
    ...
    _005: U     BIE
          )     
          SPBNB _006
    ...
    _006: U     BIE
          )     
          SPBNB _007
    ...
    _007: NOP   0
    Wenn dein BIE am Anfang 0 ist und sich der ja bei den Sprüngen nicht ändert, dann springt der komplett durch das Programm ohne irgendwelche Berechnungen bzw. Umrechnungen.

    Gruß wolder
    das glaube ich nicht, tim.
    diese darstellung rührt aus der programmierung in FUP/KOP her.
    wandelt man es mal um, sieht es sehr linear und seriell, dazu noch nachvollziehbar aus.

    das überschreiben der temp-variablen ist hier auch nicht das problem (s.o. seriellietät)

    welche werte stehen denn in t_SW, t_PW und t_PZ?
    und welche werte werden vorgegeben?
    gib mal ein Bsp. an.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  4. #4
    Stahlhart ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.10.2009
    Beiträge
    14
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Sorry habs nochmal editiert und den Quellcode nochmal komplett neu reinkopiert.

    Ich habs eigentlich in FUP programmiert nur zum einfügen hier in AWL eingefügt.

    Das BIE kann ich doch von FUP aus gar nicht beeinträchtigen? Wieso sollte es also 0 sein?


    MfG

    Edit:

    Sollwert kommt von der Visu. Es sollte eigentlich drinstehen 0000000080.3 es steht aber drin 000000000080.
    Bei dem Proportionalwert und der Totzone das gleiche 000000000020 bzw. 000000000002
    Geändert von Stahlhart (08.06.2010 um 11:46 Uhr)

  5. #5
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Stahlhart Beitrag anzeigen
    Edit:

    Sollwert kommt von der Visu. Es sollte eigentlich drinstehen 0000000080.3 es steht aber drin 000000000080.
    Bei dem Proportionalwert und der Totzone das gleiche 000000000020 bzw. 000000000002
    80.3 lässt sich ja aber in INT gar nicht abbilden?! (ich verstehe doch richtig, dass das der Sollwert, also der Wert aus dem DB sein soll)
    wenn die Werte sowieso über die Visu kommen, warum dann nicht auch gleich im richtigen Format?
    und wenn dies nicht gewollt ist, dann eben in z.B. INT *10, was die eine, wohl gewünschte Kommastelle, mgl. machen würde. (hier braucht es dann die Wandlung, die so funktioniert, wie sie oben abgebildet ist)
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  6. #6
    Registriert seit
    07.06.2010
    Ort
    Vorderpfalz
    Beiträge
    34
    Danke
    2
    Erhielt 18 Danke für 7 Beiträge

    Standard

    Zitat Zitat von Stahlhart Beitrag anzeigen
    Hallo,

    habe da schon wieder mal ein Problem.
    ...
    Sieht irgendwie wild aus. Ich mach das immer in AWL:
    Code:
    L mein_integerwert
    ITD
    DTR
    T mein_realwert
    Wenn du den Integerwert z.B. als Zehntel-Einheit bekommst, musst du noch umrechnen, das sieht dann so aus:
    Code:
    L mein_integerwert
    ITD
    DTR
    L 10.0
    /R
    T mein_realwert

  7. #7
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von d-eye Beitrag anzeigen
    Sieht irgendwie wild aus.
    wenn er in FUP schreibt, dann schreibt er in FUP PUNKT
    schöne kleine kästchen ... es interessiert ihn doch nicht die bohne, wie der AWL-code dahinter aussieht.
    erspar mir also eine weitere diskussion über KOP/FUP/AWL/SCL oder doch vielleicht gleich mit einem hardwareregler?!
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  8. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.285
    Danke
    932
    Erhielt 3.320 Danke für 2.682 Beiträge

    Standard

    Wenn in "DB_Analog".Sollwert_ADZ eine 803 (INT) drinsteht, dann kommt auch am Ende in #t_SW = 80.3 (REAL) raus.
    Beobachte mal, was von der Visu kommt. Ich vermute den Fehler in der "gedachten" Kommastelle in der Visu (Skalierung?).

    Gruß
    Harald

  9. #9
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.285
    Danke
    932
    Erhielt 3.320 Danke für 2.682 Beiträge

    Standard

    Zitat Zitat von d-eye Beitrag anzeigen
    Sieht irgendwie wild aus. Ich mach das immer in AWL[...]
    Code:
    L mein_integerwert
    ITD
    DTR
    L 10.0
    /R
    T mein_realwert
    Ganz genau das macht der Code von Stahlhart, allerdings mit zusätzlichem Code für die FUP/KOP-Darstellung.
    Sein Code ist zwar länger, aber vollkommen in Ordnung.

    Gruß
    Harald

  10. #10
    Registriert seit
    07.06.2010
    Ort
    Vorderpfalz
    Beiträge
    34
    Danke
    2
    Erhielt 18 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von vierlagig Beitrag anzeigen
    wenn er in FUP schreibt, dann schreibt er in FUP PUNKT
    schöne kleine kästchen ... es interessiert ihn doch nicht die bohne, wie der AWL-code dahinter aussieht.
    erspar mir also eine weitere diskussion über KOP/FUP/AWL/SCL oder doch vielleicht gleich mit einem hardwareregler?!
    Bin mir nicht bewusst irgendeine Diskussion angestoßen zu haben, erst recht nicht mit dir.

Ähnliche Themen

  1. Von REAL auf INT mit Komma umwandeln
    Von MasterKalle im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 19.10.2011, 15:00
  2. Real zahl in INT umwandeln
    Von bacardischmal im Forum Feldbusse
    Antworten: 5
    Letzter Beitrag: 20.03.2009, 18:17
  3. Umwandeln von Word in Real
    Von SPS_NEU im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 06.03.2009, 14:46
  4. Umwandeln von S7 Real auf S5 KG
    Von repök im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 28.04.2006, 02:49
  5. REAL in STRING umwandeln
    Von KNOTZ im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 13.07.2005, 14:50

Lesezeichen

Berechtigungen

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