Hysys Excel Automation

Hysys Excel Automation Training

Tuesday, October 1, 2013

How to Use Hysys Splitter in VBA

Hi there,

This post is requested by Mayembe. He asked me to post a VBA code in Excel to access Hysys splitter.

Here is the VBA example

=================================================



' VBA code starts here
Option Explicit
Public hyApp As HYSYS.Application
Public simCase As SimulationCase
Public tee1 As TeeOp


Public Sub StartHYSYS()
Dim filename As String
Dim ratio As Variant

 ' LOADING HYSYS SIMULATION FILE
    Set hyApp = CreateObject("HYSYS.Application")
    hyApp.Visible = True
    Set simCase = hyApp.ActiveDocument
    If simCase Is Nothing Then
        filename = Worksheets("Sheet1").Range("c4")
        
        If filename <> "False" And simCase Is Nothing Then
            Set simCase = GetObject(filename, "HYSYS.SimulationCase")
            simCase.Visible = True
        End If
    End If

Set tee1 = simCase.Flowsheet.Operations("teeop").Item("tee-101")
ratio = tee1.SplitsValue
ratio(0) = Worksheets("Sheet1").Range("c5").Value
ratio(1) = Worksheets("Sheet1").Range("c6").Value

tee1.Splits.SetValues ratio, ""

        
End Sub
'this is the end of VBA code

=====================================

Just for your note, "TEEOP" is a operation code name for "TEE" or splitter in Hysys.

And here is the excel interface. I use previous example of hysys file to develop our model. If you forget about our previous hysys model, check previous example





Grab hysys file  and excel file from google drive


That's it. Hysys splitter is in your hand.

Let me know that you have comment or request. We'll see what I can do. I hope.



Alex 

Wednesday, May 15, 2013

Pipe Segment of Aspen Hysys Through Excel VBA



Now, we're trying to access pipesegment on Aspen Hysys 7.3 through VBA. This post is an answer of previous post comment.

Here is the example

Create a table as shown figure



Then add following VBA code

Option Explicit

Public hyApp As HYSYS.Application
Public simCase As SimulationCase
Public pStream As ProcessStream
Public psegment As PipeSegment


Public Sub StartHYSYS()
Dim filename As String
Dim ITEM As Integer
Dim lengthVar As Variant
Dim p_length, p_elev, p_rough, p_idiam, p_odiam, p_cond As Variant
    
    ' HYSYS CUSTOMATION THROUGH EXCEL TO ACCESS PIPE SEGMENT
    
    ' LOADING HYSYS SIMULATION FILE
    Set hyApp = CreateObject("HYSYS.Application")
    
    hyApp.Visible = True
    Set simCase = hyApp.ActiveDocument
    If simCase Is Nothing Then
        filename = Worksheets("HYSYS").Range("C4").Text
        
        If filename <> "False" And simCase Is Nothing Then
            Set simCase = GetObject(filename, "HYSYS.SimulationCase")
            simCase.Visible = True
        End If
    End If
  
    ' define operation
    Set psegment = simCase.Flowsheet.Operations("pipeseg").ITEM("pipe-100")
        
    ' define pipesegment's parameters
    p_length = psegment.SegmentLengthValue
    p_elev = psegment.SegmentElevationChangeValue
    p_rough = psegment.RoughnessValue
    p_idiam = psegment.SegmentInnerDiamValue
    p_odiam = psegment.SegmentOuterDiamValue
    p_cond = psegment.PipeConductValue
    
    

    ' collecting data as variant

    For ITEM = 1 To 4
        p_length(ITEM - 1) = Cells(6, ITEM + 2)
        p_elev(ITEM - 1) = Cells(7, ITEM + 2)
        p_odiam(ITEM - 1) = Cells(8, ITEM + 2)
        p_idiam(ITEM - 1) = Cells(9, ITEM + 2)
        p_rough(ITEM - 1) = Cells(10, ITEM + 2)
        p_cond(ITEM - 1) = Cells(11, ITEM + 2)
            
    Next ITEM
    
    ' inputting data to hysys
    psegment.SegmentLength.Values = p_length
    psegment.SegmentElevationChange.Values = p_elev
    psegment.Roughness.Values = p_rough
    psegment.SegmentInnerDiam.Values = p_idiam
    psegment.SegmentOuterDiam.Values = p_odiam
    psegment.PipeConduct.Values = p_cond
      
    ' FINISH
End Sub

As you can see, Hysys model is just as simple as following figure.








And now, pipe segment is on your hand :D

Friday, May 3, 2013

How to create and acces molar component (molar flowrate, composition, ect)

It has been so long time not to update this blog. And now I'm posting how to access stream component fraction, component molar flowrate and mass flowrate.

Here is the VBA example




Option Explicit
Public hyApp As HYSYS.Application
Public simCase As SimulationCase
Public pStream As ProcessStream
Public Sub StartHYSYS()
Dim filename As String
Dim ITEM As Integer
Dim Compositions As Variant        

' HYSYS CUSTOMATION THROUGH EXCEL TO ACCESS STREAM COMPONENTS        


' LOADING HYSYS SIMULATION FILE    


Set hyApp = CreateObject("HYSYS.Application")        

hyApp.Visible = True    
Set simCase = hyApp.ActiveDocument    
If simCase Is Nothing Then        
          filename = Worksheets("HYSYS").Range("C4").Text               
If filename <> "False" And simCase Is Nothing Then            
          Set simCase = GetObject(filename, "HYSYS.SimulationCase")            
          simCase.Visible = True        
End If    
End If      


' READ DATA FROM EXCEL TO "STREAM 1"    

Set pStream = simCase.Flowsheet.MaterialStreams.ITEM("STREAM 1")    
Compositions = pStream.ComponentMolarFractionValue    
For ITEM = 0 To 11        'collect composition data as variant        
          Compositions(ITEM) = Worksheets("HYSYS").Range("D" & ITEM + 7).Value    
Next ITEM   

' apply composition data    

pStream.ComponentMolarFraction.Values = Compositions            
' WRITE COMPOSITION DATA FROM HYSYS TO EXCEL FROM "STREAM 3"       

Set pStream = simCase.Flowsheet.MaterialStreams.ITEM("STREAM 3")    

For ITEM = 0 To 11        ' number of components are 12
  ' component molar fraction        
Worksheets("HYSYS").Range("E" & ITEM + 7).Value = pStream.ComponentMolarFraction(ITEM)
  ' component mass flowrate        
Worksheets("HYSYS").Range("F" & ITEM + 7).Value = pStream.ComponentMassFlow(ITEM)
   ' component molar fraction    
Worksheets("HYSYS").Range("G" & ITEM + 7).Value = pStream.ComponentMolarFlow(ITEM)
Next ITEM            

' FINISH


End Sub



Spreadsheet is look like this figure


Please note, hysys file source is located in Cell C4, refer to following code 
               filename = Worksheets("HYSYS").Range("C4").Text

Hysys stream is configured as following figure





Hope that helps. Any thought? Please feel free to comment.
, , ,