Customer Profile
Invensys Building Systems offers the most extensive line of controls and components available to today's market, including valve bodies, valve assemblies, actuation devices and sensors, as well as interfaces and automated systems that link these products and other building systems together.
Invensys Building Systems produces various electronic HVAC (heating, ventilation and air conditioning) plant controllers for large buildings that are networked together over an ANSI-standard network known as BACnet (Building Automation and Control networks).
The Project
Software developers at Invensys developed both application and network layers to communicate with various plant controllers on their BACnet network. What they lacked was the time required to produce a customized data link that conformed to the Master-Slave Token Passing (MS/TP) protocol from the BACnet standard. In addition, the BACnet standard imposed additional timing constraints to the physical layer, whose underlying implementation utilized RS-485 for sending messages long distances in large building systems. These timing constraints required that updates be made to the underlying Linux kernel code.
Invensys turned to RightHand Programming for their knowledge of communication protocols and Embedded Linux for a seamless integration of the data link layer and the main application.
RightHand’s Solution
RightHand engineers responded quickly to the project deadlines and worked diligently to produce a robust software solution. RightHand began the project by designing a plan to work from the bottom up.
First, the kernel code affecting the timing requirements at the physical layer was updated and proven out. Afterwards, the MS/TP LAN protocol was implemented with two state machines. The state machines were incorporated into a line discipline that can be registered and de-registered with the Linux kernel. This allowed two things. First, the data link layer would work in the background and not affect other running processes. Second, multiple applications could simultaneously utilize the services of the line discipline.
Source code was provided and made extremely easy to read, and final test documentation was provided upon conclusion of the project.
