コンテンツにスキップ

IStageインターフェース

名前空間: OptoCombToolkit.Libs.Embedded.Stages.Core.Apis

アセンブリ: OptoCombToolkit.Libs.Embedded.Stages.Core.dll

ステージの基本制御機能を提供するインターフェースです。

public interface IStage

プロパティ

StageConfig

ステージの構成情報。

IStageConfig StageConfig{get;}

戻り値

IStageConfigインターフェースタイプのステージ構成情報のオブジェクトインスタンスをリターンします。

Positions

ステージの全軸の現在位置。

double[] Positions {get;}

戻り値

全軸の現在位置を格納する配列をリターンします。

AxesReady

ステージの全軸移動中かどうか。

bool[] AxesReady{get;}

戻り値

ステージの全軸移動中かどうか状態を格納する配列をリターンします。

trueの場合は、該当軸が静止で移動指令受付可能状態です。

falseの場合は、該当軸が移動中です。

AxesOriginReady

ステージの全軸が原点復帰済みかどうか。

bool[] AxesOriginReady{get;}

戻り値

ステージの全軸が原点復帰済みかどうかを格納する配列をリターンします。。

trueの場合は、該当軸が原点復帰済み状態です。

falseの場合は、該当軸が原点復帰未実施状態です。

AxesEmergencyStatus

ステージの全軸が非常停止かどうか。

bool[] AxesEmergencyStatus{get;}

戻り値

ステージの全軸が非常停止かどうかを格納する配列をリターンします。

trueの場合は、該当軸が非常停止中です。

falseの場合は、該当軸が非常停止されていないこと。

備考

神津ステージの装置の仕様で、非常停止された場合は全軸が全部非常停止状態になります。 よって、以下のコードで神津ステージが非常停止かどうかが感知可能です。

bool isStageEmergency = AxesEmergencyStatus.Any(x=> x == true);

AxesControllerError

ステージの全軸がコントローラーエラーかどうか。

bool[] AxesControllerError{get;}

戻り値

ステージの全軸がコントローラーエラーかどうかを格納する配列をリターンします。

備考

神津ステージの場合、コントローラーと軸が一対多のことがあるため、 軸ごとにコントローラーエラーかどうかを判断する必要があります。

AxesSoftLimitStatus

ステージの全軸がソフトリミットエラーかどうか。

AxesSoftLimitStatus[] AxesSoftLimitStatus{get;}

戻り値

ステージの全軸がソフトリミットエラーかどうかを格納する配列をリターンします。

WithinLimitの場合は、該当軸がフトリミットエラーになっていないこと。

OverPlusLimitの場合は、該当軸が+方向にソフトリミットエラーが発生していること。

OverMinusLimitの場合は、該当軸が-方向にソフトリミットエラーが発生していること。

メソッド

JogMove(int,double)

指定軸にジョグ運転。

void JogMove(int axisNo, double speed)

パラメータ

axisNo:軸のインデックス番号です。

speed:ジョグ移動速度。リニア軸の場合、単位はmm/secです。回転軸の場合、単位はdeg/secです。

サンプルコード

// ステージのインスタンスを取得します
IStage stage = KohzuStageConfig.DefaultConfig.GetStage();

// 軸構成配列のインデックス0番の軸で10mm(deg)/sec速度でジョグ運転します
stage.JogMove(0, 10.0);

// 同期でジョグ移動を停止します
stage.Stop(0);

// 非同期でジョグ移動を停止します
EStopStatus result = await stage.WaitUntilStopAsync(0);

// 非同期で移動停止した場合、戻り値で異常判断をします
if(result == EStopStatus.ErrorStop)
{
    // 異常で移動停止された場合の処理をここに実装します
}

MoveAbs(int,double,double)

同期で軸を一定の速度で指定された位置に移動します。

void MoveAbs(int axisNo, double targetPosition, double speed)

パラメータ

axisNo:軸のインデックス番号です。

targetPosition: 軸の移動先の目標位置です。リニア軸の場合、単位はmmです。回転軸の場合、単位はdegです。

speed:移動速度。リニア軸の場合、単位はmm/secです。回転軸の場合、単位はdeg/secです。

Warning

同期方式のため、この関数実行完了後軸が既に静止状態とは限りません。

サンプルコード

// このAPIの使用場面は、多軸を同時に移動させ、その後多軸の移動完了まで待つことを想定しています。

