ClientWriteProperty_ManyInputs
ClientWriteProperty_ManyInputs (FB)
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
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
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
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:
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

