+ All Categories
Home > Documents > Aspen-Getting Started Customizing Unit Operation Model

Aspen-Getting Started Customizing Unit Operation Model

Date post: 29-May-2018
Category:
Upload: surya-budi-widagdo
View: 222 times
Download: 0 times
Share this document with a friend
90
Aspen Plus Getting Started Customizing Unit Operation Models
Transcript
Page 1: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 1/90

Aspen Plus

Getting Started Customizing Unit Operation Models

Page 2: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 2/90

Version Number: V7.1 

January 2009

Copyright (c) 1981-2009 by Aspen Technology, Inc. All rights reserved.

Aspen Plus, aspenONE, the aspen leaf logo and Plantelligence and Enterprise Optimization are trademarks orregistered trademarks of Aspen Technology, Inc., Burlington, MA.

All other brand and product names are trademarks or registered trademarks of their respective companies.

This document is intended as a guide to using AspenTech's software. This documentation contains AspenTech

proprietary and confidential information and may not be disclosed, used, or copied without the prior consent of AspenTech or as set forth in the applicable license agreement. Users are solely responsible for the proper use of the software and the application of the results obtained.

Although AspenTech has tested the software and reviewed the documentation, the sole warranty for the softwaremay be found in the applicable license agreement between AspenTech and the user. ASPENTECH MAKES NOWARRANTY OR REPRESENTATION, EITHER EXPRESSED OR IMPLIED, WITH RESPECT TO THIS DOCUMENTATION,ITS QUALITY, PERFORMANCE, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.

Aspen Technology, Inc.200 Wheeler RoadBurlington, MA 01803-5501

USAPhone: (1) (781) 221-6400Toll Free: (1) (888) 996-7100URL: http://www.aspentech.com

Page 3: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 3/90

Contents iii

ContentsWho Should Read this Guide ...................................................................................1 Introducing Aspen Plus...........................................................................................2 

Sessions in this Manual................................................................................... 2 Files Created in these Sessions ........................................................................ 3 Integration Features for Custom Unit Operation Models ....................................... 4 Aspen Plus Excel Unit Operations...................................................................... 4 Aspen Plus Fortran Models............................................................................... 4 Creating GUI forms for Proprietary Models......................................................... 4 Supporting Files............................................................................................. 5 Related Documentation................................................................................... 5 Technical Support .......................................................................................... 5 

1 Creating an Excel Unit Operation Model ..............................................................7 Defining the Simulation................................................................................... 8 Setting Up the Model in Aspen Plus................................................................... 8 

To Start Aspen Plus .............................................................................. 8 To Specify the Application Type and Run Type for the New Run................... 9 Build the Process Flowsheet ..................................................................10 Enter Title, Components, Base Method, and Feed Specifications .................10 Enter Excel Path and User Array Data.....................................................12 Setup a Product Stream Flash ...............................................................13 

Setting Up the Excel Model .............................................................................13 Copy and Examine the Excel Template ...................................................14 Edit the Excel Sheets ...........................................................................15 Enter Membrane Model Equations and Parameters ...................................17 

Running the Excel Model ................................................................................18 Examining Simulation Results .........................................................................19 

To View the Results from the Excel Model ...............................................19 To View the Block Results.....................................................................22 

2 Customizing the Excel/Aspen Plus Interface.....................................................25 Revising the Excel Model................................................................................25 Revising the User Subroutine..........................................................................27 Code Listing – Subroutine MEM2 .....................................................................27 Code Description – Subroutine MEM2 ...............................................................35 Compiling and Linking the Subroutine ..............................................................37 

Compile the Excel Interface Subroutine ..................................................37 Create a Shared Library .......................................................................38 

Running the Simulation..................................................................................38 Results from the Custom Excel Model...............................................................40 

Page 4: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 4/90

iv Contents

3 Customizing the Aspen Plus Model Library........................................................43 Creating a Model Library ................................................................................43 

Create an Empty Custom Model Library ..................................................44 Create a Template for Your Custom Model ..............................................45 Create the Custom Model from the Template...........................................45 

Editing the Custom Model...............................................................................49 Create a Custom Icon ..........................................................................50 Create References to the Real and Integer Parameters .............................51 

Inserting the New Model and Running the Simulation .........................................52 Insert the New Model...........................................................................52 Check and Edit Setup Sheets ................................................................53 Compile, Link, and Run ........................................................................54 

4 Creating an Aspen Plus Fortran Model...............................................................57 Putting the Model Equations in the User Subroutine ...........................................58 Code Listing – Subroutine HFUM......................................................................58 Code Description – Subroutine HFUM ...............................................................63 Compiling and Linking the Subroutine ..............................................................65 Running the Simulation..................................................................................65 Results from the Custom Fortran Model ............................................................67 

5 Creating an Aspen Plus Custom Form................................................................68 Setting Up the Visual Basic Environment ..........................................................68 Creating the Visual Basic Form........................................................................70 

Create Three Named Controls ...............................................................70 Build the Tab Control ...........................................................................72 Build the Input Control.........................................................................74 Build the Results Control ......................................................................78 

Integrating Forms with Aspen Plus...................................................................79 Create OCR and OCX Files for Your Model ...............................................79 Register the OCX File...........................................................................81 

Testing the New Form....................................................................................83 Results from the Custom Form........................................................................84 

6 Connecting to the Aspen Plus Simulation Engine...............................................86 

Page 5: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 5/90

Who Should Read this Guide 1

Who Should Read this Guide

This guide is suitable for advanced Aspen Plus users who want to customize

the unit operation models available in Aspen Plus and create new models.Users should be familiar with the procedures covered in Aspen Plus Getting

Started Building and Running a Process Model before starting these examples.

Page 6: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 6/90

2 Introducing Aspen Plus

Introducing Aspen Plus

Aspen Plus offers the option of using custom or proprietary models in Aspen

Plus simulations. The tutorials in this guide illustrate key features of thiscapability by building a simulation based on an external membrane model and

performing the model calculations using either an Excel file or a Fortransubroutine.

This guide assumes that you are have installed Aspen Plus, Fortran

development software, Visual Basic development software, and MicrosoftExcel on your computer. This guide is designed for advanced users of Aspen

Plus who have a working knowledge of Fortran, Visual Basic, and Excel.

Even though most users of the customizing options described in this guide are

highly experienced with Aspen Plus, anyone who has completed the tutorialsin Getting Started Building and Running a Process Model , will be able to work

through the tutorials here by following the step-by-step instructions.

Sessions in this ManualFollow the steps in this chapter: To learn how to:

1 Creating an Excel Unit OperationModel

Create a simulation that uses an Excel modelto determine product stream properties.

2 Customizing the Excel/Aspen PlusInterface

Alter the Fortran interface subroutine toaccommodate an expanded Excel model.

3 Customizing the Aspen PlusModel Library

Create a model with pre-defined parametersfor repeated use.

4 Creating an Aspen Plus FortranModel

Perform model calculations in a Fortransubroutine instead of in an Excel spreadsheet.

5 Creating an Aspen Plus Custom

Form

Create your own Aspen Plus GUI forms to

handle input and results for your custommodels.

Page 7: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 7/90

Introducing Aspen Plus 3

Files Created in these SessionsFilename Chpt Description

Membrane1.bkp 1 USER2 model, Excel calculations, defaultinterface.

MemCalc_PreRun.xls 1 Excel file for use with default interface(before simulation run).

MemCalc.xls 1 Excel file after the run.

MemCalc_Custom_PreRun.xls 2 Excel file w/ viscosity and cgs units for usewith custom interface.

MemCalc_Custom.xls 2 Excel file after the run.

Mem2.f /obj 2 Code for custom interface.

Membrane2_List_OBJs.opt 2 DLOPT file w/ location of Mem2.obj.

Membrane2.dll 2 DLL file w/ Mem2 subroutine.

Membrane2_Loc_dll.opt 2 DLOPT w/ location of Membrane2.dll.Membrane2.bkp 2 USER2 model, Excel calculations, custom

interface.

Ultrafiltration.apm 3 Custom Model Library created by the user.

Mem2Vars.f/obj 3 Code written by Aspen Plus for namedreferences.

Membrane2_List_OBJs.opt 3 DLOPT w/ location of Mem2.obj andMem2Vars.obj.

Membrane2.dll 3 DLL w/ Mem2 and Mem2Vars

Membrane2_CM.bkp 3 Custom model, Excel calculations custominterface.

HFUM.f/obj 4 Code w/ model equations.

HFUM_List_OBJs.opt 4 DLOPT w/ location of HFUM.obj andMem2Vars.obj.

HFUM.dll 4 DLL w/ HFUM and Mem2Vars.

HFUM_Loc_dll.opt 4 DLOPT w/ loc. of HFUM.dll.

HFUM.bkp 4 Custom model, Fortran calculations, nointerface.

ProjectFile.vbp,TabControlFile.ctl,InputControlFile.ctl,ResultsControlFile.ctl

5 Visual Basic files to for custom Aspen Plusform.

ProjectFile.ocx 5 Visual Basic OCX file containing customform.

ModelName.ocx 5 Renamed Visual Basic OCX file to be linkedto a particular model.

ModelName.ocr 5 Text OCR file containing specifications forcustom form.

HFUM_CF.bkp 5 Custom model + custom form, Fortrancalculations, no interface.

Page 8: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 8/90

4 Introducing Aspen Plus

Integration Features forCustom Unit Operation ModelsAspen Plus offers powerful features that make it easy to use Aspen Plus

simulations containing proprietary models. You can create:•  Custom Model Libraries,

•  user-defined variables that become part of the Aspen Plus data structureas an alternative to Real and Integer arrays,

•  custom icons to better represent the equipment that your models

describe, and

•  standard and default model input templates.

Aspen Plus Excel Unit

OperationsYou can use an Excel Workbook as an Aspen Plus user-defined unit operationmodel. Once you identify the input variables and physical properties used by

Excel, you can develop and test the model within Excel without performing

iterative compile and link steps that are required when developing and testinga Fortran model. You can utilize the full power of Excel including all of its

built-in functions and specialized Visual Basic routines that are provided in theAspen Plus Excel template.

Aspen Plus Fortran ModelsAspen Plus provides utilities for convenient read and write access to nameduser-defined variables from within the Fortran user model routine. This

simplifies user-defined parameter mapping into external user routines.

You can develop rich data structures for user-defined unit operation models

involving integer, real and character data. The parameters can either bescalar or vector. Vector data can be automatically dimensioned based on nine

standard lengths such as Number of Components or Number of Inlet Streams,or can be dynamically dimensioned based on a user-defined integer variable.

Creating GUI forms forProprietary ModelsYou can create your own user interface forms for proprietary or custommodels using the same environment employed to create built-in Aspen Plus

forms. User-defined variables can be easily linked to these forms. The forms

can have a free format layout to suit the needs of your model.

Page 9: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 9/90

Introducing Aspen Plus 5

The ability to create forms, combined with the templating capabilities outlined

in this guide, is a very powerful customization capability. For example, it is

possible to create forms for an existing plant unit that hides designparameters for users interested in performing rating only calculations. These

forms are easily inserted into Aspen Plus by registering the OCX file created

by Visual Basic using the Aspen Plus ApFormSetup utility.

Visual Basic template files are distributed with Aspen Plus to help reduce the

development effort.

Supporting FilesThe Aspen Plus backup, Excel, Fortran and Visual Basic files described in this

book are delivered in the GUI\xmp directory of the Aspen Plus installation.

Related DocumentationTitle Content

Aspen Plus Getting Started Building andRunning a Process Model

Tutorials covering basic use of Aspen Plus. A prerequisite for theother Getting Started guides

Aspen Plus Getting Started Using EquationOriented Modeling

Tutorials covering the use of equation-oriented models inAspen Plus

Aspen Plus Getting Started ModelingProcesses with Solids

Tutorials covering the Aspen Plusfeatures designed to handle solids

Aspen Plus Getting Started ModelingProcesses with Electrolytes

Tutorials covering the Aspen Plusfeatures designed to handle

electrolytesAspen Plus Getting Started ModelingPetroleum Processes

Tutorials covering the Aspen Plusfeatures designed to handlepetroleum

Aspen Engineering Suite InstallationManual

Instructions for installing AspenPlus and other Aspen EngineeringSuite products

Aspen Plus User Guide Procedures for using Aspen Plus

Aspen Plus User Models Specifications for custom models

Technical SupportAspenTech customers with a valid license and software maintenanceagreement can register to access the online AspenTech Support Center at:

http://support.aspentech.com 

This Web support site allows you to:

•  Access current product documentation

•  Search for tech tips, solutions and frequently asked questions (FAQs)

Page 10: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 10/90

6 Introducing Aspen Plus

•  Search for and download application examples

•  Search for and download service packs and product updates

•  Submit and track technical issues

•  Send suggestions

•  Report product defects

•  Review lists of known deficiencies and defects

Registered users can also subscribe to our Technical Support e-Bulletins.

These e-Bulletins are used to alert users to important technical support

information such as:

•  Technical advisories

•  Product updates and releases

Customer support is also available by phone, fax, and email. The most up-to-

date contact information is available at the AspenTech Support Center athttp://support.aspentech.com .

Page 11: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 11/90

1 Creating an Excel Unit Operation Model 7

1 Creating an Excel UnitOperation Model

Aspen Plus offers several interfaces for including custom or proprietary

models in Aspen Plus simulations. Among these is the option to use a User2

unit operation block in your Aspen Plus simulation with an Excel spreadsheetto perform the calculations. In this session you will create a User2 Excel

model for an ultrafiltration membrane.

First use Aspen Plus to build a process flowsheet, specify feed and product

streams, and enter real and integer parameters corresponding to themembrane. Then use Excel to create a spreadsheet to calculate product

stream properties. Aspen Plus will write data to and read data from the Excelspreadsheet.

The tutorial sessions in this Getting Started Guide assume that you have

completed all of the sessions in Getting Started Building and Running aProcess Model. In particular, you must be able to:

•  Start Aspen Plus (using a blank simulation, template, or existingsimulation).

•  Place blocks and streams.

•  Navigate from form to form using the Data Browser menu tree.

•  Enter data into the required fields in the input sheets.

•  Run a simulation.

•  View the data in the results sheets.

•  Save a simulation.

Allow about 60 minutes for this session.

Page 12: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 12/90

8 1 Creating an Excel Unit Operation Model

Defining the SimulationConstruct an Ultrafiltration Membrane model. Ultrafiltration is a pressure-

driven membrane process used to separate components based on molecularsize and shape. The solvent and small solute species pass through themembrane and are termed the permeate. Large solute species, such as

proteins, are retained by the membrane and are termed the retentate.

The simulation that you will construct is shown below in Figure 1.1. There isone feed stream (a water-protein feed), one unit operation block (an

ultrafiltration membrane), and two product streams (permeate andretentate).

Figure 1.1 Ultrafiltration Membrane Model 

Aspen Plus will write feed stream data and real and integer membrane

parameters (such as physical dimensions) to Excel. Excel will calculate

product stream data such as mole flow rates and solute concentrations usinga user-specified set of equations. Aspen Plus will read the product stream

data from Excel. Results will be displayed in the Excel file and on Aspen Plusresults forms.

Setting Up the Model in AspenPlus

To Start Aspen Plus1 From your desktop, click Start and then select Programs.

2 Select AspenTech | Process Modeling <version> | Aspen Plus |Aspen Plus User Interface.

Page 13: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 13/90

1 Creating an Excel Unit Operation Model 9

The Aspen Plus Startup dialog box appears. Aspen Plus displays a dialog

box whenever you must enter information or make a selection before

proceeding. In this simulation, use an Aspen Plus template.

3 Select Template.

4 Click OK to apply this option.

The New dialog box appears. Use this dialog box to specify the applicationtype and the run type for the new run. Aspen Plus uses the application

type to automatically set various defaults appropriate to your application.

To Specify the Application Type and RunType for the New Run5 Select the General with Metric Units template.

The default run type, Flowsheet, is appropriate for this simulation.

Page 14: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 14/90

10 1 Creating an Excel Unit Operation Model

6 Click OK to apply these options.

It takes a few seconds for Aspen Plus to apply these options.

Note: If the Connect to Engine dialog box appears, see "Connecting tothe Aspen Plus Simulation Engine" on page 86.

The Aspen Plus main window is now active.For this customized simulation, Aspen Plus will handle everything but the

calculations that correspond to the ultrafiltration process itself. First, buildthe process flowsheet.

Build the Process Flowsheet1 From the Model Library, select the User Models tab.

2 Click next to the User 2 block icon to display all the User 2 modelicons.

3 Move the mouse over the icons to see a name (or label) for each.

4 Locate the User 2 icon FILTER in the fourth row of icons, and select it.

5 Drag the FILTER icon to the Process Flowsheet window.

6 Create one input stream and two product streams.

7 Name the input stream FEED by selecting the stream or its label, right-

clicking, and selecting Rename Stream.

8 Name the first product stream you created RETENTAT. Aspen Plusaccepts eight letters and displays them as upper case.

9 Name the second product stream you created PERMEATE.

10 Name the block MEMBRANE.

Note: It matters which stream was created first because you will be passing

Excel (and, in the next chapter, Fortran) data to an Aspen Plus array thatcontains product stream data. The first stream declared also comes first in

the data array.

Your process flowsheet should look similar to Figure 1.1.

The next step is to enter a title, specify the components used in thesimulation, the property method, and feed stream characteristics.

Enter Title, Components, Base Method, and

Feed Specifications1 Press F8 to open the Data Browser.

2 Go to the Setup | Specifications | Global sheet and enter a title. Forexample, you might call it Membrane1.

3 Go to the Components | Specifications | Selection sheet.

4 In the Component ID field, type WATER and press Enter on the

keyboard.

Page 15: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 15/90

1 Creating an Excel Unit Operation Model 11

The Component name and Formula are automatically filled in because

Aspen Plus recognizes the ID “WATER.” Another row opens up in the table.

5 In the next Component ID field, type PROTEIN and press Enter on thekeyboard.

Protein is not in the Aspen Plus databank, so the Component name and

Formula fields remain blank.

6 In the Protein row, type LYSINE in the Component name field, and

press Enter on the keyboard.

Aspen Plus recognizes the amino acid lysine and fills in the Formula field.

Lysine will stand in as a protein for the purposes of this illustration.

7 Go to the Properties | Specifications | Global sheet and select the

IDEAL model in the Base method field.

8 Go to the Streams | FEED | Input | Specifications sheet.

9 In the Total flow section of the State variables area, change the type of units displayed to Volume.

10 In the Composition area, change the type of units displayed to Mass-Conc.

The Solvent field is now available.

11 Enter the temperature, pressure, total flow, solvent, and protein mass

concentration as indicated below.

12 Click the Flash Options tab to open the Streams | FEED | Input |Flash Options sheet.

Page 16: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 16/90

12 1 Creating an Excel Unit Operation Model

13 In the Valid phases field, select Liquid-Only.

Next, specify the location of the Excel file that performs membrane

calculations and enter the integer and real parameters that define the

physical and calculational characteristics of the particular membrane beingused for this simulation. The integer and real parameter user array will

also hold results that do not correspond to standard Aspen Plus streamproperties.

Enter Excel Path and User Array Data1 Go to the Blocks | MEMBRANE | Setup | Subroutines sheet.

2 In the Excel file name area, enter the full path to the (future) Excel file.For example, you might enter:

d:\Program Files\AspenTech\Excel\MemCalc.xls.

Important Note: Aspen Plus will accept a maximum of 64 characters for

the Excel path. If the Aspen Plus Working Folders directory results in toolong a path, choose another folder.

No other fields on this sheet need to be specified for this example. In the

next chapter, a customized Fortran subroutine is used to interface withthe Excel spreadsheet and the name of the subroutine is entered in the

Model field in the User 2 subroutines area. A customized Fortransubroutine allows you to control which data is passed between the Excel

spreadsheet and Aspen Plus.

3 Click the User Arrays tab to open the Blocks | MEMBRANE | Setup |User Arrays sheet.

4 In the Number of parameters area, enter 1 in the Integer field, 13 in the

Real field, and 13 in the Character field.

5 Enter the parameters as indicated below. The character entries areoptional here; they are just for convenience in this example. The last two

real parameters are Excel-calculated results and will appear (filled in) in

the copy of the User Array table that is written to the Blocks |MEMBRANE | Results sheet after the simulation run.

Page 17: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 17/90

1 Creating an Excel Unit Operation Model 13

Next, make a product flash specification to cause Aspen Plus to evaluate

the enthalpy and other product stream properties based on thetemperature and pressure calculated by Excel.

Setup a Product Stream Flash1 Click the Stream Flash tab to open the Blocks | MEMBRANE | Setup |

Stream Flash sheet.

2 In the Stream field, select RETENTAT.

3 In the Flash type field, select Temperature & pressure.

4 In the Stream field, select PERMEATE.

5 In the Flash type field, select Temperature & pressure.

6 Save your Aspen Plus file as Membrane1.apw.

Setting Up the Excel ModelAn Excel template is available to expedite the specification process. For Excel97 and 2000, use this template:

. . .\Engine\User\userxlTemplate.xls

Another template named userxlTemplate95.xls is available for use with Excel95.

Page 18: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 18/90

14 1 Creating an Excel Unit Operation Model

Copy and Examine the Excel Template1 Place one of the templates in the folder you specified on the Aspen Plus

Blocks | MEMBRANE | Setup Subroutines sheet.

2 Open the template. When you open it, Excel may give you one of a few

different warnings about macros. This file contains macros used to

communicate with Aspen Plus.o  If Excel offers you the option to Enable Macros, pick this option.

o  If Excel says that macros are disabled, follow the directions given to

lower your security setting in Excel to allow the macros to run. For

example, in Excel 2003, go to Tools | Options, Security tab, click

Macro Security, and set the security level to Medium. Then close the

file and re-open it with the macros enabled.

3 Save a copy as MemCalc_PreRun.xls.

Note: Later, you will save a copy of this file as MemCalc.xls. This second

file will be changed by Aspen Plus and you may wish to compare thechanged version to the original MemCalc_PreRun.xls.

4 Use the tabs on the bottom of the screen to view the four Excel sheets inthe template that contain data. Model calculations will be performed onSheet 1 (now empty).

The four data sheets and the data they will contain after the simulation is

run are listed below:

o  Aspen_IntParams: One integer parameter read from the Integer

User Array (entered on the Blocks MEMBRANE Setup User ArraysAspen Plus sheet).

o  Aspen_RealParams: Eleven real parameters read from the Real User

Array and two results (protein concentration in each product stream)calculated by Excel on Sheet 1.

o  Aspen_Input: The mole flow rates (in kmol/s) of each component of 

the feed stream and nine stream parameters.

o  Aspen_Output: The mole flow rates (kmol/s) of each component of 

each product stream and the three product stream parameters that

will be calculated by Excel. The other six product stream parameters

are calculated by Aspen Plus.

Note: The flow rates and nine stream parameters are stored in Aspen Plus

in two arrays: MSIN (input streams) and SOUT (output streams). AspenPlus first transfers input data from MSIN to Excel and then transfers

output results from Excel to SOUT. All data read from MSIN or writtento SOUT must be in SI units. Mole flow data must be in kmol/s. 

Next, modify the four Excel sheets to reflect the number of input andoutput streams and input and output parameters in this example. Define

Page 19: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 19/90

1 Creating an Excel Unit Operation Model 15

variables to reference data-containing cells. Use these variables in the

model calculations performed on Sheet 1.

Edit the Excel Sheets1 Edit the Aspen_IntParams sheet as shown below. Only the NTUBES

entry in cell C2 is strictly necessary. The entries in the first two columnsare dummies; Aspen Plus will fill in these cells when you run thesimulation. Cell B2 will contain the integer parameter from the Aspen Plus

User Arrays sheet.

2 Select NTUBES and click Insert | Name | Define.

3 Edit the Refers to field so that NTUBES represents the value in cell B2.

4 Edit the Aspen_RealParams sheet as shown below. Again, the entries in

the first and second column are dummies except for the equations in cells

B13 and B14. Aspen Plus will fill in the first two columns but will notoverwrite equations.

Page 20: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 20/90

16 1 Creating an Excel Unit Operation Model

Note: Since CP and CR haven’t been defined yet, Excel will not be able todetermine values for cells B13 and B14. To display the equations (instead

of an error message) click Tools | Options | View and select theFormulas checkbox.

5 Define the boldfaced variables (one at a time) in the third column to referto the cells in the second column. For example, select DIAM and click

Insert | Name | Define and change C2 to B2 in the Refers to field.

6 Edit the Excel Aspen_Input sheet as shown below. The Fortran interfacesubroutine reads the actual values of the feed stream properties from the

Aspen Plus MSIN array and writes to column B the Excel sheet. The unitscolumn is optional.

7 Redefine the variable Aspen_Input to refer to the proper range of inputvariables. To do this, run the menu command Insert | Name | Define,

select the Aspen_Input variable, and change the last letter and/or number

in the definition. In this case Aspen_Input!$B$2:$B$12 is the correctdefinition.

8 Define the variables in the fourth column to refer to the cells in the secondcolumn.

Page 21: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 21/90

1 Creating an Excel Unit Operation Model 17

9 Edit the Aspen_Output sheet as shown below. Click Tools | Options |View and select Formulas to display the equations. The equations won’t

produce numbers yet because variables such as FP must be determinedon Sheet1. The units column is optional.

The four sheets you just built hold data that the Fortran interfacesubroutine reads from Aspen Plus as well as results that are passed to

Aspen Plus. The remaining Excel sheet, Sheet1, contains the unitoperation model equations; it calculates the product stream propertiesusing input from the first four sheets.

Create the model by entering equations and parameters on Sheet1.

Note: To facilitate construction of the Excel model, the template comes with a

number of aspen helper functions built in. They are implemented as VisualBasic routines (to look at the code, select Tools | Macro | Visual BasicEditor). The ahGetValue function, for example, lets you refer to data usinga label in the first column. Instead of using =DENS_FEED/1000 in cell B9 on

Sheet1, you could use =ahGetValue(Aspen_Input, “DENSITY”) / 1000.

The first argument of this function is the Aspen_Input variable mentioned

previously and the second argument is a first-column string to search forwithin the specified range. The helper functions are described in the AspenPlus User Models manual.

Enter Membrane Model Equations andParameters1 Edit Sheet1 as shown below. Turn on formulas. Define each variable in

column A to refer to the cell to its right in column B. Variables that are

used in other sheets are shown in boldface. Notes in column C are

optional.

Page 22: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 22/90

18 1 Creating an Excel Unit Operation Model

2 Click Tools | Options | View and clear the Formulas checkbox.

3 Verify that your equations produce a number in each cell. Because there isno data yet, these numbers are meaningless.

4 Turn off formulas in the Aspen_Output and the Aspen_RealParamssheets as well and check that there is a number in each cell.

5 Optional: Put sensible data in the Aspen_IntParams,

Aspen_RealParams, and Aspen_Input sheets.

6 Once you are satisfied with the Excel ultrafiltration membrane model, save

your MemCalc_PreRun.xls file.

7 Save a copy as MemCalc.xls. This file will be altered by Aspen Plus.

Running the Excel ModelThe Excel sheet can remain open when the simulation is run.

1 If necessary, open MemCalc.xls and then open Membrane1.apw.

Note: Opening Excel before Aspen Plus saves startup time.

2 Go to the Blocks | MEMBRANE | Setup | Subroutines sheet and verify

that the path to the Excel file is correct.

3 Press F5 to run the simulation.

Page 23: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 23/90

1 Creating an Excel Unit Operation Model 19

Examining Simulation Results

To View the Results from the Excel Model1 Examine the altered Excel file. Turn off formulas in each sheet and

reformat numbers as needed using the Excel Format | Cells command.

The sheets are changed as follows:

o  Aspen_IntParams: Column A contains the row number because no

labels are specified in the default interface routine. Cell B2 containsthe number of tubes in the membrane model as specified on the Aspen

Plus User Arrays sheet. Column C is not changed.

o  Aspen_RealParams: Column A contains the row number because nolabels are specified in the default interface routine. Column B contains

the eleven real parameters from the Aspen Plus User Arrays sheetthat describe the membrane. Cells B12 and B13 contain equations and

are therefore not directly changed by the interface routine.

Aspen_Output: Column A already has the correct labels – theinterface routine overwrites with the same labels. Columns B and C are

initialized to zero except for the cells containing equations which arenot changed. The subroutine CalculateData invokes the Excel

calculations and product stream results appear in cells B2:B6 and

C2:C6. The interface routine reads the data in columns B and C andwrites to the Aspen Plus SOUT array. Aspen Plus performs a product

stream flash to replace the zeroes in SOUT with data so that, forexample, enthalpy data is available to Aspen Plus even though it is not

calculated by Excel.

o  Aspen_Input: Column A already has the correct labels – the interface

routine overwrites with the same labels. Column B now contains the

input parameters for the feed stream. These data are read from the

Aspen Plus MSIN array.

o  Aspen_Output_MEMBRANE: This is a new sheet created via a call toEndIteration which copies the contents of Aspen_Output to this new

sheet.

o  Sheet 1: Using the feed stream data and real and integer parametersread from Aspen Plus arrays to the Excel sheets, the equations on

Sheet1 determine concentrations and flow rates for the two outputstreams. The interface routine does not read or write directly to or

from this sheet.

For convenience, the data-filled Excel sheets and Aspen Plus results sheetsare reproduced here.

