自动化服务器暴露的对象

Aspen Plus 公开的对象 参见:HappLS 对象、打开模拟的示例

Aspen Plus 通过 HappLS(也称 IHapp)对象向外暴露功能。Happ 类仅支持这一种对象类型。可将 Aspen Plus 应用对象声明为 IHapp 或 HappLS 类型,借助该对象即可访问其余所有对象及其属性与方法。

Aspen Plus 公开的对象如下:

表格

复制

对象 说明
HappLS Aspen Plus 客户端对象
IHNode Aspen Plus 问题的输入与结果数据以树形结构呈现,由 IHNode 对象组成
IHNodeCol 每个 IHNode 可拥有子节点,这些子节点被组织在 IHNodeCol 集合对象中
IHAPEngine 提供对 Aspen Plus 模拟引擎的接口

以下代码演示如何通过自动化接口新建一个 Aspen Plus 模拟:

vb

复制

Dim MyAspenPlus As Object
Set MyAspenPlus = CreateObject("Apwn.Document")
MyAspenPlus.InitNew2

' 在此处操作 Aspen Plus

' 使用完毕后:
Set MyAspenPlus = Nothing

注意:本节许多示例使用 CreateObject("Apwn.Document") 创建自动化对象,该调用不指定版本。 强烈建议使用带版本号的调用:在字符串末尾追加 Aspen Plus 的内部版本号(如 "Apwn.Document.26.0")。 这样,当系统中装有多个版本时,可确保启动的是指定版本;升级 Aspen Plus 时只需更新版本号即可。

HappLS 对象 HappLS(即 IHapp)对象是 Aspen Plus 暴露的主对象,提供以下方法与属性:

  • 打开模拟问题

  • 控制 Aspen Plus 图形界面的可见性

  • 保存问题

  • 向外发送事件

打开模拟的示例 以下 VB 示例从备份文件 pfdtut.bkp 获取已有模拟问题的模拟对象,并将 Visible 属性设为 True,以显示 Aspen Plus 图形界面。

vb

复制

Function OpenSimulation() As Happ.IHapp

    Dim ihAPSim As Happ.IHapp
    On Error GoTo ErrorHandler

    Const VERSION As String = "V14"
    Const VERSIONNUMBER As String = "34.0"   '内部版本号

    '默认路径
    Dim defaultpath As String
    defaultpath = Environment.GetEnvironmentVariable("ProgramFiles") & _
                  "\AspenTech\Aspen Plus " & VERSION & "\GUI"

    '从注册表读取实际安装路径
    Dim path As String
    Dim regKey As Microsoft.Win32.RegistryKey
    regKey = Microsoft.Win32.Registry.LocalMachine. _
             OpenSubKey("SOFTWARE\AspenTech\Aspen Plus\" & VERSIONNUMBER & "\mm", False)

    If regKey Is Nothing Then
        regKey = Microsoft.Win32.Registry.LocalMachine. _
                 OpenSubKey("SOFTWARE\Wow6432Node\AspenTech\Aspen Plus\" & _
                            VERSIONNUMBER & "\mm", False)
    End If

    If Not regKey Is Nothing Then
        path = regKey.GetValue("mmtop", defaultpath).ToString()
        regKey.Close()
        path = path & "\Examples\"
    Else
        path = defaultpath & "\Examples\"
    End If

    '打开已有模拟
    Dim AspenPlus As Object
    AspenPlus = GetObject(path & "pfdtut.bkp")
    ihAPSim = AspenPlus.Application

    '显示图形界面
    ihAPSim.Visible = True

    '返回 Aspen Plus 的 Happ 对象
    Set OpenSimulation = ihAPSim
    Exit Function

ErrorHandler:
    MsgBox "OpenSimulation 发生错误:" & Err.Description
    End
End Function

说明: GetObject 引用会在后台启动 AspenPlus.exe 作为进程外服务器。随后,同一进程或其他进程对同一问题文件的任何引用,都会连接到该已运行的 Aspen Plus 服务器实例。

Aspen Plus 树形结构 Aspen Plus 将模拟问题的输入与结果数据组织成树形结构。 要访问所需数据,必须先理解并遍历该树,定位并识别目标变量。为此,可借助 Aspen Plus 用户界面中的“变量浏览器(Variable Explorer)”。