TIA Absolute Feuchte Berechnen SCL S71214 TIA V18

Tom50Ger

Level-2
Beiträge
22
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Schönen guten Abend

Ich hab ein Problem und zwar möchte ich gerne anhand meiner IST-Tempertur, welche sich im Merker %MD140 als Real Wert befindet und meiner relativen Feuchte %MD136 Real Wert, meine absolute Feuchte errechnen. Diese soll in einem weiterem Merker hinterlegt werden und dann über ein HMI angezeigt werden.
Nur ich habe absolut null Ahnung von SCL und ich wüsste nicht wie ich eine Potenz berechnung in FUP verwirklichen soll.

Die Formel lautet:
ρ_w = (φ * ρ_sat(T)) / 100
  • ρ_w: absolute Feuchte in g/m³
  • φ: relative Feuchte in %
  • ρ_sat(T): Sättigungsdampfdruck bei Temperatur T in Pa (Pascal)
  • T: Temperatur in °C
Berechnung des Sättigungsdampfdrucks:

August-Roche-Magnus-Formel
:

ρ_sat(T) = 6.1078 * 10^((7.5 * T) / (237.3 + T))

Ich hoffe Ihr könnt mir vielleicht bei diesem Problem helfen, weil ich weiß nicht weiter. Ich habe mich auch schon an verschieden KIs gewand jedoch spuckte mir das TIA Portal soviele Fehler aus mit denen ich nicht umgehen konnte. Es fängt bereits mit dem Problem an ob ich das in einen FB oder FC erstellen kann und muss ich abgesehen von meiner PLC Variabel Tabelle die noch weiter zuweisen.

Mit freundlichen Grüßen

Tom50Ger
 
Wenn du noch schreibst um welche Steuerung es sich handelt kann man dir auch helfen. S7 Tia V??.? ???
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja das macht die Sache natührlich viel angenehmer. Vielen Dank schonmal. Aber wie kann ich denn da in dem beispiel jetzt das ganze ergebnis mit einer 10ner potenz erweitern?

Also würde ich nen IN6 erstellen aber was muss ich in den Calculate Block reinschreiben das er die 10^ anwendet ?
 
Lieber rar-101 ich bin wirklich sehr dankbar für deine großartige Hilfe.🤗

Ich hoffe du hast noch einen wunderschönen Abend.

Ich hoffe ich hab das mit der potenz richtig gemacht, ansonsten korriegier mich bitte. 😊
 
Ich hab nur einen Tipp gegeben, gelöst hast es ja du selbst! (y)
Die Berechnung der Potenz sieht so wie ich sehe iO aus.

Kleiner Tipp noch, Merker verschwinden immer mehr aus den Steuerungen, dafür werden immer mehr Datenbausteine verwendet. ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Deine Potenz ist jetzt e^((IN3*IN1)/(IN4+IN1)).

Für die 10er Potenz brauchst du jetzt noch den LN(10).

Also: 10^x= exp(x*ln(10)) in deinem Fall
Code:
IN2*EXP(((IN3*IN1)/(IN4+IN1)) *LN(10))

Wenn du ein Scl Netzwerk verwenden möchtest, wäre es dann:
Code:
Ergebnis:= A * 10 ** X;
 
Zuletzt bearbeitet:
Ich hab nur einen Tipp gegeben, gelöst hast es ja du selbst! (y)
Die Berechnung der Potenz sieht so wie ich sehe iO aus.

Kleiner Tipp noch, Merker verschwinden immer mehr aus den Steuerungen, dafür werden immer mehr Datenbausteine verwendet. ;)
Ja aber du hast mir die Lösung quasi auf dem Silbertablett serviert.

Danke für den Tipp werde ich mir mal anschauen.
😊
 
Zuletzt bearbeitet:
Deine Potenz ist jetzt e^((IN3*IN1)/(IN4+IN1)).

Für die 10er Potenz brauchst du jetzt noch den LN(10).

Also: 10^x= exp(x*ln(10))

Wenn du ein Scl Netzwerk verwenden möchtest, wäre es dann:
Code:
Ergebnis:= A * 10 ** X;
Öhm ich möchte alles verwenden aber bloß kein SCL da blick ich echt nicht durch 😂

Aber wie muss ich das denn da eingeben das dann da wirklich IN2* 10^((IN3*IN1)/(IN4+IN1)) steht.

Also was muss ich da genau eintagen?
Verstehe nicht genau was du damit meinst. 10^x= exp(x*ln(10))