Aspen_IntParams:

Page 24: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 24/90

20 1 Creating an Excel Unit Operation Model

Aspen_RealParams:

Page 25: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 25/90

1 Creating an Excel Unit Operation Model 21

Aspen_Input:

Aspen_Output (and Aspen_Output_MEMBRANE):

Page 26: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 26/90

22 1 Creating an Excel Unit Operation Model

Sheet1:

To View the Block Results2 Go back to the Aspen Plus simulation environment.

3 Go to the Blocks | MEMBRANE | Stream Results | Material sheet and

the Blocks | MEMBRANE | Results | Summary sheet to verify thatAspen Plus data and Excel data are the same. You find that the units are

different.

Aspen Plus did read the correct output values from Excel but it assumed

(correctly) that they were in SI units and converted the data to METCBARunits before displaying it on the Stream Results sheet. For example, thecomponent mole flow rates are reported in kmol/hr instead of kmol/sec.

4 Go to the Setup | Specifications | Global sheet and change the Outputresults field to SI and run the simulation again.

5 Go back to the Stream Results form and compare the flow rates now

reported in kmol/s to those listed in the Excel sheets.

Page 27: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 27/90

1 Creating an Excel Unit Operation Model 23

6 Go to the Blocks | MEMBRANE | Results | Summary sheet to view the

real and integer parameter data read from Excel. The last two real

parameters displayed on this Aspen Plus sheet contain values. Aspen Plusread these values from the Excel Aspen_RealParams sheet without

regard to units.

7 Save the run. This Aspen Plus file, Membrane1.apw will be used in the

next chapter.

8 Exit Aspen Plus.

9 Save the changed version of your Excel file, MemCalc.xls.

10 Exit Excel.

Aspen Plus Blocks | MEMBRANE | Stream Results | Material sheet:

Page 28: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 28/90

24 1 Creating an Excel Unit Operation Model

Aspen Plus Blocks | MEMBRANE | Results | Summary sheet:

Page 29: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 29/90

2 Customizing the Excel/Aspen Plus Interface 25

2 Customizing theExcel/Aspen Plus Interface

Aspen Plus allows the user to customize the Fortran interface subroutine that

communicates with the Excel model. You need Intel Fortran 9.0 (or a later

version) to compile your customized interface routine using the aspcomp command in Aspen Plus Simulation Engine Window. Compaq Visual Fortran

6.0 or later may also work.

The interface subroutine passes feed stream data from Aspen Plus to Excel

and it passes product stream data from Excel to Aspen Plus. By customizingthe subroutine, the user can control which data is passed back and forth and

can manipulate the data before or after it is processed in the Excelspreadsheet.

The Excel model in the previous chapter used Aspen Plus feed stream data in

mole basis from the Aspen_Input sheet, converted to mass basis in Sheet1,calculated the product stream flow rates, and then converted back to mole

basis in Aspen_Output so that the data could be transferred to Aspen Plus.This was necessary because the Aspen Plus MSIN and SOUT arrays expectflow rate data in mole basis.

In this session you will revise the interface routine to convert the input data

to mass basis and the results data back to mole basis. The new interfaceroutine will create custom labels for the Aspen_RealParams Excel sheet.

More importantly, it will obtain the viscosity of the feed stream by calling theappropriate Aspen Plus built-in subroutines. The new interface routine will

then pass the viscosity to the Excel model so that the user doesn’t have to

enter this parameter by hand (on Sheet1) as in the previous chapter.

Allow about 60 minutes for this session.

Revising the Excel ModelAlter the Excel file from the previous chapter so that when the revised

interface routine writes the feed stream viscosity to the Excel Aspen_Input sheet, it is passed to Sheet1, converted to the appropriate units, and used in

the model calculations.

Page 30: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 30/90

26 2 Customizing the Excel/Aspen Plus Interface

Also, change Aspen_Input, Aspen_Output, and Sheet1 so that they use

mass basis.

1 Open MemCalc_PreRun.xls and save a copy as

MemCalc_Custom_PreRun.xls.

2 Add row 13 to the Aspen_Input sheet as shown below. Change the units

in rows 2, 3, and 4 to indicate mass basis.

3 Define MU_ASPEN to be the viscosity that will be written to cell B13using the Insert | Name | Define command.

4 Alter Sheet1 to use the viscosity calculated by Aspen Plus. Convert the

viscosity (Aspen Plus always uses SI units) to cgs units and change twoequations in the Excel model to use mass basis. Two rows are no longer

needed (PMF and TMF) and three cells (B4, B7, and B8) require minor

changes. The three new equations are shown in boldface.

Page 31: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 31/90

2 Customizing the Excel/Aspen Plus Interface 27

5 Alter the Excel Aspen_Output sheet to calculate component flow rates in

mass basis. The new equations are shown in boldface. Change the units in

rows 2, 3, and 4 to indicate mass basis.

6 Save your new Excel file, MemCalc_Custom_PreRun.xls.

7 Save a copy of the new Excel file as MemCalc_Custom.xls so that youretain the original version after the run. Make sure this version is stored in

the folder specified on the Aspen Plus Subroutines sheet.

Revising the User SubroutineThe code for the default subroutine provides a template that will make

creating the customized subroutine easier. The complete revised subroutine islisted below with changes marked.

1 Put a copy of \Engine\User\usrxls.f in a folder in your working directory.

For example, copy this file to

d:\Program Files\AspenTech\Working Folders\AspenPlus\Membrane\Mem2.f.

2 Open Mem2.f and change the name of the subroutine to Mem2.

3 Edit the file as indicated in the code listing that follows. Some of thecomments from the template (usrxls.f ) have been shortened while others

have been added. Numbers in parentheses following the boldfacecomments refer to the relevant part of the Code Description that follows

the listing.

Code Listing – SubroutineMEM2

C User2 Unit Operation Model Subroutine for Excel ModelsCC You can use any subroutine name up to six characters as long asC you identify the name on the Blocks BLOCKNAME Setup Subroutines C sheet in Aspen Plus. The argument list must not be lengthened orC shortened.

Page 32: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 32/90

28 2 Customizing the Excel/Aspen Plus Interface

SUBROUTINE MEM2 (NMATI, MSIN, NINFI, SINFI, NMATO,2 SOUT, NINFO, SINFO, IDSMI, IDSII,3 IDSMO, IDSIO, NTOT, NSUBS, IDXSUB,4 ITYPE, NINT, INTV, NREAL, REALV,5 IDS, NPO, NBOPST, NIWORK, IWORK,6 NWORK, WORK, NSIZE, ESIZE, INTSIZ,7 LD )

CIMPLICIT NONE

CC Declare variables used in dimensioning first, then other variables.C

INTEGER NMATI, NINFI, NMATO, NINFO, NTOT,+ NSUBS, NINT, NPO, NIWORK, NWORK,+ NSIZE, NREAL

INTEGER IDSMI(2,NMATI), IDSII(2,NINFI), IDSMO(2,NMATO),+ IDSIO(2,NINFO), IDXSUB(NSUBS), ITYPE(NSUBS),+ INTV(NINT), IDS(2,3), NBOPST(6,NPO),

+ IWORK(NIWORK), INTSIZ(NSIZE), LD

REAL*8 MSIN(NTOT,NMATI), SINFI(NINFI), SOUT(NTOT,NMATO),+ SINFO(NINFO), WORK(NWORK), ESIZE(NSIZE),+ REALV(NREAL)

CC------------ Aspen Plus Common Definitions Start in Column 1. -----------C#include "dms_errout.cmn"#include "ppexec_user.cmn"#include "dms_ncomp.cmn"#include "dms_plex.cmn"

REAL*8 B(1)EQUIVALENCE (B(1),IB(1))

CC-------- Declare Aspen Plus utility functions that will be used. ------C

INTEGER DMS_IRRCHK, DMS_IFCMNCCC--------------------- Local Variable Declarations --------------------C

INTEGER OFFSET, NUM_COLS, NUM_ROWS, RETCODE, LID,+ IBLANK(2), KREAL(3), KINT(3), KINPUT(2), KOUTPUT(2),+ LDATA, I,J,K, LEN, KDIAG, IDX(10),+ LIDSC, NCD, C_OFF, ERRNUMBER, NUM_LINES,+ SOURCE(16), HOL_STRLEN, SOR_LENGTH, SSID(2), IPROG(2),+ DESC_LENGTH,KOUTSOL(3), EXCEL_NAME_LEN,

+ EXCEL_NAME(16), KINPSOL(3),+ DESCRIPTION(128) !Moved LABELS and ROWNAMES declarations. (1)

Integer LABELS(2,10), ROWNAMES(2,NCOMP_NCC+10)!Ten labels instead of nine. (1) 

Integer REALROWS(2,NTOT+1) !Hollerith Realparam row ID's. (2) Integer LMW, NCP !Conversion and Viscosity. (3)Real*8 FLOW, XMW, X(10) !Calc component mass flow. (4) Character*8 RealLabels(13) !Realparam row ID's. (5)REAL*8 INSTREAM(NTOT*NMATI),OUTSTREAM(NTOT*NMATO)

Page 33: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 33/90

2 Customizing the Excel/Aspen Plus Interface 29

CC--------------------------- Data Section -----------------------------C

DATA KINPUT /4HINPU, 4HT /DATA KOUTPUT /4HOUTP, 4HUT /DATA KREAL /4HREAL, 4HPARA, 4HMS /DATA KINT /4HINTP, 4HARAM, 4HS /DATA KINPSOL /4HINP_, 4H , 4H /DATA KOUTSOL /4HOUT_, 4H , 4H /DATA IPROG /4HUSRX, 4HLS /DATA IBLANK /4HIMIS, 4HS /

DATA LABELS /4HTOTF, 4HLOW ,+ 4HTEMP, 4H ,+ 4HPRES, 4H ,+ 4HENTH, 4HALPY,+ 4HVAP , 4HFRAC,+ 4HLIQ , 4HFRAC,

+ 4HENTR, 4HOPY ,+ 4HDENS, 4HITY ,+ 4HMOLE, 4H WT ,+ 4HMUMX, 4H / !MUMX is viscosity label. (6) 

DATA RealLabels /'x ', !Labels for Realparam table+ 'L ', !(each total eight chars). (7) + 'Dab ',+ 'Cg ',+ 'R ',+ 'C1 ',+ 'C2 ',+ 'C3 ',+ 'C4 ',+ 'Pperm ',+ 'DeltaP ',+ 'Cp ',+ 'Cr ' /

C--- Establish Excel link and call StartIteration Workbook Hook Function ---CALL USRUTL_GETEXCEL(EXCEL_NAME, EXCEL_NAME_LEN)CALL StartIteration(RETCODE, EXCEL_NAME,64, IDS(1,1), 8)IF(RETCODE .NE. 0) GOTO 1000

C--------------- Build Aspen_Input Data Table ------------------------------C First get name of each of the NCOMP_NCC components forC first NCOMP_NCC rows in column 1 of the table. Names are in

C two four letter blocks. Component names in column 1 labelC component flow rates in column 2.

OFFSET = DMS_IFCMNC('IDSCC')DO J=1, NCOMP_NCC

I = OFFSET + 2*(J-1) + 1ROWNAMES(1,J) = IB(I)ROWNAMES(2,J) = IB(I+1)

END DO

Page 34: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 34/90

30 2 Customizing the Excel/Aspen Plus Interface

C After the component names, list the nine standard stream properties plusC any extras (in this case, there is one extra).

DO K=1, 10 ! Change 910 (8) J = K + NCOMP_NCCROWNAMES(1,J) = LABELS(1,K)ROWNAMES(2,J) = LABELS(2,K)

END DONUM_ROWS = NCOMP_NCC + 10 ! Change 910 (8) 

C Now fill in column 2 (using the INSTREAM array) with Aspen Plus feedC stream data (from the MSIN array). Convert to mass basis using molecularC weights. Make a column for each feed stream. Also have Aspen PlusC calculate viscosity of feed stream.

LMW = DMS_IFCMNC('MW') !Will need molecular weights of individual!components to do flow rate conversions. (9)

NUM_COLS = NMATI

DO J=1, NUM_COLSOFFSET = (J-1)*(NCOMP_NCC+10) ! Change 910 (8) DO I=1, NUM_ROWS

IF (I .EQ. NUM_ROWS) THEN !To do last row (10) Call SHS_CPACK(MSIN(1,J), NCP, IDX, X, FLOW) !"pack" data KDIAG = 4 !then getK = NCOMP_NCC !viscosity. (11)Call PPMON_VISCL(MSIN(K+2,J), MSIN(K+3,J), X, NCP,

+ IDX, NBOPST, KDIAG,+ INSTREAM(OFFSET+I), RETCODE)

ELSEXMW = 1 !Only convert flow rates. IF(I .LE. NCOMP_NCC) XMW = B(LMW + I) !If doing flow rates,

!make XMW molecular wgt. (12)INSTREAM(OFFSET + I) = MSIN(I,J)*XMW!Convert and fill INSTREAM. 

END IFIF (I .EQ. NCOMP_NCC+1) INSTREAM(OFFSET+I) = 

+ INSTREAM(OFFSET+I)*MSIN(I+8,J) !Convert total mole flow! to total mass flow using molec wgt of stream. (13)

END DOEND DO

C--------------- Send Aspen_Input table to Excel. ----------------------LDATA = 8*NUM_ROWS*NUM_COLSCALL WRITETABLE(RETCODE , KINPUT, 8 , NUM_ROWS,+ ROWNAMES, 8 , NUM_COLS, IDSMI ,

+ 8 , 2 , INSTREAM, LDATA )IF (RETCODE .NE. 0) GO TO 1000

C------------ Send Aspen_IntParams table to Excel. ---------------------LDATA = 8*NINTCALL WRITETABLE(RETCODE, KINT, 12 , NINT ,+ IBLANK , 0 , 1 , IBLANK,+ 0 , 1 , INTV,LDATA )IF (RETCODE .NE. 0) GO TO 1000

Page 35: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 35/90

2 Customizing the Excel/Aspen Plus Interface 31

C-------------- Send Aspen_RealParams table to Excel. -------------------DO I = 1, 13 !Make the 13 labels into Holleriths. (14)

CALL USRUTL_CHARTOH(RealLabels(I), RealRows(1,I), 8)END DO

LDATA = 8*NREALCALL WRITETABLE(RETCODE, KREAL, 12 , NREAL , !Send Labels, + RealRows, 8 , 1 , IBLANK, !Length to Excel. + 0 , 2 , REALV, LDATA )IF (RETCODE .NE. 0) GO TO 1000

C-------- Initialize the Aspen_Output Excel table. ---------------------NUM_ROWS = NCOMP_NCC + 9 !No viscosity for output streams. (15)DO J=1, NMATO

OFFSET = (J-1)*(NCOMP_NCC+9) !Still 9 here. (15)DO I=1, NUM_ROWS

