Bewährte Verfahren für die Benennung von Bezeichnern

Übersicht

Die Definition von Bezeichnern erfolgt:

  • Bei der Deklaration von Variablen (Variablenname)

  • Bei der Definition von benutzerdefinierten Datentypen

  • Bei der Erstellung von POUs (Funktionen, Funktionsbausteine, Programme)

Zusätzlich zu den allgemeinen Elementen, die bei der Definition eines Bezeichners berücksichtigt werden müssen (vgl. Kapitel Allgemeine Informationen über die Variablendeklaration), beachten Sie bitte Folgendes für eine eindeutige Definition:

HINWEIS: Die Namenskonventionen und -beispiele in den folgenden Absätzen basieren auf bewährten Verfahren, die bei der Entwicklung von Schneider Electric-Bibliotheken angewendet werden, und entsprechen den Standardkonventionen, die in der EcoStruxure Machine ExpertCode Analysis verwendet werden. Alternative Namenskonventionen anderer Organisationen werden in den folgenden Abschnitten in Klammern angegeben.

Variablennamen

Bei der Benennung von Variablen in Anwendungen und Bibliotheken befolgen Sie bitte so weit wie möglich die ungarische Notation.

Verfassen Sie für jede Variable eine kurze aussagekräftige Beschreibung. Diese Beschreibung dient als Basisname. Beginnen Sie jedes Wort des Basisnamens mit einem Großbuchstaben. Verwenden Sie Kleinbuchstaben für den Rest (Beispiel: FileSize).

Datentyp

Unterer Grenzwert

Oberer Grenzwert

Informationsinhalt

Präfix

Kommentar

BOOL

FALSE

TRUE

1 Bit

x*

b

Reserviert

BYTE

8 Bit

by

Bitzeichenfolge, nicht für arithmetische Operationen

WORD

16 Bit

w

Bitzeichenfolge, nicht für arithmetische Operationen

DWORD

32 Bit

dw

Bitzeichenfolge, nicht für arithmetische Operationen

LWORD

64 Bit

lw

Bitzeichenfolge, nicht für arithmetische Operationen

SINT

-128

127

8 Bit

si

Arithmetischer Ganzzahl-Datentyp, 8 Bit

USINT

0

255

8 Bit

usi

Arithmetischer Ganzzahl-Datentyp, 8 Bit

INT

-32.768

32.767

16 Bit

i

Arithmetischer Ganzzahl-Datentyp, 16 Bit

UINT

0

65.535

16 Bit

ui

Arithmetischer Ganzzahl-Datentyp, 16 Bit

DINT

-2.147.483.648

2.147.483.647

32 Bit

di

Arithmetischer Ganzzahl-Datentyp, 32 Bit

UDINT

0

4.294.967.295

32 Bit

udi

Arithmetischer Ganzzahl-Datentyp, 32 Bit

LINT

–263

263-1

64 Bit

li

Arithmetischer Ganzzahl-Datentyp, 64 Bit

ULINT

0

264-1

64 Bit

uli

Arithmetischer Ganzzahl-Datentyp, 64 Bit

REAL

32 Bit

r

Arithmetischer Gleitkomma-Datentyp, 32 Bit

LREAL

64 Bit

lr

Arithmetischer Ganzzahl-Datentyp, 64 Bit

STRING

s

Einzelbyte-Zeichenfolge variabler Länge (Standardeinstellung: 80 Zeichen)

WSTRING

ws

Doppelbyte-Zeichenfolge variabler Länge (Standardeinstellung: 80 Zeichen)

TIME

tim

Dauer, 32 Bit

LTIME

ltim

Dauer, 64 Bit

  • TIME_OF_DAY

  • TOD

tod

Tageszeit, 32 Bit

  • LTIME_OF_DAY

  • LTOD

ltod

Tageszeit, 64 Bit

  • DATE_AND_TIME

  • DT

dt

Datum und Uhrzeit

  • LDATE_AND_TIME

  • LDT

ldt

DATE

  • dat

  • d

Kalenderdatum

LDATE

  • ldat

  • ld

Kalenderdatum

Enumeration

et (e)

POINTER

p

ARRAY

a

Structure

st

Function block

fb

Interface

if (itf)

Union

ut

* Für boolesche Variablen wird bewusst ein x als Präfix gewählt, um die Variable von einem BYTE zu unterscheiden und den IEC Programmierern die Unterscheidung zu erleichtern (vgl. Adressierung von %IX0.0).

Einfache Deklaration

