BACnetBinaryOutput.ActiveText (PROP) ¶ PROPERTY ActiveText : WSTRING(255)
DeviceTwin ¶ GetDeviceTwin (FunctionBlock) UpdateDeviceTwin (FunctionBlock)
Message ¶ GetMessage (FunctionBlock) SendMessage (FunctionBlock)
MQTT ¶ AzureMQTTClient (FunctionBlock) DeviceTwin GetMQTTDeviceTwin (FunctionBlock) SubscribeMQTTDeviceTwinDesiredProperties (FunctionBlock) UpdateMQTTDeviceTwin (FunctionBlock) DirectMethods IMethodInvoker (Interface) Invoke (Method) IMethodInvoker2 (Interface) Invoke (Method) SubscribeMQTTMethods (FunctionBlock) SubscribeMQTTMethods2 (FunctionBlock) Message SendMQTTMessage (FunctionBlock) SubscribeMQTTMessage (FunctionBlock)
Optimization ¶ Function blocks for building automation optimization duties are collected in this folder. EnergyLevelSetpoint (FunctionBlock) VDI 3814 reference HeatCoolUsingOutdoorAir (FB) Functionality Cooling mode Heating mode
AzureMQTTClient (FB) ¶ FUNCTION_BLOCK AzureMQTTClient Function block to connect to Azure IoT Hub via MQTT. InOut: Scope Name Type Initial Comment Input xEnable BOOL TRUE: Opens a connection, FALSE: Close connection uiKeepAlive UINT 10 Keep alive interval in seconds (default: 10s) tPingInterval TIME TIME#2s0ms Ping interval (default: 2s) udiTimeOut UDINT 0 Defines the time (µs) after which the connection setup aborts with xError. tReconnectTime TIME TIME#0ms Time for an automatically reconnection, default is T#0s and reconnection is not acitve. sHubDomainName STRING(255) Domain name of the IoT Hub sDeviceId STRING(255) Device ID wsSaS WSTRING(255) Shared Access Signature (SAS Token) pbWillMessage POINTER TO BYTE 0 Pointer to the ‘Last Will’ message (optional) uiWillMessageSize UINT 0 Size of ‘Last Will’ message (optional) itfTLSContext NBS.ITLSContext 0 Encapsulates all the data neccecray to handle encrypted tcp connections Static initialization, as shown in the following code snippet. VAR commonName : STRING := 'MyRrasPi' ; ciCertInfo : NBS.CERT_INFO := ( psInfo := ADR ( commonName ), udiSize := LEN ( commonName )); myTLSContext : NBS.TLSContext := ( ePurpose := NBS.PURPOSE.CLIENT_SIDE , sUseCaseName := 'NBSTest' , sTLSVersion := '1.3' , ciCertInfo := ciCertInfo , udiVerificationMode := 2 ); END_VAR itfAsyncProperty NBS.IAsyncProperty 0 Runs the connect process in a own background task. Use this property if the connection setup takes longer than one task cycle (e.g. TLS connections) Output xError BOOL TRUE, if an error occurred xBusy BOOL TRUE, while the function block is active eError MQTT.MQTT_ERROR The error id xConnectedToBroker BOOL FALSE FALSE when there is no connection to Azure IoT Hub, otherwise TRUE
DeviceTwin ¶ GetMQTTDeviceTwin (FunctionBlock) SubscribeMQTTDeviceTwinDesiredProperties (FunctionBlock) UpdateMQTTDeviceTwin (FunctionBlock)
DirectMethods ¶ IMethodInvoker (Interface) Invoke (Method) IMethodInvoker2 (Interface) Invoke (Method) SubscribeMQTTMethods (FunctionBlock) SubscribeMQTTMethods2 (FunctionBlock)
EnergyLevelSetpoint (FB) ¶ FUNCTION_BLOCK EnergyLevelSetpoint Selects the energy level releated setpoint of a building (part) or system part (like a HVAC plant powering a building). The purpose of selecting an energy level is to optimize energy consumption. EnergyLevelSetpoint differentiates between four levels with increasing energy demands: “protection” “economy” “pre-comfort” “comfort” The “protection” energy level is using the minimum energy amount to prevent damage to the building fabric and the building technical installation. The building / system part is controlled using this level if temporarily out of use. The “economy” energy level is an energy saving mode of a building or system part which is not occupied or not being used for longer periods (at night, weekend etc.). The “pre-comfort” energy level is an energy saving mode of a building or system part which is supposed to reach “comfort” level within a short period. The “comfort” energy level is the state intended for nomal usage of an occupied building. VDI 3814 reference ¶ EnergyLevelSetpoint is oriented towards VDI 3814 3.1 “Optimisation functions” “Energy Mode” (6.3.6.1), but is different in some aspects. VDI 3814 “Energy Mode” (6.3.6.1) implies some aspects which at least give room for discussions: room occupation state and window contact Operation mode computation in room controllers is more complex than those two aspects. So EnergyLevelSetpoint doesnt provide those isolated aspects and leaves them up to a more complex room controller function block. Because of this there is no need for an output “current operation mode”. hysteresis for building protection limit The “no energy zone” between heat setpoint and cool setpoint is sufficient to ensure building protection and avoiding unneccesary energy consumption. Requesting a hysteresis does imply kind of two-position control - which is neither needed to request nor fully specified in VDI 3814 “Energy Mode”. So EnergyLevelSetpoint doesnt provide this and leaves this aspect up to a more complex room controller function block. current setpoint Providing just one current setpoint does imply single sequence control driven by this setpoint. Control algorithm tend to be more complex than this, multi-sequence-control is quiet often the default. So EnergyLevelSetpoint provides the current heat setpoint and cool setpoint. InOut: Scope Name Type Initial Comment Input eLevel EnergyLevel Energy level rSetptHeatComfort REAL 21.0 Heat setpoint comfort level rSetptCoolComfort REAL 23.0 Cool setpoint comfort level rSetptHeatPreComfort REAL 19.0 Heat setpoint pre-comfort level rSetptCoolPreComfort REAL 25.0 Cool setpoint pre-comfort level rSetptHeatEconomy REAL 16.0 Heat setpoint economy level rSetptCoolEconomy REAL 28.0 Cool setpoint economy level rSetptHeatProtection REAL 10.0 Heat setpoint protection level rSetptCoolProtection REAL 40.0 Cool setpoint protection level Output rSetptHeat REAL Current heat setpoint rSetptCool REAL Current cool setpoint
Message ¶ SendMQTTMessage (FunctionBlock) SubscribeMQTTMessage (FunctionBlock)