OUTSTREAM(OFFSET+I) = 0.D0END DO

END DO

NUM_COLS = NMATOLDATA = 8*NUM_ROWS*NUM_COLSCALL WRITETABLE(RETCODE , KOUTPUT, 8 , NUM_ROWS,+ ROWNAMES, 8 , NUM_COLS , IDSMO ,+ 8 , 2 , OUTSTREAM, LDATA )IF (RETCODE .NE. 0) GO TO 1000

CC------------- Solid Substream Section --------------------------------CC When a simulation contains either conventional or nonconventionalC solids, another Excel sheet will be created as the interface withC a separate sheet being created for each substream. The name ofC substream will be appended onto the sheet name. For example, aC sheet called Aspen_INP_CISOLID will be created for the CISOLIDC substream. The component names and stream properties for thisC stream will be prepared similarly to Aspen_Input. A separateC column will be used for each feed. NSUBS will be greater than 1C if any solid substreams exist.

IF (NSUBS .GT. 1) Then

C Build the input tale for each solid substreamDO K=2,NSUBS

IF (ITYPE(K) .EQ. 3) THENC Nonconventional solid

LIDSC = DMS_IFCMNC('IDSNCC')NCD = NCOMP_NNCC

ELSEC Conventional solid

LIDSC = DMS_IFCMNC('IDSCC')NCD = NCOMP_NCC

ENDIF

DO J=1, NCDLID = LIDSC + 2*(J-1)

Page 36: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 36/90

32 2 Customizing the Excel/Aspen Plus Interface

ROWNAMES(1,J) = IB(LID+1)ROWNAMES(2,J) = IB(LID+2)

END DOCC Place stream property labels in column 1

DO J=1, 9I=NCD+JROWNAMES(1,I) = LABELS(1,J)ROWNAMES(2,I) = LABELS(2,J)

END DONUM_ROWS = NCD+9

CC Append the substream name onto the end of the inputC and output Excel sheet name.

CALL SHS_PID(LD, K, SSID)KINPSOL(2) = SSID(1)KINPSOL(3) = SSID(2)KOUTSOL(2) = SSID(1)KOUTSOL(3) = SSID(2)

C

C Register the stream dataNUM_COLS = NMATIDO J=1, NUM_COLS

OFFSET = (J-1)*(NCD+9)DO I=1, NCD+9

INSTREAM(OFFSET+I) = MSIN(IDXSUB(K)+I-1,J)END DO

END DOCC Send interface table to Excel

LDATA = 8*NUM_ROWS*NUM_COLSCALL WriteTable(RETCODE , KINPSOL, 12 , NUM_ROWS,

+ ROWNAMES, 8 , NUM_COLS, IDSMI ,+ 8 , 2 , INSTREAM, LDATA )

IF (RETCODE .NE. 0) GO TO 1000CC Initialize the Excel output interface for the substream

NUM_COLS = NMATODO J=1, NUM_COLS

OFFSET = (J-1)*(NCD+9)DO I=1, NCD+9

OUTSTREAM(OFFSET+I) = 0.D0END DO

END DOCC Send interface table to ExcelC

NUM_ROWS = NCD+9LDATA = 8*NUM_ROWS*NUM_COLSCALL WriteTable(RETCODE , KOUTSOL, 12 , NUM_ROWS,

+ ROWNAMES, 8 , NUM_COLS , IDSMO ,+ 8 , 2 , OUTSTREAM, LDATA )

IF (RETCODE .NE. 0) GO TO 1000

END DO

End If

Page 37: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 37/90

2 Customizing the Excel/Aspen Plus Interface 33

C------------ Invoke Excel Workbook Calculations ----------------------CALL CalculateData(RETCODE)IF (RETCODE .NE. 0) GOTO 1000

C---------- Read Excel values into Aspen Plus Arrays ----------

C----- Read back integer parameter table in case it has results.LDATA = 8*NINTCALL READTABLE(RETCODE, KINT, 12 , NINT ,+ 1 , 1 , INTV, LDATA)IF (RETCODE .NE. 0) GOTO 1000

C ---- Read back real parameter table in case it has results.LDATA = 8*NREALCALL READTABLE(RETCODE, KREAL, 12 , NREAL,+ 1 , 2 , REALV, LDATA)IF (RETCODE .NE. 0) GOTO 1000

C

C Read product stream data from Excel Aspen_Output sheet to OUTSTREAM.C Only have component flow rates, total flow rate, temperature and pressure.C First column of data (the retentate stream data) comes first in theC 1 dimensional OUTSTREAM array.C

NUM_ROWS = NCOMP_NCC + 3 ! Change 93; Two flow rates + tot flow, NUM_COLS = NMATO ! temp, pres. (16) LDATA = 8*NUM_ROWS*NUM_COLSCALL READTABLE(RETCODE , KOUTPUT, 8 , NUM_ROWS,+ NUM_COLS, 2 , OUTSTREAM, LDATA )IF (RETCODE .NE. 0) GOTO 1000

CC Put results from two product streams (OUTSTREAM array) in Aspen PlusC product stream array (2 dimensional SOUT).C The second dimension of SOUT is the number of streams; the first stream C placed by the user on the Aspen Plus process flowsheet comes first inC SOUT. Retentate stream was placed first and it must also be listed firstC in the Excel Aspen_Output sheet. SOUT expects flow rate data in mole basisC so convert back to mole basis using molecular weights. This timeC get total mole flow by just adding up component mole flows.C

DO J = 1, NMATOFLOW = 0 ! Holds the total mole flow. OFFSET = (J-1)*NUM_ROWS ! NUM_ROWS, not NCOMP_NCC+9 DO I = 1, NUM_ROWS

IF(I .LE. NCOMP_NCC) THENSOUT(I, J) = OUTSTREAM(OFFSET+I)/B(LMW+I) !Convert flow

!rates to mole basis and fill Aspen Plus array. (17) FLOW = FLOW + SOUT(I,J) !Store total. (17) 

ELSE IF(I .EQ. NCOMP_NCC+1) THENSOUT(I,J) = FLOW !Total flow to SOUT (3rd row). (17) 

ELSE !For other rows, just fill array.SOUT(I,J) = OUTSTREAM(OFFSET + I)

END IFEND DO

END DO

Page 38: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 38/90

34 2 Customizing the Excel/Aspen Plus Interface

C----------------------------------------------------------------------C For solid substreams, obtain product info from Excel interface sheetsC

IF (NSUBS .GT. 1) ThenCC Retrieve data for each substream

DO K = 2,NSUBSIF (ITYPE(K) .EQ. 3) THEN

NCD = NCOMP_NNCCELSE

NCD = NCOMP_NCCENDIF

CALL SHS_PID(LD, K, SSID)KOUTSOL(2) = SSID(1)KOUTSOL(3) = SSID(2)

CC Read Excel interface product sheet for substream

NUM_ROWS = NCD+9NUM_COLS = NMATO

LDATA = 8*NUM_ROWS*NUM_COLS

CALL ReadTable(RETCODE , KOUTSOL, 12 , NUM_ROWS,+ NUM_COLS, 2 , OUTSTREAM, LDATA )

IF(RETCODE .NE. 0) GO TO 1000CC Store data into outlet stream vector

DO J=1, NMATOOFFSET= (J-1)*(NCD+9)DO I=1, NCD+9

SOUT(IDXSUB(K)+I-1, J) = OUTSTREAM(OFFSET+I)END DO

END DOEND DO

End IfC--------------- End of Current Iteration -----------------------------

CALL EndIteration(RETCODE)RETURN

CC--------------- End of Current Iteration ------------- !No more changes. 

CALL EndIteration(RETCODE)RETURN

C------------------------ Error Handling Section ----------------------

1000 CONTINUECC ALL ERRORS COME HERE TO REPORT ERRORSCC Call GetLastTableDataErr()CC HOL_STRLEN SETS THE PADDING FOR ERROR HANDLING STRING RETURNEDC FROM THE EXCEL INTERFACE.C

HOL_STRLEN = 64

Page 39: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 39/90

2 Customizing the Excel/Aspen Plus Interface 35

DESC_LENGTH= 512SOR_LENGTH = 64CALL GetLastTableDataErr(RETCODE, ERRNUMBER, DESCRIPTION,+ DESC_LENGTH, HOL_STRLEN, SOURCE,+ SOR_LENGTH)

C REGISTER SEVERE SIMULATION ERROR FROM USER2 WITH ENGINEUSER_ICONVG = -3IF (DMS_IRRCHK(IPROG, 1, 4, 4, USER_IUMISS,+ 0, 0, 2) .NE. 0) THEN

C DETERMINE NUMBER OF LINES OF LENGTH HOL_STRLEN TO PRINTC MAX IS 10 SO WE CAN USE 8 FOR DESCRIPTION OF ERROR

NUM_LINES = ( (DESC_LENGTH+HOL_STRLEN-1) /HOL_STRLEN)IF (NUM_LINES .GT. 8 ) NUM_LINES = 8

C MOVE STRINGS TO ERROUT_IEROUT ARRAY OF STRINGS. WILL BE PRINTEDC TO HISTRY FILE BY ERRPRT(). FIRST WRITE "MS Excel" THEN SOURCEC STRING RETURNED BY API AS ERROR HEADING.

WRITE(ERROUT_IEROUT(1), 10)WRITE(ERROUT_IEROUT(2), 11)(SOURCE(I), I=1,(SOR_LENGTH+3)/4)

C WRITE ERROR MESSAGE RETURNED FROM EXCEL API TO THE HISTORY FILEDO 111 J=1,NUM_LINES

C_OFF = (J-1) * HOL_STRLEN/4WRITE(ERROUT_IEROUT(J+2), 11)

+ ( DESCRIPTION(I+C_OFF), I=1,(HOL_STRLEN+3)/4 )111 CONTINUEC PRINT ERROR MESSAGES TO HISTORY FILE USING THE FIRST NUMLINES+2C LINES OF THE ERROUT_IEROUT ARRAY OF STRINGS.

CALL DMS_ERRPRT(NUM_LINES+2)ENDIF

C END ERROR REPORTING TO HISTORY FILE2000 CONTINUEC Call EndIteration()C EndIteration IS CALLED EVEN WHEN A SEVERE ERROR OCCURS ABOVE.

CALL EndIteration(RETCODE)999 CONTINUEC FORMAT STATEMENTS10 FORMAT(' MS EXCEL Interface Reports:')11 FORMAT(' ',16A4)

END

Code Description – Subroutine

MEM21 The MUMX (viscosity) addition to the list of stream properties means that

there will be 10 properties read from Aspen Plus instead of the usual 9 soLABELS and ROWNAMES must be redimensioned.

2 We want to add labels (stored in REALROWS) to the Aspen_RealParamstable.

Page 40: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 40/90

36 2 Customizing the Excel/Aspen Plus Interface

3 LMW will hold the offset to the location of the molecular weight data for

each component. NCP will hold the actual number of components present

in the stream.

4 FLOW will hold the total mole flow for the output streams. XMW will hold

the molecular weight data for a given component. X will contain the mole

fraction of each component actually present in the stream and is sent to

the Physical Property Monitor subroutine PPMON_VISCL which calculatesthe viscosity of the stream.

5 RealLabels is a character array for the labels of the Aspen_RealParams

Excel sheet that will be converted to Hollerith format.

6 MUMX is stored in Hollerith format and will be written to the Aspen_Inputand Aspen_Output Excel sheets along with the standard nine stream

property labels.

7 Labels for the Aspen_RealParam table are entered explicitly as a character

array.

8 There are now 10 rows in the Aspen_Input and Aspen_Output tables inaddition to the NCOMP_NCC = 2 rows that correspond to the component

flow rates so DO loops have to be lengthened.9 DMS_IFCMNC is an integer function that determines the location of the

data such as molecular weight and critical temperature that corresponds

to each component. The user subroutine includes the following

statements:

#include "dms_plex.cmn"

REAL*8 B(1)

EQUIVALENCE (B(1),IB(1))

These statements allow the subroutine to access component data. Thecharacter strings to feed to the DMS_IFCMN function are listed in the

Universal Constant Names and Definitions table in Chapter 6 of the

User Models manual. The molecular weight of the first component will be

found at B(LMW + 1) where LMW is the offset returned by the function.

10 The subroutine SHS_CPACK packs the stream array by determining which

components are actually present (have a non-zero flow rate) and puttingtheir mole fractions in the X array. The PPMON_VISCL subroutine needs a

packed stream array when it calculates stream viscosity.

11 The subroutine PPMON_VISCL returns the viscosity of the stream. In thesubroutine in this example, the viscosity is placed in the INSTREAM array.

12 The B array is used to get the molecular weight which is used to convert

component flow rates. The integer variable NCOMP_NCC is equal to thenumber of conventional components (in this case 2) declared in the

Components Specifications Selection sheet and is passed through thecommon DMS_NCOMP also included in this subroutine.

13 The total mole flow is the third (NCOMP_NCC + 1) entry in the Aspen Plusstream input array called MSIN. The first two (NCOMP_NCC) are the

component mole flows. The next eight stream properties are temperature,pressure, enthalpy, vapor fraction, liquid fraction, entropy, density, and

molecular weight. These are listed in Appendix C of the User Models 

manual and these are the data that appear in the Aspen_Input and

Aspen_Output Excel sheets.

Page 41: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 41/90

2 Customizing the Excel/Aspen Plus Interface 37

14 The subroutine USRUTS_CHARTOH converts the explicitly entered

character labels into Hollerith format so that they may be sent to the

WRITETABLE subroutine.

15 Only the viscosity of the feed stream is calculated so the output table still

has the usual (NCOMP_NCC + 9) rows.

16 Since the Excel model only calculates flow rates, temperature, andpressure, there is no point sending it a bunch of zeroes for the other

properties. The properties that Excel does calculate are placed inOUTSTREAM when READTABLE is called.

17 The array SOUT contains the same NCOMP_NCC component mole flows,

total flow, and 8 other properties as MSIN (see item 13 above). When theSOUT array is filled with the OUTSTREAM values, these data will be

available in Aspen Plus results sheets. The MSIN and SOUT arrays containcomponent and total flow rates in mole basis (kmol/s) and eight other

properties in standard SI units.

Compiling and Linking theSubroutineThe aspcomp command delivered in the Simulation Engine DOS promptwindow will create the .OBJ file and ensure consistent compiler options. Two

DLOPT (dynamic linking option) files control the linking process: one creates aDLL from specified .OBJ files and another tells Aspen Plus where to find the

DLL being used for a particular run.

Compile the Excel Interface Subroutine

1 Save your customized Fortran file as Mem2.f .2 If you have not already done so, set your compiler option by running

Start | Programs | AspenTech | Process Modeling <version> |Aspen Plus | Select Compiler for Aspen Plus. Choose the option which

represents the combination of Fortran compiler and linker you want touse.