Vielleicht blöd gefragt aber kannst du mir die zeile mal so umschreiben wie du das denkst und ich kopier mir die in den calculator rein.

Auch lieben dank an dich. 😊
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also: 10^x= exp(x*ln(10)) in deinem Fall
Code:
IN2*EXP(((IN3*IN1)/(IN4+IN1)) *LN(10))
Habe es oben auch noch bearbeitet. Reine Mathematik

6.1078 * 10^((7.5 * T) / (237.3 + T))
ist das gleiche wie
6.1078 * e^((7.5 * T) / (237.3 + T)*ln(10))

Die calculate Box kann soweit mir bekannt keine a^x Potenzen, sondern nur e^x (EXP). Und 10^x ist das gleiche wie e^(x*ln(10)).
 
Zuletzt bearbeitet:
Code:
FUNCTION m7k_ClimaticAirData : VOID
    TITLE = 'Calulate climatic air data'

// ==============================================================================
// Berechnet Daten von Luft für die Klimatechnik
// Sättigungsampfdruck    esat  [Pa]     der bei einer Temperatur max. mögliche Dampfdruck
// Partialdruck           ep    [Pa]     Dampfdruck des enthaltenen Wassersdampfes
// absoluter Wassergehalt pD    [kg/m³]  absolute Feuchte
// Wasserdampfsättigung   pDmax [kg/m³]  Wassermenge bei 100%rF
// Enthalphie             H     [kJ/kg]  enthaltene Energiemenge
// Dichte feuchte Luft    AD    [kg/m³]  Air density; Dichte bei T°C, %rF, Umgebungsdruck
//
// Technische Info:
// https://www.schweizer-fn.de/lueftung/feuchte/feuchte.php
//
// verwendete Konstanten:
// Gaskonstante Wasserdampf         : RD  = 461.510 J/(kg*K)
// Gaskonstante trockene Luft       : RtL = 287.058 J/(kg*K)
// Wärmekapazität Luft              : 1.005 kJ/kg
// spez. Wärmekapazität Wasserdampf : 1.86  kJ/(kg*K)
// Verdampfungswärme Wasser         : 2500  kJ/kg
// ==============================================================================
//
// AUTHOR: S.Maag
// DATE: 10/2012
//
// CHANGELOG:
// ------------------------------------------------------------------------------
// DATE         NAME        DESCRIPTION
// ------------------------------------------------------------------------------
// 02.05.2020   S.Maag      Wasserdampfsättigung und Dichte ergänzt       
//   
// ------------------------------------------------------------------------------

    VERSION : '1.0'
    AUTHOR  : 'S.Maag'
    FAMILY  : 'Maagic7'

VAR_INPUT
    rHum    : REAL; // relative Feuchte [%rF]
    rTmpC   : REAL; // Temperatur       [°C]
    rP_mbar : REAL; // Umgebungsdruck   [mbar] [1mbar=100Pa=1hPa] (für Dichteberechnung)
END_VAR

VAR_OUTPUT
    esat  : REAL;  // Sättigungsdampfdruck [Pa] Pascal
    ep    : REAL;  // Partialdruck [Pa] Pascal
    pD    : REAL;  // absoluter Wassergehalt [kg/m³]
    PDmax : REAL;  // Wasserdampf Sättigungskonzentration [kg/m³)
    AD    : REAL;  // Air Density; Dichte der feuchten Luft [kg/m³]
    TP    : REAL;  // Taupunkt °C
    H     : REAL;  // Enthalpie [kJ/kg]
    PWR   : REAL;  // Energieinhalt Wh/m³
END_VAR

VAR_TEMP
    rTmpK : REAL;   // Temperatur Kelvin
    rRfL : REAL;    // Gaskonstante feuchte Luft
    k  : REAL; 
END_VAR

CONST
    cRtL := 287.058; // Gaskonstante trockene Luft : RtL = 287.058 J/(kg*K)
    cRD  := 461.510; // Gaskonstante Wasserdampf   : RD  = 461.510 J/(kg*K)
    cEw  := 2500;    // Verdampfungswärme Wasser   : Ew  = 2500    kJ/kg
END_CONST

BEGIN

// ----------------------------------------------------------------------
//  Temperatur in Kelvin
// ----------------------------------------------------------------------
    rTmpK := rTmpC + 273.15;

