FB_BA_Object

Der Funktionsbaustein FB_BA_Object stellt die Grundlage zur Entwicklung weiterer Objekte dar.
Diese Objekte müssen im Projekt zyklisch aufgerufen werden, hierbei verhindert das Aussetzen von Aufrufen ( z. B. innerhalb von IF-Bedingungen) eine korrekte Initialisierung.
![]() | Objekte sollten in einem VAR oder VAR_INPUT CONSTANT Bereich deklariert werden. |
![]() | Innerhalb von geerbten FBs muss der Basis-FB mit "SUPER^()" aufgerufen werden! |
Initialisierung
Während ein Objekt initialisiert wird, durchläuft es nacheinander mehrere Zustände:
- Alle Objekte initialisieren sich bis "E_BA_ObjectState.eWaitForInit"
- Danach gibt Top das Zeichen zum Fortsetzen der Objekt-Initialisierung
- Alle Objekte machen weiter bis "E_BA_ObjectState.eWaitForProject"
- Wenn alle Objekte auf "E_BA_ObjectState.eWaitForProject" stehen startet Top das Projekt.
- Alle Objekte gehen jetzt auf "E_BA_ObjectState.eOperation"
- Top signalisiert noch einen Zyklus lang "E_BA_ProjectState.eFirstOpCycle"
- Dann geht auch das Projekt in "E_BA_ProjectState.eOperation"
Illustration
FUNCTION_BLOCK ABSTRACT FB_BA_Object EXTENDS FB_BA_BasePublisher IMPLEMENTS I_BA_Object, I_BACnet_ObjectOwner
VAR_INPUT CONSTANT PERSISTENT
{region 'Fixed Parameters'}
nInstanceID : UDINT;
sDeviceType : T_BA_SmallString := XBA_Globals.sPlaceholder_Empty;
eAssignAsTrendRef : E_BA_AssignRefMode := E_BA_AssignRefMode.eInitByProfile;
{endregion}
{region 'Variable Parameters'}
sObjectName : T_MaxString := XBA_Globals.sPlaceholder_Empty;
sDescription : T_MaxString := XBA_Globals.sPlaceholder_Empty;
sTag : STRING(XBA_Param.nTag_Length);
{endregion}
END_VAR
VAR PERSISTENT
{region 'General'}
sInstObjectName : STRING;
sInstDescription : STRING;
{endregion}
END_VAR
VAR
{region 'Fixed Variables'}
iParent : I_BA_View;
iLabel : I_BA_Label;
iProfile : I_BA_Profile;
{endregion}
{region 'SubInit'}
eObjectType : E_BA_ObjectType := E_BA_ObjectType.eObject;
stAttributes : ST_BA_ObjectAttributes;
{endregion}
END_VAR
VAR
{region 'General'}
nLevel : UINT := 0; // Current hierarchy level according to root object (which hast level 0)
eState : E_BA_ObjectState := E_BA_ObjectState.First;
sFmtPresentValue : STRING;// Present value in a formated string
{endregion}
END_VAR
Eingänge CONSTANT PERSISTENT
Name | Typ | Beschreibung |
---|---|---|
nInstanceID | UDINT | Diese Eigenschaft ist ein numerischer Code, zur Identifizierung des Objekts. Er muss eindeutig innerhalb des Gerätes sein. |
sDeviceType | Diese Eigenschaft ist eine Textbeschreibung des physischen Geräts, das an den Analogausgang angeschlossen ist. | |
eAssignAsTrendRef |
Referenzmodus. | |
sDescription | Diese Eigenschaft stellt einen Beschreibungstext für das Objekt dar. Im Grundgerüst von TF8040 kann jede Ebene einen Teil-String erhalten. Die Teil-Strings der Ebenen werden von dem DPAD-Mechanismus verkettet, sodass mittels dieses Algorithmus der komplette Name des Objektes entsteht (siehe DPAD). | |
sTag | STRING | Diese Eigenschaft stellt einen zusätzlichen Beschreibungstext für das Objekt dar. Der String sTag kann nutzer- bzw. projektspezifisch angewendet werden. Zum Beispiel zum Eintrag der Schaltschrankgerätekennzeichnung. |
Eingänge PERSISTENT
Name | Typ | Beschreibung |
---|---|---|
sInstObjectName | STRING | Objektname der Instanz. |
sInstDescription | STRING | Beschreibung der Instanz. |
VAR
Name | Typ | Beschreibung |
---|---|---|
iParent | I_BA_Parent | Schnittstelle Elternobjekt. |
iLabel | I_BA_Label | Schnittstelle Beschreibung. |
iProfile | I_BA_Profile | Schnittstelle Profil. |
eObjectType | Auswahl der Objekttyps. | |
stAttributes | Definition der Attribute. | |
nLevel | UINT | Aktuelle Hierarchieebene gemäß dem Grundobjekt (Ebene 0). |
eState | Auswertung des Subscriberstatus. | |
sFmtPresentValue | STRING | Aktueller Wert in einem formatierten String. |
Voraussetzungen
Entwicklungsumgebung | Erforderliche SPS-Bibliothek |
---|---|
TwinCAT ab v3.1.4024.35 | Tc3_XBA ab v5.3.0.0 |