// ステージのインスタンスを取得します
IStage stage = KohzuStageConfig.DefaultConfig.GetStage();

// インデックス番号0, 1, 2の三軸を同時に移動します
stage.MoveAbs(0, 10.0, 10.0);
stage.MoveAbs(1, 10.0, 5.0);
stage.MoveAbs(2, 10.0, 1.0);

// 非同期で三軸の移動完了まで待ちます
IEnumerable<EStopStatus> results = await stage.WaitUntilStopAsync();

// 非同期で移動停止した場合、戻り値で異常判断をします
if(results.Any(x => x == EStopStatus.ErrorStop))
{
  // 一軸でも異常が起きた場合のエラーハンドリングをここで実装します
}

Danger

多軸を同時に移動する前に、各軸が衝突しないことを確認してください。

MoveRel(int,double,double)

同期で単軸を一定の速度で現在の位置から指定されたオフセット値で移動します。

void MoveRel(int axisNo, double distance, double speed)

パラメータ

axisNo:軸のインデックス番号です。

distance: オフセット値。リニア軸の場合、単位はmmです。回転軸の場合、単位はdegです。オフセット値には符号付き可能です、 軸の移動方向に一致します。

speed:移動速度。リニア軸の場合、単位はmm/secです。回転軸の場合、単位はdeg/secです。

Warning

同期方式のため、この関数実行完了後軸が既に静止状態とは限りません。

サンプルコード

MoveAbs(int,double,double)に参照してください。

OriginMove(int)

同期で単軸に対し原点復帰を行います。

void OriginMove(int axisNo)

パラメータ

axisNo:軸のインデックス番号です。

Warning

同期方式のため、この関数実行完了後軸が既に静止状態とは限りません。

サンプルコード

MoveAbs(int,double,double)に参照してください。

OriginMove()

同期で全軸に対し原点復帰を行います。

void OriginMove()

Warning

同期方式のため、この関数実行完了後軸が既に静止状態とは限りません。

サンプルコード

MoveAbs(int,double,double)に参照してください。

Stop(int)

同期で単軸に対し明示的に移動停止指令をします。

void Stop(int axisNo)

パラメータ

axisNo:軸のインデックス番号です。

Warning

同期方式のため、この関数実行完了後軸が既に静止状態とは限りません。

StopAll()

同期で全軸に対し明示的に移動停止指令をします。

void StopAll()

Warning

同期方式のため、この関数実行完了後軸が既に静止状態とは限りません。

ReleaseEmergency()

非常停止が起きた場合、非常停止を解除する。

void ReleaseEmergency()

Warning

非常停止解除が失敗した場合(例えば物理非常停止スイッチが解除されていないことまたは ステージの非常停止原因が解消されていないこと)、非常停止解除すると例外が吐き出されることがあります。

UpdateAxisStatus()

ステージの情報更新します。

void UpdateAxisStatus()

Note

このAPIはステージの情報を更新するのみ機能します。更新後、必要な情報取得するのに明示的に各プロパティをアクセスする必要があります。

GetExpectAccelerationTime(int,double)

該当軸が静止状態から指定の速度までの加速時間を計算します。

double GetExpectAccelerationTime(int axisNo, double speed)

パラメータ

axisNo:軸のインデックス番号です。

speed:移動速度。リニア軸の場合、単位はmm/secです。回転軸の場合、単位はdeg/secです。

CreateCustomAxisPropertyItem(int)

軸ごとの内部パラメータを取得します。

object? CreateCustomAxisPropertyItem(int)

Danger

このAPIは開発調整向けで、基本は使用することはありません。

MoveAbsAsync(int,double,double)

非同期で軸を一定の速度で指定された位置に移動します。

Task<EStopStatus> MoveAbsAsync(int axisNo, double targetPosition, double speed)

パラメータ

axisNo:軸のインデックス番号です。

targetPosition: 軸の移動先の目標位置です。リニア軸の場合、単位はmmです。回転軸の場合、単位はdegです。

speed:移動速度。リニア軸の場合、単位はmm/secです。回転軸の場合、単位はdeg/secです。

戻り値

非同期実行タスクをリターンします。非同期実行結果はEStopStatusのデータが内包されています。

NormalStop: 正しく移動完了したことを表します。

ErrorStop: 移動中に軸にエラーが発生し、途中停止されたことを表します。

Note