3 Launch the Aspen Plus Simulation Engine Window. (From the Start menuclick Programs | AspenTech | Process Modeling <version> | AspenPlus | Aspen Plus Simulation Engine.)

A DOS window appears with the working directory as the default directory.

4 Use the DOS cd command to set the default directory to the location of 

Mem2.f . For example, type cd membrane if your Fortran file is in a

subfolder called membrane in your working directory.

5 Type aspcomp Mem2 to compile the subroutine.

An object file (Mem2.obj) is created in the same directory as Mem2.f .

Keep the DOS window available for the linking step and use a text editorto create a DLOPT file to control the creation of a shared library (also

known as a dynamic linking library).

Page 42: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 42/90

38 2 Customizing the Excel/Aspen Plus Interface

Create a Shared Library1 Use a text editor such as Notepad to create a text file called

Membrane2_List_OBJs.opt.

2 Type the full path to Mem2.obj in the top line of the text file. For

example: D:\Program Files\ . . .\membrane\Mem2.obj.

3 Save the file and exit the text editor.

4 In the DOS window of the Aspen Plus Simulation Engine, type asplink[dlopt membrane2_list_objs.opt] membrane2.

A file called membrane2.dll is created. This is a Fortran shared library.

Using a shared library avoids the need for a linking step when Aspen Plusruns. Once you have the shared library, it can be used with Aspen Plus

even if you don’t have a Fortran compiler available.

Note: If you simply type asplink membrane2 Aspen Plus will create

membrane2.dll using all the object files in the default directory.

5 Create another DLOPT text file called Membrane2_Loc_DLL.opt.

6 In the top line of this file type the full path to membrane2.dll.

7 Save the text file and exit the text editor.

8 Put a copy of the Membrane2_Loc_DLL.opt in your Aspen Plus Working

Directory. At run time, you will tell Aspen Plus the name of this file so thatthe shared library will be available.

Running the SimulationNow that you have your revised Excel file and have created a shared librarycontaining your customized Fortran subroutine, you can run the simulation

using membrane1.apw from the previous chapter.

1 Open membrane1.apw.

2 Select Run | Reinitialize (or press Shift-F5) and click OK twice to clear

data from the previous run.

Note: If you have both the GUI and the Simulation Engine Window open

at the same time, an asplink command will fail unless you reinitialize theopen run.

3 Go to the Setup Specifications Global sheet, change the title to

membrane2, and make sure SI units are selected for the output.

4 Go to the Blocks MEMBRANE Setup Subroutines sheet and type MEM2 

in the Model field in the User2 subroutines area so that Aspen Plus knows

what your new subroutine is called.

Page 43: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 43/90

2 Customizing the Excel/Aspen Plus Interface 39

5 On the Subroutines sheet, change the name of the Excel file to

MemCalc_Custom.xls.

6 From the Aspen Plus menu, select Run | Settings.

The Run Settings dialog box appears.

7 In the Linker options field in the Miscellaneous files area type

membrane2_loc_dll.opt so that Aspen Plus knows the name of the file

Page 44: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 44/90

40 2 Customizing the Excel/Aspen Plus Interface

containing the location of the library that contains your customized

subroutine. This DLOPT file must be in your Aspen Plus Working Folder.

Note: You can change the default Aspen Plus working directory in the Tools |

Options | Startup tab. The membrane2_loc_dll.opt file must be saved inthe same directory as the simulation file.

8 Click OK.

9 Run the simulation.

10 Compare your Aspen Plus and Excel Results to those displayed below.

11 Save the run as membrane2.apw and exit Aspen Plus.

Results from the Custom ExcelModelFor convenience Excel and Aspen Plus sheets are shown here.

The Excel Aspen_Input sheet appears below. It now contains viscosity data

as calculated by Aspen Plus. The original label Aspen Viscosity was

overwritten with the new label MUMX specified in the interface routine.

The Excel Aspen_RealParams sheet appears below. It now contains labels

in column A specified in the interface routine.

Page 45: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 45/90

2 Customizing the Excel/Aspen Plus Interface 41

The value of Cr in cell B14 is slightly different from that in the previouschapter because the viscosity used in this example is more accurate:

The Excel Aspen_Output sheet appears below. It contains flow rates in massbasis.

Page 46: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 46/90

42 2 Customizing the Excel/Aspen Plus Interface

The Aspen Plus Blocks | MEMBRANE |Stream | Results | Material sheet:

The Aspen Plus Blocks | MEMBRANE | Results Summary sheet:

Page 47: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 47/90

3 Customizing the Aspen Plus Model Library 43

3 Customizing the AspenPlus Model Library

Your customized Excel model can have its own unit operation model stored in

an Aspen Plus Library file (.apm extension) and displayed in the Model Library

palette. In the previous chapter you entered a set of real and integerparameters for the physical characteristics and calculational coefficients of the

model using the Aspen Plus User Arrays data sheet. With a customized unitoperation model, you can enter these parameters once and they will be

automatically included whenever the customized block is placed on theProcess Flowsheet.

In addition, the name of the user Fortran subroutine and Excel file can beassociated with the customized model. The icon itself can be custom drawn.

Finally, a Configured Variables sheet is available in which the set of real

and integer parameters are associated with character strings and identified asinput or output. This data can be accessed in the user Fortran subroutine by

referring to the variable names, thereby simplifying the code.In this session, create a new Aspen Plus Library, Ultrafiltration.apm,containing a customized model for the ultrafiltration membrane. Use the same

model parameters as in the previous chapter to specify the membrane

characteristics. Create a custom icon for your model. Then replace the User 2block in membrane2.apw with your custom block and run the simulation

again.

Allow about 30 minutes for this session.

Creating a Model LibraryA model library has three levels: the library itself consists of a set of 

categories each identified by a tab in the Model Library palette. Each

category consists of a set of models. Each model is represented by an icon(multiple icons may be created and used for strictly aesthetic reasons) and

has default parameters associated with it. The present hollow fiber

ultrafiltration membrane has 180 tubes but another might have only 90. Theycould be represented as separate models.

Page 48: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 48/90

44 3 Customizing the Aspen Plus Model Library

Create an Empty Custom Model Library1 Create a sub-folder in your Aspen Plus Working Folder called, for example,

lib, to contain library files.

2 Open an Aspen Plus blank simulation.

3 Select Library | New.

The Create Aspen Plus User Model Library dialog box appears.

4 In the Enter Display Name field, type Ultrafiltration.

5 Click (it’s a Browse button). The New User Model Library dialogbox appears. Navigate to the directory where you wish to store library

files.

6 Click Save.

The previous dialog box reappears.

7 Click Create.

You have created an empty library. It contains no categories and nomodels. The next step is to create a template that contains default

parameters for your customized model.

Page 49: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 49/90

3 Customizing the Aspen Plus Model Library 45

Create a Template for Your Custom Model1 From the Model Library, place a User Models | User 2 | FILTER block on

the process flowsheet. It gets the default ID B1. 

2 Open the Data Browser and go to the Blocks | B1 | Setup |Subroutines sheet.

3 In the Model field, type the name of the Fortran subroutine that will beused with the customized block. For this example, type Mem2.

4 In the Excel file name area, type the path the Excel file that contains the

equations for the model. For example, d:\ProgramFiles\AspenTech\Excel\MemCalc_Custom.xls .

5 Click the User Arrays tab and enter the same real and integer

parameters as in the previous chapter including two empty real

parameters for results data.

Now your template is prepared and you are ready to create the

customized model.

Create the Custom Model from theTemplate1 Go back to the Process Flowsheet.

2 Select your template block, right click, and select Add to Model Library.

Page 50: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 50/90

46 3 Customizing the Aspen Plus Model Library

Note: If you start Aspen Plus in the future and find the Add to ModelLibrary option unavailable, select Library | References . . and select

your library (Ultrafiltration). Then select Library | Ultrafiltration |Writable so that you can edit it or add a model to it. Select Library |Save Default to make sure the selected library is available whenever youstart Aspen Plus.

The Add Custom Model Type to User Model Library Wizard dialogbox appears.

3 Select Add: Create a new …, and click Next.

Note: If you leave the Save User Model Library after Addition box

checked, Aspen Plus will automatically save the new model at the end of thecreation process.

4 In the Choose Custom Model Category dialog box, click Create NewCategory. 

5 Type Membranes and click OK.

The Choose Custom Model Category dialog box reappears.

Page 51: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 51/90

3 Customizing the Aspen Plus Model Library 47

Page 52: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 52/90

48 3 Customizing the Aspen Plus Model Library

6 Select Membranes and click Next. 

The Choose Single Block or Multi Record Custom Model Type dialog

box appears.

7 Select Single Block Custom Model and click Next.

The Choose Custom Model Type Creation Options dialog box appearswith the block ID (B1) entered automatically.

8 Replace B1 with HollowF.

9 Choose any icon option. Later, you will delete the icon and create acustom icon.

Page 53: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 53/90

3 Customizing the Aspen Plus Model Library 49

10 Make sure the Copy/create model template checkbox is selected.

Aspen Plus will copy the data you entered on the Subroutines sheet and

on the User Arrays sheet into the new model.

11 Make sure the Copy/create user model configuration checkbox is

selected. Aspen Plus will make the Configured Variables sheet available

to the new model so that you can associate variable names with your real

and integer parameters.

12 Click Finish. Aspen Plus automatically saves the new library. (Select

Library | Ultrafiltration; the Save option should be shaded.)

A tab for the Membranes category of the Ultrafiltration library now

appears alongside the tabs of the Built-in library.

13 In the Model Library click the Membranes tab.

The model you created is visible.

14 Delete the block on the Process Flowsheet that you used as a template.

15 From the Model Library, drag a HollowF unit operation model onto theProcess Flowsheet.

16 Open the Data Browser and go to the Blocks | B2 | Setup form andcheck that the default data appears correctly on the Subroutines sheet

and on the User Arrays sheet.

17 Exit Aspen Plus. There is no need to save an apw file since the library isalready saved as Ultrafiltration.apm.

Now, whenever you start Aspen Plus and select Library | Referencesand click the Ultrafiltration checkbox, you will have access to the

HollowF unit operation model with default user subroutine name, Excel

file path, and real and integer parameters.

Note: Any Aspen Plus model from the Model Library can be moved into thenew library by dragging the icon into the Model Library Editor (select Library| Ultrafiltration | Edit to open the Editor). The Add Custom Model Typeto User Model Library Wizard appears automatically.

Editing the Custom ModelWhen you use a model from a custom library, you can overwrite the default

entries to the Blocks | BLOCKNAME | Setup | Subroutines and UserArray sheets. For example, in the next chapter, you will place a HollowF 

block, delete the path to the Excel file and use a revised Fortran subroutine toperform the model calculations. This change only affects the block to which it

is applied. The defaults for the HollowF model remain intact.

The HollowF model can be edited, however, in the following ways: you can

delete it, rename it, redraw the icon, and add named variables that refer tothe real and integer parameters on the User Arrays sheet. These changes

are stored in the library when you select Library | LIBNAME | Save.

Page 54: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 54/90

50 3 Customizing the Aspen Plus Model Library

Open the simulation from the previous chapter and edit the HollowF model.

First customize the icon, then add named references to the real and integer

parameters.

Create a Custom Icon1 Open Membrane2.apw.

2 Select Library | References. . . and select the checkbox next to

Ultrafiltration to make your library available.

3 Click OK.

4 From the tools menu, select Library | Ultrafiltration | Writable.

5 From the tools menu, select Library | Ultrafiltration | Edit.

6 In the Ultrafiltration – Model Library Editor window, select the

HollowF model, right click, and select Edit Current Icon . . .

The Icon Editor appears.

The small enclosed crosshair indicates the automatic position of the blockID. The call Label.at(0,0.1) statement in the lower pane indicates that it

will be placed very close to the spot where the user clicks on the process

flowsheet. (If necessary, drag the divider between the pane with the iconand the pane below it upward and scroll to find this statement.) If the

coordinates are far from zero, block placement could be unpredictable.Keep your custom drawing reasonably well centered.

7 Click and hold and drag across the entire icon to enclose it in a dashed

box. Click the right mouse button and select Delete.

The icon disappears except for two arrows that represent the universal

input and output ports.

8 Use the graphics tools to create a custom icon for the hollow fiber

ultrafiltration membrane.

9 Move the universal port arrows so they are attached to the icon.

Page 55: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 55/90

3 Customizing the Aspen Plus Model Library 51

10 Drag an F1(IN) port from the left-hand pane and place it directly over the

universal input arrow.

11 Drag a P1(OUT) port from the left-hand pane and place it directly over theuniversal output arrow.

12 Select Icon | Update icon to update the code in the lower pane.

13 Exit the Icon Editor by closing the window.

14 Click Yes when prompted to save the new icon.

15 Select Library | Ultrafiltration | Save to save the changes to the

library.

16 Exit the Model Library Editor by closing the window.

Note: Existing AutoCAD DXF files can also be imported into the Icon

Editor. When the Icon Editor is active, a main Icon menu becomesavailable on the menu bar for the main window. Select Import DXF from

the Icon menu.Next, add named references to the real and integer parameter arrays.These names will be used in the Fortran code in the next chapter. For the

simulation in this chapter, the two parameters designated as output data

will appear in a new results sheet. Otherwise this run will be identical tothe run in the previous chapter.

Create References to the Real and IntegerParameters1 Select Library | Ultrafiltration | Edit, right click the icon, and select

Edit User Configuration.The User Model Configuration Editor appears.

2 Create names for the 1 integer and 13 real parameters in the order thatthey appear on the Blocks MEMBRANE Setup User Arrays sheet.

Note: Aspen Plus will correctly identify the integer no matter where youput it.

3 Real is the default type. For NTUBES, click in the Type field and select

Integer from the drop-down menu.

Page 56: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 56/90

52 3 Customizing the Aspen Plus Model Library

4 Parameters are designated as Input by default. For the last two real

parameters, click in the Input/Output field and select Output only.

Note: To delete a row, select it, right click, select Remove Row.

The completed table is shown below.

Note: It is also possible to create a structure called coefficients bychoosing structure in the type field and then making coef1, coef2, coef3, and coef4 real parameters with a depth of 1. This allows the user

to access the parameters using the structure name and an index valueand then place the real parameter in an array. This will be discussed

further in the next chapter.

5 Exit the Configuration Editor by closing the window.

6 Select Library | Ultrafiltration | Save.

7 Exit the Model Library Editor by closing the window.

The new icon and the variable names will now appear whenever you usethe HollowF model.

Inserting the New Model andRunning the SimulationDelete the old model and replace it with your new HollowF model,reconnecting the streams, and respecifying the product stream flash.

The named references on the Configured Variables sheet must be

supported by a short Fortran subroutine that you must create, compile, and

link along with the user model subroutine Mem2.f . The Model LibraryEditor will write this new subroutine for you.

