It's winter break at UNH so i have a lot more free time to work on the brewery. Since I'm waiting on a number of parts to come in, I'm using this time to focus on the software aspect of the project. To run the brewery, I have decided to use LabVIEW. Labview is a graphical programing environment where you can create virtual instruments to execute processes and communicate with hardware. I will be creating a master virtual instrument(VI) that will control many sub-VI's that interface with the brewery. The process is quite detailed but for the purpose of this blog i will try to simplify it the best I can. Bear with me. The functions of these VI's can be broken down into three basic categories; Input, Processing, and Output.
Input signals will consist of either user input, data acquisition from hardware, or output from a higher level VI.
Data from inputs such as probes will need to be manipulated from varying voltages into usable information like temperature. The VI uses this information to determine how to proceed. For example, a Temp monitoring VI sees that a temperature is too low, the VI would enable another sub-VI who's sole purpose is turning on the heater.
After the data is processed, the information is output either to the display to show the current levels and temps, or used to control a piece of hardware. For the case of turning on the heating element, the VI would tell the hardware interface module to output a logic high signal(3-5 volts DC). This signal is then used to switch the relay which applies the 240 volt AC to the element.
The entire programing process relies heavily on the use of loops. ie IF this is true THEN do this, IF NOT do this, or WHILE this is true do this, etc. The graphical interface of LabVIEW uses block diagrams to represent these loops and processes and saves the user long nights of debugging code.