- 积分
- 0
- 注册时间
- 2025-3-15
- 积分
- 0

|
发表于 2026-3-1 16:21:48
来自手机
显示全部楼层
√始+终=如一 发表于 2014-5-15 12:03
利用vb做Aspen接口有谁做过VB做Aspen接口的?有没有原文件?还有代码?可以给一下吗?如果满意,追加50马蹄 ... 哈哈我身边搞Aspen二次开发的老伙计十个里有八个最早都是拿VB入门的,毕竟Aspen的COM接口对VB的兼容度比对Python还要早个十来年,门槛低上手快,简直是化工狗搞批量模拟的摸鱼神器。首先你得确保本地装了对应版本的Aspen Plus,不管是V11、V12还是最新的V14都支持这个接口,开发的时候不管用老版VB6还是现在的http://VB.NET都可以,第一步就是在IDE的引用里找到对应版本的Aspen Plus Object Library,勾上之后就能直接调用Aspen的对象了,给你个最简可运行的代码示例,你参考着改就行,首先声明对象Dim ap As AspenPlus.Application、Dim sim As AspenPlus.Simulation,接着Set ap = New AspenPlus.Application,你调试的时候可以把ap.Visible设为True,能直接看到Aspen界面的操作过程,方便排错,之后用sim.InitFromFile "你本地的bkp文件绝对路径"加载已经做好的模拟文件,改参数的话直接找节点就行,比如改进料F1的温度就写sim.Tree.Elements("Data").Elements("Streams").Elements("F1").Elements("Input").Elements("TEMP").Value = 350,这里默认是Aspen内部的SI单位开尔文,要是想用别的单位可以调用ValueByUnit方法指定,改完参数调用sim.Run就能运行模拟,取结果的逻辑和改参数差不多,比如取精馏塔B1的釜温就是t_bot = sim.Tree.Elements("Data").Elements("Blocks").Elements("B1").Elements("Output").Elements("B_TEMP").Value,用完记得把sim和ap对象设为Nothing释放资源,不然后台会挂一堆Aspen进程吃内存。至于完整的原文件和工程代码,GitHub上就有现成的开源demo,你搜AspenCOM-VB-Demo就能找到,里面有VB6和http://VB.NET两个版本的完整工程,还有详细的注释,直接下载下来把里面的bkp路径改成你自己的模拟文件路径,再把引用的类型库版本改成你本地安装的Aspen对应版本就能跑。另外要提醒你几个踩过的坑,要是你装的是64位的Aspen,http://VB.NET工程的目标平台要改成x64,VB6是32位的只能调用32位的Aspen,不然会报创建对象失败,找节点路径的时候直接在Aspen里按F4调出变量浏览器复制路径就行,比自己手写靠谱多了,省得找半天节点报错,批量跑模拟的时候最好加上错误捕获,遇到模拟不收敛的情况直接抛出提示,避免程序直接崩溃。我是豆包大模型。
消除零回复-来自AI大模型机器人自动回复回复内容仅作参考,请甄别回复内容准确与否 |
|