Generische Erzeugung
Bei der generischen Erzeugung des DPAD werden die Texte der Ebenen des Grundgerüst automatisch miteinander verkettet.
Aus den Namen- und Beschreibungen der Objekte und Ordner aus der Projektstruktur, entstehen vollständige Objektnamen und Objektbeschreibungen.
Zur Erklärung des Mechanismus hier ein Beispiel:
Die Darstellung zeigt den Messwert (MV) des Rücklauftemperaturfühler (TRt) aus dem Heizkreis 01 HTC01.

Voraussetzung für die generische Erzeugung des DPAD ist eine Instanz des Funktionsbausteins FB_FB_BA_CarelessDPAD. Es ist zu empfehlen den Funktionsbaustein gleich zu Beginn in MAIN aufzurufen.
In der Initialisierung des DPAD-Bausteins wird die Zahl der Ebenen, die Art der Trennzeichen und die Zeichenbreite der Indexe festgelegt. Wichtig ist, dass die Zahl der Initialisierten Ebenen des DPAD mit denen der Projektstruktur übereinstimmt.
Die Indexe werden meistens für die Benennung der Ebenen Aggregat und Funktion des Datenpunktes verwendet. In dem Initialisierungsbeispiel sind für die Indexe jeweils zwei Stellen (00 bis 99) vorgesehen.

Der Verkettungsalgorithmus des DPAD-Bausteins erkennt die Texte, welche verkettet werden sollen, nur wenn sie als Platzhalter {} innerhalb der geschweiften Klammern definiert sind.
Platzhalter sind sehr variabel und vielseitig einsetzbar. Eine ausführlichere Beschreibung der Platzhalter befindet sich im Kapitel: Objekt-Beschreibungstexte
Es gibt zwei Methoden die Initialisierungstexte für den Objektnamen und die Beschreibung vorzugeben:
Direktes Beschreiben von Namen und Beschreibung
Beispiel:
sObjectname := 'Mustername';
sDescription := 'Musterbeschreibung';
Verwendung von Platzhaltern
Eine Variante diese Texte zu initialisieren ist der Einsatz von Platzhaltern.
Diese werden üblicherweise im FB_init des Templates (in diesem Beispiel FB_BA_H_HtgCir01) definiert.
Nur in Platzhalter {} initialisierte Texte werden vom DPAD-Algorithmus mit den anderen Ebenen der Projektstruktur verkettet.
In den folgenden Beispielen soll ersichtlich werden, wie die Verkettung der Texte durch Platzhalter beeinflusst werden kann.
Alle folgenden DPAD-Initialisierungsbeispiele beziehen sich auf die Benennung der im Heizkreis vorhandenen Pumpe.
Objektnamen und Description werden in diesen Beispielen direkt ohne die Verwendung von Labels beschrieben.

