式
関数:
バージョン4.4.0.0以降では、数式、ブール式、および文字列式を使用できます。 NS SMC_ReadNCFile2
と SMC_NCInterpreter
これには、関数ブロックを使用する必要があります(代わりに SMC_ReadNCFile
と SMC_NCDecoder
)。
ヒント
式はオンラインデコーダーでのみ機能します(CNCエディターでは機能しません)。
原則として、式はGコードで次の2つの位置で使用できます。
Gワードの値として(1つのGワードはアドレスと値で構成されます(例:「G1」))。
サブプログラム呼び出しの転送パラメータとして
構文–一般
式は、次の要素で構成できます。
数値および文字列リテラル
グローバル変数とローカル変数
中置演算子と関数
カンマと角かっこ
同様に、括弧(コメントの識別に使用されていない場合)と中括弧は、式の構造化に使用できます。これは、式が (1 + 2} * 3
許可されています。
ヒント
機能ブロック SMC_ReadNCFile2
新しいモードがあります(bParenthesesAsComments
入力)括弧はコメントではありません。代わりに、複数行コメントはそれぞれ「(*」および「*)」で開閉されます。この新しいモードでは、中括弧と括弧の両方を式に使用できます。
Gアドレスの後のスペースは、次の場合にのみ必要です。 SMC_ReadNCFile2
独立したトークンとして認識されません(例: X abs{-2}
それ以外の Xabs{-2}.
)。
STとは対照的に、単一位置関数は必ずしも括弧付きで呼び出す必要はありません(例: sin 3
)。
解析時に、各部分式には、BOOL、LREAL、またはSTRINGの3つのタイプのいずれかが割り当てられます。したがって、各中置演算子と各関数は、非準拠(間違った型、少なすぎる、または多すぎる引数)がエラーを返す特定の引数型のシーケンスを予期します。
制限:
ブロック番号は数値リテラルである必要があります。
厳密に技術的な理由から、ジャンプマーカー(
x
のL!x
)ローカル変数を含めることはできません。
例
N01 G36 O$var$ D concat{'prefix_', concat{$var$, '_suffix'}} N02 G1 X$var$ + sin{pi + 3 * #locvar} N03 G20 L0 K NOT {myfun{$var$, expt{2, #locvar}} XOR myfun{0, 0}}
サポートされている演算子と関数
キャラクター | タイプ | 引数 | 優先順位 |
---|---|---|---|
|
|
| 14 |
|
|
| 13 |
|
|
| 13 |
|
|
| 12 |
|
|
| 12 |
|
|
| 10 |
|
|
| 10 |
|
|
| 10 |
|
|
| 10 |
|
|
| 10 |
|
|
| 10 |
|
|
| 10 |
|
|
| 10 |
|
|
| 10 |
|
|
| 10 |
|
|
| 6 |
|
|
| 5 |
|
|
| 4 |
キャラクター | タイプ | 引数 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
独自の関数を定義する
独自の関数を追加したり、既存の実装を上書きしたりすることができます。 (Gコードを解析する場合、ユーザー関数で最初に関数が検索されます。)
SMC_NC_IFunctionインタフェースを実装し、対応するPOUのグローバルインスタンスをに転送する必要があります SMC_ReadNCFile2
または SMC_ReadNCFromStream
構造体を介して SMC_NC_GFunctionTable
。
列挙 SMC_GVar_Type
戻り型と引数型に使用されます。そこに含まれるエントリ T_OTHER
タイプのプレースホルダーとして使用できます。解析時に、システムは、に対応するすべての引数が T_OTHER
署名のは同じタイプです。タイプは関係ありません。
詳細については、以下を参照してください。 ユーザー固有のGコード機能
エラー処理
可能であれば、欠陥のあるトークンの正確な位置とその長さが構文エラーで発行されます。エラー位置はにリストされています SMC_ReadNCFile2.errorPos
。