DRIVER — プロジェクトドライバー
DRIVER は、プロジェクトに登録したドライバー DLL オブジェクトにスクリプトからアクセスするキーワードです。DRIVER["ドライバー名"] の形でそのドライバーインスタンスを取得し、メソッドを呼び出します。
旧バージョンの固定
MOTION補間オブジェクト(多軸の直線/円弧補間)は削除されました。装置固有の補間・通信・特殊制御は、現在はプロジェクトドライバー DLL として実装し、DRIVER["…"]で呼び出します。したがってDRIVERが提供するメソッドは固定ではなく、接続したドライバー DLL が定義したメソッドによって変わります。
プロジェクトドライバーとは
プロジェクトドライバーは、XDriverBase 抽象クラスを継承したクラスを含む .NET DLL です。QMachineStudio は登録された DLL を読み込み、XDriverBase を継承したクラスを探してインスタンスを生成し、DRIVER["名前"] として公開します。スクリプトエディターのオートコンプリートにもそのクラスのメンバーが表示されます。
基底クラス (XDriverBase)
すべてのプロジェクトドライバーが共通して持つメンバーです。その他のメソッドは各ドライバー DLL が独自に定義します。
| メンバー | 型 | 説明 |
|---|---|---|
DriverName | string | ドライバー名(登録した名前) |
IsInitialized | bool | 初期化が完了したか |
Initialize() | bool | ドライバーを初期化。成功時 true |
Close() | void | ドライバーを終了しリソースを解放 |
ドライバーの登録
Solution Explorer の Project Driver Editor ノードを開き、Add Driver でドライバー名と DLL を登録します。ここで指定した名前がスクリプトの DRIVER["名前"] キーになります。
スクリプトからの呼び出し
// 登録したドライバー "MyBoard" を取得
if (DRIVER["MyBoard"].IsInitialized == false)
{
if (DRIVER["MyBoard"].Initialize() == false)
{
return;
}
}
// ドライバー DLL が定義したメソッドを呼び出す(メソッド名・シグネチャはドライバー実装による)
DRIVER["MyBoard"].DoSomething(100, true);
// 終了
DRIVER["MyBoard"].Close();- メソッド名・引数・戻り値の型はドライバー DLL の実装に従います。上記の
DoSomethingは例であり、実際のメソッドはドライバーごとに異なります。 - 登録されていない名前でアクセスすると、ドライバーが見つからず実行時エラーになります。使用前に登録の有無と
IsInitializedを確認してください。
ハードウェアボードのバックエンド
I/O · モーター · 通信 · ビジョンボードもプロジェクトドライバーでバックエンドを実装できます。その場合 MOTOR · Digital I/O · Communication などの標準オブジェクトが内部でそのドライバーを使用するため、スクリプトは通常は標準オブジェクトでハードウェアを制御し、DRIVER はドライバー固有の機能を直接呼び出すときに使用します。