SRV_MSV_SMALL

SRV_MSV_SMALL (FB)

FUNCTION_BLOCK SRV_MSV_SMALL

Influence on the current state of the property 'PresentValue' (output)

Priority Condition Function Notes

Highest Property 'OutOfService' = TRUE 'PresentValue' can be written directly Forced override of the output 'PresentValue'

Middle State of at least one priority State of the highest priority (1 = highest, prioritization of requests for the state of PresentValue: of the array <> NULL 16 = lowest) of the array <> NULL determines the value of 'PresentValue'

Lowest States of all priorities 1 - 16 of the array When switching to this priority, the value of setting the state of 'PresentValue', if there are no valid entries in the array := NULL property 'RelinquishDefault' is written once to the output 'PresentValue'.

Notes:

The state of a priority in the array can assume the following states: NULL (= inactive), FALSE (OFF), TRUE (ON) The most recent access defines the state of PresentValue. ('Last one wins') Each new state of 'PresentValue' is transmitted only once on state change, there is no continuous transmission (= pulse function).

Priority 6 (only for binary values)

The state of priority 6 must not be used (= written), as it is used for pulse generation on state changes of the property 'PresentValue'. Each rising edge on 'PresentValue' generates a pulse (state: TRUE) of length 'MinimumOnTime' ('MinimumOnTime' > 0 s) for priority 6. Each falling edge on 'PresentValue' generates a pulse (state: FALSE) of length 'MinimumOffTime' ('MinimumOffTime' > 0 s) for priority 6.

Notification Class

Conditions:

  1. The property 'RecipientList' must be provided with the attribute 'WRITEABLE'.

  2. The instance number must be identical to the Notification-Class

  3. The priorities (0 - 2) should contain values greater than 0 (for example all = 1)

Persistence

Conditions:

  1. The desired property (e.g. 'Description') must be provided with the attribute 'PERSIST'.

  2. Persistence remains until the value of the property changes (xEnValueChange = TRUE) and/or a rising edge is detected on the input 'xInit'.

Unsolicited COV (= unsolicited transmission of state changes to all BACnet participants (broadcast))

Conditions:

  1. The property 'SupportUnsolicitedCOV' must be set to 'TRUE' in the BACnet_Server (central for all BACnet objects)

Status bit 'Fault'

Conditions for the state 'TRUE'

  1. The current value of 'rPresentValue' falls below the lower limit 'rFaultLowLimit_IN' and/or (stOutputs.Reliability = 'UnderRange') (Event status from 'NORMAL' to 'FAULT')

  2. The current value of 'rPresentValue' exceeds the upper limit 'rFaultHighLimit_IN'. (stOutputs.Reliability = 'OverRange') (Event status from 'NORMAL' to 'FAULT')

Conditions for the state 'FALSE'

In all other cases. (Event status from 'FAULT' to 'NORMAL')

Absolute limits of 'rPresentValue'

The output 'rResentValue' accepts only values between the two absolute limits (each inclusive), independent of the input at 'rPresentValue_IN'.

  1. Absolute lower limit for 'rPresentValue': parameter 'rMinPresValue_IN'

  2. Absolute upper limit for 'rPresentValue': parameter 'rMaxPresValue_IN'

Status bit 'InAlarm'

Conditions for the state 'TRUE'

  1. The current value of 'rPresentValue' falls below the lower limit 'rMinPresValue_IN' and/or (stOutputs.Reliability = 'NoFaultDetected') (Event status from 'NORMAL' to 'INALARM')

  2. The current value of 'rPresentValue' exceeds the upper limit 'rMaxPresValue_IN'. (stOutputs.Reliability = 'NoFaultDetected') (Event status from 'NORMAL' to 'INALARM')

Additionally, the parameter 'rDeadband_IN' must be considered as follows:

Example: 'rMaxPresValue_IN' = 98.0, 'rDeadband_IN' = 1.0 The alarm state is active when 'rPresentValue' > 'rMaxPresValue_IN'. The alarm state is no longer active when 'rPresentValue' < ('rMaxPresValue_IN' - 'rDeadband_IN').

Example: 'rMinPresValue_IN' = 2.0, 'rDeadband_IN' = 1.0 The alarm state is active when 'rPresentValue' < 'rMinPresValue_IN'. The alarm state is no longer active when 'rPresentValue' > ('rMinPresValue_IN' + 'rDeadband_IN').

Conditions for the state 'FALSE'

In all other cases. (stOutputs.Reliability = 'NoFaultDetected') (Event status from 'INALARM' to 'NORMAL')

Monitoring of the lower or upper limit can be enabled/disabled by an options switch each ('xLowLimitEnable_IN', 'xHighLimitEnable_IN').

For transmitting an alarm/event to a Notification Class (NC), the option switches 'xEventDetectionEnable_IN', 'xEventEnableOffNormal_IM' and 'xEventEnableNormal_IM' must be activated.

