ブログ - MATLAB/simulinkでDXLIB2を動かす

MATLAB/simulinkでDXLIB2を動かす

カテゴリ : 
その他
2011-8-19 20:20
MATLABでできてsimulinkでできないことはないよな。ってことで試してみた。
検証環境は前回同様以下の通り。
直接simulinkからDLLを呼出すことはできそうになかったので、MATLABを経由して呼出すことにした。
前回パスは通しているので、いきなりモデルを作成。ちなみにモデルのパスも登録が必要だ。

FunctionではなくEmbedded MATLAB Functionを配置して編集。
dx_openの中身は以下の通り。
function ret = dx_open()
eml.extrinsic ('dxopen');
ret = 0;
ret = dxopen();
MATLABで宣言したdxopenを呼出しているだけ。 当然dxopenはmファイルだ。
function ret = dxopen()
  if exists('dxlib2.h','file') ~= 2;
  disp('Not found');
  devid = 0;
 else
if ~libisloaded('dxlib2'); loadlibrary('dxlib2.dll','dxlib2.h'); end
  devid = calllib('dxlib2','DX_OpenPort','\\.\COM4',1000000);
 if devid ==0; unloadlibrary('dxlib2'); end
  disp('call DX_OpenPort');
  end
  ret = devid;
 disp('start end');
mファイルは前回使用したものを分割して戻り値を返すようにしただけなので、他のmファイルは割愛。
結果は次の通り。


まぁsimulinkから呼出せているからこれで良しとする。

トラックバック

トラックバックpingアドレス http://www.besttechnology.co.jp/modules/d3blog/tb.php/98