What are the differences between Standard Continuum Import/Export and Continuum BACnet COV? What issues can arise from programming a Bacnet system if you are using the Continuum Import/Export concepts.
- Standard Continuum Import/Export
- Continuum BACnet COV
Information on Continuum import/export and BACnet COV concept to help select the method that meet the environment.
Using standard Continuum import/export where one or more controllers reference a point from another controller creates a relationship in the controllers such that whenever the exported value changes (or exceeds the threshold setting), the point value will be sent out in a broadcast to the network and the controllers that are looking at that point will intercept this single broadcast message and use the new value in their programs. It is very efficient in that no matter how many controllers on the network require a point value from a single controller, only one export message is required. The down side of that is that if there was a network interruption when the message was sent, one or more of the receiving controllers may miss the data update. For critical data exchange, especially if the value rarely changes, such as a schedule point, the use of a refresh program should be used to occasionally retransmit the value by setting the refresh attribute of the point to true.
BACnet utilizes Change of Value (COV) data sharing. The main difference here is that for every controller that references a point from another controller, an individual subscription for that point is registered in the exporting controller. So if 10 controllers wanted the same point exported from one controller there would be 10 subscriptions made to that controller. When the point value exceeds the COV Increment (which is equivalent to threshold) there are 10 individual point to point messages sent to the 10 subscribing controllers. The benefit here is that the delivery of the data to all the subscribers is guaranteed. The down side is that there is much more traffic on the network and much more strain put on the exporting controller. Although the data exchange is very reliable, if you were, for instance, to have an MSTP controller possess a global OAT sensor, and 100 other controllers wanted that value exported, every change in value would require 100 point to point messages to send it to the 100 subscribers. MSTP devices default to a Max_Info_Frames of 2, which means that the controller can only deliver 2 of these messages when it gets a chance to talk on the network. The MSTP controller only gets a chance to talk after every other controller on the network has had a chance to, plus the BCX controller which is interlaced between each MSTP controller when using enhanced MSTP. So, if there were 100 MSTP controllers on the network, the exporting controller could only send updates to two of his 100 recipients every 200 token passes on the MSTP network. The data would get backed up, especially if the value was frequently changing, so the updates may never get out.
If this amount of data sharing is required in BACnet, the best method to perform it would be to first set the COV Increment to a reasonable number to limit the amount of exports required, and then map the point in one or more BCX level controllers which have much more bandwidth on the network and capability of data sharing and let them export the COV's to the required recipients.