Introduction The CAS BACnet stack is a protocol implementation library and methodology which allows a user to develop an application which can act as a BACnet client or server device. The stack is transport layer independent It leaves the responsibility for receipt and transmission of messages to the user developer. Thus the user developer establishes threads and functionality to read and send messages on the Ethernet port and/or serial port. The receipt of Ethernet packets may require the use of a 3rd party library such as Winsock, Winpcap, etc Methodology As a client As a Server You define the device that represents your device on the Bacnet network. You fill in a template to form a request The stack returns a byte sequence that represents the request You send the byte sequence You receive a response You pass the response to the parse function in the stack The stack returns a structure (or an ML template) that represents a field breakdown of the response. You use the portion of the response you are interested in (such as the present value of the polled object) to update your application. You define the device that represents your device on the BACnet network. You define the list of objects/properties to be served. You receive a message. You pass the message to the Parse function The stack returns a structure/ml template which breaks down the request. You pass the structure to a Process function (passing the original received message) Page 1 of 6
The process function uses call backs to request the property values that are needed by the request. If you have not defined the property value a BACnet default will be used. The stack returns a byte sequence that represents a response to the poll using the values it finds when it forms the response. You send the sequence Technical Information The stack is intended for c++ applications. It is also available as a c# library (wrapped c++) Network layer independent Does not handle BCLL bytes. No routing functions supported in the API. Approx 1.5 Mbyte of memory is required for the stack to support ~20 server objects. We recommend size/memory requirement testing your application in the initial development phase to see if the stack and your configuration will fit in the memory you have available. Performance is dependent on how you implement your application and how you use threading. BACnet Protocol General Disclaimer: The list of supported objects and function is growing. Please check with us for specific details. If you are concerned about limitations of the stack then please check with us before making assumptions not all limitations have been stated. Vendor Name: Product Name: Product Model Number: Product Descpription: Chipkin Automation Systems xxxxx This software product will provide bi-directional communication between various RTU, DCS, SCADA and PLC using most common protocols and a BACnet system. The Prolinx can do protocol conversion (as opposed to routing) between the different BACnent Data Link Layer options. This is arranged by way of static mappings. Page 2 of 6
BACnet Standardized Device Profile (Annex L) BACnet Smart Sensor (B-SS) BACnet Smart Actuator (B-SA) BACnet Application Specific Controller (B-ASC) BACnet Interoperability Building Blocks Supported (Annex K): DS-RP-A - Data Sharing - ReadProperty - A DS-RP-B - Data Sharing - ReadProperty - B DS-RPM-A - Data Sharing - ReadPropertyMultiple - A DS-RPM-B - Data Sharing - ReadPropertyMultiple - B DS-WP-A - Data Sharing - WriteProperty - A DS-WP-B - Data Sharing - WriteProperty - B DS-COV-A - Data Sharing-COV-A DS-COV-B - Data Sharing-COV-B DS-COVP-A - Data Sharing-COVP-A DS-COVP-B - Data Sharing-COVP-B DS-COVU-A - Data Sharing-COV-Unsolicited-A DS-COVU-B - Data Sharing-COV-Unsolicited-B DM-DDB-A - Device Management - Dynamic Device Binding - A DM-DDB-B - Device Management - Dynamic Device Binding - B DM-DOB-A - Device Management - Dynamic Object Binding - A DM-DOB-B - Device Management - Dynamic Object Binding B Segmentation Capability: No Standard Object Types Supported Page 3 of 6
Object Type Device Object Analog Input Analog Output Analog Value Binary Input Binary Output Binary Value Multi State Input Object Multi State Output Multi State Value Supported For all these properties the following apply: 1) Does not support BACnet CreateObject 2) Does not support BACnet Delete Object 3) Support limited set of optional properties 4) Limited set of additional writeable properties exist 5) Proprietary properties are handles as black-box array of bytes for purposes of conversion to the other protocol or backplane. 6) No range restrictions exist 7) Client Driver can read Present Value and limited set of other properties Data Link Layer Options: BACnet IP (Annex J) ISO 8802-3, Ethernet (Clause 7) ANSI/ATA 878.1, 2.5 Mb, ARCNET (Clause 8) Point-to-Point, RS-232, baud rate up to (Clause 10) 115 Kbps MS/TP master, baud rate up to xxxx bps (Clause 9) MS/TP slave, baud rate up to xxxx bps (Clause 9) Device Address Binding: Is static device binding supported? Yes No Page 4 of 6
Networking Options: Router, Clause 6 - List all routing configurations, e.g., ARCNET-Ethernet, Ethernet- MS/TP, etc. Annex H, BACnet Tunneling Router over IP BACnet/IP Broadcast Management Device (BBMD) Does the BBMD support registrations by Foreign Devices? Yes No Character Sets Supported: Indicate support for multiple sets does not imply that they can all be supported simultaneously. ANSI 3.4 ISO 10646 (UCS-2) IBM/Micosoft DBCS ISO 10646 (ICS-4) ISO 8859-1 JIS C 6226 Unsupported functions of the BACnet Stack - BACnet/IP as a Client: No BBMD Support in initial phase of product. BBMD support will be added in phase3. Registering the FieldServer as a foreign device on a remote BBMD Configuring a Connection for BBMD operation. Unsupported functions of the BACnet Stack - as a Server: No COV or event notification has been implemented in release 1. Future milestones will be 1) COV 2) Event Notification. Currently: The stack knows how to unpack a COV subscription request. The stack knows how to form a COV notification based on your filling in the response template. The stack does not yet know, how to automatically send notifications after it has received a subscription request. Unsupported functions of the BACnet Stack Page 5 of 6
Authentication is not supported. File Objects Atomic Read/Write for files Check with CAS before making assumptions. Revision Information Revision Date Notes 0 19 May 2009 Created. Page 6 of 6