Re: [Bacnet-developers] Interface-Value property and Value Objects
Brought to you by:
skarg
From: Robert C. (Neopsis) <ro...@ne...> - 2021-02-16 20:04:09
|
Hello Steve, thank you for your hints. However, I am afraid I cannot model the points as Inputs/Outputs. Looking at your pictures, I still do not understand the Interface_Value meaning. For me, the present_value is anything representing the point's value. For example, if an analog input reads a temperature sensor, present_value is the temperature in °F/°C. If the sensor has a failure, the input can be temporarily overridden by hand and the present_value is the new value entered by a human. The sensor still delivers a (wrong) value, and that should be for me the interface_value. It means, normally (we are calling it auto mode), present_value == interface_value, when overridden (we call it manual mode), both values typically differ. [image: Input-1.png] At least this is how our PLCs are working. We have permanent access to both values that are mapped to the point registers. Like this: the point's structure has members for auto value and manual value. When the override switch is on, the point's auto value slot is copied into the manual value slot. The point value is always the manual value, available for the application logic and via manual value register for the BACnet interface. This is the BACnet present value. When the override switch is off, the point's manual value is separated from the auto value slot (it's like your HOA switch) and it can get the value from the manual value register. The register manual value is still the BACnet property present_value. However, we still have access to the value written by the application logic (or input sensor, or ...) into the auto value slot via the auto value register. And this is the mechanism used on all points, not only I/O but on the in-memory points too. [image: AutoManualSwitch-1.png] And this is what I need to model in BACnet. BACnet property present_value property is our manual value register. But what's the register auto value? I understand the Interface_Value idea as anything that is suitable for small controllers providing an interface between sensors/actors and a building management system, but not for managing programmable units like our PLCs via BACnet. In my case, overriding a point is not an HOA event (mechanical switch); our data points are in-memory objects, switched between manual and auto mode from the BACnet client through writing the commandable present value (writing the register manual value switches the override switch off, writing NULL returns the control back to the internal logic). Inputs/Outputs require to manage the Out-Of-Service property before writing. It makes commanding less straightforward. Additionally, Inputs are typically read-only and not commandable. My points must be commandable. Robert On Tue, Feb 16, 2021 at 5:07 PM Steve Karg <st...@ka...> wrote: > Hello Robert, > > tl;dr; model your PLC point as an 'input' or 'output' object since the > interface_value property, a standard property, cannot be used in another > standard object that does not specify its use. > > I proposed the interface_value property in 2005 for use with HOA switches > (hand-off-auto). I originally named it actual_value - but my friend > Bernhard indicated that the name actual_value was the same translation in > German as present_value. The original proposal applied to the 3 types > (input, output, value) of the 3 major primitive value objects: Analog, > Binary Multistate. By the time the proposal had worked its way through SSPC > 135 BACnet committee (2013), we had also standardized a large number of > other primitive value objects. David Fisher had illustrated the various > pieces and parts of the inputs and outputs present_value logic, and value > objects could be modeling an input or output. The committee chose to > standardize the interface_value property to the 3 primitive value output > objects and input objects, but none of the value objects. > [image: image.png] > [image: image.png] > > Best Regards, > > Steve > > > On Mon, Feb 15, 2021 at 7:33 PM Robert Carnecky (Neopsis) < > ro...@ne...> wrote: > >> Add-135-2012 introduced a new property Interface-Value. According to >> the document the property should be used for Input and Output objects. >> But what about Value Objects? I have a use case where an internal >> (virtual) point in a PLC controller can be switched into a manual mode >> and I need to publish both the Auto value (value calculated by the >> internal logic) and the Manual value temporary overriding the Auto >> value. >> >> Any idea which property to use? >> >> Robert >> >> >> _______________________________________________ >> BACnet-developers mailing list >> BAC...@li... >> https://lists.sourceforge.net/lists/listinfo/bacnet-developers >> > _______________________________________________ > BACnet-developers mailing list > BAC...@li... > https://lists.sourceforge.net/lists/listinfo/bacnet-developers > |