شما اینجا هستید
نحوه ارتباط با Automation Hysys توسط MFC با استفاده از Visual Studio 2008/2010
???? ??? ?? ?? ?????? ??? ????? HYSYS ??? ?? ??? ???? ??? ???????? ?????? ???? ? ?????? ??? ?? ?? ??????? ?? ?? ?? ???? ?????? ?? ??????? ??????? ?? ???? ???? ????. ?? ?????? ??? ?????? ??? ??? ????? ????? ?????? ?? ?? ???? OLE ?? Object Linking & Embedding ???. ??? ?????? ?? ???? ???? ?????? ????? ??? ?? ???? ??????? Microsoft Office ?? ?? ???? (Excel) ? Word ? ... ?? ?? ???? ?? ??? ? ??? ?????? ?? ?? ???????? ?????? ???? ?? ??? ?? ?? ???? ?????? ????? ?? ?? ?????? ???? ????. ???? ?????? ????? Visual Basic ?? VB ?? ???? ????? ? ????? ?? ?????? ????? COM ????? ??? ??? ?? ?? ??? ??? ??????? ???? ???? ??? ???.
??? ???? ??????? ?? ??? ????? ???? ?? ??? ?? ?? ?????? ????? ?????? ??? ??????? ?? ?? ????? ?????? ?? ??? ????? ????? ?? ??? ?? ?? ???? ????????? ? ?? ????? ?? ????? ???. ???? ???? ???? ???? ?? ??? ??????? ?? ???? ???? ?? ????? ???? ????. ?? ?? ???? ?? ??????? ??? ??? ?? ????? ????? ?? ???????? ??? Heuristics ????? ?? ??? ??? Iterative ? ... ???? ???? ???? ?? ?? ????? ????? ????? ???? ?? ??? ??? ?? ???? ???? ? ?????? ????? ???? ????. ?? ????? ??? ????? ???? ?? ??? ??? ?????? ?? ???? ?? ???? ?????? ????? ?? ????? ??? ???? ???? ?????? ????? ?????? ?? ?? ?? ????? ????? ? ???? ???? ???? ? ...
???? ?? ?? ???? COM ? VB ???? ?????. ???? ?? ???? ???? ??? ???? ????? ?? ??? ????? HYSYS ?? ???? VB ???. ??? ?? ??? ???? ????? ?? ???? ??? (COM) ????? ??? ? ???? ?? ?? ???? ??????? ???. ???? ???? ? ???? ?????? ??? ?? ??? ?? ???? ???? ?? VB ?? ???? IUnknown ???? ?? ???? ?? ??? ???? (Interface) ????? ??? ???? ?? ?? ??????? ??????? COM ???. ? ?? ???? ??? ???? ?? ????? ??? ???? ?? ???????? ?? ????. ??? interface ?? ???? ?? ??? ???? ??? ???? ??? ?????? ???? ?? ?? ??? ????? COM ?? ?? C++ ???? ??? ????? ???? VB ? ??? ???? ??? ??????? ????? ????? ?? ???? ?? ?????!
??? ???? ????? ??? ????? ????? ?? ???? ????? ?? ??? ????? HYSYS ?? ???? C++ ??????? ????. ????? ????? ???? ??? ???? ????? ????. ???? ???? ??? ??? ?????? ????? ??? ?? ?? ???? c++ ??? ? ?? ?????? ?? hysys ??? ????. ?? ???? ??? ??? ?? performance ?????? ???? ????? (????? ?? ????? ???? ??) ?? ???? ??? ?? ???? ??? ?? ???? ?? VB ?? ?? ???? ??? ???. ???? ???? ?? ??? Fluid Package ?? ?? ??? ??? ????? ????? ????? ?????? (Extension) ?? ??????? ?? VB ???? ?????. (????? ???? ???? ?? performance ???.)
??? ?? ??? ?? ??? ??? ???? ??? ?? ??? ???? ?? ??????? ?? Visual Studio ?? ???? ??? ??? ????? ???. ???? ???? ?? ??????? ?????? ?? ??????? ?? COM ?? ????? ??????? ? ???? ??????? ?? MFC ? ATL ?? ???? ????? ??? ????? ??? ???? ?????? ?? ?? ???. ?? ???? ???? ????? ?? ??? ?? ???????? MFC ??????? ????.
???????? ??????? ???? ?? Visual Studio ???? ??? ???? ? ???? ????? ????? ???? ????. ?? ????? ?? ???? ??? ???? ?? ????:
- ????? ?? ????? ?? ??? C++ MFC ????? ?? ????. ( ??? ? ??????? ?? ??? ????.)
- ??? ????? ????? ??? ?? ???? Solution Explorer ???? ???? ?? ???? ? ????? Add à Class ?? ?????? ?? ????.
- ?? ????? ??? ????? ???? ????? MFC Class From TypeLib ?? ?????? ??? ?? ????? ??? ???? ???:
4. ?? ????? ???? ????? File ?? ?????? ???? ? ?? ??? Location ???? tlb ??? ????? Hysys ?? Aspen ?? ?????? ????:
C:\Program Files\AspenTech\Aspen HYSYS 2006\hysys.tlb
5. ?? ??? Interfaces ???? ???? ( ????) ?? ?? ???? ????? ?? ???? ??? ???? ?????? ???? ?? Visual Studio ?? ?? ?? ???? ??? ????? ?????. (???? ???? ?? ?????? ??? ???? ?? ???? ????? ??? ????? ????). Visual Studio ?? ???? ?? ????? ?? ?????? ?? ????? ?? ???? ????? ???? ? ????? ????? ? ???? ???? ?? ?? ???? ?? ???? ???? ????? ????? ?? ???.
6. ???? Finish ?? ??? ? ????? ?????? ?? ??? ???? ??? ?????? ??? ????? ????. (???? ?? ?? ???? ?? ???? ???? ???? ?? ??? ???? ????? ????.)
7. ?????? ???? ?? ? ???? ???????? ?? ?? ? ???????? ??? ?? ???? ?? ???? ?? ????? Hysys ???? ? ?? ??????? ??? ??? ????? ???? ?????? ???. ( ????? ?? ?? ????? ???? ??? ?? VB ????? ?? ??? ? ????? ?? ?? ?? ??? ???? ???? MFC ????? ?? ????.)
8. ???????? ??????? ???? ? ????? ?? hysys ???? ????? ????? ??? ???? ?????? ??? ?? ??? ? ??? ? ???? ???? ????? ????? ?? ??????? ?? ???? ???? ???? ???? ?? ???? ???! ???? ???? ?? ?? ??? ????? ??? CApplication ?? ???? Application ????? ?? ???? (Attach) ?? ??? ? ?? ??????? ?? ??? get_SimulationCases ?? ??? ???? ???? ????? ? ??? simulationcase ?????? ???? ?? ???.
???? ???? ?? ???????? ??? IDispatch ?? ?? ?????? hysys ?? ???? ???? ???? ??? AttachDispatch ?? ?? ???? ??? (?? ??? ?? ????? ????? ??? ?? CSimulationCases2) ???? ????. ??? ?? ??????? ?? ??? Add ?? SimulationCase ???? ????? ????? ??. ???????? ????? ?????? ????? ???? ?? ???? ?? ???. ?? ?????? ?? ??? VARIANT ??? ? ??? ?????? ?? ??? ?? ????. ???? ??? ?????? ?? ?? ????? ?? VB ??? ?? ?? ????? ?? ??? ???? ?? ??? ?? ?? ?????? ??? ???? ?? ??? SimulationCase ???. ?? ????? ?? ???? ????? ?? ?? ???? IDispatch ?? ??? ?? ??????? ?? ????? ?? ??????? ?? ????? pdispVal ?? ???? ?? ??? ???? ?????? ???? ??? ? ?? ?? ?? ???? C_SimulationCase ???? ???. ? ?? ???? ????? ???? ???? ???? ???? ?? ??? ?? ???? ???? ???? ? ??????? ????.
????? ?????:
void CMainFrame::OnFileStarthysys()
{
CLSID clsidWMP;
LPDISPATCH pWMPDispatch = NULL;
CApplication hysyApp;
CSimulationCases2 simulationCases;
C_SimulationCase simulationCase;
try
{
AfxCheckError(::CLSIDFromProgID(_T("hysys.application"), &clsidWMP));
AfxCheckError(::CoCreateInstance(clsidWMP, NULL, CLSCTX_LOCAL_SERVER,
IID_IDispatch, (LPVOID*)&pWMPDispatch));
hysyApp.AttachDispatch(pWMPDispatch, TRUE);
pWMPDispatch = NULL; // our COleDispatchDriver now owns the interface
hysyApp.put_Visible(TRUE);
LPDISPATCH simCaseList = hysyApp.get_SimulationCases();
simulationCases.AttachDispatch(simCaseList);
VARIANT name;
name.vt = VT_BSTR;
name.bstrVal = SysAllocString(L"test simcase");
VARIANT type;
type.vt = VT_INT;
type.intVal = 0;
VARIANT simulation_case = simulationCases.Add(name, type);
simulationCase.AttachDispatch(simulation_case.pdispVal);
simulationCase.Activate();
}
catch (COleException* pe)
{
pe->ReportError();
pe->Delete();
}
catch (CMemoryException* pe)
{
pe->ReportError();
pe->Delete();
}
}
?????? ????? ????? ?? ??? ????
دیدگاهها
راهنمایی
سلام
چگونه می شود
aspen hysys
را به متلب به صورت دینامیکی لینک کرد؟
با سلام
با سلام
برای لینک شدن به برنامه Hysys با استفاده از نرم افزار MATLAB باید از دستور های مربوط به actxserver استفاده کنید.
برای مثال برای ساخت یک اکتیو ایکس ساده اکسل:
% Open Excel, add workbook, change active worksheet,
برای اتصال به Hysys هم به طور مشابه اپلیکیشن مربوطه رو ایجاد کرده و آبجکت ها و متد هایی رو که لازم دارید استفاده میکنید.
لینک کمکی:
http://www.codeproject.com/Articles/5848/Using-ActiveX-Control-Inside-MATLAB
موفق باشید
سلام .وقت بخیر.
سلام .وقت بخیر.
میخواستم یه واکنش با فرمول سینتیک پیچیده به هایسیس اضافه کنم. باید چکار کنم؟
افزودن نظر جدید