ClientWriteProperty_ManyInputs

ClientWriteProperty_ManyInputs (FB)

FUNCTION_BLOCK ClientWriteProperty_ManyInputs

Kurzbeschreibung

Aktualisierung von Eigenschaften von BACNET-Objekten ( Schreibender Zugriff ) Typische Anwendung: Änderung einer Solltemperatur via BACNET

Darstellung

Schnittstellen

Eingänge

Name
Datentyp
Wertebereich
Initialwert
Funktion

xEn

BOOL

TRUE

Freigabe / Sperrung der Kommunikation ( TRUE = Freigabe )

‘itfServer*

BACnet.IBACnetServer

Interface-Variable für die Referenzierung des Servers

eSetpValueMode

ClientWriteProperty_SetpValueMode

ClientWriteProperty_SetpValueMode.Auto

Auswahl der Betriebsart für den Sollwert-Eingang

ePropertyDataTypeMode

ClientWriteProperty_PropertyDataTypeMode

ClientWriteProperty_PropertyDataTypeMode.Auto

Auswahl der Betriebsart für den übertragenen Datentyp der Eigenschaft

ePropertyDataType

BACnet.CmpBACnet.IEC_BACNET_DATA_TYPE

BACnet.CmpBACnet.IEC_BACNET_DATA_TYPE.DATA_TYPE_NULL

Auswahl des übertragenen Datentyps der Eigenschaft in der Betriebsart ePropertyDataTypeMode = ePropertyDataType

rSetpValue

REAL

0.0

Sollwert der Eigenschaft im Format REAL ( Gleitkommazahl gemaess IEEE754 - 32 Bit )

xSetpValue

BOOL

FALSE

Sollwert der Eigenschaft im Format BOOL

sSetpValue

STRING[255]

‘’

Sollwert der Eigenschaft im Format STRING ( Zeichenkette )

diSetpValue

DINT

0

Sollwert der Eigenschaft im Format DINT ( 32 BIT, Ganzzahl mit Vorzeichen )

udiSetpValue

UDINT

0

Sollwert der Eigenschaft im Format UDINT ( 32 BIT, Ganzzahl ohne Vorzeichen )

stSetpValue

BACnet.CmpBACnet.IEC_BACNET_PROPERTY_CONTENTS

Sollwert der Eigenschaft im Format IEC_BACNET_PROPERTY_CONTENTS ( Direkte Übergabe an die Schnittstelle )

xUpdateSetp

BOOL

FALSE

Aktualisierung der Sollwerte ( bei jeder ansteigenden Flanke )

xResError

BOOL

FALSE

Rücksetzung des Fehlerausgänge ‘eErrorCodeCom’ und ‘eRepyErrorCode.XXX’ ( bei jeder ansteigenden Flanke )

Ausgänge

Name
Datentyp
Wertebereich
Initialwert
Funktion

dwDeviceID_Fb

DWORD

0

Nummer des BACnet - Zielgerät ( Bereich: 0 - 4194302 ) - Rückmeldung

dwObjectInstance_Fb

DWORD

0

Nummer des Objekts ( Bereich: 0 - 4194303 ) - Rückmeldung

eObjectType_Fb

BACnet.CmpBACnet.IEC_BACnet_Object_Type

Typ des Objekts - Rückmeldung

ePropertyType_Fb

BACnet.CmpBACnet.IEC_BACNET_PROPERTY_ID

Typ der Eigenschaft - Rückmeldung

<br/>*<br/> eActPropertyDataType’

BACnet.CmpBACnet.IEC_BACNET_DATA_TYPE

BACNET - Datentyp der Eigenschaft, automatische Ermittlung anhand von ‘eObjectType’ und ‘ePropertyType’ ( ePropertyDataTypeMode = Auto )

<br/>*<br/> sInputSetpValue’

STRING

‘’

Anzeige des Eingangs für den Sollwert der Eigenschaft

<br/>*<br/> xRegToServer’

BOOL

FALSE

