Skip to main content

CNC 例 02: 変数を使用したオンライン デコード

を参照してください CNC02_online.project のインストールディレクトリにあるサンプルプロジェクト CODESYS..\CODESYS SoftMotion\Examples.

この例は、次の方法を示しています。 変数を使用する CNC プログラムをデコードします。

CNCエディタでNCプログラムを作成する

  1. 作成する CNCOnline とのプログラム SoftMotion コントローラ。

  2. グローバル変数リストを作成し、2つの変数を宣言します。

    VAR_GLOBAL
            g_x: REAL:=100;
            g_y:REAL:=50;
    END_VAR
  3. を挿入します CNCプログラム 名前の付いたオブジェクト Example

    を選択 実装Din66025 そしてその コンパイルモードSMC_CNC_REF.プログラムで変数を使用するため、このモードが必要です。

  4. 次のモーションブロックを指定します。

    CNCエディター:

    _sm_img_example_cnc2_1.png

ドライブインターフェースとPLC構成の作成

ドライブ構造を定義します(例: CNCdirect)。

IECプログラムの作成

  1. 名前の付いたPOU(CFC)を追加します Path アプリケーションに。

    OUTQUEUEのNCプログラムのデコードと速度チェックは、 Path プログラム。

    呼び出し SMC_CheckVelocities 必要とされている。

    CFC:

    _sm_img_example_cnc2_3.png
  2. 名前の付いたPOU(CFC)を追加します Ipo アプリケーションに。

    このプログラムは、 CNCdirect サンプルプロジェクト。ただし、補間器のデータ入力はCNCプログラム名に対応していません(ADR(Example))、ただしパス前処理機能ブロックのOutQueue出力(checkVel.poqDataOut)。

パス前処理用のタスクの作成

コンパイルモードを選択したため SMC_CNC_REF、IECプログラムでデコードとパス前処理を実行する必要があります。この計算には時間がかかります。デコーダー呼び出しごとに1つのパスオブジェクトが生成されるため、補間器サイクルで実行する必要はありません。このオブジェクトは通常、多くの補間器呼び出しに使用されます。この操作を、優先度が低く、呼び出しの頻度が少ないタスクに交換する必要があります。

  1. 作成する PathTask タスク。

  2. 次のパラメータを定義します。

    • 優先順位:10

    • 間隔:T#30ms

  3. 追加します Path タスクへのPOU。

1. 「PathTask」タスク
「PathTask」タスク


. 根本的なメカニズム:
  • 遅いタスクでは、最初はサイクルごとに約1つのGEOINFOオブジェクトが生成されます。このオブジェクトは、デコーダ機能ブロックのOUTQUEUE構造に格納されます。 OUTQUEUEがいっぱいになると、低速タスクの機能ブロックは、OUTQUEUEがいっぱいでなくなるまで一時停止します。これは、高速タスクが最初のGEOINFOオブジェクトを処理し、それをOUTQUEUEから削除するとすぐに発生します。

  • 次に、低速タスクの機能ブロックが再びアクティブになり、OUTQUEUE構造を埋めます。

  • 高速タスクでは、OUTQUEUE構造からのパスポイント。 DataIn への入力ポイントは、各サイクルで計算および処理されます。 GEOINFOオブジェクトは通常、複数のパスポイントで構成されているため、最初のGEOINFOオブジェクトが補間器によって自動的に処理および削除されるまでに数サイクルかかります。

  • GEOINFOオブジェクトの処理は、作成とは対照的に数サイクル続くため、遅いタスクは速いタスクよりも頻繁に呼び出すことができません。

  • ただし、タスク時間は、十分なGEOINFOオブジェクトが常に低速タスクの最後のOUTQUEUEに格納されるように選択する必要があります。これにより、データのアンダーランが発生しなくなります。これは、DataInから補間器に使用できるGEOINFOオブジェクトがなく、パスの終わりにまだ到達していない場合に発生します。この場合、補間器は速度を落とし、新しいデータ要素が再び利用可能になるまで停止します。

オペレーティングインターフェイスとテストインターフェイスの作成

視覚化はに対応します CNCdirect.project サンプルプロジェクト。新しい機能ブロックにテンプレートを追加します(SMC_NCDecoderSMC_CheckVelocities)。グローバル変数の表示も作成します g_xg_y 後で試運転時にそれらの機能を確認できるようにします。

試運転

作成したプログラムをコンパイルして起動します。プログラムは、CNCモーションを実行するとすぐに Execute デコーダーとインターポレーターの入力が設定されています。グローバル変数の値を変更すると、デコーダーが再起動され、それに応じてパスが調整されるときに使用されます。の機能を監視する Append デコーダーの入力も。