SOLVAY

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-

Bild 3: Beispielprogramm Sol_del2

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-

Соседние файлы в папке Sol_Del2