Status der Registrierung am BACnet-Server ( TRUE = erfolgreiche Registrierung )

<br/>*<br/> xConfigObject’

BOOL

FALSE

Status der Konfiguration des Objekts ( TRUE = erfolgreiche Konfiguration )

<br/>*<br/> xSuccTransfer’

BOOL

FALSE

Status des Erfolgs der Aktualisierung des Sollwerts der Eigenhscfat ( TRUE = Übertragung erfolgreich, ansteigende Flanke nach jeder erfolgreichen Übertragung )

<br/>*<br/> eState’

BACnet.CmpBACnet.IEC_BACNET_STATUS

Status der Kommunikation

<br/>*<br/> eErrorCodeCom’

BACnet.CmpBACnet.IEC_BACNET_STATUS

Aktuellster Kommunikationsfehler

<br/>*<br/> eReplyErrorCode’

TYPE_OF_REPLY_ERROR_CODE

Aktuellster Kommunikationsfehler in der Antwort auf eine eigene Anfrage

<br/>*<br/> xAlarm’

BOOL

FALSE

Sammelstörung ( TRUE = Störung )

<br/>*<br/> xAlarmCom’

BOOL

FALSE

Sammelstörung - Kommunikation ( TRUE = Störung )

xBusy

BOOL

Kommunikationsanzeige ( TRUE = Kommunikation )

Sollwerte / Parameter

Name
Datentyp
Wertebereich
Initialwert
Funktion

tTimeUpdateSetp

TIME

T#0s

Updateintervall für die Vorgänge, die durch den Eingang ‘xUpdateSetp’ beeinflusst werden ( 0 = kein automatisches Update, > 0 zyklisches Update )

dwDeviceID

DWORD

4096

Nummer des BACnet - Zielgerät ( Bereich: 0 - 4194302 )

dwObjectInstance

DWORD

1

Nummer des Objekts ( Bereich: 0 - 4194303 )

eObjectType

BACnet.CmpBACnet.IEC_BACnet_Object_Type

BACnet.CmpBACnet.IEC_BACnet_Object_Type.OBJ_ANALOG_OUTPUT

Typ des Objekts

ePropertyType

BACnet.CmpBACnet.IEC_BACNET_PROPERTY_ID

BACnet.CmpBACnet.IEC_BACNET_PROPERTY_ID.PROP_PRESENT_VALUE

Typ der Eigenschaft

diWritePriority

BACnet.CmpBACnet.IEC_BACNET_SIGNED

16

Priorität der Eigenschaft ( 1 = höchste, 16 = niedrigste Priorität )

ePropertyCharSet

BACnet.CmpBACnet.IEC_BACNET_STRING_TYPE

BACnet.CmpBACnet.IEC_BACNET_STRING_TYPE.BACNET_STRING_UTF_8

Zeichensatz der Eigenschaft

udiTimeoutFB

UDINT

5*1000*1000

Zeitdauer des Timeout für die Instanz des FB BACnet.BACnetClientWriteProperty ( in Mikrosekunden, 0 = kein Timeout, CBML ETrigATo )

rDevPlus

REAL

0.0

Maximale positive Abweichung der Eingangsvariable ‘rSetpValue’ ( Typ: REAL ) vor der Auslösung der Aktualisierung des Sollwerts

rDevMinus

REAL

0.0

Maximale negative Abweichung der Eingangsvariable ‘rSetpValue’ ( Typ: REAL ) vor der Auslösung der Aktualisierung des Sollwerts

Funktionsbeschreibung

Allgemeines

Dieser Funktionsbaustein überträgt Sollwerte von Eigenschaften per BACNET-Kummunikation ( schreibender Zugriff ). Die Auswahl des Sollwert-Eingangs erfolgt durch den Eingang ‘eSetpValueMode’ ( Default = Auto ). Die Auswahl des BACNET-Datentyps erfolgt durch den Eingang ‘ePropertyDataTypeMode’ ( Default = Auto ). Am Ausgang ‘eActPropertyDataType’ steht der aktuelle BACNET-Datentyp zur Verfügung. Am Ausgang ‘sInputSetpValue’ steht der aktuell ausgewählte Eingang für den Sollwert zur Verfügung.

