Нестационарная теплопроводность / Магистры Термодинамическое подобие / Программы / Solkane / 2012 / Installation Refcalc 7.1 / Sol_Del2 / HilfDelD
.pdfSOLVAY
FLUOR UND DERIVATE GMBH
SOLKANE
Stoffdatenmodul
Delphi
Version 2.0 09/99
Postfach 220 |
Telefon: |
0511/857-0 |
D-30002 Hannover |
Telefax: |
0511/857-21 66 |
Hans-Böckler-Allee 20 |
E-mail: |
andrea.neubert@solvay.com |
D-30173 Hannover |
Internet: |
http://www.solvay.com |
SOLVAY FLUOR UND DERIVATE GmbH |
|
Solkane Stoffdatenmodul |
Delphi2-4 |
Formelzeichen, Abkürzungen und Begriffe
Formelzeichen
Formel- |
Maß- |
Erläuterung |
zeichen |
einheit |
|
|
|
|
c |
J/(kg K) |
Spezifische Wärmekapazität |
h |
J/kg |
Spezifische Enthalpie |
M |
g/mol |
Molare Masse |
p |
Pa |
Druck |
s |
J/(kg K) |
Spezifische Entropie |
T |
K |
Temperatur |
v |
m³/kg |
Spezifisches Volumen |
w |
m/s |
Schallgeschwindigkeit |
κ |
- |
Adiabatenexponent |
λ |
W/(m K) |
Wärmeleitfähigkeit |
η |
Pa s |
Dynamische Viskosität |
σ |
N/m |
Oberflächenspannung |
Abkürzungen und Begriffe
Indizes Erläuterung
c Kritischer Punkt p p = const.
v v = const.
‘Gesätt. Flüssigk., Siedepunkt
‘’ |
Gesättigter Dampf, Taupunkt |
B, b: |
Siedepunkt (Bubble point) |
D, d: |
Taupunkt (Dew point) |
DLL: |
Dynamic Link Library |
Exportroutine: |
In einer DLL implementierte Prozedur oder Funktion, die von dieser DLL |
|
exportiert wird. |
F: |
Flüssige Phase |
G: |
Gasphase |
Importroutine: |
Prozedur oder Funktion, die extern in einer DLL implementiert ist und von |
|
einem Anwenderprogramm aufgerufen wird. |
IPar_: |
Formaler Eingabeparameter. |
Primärfunktion: |
Privat deklarierte Importroutine in einem VBA-Modul |
Refr, ref: |
Formaler Parameter zur Übergabe einer Kältemittelbezeichnung. |
RPar: |
Formaler Parameter, in dem das Ergebnis einer Berechnung übergeben |
|
wird. |
Sekundärfunktion: In einem VBA-Modul implementierte Funktion, die eine Primärfunktion
|
aufruft. |
S_Name |
Platzhalter für einen Funktionsnamen. |
VB |
Visual Basic |
VBA |
Visual Basic for Applications |
-2-
SOLVAY FLUOR UND DERIVATE GmbH |
|
Solkane Stoffdatenmodul |
Delphi2-4 |
Über diese Broschüre
Diese Broschüre wendet sich an jene, die das Herzstück unseres SOLKANE-Programms für Kältemittel - das Modul zur Berechnung thermodynamischer Stoffdaten - in eigenen Windows-Programmen einsetzen möchten.
Seit wir das SOLKANE-Programm als eine moderne Form der Produktinformation über Kältemittel an unsere Kunden weitergeben, haben bereits zahlreiche Interessenten von dieser Möglichkeit Gebrauch gemacht. Allerdings hat die Praxis gezeigt, daß es selbst versierten Programmierern unter Umständen nicht sofort gelingt, das Stoffdaten-Modul in eigene Programme einzubinden. Simple Tippfehler, Portabilitätsprobleme bei unterschiedlichen Entwicklungsplattformen und falsch eingesetzte Funktionen können viel Zeit, Geld und Nerven kosten.
Mit der vorliegenden Broschüre wollen wir einige Erfahrungen weitergeben, die mit dem Einsatz unseres Stoffdatenmoduls in verschiedenen Entwicklungsplattformen gesammelt wurden. Im Vordergrund stehen dabei einfache und leicht nachvollziehbare Methoden. Aus diesem Grunde sind die Erläuterungen bewußt auf relativ einfach handhabbare statische Importmethoden beschränkt.
Im ersten Teil der Broschüre finden Sie Anleitungen und Beispiele zum Import der Stoffdatenfunktionen in Ihre Programme. Ausführliche Funktionsbeschreibungen und Quelltexte sind im Anhang zusammengestellt. Alle Quelltexte und Beispielprogramme sind auch in Form von Dateien auf dem beiliegenden Datenträger enthalten. Dazu gehört auch ein Add-In ”SOLKANE.XLA” für EXCEL 7 (und höher), das Sie sofort einsetzen können.
Es ist kaum möglich, die große Anzahl verschiedener Programmiersprachen (und versionsspezifischer Unterschiede) in ganzer Breite zu berücksichtigen. In dieser ersten Auflage sind Beispiele für die Programmiersprachen
•Delphi , Version 2 bis 4
•MS Visual Basic, Version 6.0
•Visual Basic for Applications (EXCEL 7)
enthalten. Es ist beabsichtigt, nach und nach auch weitere Programmiersprachen einzubeziehen.
Alle Beispiele befassen sich mit der 32-Bit-Version des Stoffdatenmoduls. Auf Unterschiede zwischen der 16und der 32-Bit-Version wird im Text hingewiesen.
-3-
SOLVAY FLUOR UND DERIVATE GmbH |
|
Solkane Stoffdatenmodul |
Delphi2-4 |
Das SOLKANE-Stoffdatenmodul
Funktionen thermischer Eigenschaften
Das SOLKANE-Stoffdatenmodul stellt Stoffdatenfunktionen aller wesentlichen thermischen
Eigenschaften von Kältemitteln für
•die flüssige Phase,
•die Gasphase
•sowie Sättigungstemperatur und -druck am Siedeund Taupunkt
im kältetechnisch wichtigen Zustandsbereich (i.allg. p < pC) zur Verfügung (siehe Anhang). Im einzelnen sind dies Funktionen folgender Eigenschaften:
1. |
Siedeund Taupunktdruck: |
p’ = f(T) und p” = f(T) |
2. |
Siedeund Taupunkttemperatur: |
T’ = f(p) und T” = f(p) |
3. |
Spezifisches Volumen, Flüssigkeit: |
v’ = f(T) |
4. |
Druck, Gasphase: |
p = f(T, v) |
5. |
Spezifisches Volumen, Gasphase: |
v = f(p, T) |
6. |
Temperatur, Gasphase: |
T = f(p, v), T = f(p, h) und T = f(p, s) |
7. |
Spezifische Enthalpie, Flüssigkeit: |
h’ = f(T) |
8. |
Spezifische Enthalpie, Gasphase: |
h = f(T, v) und h = f(T, p) |
9. |
Spezifische Entropie, Flüssigkeit: |
s’ = f(T) |
10. |
Spezifische Entropie, Gasphase: |
s = f(T, v) und s = f(T, p) |
11. |
Spez. Wärmekapazität, Flüssigkeit: |
c’ = f(T) |
12. |
Spez. Wärmekapazität, Gasphase (p=const.): |
cp = f(T, v) und cp = f(T, p) |
13. |
Spez. Wärmekapazität, Gasphase (v=const.): |
cv = f(T, v) und cv = f(T, p) |
14. |
Adiabatenexponent, Gasphase: |
κ = f(T, v) und κ = f(T, p) |
15. |
Schallgeschwindigkeit, Gasphase: |
w = f(T, v) und w = f(T, p) |
16. |
Wärmeleitfähigkeit, Flüssigkeit: |
λ‘ = f(T) |
17. |
Wärmeleitfähigkeit, Gasphase: |
λ = f(T, p) |
18. |
Dynamische Viskosität, Flüssigkeit: |
η‘ = f(T) |
19. |
Dynamische Viskosität, Gasphase: |
η = f(T, p) |
20. |
Oberflächenspannung: |
σ = f(T) |
21. |
Charakteristische Daten (Molare Masse, kritische Temperatur, kritischer Druck, ...) |
-4-
SOLVAY FLUOR UND DERIVATE GmbH |
|
Solkane Stoffdatenmodul |
Delphi2-4 |
Bild 1: Druck-Enthalpie-Diagramm für zeotropes Kältemittelgemisch (schematisch)
T’(p) und T”(p) wiedergegeben.
Die Eigenschaften der Gasphase, einschließlich der Taulinie, können entweder als Funktion f(T,p) oder f(T,v) berechnet werden.
Die Flüssigkeit wird innerhalb des interessierenden Zustandsbereichs als inkompressibel angesehen. Aus diesem Grunde werden Eigenschaften der flüssigen Phase nur als Funktion der Temperatur dargestellt.
Die Sättigungsdrücke bzw. Sättigungstemperaturen am Siedeund Taupunkt werden durch spezielle Funktionen p’(T), p”(T),
Für einkomponentige Kältemittel (z.B. R134a) oder azeotrope Gemische (z.B. R507) gilt p’(T) = p”(T) und T’(p) = T”(p). Wie Bild 1 zeigt, gilt hingegen bei zeotropen Gemischen (z.B. R407C) p’(T) > p”(T) und T’(p) < T”(p). Auf diesen Sachverhalt sei hier besonders hingewiesen, da er eine häufige Fehlerquelle darstellt.
Eine Sonderrolle spielen die nur für die Gasphase gültigen Funktionen T(p,s) und T(p,h). Sie können insbesondere bei der Berechnung von Verdichtungsprozessen sehr effektiv eingesetzt werden.
Struktur
Das SOLKANE-Stoffdatenmodul für 32-Bit-Applikationen besteht aus zwei DLLs (Dynamic Link Libraries) - REF_CALC32.DLL und VAR_LIB32.DLL.
Das Schema in Bild 2 zeigt die prinzipielle Struktur eines Programmes, das mit dem SOLKANE Stoffdatenmodul verbunden ist.
-5-
SOLVAY FLUOR UND DERIVATE GmbH |
|
Solkane Stoffdatenmodul |
Delphi2-4 |
Bild 2: Grundstruktur eines Programmes mit dem SOLKANE-Stoffdatenmodul
In VAR_LIB32.DLL sind die eigentlichen Stoffdatenroutinen enthalten. Die DLL REF_CALC32 stellt eine Schnittstelle zum Anwenderprogramm dar. Sie exportiert die benötigten Stoffdatenfunktionen an das Anwenderprogramm und organisiert intern den Zugriff auf VAR_LIB32.DLL.
Für das Anwenderprogramm ist REF_CALC32.DLL stets das ”aktive” Modul. Es bleibt dem Anwender (bzw. dem Anwenderprogramm) überlassen, wie der Zugriff auf REF_CALC32.DLL organisiert wird. Der Zugriff ist am einfachsten realisierbar, wenn sich REF_CALC32.DLL im gleichen Ordner wie das ausführbare Programm oder im Windows- System-Verzeichnis befindet, da das ausführbare Programm automatisch an diesen Positionen nach der DLL sucht.
Weiterhin muß sichergestellt sein, daß die DLL REF_CALC32 auf VAR_LIB32 zugreifen kann. Grundsätzlich sollten sich daher beide DLLs im gleichen Ordner befinden.
Das SOLKANE-Stoffdatenmodul für 16-Bit-Applikationen besteht aus den Komponenten REF_CALC.DLL und VAR_LIB.DLL.
Allgemeine Syntax der Stoffdatenfunktionen
Das SOLKANE-Stoffdatenmodul ist in BORLAND DELPHI® erstellt. In REF_CALC32.DLL werden insgesamt 34 Funktionen (Exportroutinen) thermodynamischer Eigenschaften und Transportgrößen bereitgestellt. Die allgemeine Syntax dieser Funktionen lautet:
Function S_Name(Refr [;IPar_1] [;IPar_2] ; RPar)
Die Funktionen S_Revision (siehe Anhang) ist die einzige Ausnahme von dieser Regel.
Funktionsname:
Name ist ein Platzhalter für einen Funktionsbezeichner. Der komplette Funktionsname wird aus dem Bezeichner und einer vorangestellten Zeichenkette S_ gebildet.
Eingabedaten:
Refr: Null terminierter String, enthält Kältemittelbezeichnung (z.B. ‘R134a’, ‘R407C’, ...)
-6-
SOLVAY FLUOR UND DERIVATE GmbH |
|
Solkane Stoffdatenmodul |
Delphi2-4 |
IPar_n: 8 Byte Gleitkomma, enthält unabhängige Parameter (z.B. Druck, Temperatur usw.)
Die Anzahl der Eingabedaten hängt von dem jeweiligen Problem ab.
Ausgabedaten:
RPar: 8 Byte Gleitkomma, gibt Ergebnis der Berechnung zurück (abhängiger Parameter). RPar ist im allgemeinen der letzte Parameter der Parameterliste.
Rückgabewert der Funktion:
2 Byte boolescher Parameter. Der Rückgabewert der Funktion ist der Fehlerstatus der Berechnung:
TRUE (1) : Ein Fehler ist aufgetreten.
FALSE (0) : Es ist kein Fehler (!!) aufgetreten.
Die Eingabedaten sind per Wertkopie, die Ausgabedaten per Referenz zu übergeben.
Für jede thermodynamische Eigenschaft oder Transportgröße ist eine eigene Funktion vorhanden.
Funktionsimport aus dem SOLKANE-Stoffdatenmodul
Delphi
Grundsätze
1.Das Anwenderprogramm muß Zugriff auf die DLLs REF_CALC32 und VAR_LIB32 haben. Beide DLLs sollten sich deshalb im gleichen Ordner wie das Anwenderprogramm oder im Windows-System-Verzeichnis befinden.
2.Die zu importierenden Funktionen (Importroutinen) sind im Anwenderprogramm zu vereinbaren.
3.Die im Anwenderprogramm vereinbarte Importroutine muß eindeutig auf eine in REF_CALC32.DLL implementierte Funktion (Exportroutine) weisen. REF_CALC32.DLL unterstützt sowohl den Import über die Name-Klausel als auch über die Index-Klausel.
4.Die Importroutinen müssen im Anwenderprogramm mit den Anweisungen stdcall
(Windows-Standardaufrufkonvention) und external vereinbart sein.
5.Die in den Importroutinen deklarierten Parametertypen müssen mit denen der Exportroutinen in REF_CALC32.DLL kompatibel sein.
-7-
SOLVAY FLUOR UND DERIVATE GmbH |
|
Solkane Stoffdatenmodul |
Delphi2-4 |
6.Importund Exportroutinen müssen hinsichtlich der vereinbarten Art der Parameterübergabe (per Wertkopie oder per Referenz) übereinstimmen.
Der Anhang enthält eine komplette Zusammenstellung aller für Delphi gültigen Funktionsvereinbarungen. Falls der die Importfunktionen über die Index-Klausel vereinbart werden, ist der in der Spalte ”Index” verzeichnete Wert zu verwenden.
Ein Listing der Importvereinbarungen aller von REF_CALC32.DLL bereitgestellten Funktionen ist im Anhang enthalten.
In der beigefügten Unit ImportD.pas sind die Importvereinbarungen aller von REF_CALC32.DLL bereitgestellten Funktionen komplett implementiert.
Syntax
Für die Vereinbarung der Importroutinen gilt folgende allgemeine Syntax:
1.Import über die Name-Klausel:
Function S_Name(Refr:pChar [[;IPar_1][,IPar_2]:Double]; var RPar):
WordBool;
stdcall; external 'ref_calc32.dll'
Bei dieser Vereinbarungsform wird die Exportroutine über den Namen der Funktion
(S_Name) identifiziert.
2.Import über die Index-Klausel:
Function myName(Refr:pChar [[;IPar_1][,IPar_2]:Double]; var RPar):
WordBool;
stdcall; external 'ref_calc32.dll' Index Nr;
In dieser Vereinbarung wird die Exportfunktion über den Index (Nr) identifiziert. Der Name der Importfunktion (myName) ist frei wählbar.
Hinweis: Die obige Syntax gilt für den statischen Import von Funktionen.
Parametertypen
Folgende Parametertypen sind bezüglich der vom SOLKANE-Stoffdatenmodul bereitgestellten Exportroutinen in Delphi 2-4 zuweisungskompatibel (vgl. auch Abschnitt Beispiel):
• |
Nullterminierter String: |
pChar |
|
• |
8 |
Byte Gleitkommazahl: |
Double; |
• |
2 |
Byte Boolean: |
WordBool (Werte: true und false) oder |
-8-
SOLVAY FLUOR UND DERIVATE GmbH |
|
Solkane Stoffdatenmodul |
Delphi2-4 |
Integertypen (z.B. Word, Integer; Werte: 0 und 1)
Die Übergabeart ”per Referenz” wird durch das Schlüsselwort ”var” erzwungen. Das Ergebnis einer Berechnung ist jeweils per Referenz zu übergeben.
Beispiel
Es sollen die Drücke und spezifischen Enthalpien des Kältemittels R407C bei Sättigungsbedingungen und 50 °C berechnet werden. Die Funktionen werden statisch über die Name-Klausel importiert. Im Falle einer fehlerhaften Berechnung wird die Routine Emessage aufgerufen.
Implementation:
{Schritt 1: Vereinbarung der Importroutinen}
Interface
{Funktion Nr. 6: Siedepunktdruck}
Function S_p_b(Refr: pChar; T: double; var p: double): WordBool; stdcall; external 'ref_calc32.dll';
{Funktion Nr. 7: Taupunktdruck}
Function S_p_d(Refr: pChar; T: double; var p: double ): WordBool; stdcall; external 'ref_calc32.dll';
{Funktion Nr. 14: Enthalpie, Flüssigkeit}
Function S_h_l(Refr: pChar ; T: double; var h_L: double ): WordBool; stdcall; external 'ref_calc32.dll';
{Funktion Nr. 15: Enthalpie h(T,p), Gasphase}
Function S_h_v(Refr: pChar ; T,p: double; var h_v: double ): WordBool;
stdcall; external 'ref_calc32.dll'; |
|
{Schritt 2: Implementation Berechnung (Auszug)} |
|
Implementation |
|
... |
|
Procedure CalcValues; |
|
var T, pB, pD, hB, hD: double; |
|
begin |
|
T:= 50; |
|
{Berechnung} |
|
if S_p_B('R407C', T + 273.15, pB) then EMessage; |
{Siedepunktdruck pB in Pa} |
if S_p_D('R407C', T + 273.15, pD) then EMessage; |
{Taupunktdruck pD in Pa} |
if S_h_L('R407C', T + 273.15, hB) then EMessage; |
{Enthalpie,Fl. hB in J/kg} |
if S_h_v('R407C', T + 273.15, pD, hD) then EMessage;
{Enthalpie,gesätt. Dampf: hD=f(T,pD) in J/kg}
...
{Ausgabe T, pB, pD, hB, hD}
...
end;
...
Ergebnis): |
|
|
|
|
T [°C] |
pB [Pa] |
pD [Pa] |
hB [J/kg] |
hD [J/kg] |
50 |
2210451,3 |
1984604,2 |
276328,4 |
425604,5 |
-9-
SOLVAY FLUOR UND DERIVATE GmbH |
|
Solkane Stoffdatenmodul |
Delphi2-4 |
Delphi 2-Beispielprojekt ”SOL_DEL2”
Das unter BORLAND/INPRISE Delphi 2 erstellte Projekt SOL_DEL2 zeigt anhand von Beispielen, wie die Funktionen des SOLKANE-Moduls in einer DelphiEntwicklungsumgebung eingesetzt werden.
Das gesamte Projekt besteht aus folgenden Dateien:
1.Sol_del2.dpr, Sol_del2.dof, Sol_del2.res: Delphi-Projektdateien
2.Test_ob.pas, Test_ob.dfm, Test_ob.dcu: Formulardateien
3. |
ImportD.pas, ImportD.dcu |
Unit mit Vereinbarungen der externen |
|
Funktionen |
|
4. |
Sol_del2.exe |
Ausführbare Programmdatei |
Die DLLs REF_CALC32 und VAR_LIB32 sollten entweder in den Projektordner oder in das Windows-System-Verzeichnis kopiert werden.
Das aus dem Sol_del2-Projekt erstellte ausführbare Programm Sol_del2.exe können Sie selbstverständlich auch für einen ausführlichen Test des SOLKANE-Moduls nutzen.
Mit Hilfe der beiden Auswahlboxen
”Refrigerant” und ”Function” (siehe Bild 3) wählen Sie Kältemittel und Zustandsfunktion aus. Die jeweils gewünschten Eingabedaten sind in die Editierfelder ”Temperature” bis
”Entropy” einzutragen. ”Calculate” startet die Berechnung. Das Ergebnis wird im Feld ”Result” dargestellt. Das
Feld ”Error” gibt den Fehlerstatus der letzten Berechnung an (FALSE bedeutet ”kein Fehler” !!).
Für jede im SOLKANE-Modul implementierte Funktion ist ein entsprechendes Beispiel in Sol_del2 vorhanden.
-10-