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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 26

Thema: Wert von Touch Panel in DB und umwandeln

  1. #1
    Registriert seit
    13.01.2011
    Ort
    Bremen
    Beiträge
    128
    Danke
    15
    Erhielt 7 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe hier ein Touch Panel über Profibus am laufen wo ich einen Sollwert für eine Heizung einstellen möchte

    Dafür nutzen ich einen DB

    Also der DB hat den anfangswert 150 als INT

    dieser wird mir auch im Touch reingeladen und kann ihn dann in +- 5er schritten verändern soweit alles gut =)

    nun habe ich den Regelbaustein FB42 der quasi mein touchpanel sollwert mit dem istwert vergleichen soll
    Code:
           SP_INT  :=2.000000e+002 // manueller Sollwert
           PV_IN   :=DB2.DBD0         // Istwert
    Da der Sollwert ein Real sein muss dachte ich mache das so
    Code:
          L     DB3.DBW    0 // INTwert von meinem Touch
          ITD   
          DTR   
          T     DB3.DBW    4 // Ausgabe in REAL
    FB42 ändern in
    Code:
           SP_INT  :=DB3.DBW4
           PV_IN   :=DB2.DBD0         // Istwert
    Leider wird der gewandelte wer nicht im DB eingetragen beobachte ich meine umwandlung macht diese etwas aber in meinem DB3.DBW4 bleibt immer eine 0.0000e000


    Hat da eine eine Idee?


    Edit:

    wenn ich den FB42 nun 200°C vorgebe heißt meine heizung nur bis 195°c eigenltich müsste er doch weiter hochgehen?

    Sorry aber ist das erste mal das ich mit so einem baustein arbeite die hilfe über F1 hab ich mir angesehen aber so ganz verstehen zu ich das nicht und in der Berufsschule machen wir sowas momentan nochnicht

    Danke
    Geändert von Benni89 (18.01.2011 um 19:18 Uhr)
    Zitieren Zitieren Wert von Touch Panel in DB und umwandeln  

  2. #2
    Registriert seit
    02.10.2010
    Beiträge
    453
    Danke
    62
    Erhielt 87 Danke für 69 Beiträge

    Standard

    Code:
    L DB3.DBW 0 // INTwert von meinem Touch
    ITD 
    DTR 
    T DB3.DBD 4 // Ausgabe in REAL
    
    FB42 ändern in
    SP_INT :=DB3.DBD4
    PV_IN :=DB2.DBD0 // Istwert
    Real braucht ein Doppelwort (32bit)

  3. Folgender Benutzer sagt Danke zu Corosop15 für den nützlichen Beitrag:

    Benni89 (18.01.2011)

  4. #3
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von Benni89 Beitrag anzeigen
    Da der Sollwert ein Real sein muss dachte ich mache das so

    L DB3.DBW 0 // INTwert von meinem Touch
    ITD
    DTR
    T DB3.DBW 4 // Ausgabe in REAL
    Das muss DB3.DBD 4 heißen

    @Edit: Corosop15 war schneller!
    Geändert von Paule (18.01.2011 um 19:16 Uhr) Grund: Zu langsam
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  5. Folgender Benutzer sagt Danke zu Paule für den nützlichen Beitrag:

    Benni89 (18.01.2011)

  6. #4
    Benni89 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.01.2011
    Ort
    Bremen
    Beiträge
    128
    Danke
    15
    Erhielt 7 Danke für 5 Beiträge

    Standard

    Danke Danke =)

    das klappt schonmal =)

    nun hat von euch einer ahnung mit dem regelbaustein? =)

  7. #5
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von Benni89 Beitrag anzeigen
    nun hat von euch einer ahnung mit dem regelbaustein? =)
    Was willst denn wissen, oder wo hängst du?
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  8. #6
    Registriert seit
    17.05.2010
    Ort
    Paderborn
    Beiträge
    824
    Danke
    84
    Erhielt 125 Danke für 94 Beiträge

    Standard

    Du kannst nicht den Wert von INT nach REAL wandeln und dann im selben Bereich abspeichern, da kann nur Chaos entstehen! Du vermisdcht 2 unterschiedliche Formate!

    Warum gibst Du den Wert im TP (und auch im DB) nicht direkt als REAL an und sparst Dir das umwandeln? Dann kannst Du auch direkt in die Variable schreiben!

    Oder arbeite mit einem Zwischenspeicher:

    L DB3.DBW 0 // INTwert von meinem Touch
    ITD
    DTR
    T MD50 // Ausgabe in REAL

    ...

    FB42 ändern in
    SP_INT :=DB3.DBW4
    PV_IN :=DB2.DBD0 // Istwert

    ...

    L MD 50
    RND
    T MD 54

    L MD 54
    T DB3.DBW 0
    Grüße
    Michael

    1001101110110100... Das ist meine Welt

  9. #7
    Benni89 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.01.2011
    Ort
    Bremen
    Beiträge
    128
    Danke
    15
    Erhielt 7 Danke für 5 Beiträge

    Standard

    ich bin für verbesserungsvorschläge offen

    wie gesagt mir fehlt dafür etwas die Praxis noch (probiere quasi momentan etwas auf der arbeit rum mit analogwerten und so) da das bei uns in der Berufschule leider nochnicht behandelt wurde

  10. #8
    Benni89 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.01.2011
    Ort
    Bremen
    Beiträge
    128
    Danke
    15
    Erhielt 7 Danke für 5 Beiträge

    Standard

    Zitat Zitat von Paule Beitrag anzeigen
    Was willst denn wissen, oder wo hängst du?
    Code:
      CALL  "CONT_S" , DB421
           COM_RST :=
           LMNR_HS :=
           LMNR_LS :=
           LMNS_ON :=
           LMNUP   :=
           LMNDN   :=
           PVPER_ON:=
           CYCLE   :=
           SP_INT  :=DB3.DBD4
           PV_IN   :=DB2.DBD0
           PV_PER  :=
           GAIN    :=
           TI      :=
           DEADB_W :=
           PV_FAC  :=
           PV_OFF  :=
           PULSE_TM:=
           BREAK_TM:=
           MTR_TM  :=
           DISV    :=
           QLMNUP  :="Patrone hinten an"
           QLMNDN  :=
           PV      :=
           ER      :=
          NOP   0
    DB3.DBD4 gibt nun 150 vor (meine Temperatur die ich haben möchte)

    DB2.DBD0 gibt mir nun zurück 30 meinetwegen (ist temperatur)

    das funktioniert super temperatur steigt also QLMNUP gibt eine "1"

    Bis dann DB2.DBD0 145 sagt ab dann hört meine regelung auf bzw regelt halt nicht viel höher

    wenn ich 150 haben will, möchte ich die auch haben und nicht 145

    hoffe ihr versteht das problem? =)

  11. #9
    Registriert seit
    17.05.2010
    Ort
    Paderborn
    Beiträge
    824
    Danke
    84
    Erhielt 125 Danke für 94 Beiträge

    Standard

    Berechnungen dieser Art führe ich vorwiegend mit REAL-Werten durch. Zuvor wandle ich die Werte, wenn nicht vorhanden ins REAL-Format und anschließend wieder zurück. Für die REAL-Werte, soweit sie nicht anders benötigt werden, kann man auch gut Lokale TEMP- oder STAT-Variablen nehmen!
    Grüße
    Michael

    1001101110110100... Das ist meine Welt

  12. #10
    Benni89 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.01.2011
    Ort
    Bremen
    Beiträge
    128
    Danke
    15
    Erhielt 7 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von MCerv Beitrag anzeigen
    Du kannst nicht den Wert von INT nach REAL wandeln und dann im selben Bereich abspeichern, da kann nur Chaos entstehen! Du vermisdcht 2 unterschiedliche Formate!

    Warum gibst Du den Wert im TP (und auch im DB) nicht direkt als REAL an und sparst Dir das umwandeln? Dann kannst Du auch direkt in die Variable schreiben!

    Oder arbeite mit einem Zwischenspeicher:

    L DB3.DBW 0 // INTwert von meinem Touch
    ITD
    DTR
    T MD50 // Ausgabe in REAL

    ...

    FB42 ändern in
    SP_INT :=DB3.DBW4
    PV_IN :=DB2.DBD0 // Istwert

    ...

    L MD 50
    RND
    T MD 54

    L MD 54
    T DB3.DBW 0


    Wie würde ich das denn Realisieren das im TP direkt einzugeben?

    mein EA fenster steht auf Dezimal

    muss ich im DB lediglich das INT auf REAL ändern?

Ähnliche Themen

  1. Long Integer in Real Wert umwandeln
    Von ThermoFisher im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 24.10.2011, 16:31
  2. REAL Wert in unsigned INT umwandeln
    Von caret im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 08.07.2008, 18:44
  3. Integer Wert in Hex umwandeln
    Von tomatensaft im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 15.12.2006, 16:21
  4. Integer Wert (t in ms) in S5Time umwandeln?
    Von Anonymous im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 27.07.2006, 09:00
  5. REAL-Wert in INT umwandeln zur Analogausgabe
    Von Anonymous im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 02.06.2005, 11:38

Lesezeichen

Berechtigungen

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