Structured View-Objekte
Structured View-Objekte ermöglichen die Abbildung der Bedienersicht auf die in einem BACnet-Gerät vorhandenen Objekte, oft anhand eines Anlagenkennzeichnungssystems.
Mit Ausnahme der oberen Ebene (root level) werden alle Elemente mit Hilfe des Elements iParent mit dem jeweils übergeordneten Objekt verbunden.
Mit Hilfe der Zeichen \/ (Backslash und Slash) kann eine Textzusammensetzung mit dem jeweils übergeordneten Objekt hergestellt werden.
Dabei wird für die Properties Objectname, Description und EventMessageTextsConfig das Trennzeichen verwendet, welches in den BACnet_Param der Bibliotheksinstanz festgelegt ist.
Für die Nutzung der Funktion STRING_TO_UTF8
muss die Bibliothek Tc2_Utilities eingebunden werden.
Variablen
// use \/ to concat to the string provided by parent node
// countries (root level)
fbGermany : FB_BACnet_View := (
eNodeType := E_BACnet_NodeType.eOrganizational,
sObjectName := 'Germany',
sDescription := 'BECKHOFF offices in Germany' );
fbSwitzerland : FB_BACnet_View := (
eNodeType := E_BACnet_NodeType.eOrganizational,
sObjectName := 'Switzerland',
sDescription := 'BECKHOFF offices in Switzerland');
fbSpain : FB_BACnet_View := (
eNodeType := E_BACnet_NodeType.eOrganizational,
sObjectName := 'Spain',
sDescription := 'BECKHOFF offices in Spain');
// view structure Verl
fbVerl : FB_BACnet_View := (
iParent := fbGermany,
eNodeType := E_BACnet_NodeType.eOrganizational,
sObjectName := '\/Verl',
sDescription := '\/Verl offices');
fbEiserstr : FB_BACnet_View := (
iParent := fbVerl,
eNodeType := E_BACnet_NodeType.eOrganizational,
sObjectName := '\/Eiserstr',
sDescription := '\/Eiserstr offices');
fbFirstFloor : FB_BACnet_View := (
iParent := fbEiserstr,
eNodeType := E_BACnet_NodeType.eOrganizational,
sObjectName := '\/Floor 2',
sDescription := '\/Hardware Development');
fbCabinet : FB_BACnet_View := (
iParent := fbFirstFloor,
eNodeType := E_BACnet_NodeType.eCollection,
sObjectName := '\/Controllers',
sDescription := '\/Cabinet 07');
fbAv01 : FB_BACnet_AV := (
sObjectName := '\/AV01',
sDescription := '\/Analog Value01',
iParent := fbCabinet );
fbController : FB_BACnet_View := (
iParent := fbCabinet,
eNodeType := E_BACnet_NodeType.eDevice,
sObjectName := '\/C6015',
sDescription := '\/Edge Device');
fbAv02 : FB_BACnet_AV := (
sObjectName := '\/AV02',
sDescription := '\/Analog Value02',
iParent := fbController );
// view structure Madrid
fbMadrid : FB_BACnet_View := (
iParent := fbSpain,
eNodeType := E_BACnet_NodeType.eOrganizational,
sObjectName := '\/Madrid',
sDescription := '\/Madrid offices');
fbAv03 : FB_BACnet_AV := (
sObjectName := '\/AV03',
sDescription := '\/Test äöüÄÖÜß',
iParent := fbMadrid );
bChangeAv03 : BOOL;
sTest : STRING(255);
Code
// Germany
fbGermany();
fbVerl();
fbEiserstr();
fbFirstFloor();
fbCabinet();
fbAv01();
fbController();
fbAv02();
// Switzerland
fbSwitzerland();
// Spain
fbSpain();
fbMadrid();
IF bChangeAv03 THEN
bChangeAv03 := FALSE;
sTest := 'ßÄÖÜäöü This is a test';
// requires library Tc2_Utilities
STRING_TO_UTF8( ADR( fbAv03.sDescription ), ADR( sTest ), SIZEOF( fbAv03.sDescription) );
END_IF
fbAv03();