Skip to main content

部分的な変数アクセス

この式は IEC 61131-3 規格に準拠しています。

データ型の IEC 変数の場合、部分的な変数アクセスが可能 BYTEWORDDWORD または LWORD (データ・タイプ ANY、ANY_<タイプ> )。

構文:

<変数名>。 % <部分型> <部分インデックス>

ドット演算子の後にはスペースを使用できます (.)。パーセント記号 (%) および部分型の後。

<変数名>

の名前 ANY_BIT 型の変数 BYTEWORDDWORD、 または LWORD

<部分型>

X のために BIT アクセス

B のために BYTE アクセス

W のために WORD アクセス

D のために DWORD アクセス

L のために LWORD アクセス

へのアクセス __XWORD も許可されており、次のように動作します。 DWORD または LWORD ポインターのサイズに応じて。

へのアクセス BOOL たとえ BOOL データ型はの一部です ANY_BIT 種類。

<部分インデックス>

0からインデックスの最大値まで

詳細については、以下を参照してください。

使用法

部分アクセスは、非一時変数 (ユーザー定義変数、フィールド、配列アクセス、または逆参照) に対してのみ使用できます。これは、一時的な結果またはリテラルでは許可されません。

式自体は一時的なものではなく、次の式として使用できます。 REFERENCE TO またはとして ADR オペレーター。

200.
// Implementation
PartialVarB := GVL.Variable.%B0;
PartialVarX := array[idx].%X0;
PartialVarW := tempVariable.%W2;
PartialVarD := ptr^.%D2;
PartialVarB := variable.%W1.%B1

関数呼び出し、インデックス式、リテラル、またはプロパティの場合、部分的なアクセスはできません。

否定的な例:

FunctionCall().%B0
(1+index).%B0
(DWORD#16#12345678).%B0
Property.%B0


部分型のインデックスの最大値

部分アクセスは、呼び出された式が適合する型を持ち、部分インデックスが最大部分インデックス以下である場合にのみ可能です。それ以外の場合は、コンパイラ エラーが報告されます。

部分タイプ

アクセスタイプ

部分インデックスの最大値

X

BYTE

7

WORD

15

DWORD

31

LWORD

63

B

BYTE

0

WORD

1

DWORD

3

LWORD

7

W

BYTE

サポートされていません

WORD

0

DWORD

1

LWORD

3

D

BYTE

サポートされていません

WORD

サポートされていません

DWORD

0

LWORD

1

L

BYTE

サポートされていません

WORD

サポートされていません

DWORD

サポートされていません

LWORD

0

部分アクセスのある式

部分アクセス式の型は以下にのみ依存します。 <部分型> 次の表を使用して選択する必要があります。

部分タイプ

式の種類

X

BIT

B

BYTE

W

WORD

D

DWORD

L

LWORD

住所

部分型の部分アクセス式からアドレスを作成できます。 BWD、 そして L

それは ない 部分型の部分アクセス式からアドレスを作成できるようになりました X

それは ない type の部分アクセス式を割り当てることができます。 BITVAR_INOUT 変数。

201.
ADR(var%.B0)
referenceVariable REF= var.%W1

否定的な例:

ADR(var.%X0)
ref REF= var.%X0