شما اینجا هستید

خانه

نحوه ارتباط با Automation Hysys توسط MFC با استفاده از Visual Studio 2008/2010

???? ??? ?? ?? ?????? ??? ????? HYSYS ??? ?? ??? ???? ??? ???????? ?????? ???? ? ?????? ??? ?? ?? ??????? ?? ?? ?? ???? ?????? ?? ??????? ??????? ?? ???? ???? ????. ?? ?????? ??? ?????? ??? ??? ????? ????? ?????? ?? ?? ???? OLE ?? Object Linking & Embedding ???. ??? ?????? ?? ???? ???? ?????? ????? ??? ?? ???? ??????? Microsoft Office ?? ?? ???? (Excel) ? Word ? ... ?? ?? ???? ?? ??? ? ??? ?????? ?? ?? ???????? ?????? ???? ?? ??? ?? ?? ???? ?????? ????? ?? ?? ?????? ???? ????. ???? ?????? ????? Visual Basic ?? VB ?? ???? ????? ? ????? ?? ?????? ????? COM ????? ??? ??? ?? ?? ??? ??? ??????? ???? ???? ??? ???.

Manchester City Away Uniform, manchester City Dog Accessories, manchester City Soccer Light Blue Windbreaker http://jerseycheap4sale.com/24-Manchester-City-Away-Uniform-Manchester-City-Dog-Accessories-Manchester-City-soccer-light-blue-windbreaker.html

??? ???? ??????? ?? ??? ????? ???? ?? ??? ?? ?? ?????? ????? ?????? ??? ??????? ?? ?? ????? ?????? ?? ??? ????? ????? ?? ??? ?? ?? ???? ????????? ? ?? ????? ?? ????? ???. ???? ???? ???? ???? ?? ??? ??????? ?? ???? ???? ?? ????? ???? ????. ?? ?? ???? ?? ??????? ??? ??? ?? ????? ????? ?? ???????? ??? 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 ???? ??? ???? ? ???? ????? ????? ???? ????. ?? ????? ?? ???? ??? ???? ?? ????:

  1. ????? ?? ????? ?? ??? C++ MFC ????? ?? ????. ( ??? ? ??????? ?? ??? ????.)
  2. ??? ????? ????? ??? ?? ???? Solution Explorer ???? ???? ?? ???? ? ????? Add à Class  ?? ?????? ?? ????.
  3. ?? ????? ??? ????? ???? ????? MFC Class From TypeLib ?? ?????? ??? ?? ????? ??? ???? ???:

Hysys Classes from TypeLibrary

      4. ?? ????? ???? ?????  File ?? ?????? ???? ? ?? ??? Location ???? tlb ??? ????? Hysys ?? Aspen ?? ?????? ????:

C:\Program Files\AspenTech\Aspen HYSYS 2006\hysys.tlb

      5. ?? ??? Interfaces ???? ???? ( ????)  ?? ?? ???? ????? ?? ???? ??? ???? ?????? ???? ?? Visual Studio ?? ?? ?? ???? ??? ????? ?????. (???? ???? ?? ?????? ??? ???? ?? ???? ????? ??? ????? ????). Visual Studio ?? ???? ?? ????? ?? ?????? ?? ????? ?? ???? ????? ???? ? ????? ????? ? ???? ???? ?? ?? ???? ?? ???? ???? ????? ????? ?? ???.

HYSYS 2006 Type Library

        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,

% get/put array, save, and close
% First open an Excel Server
Excel = actxserver('Excel.Application');
set(Excel, 'Visible', 1);
% Insert a new workbook
Workbooks = Excel.Workbooks;
Workbook = invoke(Workbooks, 'Add');
% Make the second sheet active
Sheets = Excel.ActiveWorkBook.Sheets;
sheet2 = get(Sheets, 'Item', 2);
invoke(sheet2, 'Activate');
% Get a handle to the active sheet
Activesheet = Excel.Activesheet;
% Put a MATLAB array into Excel
A = [1 2; 3 4];  
ActivesheetRange = get(Activesheet,'Range','A1:B2');
set(ActivesheetRange, 'Value', A);
% Get back a range.  It will be a cell array, 
% since the cell range can
% contain different types of data.
Range = get(Activesheet, 'Range', 'A1:B2');
B = Range.value;
% Convert to a double matrix.  The cell array must contain only scalars.
B = reshape([B{:}], size(B));
% Now save the workbook
invoke(Workbook, 'SaveAs', 'myfile.xls');
% To avoid saving the workbook and being prompted to do so,
% uncomment the following code.
% Workbook.Saved = 1;
% invoke(Workbook, 'Close');
% Quit Excel
invoke(Excel, 'Quit');
% End process
delete(Excel);

برای اتصال به Hysys هم به طور مشابه اپلیکیشن مربوطه رو ایجاد کرده و آبجکت ها و متد هایی رو که لازم دارید استفاده میکنید.

لینک کمکی:

http://www.codeproject.com/Articles/5848/Using-ActiveX-Control-Inside-MATLAB

 

موفق باشید

سلام .وقت بخیر.

میخواستم یه واکنش با فرمول سینتیک پیچیده به هایسیس اضافه کنم. باید چکار کنم؟

افزودن نظر جدید

درباره من

سلام. به وب سایت شخصی من خوش آمدید.

محمد ذات خواهی هستم متولد سال 66 اهل رشت. سال 89 از دانشگاه شریف با مدرک لیسانس مهندسی شیمی و سال 91 از دانشگاه علم و صنعت ایران با مدرک ارشد کنترل و شبیه سازی فرایند فارغ التحصیل شدم، و در حال حاضر به عنوان مهندس نرم افزار در شرکت گسترش فرایند شریف هستم. از اونجایی که از دبیرستان به الگوریتم و برنامه نویسی علاقه داشتم از همون موقع تو این حیطه کار می کنم. بیشترین توانایی من در طراحی نرم افزار های مهندسی شیمی، طراحی وب و کلا کد نویسی هست. خوش حال میشم بتونم به دیگران کمک کنم خصوصا در حوزه آموزش. سعی می کنم تو این وب سایت مطالب و تجربه هایی که فکر می کنم به درد علاقه مندان به حوزه نرم افزار و برنامه نویسی بخوره قرار بدم. امیدوارم شما هم با نظرات و انتقادات و بحث های علمی تون در ارتقای محتوی علمی این وب سایت من رو یاری کنید.

 

Mohammad Zatkhahi Image

 

.

?>