BACnetIPdatalink.CntBbmd (PROP) ¶ PROPERTY CntBbmd : WORD Number of initial entries in the BDT, a value of 0 will disable BBMD functionality
BACnetIPdatalink.NetworkInterfaceName (PROP) ¶ PROPERTY NetworkInterfaceName : STRING Network interface name
BACnetIPdatalink.MACAddress (PROP) ¶ PROPERTY MACAddress : ARRAY [0..5] OF BYTE
BACnetIPdatalink.CheckNetworkSettings (METH) ¶ METHOD PROTECTED CheckNetworkSettings : BOOL Checks, if parent ETH device is configured properly. Returns TRUE if the network settings are valid. In case FALSE is returned the BACnetServer will not start. In case there is nothing to check (BACnetIPdatalink underneath BACnetServer or PLC) simply return TRUE. InOut: Scope Name Type Comment Return CheckNetworkSettings BOOL Input pConnector POINTER TO IoConfigConnector “child” connector to parent device, parent device could be “Common.Ethernet” (Ethernet), “Common.BACnet” (BACnetServer) or “Common.PCI” (PLC).
BACnetIPdatalink.GetIPaddrFromETH (METH) ¶ METHOD PROTECTED GetIPaddrFromETH : BOOL Gets IP-address from parent ETH device, returns TRUE, if valid IP-address was obtained. InOut: Scope Name Type Comment Return GetIPaddrFromETH BOOL Input pConnector POINTER TO IoConfigConnector “child” connector to parent device, parent device could be “Common.Ethernet” (Ethernet), “Common.BACnet” (BACnetServer) or “Common.PCI” (PLC).
BACnetMSTPdatalink (FB) ¶ FUNCTION_BLOCK BACnetMSTPdatalink EXTENDS BACnetDatalink BACnet MS/TP datalink. Information configured in BACnetMSTPdatalink (including the serial configuration) is used to generate the BACstack configuration file (bacstac.ini) on the PLC. CODESYSControl.cfg contains a setting: [CmpBACnet] IniFile=bacstac.ini to define where the BACstack configuration file is to be found. Because the BACstack configuration file is written using the information from BACnetMSTPdatalink, it is accessed from either the runtime system (component) CmpBACnet and the IEC application. So an absolute path or placeholders has to be used for this setting, for example: [CmpBACnet] IniFile=/tmp/bacstac.ini If sandboxing the runtime system filesystem is chosen, the setting [SysFile] ForceFilePath= has to be used to allow access for the absolute path of the BACstack ini file. Runtime changes of broadcast distribution table entries as well as foreign device table ¶ The BACnetServer configuration AutoGenerateBACstackConfig allows to control if the BACstack configuration file is generated during BACnetServer.StartBACnetStack. If AutoGenerateBACstackConfig is set to FALSE, BACnetServer.GenerateBACstackConfig can be used to generate the BACstack configuration file on demand. BBMD broadcast distribution table (BDT) entries as well as foreign device table (FDT) entries added by clients requests are stored in the BACstack configuration file. This happens at runtime of your application and is not reflected in the configuration parameters of the BACnetMSTPdatalink. Re-generating the BACstack configuration file each time at application start would eliminate the entries written at application runtime. So take care to generate the BACstack configuration file only if needed (most likely at initial setup, or at changes in network structure) to ensure keeping those entries. In case you’r using the BACnet device with BBMD functionality and clients requests are to be expected to add/change/remove BDT/FDT entries, you need to set AutoGenerateBACstackConfig := FALSE to keep them persistent. Properties: Baudrate Connection DatalinkType DeviceName MSTPaddr MaxInfoFrames MaxManager MaxMsgReq NetworkNumber ReplyTimeout TokenTimeout Methods: CheckMstpDeviceDriverReady Structure: Baudrate (Property) Connection (Property) DatalinkType (Property) DeviceName (Property) MSTPaddr (Property) MaxInfoFrames (Property) MaxManager (Property) MaxMsgReq (Property) NetworkNumber (Property) ReplyTimeout (Property) TokenTimeout (Property) protected CheckMstpDeviceDriverReady (Method)
protected ¶ CheckMstpDeviceDriverReady (Method)
BACnetServer (FB) ¶ FUNCTION_BLOCK PUBLIC FINAL BACnetServer IMPLEMENTS IBACnetServerInternal, CmpEventMgr.ICmpEventCallback, IBACnetEventConsumer FB representing the BACnet-Server, which is the core of any BACnet-Application. Each BACnet-Server gets assigned one BACnet-Device-Object, which is initialized together with the BACnet-Server (properties of the BACnet-Device-Object are part of the BACnet-Server-CODESYS-Device as parameters). All BACnet-Object (BACnet-Object-CODESYS-Devices) added as childs of a BACnet-Server are consequently under the corresponding BACnet-Device-Object. This BACnet-Server-FB is responsible for starting the BACnet-Server on the CODESYSControl-Component side (using CmpBACnet.BACnetServerInit), which eventually makes all BACnet-Objects under this BACnet-Server visible in the BACnet network. There are two options for starting/stopping the BACnetServer which could be configured. The first option “AutoStart=TRUE” starts the BACnetServer when the application owning the BACnetServer-FB is loaded. The second option “AutoStart=FALSE” allows programmatic start/stop of the BACnetServer, using BACnetServer.StartBACnetStack() / StopBACnetStack(). This option should be used, if object initialization data needs to be computed (not configured in the device tree), to ensure the BACnetServer is started with consistent object definitions. Apart from this the BACnet-Server-FB gives the functionality to register FBs implementing IBACnetEventConsumer for Hooks and Callbacks. Moreover some additional functionalities for specific services are provided. To get an idea how to use most important BACnet server features and services please refer to several examples provided with(in) the CODESYS BACnet package. BACnet_example.project - the basics including - server side / client side read / write property - notifications - calendar/scheduler - commandable objects (priority array) - client subscribe COV - client create / delete object - client UTC time sync BACnet_DeviceDiscovery.project - how to do device discovery BACnet_LoggingServer.project - how to use BACnetDefaultImpl to make Trend log work on your PLC BACnet_LimitBACnetDeviceObjectPropertyReference.project - how to ensure implementation limitations of BACnetDefaultImpl.TrendLog BACnet_PersistentServer.project - how to use BACnetDefaultImpl to make BACnet objects and object properties persistent on your PLC BACnet_Routing.project - how to use multiple BACnet “data links” for BACnet routing BACnet_Routing.project - how to use multiple BACnet “data links” for BACnet routing BACnet_BBMD_example.project - how to use multiple CODESYS BACnet devices in a network setup involving BBMD InOut: Scope Name Type Initial Comment Output ConfCOVNotificationStatus CmpBACnet.IEC_BACNET_STATUS CmpBACnet.IEC_BACNET_STATUS.BACNET_STATUS_NOT_INITIALIZED Status-Variable holding the call’s status after a call of ConfCOVNotification. Properties: DemoMode DeviceId DeviceObject HideToOutside LocalProcessID NumDatalinks Running StringType SupportUnsolicitedCOV RWPropCBComplete Methods: GenerateBACstackConfig GetDatalink StartBACnetStack StopBACnetStack ActivatePersistence ActivatePropertyConfiguration ConfCOVNotification ConstructDefaultObject DeactivatePersistence DeactivatePropertyConfiguration DestroyObject FindObject GetConfiguredPropertyAttributes GetNextAvailableInstanceNumberForType GetObject GetObjectCount GetStructuredObject GetStructuredObjectCount HasRegisteredHook IsObjectTypeSupported RegisterCallback RegisterHook RegisterPlugin UnconfCOVNotification UnregisterCallback UnregisterHook UnregisterPlugin UpdateAccumulatorDataSourceValue UpdateAddressBindings WritePropertyInstance Structure: DemoMode (Property) DeviceAddressBindings UpdateAddressBindings (Method) DeviceId (Property) DeviceObject (Property) GenerateBACstackConfig (Method) GetDatalink (Method) HideToOutside (Property) HooksCallbacks HasRegisteredHook (Method) RegisterCallback (Method) RegisterHook (Method) UnregisterCallback (Method) UnregisterHook (Method) LocalProcessID (Property) NumDatalinks (Property) Objects ConstructDefaultObject (Method) DestroyObject (Method) FindObject (Method) GetObject (Method) GetObjectCount (Method) GetStructuredObject (Method) GetStructuredObjectCount (Method) IsObjectTypeSupported (Method) Persistence ActivatePersistence (Method) DeactivatePersistence (Method) Plugins RegisterPlugin (Method) UnregisterPlugin (Method) PropertyAttributes GetConfiguredPropertyAttributes (Method) PropertyConfiguration ActivatePropertyConfiguration (Method) DeactivatePropertyConfiguration (Method) Running (Property) Services ConfCOVNotification (Method) GetNextAvailableInstanceNumberForType (Method) UnconfCOVNotification (Method) UpdateAccumulatorDataSourceValue (Method) WritePropertyInstance (Method) SrvrInit RWPropCBComplete (Property) StartBACnetStack (Method) StopBACnetStack (Method) StringType (Property) SupportUnsolicitedCOV (Property)
BACnetMSTPdatalink.DeviceName (PROP) ¶ PROPERTY DeviceName : STRING MS/TP device name
BACnetMSTPdatalink.MaxInfoFrames (PROP) ¶ PROPERTY MaxInfoFrames : UINT (1..65535) Maximum number of MS/TP frames sent by this node during a single token hold