Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Building HMI with VB Tutorial [1998]


Published on

"Building HMI with Visual Basic Technologies - 1998". Though they are old slides but still worth having a look especially for those who are new to HMI and SCADA technologies.

Published in: Technology
  • Be the first to comment

Building HMI with VB Tutorial [1998]

  1. 1. Building Your HMI Using Visual Basic Technologies - A Tutorial John Weber The Software Toolbox ® October 21, 1998 Houston, TX Poster PresentationCopyright 1998 Qualitrol International & Software Toolbox.All rights reserved worldwide.The Software Toolbox is a registered trademark of Qualitrol International.
  2. 2. Why are we here today ?• Take the mystery out of objects and VB – Objects & terminology – ActiveX & Containers – VB - The “Glue”• Sample Applications – Process Graphics – Alarming/Logging – PLC Connections – Recipes – Networking – Trending/Logging
  3. 3. Defining the Technologies
  4. 4. Software Objects What are they ?• You can’t touch them - except on the disks or CD you loadthem onto your PC from• You can see them in many cases through their user interface• Are pieces of software for a specific task or family of similartasks• Are similar to subroutines or functions• May contain numerous subroutines and functions of theirown• Used to model software after real-world machine or processcomponents or sections• Are easily transported from one PC to another providedstandard interfaces are followed• Much of the software you use on your PC is built of objects
  5. 5. Objects - The Building Blocks Example - an object representation of a PLC Input Modules Output Class Modules Class Interfaces Comms. Output Output Output Input Input Input CPU Power Supply PLC Rack
  6. 6. Object Terminology• Classes - groupings of similar object types• Properties - define how the object behaves• Methods - make things happen• Events - occur when things happen Hypothetical PLC Analog Input Module “class” Properties - number of channels, voltage level, scaling set points, channel type Input Methods - send analog input to CPU, scale value Events - voltage changed on field input side, scaling updated, updated value sent to CPU, configuration change received from CPU
  7. 7. Object TerminologyA simple software object - a text box on a VB form Properties Methods Events Alignment Drag Change BackColor Move Click BorderStyle OLEDrag DblClick Font Refresh DragDrop Height SetFocus DragOver Name ShowWhatsThis GotFocus Text and 5 others LostFocus Visible KeyPress Width Mousedown and 43 others Mouseup and 13 others
  8. 8. More Object Terminology • COM - Component Object Model • DCOM - Distributed Component Object Model = COM + Networks • ActiveX - a type of COM object • Container - a place you assemble your objects to form an application – Office productivity applications – Development tools - visual basic, etc. – Web browser • OLE - Object Linking and Embedding
  9. 9. Software Objects Examples Command Button Object Command Button Properties Everything on your Excel spreadsheet is an object! - the worksheet is a collection of cell objects, a workbook is a collection of Cell Cell worksheet objects Properties Object
  10. 10. Software Objects Examples Invoking the Print Method The Print Event
  11. 11. Software Objects Examples Visual Basic (VB) comes with a lot of free objects that give you the Windows look and feel with minimal work
  12. 12. Software Objects Examples ActiveX control objects “plug-in” to VB to let you add functionality • PLC Communications • Trends • Gauges • Tanks
  13. 13. Adding an ActiveX Component to the VB Toolbar & To A Form Right Mouse Click with pointer over the toolbar and select “components”The DefaultVB Toolbar Double click Check the component the new you want to add component on “ABCTL OLE Control the toolbar module” in this case, and it is added click the Apply button, to your form! click the OK button, and the control is added to the toolbar
  14. 14. An Automation Software Object Actual PLC Communciations ActiveX Object “instances” Placed into a Visual Basic form container Instance (noun) - a single copy of a type of software object (I.e. text box or ActiveX control) on a form Instanciate (verb) - the act of placing a single copy of an object onto a form
  15. 15. Browsing the Object’s Interfaces Actual PLC ActiveX object in a VB container application where its properties, methods, and events are browseable using VB’s Object Browser Function Events Properties Methods
  16. 16. VB - The Glue to connectobjects in your container• VB - Visual Basic - a full fledged development environment• VBA - Visual Basic for Applications – It is macro language in the Office applications – Is licensed by over 100 companies for use as their scripting language for customization• Both Use simple, object.method, object_event syntaxes• VB known by 3,000,000 people worldwide
  17. 17. Assembling the Objects in a Container Simple Visual Basic Syntax for referring to objects Properties - ObjectName.Property = variable or value Methods - Objectname.Methodname (parameters) Events - Private Sub Objectname_EventName( ) user Logic End Sub Example Statements displays text in a text box by setting the Text1.Text = “Hello World” .Text property on the Text1 text box object Sets a PLC memory address property ABCTL1.FileAddr = “N7:0” (.FileAddr) to read using a plug-in ActiveX control object ABCTL1.Autopoll(500) Invokes the .Autopoll Method to read data every 500ms using a plug-in ActiveX control object
  18. 18. Human Machine Interface Apps • HMI = Human Machine Interface • Process Graphics • PLC Connectivity for Data • Trending and Logging • Alarming and Logging • Recipe Loading • Networking
  19. 19. Process Graphics - Static Step 1- Select the VB image control from the VB toolbar and add to the form Step 2 - Paste an image from a Symbol Library to the image control, set the stretch property on the image control to true and size to fit your needs
  20. 20. Process Graphics - Dynamic Add an instance of a dynamic gauge ActiveX plug in to your VB toolbar and then to your form Right click on the object with your mouse, select “properties” on the pull down menu that appears and use this properties page to set your look and feel. Here we’ve used a pre- configured look and feel from the object’s library to get setup quick
  21. 21. PLC Connectivity and Data - adding the ActiveX Control Add an off-the-shelf ActiveX control for PLC connectivity to your VB toolbar and then add instances of the control to your VB form • Use multiple instances of the PLC ActiveX control to keep code to a minimum • Give the each instance an intuitive name such as PLCMachine1 and PLCMachine2 in your applications • Use separate instances for reading and writing to keep your code to a minimum, even though most PLC Communications ActiveX controls don’t require you to use separate instances for reading and writing
  22. 22. PLC Connectivity and Data - setting properties This particular PLC communications ActiveX control represents each physical hardware adapter as a “logical adapter”. You run a simple config program shown here to set the hardware settings and communications parameters. By doing this, the developer of this control gives you the ability to change the hardware interfaces to your PLC without recompiling your program. When you right click on each instance of the PLC control, you bring up this properties page to set the properties on the control for whether you are reading or writing (.function), the PLC node address (.node), the PLC memory address (.Fileaddr), and the number of points to read/write.
  23. 23. PLC Connectivity and Data - Making the read happen • Reading occurs when the .Trigger or .Autopoll methods are invoked • In this example when the Form Loads, (Form_Load() Event) the Autopoll method on the instance of the PLC ActiveX control called ABCTL1 is invoked. • The PLC control does its job and when it is done, it fires the “OnReadDone()” event • Displays are updated using the 3 lines of code shown above in the ABCTL1_OnReadDone() Event • Data is accessed in the PLC ActiveX control using the WordVal and BitVal methods to properly format the data • Other methods such as floatval, stringval, longval, etc. are available for other data types
  24. 24. Trending and LoggingBuilds upon what you’vealready learned by adding 2new controls• Trending ActiveX control• VB’s standard Data controlfor database connectivitySetup a single instance of thePLC ActiveX control and itsproperties like before but thistime use the standard VBcommand button’s On_Click() Properties Pageevent to start the polling of the for the TrendingPLC based on user input ActiveX Control
  25. 25. Trending and Logging - VB CodeInvoke the PLC ActiveXControls’ .Autopoll method tostart/stop polling when userclicks on command buttons These lines setup the timebase and variables on the trend chart ActiveX control when the form is loadedUpdate text boxes on screen with datafrom the PLC ActiveX Control This OnReadDone EventPlot data on the trending ActiveX fires every time a pollcontrol completes - the autopoll rate sets your trend update rateLog the data to the database using for youthe VB data controls methods
  26. 26. Trending and Logging The Finished Product in Run Mode
  27. 27. Alarming and Logging - Building the Form • Uses same controls and adds one new • Uses new methods and events on PLC ActiveX VB List Box Control PLC ActiveX control to for simple alarm VB Data Control Communications display - new to this for Database provide alarm project Connectivity Control generation capability
  28. 28. Alarming and Logging Generating the Alarms• Watchpoint Methods – Method included in PLC ActiveX control – User specifies high, low limits and type of alarms desired (on high, on low, on change, on normal, on discrete change) – Autopoll method used to tell control how often to check the points• Could all be done with VB If-then structures• Using the ActiveX controls’ methods instead saves code and troubleshooting time
  29. 29. Alarming and Logging• You setup the watchpoints and go on doing other things in your applications• Handle the events when they happen• OnAnalogHigh• OnAnalogLow• OnAnalogChange• OnAnalogNormal• OnDiscreteChange
  30. 30. Alarming and Logging- VB Code Setting up the watchpoint by invoking the .WatchPointAdd method in the PLC Comms ActiveX Control Use the .Autopoll method to start polling the PLC when the command buttons are clicked - also clear the alarms display when polling starts Build the high alarm message text string,display it in the list box,then log the data to thedatabase using the data controls methods
  31. 31. Alarming and Logging- VB Code Build the low alarm message text string, display it in the list box, then log the data to the database using the data controls methods
  32. 32. Alarming and Logging- VB Code Build the normal alarm message text string, display it in the list box, then log the data to the Update a text box on the database using the data screen each time a new controls methods value is read from the PLC Do some simple data validation when the user enters a PLC memory address
  33. 33. Alarming and Logging - Finished Product
  34. 34. Alarming and Logging - Advanced DisplaysFor more advanced alarmdisplays, ActiveX plug-ins are available toprovide the neededfunctionality
  35. 35. Recipe Loading - Setting up the Data Control Use VB’s standard Data Control to connect to a database • Don’t let all the properties confuse or worry you • Key properties to set on data control: • DatabaseName = pathname and filename of the database • RecordSource = table name or query name to get records from in the database - data control gives you a pull-down list
  36. 36. Recipe Loading - Data Binding Text box properties page has 2 key properties that allow the user to connect or “bind” the value shown in the field to a column in a database table or query • DataSource - the name of the data control that you setup to connect to the database • DataField - the actual column, pulled from an auto-generated pulldown Each text box field on the form is “bound” using the list, whose data will be DataSource and DataField properties to a column in bound to the text box the database
  37. 37. Recipe Loading - In Action When the user clicks on the next or previous recipe buttons, the code shown below advances the database pointer forward or backward one record while checking to make sure the beginning or end of the database table is not passed
  38. 38. Recipe Loading - In Action When user clicks on “Download to PLC”, the code below loads the displays values into the PLC ActiveX control and invokes its trigger method to write the data to the PLC. When the OnWriteDone event fires, the user is notified with a message box
  39. 39. Networking - Leveraging Newer Ethernet Aware PLCs Client PCs running your VB HMI Application and using a PLC ActiveX control that supports direct Ethernet connections to the PLC TCP/IP Ethernet Network PLCs with built-in Ethernet Interfaces
  40. 40. Networking - Retrofitting to Proprietary PLC Networks Client PCs running your VB HMI Application and utilizing a PLC ActiveX control that provides with it an EXE application for your server to bridge from Ethernet to the PLC networks or an ActiveX control that is an OPC client and can talk to an OPC server Remote user via TCP/IP Ethernet Windows Dial-Up Gateway Server running a software Network Networking bridge between the PLCnetworks and TCP/IP Ethernet Proprietary PLC Network• Provides a solution when the investment to replace PLCs with Ethernet Based CPUs is too high or thePLC network interface cards for each client are cost-prohibitive• The gateway software bridge can be either an EXE program that is included with some PLCcommunications ActiveX controls or an OPC server
  41. 41. Transfer Line Application
  42. 42. Transfer Line Application
  43. 43. Microbrewery Application
  44. 44. Benefits of Using Visual Basic for HMI Applications • Use the right tool for the right job – Simple to moderately complex apps – Don’t reinvent a pre-configured HMI in VB if that’s really what you need • Support for wide range of ActiveX plug-ins • Widely known scripting language • Flexibility - you control the application • Cost – you can distribute your VB code royalty free – ActiveX components have low or no royalty fees for
  45. 45. Resources for further learning • Understanding ActiveX & OLE - David Chappel, Microsoft Press • Office97 Visual Programmers Guide - Microsoft Press • Microsoft Websites - • Download copy of this presentation and other presentations and technical papers at
  46. 46. Where do I find ActiveX controls andtools for Industrial HMI Applications ? Although this presentation is a non-commercial, sharing of knowledge presentation, we added this slide after show because so many of you at the show were asking this question! The Software Toolbox is a company that provides you with a single place to look to find all the software tools you need for automation applications, including Visual Basic based HMI applications. Visit our website today for more product information.