EStopStatusデータタイプはOpotoCombToolkit.Libs.Embedded.Core.nupkgのパッケージにあるため,依頼関係パッケージとしてプロジェクトに インストールされていることをご確認ください。

サンプルコード

// 同期で軸の移動して、その軸の移動完了まで待ちます
stage.MoveAbs(0, 10.0, 10.0);
EStopStatus result = await stage.WaitUntilStopAsync(0);

// 上記の二行コードを非同期でまとめることができます
EStopStatus result = await stage.MoveAbsAsync(0,10.0, 10.0);

MoveRelAsync(int,double,double)

非同期で単軸を一定の速度で現在の位置から指定されたオフセット値で移動します。

Task<EStopStatus> MoveRelAsync(int axisNo, double distance, double speed)

パラメータ

axisNo:軸のインデックス番号です。

distance: オフセット値。リニア軸の場合、単位はmmです。回転軸の場合、単位はdegです。オフセット値には符号付き可能です、 軸の移動方向に一致します。

speed:移動速度。リニア軸の場合、単位はmm/secです。回転軸の場合、単位はdeg/secです。

戻り値

非同期実行タスクをリターンします。非同期実行結果はEStopStatusのデータが内包されています。

NormalStop: 正しく移動完了したことを表します。

ErrorStop: 移動中に軸にエラーが発生し、途中停止されたことを表します。

Note

EStopStatusデータタイプはOpotoCombToolkit.Libs.Embedded.Core.nupkgのパッケージにあるため,依頼関係パッケージとしてプロジェクトに インストールされていることをご確認ください。

サンプルコード

MoveAbsAsync(int,double,double)に参照してください。

OriginMoveAsync(int)

非同期で単軸に対し原点復帰を行います。

Task<EStopStatus> OriginMoveAsync(int axisNo)

パラメータ

axisNo:軸のインデックス番号です。

戻り値

非同期実行タスクをリターンします。非同期実行結果はEStopStatusのデータが内包されています。

NormalStop: 正しく移動完了したことを表します。

ErrorStop: 移動中に軸にエラーが発生し、途中停止されたことを表します。

Note

EStopStatusデータタイプはOpotoCombToolkit.Libs.Embedded.Core.nupkgのパッケージにあるため,依頼関係パッケージとしてプロジェクトに インストールされていることをご確認ください。サンプルコード

MoveAbsAsync(int,double,double)に参照してください。

OriginMoveAsync()

非同期で全軸に対し原点復帰を行います。

Task<IEnumerable<EStopStatus>> OriginMoveAsync()

戻り値

非同期実行タスクをリターンします。非同期実行結果はEStopStatusのデータが内包されています。

NormalStop: 正しく移動完了したことを表します。

ErrorStop: 移動中に軸にエラーが発生し、途中停止されたことを表します。

Note

EStopStatusデータタイプはOpotoCombToolkit.Libs.Embedded.Core.nupkgのパッケージにあるため,依頼関係パッケージとしてプロジェクトに インストールされていることをご確認ください。サンプルコード

サンプルコード

MoveAbsAsync(int,double,double)に参照してください。

WaitUntilStopAsync(int)

非同期で軸の移動完了まで待ちます。

Task<EStopStatus> WaitUntilStopAsync(int axisNo)

パラメータ

axisNo:軸のインデックス番号です。

戻り値

非同期実行タスクをリターンします。非同期実行結果はEStopStatusのデータが内包されています。

NormalStop: 正しく移動完了したことを表します。

ErrorStop: 移動中に軸にエラーが発生し、途中停止されたことを表します。

Note

EStopStatusデータタイプはOpotoCombToolkit.Libs.Embedded.Core.nupkgのパッケージにあるため,依頼関係パッケージとしてプロジェクトに インストールされていることをご確認ください。サンプルコード

サンプルコード

// 同期で単軸の原点復帰を行います
stage.OriginMove(0);

// 非同期で原点復帰完了まで待ちます
EStopStatus results = await stage.WaitUntilStopAsync(0);

WaitUntilStopAsync()

非同期で全軸の移動完了まで待ちます。

Task<IEnumerable<EStopStatus>> WaitUntilStopAsync()

戻り値

非同期実行タスクをリターンします。非同期実行結果は各軸のEStopStatusデータを格納する配列が内包されています。

サンプルコード

WaitUntilStopAsync(int)に参照してください。