Freigabe / Sperrung der Kommunikation

Die Freigabe / Sperrung der Kommunikation erfolgt über den Eingang ‘xEn’ ( Default = TRUE = Freigabe ). Bei jeder ansteigenden Flanke am Eingang ‘xEn’ wird eine Übertragung des Sollwerts mit den aktuellen Einstellungen ausgelöst. Im gesperrten Zustand nehmen die Ausgänge ab ‘xRegToServer’ abwärts vordefinierte Zustände ein, gleichzeitig erfolgt eine Abmeldung vom Server.

Eingang ‘eSetpValueMode’

Die Betriebsart des Sollwert-Eingangs wird durch diesen Eingang wie folgt ausgewählt. Sie legt den Eingang fest, der auf Veränderungen des Sollwerts hin überwacht wird. In der Betriebsart ‘Auto’ wird der Eingang durch den Zustand des Ausgangs ‘eActPropertyDataType’ automatisch festgelegt ( durch die Parameter ‘eObjectType’ und ‘ePropertyType’ ). In der Betriebsart ‘Auto’ und gleichzeitiger Betriebsart ePropertyDataTypeMode = ePropertyDataType wird automatisch der Eingang ‘stSetpValue’ ausgewählt.

eSetpValueMode

Funktion

Hinweise

None

Auslösung der Übertragung gesperrt

Auto

Auswahl des Eingangs durch ‘eActPropertyDataType’

rSetpValue

Handbetrieb - Eingang ‘rSetpValue’

xSetpValue

Handbetrieb - Eingang ‘xSetpValue’

sSetpValue_String

Handbetrieb - Eingang ‘sSetpValue’

Modus: Zeichenkette ( CHAR_STRING )

sSetpValue_Bit_String

Handbetrieb - Eingang ‘sSetpValue’

Modus: Bit-Zeichenkette ( BIT_STRING )

diSetpValue

Handbetrieb - Eingang ‘diSetpValue’

udiSetpValue

Handbetrieb - Eingang ‘udiSetpValue’

stSetpValue

Handbetrieb - Eingang ‘stSetpValue’

Direktzugriff auf die Schnittstelle

Eingang ‘ePropertyDataTypeMode’

Die Betriebsart des BACNET-Datentyps wird durch diesen Eingang wie folgt ausgewählt. Sie legt den BACNET-Datentype fest, der im UDP-Telegramm übertragen wird. In der Betriebsart ‘Auto’ wird der BACNET-Datentyp automatisch durch die Parameter ‘eObjectType’ und ‘ePropertyType’ ausgewählt. In der Betriebsart ‘ePropertyDataType’ und gleichzeitiger Betriebsart eSetpValueMode = Auto wird automatisch der Eingang ‘stSetpValue’ ausgewählt.

ePropertyDataTypeMode

Funktion

Hinweise

None

Auslösung der Übertragung gesperrt

Auto

Festlegung des BACNET-Datentyps durch die Parameter ‘eObjectType’ und ‘ePropertyType’

ePropertyDataType

Handbetrieb - Eingang ‘ePropertyDataType’

Löschung von Einträgen im Prioritätsarray

Die gewünschte Löschung ( z.B. ist das Arrayelement 16 mit dem Wert 100.0 beschrieben ) der Eintragung einesd Array-Elements wird vorgenommen, indem der aktuelle Wert NULL ( = 0 ) ist und der zu übertragende Datentyp auf DATA_TYPE_NULL gesetzt wird: eSetpValueMode = ‘udiSetpValue’ udiSetpValue = 0 ePropertyDataTypeMode := ‘ePropertyDataType’ ePropertyDataType = DATA_TYPE_NULL Nach der erfolgreichen Übertragung ist z.B. das Arrayelement 16 mit dem Wert NULL beschrieben und somit nicht mehr wirksam.