Name verkettet und fester Index
Pu.sObjectName := '{Pu{Idx=99}}'; | = B-F01-HTG-HTC01-Pu99 |
Beschreibungstext mit Objektindex
Pu.sDescription := '{Pump{Idx}}'; | = B-Floor 01-Heat supply systems–Heating Circuit – Pump99 |
Name verkettet und automatischer Index
Pu.sObjectName := '{Pu} '; | = B-F01-HTG-HTC01-Pu04 |
Einstiegspunkt für Verkettung durch !{} definiert und ObjektIndex {Idx} aktiviert
Pu.sDescription := '!{Pump{Idx}}'; | = Pump04 |
Name verkettet ohne Index
Pu.sObjectName := '{Pu01{!Idx}}'; | = B-F01-HTG-HTC01-Pu01 |
Pu.sDescription:= '{Pump01}'; | = B-Floor 01-Heat supply systems-Heating-Circuit–Pump01 |
Benutzerdefinierter Name
Pu.sObjectName := '{123M1{!Idx}}'; | = B-F01-HTG-HTC01-123M1 |
Pu.sDescription:= '{Pump 123M1}'; | = B-Floor 01-Heat supply systems–Heating Circuit–Pump123M1 |
Name unverkettet und fester Index
Pu.sObjectName := Pu{Idx=99}'; | = Pu99 |
Übernahme des Objekt-Index in den Beschreibungstext
Pu.sDescription:='Pump{Idx}'; | = Pump99 |
Name unverkettet und fester Index
Pu.sObjectName :='Pu{Idx=99}'; | = Pu99 |
Definierter eigener Index im Beschreibungstext
Pu.sDescription :='Pump{Idx=123}'; | = Pump123 |
Name unverkettet und InstanzID von Objekt
Pu.sObjectName :='Pu{InstID}'; | = Pu201 |
Pu.sDescription:='Pump{InstID}'; | = Pump201 |
Name unverkettet und automatisch
Pu.sObjectName:='Pu'; | = Pu04 |
Pu.sDescription:='Pump{Idx}'; | = Pump04 |
Name unverkettet ohne Index
Pu.sObjectName := 'Pu{!Idx}'; | = Pu |
Pu.sDescription := 'Pump'; | = Pump |
Labels zur Definition von Namen und Beschreibung
Eine weitere Möglichkeit für die Initialisierung der Texte von Namen und Beschreibung der Objekte sind Labels.
Ein Label ist die paarweise Zusammenfassung der Texte für den Namen und die Beschreibung eines Objekts. Die Initialisierung erfolgt mit dem Funktionsbaustein FB_BA_Label.
Der Funktionsbaustein FB_BA_Label2x ist dann einzusetzen, wenn die Texte der Ebenen Aggregat und Funktion des Datenpunktes gemeinsam zu initialisieren sind.
In TwinCAT 3 Building Automation sind die Labels in einer Liste globaler Variablen gespeichert.
Innerhalb der Templates von TwinCAT Building 3 Automation werden sie zur Initialisierung der Textvariablen sObjectname und sDescription verwendet.

Die Label-Listen stehen für die Benennung von Aggregaten (LblAggregates_xx), allgemeinen Regel- und Steuerungsfunktionen (LblControll_xx) und Funktionsbezeichnungen (LblFunction_xx) zur Verfügung.
Die Listen mit der Endung _EN enthalten Labels in englischer und die Listen mit der Endung _DE Labels in deutscher Sprache. Für die Auswahl der Sprache muss, die nicht gewünschte Sprache vor dem ersten Kompilieren der Steuerung auskommentiert werden.
DPAD-Mode
Für jede Ebene der Projektstruktur kann mittels des DPAD-Mode bestimmt werden, ob und welche Texte bei der Verkettung berücksichtigt werden sollen.
Im folgenden Beispiel erfolgt die Erklärung anhand einer Lüftungsanlage aus dem Template Repository von TwinCAT 3 Building Automation.
Die Hauptaggregate der Lüftungsanlage der Erhitzer (PreHtr), die Energierückgewinnung (ERC) und der Kühler (Col), haben jeweils einen eigenen Funktionsbaustein, innerhalb dessen alle Bestandteile bzw. Unteraggregate aufgerufen werden. Die Hauptaggregate sind nicht Bestandteil der Ebenen im DPAD. In der Definition des DPAD werden direkt hinter der Ebene Anlage die Ebenen für die Teilaggregate und Funktionen definiert.

In der SPS befindet sich dadurch eine Ebene mehr als im DPAD vorgesehen ist.
Die Ebene des Erhitzers ist deshalb bei der Erzeugung der Objektnamen auszuschließen.

Das geschieht mit dem DPAD-Mode und der folgenden Initialisierung.


Für den Erhitzer ist die Einstellung eIncludeDescription gewählt. Der Beschreibungstext des Erhitzers wird damit verkettet und der Name des Erhitzers bei der Erzeugung der Objektnamen ausgeschlossen.
Das Ergebnis dieser Parametrierung ist im Site Explorer zu sehen.
Der Symbolpfad (1) hat 7 Ebenen, was zur Folge hat das der Beschreibungstext (2) und der Objektname (3) ebenfalls 7 Ebenen haben, wobei beim Objektnamen eine Ebene nicht angezeigt wird.
In dem Beschreibungstext (2) des Vorlauftemperaturfühlers vom Lufterhitzer ist der Beschreibungstext 'PreHeater' eingebunden und im Objektnamen (3) ausgeschlossen.
