Skip to main content

関数

バージョン4.4.0.0以降では、数式、ブール式、および文字列式を使用できます。 NS SMC_ReadNCFile2SMC_NCInterpreter これには、関数ブロックを使用する必要があります(代わりに SMC_ReadNCFileSMC_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つのタイプのいずれかが割り当てられます。したがって、各中置演算子と各関数は、非準拠(間違った型、少なすぎる、または多すぎる引数)がエラーを返す特定の引数型のシーケンスを予期します。

制限:

  • ブロック番号は数値リテラルである必要があります。

  • 厳密に技術的な理由から、ジャンプマーカー(xL!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}}

サポートされている演算子と関数

54. 中置演算子

キャラクター

タイプ

引数

優先順位

MOD

LREAL

LREAL, LREAL

14

*

LREAL

LREAL,LREAL

13

/

LREAL

LREAL, LREAL

13

+

LREAL

LREAL, LREAL

12

-

LREAL

LREAL, LREAL

12

=

BOOL

BOOL, BOOL

10

=

BOOL

LREAL, LREAL

10

=

BOOL

STRING, STRING

10

<>

BOOL

BOOL, BOOL

10

<>

BOOL

LREAL, LREAL

10

<>

BOOL

STRING, STRING

10

>

BOOL

LREAL, LREAL

10

<

BOOL

LREAL, LREAL

10

>=

BOOL

LREAL, LREAL

10

<=

BOOL

LREAL, LREAL

10

AND

BOOL

BOOL, BOOL

6

XOR

BOOL

BOOL, BOOL

5

OR

BOOL

BOOL, BOOL

4



55. 関数

キャラクター

タイプ

引数

-

LREAL

LREAL

ABS

LREAL

LREAL

MAX

LREAL

LREAL, LREAL

MIN

LREAL

LREAL, LREAL

NOT

BOOL

BOOL

TRUE

BOOL

FALSE

BOOL

SIN

LREAL

LREAL

COS

LREAL

LREAL

TAN

LREAL

LREAL

ASIN

LREAL

LREAL

ACOS

LREAL

LREAL

ATAN

LREAL

LREAL

EXP

LREAL

LREAL

LN

LREAL

LREAL

SQRT

LREAL

LREAL

EXPT

LREAL

LREAL, LREAL

FLOOR

LREAL

LREAL

CEIL

LREAL

LREAL

PI

LREAL

LEN

LREAL

STRING

CONCAT

STRING

STRING, STRING



独自の関数を定義する

独自の関数を追加したり、既存の実装を上書きしたりすることができます。 (Gコードを解析する場合、ユーザー関数で最初に関数が検索されます。)

SMC_NC_IFunctionインタフェースを実装し、対応するPOUのグローバルインスタンスをに転送する必要があります SMC_ReadNCFile2 または SMC_ReadNCFromStream 構造体を介して SMC_NC_GFunctionTable

列挙 SMC_GVar_Type 戻り型と引数型に使用されます。そこに含まれるエントリ T_OTHER タイプのプレースホルダーとして使用できます。解析時に、システムは、に対応するすべての引数が T_OTHER 署名のは同じタイプです。タイプは関係ありません。

詳細については、以下を参照してください。 ユーザー固有のGコード機能

エラー処理

可能であれば、欠陥のあるトークンの正確な位置とその長さが構文エラーで発行されます。エラー位置はにリストされています SMC_ReadNCFile2.errorPos