InOut:

Scope
Name
Type
Initial
Comment

Input

itfMasterConnector

IMasterForServerObjectsPOU

Input for the interface of the FB 'MasterForServerObjectsPOU'

Input

xInit

BOOL

FALSE

Reinitialization of all properties (write values/states and update outputs) (on every rising edge)

Input

udiNumberOfStates_IN

UDINT

Constants.gc_udiMSVMinNumberOfStates

Definition of the number of states of the object (Range: 2 … 10, allowable according to BACnet standard: 256)

Input

udiPresentValue_IN

UDINT

Constants.gc_udiMSVMinPresValue

Setting the value of the output ‘udiPresentValue’ with priority ‘diPriority_IN’

Input

arsStateTexts_IN

ARRAY [1..Constants.gc_udiMSVMaxNumberOfStates] OF STRING(255)

['Text1', 'Text2', 'Text3', 'Text4', 'Text5', 'Text6', 'Text7', 'Text8', 'Text9', 'Text10']

Definition of the state texts of the current state at ‘udiPresentValue’

Input

arudiAlarmValues_IN

ARRAY [1..Constants.gc_udiMSVMaxNumberOfStates] OF UDINT

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Definition of the alarm states of the object (function not yet implemented!!!) Array element value = 0: This array element does not trigger an alarm Array element value > 0: This array element triggers an alarm if the element's value corresponds to the current value of ‘udiPresentValue’.

Input

arudiFaultValues_IN

ARRAY [1..Constants.gc_udiMSVMaxNumberOfStates] OF UDINT

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Definition of the fault states of the object (function not yet implemented!!!) Array element value = 0: This array element does not trigger a fault Array element value > 0: This array element triggers a fault if the element's value corresponds to the current value of ‘udiPresentValue’.

Input

udiObjectInstance

UDINT

1

Object instance of the server object to be created

Input

sObjectNamePrefix

STRING(254)

‘’

Optional prefix for forming the object name — CONCAT(sObjectNamePrefix,sObjectNameText)

Input

sDescriptionPrefix

STRING(254)

‘’

Optional prefix for forming the description — CONCAT(sDescriptionPrefix,sDescriptionText)

Output

eObjectTypeFb

BACnet.CmpBACnet.IEC_BACNET_OBJECT_TYPE

Type of the object - feedback

Output

udiObjectInstanceFb

UDINT

Object instance of the server object to be created — feedback

Output

udiNumberOfStates

UDINT

Current number of states of the object (Range: 2 … 10, allowable according to BACnet standard: 256)

Output

udiPresentValue

UDINT

Current value of ‘PresentValue’ (Relinquish-default: S / Priority array: S+C / Out-Of-Service: S+C)

Output

sActualStateText

STRING(255)

State text of the current state of ‘udiPresentValue’

Output

arsStateTexts

ARRAY [1..Constants.gc_udiMSVMaxNumberOfStates] OF STRING(255)

Current state texts for the state variable ‘udiPresentValue’

Output

arudiAlarmValues

ARRAY [1..Constants.gc_udiMSVMaxNumberOfStates] OF UDINT

Current alarm states of the object (function not yet implemented!!!) Array element value = 0: This array element does not trigger an alarm Array element value > 0: This array element triggers an alarm if the element's value corresponds to the current value of ‘udiPresentValue’.

Output

arudiFaultValues

ARRAY [1..Constants.gc_udiMSVMaxNumberOfStates] OF UDINT

Current fault states of the object (function not yet implemented!!!) Array element value = 0: This array element does not trigger a fault Array element value > 0: This array element triggers a fault if the element's value corresponds to the current value of ‘udiPresentValue’.

Output

xPresentValueOverride

BOOL

Status of the override of the output ‘udiPresentValue’ ( TRUE = override active)

Output

stProperties

SRV_MSV_SMALL_PROPERTY_OUTPUTS

Structure with the current states of selected properties

Output

xRegistered

BOOL

FALSE

Indication of successful registration of the server object

Input Const

eSelectPopertiesToCheckChanges

ServerObjects_Select_Properties_To_Check_Changes

ServerObjects_Select_Properties_To_Check_Changes.PresentValue_only

Selection of the properties that are continuously checked for changes on the input (index ‘_IN’) and, if necessary, changed in the server 1. ServerObjects_Select_Properties_To_Check_Changes.No_property: No property is checked 2. ServerObjects_Select_Properties_To_Check_Changes.PresentValue_only: Only the properties ‘PresentValue’ (input ‘udiPresentValue_IN’) and ‘Reliability’ (input ‘eReliability_IN’) are checked 3. ServerObjects_Select_Properties_To_Check_Changes.All_properties All properties (inputs with the index ‘_IN’) are checked

Input Const

eTriggeringUpdateActual

ServerObjects_TriggeringUpdateActual

ServerObjects_TriggeringUpdateActual.CENTRAL_TRIGGERING