Insert the HollowF model, create a new dll file containing the newsubroutine, then run the simulation and examine the results.

Insert the New Model1 Open Membrane2.apw.

2 Press Shift-F5 and click OK twice to reinitialize the simulation.

3 Select Library | References… and select Ultrafiltration.

Page 57: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 57/90

3 Customizing the Aspen Plus Model Library 53

Your Ultrafiltration library has one category called Membranes and its

tab appears in the Model Library.

4 On the Process Flowsheet, delete the MEMBRANE block.

5 Place a HollowF block on the Process Flowsheet.

6 Select the FEED stream, right-click, select Reconnect Destination.

7 Move the cursor over the Feed port and click once to reconnect thestream.

8 Reconnect the RETENTAT stream to the Product port using the ReconnectSource option. If you accidentally select the PERMEATE stream first, press

Esc on the keyboard to cancel.

9 Reconnect the PERMEATE stream. The order matters because the firststream connected comes first in the output stream data array (SOUT).

Once both streams are connected they can be separated for clarity.

10 Rename the block, a Hollow Fiber Ultrafiltration Membrane with 180 tubes,

HFUM180.

Now that the Process Flowsheet is complete, check the data sheets for the

HFUM180 block. Make sure all the data included with the model bydefault is correct and add the product stream flash specification.

Check and Edit Setup Sheets1 Open the Data Browser and go to the Blocks | HFUM180 | Setup form.

2 Check the Subroutines sheet and make sure the subroutine name andpath to the Excel file are correct.

3 Check the User Arrays and Configured Variables sheets. The two

results parameters that you defined for the HollowF model in the

Configuration Editor do not appear on the Configured Variables sheet

because they were specified as output parameters; they will appear on aresults sheet.

Note: The data in the User Arrays sheet and Configured Variables 

sheet are the same. If you change any of the numbers on one sheet, thesame change will automatically appear on the other sheet. You can alter

the numerical data if you wish and it will be changed for the particularblock that you placed. For future block placements, the defaults will

remain intact.

4 Go to the Stream Flash sheet and specify a Temperature & pressureFlash for each product stream. No data is needed in the Flashspecifications area.

Page 58: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 58/90

54 3 Customizing the Aspen Plus Model Library

Now create the Fortran file to handle the new variable names, compile it,create a shared library including your user subroutine and this new

subroutine, and run the simulation.

Compile, Link, and Run1 Select Library | Ultrafiltration | Writable and then Library |

Ultrafiltration | Edit to open the Model Library Editor.

2 Select the HollowF model, right-click, and select Edit UserConfiguration to open the User Model Configuration Editor.

3 Select Fortran | Export and save the Fortran file as Mem2Vars.f to thefolder that contains Mem2.f (\ Working Folders\AspenPlus\Membrane.)

4 Exit the Configuration Editor by closing the window.

5 Save the library (Library | Ultrafiltration | Save) and exit the ModelLibrary Editor.

6 Save your run as Membrane2_CM.apw and then exit Aspen Plus so that

you can run asplink in a moment.

Page 59: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 59/90

3 Customizing the Aspen Plus Model Library 55

7 From the Membrane sub-folder, open your DLOPT file,

Membrane2_List_OBJs.opt and add a line indicating the path to

Mem2Vars.obj.

8 Save the new DLOPT file and exit the text editor.

9 Start the Aspen Plus Simulation Engine to get the DOS window, type cdMembrane and press Enter to set the directory to the location of yourFortran files.

10 Type aspcomp Mem2Vars and press Enter to compile the new Fortransubroutine. The Mem2 subroutine was compiled in the previous chapter;

so the obj file should already exist.

11 Type asplink [DLOPT Membrane2_List_OBJs.opt] Membrane2 andpress Enter to create a new shared library from the two obj files.

A new version of Membrane2.dll is placed in your Membrane sub-

folder.

12 Close the Aspen Plus Simulation Engine Window window.

13 Check that your other DLOPT file, Membrane2_Loc_dll.opt is still in the

Aspen Plus Working Folder and contains the location of Membrane2.dll.

14 Start Aspen Plus, and open Membrane2_CM.apw.

15 Select Run | Settings. If necessary, type Membrane2_Loc_dll.opt inthe Linker Options field to tell Aspen Plus where to find the sharedlibrary.

16 Click OK.

17 Run the simulation.

18 Go to the Blocks | HFUM180 | Results | Summary sheet to see the

entire real and integer parameter lists including the two real parametersthat were specified as output only.

19 Go to the Configured Variables sheet to see just the two output

parameters.

Page 60: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 60/90

56 3 Customizing the Aspen Plus Model Library

20 Save the simulation as Membrane2_CM.apw and exit Aspen Plus.

Note: This simulation file uses the same Mem2 subroutine as

Membrane2.apw. It uses an updated version of Membrane2.dll, an

updated version of Membrane2_List_OBJs.opt, and the same

Membrane2_Loc_dll.opt file as in the previous chapter and produces the

same results. It has been named Membrane2_CM.apw to emphasize this

connection to the previous simulation.

Page 61: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 61/90

4 Creating an Aspen Plus Fortran Model 57

4 Creating an Aspen PlusFortran Model

Excel is useful for testing and troubleshooting a new model because it is self-

contained – during the testing phase, it is not necessary to run Aspen Plus

simulations. However, once the model is developed, you may wish to performthe model calculations in the user Fortran subroutine and transfer the results

directly to Aspen Plus.

In this chapter, build a User2 Fortran model to replace the Excel model that

you developed previously. Use Aspen Plus utility functions that read from andwrite to the real and integer array stored with the HollowF customized model.

Use the named references (such as “DIAM”) you specified when you createdthe model.

The absence of Excel interface functions and the presence of the Aspen Plus

utility functions make for compact code in the new subroutine. A completelisting is provided here.

Allow about 30 minutes for this session.

Page 62: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 62/90

58 4 Creating an Aspen Plus Fortran Model

Putting the Model Equations inthe User SubroutineA Fortran template is available that will make creating a subroutine toperform the calculations for the HollowF model easier. The complete

subroutine is listed below.

1 Put a copy of \Engine\User\Usrus2.f in the folder you are using for yourFortran subroutines. For example, copy this file to Aspen Plus working

directory.

2 Edit Usrus2.f and change the name of the subroutine to HFUM.

Note: Any filename with the .f extension is allowed and any subroutine name

up to six characters is allowed.

3 Rewrite the subroutine following the complete Code Listing below.

Numbers in parentheses after the boldface comments refer to the relevantpart of the Code Description that follows the listing.

Code Listing – SubroutineHFUM

SUBROUTINE HFUM (NMATI, MSIN, NINFI, SINFI, NMATO,2 SOUT, NINFO, SINFO, IDSMI, IDSII,3 IDSMO, IDSIO, NTOT, NSUBS, IDXSUB,

4 ITYPE, NINT, INT, NREAL, REAL,5 IDS, NPO, NBOPST, NIWORK, IWORK,6 NWORK, WORK, NSIZE, SIZE, INTSIZ,7 LD )

IMPLICIT NONE#include "ppexec_user.cmn"#include "dms_plex.cmn" 

Real*8 B(1) Equivalence (B(1),IB(1))

#include "dms_ncomp.cmn"

C Include files pass additional variables via COMMONs.C Ppexec_user.cmn passes USER_NHSTRY. (1) Dms_plex.cmn passesC arrays containing component data such as molecular weight. (2)C Dms_ncomp.cmn passes NCOMP_NCC. (3)

C ------------------- Declare arguments -------------------------------------

INTEGER NMATI, NINFI, NMATO, NINFO, NTOT,+ NSUBS, NINT, NPO, NIWORK, NWORK,+ NSIZE, NREAL

Page 63: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 63/90

4 Creating an Aspen Plus Fortran Model 59

INTEGER IDSMI(2,NMATI), IDSII(2,NINFI),+ IDSMO(2,NMATO), IDSIO(2,NINFO),+ IDXSUB(NSUBS), ITYPE(NSUBS), INT(NINT),+ IDS(2,3), NBOPST(6,NPO),+ IWORK(NIWORK), INTSIZ(NSIZE), LD

REAL*8 MSIN(NTOT,NMATI), SINFI(NINFI),+ SOUT(NTOT,NMATO), SINFO(NINFO),+ WORK(NWORK), SIZE(NSIZE), REAL(NREAL)

C --------------- Declare Local Variables ---------------------------------

INTEGER OFFSET, IERR, LDATA, KDIAG, IDX(10), NCP, I, J, INDEX,+ LMW, NTUBES, IPERM, IRET,IFAIL

REAL*8 DIAM, LEN, DIFF, CG, REJ_COEF, C1, C2, C3, C4, P_PERM,+ DELTA_P, RHO, MU, FIN, CIN, PIN, UAVE, RE, SC,+ CP, CR, KM, JM, FP, PRET, XMW, X(10), FLOW

C ----------------- Declare Functions --------------------------------------

INTEGER USRUTL_GET_REAL_PARAM, ! These functions allow access to real + USRUTL_GET_INT_PARAM, ! and integer parameters using named + USRUTL_SET_REAL_PARAM ! references, and to write results data

! to Aspen Plus. (4) 

INTEGER DMS_IFCMNC !Determines offset to universal constant data. (5) 

REAL*8 DLOG !Standard Fortran function.

C ----------------- Begin Executable Code ----------------------------------C ----------------- Get configured REAL variables from Aspen Plus. ---------

IFAIL = 0INDEX = 0 !Used for passing a structure. (6)IERR = USRUTL_GET_REAL_PARAM('DIAM', INDEX, DIAM) !Put Configured 

! Variable called "DIAM" in local variable DIAM. (7)

IF (IERR .NE. 0) THEN !Write to History file if error. (8)WRITE(USER_NHSTRY,*) ' ERROR FETCHING HYDRAULIC DIAMETER'IFAIL = 1

END IF

IERR = USRUTL_GET_REAL_PARAM('LEN', INDEX, LEN)IF (IERR .NE. 0) THEN

WRITE(USER_NHSTRY,*) ' ERROR FETCHING LENGTH'IFAIL = 1

END IF

IERR = USRUTL_GET_REAL_PARAM('DIFF', INDEX, DIFF)IF (IERR .NE. 0) THEN

WRITE(USER_NHSTRY,*) ' ERROR FETCHING DIFFUSIVITY'IFAIL = 1

END IF

Page 64: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 64/90

60 4 Creating an Aspen Plus Fortran Model

IERR = USRUTL_GET_REAL_PARAM('GEL_CONC', INDEX, CG) !Local variableIF (IERR .NE. 0) THEN !can have any name. 

WRITE(USER_NHSTRY,*) ' ERROR FETCHING GEL CONCENTRATION'IFAIL = 1

END IF

IERR = USRUTL_GET_REAL_PARAM('REJ_COEF', INDEX, REJ_COEF)IF (IERR .NE. 0) THEN

WRITE(USER_NHSTRY,*) ' ERROR FETCHING REJECTION COEFFICIENT'IFAIL = 1

END IF

IERR = USRUTL_GET_REAL_PARAM('COEF1', INDEX, C1)IF (IERR .NE. 0) THEN

WRITE(USER_NHSTRY,*) ' ERROR FETCHING COEF1' IFAIL = 1

END IF

IERR = USRUTL_GET_REAL_PARAM('COEF2', INDEX, C2)IF (IERR .NE. 0) THEN

WRITE(USER_NHSTRY,*) ' ERROR FETCHING COEF2'IFAIL = 1

END IF

IERR = USRUTL_GET_REAL_PARAM('COEF3', INDEX, C3)IF (IERR .NE. 0) THEN

WRITE(USER_NHSTRY,*) ' ERROR FETCHING COEF3'IFAIL = 1

END IF

IERR = USRUTL_GET_REAL_PARAM('COEF4', INDEX, C4)IF (IERR .NE. 0) THEN

WRITE(USER_NHSTRY,*) ' ERROR FETCHING COEF4'IFAIL = 1

END IF

IERR = USRUTL_GET_REAL_PARAM('PERM_PRES', INDEX, P_PERM)IF (IERR .NE. 0) THEN

WRITE(USER_NHSTRY,*) ' ERROR FETCHING PERMEATE PRESSURE'IFAIL = 1

END IF

IERR = USRUTL_GET_REAL_PARAM('DELTA_P', INDEX, DELTA_P)IF (IERR .NE. 0) THEN

WRITE(USER_NHSTRY,*) ' ERROR FETCHING PRESSURE DROP'IFAIL = 1

END IF

C ---------------- Get configured INTEGER variables from Aspen Plus --------

IERR = USRUTL_GET_INT_PARAM('NTUBES', INDEX, NTUBES)IF (IERR .NE. 0) THEN

WRITE(USER_NHSTRY,*) ' ERROR FETCHING NUMBER OF TUBES'IFAIL = 1

END IF

Page 65: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 65/90

4 Creating an Aspen Plus Fortran Model 61

C ---------------- Calculate viscosity -------------------------------------

CALL SHS_CPACK(MSIN(1,1), NCP, IDX, X, FLOW) !Pack stream data. (9) KDIAG = 4CALL PPMON_VISCL(MSIN(NCOMP_NCC+2,1), MSIN(NCOMP_NCC+3,1), X, NCP,+ IDX, NBOPST, KDIAG, MU, IERR) !Calculate viscosity,

!put result in MU. (9)IF (IERR .NE. 0) THEN

WRITE(USER_NHSTRY, *) ' ERROR EVALUATING VISCOSITY FOR FEED'IFAIL = 1

END IF

IF (IFAIL .EQ. 1) RETURN

C ---------------- Get location of molecular weight data.-------------------

LMW = DMS_IFCMNC('MW') !Offset to component molecular weight data. (10) 

C ---------------- Model Equations -----------------------------------------

RHO = MSIN(NCOMP_NCC+8,1) / 1000. !Density of feed stream !in g/cm^3. [= kg/l] (11) 

MU = MU * 10. !Viscosity of feed stream in g/cm/s.FIN = MSIN(NCOMP_NCC+1,1) * MSIN(NCOMP_NCC+9,1) / RHO * 3600.

!Feed flow in l/hr. (11)CIN = MSIN(2,1) * B(LMW+2) / FIN * 3600000. !Protein conc. 

!in feed stream in g/l. (11)PIN = MSIN(NCOMP_NCC+3,1) / 101325. ! Feed stream pressure 

!in atmospheres. (11)UAVE = FIN / (DIAM**2*3.14*NTUBES/4.) * 1000. / 3600.

!Bulk average velocity in cm/s.RE = DIAM * UAVE * RHO / MU !Reynolds number. SC = MU / (RHO * DIFF) !Schmidt number.

CP = CG * (1 - REJ_COEF) !Permeate stream protein conc. in g/l.KM = C1 * RE**C2 * SC**C3 * (DIAM/LEN)**C4 * DIFF/DIAM/100.

