|
78 of 80 people found the following review helpful:
5.0 out of 5 stars
Home Automation Basics, October 24, 2000
Home Automation Basics BY THOMAS E. LEONIK PEReview This book explores the world of Visual Basic 6 programming with respect to real world interfacing, animation and control on a beginner/intermediate level. The original title of the book was "Visual Basic 6 : Real World Interfacing, Animation and Control. The title was changed by the publisher's marketing department much to the Author's chagrin. This is VB book that demonstrates how to create an HMI (Human Machine Interface) from scratch. A Home Monitor application was selected to provide a broad appeal to all readers. Most of the Visual Basic books on the market today and in the past do a very good job of describing the various control elements of Visual Basic and how they work. Typically examples are provided for programming some type of data base application of one sort or another. The focus of this book is interfacing to an external device via the serial port, showing the status of this device by animating objects on a Visual Basic form and then controlling this device. The Allen-Bradley Micrologix PLC by Rockwell Automation is one serial device that will be explored. An alphanumerical display is another serial device that will be investigated. The acronym "PLC" stands for Programmable Logic Controller. PLC's are the fundamental building block in industrial control systems today. Typically a PLC consists of inputs, outputs, a central processing unit, user memory for control functions, a proprietary operating system and a serial port. With a PLC, input devices such as push buttons, limit switches to name a few are wired into inputs and output devices such a lights, horns, motor control relays and so on are wired to outputs. All the cross wiring required to implement some desired function is accomplished with software rather then hard wiring and additional components. The intent of this book is Visual Basic but it will discuss to a certain degree the architecture and the programming of Programmable Logic Controller. The most popular language used to program a PLC is called "Ladder Logic". Ladder Logic is modeled from the way that one would actually wire up devices to relays. Input devices are represented as contacts and outputs are represented as relay coils. Essentially each rung of ladder logic is a graphical form of a Visual Basic IF THEN statement. Typically the PLC instructions set supports internal timers, counters, math functions (integer and real via floating point), move functions, Boolean functions and communication functions. The Rockwell Automation Micrologix PLC was selected because it is a popular, powerful, inexpensive PLC. Most of the material presented on the Micrologix PLC will also apply to other manufactured PLC's. The application example presented in this book will be that of using the PLC as home monitor. This example is more appealing and easier to understand as opposed to implementing an example of a wastewater pumping station with level control using a variable frequency drive. It is inevitable that some day the PLC or some form of the PLC will be controlling all the electrical operations of a house. As a home monitor the PLC will monitor the following digital inputs: front doorbell pushbutton, rear doorbell pushbutton, front door open sensor, rear door open sensor, first floor HVAC system on, second floor HVAC system on, water pump on, and mail box open sensor. In addition to the discrete digital inputs, five temperatures will be monitored (outside air, crawlspace, first floor, second floor and Great Room) and water pressure of the water pump will be monitored. Two PLC outputs will be used to drive a horn and turn on a blower fan under the control of the Visual Basic program. First a Visual Basic 6 program will be developed that communicates serially with the PLC using Rockwell Automation Allen-Bradley protocol. This protocol will be considered to perform two tasks: an "unprotected read" and an "unprotected write". The structure of this binary protocol will be examined. The software developed to perform these tasks will be simply and clearly presented. Another Visual Basic 6 program will be developed that interprets the collected information and animates objects on a Visual Basic form accordingly, such as a door shown in the open or closed position along with an associated time/date stamp as to when it was opened or closed. Temperature and other data information will be stored as monthly files on the harddrive in CSV(comma separated values) format. Microsoft Excel can then be used to provide a graphical representation of the data contained in these files. Wave files will be launched to provide audio annunciation of certain events. A stand-alone full function-graphing program will be developed that interprets the data log files. This program will automatically update in conjunction with the data log file. A second serial port will be used to provide textual based status information from the Visual Basic home monitor program to a remote alphanumerical display. Through the process of developing the home monitor program many aspects of Visual Basic programming will be studied. Emphasis will be placed on keeping the software as simple as possible. The lessons learned in this book will be invaluable for future serial and animations projects. All programs presented in this book and contained on the companion CD have been thoroughly tested. I hope you like it as much as I enjoyed writing it and creating the software. Tom Leonik
|