This application is something we use at VECS to demonstrate the range of capabilities in the hardware and software of the Vesta system. The application is included with every system, although most users won't have all of the hardware that's used.
In this document, we'll walk through the process of building this application step by step. Since there are a lot of screenshots, we'll show them as thumbnails. In each case, clicking on the thumbnail will open the full-sized image in a new window (or tab).
Here's a picture of the hardware used in this application:
This is a demo system, so we want to demonstrate a wide range of hardware and software capabilities. Specifically, we want to use the following hardware:
In addition to the hardware, we want to show the different types of rules tha the Vesta system can use to control outputs. We'll do the following:
In this section we'll configure the Vesta controller for the hardware we'll be using and physically connect all the sensors and other hardware. We'll assume the Vesta is connected to a network and powered up.
The first step we'll do is to restore the 'Empty' application. This gives us a blank controller with no configured inputs, outputs, or rules. Clicking the 'Restore' button next to 'Empty.tgz' accomplishes this.
We then go to the 'Physical I/O' tab and start choosing the inputs and outputs that we'll use. Each sensor has a pull-down selection to identify what type of sensor is plugged into that channel:
We'll connect sensors to the system as follows:
|Analog Input 1||TS-1059||Shade Temp|
|Analog Input 2||TS-1058||Room Temp|
|Analog Input 3||CS-1145||Lamp Current|
|Analog Input 4||PS-1147||Coffee|
|Analog Input 5||TS-1060||Thermocouple|
|Analog Input 6||TS-1061||Thermistor|
|Analog Input 7||HS-1146||Humidity|
The 'Elements' tab allows us to change the name for each input and output from the default to something more meaningful. For all of the sensors, simply type the desired name (or description) in the appropriate filed and press 'return'. The image at right shows the name of the first sensor being set.
We'll continue and configure all the sensors on the 'Physical I/O' tab. We'll also enable additional I/O as follows:
|Analog Output 1||4-20ma Nimbus output||Light Bulb|
|Discrete Input 1||DI-7260 (Discrete in)||Red Button|
|Discrete Input 31||DI-7260 (Discrete in)||User Switch Right|
|Discrete Input 32||DI-7260 (Discrete in)||User Switch Left|
|Discrete Output 1||DO-7260 (Discrete out)||Relay 1|
|Discrete Output 2||DO-7260 (Discrete out)||Relay 2|
|Discrete Output 3||DO-7260 (Discrete out)||Relay 3|
|Discrete Output 4||DO-7260 (Discrete out)||Relay 4|
|Discrete Output 29||DO-7260 (Discrete out)||PID Active (LED 4)|
|Discrete Output 30||DO-7260 (Discrete out)||Hot (LED 3)|
|Discrete Output 31||DO-7260 (Discrete out)||Cold (LED 2)|
|Discrete Output 32||DO-7260 (Discrete out)||Alarm (LED 1)|
Analog Output 1 will be connected to the VS-1108, which is a 'Nimbus' variable speed drive using a 4-20ma control signal. Choosing the '4-20ma Nimbus output' signal type allows the Vesta to scale the output appropriately.
We'll connect the DB-1195 discrete breakout panel to the first Vesta Discrete Input connector. Each connector carries four discrete inputs, numbered 1-4 for the first connector. We'll use the DB-1195 to connect our red pushbutton switch to the first of those four, which is channel 1.
The 'User Switch' is the switch on the top cover of the Vesta. It's pre-wired to Discrete Inputs 31 and 32.
We'll connect the RM-1206 to the first discrete output connector on the Vesta. The first four discrete outputs will correspond to relays 1-4 on the RM-1206.
Finally, we'll use the four prewired LEDs on the Vesta top panel to indicate the status of our application.
We'll need five variables. These can be created on the 'Elements' tab. Two of them are 'State Variables' :
The other three variables will be used to hold the target light bulb temperature, the alarm countdown timer, and the outdoor temperature from a remote Vesta controller.
In this section, we'll discuss the rules that determine the Vesta system's behavior. These rules are created on the 'Rules' tab and can be seen there or on the 'Home' tab. There is a manual on rule programming. This section assumes a baisc familiarity with that material.
In the image above, comments are in blue. The shown rules here are all the rules necessary to accomplish the objectives discussed in the planning section.
The first two rules are differential rules. They set the Hot and Cold outputs (which are LEDs on the top cover of the Vesta controller) to 'on' if the shade temperature is more than 5 degrees above or below the target temperature. The shade target temperature is kept in a variable and is 140 degrees in this example.
The next rule sets the 'PID Active' LED to true (on) if the 'Pid Enabled' state variable is true. We'll allow the user to turn the 'Pid Enabled' state variable on and off using the graphical web interface.
The next two rules set the 'Warning' state variable to true if the light bulb is either too hot or too cold, but only if the Vesta is supposed to be managing light bulb temperature ('Pid Enabled' is true).
The next two rules manage our alarm. In this case, the alarm is simply an LED on the topcover. Of course, it could be a buzzer, a siren, or an email. The basic idea implemented by these two rules is this: We'll have a countdown timer such that the alarm will trigger if the countdown timer reaches zero. If there's no problem, we'll keep setting the countdown timer to 60 seconds. When there's a problem, the timer will be allowed to count down.
The first rule sets the alarm timer variable to 60 seconds whenever 'Warning' is NOT true. 'Warning' is not true any time that the Vesta is NOT managing the light bulb. It's also not true if the light bulb is within the temperature range.
The second rule turns on the alarm if the alarm timer reaches zero. That will happen if 'Warning' is true for 60 seconds or more.
Finally, at the very bottom, we have a PID rule. This rule continuously varies the 'Light Bulb' output (which goes the the VS-1108 variable speed control) to try and keep 'Shade Temp' as close to 'Shade Target' as possible.