Konventionsabfragen

Konventionsabfragen

Die folgenden Abfragen sind standardmäßig verfügbar (mit der Installation von EcoStruxure Machine Expert).

Gruppe: Complex Type Name Checks

oPrüfung, ob die anwenderdefinierten Objekte den konfigurierten Regeln entsprechen.

oBeispiel: Enumerationen müssen mit ET_ starten. Beispiel: ET_MyTestEnumeration.

Name

Präfix

Complex Type Name (Enumeration)

ET_

Complex Type Name (Function)

FC_

Complex Type Name (Function block)

FB_

Complex Type Name (Interface)

IF_

Complex Type Name (Program)

SR_

Complex Type Name (Struct)

ST_

Complex Type Name (TestCase)

TC_

Complex Type Name (TestResource)

TR_

Complex Type Name (TestSeries)

TS_

Complex Type Name (TestSet)

TS_

Complex Type Name (Union)

UT_

Gruppe: Variable Name Checks (Complex Types) und Variable Name Checks (Elementary Types)

oVariablennamen müssen mit einem Präfix versehen werden, bestehend aus dem Bereich (lokal, Eingang, Ausgang, Ein-/Ausgang usw.) und dem Variablen-Datentyp. Beispiel: q_ für Eingangsvariablen und ar für Variablen vom Typ Array -> q_arMyVariable.

oCodierungsrichtlinien empfehlen, Variablen mit einem Präfix auszustatten.

Name

Präfix

Variable Name (Array)

ar

Variable Name (Enumeration)

et

Variable Name (FunctionBlock)

fb

Variable Name (Interface)

if

Variable Name (Pointer)

p

Variable Name (Reference)

r

Variable Name (Struct)

st

Variable Name (TestCase)

tc

Variable Name (Union)

ut

Name

Präfix

Variable Name (BIT)

x

Variable Name (BOOL)

x

Variable Name (BYTE)

b

Variable Name (DATE)

dat

Variable Name (DINT)

di

Variable Name (DT)

dt

Variable Name (DWORD)

dw

Variable Name (INT)

i

Variable Name (LINT)

li

Variable Name (LREAL)

lr

Variable Name (LTIME)

ltim

Variable Name (LWORD)

lw

Variable Name (REAL)

r

Variable Name (SINT)

si

Variable Name (STRING)

s

Variable Name (TOD)

tod

Variable Name (UDINT)

udi

Variable Name (UINT)

ui

Variable Name (ULINT)

uli

Variable Name (USINT)

usi

Variable Name (WORD)

w

Variable Name (WSTRING)

ws

Gruppe: Threshold Checks

Name

Beschreibung

Inheritance Depth Limit

Beschreibung: Stellen Sie für jede Schnittstelle und jeden Funktionsbaustein sicher, dass die Vererbungstiefe (Erweiterungskantenkette) die Grenze nicht anhebt.

Anwendungsfall: Prüfen Sie die Grenze der Vererbungstiefe, um zu komplexe und zu tiefe Strukturen zu vermeiden, die eine Verwaltbarkeit unmöglich machen.

Beispiel: FB1 erweitert FB2, der FB3 erweitert, der FB4 erweitert.

Variable Length Check

Beschreibung: Prüfen Sie die Länge jeder Variablen, um sicherzustellen, dass die vorgeschlagene Längengrenze nicht angehoben wird.

Anwendungsfall: Prüfen Sie die Länge der Variablennamen, um die Lesbarkeit des Quellcodes zu erhöhen und dadurch die Verwaltbarkeit zu verbessern.

Beispiel: Gute Variable wie iCounterVariable1.

Nicht funktionsfähige Variable wie iAnotherToLengthCounter1Variable.

Number Of Method Limit

Beschreibung: Prüfen Sie die Anzahl der definierten Methoden, z. B. für einen Funktionsbaustein, um sicherzustellen, dass die vorgeschlagene Längengrenze nicht angehoben wird.

Anwendungsfall: Zu viele Methoden unter einem Funktionsbaustein sind ein Zeichen dafür, dass ein Refactoring des Funktionsbausteins für die Implementierung von nur einer Funktion erforderlich ist.

Number Of Properties Limit

Beschreibung: Prüfen Sie die Anzahl der definierten Eigenschaften, z. B. für einen Funktionsbaustein, um sicherzustellen, dass die vorgeschlagene Längengrenze nicht angehoben wird.

Anwendungsfall: Zu viele Eigenschaften unter einem Funktionsbaustein sind ein Zeichen dafür, dass ein Refactoring des Funktionsbausteins für die Implementierung von nur einer Funktion erforderlich ist.

Gruppe: Usage Checks

Name

Beschreibung

Input Variable Read Check

Beschreibung: Prüfen Sie jede Eingangsvariable, um festzustellen, ob sie von außerhalb der POU gelesen wird.

Anwendungsfall: Codierungsrichtlinien empfehlen, die Eingangsvariable einer POU nicht zu lesen.

Input Variable Writes Check

Beschreibung: Prüfen Sie jede Eingangsvariable, um festzustellen, ob sie von innerhalb der POU, in der sie definiert ist, geschrieben wird.

Anwendungsfall: Codierungsrichtlinien empfehlen, eine Eingangsvariable nicht von innerhalb einer POU zu schreiben.

Output Variable Read Check

Beschreibung: Prüfen Sie jede Ausgangsvariable, um festzustellen, ob sie von innerhalb der POU gelesen wird.

Anwendungsfall: Gemäß den Codierungsrichtlinien sollte keine Ausgangsvariable aus einer POU ausgelesen werden.

Unused Variables Check

Beschreibung: Prüfen Sie die Variablen, um festzustellen, ob sie im kompletten Projekt weder gelesen noch geschrieben werden (-> nicht verwendete Variablen).

Anwendungsfall: Identifizieren Sie nicht verwendete Variablen und signalisieren Sie sie, bereinigen Sie das Projekt und verbessern Sie die Codequalität.