Skip to main content

ブロック検索の使用

ブロック検索により、中断後も補間を続行できます。停止位置が最初に移動し、パスはこの位置から変更されずに移動します。このためには、補間を実行するプログラムとパス前処理を実行するプログラムを拡張する必要があります。

51.

中断されたフライス盤が移動を停止します。修復後、パスはブロック検索を続行できます。



次の方法でアプリケーションを拡張します

  • 前処理位置を保存する補間タスクの機能ブロックインスタンス

  • パス要素を短縮するパスタスクの機能ブロックインスタンス

詳細については、SMC_BlockSearchSavePos、SMC_BlockSearchPos、およびSMC_BlockSearchを参照してください。

前処理位置の保存

あなたは使用することができます SMC_BlockSearchSavePos コマンドの現在位置を保存するための機能ブロック。このとき、関数ブロックのインスタンスは補間器のタスクで実行する必要があります。この例の補間プログラムの名前は「CNC」です。

  1. のインスタンスを宣言します SMC_BlockSearchSavePos 補間が実行するプログラムの機能ブロック。

    bssp: SMC_BlockSearchSavePos;

  2. 接続します ipo の入力 SMC_BlockSearchSavePos 補間インスタンスへのインスタンス。

  3. 接続します bExecute CNCプログラムがキャンセルされたときにアプリケーションで設定される制御変数への入力(たとえば、 bAbort SMC_Interpolatorインスタンスの入力が設定されました)。に保存されている位置 ePos 出力は、次の方法によるブロック検索に使用されます。 SMC_BlockSearc。中断後、 bExecute 立ち上がりエッジでリセットする必要があります。

52.

のインスタンスで補間を実行するプログラムの一部 SMC_BlockSearchSavePos CFCの機能ブロック。

_sm_img_interpolation_with_block_search.png


ブロック検索の使用

のインスタンス SMC_BlockSearch 関数ブロックは、残りのパスの前処理と同じタスクで、通常は直前に呼び出す必要があります。 SMC_CheckVelocities ファンクションブロック。立ち上がりエッジが存在する場合 bExecute、次にブロック検索が実行されます。開始後、保存された位置が移動し、パスはこの位置から変更されずに移動します。

  1. のインスタンスを宣言します SMC_BlockSearch パス前処理が実行するプログラムの機能ブロック。

    bs: SMC_BlockSearch;

  2. のトリガーを実装します bExecute の入力 SMC_BlockSearch 実例。

  3. 以前に保存された位置 SMC_BlockSearchSavePos 関数ブロックは、として渡される必要があります epos の入力 SMC_BlockSearch ファンクションブロック。

53. 例:パス前処理でのブロック検索
PROGRAM CNC_PreparePath
...
VAR
        bs: SMC_BlockSearch;
END_VAR
...
bs(
                ePos:=CNC.bssp.ePos ,
                bExecute:=rncf.bExecuteDecoder ,
                bAbort:= ,
                bAppend:= ,
                poqDataIn:=ncd.poqDataOut ,
                bStartFromSavedPos:=CNC.bssp.bPositionStored ,
                nSizeOutQueue:=SIZEOF(agiBufBlockSearch) ,
                pbyBufferOutQueue:=ADR(agiBufBlockSearch) ,
                bDone=> ,
                bBusy=> ,
                bError=> ,
                wErrorID=> ,
                poqDataOut=> );

NS bStartFromSavedPos 入力は、制御変数を使用してアクティブにすることもできます。キャンセル後、最後に保存した位置から再開するために、制御変数をアクティブにすることができます。