!Mass xfer coef in m/s. JM = KM * DLOG((CG - CP) / (CIN - CP)) !Volumetric flux in m/s. FP = JM * DIAM * LEN * 3.14 * NTUBES*100*3600/1000.

!Permeate stream flow rate in l/hrCR = (CIN - FP/FIN*CP) / (1 - FP/FIN) !Retentate stream protein conc. 

! in g/l.PRET = PIN - DELTA_P !Retentate stream pressure in atm.

C --------------- Assume PERMEATE stream is first, switch if not. ----------

IPERM = 1

IRET = 2IF (IDSMO(1,1) .EQ. 'RETE') THEN !IDSMO is an argument passed to the

IPERM = 2 !subroutine. It contains the outletIRET = 1 !stream ID’s. (12) 

END IF

C --------------- Fill SOUT array for PERMEATE stream. ---------------------

SOUT(1,IPERM) = FP * RHO / 3600. / B(LMW+1) !Approximate water flow!in kmol/s. (13) 

Page 66: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 66/90

62 4 Creating an Aspen Plus Fortran Model

SOUT(2,IPERM) = FP * CP / 1000. / 3600. / B(LMW+2)!Protein flow in kmol/s. (13)

SOUT(3,IPERM) = SOUT(1,IPERM) + SOUT(2,IPERM)!Total flow in kmol/s. (13)

SOUT(4,IPERM) = MSIN(4,1) !Temp. unchanged from feed (K). (13) SOUT(5,IPERM) = P_PERM * 101325. !Pressure in N/m^2. (13)

C -- Fill SOUT array for RETENTAT stream using values from PERMEATE stream.

SOUT(1,IRET) = MSIN(1,1) - SOUT(1,IPERM) !Water flow in kmol/s. (13)SOUT(2,IRET) = MSIN(2,1) - SOUT(2,IPERM) !Protein flow in kmol/s. (13)SOUT(3,IRET) = SOUT(1,IRET) + SOUT(2,IRET) !Total flow in kmol/s. (13)SOUT(4,IRET) = MSIN(4,1) !Temp. unchanged from feed (K). (13)SOUT(5,IRET) = PRET * 101325. !Pressure in N/m^2. (13)

C -- Now set values of the two variables designated as output parameters. --

IERR = USRUTL_SET_REAL_PARAM('CP_PROT', INDEX, CP) !The HollowF! model was designed to accept 2 output parameters. (14)

IF (IERR .NE. 0) THEN

WRITE(USER_NHSTRY,*) ' ERROR STORING PERMEATE PROT CONC'IFAIL = 1

END IF

IERR = USRUTL_SET_REAL_PARAM('CR_PROT', INDEX, CR)IF (IERR .NE. 0) THEN

WRITE(USER_NHSTRY,*) ' ERROR STORING RETENTATE PROT CONC'IFAIL = 1

END IF

RETURNEND

Page 67: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 67/90

4 Creating an Aspen Plus Fortran Model 63

Code Description – SubroutineHFUM1 USER_NHSTRY is the Fortran unit number for the History File. From Aspen

Plus, you can access this file by selecting View | History. This command

will open the history file with a text editor and it can be saved using thetext editor. Aspen Plus will also save a History File if you save the

simulation as an apw file.

2 The common DMS_PLEX contains data for all components including theformula, ID, and physical property parameters such as molecular weight.

The data is accessed by using a function to find the offset to the locationof the data in the B or IB array. For more discussion of the DMS_PLEX

common and examples see the User Models manual and steps 5 and 10 in

this list.

3 NCOMP_NCC is the number of conventional components in the simulation.

In this example, there are two, water and protein.

4 The three USRUTL functions return an integer which will have the value

zero if there were no errors. These functions allow the user to pass values

between the Fortran subroutine and Aspen Plus according to the namesdefined using the User Model Configuration Editor.

5 The integer function DMS_IFCMCN takes a character string as input (forexample, ‘MW’ for molecular weight) and returns the offset to an area of 

the “Plex” data array. For more information and examples, see the User 

Models manual and step 10 in this list.

6 INDEX is an array of indices used in the USRUTL functions when handling

a structure. Its value is irrelevant in the present example since none of 

the data are structures. However, if you created a coefficients structurewith four elements you could access them using the following code:

INTEGER INDEX(1), Ierr, USRUTL_GET_REAL_PARAM, i

REAL*8 C(4)

.

.

DO i = 1,4

INDEX(1) = i

Ierr = USRUTL_GET_REAL_PARAM(‘coefficients’,INDEX,C(i))

END DOThe 1-based INDEX array contains only as many elements as there arelevels of structure. Each element must be set once per loop. For example,

suppose you have nested structures with str1 containing str2a, str2b, andstr2c. If str2b has five scalar elements and you wish to access the third,

set INDEX(1) = 2 and INDEX(2) = 3. A scalar element within a structure

(for example, coefficients.coef2) may also be referenced directly by itslowest level name ('coef2' in this example) as if it were not in a structure

at all: USRUTL_GET_REAL_PARAM('coef2', 0, C2).

Page 68: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 68/90

64 4 Creating an Aspen Plus Fortran Model

7 On the Aspen Plus Blocks | HFUM180 | Setup | Configured Variables 

sheet, the user can see that one of the real parameters is called DIAM.

The function USRUTL_GET_REAL_PARAM retrieves the value of thisparameter and puts it into a local Fortran variable that, in this example, is

named DIAM. Of course any declared Real*8 variable is allowed to hold

the value of this parameter.

8 This History File, also discussed in Step 1 above, is a useful place for errormessages and troubleshooting output statements. For example, astatement like

WRITE (user_nhstry,*) 'diam = ', diam

might be useful if your calculations aren’t coming out properly and youwant zero in on the problem.

9 The user can call physical property monitors such as PPMON_VISCL toaccess the Aspen Plus Physical Property system. The PPMON subroutines

require the stream information in “packed” form (that is, a reduced list of component mole fractions with the zeroes removed) produced by a

packing utility such as SHS_CPACK. For more information about accessing

physical properties see Chapters 3 and 4 of the User Models manual.10 For a list of the names to feed to DMS_IFCMNC in order to retrieve

component data from Aspen Plus, see Chapter 6 of the User Models 

manual. In this example, the offset (LMW) to the molecular weight data isobtained using the string ‘MW.’ The molecular weight of the first

component listed by the user on the Aspen Plus ComponentsSpecifications Selection sheet (water) is stored in B(LMW + 1). The

molecular weight of protein (really lysine) is stored in B(LMW + 2).

11 The input (feed) stream array MSIN contains NCOMP_NCC+9 elements foreach feed stream. In this example there is only one feed stream so the

second index is always 1. The first index may be 1 through 11 since there

are two components. The first two elements are the mole flows in kmol/sfor water and protein. The following nine elements are total mole flow,

temperature, pressure, enthalpy, vapor fraction, liquid fraction, entropy,density, and molecular weight of the stream. They are listed in Appendix C

of the User Models manual and are in SI units. Since the model equationsin this example use other units, conversions must be performed.

12 The argument list for User 2 models is documented in Chapter 5 of theUser Models manual. IDSMO is an array with dimension (2, NMATO) where

NMATO is the number of material outlet streams. For each stream, there

are 2 four-character labels. In this example, the streams are distinguishedby the first four letters in the label of each (RETE and PERM).

Alternatively, the programmer can instruct users to always connect theRetentate stream first.

13 The SOUT array has the same structure as the MSIN array. It contains the

mole flow, temperature, pressure, and other data for the two productstreams. The program calculates flow rates for each component, the total

flow rates, set the product stream temperatures equal to the feed stream

temperature, and calculates the pressure of each stream. These data aresent to Aspen Plus by filling the first five elements of the SOUT array for

each stream.

14 Other data not included in SOUT will appear on the Blocks | HFUM180 |Results | Configured | Variables sheet because two variables were

Page 69: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 69/90

4 Creating an Aspen Plus Fortran Model 65

designated output only when the user set up the configured variables for

the HollowF model. The protein concentration in g/l for both product

streams appears on the results sheet. Since this is user-specified outputdata, Aspen Plus makes no assumptions about units.

Compiling and Linking theSubroutineUse the aspcomp command to compile the subroutine. Then create a newDLOPT file that contains the name of the new subroutine. Create the DLL file

and place a DLOPT file in the Aspen Plus Working Folder that contains the

path to this new DLL.

1 Save your Fortran code as HFUM.f and exit the development

environment.

2 Start the Aspen Plus Simulation Engine Window. (From the Start menu

click Programs | AspenTech | Process Modeling <version> | AspenPlus | Aspen Plus Simulation Engine.)

3 In the DOS prompt window type cd membrane if your Fortran files are in

a sub-folder of your Aspen Plus Working Directory called membrane.

4 Type aspcomp HFUM to compile the subroutine to create HFUM.obj.

5 Open Membrane2_List_OBJs.opt and replace Mem2.obj with

HFUM.obj.

6 Save the file as HFUM_List_OBJs.opt and exit the text editor.

7 In the DOS window of the Aspen Plus Simulation Engine, type asplink[dlopt HFUM_List_OBJs.opt] HFUM to create HFUM.dll.

8 From the Aspen Plus Working Folder, open Membrane2_Loc_dll.opt and

replace Membrane2.dll with HFUM.dll.

9 Save the file as HFUM_Loc_DLL.opt and exit the text editor.

Running the SimulationUse the membrane2_cm.apw simulation from the previous chapter. Sinceyour model calculations will be performed by the Fortran subroutine, remove

the reference to the Excel file. Then enter the name of the DLOPT file

containing the location of the dll file and run the simulation.

Page 70: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 70/90

66 4 Creating an Aspen Plus Fortran Model

1 Open membrane2_cm.apw.

2 Select Run | Reinitialize (or press Shift-F5) and click OK twice.

3 Go to the Setup | Specifications | Global sheet and change the title to

HFUM.

4 Go to the Blocks | HFUM180 | Setup | Subroutines sheet, change the

name of the Fortran subroutine to HFUM and delete the reference to theExcel file.

5 Select Run | Settings, type HFUM_Loc_DLL.opt in the Linker Options field, and click OK.

6 Run the simulation.

7 Compare your results to those obtained using the Excel model or to the

results displayed below.8 Save the run as HFUM.apw and exit Aspen Plus.

Page 71: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 71/90

4 Creating an Aspen Plus Fortran Model 67

Results from the CustomFortran ModelBlocks HFUM180 Stream Results Material sheet:

Blocks HFUM180 Results Configured Variables sheet:

Page 72: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 72/90

68 5 Creating an Aspen Plus Custom Form

5 Creating an Aspen PlusCustom Form

Creating graphical forms using Microsoft Visual Basic is the last level of 

customization for supporting custom models in Aspen Plus. Configured

variables that were defined for these models can be linked into these forms.

The ability to create forms combined with the templating capabilities that you

used in the previous chapter is a very powerful customization capability. It isnow possible to create forms for an existing plant unit that hides design

parameters for users interested in performing rating only calculations forexample. These forms are easily inserted into Aspen Plus by registering the

OCX file created by Visual Basic 6 using the Aspen Plus ApFormSetup utility.Visual Basic 6 template files are provided with Aspen Plus to reduce the

amount of time required to develop custom forms. Fields commonly used bythe Aspen Plus GUI can be applied to a new sheet by dragging it from a

Controls Toolbox.

In this example, create a special Blocks BLOCKNAME Input_And_Resultsform containing two sheets: an Input sheet that provides access to twoimportant membrane parameters and a Results sheet that contains results of 

particular interest. Include the new form as an addition to the usual formsassociated with the HollowF model and create a new model that contains the

special form.

Note: Visual Basic .NET cannot be used with this example.

Allow about 40 minutes for this session.

Setting Up the Visual BasicEnvironmentUse Visual Basic to create your form (an OCX file), then create a text (OCR)file with specifications, run a program that automatically sets up the Aspen

Plus/Visual Basic interface, create a model that will “own” the form, and test

the new form.

It is important to keep track of file names, project and control names, and the

model name so that the interface works. This example uses literal naming

Page 73: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 73/90

5 Creating an Aspen Plus Custom Form 69

such as ProjectFile, ProjectName, and ModelName. However, the example

uses ordinary names for the form and its two sheets: FormName =

Input_And_Results and Sheet1Name = Input, Sheet2Name = Results.

Aspen Plus provides a Visual Basic project file (.vbp), two Visual Basic controlfiles (.ctl), and two graphics files (.ctx; to support the control files) to define

the development environment for creating Aspen Plus GUI forms.

Use these template files to set up an environment in which you can easily

create custom forms that have the same look and functionality as thestandard Aspen Plus forms.

1 Create a new folder to use as a Visual Basic Working Folder. For example,

create d:\Program Files\AspenTech\Working Folders\Aspen Plus\VB

2 Copy the following files from the GUI\xeq folder of the Aspen Plus 

folder to your VB folder:

tabtemplate.ctltabtemplate.ctxformtemplate.ctlformtemplate.ctx

3 Copy the following file from the GUI\xeq folder of the APrSystem<version> folder to your VB folder:

Template.vbp

4 Open the Visual Basic project by double clicking Template.vbp.

5 Save the project as ProjectFile.vbp. 

6 Select Project | MyModel Properties… and change the Project Name to

ProjectName.

Note: When creating forms after this exercise, you may wish to have

ProjectFile = ProjectName = ModelName. To see clearly how the Aspen

Plus/Visual Basic interface works, keep these three names separate for this

example.7 Select Project | Add User Control | Existing (tab), select

formtemplate.ctl and click open to add the control used for creating

forms to your project.

8 Add tabtemplate.ctl and to your project in the same way.

Now you are ready to create an Aspen Plus form. Your VB window should

look something like this:

Page 74: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 74/90

70 5 Creating an Aspen Plus Custom Form

The cursor in the picture is hovering over the MMTabStrip tool that you

will use to create your custom form. The Toolbox (displayed via View |Toolbox) contains a number of tools in addition to MMTabStrip designed

expressly for creating Aspen Plus GUI forms. The MM prefix indicates an

Aspen Plus tool.

Creating the Visual Basic FormCreate three controls: one parent control (Tab), and two daughter controls(Input and Results). For the Tab control, specify two labeled tabs, and specify

the daughter control corresponding to each tab. For the Input and Resultscontrols, create labeled fields and indicate the Aspen Plus Path to thevariables corresponding to each field.

The text file (.ocr) that you will create provides Aspen Plus with the name of 

the tab control which has links to the two sheets which in turn have links toAspen Plus variables.

First, rename the two templates, and import another instance of 

FormTemplate and rename it as well.

Create Three Named Controls1 Go to the Project window and expand ProjectName (ProjectFile.vbp) 

so that the two control templates appear.

2 Select TabTemplate (tabtemplate.ctl), right-click, and save the file as

