33: 2014-06-11 (水) 14:50:23 takaboo | 34: 2014-06-12 (木) 16:32:31 takaboo | ||
---|---|---|---|
Line 95: | Line 95: | ||
--初期リリース~ | --初期リリース~ | ||
- | アーカイブファイルには以下のファイルが同梱されます。必要に応じて解凍してください。(注意:Ver2.8以降の記述に更新されています) | + | アーカイブファイルには以下のファイルが同梱されます。必要に応じて解凍してください。(※最新版のフォルダ構成を記載しています) |
|DXLIB|dxlib_x32.dll|<|ライブラリ本体 | | |DXLIB|dxlib_x32.dll|<|ライブラリ本体 | | ||
|~|dxlib_x64.dll|<|~| | |~|dxlib_x64.dll|<|~| | ||
Line 216: | Line 216: | ||
DXLIB.llbから各viを開き、開いたviの右上にあるアイコンを自分のブロックダイアグラムにドラッグドロップするという操作でviを使用しても良いのですが、頻繁に操作するとなると少々煩雑です。~ | DXLIB.llbから各viを開き、開いたviの右上にあるアイコンを自分のブロックダイアグラムにドラッグドロップするという操作でviを使用しても良いのですが、頻繁に操作するとなると少々煩雑です。~ | ||
関数パレットに登録すればスムーズに操作できますので、その手順を紹介します。 | 関数パレットに登録すればスムーズに操作できますので、その手順を紹介します。 | ||
- | #ref(lvmenu_step1.png) | + | +LabVIEWのメニューの「ツール」→「上級」→パレットセットを編集」をクリック。 |
- | #ref(lvmenu_step2.png) | + | #ref(lvmenu_step1.png,100%) |
- | #ref(lvmenu_step3.png) | + | +開いた関数パレットの空いたスペースで右クリックし、ポップアップメニューから「挿入」→「サブパレット」をクリック。 |
- | #ref(lvmenu_step4.png) | + | #ref(lvmenu_step2.png,100%) |
- | #ref(lvmenu_step5.png) | + | +開いたダイアログボックスから「LLBへリンク(.llb)」を選びOKを押す。 |
+ | #ref(lvmenu_step3.png,100%) | ||
+ | +LLBを選択するファイルダイアログボックスから、先に解凍したファイルの中から「DXLIB.llb」を選択しOKを押す。 | ||
+ | #ref(lvmenu_step4.png,100%) | ||
+ | +次の様なメニューが追加されたらOK。 | ||
+ | #ref(lvmenu_step5.png,100%) | ||
***DELPHI [#bdd8ef87] | ***DELPHI [#bdd8ef87] | ||
Line 230: | Line 235: | ||
ここではVBと似たMicrosoft OfficeのVBAを使用し、マクロの標準モジュールにDXLIB_HEADという名称でDLLに含まれるいくつかのAPIが定義してあります。~ | ここではVBと似たMicrosoft OfficeのVBAを使用し、マクロの標準モジュールにDXLIB_HEADという名称でDLLに含まれるいくつかのAPIが定義してあります。~ | ||
Module1にPingTestとMotorTestというマクロが記述されていますので、ワークシートから適宜マクロを呼び出して実行してください。結果がシート上に反映されます。 | Module1にPingTestとMotorTestというマクロが記述されていますので、ワークシートから適宜マクロを呼び出して実行してください。結果がシート上に反映されます。 | ||
+ | |||
+ | なお、Officeにも32bit版と64bit版があるため、Declare宣言の方法が異なります。その部分はDXLIB_HEADにて判定していますので、参考にしてください。 | ||
***Ruby [#r63b1e3e] | ***Ruby [#r63b1e3e] | ||
Line 646: | Line 653: | ||
DX_ClosePort (dev); | DX_ClosePort (dev); | ||
} | } | ||
+ | |||
+ | ***DX_ReadSyncData [#oc111b2e] | ||
+ | SYNCインストラクションには読み出し機能が無いが、DX_ReadBlockDataを使用して指定された複数IDからブロック読み出しを行う。正確には「同期」していない。 | ||
+ | bool DX_ReadSyncData (TDeviceID dvid, uint8_t *dat, uint32_t size, uint8_t *retdat, TErrorCode *err); | ||
+ | -パラメータ | ||
+ | --[[TDeviceID>#TDeviceID]] '''dvid''' | ||
+ | ~DX_OpenPortで開いた際の[[TDeviceID>#TDeviceID]]。 | ||
+ | --uint8_t '''*dat''' | ||
+ | ~読み出す情報の保存先~ | ||
+ | [addr][length][ID1][ID2]...[IDn]~ | ||
+ | addr:先頭アドレス (1バイト)~ | ||
+ | length:先頭アドレスからのバイト数 (1バイト)~ | ||
+ | IDn:読み出す対象IDを列挙 (nバイト)。 | ||
+ | --uint32_t '''size''' | ||
+ | ~datのサイズ。 | ||
+ | --uint8_t '''result'''~ | ||
+ | 読み出したデータの保存先~ | ||
+ | [ID1][ALARM1][DATA1_0]....[DATA1_m]~ | ||
+ | [ID2][ALARM2][DATA2_0]....[DATA2_m]~ | ||
+ | ... | ||
+ | [IDn][ALARMn][DATAn_0]....[DATAn_m]~ | ||
+ | IDn:対象ID (1バイト)~ | ||
+ | ALARMn:TErrorCode (2バイト)~ | ||
+ | DATAn_m:読み出されたデータ | ||
+ | --[[TErrorCode>#TErrorCode]] '''*err''' | ||
+ | ~エラーコード。 | ||
+ | -戻り値 | ||
+ | --bool | ||
+ | ~指定された全てのIDに対する読み出しが正常に完了したらtrue、それ以外はfalseを返す。~ | ||
***DX_WriteSyncData [#v566e16b] | ***DX_WriteSyncData [#v566e16b] |