Beispiele für einfache Deklarationen:

bySubIndex: BYTE;

sFileName: STRING;

udiCounter: UDINT;

Verschachtelte Deklaration

Beispiel für eine verschachtelte Deklaration, wobei die Präfixe in der Reihenfolge der Deklarationen miteinander verbunden sind:

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

Funktionsbausteininstanzen und Variablen benutzerdefinierter Datentypen

Funktionsbausteininstanzen und Variablen benutzerdefinierter Datentypen erhalten eine Verknüpfung für den Funktionsbaustein oder den Datentypnamen als Präfix (Beispiel: stSDO).

Beispiel

stSDOReceivedTelegram: ST_SDOTelegram;
TYPE ST_SDOTelegram : 
STRUCT
  wIndex:WORD;
  bySubIndex:BYTE;
  byLen:BYTE;
  aby: ARRAY [0..3] OF BYTE;
END_STRUCT
END_TYPE

Lokale Konstanten

Lokale Konstanten (c) beginnen mit dem Präfix c und einem Unterstreichungszeichen, gefolgt von einem Datentyppräfix und einem Variablennamen.

Beispiel

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

Globale Variablen und globale Konstanten

Globale Variablen werden mit dem Präfix G_ (g_) und globale Konstanten mit dem Präfix Gc_ (gc_) versehen.

Beispiel

VAR_GLOBAL
  G_iTest: INT;
END_VAR
VAR_GLOBAL CONSTANT
  Gc_dwExample: DWORD;
END_VAR

Variablennamen in Bibliotheken

Struktur

Für die Variablennamen gilt im Wesentlichen die obige Beschreibung. Verwenden Sie beim Zugreifen auf eine Variable in Ihrem Anwendungscode den Namensraum der Bibliothek als Präfix.

Beispiel

G_iTest: INT; (declaration)
CAN.G_iTest (implementation, call in an application program

Benutzerdefinierte Datentypen (DUT) in Bibliotheken

Struktur

Der Name jedes Strukturdatentyps besteht aus dem entsprechenden Typpräfix (auch POU-Präfix) und einem kurzen, aussagekräftigen Namen (z. B. ET_Day) der Struktur.

Beispiel (in der Bibliothek mit dem Namensraum CAL):

TYPE ET_Day :(
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY);

Deklaration:

etToday: CAL.ET_Day;

Verwendung in einer Anwendung:

IF etToday = CAL.ET_Day.MONDAY THEN
HINWEIS: Bei Verwendung der in Bibliotheken deklarierten DUTs bzw. Enumerationen sollten Sie die Möglichkeit einer Verwendung des Namensraums in Betracht ziehen.

Funktionen, Funktionsbausteine, Programme (POU), Aktionen

Die Namen von Funktionen, Funktionsbausteinen und Programmen bestehen aus dem entsprechenden Typpräfix (auch POU-Präfix) und einem kurzen, aussagekräftigen Namen der POU (z. B. FB_SendTelegram). Wie bei den Variablen sollte der erste Buchstabe des Worts in einem POU-Namen immer mit einem Großbuchstaben beginnen, während alle anderen in Kleinbuchstaben geschrieben sein sollten. Setzen Sie z. B. den Namen einer POU aus einem Verb und einem Substantiv zusammen, um explizit auf die Aufgabe des Funktionsbausteins zu verweisen.

Beispiel

FUNCTION_BLOCK FB_SendTelegram

Geben Sie im Deklarationsteil eine kurze Beschreibung der POU als Kommentar ein. Im weiteren Verlauf sollten auch Eingänge und Ausgänge mit Kommentaren versehen werden. Bei Funktionsbausteinen sollten Sie das zugeordnete Präfix für Einrichtungsinstanzen direkt nach dem Namen einfügen.

Aktionen

Aktionen erhalten kein Präfix. Nur den Aktionen, die ausschließlich intern und somit von der POU selbst aufgerufen werden, ist das Präfix prv_ vorangestellt.

POUs in Bibliotheken

Struktur

Bei der Definition von Methodennamen gelten die gleichen Regeln wie für Aktionen. Geben Sie Kommentare für mögliche Eingaben einer Methode ein. Fügen Sie bei der Deklaration der Methode eine kurze Beschreibung hinzu. Beginnen Sie Schnittstellennamen mit dem Präfix IF_ (I), z. B. IF_CANDevice.

HINWEIS: Bei der Verwendung von in Bibliotheken deklarierten POUs sollten Sie eine Verwendung des Namensraums in Betracht ziehen.