VBA in CHEMCAD 6 Kinetischer Reaktor und VBA Unit Übungen
VBA ist die Programmiersprache Visual Basic for Application. Diese Programmiersprache ist bekannt von Excel. Man findet sie dort, indem man F11 drückt. Damit lassen sich häufig verwendete Funktionen sinnvoll erstellen. In CHEMCAD ist VBA ebenso enthalten, unter der Lizenz von MS. Damit lassen sich diverse Funktionen programmieren, z.B. kinetische Reaktionen und eigene Unit Operations. An diesen beiden Beispielen soll VBA in CHEMCAD durch Übungen erläutert werden.
Übung 1: Definieren der kinetischen Reaktion im Reaktor KREA durch die VBA Funktion. 1. Starten des Jobs Krea‐VBA.cc6. 2.
Anzeige des Flowsheets.
Feed 1
1
2
Chemstations Deutschland GmbH • Augustastr. 12 • 46483 Wesel • Tel. +49‐281‐33991‐0 • Fax +49‐281‐33991‐33 E‐Mail:
[email protected] • www.chemstations.de • Geschäftsführer: Nathan D. Massey, Wolfgang Schmidt
3. Eingabe des Feeds
Chemstations Deutschland GmbH • Augustastr. 12 • 46483 Wesel • Tel. +49‐281‐33991‐0 • Fax +49‐281‐33991‐33 E‐Mail:
[email protected] • www.chemstations.de • Geschäftsführer: Nathan D. Massey, Wolfgang Schmidt
4. Öffnen des Krea Fenster 1:
Chemstations Deutschland GmbH • Augustastr. 12 • 46483 Wesel • Tel. +49‐281‐33991‐0 • Fax +49‐281‐33991‐33 E‐Mail:
[email protected] • www.chemstations.de • Geschäftsführer: Nathan D. Massey, Wolfgang Schmidt
5. Wählen einer eigenen Reaktionskinetik: Kinetic rate expression = Define each reaction, Ok.
6. Kinetic Rate Expression = User – VBA; Function = Reaction.RxnTemplate, Composition type = activity
Chemstations Deutschland GmbH • Augustastr. 12 • 46483 Wesel • Tel. +49‐281‐33991‐0 • Fax +49‐281‐33991‐33 E‐Mail:
[email protected] • www.chemstations.de • Geschäftsführer: Nathan D. Massey, Wolfgang Schmidt
7. Wählen des VBA Programms im CHEMCASD Explorer, Visual Basic.
Chemstations Deutschland GmbH • Augustastr. 12 • 46483 Wesel • Tel. +49‐281‐33991‐0 • Fax +49‐281‐33991‐33 E‐Mail:
[email protected] • www.chemstations.de • Geschäftsführer: Nathan D. Massey, Wolfgang Schmidt
8. Programmieren der kinetischen Funktion
9. Basisgleichung = ArheniusRate = fExpActE * fFreqFac. Die 2 Variablen fExpActE und fFreqFac sind die Activation Energy und der Frequency factor aus dem Menü.
10. For iComp = 0 to (nComponents ‐1) bildet eine Schleife, bei der die ArheniusRate der Components berechnet wird.
11. Einige Zeilen weiter erfolgt diese Schleife noch einmal, jedoch für die Adhäsionsberechnung nach Langmuir. Dadurch wird fAdsTerm berechnet.
12. In der Formel pRateForm = ArheniusRate * fAdsTerm wird die oben berechnete ArheniusRate mit der fAdsTerm kombiniert. pRateForm ist das Endergebnis, welches nach CHEMCAD zurückgegeben wird.
Chemstations Deutschland GmbH • Augustastr. 12 • 46483 Wesel • Tel. +49‐281‐33991‐0 • Fax +49‐281‐33991‐33 E‐Mail:
[email protected] • www.chemstations.de • Geschäftsführer: Nathan D. Massey, Wolfgang Schmidt
13. Zum Testen der Berechnung wählt man im VBA Fenster eine Zeile im Programm aus und klickt dann F9.
14. Starten der Berechnung in CHEMCAD.
15. Die Berechnung wird an der markierten Stelle abgehalten
16. Drücken der F8 Taste und setzen des Cursers auf ArheniusRate. Man erkennt das Ergebnis. Dieses wird protokolliert.
Chemstations Deutschland GmbH • Augustastr. 12 • 46483 Wesel • Tel. +49‐281‐33991‐0 • Fax +49‐281‐33991‐33 E‐Mail:
[email protected] • www.chemstations.de • Geschäftsführer: Nathan D. Massey, Wolfgang Schmidt
17. Fortsetzen der Berechnung mit F8, Protokollieren der Ergebnisse. Bei der Auswertung ist zu beachten, dass in VBA in internen Units (Englisch) gerechnet wird.
18. Vergleich der Programm‐Ergebnisse mit denen in CHEMCAD
St r eam No. St r eam Name Temp C Pr es bar Ent h MJ / h Vapor mol e f r ac. Tot al kmol / h Tot al kg/ h Tot al st d L m3/ h Tot al st d V m3/ h Fl owr at es i n kmol / h Met hane Wat er Car bon Monoxi de Hydr ogen
1 Feed 200. 0000* 20. 0000* - 304. 96 1. 0000 2. 0000 34. 0580 0. 0715 44. 83 1. 0000 1. 0000 0. 0000 0. 0000
2 200. 0000 20. 0000 - 156. 38 1. 0000 3. 3802 34. 0576 0. 1059 75. 76 0. 3099 0. 3099 0. 6901 2. 0702
Chemstations Deutschland GmbH • Augustastr. 12 • 46483 Wesel • Tel. +49‐281‐33991‐0 • Fax +49‐281‐33991‐33 E‐Mail:
[email protected] • www.chemstations.de • Geschäftsführer: Nathan D. Massey, Wolfgang Schmidt
Übung 2: Berechnen eines Flashs in VBA 1. Starten des Jobs VB‐TPFLash.cc6 2. Flowsheet This flowsheet uses custo m VBA cod e to model a TPFlash. The un itop di alog and parameter files (.lab, .map, .my) were not cus tomized. The custom VBA cod e assu mes: -there is only one inlet -there are two outlets -the user has specified a T and P in the d ialog
5 1
4 6
2
2
1
3
Darin findet man unten den „normalen“ Flash und darüber das Symbol für die VBA Unit.
3. Anzeige der Daten des „normalen“ Flashs
St r eam No. St r eam Name Temp C Pr es bar Ent h MJ / h Vapor mol e f r ac. Tot al kmol / h Tot al kg/ h Tot al st d L m3/ h Tot al st d V m3/ h Fl owr at es i n kg/ h Wat er
1
2
3
10. 0000* 1. 0342* - 2567. 0 0. 00000 9. 0718 290. 6801 0. 3441 203. 33
82. 2222 1. 0342 - 1562. 8 1. 0000 6. 6427 227. 1241 0. 2723 148. 89
82. 2222 1. 0342 - 675. 68 0. 00000 2. 4291 63. 5561 0. 0719 54. 45
81. 7147
50. 6662
31. 0485
Chemstations Deutschland GmbH • Augustastr. 12 • 46483 Wesel • Tel. +49‐281‐33991‐0 • Fax +49‐281‐33991‐33 E‐Mail:
[email protected] • www.chemstations.de • Geschäftsführer: Nathan D. Massey, Wolfgang Schmidt
Et hanol
208. 9655
176. 4579
32. 5076
4. Anzeige der Daten der VBA Unit
St r eam No. St r eam Name Temp C Pr es bar Ent h MJ / h Vapor mol e f r ac. Tot al kmol / h Tot al kg/ h Tot al st d L m3/ h Tot al st d V m3/ h Fl owr at es i n kg/ h Wat er Et hanol
4
5
6
10. 0000* 1. 0342* - 2567. 0 0. 00000 9. 0718 290. 6801 0. 3441 203. 33
82. 2222 1. 0342 - 1562. 8 0. 00000 6. 6427 227. 1241 0. 2723 148. 89
82. 2222 1. 0342 - 675. 68 0. 00000 2. 4291 63. 5561 0. 0719 54. 45
81. 7147 208. 9655
50. 6662 176. 4579
31. 0485 32. 5076
5. Prüfen der Ergebnisse auf Übereinstimmung 6. Öffnen der VBA Unit und des Algorithmus
Chemstations Deutschland GmbH • Augustastr. 12 • 46483 Wesel • Tel. +49‐281‐33991‐0 • Fax +49‐281‐33991‐33 E‐Mail:
[email protected] • www.chemstations.de • Geschäftsführer: Nathan D. Massey, Wolfgang Schmidt
Links im Explorer wird unter Visual Basic UnitOps, TPFlashSep angeklickt. Es öffnet sich das VBA Programm.
7. Set Befehle stellen verkürzte Namen zu CHEMCAD Funktionen her. „objEntry“ bedeutet, dass in CHEMCAD eine Tätigkeit ausgeführt wird. objEntry.GetCurUnitOp bedeutet, dass Daten der der VBA Unit Op ermittelt werden. Diese Daten stehen in „objCurUnit“ zur Verfügung.
8. Setzen der F9 Taste auf den 1. Set Befehl und Starten den VBA Unit in CHEMCAD.
9. Prüfen „lngCompCount = objStrInfo.GetNoOfComponents“ = Anzahl der Components = 2. Diesen und alle nachstehenden Ergebnisse sind zu protokollieren.
10. Prüfen “lngCurUnitOpID = objCurUnit.GetCurUnitOpID” = Unit Nr. Der VBA Unit = 2.
11. Prüfen „nInlets = objCurUnit.GetNoOfInlets“ = Anzahl der Inlet (Feedsträöme) Ströme an =1.
12. Prüfen „lngStreamID = inletIDs(1)“ = Nr. des Feedstroms der VBA Unit = 4.
13. Prüfen „objStrInfo.GetStreamByID“ = Feedstromdaten auf alle Daten in der Klammer.
14. Prüfen „sngTotInletEntH = sngEnthBtu_Hr“ = Enthalpie des Feedstroms = 2433080.
15. Prüfen „sngTempR = sngUnitOpPar(1 + 1)“ = Temperatur des Feeds = 639,67 R.
16. Prüfen „sngPresPSIA = sngUnitOpPar(2 + 1)“ = Druck des Feedstromds = 15 psia.
17. Prüfen des Flashfeedtreams „objFlash.DefineFeedStream” auf alle Daten in der Klammer.
18. Prüfen der Flashberechnung „objFlash.CalculateTPFlash “ auf alle Daten in der Klammer.
19. Prüfen des Flash‐Flüssigstroms „objFlash.GetLiquidStream“ auf alle Daten in der Klammer.
Chemstations Deutschland GmbH • Augustastr. 12 • 46483 Wesel • Tel. +49‐281‐33991‐0 • Fax +49‐281‐33991‐33 E‐Mail:
[email protected] • www.chemstations.de • Geschäftsführer: Nathan D. Massey, Wolfgang Schmidt
20. Prüfen des Flash‐Gasstroms „objFlash.GetVaporStream“ auf alle Daten in der Klammer.
21. Prüfen der Enthalpie „sngTotOutletEnthH“.
22. Prüfen des „objStrInfo.PutStreamByID“ = liquid und vapor Stream auf alle Daten in der Klammer.
23. Prüfen der „sngUnitOpPar(3 + 1)“ Enthalpie. 24. Prüfen „uopInfo.PutUnitOpSpecByID“ auf die Daten in der Klammer: sendet die Ergebnisse der Flashberechnen an die VBA Unit an dessen Menu zurück. Es erscheint nun das Fenster:
Darin sind Temperatur, Pressure und Heat durty die Specs ID 2‐4 zugewiesen. 1 = die ID Nr. selber. Die Ergebnisse werden hier in den SI Einheiten dargestellt, die man selber gewählt hatte. Diese sind mit denen der Protokollliste zu vergleichen. Notfalls stelle man von SI auf Englisch um.
Chemstations Deutschland GmbH • Augustastr. 12 • 46483 Wesel • Tel. +49‐281‐33991‐0 • Fax +49‐281‐33991‐33 E‐Mail:
[email protected] • www.chemstations.de • Geschäftsführer: Nathan D. Massey, Wolfgang Schmidt
Die Bearbeitung dieses Menus wird mit Hilfe der Utility Dialog Editor bearbeitet. Dazu steht die Dokumentation über Dialog Editor zur Verfügung.
25. Nachdem alle Programmergebnisse dokumentiert sind, werden diese mit den CHEMCAD‐ Ergebnissen verglichen.
26. Man wiederhole diese Übung und vergleiche die VBA Befehle mit denen in der Dokumentation CC5CLASS.DOC.
Chemstations Deutschland 2010‐02‐22 Version 1.0 Wolfgang Schmidt
Chemstations Deutschland GmbH • Augustastr. 12 • 46483 Wesel • Tel. +49‐281‐33991‐0 • Fax +49‐281‐33991‐33 E‐Mail:
[email protected] • www.chemstations.de • Geschäftsführer: Nathan D. Massey, Wolfgang Schmidt