Changes to COV and ReadProperty in bCX from v4.500048
- b3 Controllers
New feature to allow user flexibility for using Forced Polling and not COV
From bCX version v4.500048, all Controllers will have the option of forcing a poll of points from other Continuum and third party BACnet controllers.
This new feature:
- allows programmers to decide which data exchange method to use by the syntax in which they write their data-sharing programs.
- provides a method for forcing point-to-point polling from a device that does not support COV and sends an invalid error message when the subscription is attempted. This previously caused Continuum to reject polling, resulting in a failure to share data.
- allows programmers to decide to poll a point only when needed, even if the device supports COV subscriptions. This ensures that data from a device is only sent when necessary instead of always being sent on a “change of value”.
The following Plain English formats force polling:
"Local point = Infinity Remote Point Value"
"Local point = BACnet Remote point Value"
"Local point = ReadProperty(BACnet Remote point Value)"
The second argument, Value, ensures that polling is commanded – now for BACnet, as well as Continuum/Infinity.
(The third example shows the use of Plain English’s ReadProperty system function.) If the Value argument, shown in these examples, is left out, Continuum BACnet will operate as it always has – always attempting a COV subscription and only falling back to the polling method if the target device sends the appropriate COV subscription failure message.
If you have a device that does not support COV subscriptions or you have chosen to use the polling syntax, you must be careful how you write your Plain English programs. A program that runs every scan and polls a point from another controller will cause major problems.
For instance, if your scan is running at 100 milliseconds and you try to poll any BACnet device at that rate, you will most likely knock the device offline. It will also cause the program to disable and seriously slow down the scan in your controller that is requesting the data (since the scanner waits for an answer to a poll before continuing).
You should also use a line E in your programs, since any communication problem to the target device will cause the polling program to disable.