Auslösung einer Übertragung

Die Übertragung des Sollwerts der Eigenschaft kann wie folgt ausgelöst ( Voraussetzung: xRegToServer = TRUE )\

  • jede ansteigende Flanke am Eingang ‘xEn’

  • jede ansteigende Flanke am Eingang ‘xUpdateSetpn’

  • zyklisch im Intervall ‘tTimeUpdateSetp’ ( Default: T#0s )

  • einmalig nach jedem Download

  • einmalig nach jeder Änderung der Konfiguration

  • einmalig nach jeder Änderung am aktiven Eingang

Konfiguration des BACNET-Objekts

Das BACNET-Objekt wird durch die folgenden Parameter eindeutig festgelegt:\

  • Geräteadresse ‘dwDeviceID’

  • Objektadresse ‘dwObjectInstance’

  • Objekttyp ‘eObjectType’

  • Eigenschaftstyp ‘ePropertyType’

  • Schreibpriorität ‘diWritePriority’

  • Timeout für den FB ‘udiTimeoutFB’

Eingang ‘rSetpValue’

Die Übertragung des Sollwerts der Eigenschaft wird ausgelöst ( Voraussetzung: xRegToServer = TRUE ), falls die Änderung den Parameter ‘rDevPlus’ überschreitet, bzw. den Parameter ‘rDevMinus’ unterschreitet.

Eingang ‘stSetpValue’

Bei diesem Eingang handelt es sich um einen Direktzugriff auf die interne Schnittstelle der Übertragung. ( Datentyp = BACnet.CmpBACnet.IEC_BACNET_PROPERTY_CONTENTS ) Es muss daher im CFC dafür Sorge getragen werden, dass alle Strukturelemente richtig initialisiert werden !!! Die Übertragung des Sollwerts der Eigenschaft wird ausgelöst ( Voraussetzung: xRegToServer = TRUE ), falls mindestens eine Änderung in der Struktur erkannt worden ist.

Ausgang ‘sInputSetpValue’

An diesem Ausgang steht permanent der aktuelle Eingang für den Sollwert als String zur Verfügung.

Ausgang ‘xRegToServer’

An diesem Ausgang steht permanent der Status der internen Verbindung zum BACNET-Server zur Verfügung. Der erfolgreiche Verbindungsaufbau zum Server ist dabei Voraussetzung zur Übertragung des Sollwerts.

Ausgang ‘xConfigObject’

An diesem Ausgang steht permanent der Status der erfolgreichen Konfiguration des BACNET-Objekts zur Verfügung.

Ausgang ‘xSuccTransfer’

An diesem Ausgang steht permanent der Status der BACNET-Übertragung zur Verfügung. Nach jeder erfolgreichen Übertragung wird hier eine ansteigende Flanke erzeugt.

Anzeige von Störungen

Die Anzeige von Störungen erfolgt am Sammelausgang ‘xAlarm’ ( = TRUE ). Er beinhaltet hier nur die Kommunikationsstörungen ( Zeitverzögerung: gc_Parameters.gc_tOnDelayxAlarmCom, Default = 60s ) ( Ausgang ‘xAlarmCom’ ). Am Ausgang ‘eErrorCodeCom’ steht im Falle eines Kommunikationsfehlers ein erklärender Text für die Ursache zur Verfügung. Es wird dort stets die Ursache des letzten Kommunikationsfehlers angezeigt. Am Ausgang ‘eReplyErrorCode’ steht im Falle eines Fehlers im Antworttelegramm ein erklärender Text für die Ursache zur Verfügung.

Ausgang ‘xBusy’

Dieser Ausgang signalisiert die aktive Übertragung des Sollwerts ( = TRUE ).

Beispiel

CODESYS

InOut:

Scope
Name
Type
Initial
Comment

Input

xEn

BOOL

TRUE

Freigabe / Sperrung der Kommunikation ( TRUE = Freigabe )

Input

itfServer

BACnet.IBACnetServer

Interface-Variable für die Referenzierung des Servers

Input

eSetpValueMode

ClientWriteProperty_SetpValueMode

ClientWriteProperty_SetpValueMode.Auto

Auswahl der Betriebsart für den Sollwert-Eingang 0 = Keine 1 = Automatik-Betrieb ( der Eingang wird automatisch ausgewählt ) 2 = Hand-Betrieb: Eingang ‘rSetpValue’ 3 = Hand-Betrieb: Eingang ‘xSetpValue’ 4 = Hand-Betrieb: Eingang ‘sSetpValue’ 5 = Hand-Betrieb: Eingang ‘diSetpValue’ 6 = Hand-Betrieb: Eingang ‘udiSetpValue’ 7 = Hand-Betrieb: Eingang ‘stSetpValue’ ( Direkte Übergabe an die Schnittstelle )

Input

ePropertyDataTypeMode

ClientWriteProperty_PropertyDataTypeMode

ClientWriteProperty_PropertyDataTypeMode.Auto

Auswahl der Betriebsart für den übertragenen Datentyp der Eigenschaft 0 = Keine 1 = Automatik-Betrieb ( der Datentyp wird automatisch ausgewählt ) 2 = Hand-Betrieb: Eingang ‘ePropertyDataType’

Input

ePropertyDataType

BACnet.CmpBACnet.IEC_BACNET_DATA_TYPE

BACnet.CmpBACnet.IEC_BACNET_DATA_TYPE.DATA_TYPE_NULL

Auswahl des übertragenen Datentyps der Eigenschaft in der Betriebsart ePropertyDataTypeMode = ePropertyDataType

Input

rSetpValue

REAL

0.0

Sollwert der Eigenschaft im Format REAL ( Gleitkommazahl gemaess IEEE754 - 32 Bit )

Input

xSetpValue

BOOL

FALSE

Sollwert der Eigenschaft im Format BOOL

Input

sSetpValue

STRING(255)

‘’

Sollwert der Eigenschaft im Format STRING ( Zeichenkette )

Input

diSetpValue

DINT

0

Sollwert der Eigenschaft im Format DINT ( 32 Bit, Ganzzahl mit Vorzeichen )

Input

udiSetpValue

UDINT

0

Sollwert der Eigenschaft im Format UDINT ( 32 Bit, Ganzzahl ohne Vorzeichen )

Input

stSetpValue

BACnet.CmpBACnet.IEC_BACNET_PROPERTY_CONTENTS

Sollwert der Eigenschaft im Format IEC_BACNET_PROPERTY_CONTENTS ( Direkte Übergabe an die Schnittstelle )

Input

xUpdateSetp

BOOL

FALSE

Aktualisierung der Sollwerte ( bei jeder ansteigenden Flanke )

Input

xResError

BOOL

FALSE

Rücksetzung des Ausgang ‘eError’ ( bei jeder ansteigenden Flanke )

Output

dwDeviceID_Fb

DWORD

Nummer des BACnet - Zielgerät ( Bereich: 0 - 4194302 ) - Rückmeldung

Output

dwObjectInstance_Fb

DWORD

Nummer des Objekts ( Bereich: 0 - 4194303 ) - Rückmeldung

Output

eObjectType_Fb

BACnet.CmpBACnet.IEC_BACnet_Object_Type

Typ des Objekts - Rückmeldung

Output

ePropertyType_Fb

BACnet.CmpBACnet.IEC_BACNET_PROPERTY_ID

Typ der Eigenschaft - Rückmeldung

Output

eActPropertyDataType

BACnet.CmpBACnet.IEC_BACNET_DATA_TYPE

Bacnet-Datentyp der Eigenschaft Automatische Ermittlung anhand von ‘eObjectType’ und ‘ePropertyType’ ( ePropertyDataTypeMode = Auto ) Manuelle Vorgabe über den Eingang ‘ePropertyDataType’ ( ePropertyDataTypeMode = ePropertyDataType ) Übergabe an das Element ‘tag’ der Struktur IEC_BACNET_PROPERTY_CONTENTS Unmittelbare Übertragung im UDP-Telegramm

Output

sInputSetpValue

STRING

‘’

Anzeige des Eingangs für den Sollwert der Eigenschaft

Output

xRegToServer

BOOL

Status der Registrierung am BACnet-Server ( TRUE = erfolgreiche Registrierung )

Output

xConfigObject

BOOL

Status der Konfiguration des Objekts ( TRUE = erfolgreiche Konfiguration )

Output

xSuccTransfer

BOOL

FALSE

Status des Erfolgs der Aktualisierung des Sollwerts der Eigenhscfat ( TRUE = Übertragung erfolgreich )

Output

eCBMState

BACnet.CmpBACnet.IEC_BACNET_STATUS

CBM - Status der Kommunikation ( Aktualisierung: Zustände DONE, ERROR und ABORT )

Output

eComState

ClientWriteProperty_ComStates

Status der Kommunikation ( Aktualisierung: Zustände No_Execution, Target_Device_Searching, Request_Sending, Reply_Waiting, Finishing )

Output

eErrorCodeCom

BACnet.CmpBACnet.IEC_BACNET_STATUS

Aktuellster Kommunikationsfehler

Output

eReplyErrorCode

TYPE_OF_REPLY_ERROR_CODE

Aktuellster Kommunikationsfehler in der Antwort auf eine eigene Anfrage

Output

xAlarm

BOOL

Sammelstörung ( TRUE = Störung )

Output

xAlarmCom

BOOL

Sammelstörung - Kommunikation ( TRUE = Störung )

Output

xBusy

BOOL

Kommunikationsanzeige ( TRUE = Kommunikation )

Input Const

rDevMinus

REAL

0.0

Maximale negative Abweichung der Eingangsvariable ‘rSetpValue’ ( Typ: REAL ) vor der Auslösung der Aktualisierung des Sollwerts

Input Const

rDevPlus

REAL

0.0

Maximale positive Abweichung der Eingangsvariable ‘rSetpValue’ ( Typ: REAL ) vor der Auslösung der Aktualisierung des Sollwerts

Input Const

udiTimeoutFB

UDINT

((5 * 1000) * 1000)

Zeitdauer des Timeout für die Instanz des FB BACnet.BACnetClientWriteProperty ( in Mikrosekunden, 0 = kein Timeout, CBML ETrigATo )

Input Const

ePropertyCharSet

BACnet.CmpBACnet.IEC_BACNET_STRING_TYPE

BACnet.CmpBACnet.IEC_BACNET_STRING_TYPE.BACNET_STRING_UTF_8

Zeichensatz der Eigenschaft

Input Const

diWritePriority

BACnet.CmpBACnet.IEC_BACNET_SIGNED

16

Priorität der Eigenschaft ( 1 = höchste, 16 = niedrigste Priorität )

Input Const

ePropertyType

BACnet.CmpBACnet.IEC_BACNET_PROPERTY_ID

BACnet.CmpBACnet.IEC_BACNET_PROPERTY_ID.PROP_PRESENT_VALUE

Typ der Eigenschaft

Input Const

eObjectType

BACnet.CmpBACnet.IEC_BACnet_Object_Type

BACnet.CmpBACnet.IEC_BACnet_Object_Type.OBJ_ANALOG_OUTPUT

Typ des Objekts

Input Const

dwObjectInstance

DWORD

1

Nummer des Objekts ( Bereich: 0 - 4194303 )

Input Const

dwDeviceID

DWORD

4096

Nummer des BACnet - Zielgerät ( Bereich: 0 - 4194302 )

Input Const

tTimeUpdateSetp

TIME

TIME#0ms

Updateintervall für die Vorgänge, die durch den Eingang ‘xUpdateSetp’ beeinflusst werden

Methods:

CHECK_BUFFER_CHANGE

FB_Exit

Structure:

  • CHECK_BUFFER_CHANGE (Method)

  • FB_Exit (Method)

Zuletzt aktualisiert