TabControlFile.ctl.

3 Double click TabTemplate (TabControlFile.ctl).

A graphics window appears and the Properties window fills with data.

4 Click in the Properties window, change the entry in the (Name) field to

TabControlName and press Enter.

Page 75: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 75/90

5 Creating an Aspen Plus Custom Form 71

The Tab control is now listed in the Project window as TabControlName(TabControlFile.ctl).

5 Change FormTemplate (formtemplate.ctl) to InputControlName(InputControlFile.ctl) by repeating steps 2 – 4 above.

6 Select Project | Add User Control | Existing (tab) and import another

instance of formtemplate.ctl.

7 Change FormTemplate (formtemplate.ctl) to ResultsControlName(ResultsControlFile.ctl) .

Page 76: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 76/90

72 5 Creating an Aspen Plus Custom Form

After cleaning up, your window will look something like this:

Next, build the Tab control. Use the MMTabStrip tool and make two tabs

(the default is three so you’ll have to delete one) linked to the Input andResults sheets.

Build the Tab Control1 From your VB project, maximize the TabControlName window.

2 From the toolbox on the left-hand side of the VB window, click .

3 Move the cursor onto the drawing area in the TabControlName window(it becomes a crosshair).

4 Click and drag diagonally across the drawing area and release the mouseto create a box with three tabs.

This “box with three tabs” is called a tab strip.

Page 77: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 77/90

5 Creating an Aspen Plus Custom Form 73

5 Select the tab strip, right-click, and select Properties.

The Property Pages dialog box appears.

6 In the Caption field, type Input.

7 Create the link to the Input control by typing

ProjectName.InputControlName in the FormName field.

Property Pages dialog, close-up view:

8 Advance the Current Tab field from 0 to 1 by clicking the up arrow to the

right of the field.

9 In the Caption field, type Results.

10 Create the link to the Results control by typing

ProjectName.ResultsControlName in the FormName field.

11 Advance the Current Tab field to 2.

12 Click Remove Tab as you need only two tabs, the 0th and 1st.

Page 78: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 78/90

74 5 Creating an Aspen Plus Custom Form

13 Click OK.

The tab strip, (most-recently-edited tab is bold):

Note: The MMTabStrip object selected above and the User Control object(selected if you click in the drawing area outside the tab strip) are separate

objects with separate properties.

14 Reduce the TabControlName window so that you can access the othercontrols.

15 Select TabControlName (TabControlFile.ctl) in the project window,

right-click, and select Save TabControlFile.ctl 

Next, build the Input control. Use the MMFrame tool to create a frame for

two input fields. Then use the MMLBUText tool to create the two fields –

one labeled Channel Hydraulic Diameter and the other labeled ChannelLength.

In the HollowF model, you created named variables for the membraneparameters and they appeared on the Configured Variables sheet. Now

two of these variables will also appear on your new Input sheet. You willspecify the Aspen Plus paths to these variables in the Input control you

are about to build.

Build the Input Control1 Maximize the InputControlName window.

2 From the toolbox, click .

3 Click and drag in the drawing area of the Input control to create a Frame.4 Select View | Properties Window or press F4 to open the Properties 

window.

Page 79: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 79/90

5 Creating an Aspen Plus Custom Form 75

5 Enter Membrane Parameters in the Caption field.

The Properties window :

6 Close the Properties window.

7 From the toolbox, click .

8 Click and drag in the upper half of the Frame to create a field area. It

won’t look nice right away.

9 Select the new field area, right-click, and select Properties.

Another Property Pages dialog box appears. Use it to position and label

the field and assign it a path to an Aspen Plus variable.

10 Select the MMLBTUText tab, and clear the checkboxes for the Basis and

Units fields.

11 Set the Width for the Label to 2350.

12 Set the Left parameter for the Text to 2400.

Page 80: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 80/90

76 5 Creating an Aspen Plus Custom Form

13 Select the MMLBTUTextLabel tab, type Channel Hydraulic Diameter in the Label Caption field.

14 On the Variable tab, click Add to create a variable having a Node

datatype.15 In the first Path column, enter main, Input, User Table, DIAM respectively

into the first four cells. Use a space between the words User and Table.

The full path to variable you defined as DIAM when you created the

HollowF model is shown below in the Aspen Plus Variable Explorer

window which is accessed by via the Tools | Variable Explorer… 

command. The variable main used above is automatically assigned to thepath to the block containing your form:

Application.Tree.Data.Blocks.B1 in this example. This is importantbecause any given block could have any user-chosen name at run time.

Page 81: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 81/90

5 Creating an Aspen Plus Custom Form 77

16 Click OK to close the Property Pages dialog box.

17 Select the Channel Hydraulic Diameter field area and resize it so that itdoesn’t take up too much space in the Membrane Parameters frame.

18 Click in the tool box.

19 Click and drag in the frame to create a small label.

20 Select the label, right-click, select Properties and enter cm in the

Caption field..

21 Resize the label and move it to the right of the Channel HydraulicDiameter field.

22 Reduce the InputControlName window.

23 Select InputControlName (InputControlFile.ctl) in the Project

window, right-click, and select Save.

24 Repeat steps 7-23 and create a Channel Length field mapped to the LEN

variable with path: main.Input.User Table.LEN.

The eventual Blocks BLOCKNAME Input_And_Results Input sheet lookslike this:

Page 82: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 82/90

78 5 Creating an Aspen Plus Custom Form

Note: In this example we used a mixture of MMControls (the MMLBTU from

the template) and standard Visual Basic controls (the Label control). It is fine

to mix and match these. The MMControls already have the code definedwithin them to reference values from the Aspen Plus variable tree as specified

through the property page in step 15 of the above example. When you don'tneed to connect a control to an Aspen Plus variable, you can use standard

Visual Basic controls. If you are going to write more sophisticated forms whichoperate on the input data before writing it into the Aspen Plus variables, use

standard Visual Basic controls and use GetVar to access the Aspen Plus

variables. See Using GetVar to Access Aspen Plus Variables in the onlinehelp.

Next, build the Results control. An abbreviated procedure is given below –

refer to steps 7 – 21. Create two fields, Permeate Protein Concentration and Retentate Protein Concentration. Specify paths to the two Outputonly variables, CP_PROT and CR_PROT, that you defined in the HollowF model.

Build the Results Control1 Make a frame called Membrane Performance.

2 Make a field for Permeate Protein Concentration and map the variable to:main, Output, User Tree, CP_PROT.

3 Make a field for Retentate Protein Concentration and map the variable to:main, Output, User Tree, CR_PROT.

4 Add the concentration units (g/l) next to each field.

The eventual Blocks BLOCKNAME Input_And_Results Results sheet looks

like this:

5 Save the ResultsControlFile.ctl file.

6 Save the Visual Basic Project.

7 Select File | Make ProjectFile.ocx… and click OK to create the ocx file

that will be registered with the operating system and thereby integrated

with Aspen Plus.

8 Exit the VB development environment.

Page 83: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 83/90

5 Creating an Aspen Plus Custom Form 79

The Finished Project 

Integrating Forms with AspenPlusThe connection between Aspen Plus and your custom form is accomplished by

means of two files. The OCX file created above contains the actual form. A

text file with the OCR extension will contain specifications for the form.

The OCR file contains the name of the unit operation model that uses the

form, the name of the form as it will appear on the Data Browser menu tree,

the name of the tab control, and information specifying the placement of thenew form in the list of forms.

Your new form applies only to a USER2-based custom model (called

ModelName in this example) for a hollow fiber ultrafiltration membrane. Thenew form should appear only with this particular model. The ModelName 

model should contain all the usual USER2 forms. Then do this:

Rename the OCX file to ModelName.ocx.

Create an OCR file called ModelName.ocr.

Put the specification for the new form into your OCR file.

Copy and paste specifications for the usual USER2 forms from the Aspen Plus

OCR files in GUI\forms to your OCR file.

Put copies of your OCR and OCX file in GUI\forms.

Use ApFormSetup.exe in GUI\xeq to register your OCX file (the OCR file is

processed automatically).

A step-by-step procedure is provided below.

Create OCR and OCX Files for Your Model1 Rename ProjectFile.ocx to ModelName.ocx.

2 Create a text file called ModelName.ocr with the first line as shown

below. Letters in the name of the unit operation model (in this case

Page 84: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 84/90

80 5 Creating an Aspen Plus Custom Form

MODELNAME) must ALL be capitalized even if the actual Aspen Plus model

is called ModelName.

A form called Input_And_Results will appear in the Blocks folder on the

Data Browser menu tree when a ModelName block is placed in theProcess Flowsheet. Aspen Plus will use the tab control object called

ProjectName.TabControlName to create the form. The number “5” isfor position in the form list and the number “1” indicates a tabbed form.

3 Use the Windows Search tool (Start | Search | For Files or Folders) to

find .OCR files in the GUI\forms folders in Aspen Plus and APrSystem thatcontain Blocks\USER2 specifications.

Note: On Windows XP, the search will not find any files unless you haveset the Indexing Service to Index file types with unknownextensions. To do this:

a. Click Start | Search | For Files or Folders.

A Search Results window appears, with all options available.

b. Click Change Preferences.

c. Click With Indexing Service (for faster local searches).

d. Click Change Indexing Service Settings (Advanced).

Note: You do not need to turn on the Index service.

e. On the toolbar, click (Show/Hide Console Tree).

f. In the left pane, right-click Indexing Service on Local Machine.

g. Click Properties.

h. On the Generation tab, ensure the checkbox Index files withunknown extensions is selected.

i. Click OK.

 j. Close the Indexing Service console and re-run your original search.

Page 85: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 85/90

5 Creating an Aspen Plus Custom Form 81

4 Open the files containing the Blocks\USER2 specifications and copy and

paste these lines into ModelName.ocr.

5 Replace Blocks\USER2 with Blocks\MODELNAME.

Your new form called Input_And_Results (position 5) will be placedafter the Setup and Petro Characterization forms (positions 0 and 1

respectively). The Setup form will open by default when you click on theBLOCKNAME folder in the Data Browser. The CC, NodeName entries are

for the Aspen Plus completion checking system.

6 Save ModelName.ocr and exit the text editor.

7 Copy ModelName.ocr and ModelName.ocx to the GUI\Forms folder of 

the Aspen Plus installation.

Next, register the ocx file with the operating system to give Aspen Plusaccess to the three controls you created:

o  ProjectName.TabControlName

o  ProjectName.InputControlName

o  ProjectName.ResultsControlName

Register the OCX FileBefore you follow this procedure, ensure that Aspen Plus is not running.

1 Run ApFormSetup.exe in the GUI\xeq folder of the Aspen Plus

installation.

The Register Forms dialog box appears listing all OCX files in theGUI\Forms folder.

2 Click Deselect All to clear all the selections.

Page 86: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 86/90

82 5 Creating an Aspen Plus Custom Form

3 In the Product specific forms list, scroll down to ModelName.ocx and

click it so that only it is selected.

4 Select Update Data Browser Menu since you are only adding a form toa previously-built menu.

5 Click Next.

The Data Browser updates (new entries are made in the System Registry)

so that Aspen Plus has access to the new form. The Register PlotWizard dialog box appears.

6 Click Deselect All and then click Finish since you have no new plot

wizard files to register.7 Click OK when ApFormSetup.exe announces success.

8 Optional: Run Regedit.exe (click Start | Run, type Regedit in the

Open field and click OK.) and examine the new entries under

HKEY_CLASSES_ROOT. Exit the Registry Editor without changing

anything.

The three VB control objects that you created are listed.

Page 87: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 87/90

5 Creating an Aspen Plus Custom Form 83

Testing the New FormOpen HFUM.apw and create a new model called ModelName in yourultrafiltration library. Then replace the HollowF model with the new model

and run the simulation.

1 Open HFUM.apw.2 Press Shift-F5 to reinitialize the run.

3 Select Library | References… and check Ultrafiltration.

4 Select Library | Ultrafiltration | Writable.

5 Select the HollowF block, called HFUM180, right-click, and select Add toModel Library.

A series of dialog boxes appears. Step 6 contains abbreviated instructions– refer to Chapter 3 for details.

6 When the Enter name to use for the model type field appears, type

ModelName. Otherwise, select the following options: Add: Create aNew etc., etc.,; Membranes; Single Block Custom Model; and Copy

current icon only. Then click Finish.7 Delete the HollowF model on the Process Flowsheet, replace it with a

ModelName model, and reconnect the streams.

8 Name the new block CFTEST.

9 Open the Data Browser and go to the Blocks | CFTEST |Input_And_Results | Input sheet. Note the data in the two fields.Check the Results sheet. There is no data there yet.

10 Go to the Blocks | CFTEST | Setup | Subroutines sheet. If it is not

already there, type HFUM in the Model field and eliminate the referenceto the Excel file.

11 Go to the Blocks | CFTEST | Setup | Stream Flash sheet and set

Temperature & pressure flashes for both product streams.

12 Select Run | Settings and type HFUM_Loc_dll.opt in the LinkerOptions field if it is not already there.

13 Run the simulation.

14 Go to the Blocks | CFTEST | Input_And _Results | Results sheet tocheck the results.

15 Go to the Blocks | CFTEST | Input_And_Results | Input sheet,change the input values of the two parameters, run the simulation again,

and click the results tab to see the changes.

16 Save the simulation as HFUM_CF.apw and exit Aspen Plus.

Page 88: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 88/90

84 5 Creating an Aspen Plus Custom Form

Results from the Custom FormThe customized Data Browser menu tree:

Page 89: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 89/90

5 Creating an Aspen Plus Custom Form 85

The Blocks CFTEST Input_And_Results Input sheet with new data:

The Blocks CFTEST Input_And_Results Results sheet after the run withnew data:

Page 90: Aspen-Getting Started Customizing Unit Operation Model

8/9/2019 Aspen-Getting Started Customizing Unit Operation Model

http://slidepdf.com/reader/full/aspen-getting-started-customizing-unit-operation-model 90/90

6 Connecting to the AspenPlus Simulation Engine

If either of the following conditions exist, you will be prompted to specify the

host computer for the Aspen Plus simulation engine after you start the Aspen

Plus User Interface:

•  The simulation engine is not installed on your PC.

•  The simulation engine is installed on your PC, but the Activator securitydevice is not connected to your PC.

In these cases, the Connect to Engine dialog box appears.

1 In the Server type field, click and select the type of host computerfor the simulation engine.

2 If you choose Local PC as the server for the simulation engine, you do not

need to enter any more information into the dialog box. Click OK tocontinue.

If you choose Windows 2000 or XP server as the server for the simulationengine, enter the following additional information:

3 In the Node name field, enter the node name of the computer on whichthe Aspen Plus simulation engine will execute.

4 In the other fields, enter the following information:

User name Your user name for the specified

host/server.

Password Your password for the above username


Recommended