Definition of the trigger for cyclic updating of the outputs NO_TRIGGERING: no cyclic update LOCAL_TRIGGERING: cyclic update (time duration: tTimeUpdateActual) CENTRAL_TRIGGERING: cyclic update (time duration depends on the number of server objects)

Input Const

tTimeUpdateActual

TIME

TIME#3s0ms

Update interval for updating the outputs

Input Const

udiRelinquishDefault_IN

UDINT

Constants.gc_udiMSVMinPresValue

Definition of the value of the output ‘udiPresentValue’ in the lowest priority, if the priority array is not populated

Input Const

diPriority_IN

DINT

16

Priority for the input ‘udiPresentValue_IN’ (0 - 16, 0 = none, 1 = highest, 16 = lowest)

Input Const

eAccessRightFaultValues_IN

BACnet.CmpBACnet.IEC_BACNET_ACCESS

BACnet.CmpBACnet.IEC_BACNET_ACCESS.BACNET_ACCESS_HIDDEN

Definition of the access permission for the fault states by a client

Input Const

eAccessRightAlarmValues_IN

BACnet.CmpBACnet.IEC_BACNET_ACCESS

BACnet.CmpBACnet.IEC_BACNET_ACCESS.BACNET_ACCESS_HIDDEN

Definition of the access permission for the alarm states by a client

Input Const

eAccessRightStateTexts_IN

BACnet.CmpBACnet.IEC_BACNET_ACCESS

BACnet.CmpBACnet.IEC_BACNET_ACCESS.BACNET_ACCESS_HIDDEN

Definition of the access permission for the state texts by a client

Input Const

eAccessRightEventDetectionEnable_IN

BACnet.CmpBACnet.IEC_BACNET_ACCESS

BACnet.CmpBACnet.IEC_BACNET_ACCESS.BACNET_ACCESS_HIDDEN

Definition of the access permission for the property 'Event Detection Enable' by a client

Input Const

eAccessRightEventEnable_IN

BACnet.CmpBACnet.IEC_BACNET_ACCESS

BACnet.CmpBACnet.IEC_BACNET_ACCESS.BACNET_ACCESS_HIDDEN

Definition of the access permission for the property 'Event Enable' by a client

Input Const

eAccessRightNotifyType_IN

BACnet.CmpBACnet.IEC_BACNET_ACCESS

BACnet.CmpBACnet.IEC_BACNET_ACCESS.BACNET_ACCESS_HIDDEN

Definition of the access permission for the notification type by a client

Input Const

eAccessRightTimeDelay_IN

BACnet.CmpBACnet.IEC_BACNET_ACCESS

BACnet.CmpBACnet.IEC_BACNET_ACCESS.BACNET_ACCESS_HIDDEN

Definition of the access permission for the time delay by a client

Input Const

eAccessRightNotificationClass_IN

BACnet.CmpBACnet.IEC_BACNET_ACCESS

BACnet.CmpBACnet.IEC_BACNET_ACCESS.BACNET_ACCESS_HIDDEN

Definition of the access permission for the Notification Class by a client

Input Const

eReliability_IN

BACnet.CmpBACnet.IEC_BACNET_RELIABILITY

BACnet.CmpBACnet.IEC_BACNET_RELIABILITY.RELIABILITY_NO_FAULT_DETECTED

Setting the current state of the property 'Reliability'

Input Const

xOutOfService_IN

BOOL

FALSE

Forced override for the output ‘udiPresentValue’ with the highest priority (‘xOutOfService’ = TRUE) (Only for Value-Objects)

Input Const

xEventDetectionEnable_IN

BOOL

FALSE

General enable/disable of event detection (TRUE = enable)

Input Const

xEventNormalEnable_IN

BOOL

FALSE

Enable/disable detection of transitions to the state 'Normal' (TRUE = enable)

Input Const

xEventFaultEnable_IN

BOOL

FALSE

Enable/disable detection of transitions to the state 'Fault' (TRUE = enable)

Input Const

xEventOffNormalEnable_IN

BOOL

FALSE

Enable/disable detection of transitions to the state 'Off-Normal' (TRUE = enable)

Input Const

eNotifyType_IN

BACnet.CmpBACnet.IEC_BACNET_NOTIFY_TYPE

BACnet.CmpBACnet.IEC_BACNET_NOTIFY_TYPE.NOTIFY_TYPE_ALARM

Definition of the type of the associated Notification Class

Input Const

udiTimeDelay_IN

UDINT

0

Setting the value of the property 'udiTimeDelay' in seconds

Input Const

udiNotificationClass_IN

UDINT

40

Setting the number of the associated Notification Class

Input Const

sDescriptionText

STRING(254)

‘’

Text portion of the description

Input Const

sObjectNameText

STRING(254)

‘’

Text portion of the object name of the server object to be created

Input Const

xEn

BOOL

TRUE

Enable / disable of communication ( TRUE = enabled )

Last updated