CNC 例 02: 変数を使用したオンライン デコード
を参照してください CNC02_online.project
のインストールディレクトリにあるサンプルプロジェクト CODESYS 下 ..\CODESYS SoftMotion\Examples
.
この例は、次の方法を示しています。 変数を使用する CNC プログラムをデコードします。
CNCエディタでNCプログラムを作成する
作成する
CNCOnline
とのプログラム SoftMotion コントローラ。グローバル変数リストを作成し、2つの変数を宣言します。
VAR_GLOBAL g_x: REAL:=100; g_y:REAL:=50; END_VAR
を挿入します CNCプログラム 名前の付いたオブジェクト
Example
。を選択 実装
Din66025
そしてその コンパイルモードSMC_CNC_REF
.プログラムで変数を使用するため、このモードが必要です。次のモーションブロックを指定します。
CNCエディター:
ドライブインターフェースとPLC構成の作成
ドライブ構造を定義します(例: CNCdirect
)。
IECプログラムの作成
名前の付いたPOU(CFC)を追加します
Path
アプリケーションに。OUTQUEUEのNCプログラムのデコードと速度チェックは、
Path
プログラム。呼び出し
SMC_CheckVelocities
必要とされている。CFC:
名前の付いたPOU(CFC)を追加します
Ipo
アプリケーションに。このプログラムは、
CNCdirect
サンプルプロジェクト。ただし、補間器のデータ入力はCNCプログラム名に対応していません(ADR(Example)
)、ただしパス前処理機能ブロックのOutQueue出力(checkVel.poqDataOut
)。
パス前処理用のタスクの作成
コンパイルモードを選択したため SMC_CNC_REF
、IECプログラムでデコードとパス前処理を実行する必要があります。この計算には時間がかかります。デコーダー呼び出しごとに1つのパスオブジェクトが生成されるため、補間器サイクルで実行する必要はありません。このオブジェクトは通常、多くの補間器呼び出しに使用されます。この操作を、優先度が低く、呼び出しの頻度が少ないタスクに交換する必要があります。
作成する
PathTask
タスク。次のパラメータを定義します。
優先順位:10
間隔:T#30ms
追加します
Path
タスクへのPOU。

遅いタスクでは、最初はサイクルごとに約1つのGEOINFOオブジェクトが生成されます。このオブジェクトは、デコーダ機能ブロックのOUTQUEUE構造に格納されます。 OUTQUEUEがいっぱいになると、低速タスクの機能ブロックは、OUTQUEUEがいっぱいでなくなるまで一時停止します。これは、高速タスクが最初のGEOINFOオブジェクトを処理し、それをOUTQUEUEから削除するとすぐに発生します。
次に、低速タスクの機能ブロックが再びアクティブになり、OUTQUEUE構造を埋めます。
高速タスクでは、OUTQUEUE構造からのパスポイント。
DataIn
への入力ポイントは、各サイクルで計算および処理されます。 GEOINFOオブジェクトは通常、複数のパスポイントで構成されているため、最初のGEOINFOオブジェクトが補間器によって自動的に処理および削除されるまでに数サイクルかかります。GEOINFOオブジェクトの処理は、作成とは対照的に数サイクル続くため、遅いタスクは速いタスクよりも頻繁に呼び出すことができません。
ただし、タスク時間は、十分なGEOINFOオブジェクトが常に低速タスクの最後のOUTQUEUEに格納されるように選択する必要があります。これにより、データのアンダーランが発生しなくなります。これは、DataInから補間器に使用できるGEOINFOオブジェクトがなく、パスの終わりにまだ到達していない場合に発生します。この場合、補間器は速度を落とし、新しいデータ要素が再び利用可能になるまで停止します。
オペレーティングインターフェイスとテストインターフェイスの作成
視覚化はに対応します CNCdirect.project
サンプルプロジェクト。新しい機能ブロックにテンプレートを追加します(SMC_NCDecoder
と SMC_CheckVelocities
)。グローバル変数の表示も作成します g_x
と g_y
後で試運転時にそれらの機能を確認できるようにします。
試運転
作成したプログラムをコンパイルして起動します。プログラムは、CNCモーションを実行するとすぐに Execute
デコーダーとインターポレーターの入力が設定されています。グローバル変数の値を変更すると、デコーダーが再起動され、それに応じてパスが調整されるときに使用されます。の機能を監視する Append
デコーダーの入力も。