Bezeichner für Variablen und Instanzen

Bei der Bezeichnung von Variablen und Instanzen beachten Sie die folgenden Punkte:

Static Analysis:

Beachten Sie auch die Möglichkeit zur Überprüfung der Programmierkonventionen mit Hilfe von TE1200 PLC Static Analysis.

Präfixe:

1) Variablen elementarer und dynamischer Datentypen:

Typ

Präfix

Beschreibung

Deklarations-beispiel

Aufrufbeispiel

Static Analysis
Namenskonventions-ID

SINT, USINT,
INT, UINT,
DINT, UDINT,
LINT, ULINT,
BYTE, WORD, DWORD, LWORD, XINT, UXINT, XWORD

n

Integer,
Bitbasierte Zahl

nErrorID : UDINT;
nSize : UINT;
nMask : WORD;
nMessages : UINT;

nErrorID := 16#745;
nSize := SIZEOF(ST_BufferEntry);
nMask := nMask & 16#0FF0;
nMessages := 3;

NC0005-NC0016, NC0035, NC0037, NC0038, NC0160

BOOL, BIT

b

boolean (bit)

bConfigured
bReset

 

NC0003, NC0004

REAL, LREAL

f

float

fPosition

 

NC0017, NC0018

STRING

s

string

sNetID

 

NC0019

WSTRING

ws

wide string (unicode)

wsRouteName

 

NC0020

TIME, LTIME

t

time

tDelay

 

NC0021, NC0022

TIME_OF_DAY

td

time of day

tdClockTime

 

NC0025

DATE

d

date

dProductionStart

 

NC0023

DATE_AND_TIME

dt

date and time

dtProductionStart

 

NC0024

ARRAY[...] OF ...

a

array

aMessages

 

NC0030

POINTER TO ...

p

pointer

pData
pNextProduct

pData := ADR(aBuffer);

NC0026

POINTER TO POINTER TO ...

pp

Verschachtelter Zeiger

ppData

 

 

POINTER TO INTERFACE

pip

Zeiger auf eine Schnittstelle

pipCylinder

 

 

REFERENCE TO ...

1) als Methodeneingang

2) in sonstigen Fällen

1) entsprechend dem Basisdatentyp der Referenz

2) ref

Referenz

1) nData (bei REFERENCE TO INT)

2) refSize

1) SampleMethod(nData := <…>)

2) refSize REF= nSize;

NC0027

Beispiel 1:

nSample       : INT;
pSampleToInt  : POINTER TO INT;
pSampleToInt  := ADR(nSample)
pSampleToInt^ := 123;              // Result: nSample = 123

Beispiel 2:

aSample                   : ARRAY[1..3] OF LREAL;
pSampleToArrayOfLreal     : POINTER TO ARRAY[1..3] OF LREAL;
pSampleToArrayOfLreal     := ADR(aSample);
pSampleToArrayOfLreal^[2] := 4.56; // Result: aSample[2] = 4.56

2) Instanzen von Objekten und benutzerdefinierter Datentypen:

Instanzen von Funktionsbausteinen, die in der IEC61131-Norm definiert und von grundlegender Bedeutung sind (R_TRIG, TON...), besitzen kein anderes Präfix. Beispiel für eine korrekte Benennung:

fbAdsTimer : TON;

Typ

Präfix

Beschreibung

Deklarationsbeispiel

Aufrufbeispiel

Static Analysis
Namenskonventions-ID

FUNCTION_BLOCK

fb

Instanz eines Funktions-bausteins

fbWritePersData : FB_WritePersistentData;

fbWritePersData();

NC0031

STRUCT

st

Instanz einer Struktur

stBufferEntry : ST_BufferEntry;

stBufferEntry.nCounter := 5;

NC0032

ENUM

e

Instanz einer
Aufzählung

eMachineState : E_MachineState;
eQuality : E_Quality;

eMachineState := E_MachineState.Stop;
eQuality := E_Quality.Good;

NC0029

TYPE (Alias)

entsprechend dem internen Datentyp

Instanz eines Aliastyps

nNibble : T_Nibble;
sNetId : T_AmsNetId;

nNibble := 16#1;
sNetId := '1.2.3.4.5.6';

NC0033

Siehe auch:

Platzhalter {datatype}

INTERFACE

ip

Instanz einer Schnittstelle

ipCylinder : I_Cylinder;

ipCylinder := fbCylinderBase;

NC0036

UNION

u

Instanz einer Union

uCtrl : U_Control;

uCtrl.aRegister[1] := 16#02;

NC0034

3) Sonstiges:

Typ

Präfix

Beschreibung

Deklarationsbeispiel

Static Analysis
Hinweis

Verschachtelte Typen

Lediglich entsprechend dem äußersten Typ

Ausnahme 1: 'pp' für POINTER TO POINTER TO

Ausnahme 2: 'pip' für POINTER TO INTERFACE

 

pTelegramData : POINTER TO ARRAY[0..7] OF BYTE;

Option Rekursive Präfixe für kombinierbare Datentypen deaktivieren

Siehe auch:

Namenskonventionen (2)

Lokale und globale Konstanten

c

 

VAR CONSTANT
    cSyncID : UINT := 16#80;
END_VAR

VAR_GLOBAL CONSTANT
    cLowerThreshold : UDINT := 9;
    cOptionMove : DWORD := 16#04;
END_VAR

NC0062, NC0070

Globale Variablen

 

Für globale Variablen gelten die gleichen Namensregeln. (Hängen Sie vor den Variablennamen kein zusätzliches zweites Präfix.)

VAR_GLOBAL
nProducedUnits : UINT;
END_VAR

Option Namensraumpräfix mit Datentyppräfix kombinieren deaktivieren

Siehe auch:

Namenskonventionen (2)

HRESULT

hr

 

hrErrorCode : HRESULT;

NC0160

PVOID

p

pointer

pData : PVOID;

NC0160

GUID

 

Für eine GUID wird kein Präfix vergeben.

 

 

AT%I*

optional vor dem Datentyppräfix: I

allokierter Eingang

fActPos AT%I*: LREAL;
oder:
IfActPos AT%I*: LREAL;

 

AT%Q*

optional vor dem Datentyppräfix: O

allokierter Ausgang

fSetPos AT%Q*: LREAL;
oder:
OfSetPos AT%Q*: LREAL;

 

Allokierte Ein- bzw. Ausgänge können optional mit einem 'I' bzw. 'O' als zusätzliches Präfix vor dem Datentyppräfix versehen werden. Für Instanzen stellt es das einzige Präfix dar, das großgeschrieben wird. Halten Sie sich konsequent an die Entscheidung für oder gegen die Nutzung dieses optionalen Präfixes, sodass die Bezeichnung von allokierten Variablen projektweit einheitlich ist.