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.

Generische Erzeugung 1:

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.

Generische Erzeugung 2:

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.

Generische Erzeugung 3:

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.

Generische Erzeugung 4:

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.

Generische Erzeugung 5:

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.

Generische Erzeugung 6:

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

Generische Erzeugung 7:
Generische Erzeugung 8:

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.

Generische Erzeugung 9: