HVAC Controller / PLC Configuration

This project was to design and develop a graphical configuration tool for Windows to be sold and used by HVAC plant engineers to configure the programmable controllers. The design made use of Visio for the GUI, and was easy to learn and use. We created the software as COM components, allowing the work to be easily built on in future products.
Introduction
PLCs (Programmable Logic Controllers) have a number of "real-world" inputs and outputs. Generally these are used in plant rooms to control boilers and air handling units in the environmental controls industry. They are also used in process control. While there are a number of fixed function controllers available, the company we worked for manufactures "soft-programmable controllers". These controllers have inputs and outputs but instead of running a fixed control algorithm, they allow it to be configured by connecting various logic blocks together. These logic blocks are implemented in software so it is usual to design the program (the "scheme") for the controller using a PC based configuration tool. The scheme can be downloaded to the controller at a later time, or the controller can be updated in real time while the scheme is designed.
The configuration tool, called "VisiSat" was designed to use the communications server and harnessed the power and flexibility of Visio for the GUI.
This was a long project and was very interesting to work on. We were able to bring our knowledge of COM and DCOM programming into the project, developing components that can be (and are being) re-used in other applications.
Visio was used as the GUI and it lends itself to this purpose very well. Each controller is dragged from the Visio stencil and is assigned an address by the user. Next the scheme for that controller can be designed by dropping down a level - now inside the controller - and dragging control objects from the stencil. The objects are wired together using a piece of Visio wire.
As each object is dragged and dropped, moved and manipulated, Visio calls numerous software modules that were registered with Visio when the program started. Therefore, when a controller is dropped, Visio fires an event to our software which then prompts for an address. Likewise, when two parts of a control scheme are wired together our software receives and processes the event to translate the connection into code to send to the PLC.
Numerous COM objects were created to allow the software to be used in more ways than it was initially designed for. This has allowed distributors of the product range to design their own control schemes for a specific market using the software and then to write a VB application to download that scheme in their own production system. The VB application interfaces to the COM objects directly and does not require Visio for the GUI. The advantage is the process can be automated and the company can quickly sell on the controller as a fixed application controller with a minimum of development time as they do not need to get deeply involved with the mechanics of downloading control schemes. An Italian company is using this approach today.
Technology
- Visual C++ 6
- COM Components. Design and development
- Visio Addons.
Benefits
- Reduced support calls (Easy to install and intuitive to use)
- Configure control schemes remotely
- Installer can re-use control schemes using copy/paste
- COM based platform for future products