// ----------------------------------------------------------------------
//  Sättingungsdampfdruck esat in Pascal
// ----------------------------------------------------------------------

    (*
    ACHTUNG: EXP zur Basis e

                         17.5043 * T°C
    esat = 611,2 * exp (---------------)  ; Temperaturbereich -30..70°C
                          241,2 +T°C
    *)

    // Temperaturbereich
    // -45°C < t < 60
    //   esat := 611.2 * EXP( (17.62 * rTmpC)/(243.12 + rTmpC));

    // Temperaturbereich
    // -30°C < t < 70
    esat := 611.2 * EXP( (17.5043 * rTmpC)/(241.2 + rTmpC));
    
    
// ----------------------------------------------------------------------
//  Wasserdampfsättigungskonzentration
//  Die Wasserdampfsättigungskonzentration entspricht der maximalen Menge
//  an Wasserdampf (f = 1,0), die ein bestimmtes Luftvolumen bei einer
//  bestimmten Temperatur enthalten kann. 
// ----------------------------------------------------------------------

// pDmax = esat (RD * T_Kelvin)
// RD  := 461.510; // Gaskonstante Wasserdampf   J/(kg*K)

    pDmax := esat / (cRD * rTmpK);  // Wasserdampfsättigungskonzentration [kg/m³]

// ----------------------------------------------------------------------
//  Partialdruck ep in Pascal
// ----------------------------------------------------------------------

// ep = esat * RealtiveFeuchte%/100

    ep := esat * rHum /100;

// ----------------------------------------------------------------------
//  absoluter Wassergehalt, absolute Feuchte: pD [kg/m³]
// ----------------------------------------------------------------------

    (*
    
    RD  := 461.510; // Gaskonstante Wasserdampf   J/(kg*K)

                  ep                   
    pD = --------------------
          461.51 * T_Kelvin
    
    *)
    
    pD := ep / (cRD * rTmpK);
    

// ----------------------------------------------------------------------
//  Dichte (feuchter Luft) [kg/m³]   
// ----------------------------------------------------------------------

(*
AD   : Dichte feuchter Luft [kg/m³] (air density)
P    : Umgebungsdruck [Pa]  100Pa = 1mbar
Hum  : realtive Luftfeuchte 0..100%
TK   : Temperatuir Kelvin
RfL  : Gaskonstante feuchte Luft
RtL  : Gaskonstante trockene Luft

AD =  P / (RfL * T_K)   // Dichte feuchter Luft

                        RtL
RfL =  -------------------------------------------
           ( Hum/100 * esat                 )
       1 - ( ---------------- * (1- RtL/Rd) )
           (      P                         )

*)

 //   rRfL := cRtL / ( 1- (rHum/100 * esat / (rP_mbar*100) * (1-cRtL/cRD)) ); // Gaskonstante feuchte Luft

    rRfL := cRtL / ( 1- (rHum * esat / (rP_mbar*10000)  *(1-cRtL/cRD) ) );    // Gaskonstante feuchte Luft
    AD   := rP_mbar*100 / (rRfL * rTmpK);                                     // Dichte der feuchten Luft


// ----------------------------------------------------------------------
//  Taupunkt Temperatur °C 
// ----------------------------------------------------------------------

// Faustformel für Taupunkt: je 5% Fechte fällt der Taupunkt um 1°C
// D.h. Bei 30° und 75%rF liegt der Taupunkt bei ca. 25° (100-75)/5=5°C unter Lufttemp.

(*
    k = ln(Partialdruck/611,2)  // Achtung auf der Webseite ist die Formel falsch angeben, mit Sättingsdruck statt Partialdruck
 
                     k
    Tp = 241.2 * ------------    ; Faktoren für -30..70°C;   243.12 & 17.68 für -45..60°
                 17,5043 - k
 
*)

    k := LN(ep/611.2);
    TP := k/(17.5043-k) * 241.2;
    

// ----------------------------------------------------------------------
//  Enthalphie [kJ/kg] & Power [Wh/m³]
// ----------------------------------------------------------------------

    (*
    Wärmekapazität Luft               : 1.005 kJ/kg
    spez. Wärmekapazität Wasserdampf  : 1.86  kJ/(kg*K)
    Verdampfungswärme Wasser          : 2500  kJ/kg
  
    H = (1.005 * T°C) +  pD*(2500+1.86 * T°C)
    *)
    
    H := (1.005 * rTmpC) +  pD*(2500+1.86 * rTmpC);

    // Umrechung Enthalpie => WattStunden pro m³  1J = 1Ws
    // Pwr[Ws/kg] = H*1000/3600s
    // PWR[Ws/m³] = H*1000/3600s * Dichte[kg/m³)

    PWR := H /3.6 * AD; //[Wh/m³]
END_FUNCTION
 
Zurück
Oben