SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Building Your HMI Using Visual
            Basic Technologies - A Tutorial


                                                                                 John Weber
                                                                            The Software Toolbox                                             ®




                                                                                        jweber@softwaretoolbox.com




                                                                   October 21, 1998
                                                                       Houston, TX                                            Poster Presentation

Copyright 1998 Qualitrol International & Software Toolbox.All rights reserved worldwide.The Software Toolbox is a registered trademark of Qualitrol International.
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
Defining the Technologies
Software Objects
       What are they ?
• You can’t touch them - except on the disks or CD you load
them 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 similar
tasks
• Are similar to subroutines or functions
• May contain numerous subroutines and functions of their
own
• Used to model software after real-world machine or process
components or sections
• Are easily transported from one PC to another provided
standard interfaces are followed
• Much of the software you use on your PC is built of objects
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
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
Object Terminology

A 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
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
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
Software Objects Examples

                     Invoking the
                     Print Method




                      The Print Event
Software Objects Examples




                   Visual Basic (VB)
                   comes with a lot of
                   free objects that give
                   you the Windows look
                   and feel with minimal
                   work
Software Objects Examples

 ActiveX control
 objects “plug-in” to
 VB to let you add
 functionality
 • PLC Communications
 • Trends
 • Gauges
 • Tanks
Adding an ActiveX Component to
  the VB Toolbar & To A Form

              Right Mouse
              Click with
              pointer over
              the toolbar
              and select
              “components”

The Default
VB 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
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
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
VB - The Glue to connect
objects 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.property,
  object.method, object_event syntaxes
• VB known by 3,000,000 people worldwide
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
Human Machine Interface Apps

   •   HMI = Human Machine Interface
   •   Process Graphics
   •   PLC Connectivity for Data
   •   Trending and Logging
   •   Alarming and Logging
   •   Recipe Loading
   •   Networking
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
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
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
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.
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
Trending and Logging

Builds upon what you’ve
already learned by adding 2
new controls
• Trending ActiveX control
• VB’s standard Data control
for database connectivity
Setup a single instance of the
PLC ActiveX control and its
properties like before but this
time use the standard VB
command button’s On_Click()         Properties Page
event to start the polling of the   for the Trending
PLC based on user input             ActiveX Control
Trending and Logging - VB Code
Invoke the PLC ActiveX
Controls’ .Autopoll method to
start/stop polling when user
clicks on command buttons

 These lines setup the timebase
 and variables on the trend chart
 ActiveX control when the form is
 loaded

Update text boxes on screen with data
from the PLC ActiveX Control
                                          This OnReadDone Event
Plot data on the trending ActiveX           fires every time a poll
control                                 completes - the autopoll rate
                                         sets your trend update rate
Log the data to the database using                  for you
the VB data controls methods
Trending and Logging




   The Finished Product in Run Mode
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
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
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
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 the
database using the data
   controls methods
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
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
Alarming and Logging -
   Finished Product
Alarming and Logging -
  Advanced Displays




For more advanced alarm
displays, ActiveX plug-
ins are available to
provide the needed
functionality
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
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
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
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
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
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 the
PLC network interface cards for each client are cost-prohibitive
• The gateway software bridge can be either an EXE program that is included with some PLC
communications ActiveX controls or an OPC server
Transfer Line Application
Transfer Line Application
Microbrewery Application
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
Resources for further learning

    • Understanding ActiveX & OLE - David
      Chappel, Microsoft Press
    • Office97 Visual Programmers Guide -
      Microsoft Press
    • Microsoft Websites -
      msdn.microsoft.com/vba
    • Download copy of this presentation and
      other presentations and technical papers at
      www.softwaretoolbox.com/isaexpo98
Where do I find ActiveX controls and
tools 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.

                          www.softwaretoolbox.com

Weitere ähnliche Inhalte

Andere mochten auch

PLC and HMI Programming; and Other Examples of Work Performed by Jeff Finger
PLC and HMI Programming; and Other Examples of Work Performed by Jeff FingerPLC and HMI Programming; and Other Examples of Work Performed by Jeff Finger
PLC and HMI Programming; and Other Examples of Work Performed by Jeff FingerJeffrey Finger
 
Plc Siemens Training Notes
Plc Siemens Training NotesPlc Siemens Training Notes
Plc Siemens Training Notesplc_course
 
Simatic s7 200-introduction
Simatic s7 200-introductionSimatic s7 200-introduction
Simatic s7 200-introductionPhan van Tan
 
Basics of Automation, PLC and SCADA
Basics of Automation, PLC and SCADABasics of Automation, PLC and SCADA
Basics of Automation, PLC and SCADAIndira Kundu
 
SCADA Tutorial
SCADA TutorialSCADA Tutorial
SCADA TutorialLy Nguyen
 
Plc scada by bhushan kumbhalkar
Plc scada by bhushan kumbhalkarPlc scada by bhushan kumbhalkar
Plc scada by bhushan kumbhalkarBhushan Kumbhalkar
 
Ladder Intro Tutorial
Ladder Intro TutorialLadder Intro Tutorial
Ladder Intro Tutorialplc_course
 
0015-D17V4 PLC Application Notes
0015-D17V4 PLC Application Notes0015-D17V4 PLC Application Notes
0015-D17V4 PLC Application NotesTristan King
 
Maxon operation & application of maxon’s new epos controller
Maxon  operation & application of maxon’s new epos controllerMaxon  operation & application of maxon’s new epos controller
Maxon operation & application of maxon’s new epos controllerElectromate
 
Smart sensor architecture 2006
Smart sensor architecture 2006Smart sensor architecture 2006
Smart sensor architecture 2006Iiro Jantunen
 
Plc analog Tutorial
Plc analog TutorialPlc analog Tutorial
Plc analog TutorialElectro 8
 
Scada and its Role in Industrial Automation
Scada and its Role in Industrial AutomationScada and its Role in Industrial Automation
Scada and its Role in Industrial AutomationSmart Automation
 

Andere mochten auch (20)

PLC and HMI Programming; and Other Examples of Work Performed by Jeff Finger
PLC and HMI Programming; and Other Examples of Work Performed by Jeff FingerPLC and HMI Programming; and Other Examples of Work Performed by Jeff Finger
PLC and HMI Programming; and Other Examples of Work Performed by Jeff Finger
 
Omron ladder programming
Omron ladder programmingOmron ladder programming
Omron ladder programming
 
Plc ppt
Plc pptPlc ppt
Plc ppt
 
Plc Siemens Training Notes
Plc Siemens Training NotesPlc Siemens Training Notes
Plc Siemens Training Notes
 
PLC - Programmable Logic Controller
PLC - Programmable Logic ControllerPLC - Programmable Logic Controller
PLC - Programmable Logic Controller
 
Simatic s7 200-introduction
Simatic s7 200-introductionSimatic s7 200-introduction
Simatic s7 200-introduction
 
ppt on PLC
ppt on PLCppt on PLC
ppt on PLC
 
Basics of Automation, PLC and SCADA
Basics of Automation, PLC and SCADABasics of Automation, PLC and SCADA
Basics of Automation, PLC and SCADA
 
SCADA Tutorial
SCADA TutorialSCADA Tutorial
SCADA Tutorial
 
Act wintutorial jm
Act wintutorial jmAct wintutorial jm
Act wintutorial jm
 
Plc scada by bhushan kumbhalkar
Plc scada by bhushan kumbhalkarPlc scada by bhushan kumbhalkar
Plc scada by bhushan kumbhalkar
 
Ladder Intro Tutorial
Ladder Intro TutorialLadder Intro Tutorial
Ladder Intro Tutorial
 
Plc Simulation Examples
Plc Simulation ExamplesPlc Simulation Examples
Plc Simulation Examples
 
0015-D17V4 PLC Application Notes
0015-D17V4 PLC Application Notes0015-D17V4 PLC Application Notes
0015-D17V4 PLC Application Notes
 
Maxon operation & application of maxon’s new epos controller
Maxon  operation & application of maxon’s new epos controllerMaxon  operation & application of maxon’s new epos controller
Maxon operation & application of maxon’s new epos controller
 
Smart sensor architecture 2006
Smart sensor architecture 2006Smart sensor architecture 2006
Smart sensor architecture 2006
 
Plc
PlcPlc
Plc
 
Plc analog Tutorial
Plc analog TutorialPlc analog Tutorial
Plc analog Tutorial
 
Scada and its Role in Industrial Automation
Scada and its Role in Industrial AutomationScada and its Role in Industrial Automation
Scada and its Role in Industrial Automation
 
Plc tutorial
Plc tutorialPlc tutorial
Plc tutorial
 

Ähnlich wie Building HMI with VB Tutorial [1998]

Building Silverlight Applications Using .NET (Part 2 of 2)
Building Silverlight Applications Using .NET (Part 2 of 2)Building Silverlight Applications Using .NET (Part 2 of 2)
Building Silverlight Applications Using .NET (Part 2 of 2)goodfriday
 
Silverlight 2 For Developers
Silverlight 2 For DevelopersSilverlight 2 For Developers
Silverlight 2 For DevelopersMithun T. Dhar
 
TAO DAYS - Integration of 3rd party components into TAO
TAO DAYS - Integration of 3rd party components into TAOTAO DAYS - Integration of 3rd party components into TAO
TAO DAYS - Integration of 3rd party components into TAOOpen Assessment Technologies
 
Code camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una DalyCode camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una DalyUna Daly
 
visual basic for the beginner
visual basic for the beginnervisual basic for the beginner
visual basic for the beginnerSalim M
 
Model-based engineering of multi-platform, synchronous & collaborative UIs
Model-based engineering of multi-platform, synchronous & collaborative UIsModel-based engineering of multi-platform, synchronous & collaborative UIs
Model-based engineering of multi-platform, synchronous & collaborative UIsJean Vanderdonckt
 
Twisting the Triad
Twisting the TriadTwisting the Triad
Twisting the TriadESUG
 
The semantic web an inside look at the creation of control loop foundation
The semantic web   an inside look at the creation of control loop foundationThe semantic web   an inside look at the creation of control loop foundation
The semantic web an inside look at the creation of control loop foundationEmerson Exchange
 
Overview of WPF in light of Ribbon UI Control
Overview of WPF in light of Ribbon UI ControlOverview of WPF in light of Ribbon UI Control
Overview of WPF in light of Ribbon UI ControlAbhishek Sur
 
WPF - the future of GUI is near
WPF - the future of GUI is nearWPF - the future of GUI is near
WPF - the future of GUI is nearBartlomiej Filipek
 
Introduction to Visual Basic 6.0
Introduction to Visual Basic 6.0Introduction to Visual Basic 6.0
Introduction to Visual Basic 6.0DivyaR219113
 
Python_for_Visual_Effects_and_Animation_Pipelines
Python_for_Visual_Effects_and_Animation_PipelinesPython_for_Visual_Effects_and_Animation_Pipelines
Python_for_Visual_Effects_and_Animation_PipelinesRussell Darling
 
ส่วนประกอบของโปรแกรม Visual basic 6
ส่วนประกอบของโปรแกรม Visual basic 6ส่วนประกอบของโปรแกรม Visual basic 6
ส่วนประกอบของโปรแกรม Visual basic 6Tom Nuntiya
 
Miha Lesjak Mobilizing The Web with Web Runtime
Miha Lesjak Mobilizing The Web with Web RuntimeMiha Lesjak Mobilizing The Web with Web Runtime
Miha Lesjak Mobilizing The Web with Web RuntimeNokiaAppForum
 
Asp.net server controls
Asp.net server controlsAsp.net server controls
Asp.net server controlsRaed Aldahdooh
 

Ähnlich wie Building HMI with VB Tutorial [1998] (20)

Building Silverlight Applications Using .NET (Part 2 of 2)
Building Silverlight Applications Using .NET (Part 2 of 2)Building Silverlight Applications Using .NET (Part 2 of 2)
Building Silverlight Applications Using .NET (Part 2 of 2)
 
Silverlight 2 For Developers
Silverlight 2 For DevelopersSilverlight 2 For Developers
Silverlight 2 For Developers
 
TAO DAYS - Integration of 3rd party components into TAO
TAO DAYS - Integration of 3rd party components into TAOTAO DAYS - Integration of 3rd party components into TAO
TAO DAYS - Integration of 3rd party components into TAO
 
Code camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una DalyCode camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una Daly
 
visual basic for the beginner
visual basic for the beginnervisual basic for the beginner
visual basic for the beginner
 
Model-based engineering of multi-platform, synchronous & collaborative UIs
Model-based engineering of multi-platform, synchronous & collaborative UIsModel-based engineering of multi-platform, synchronous & collaborative UIs
Model-based engineering of multi-platform, synchronous & collaborative UIs
 
Twisting the Triad
Twisting the TriadTwisting the Triad
Twisting the Triad
 
The semantic web an inside look at the creation of control loop foundation
The semantic web   an inside look at the creation of control loop foundationThe semantic web   an inside look at the creation of control loop foundation
The semantic web an inside look at the creation of control loop foundation
 
Unit Testing 101
Unit Testing 101Unit Testing 101
Unit Testing 101
 
WPF Intro
WPF IntroWPF Intro
WPF Intro
 
Silver Light1.0
Silver Light1.0Silver Light1.0
Silver Light1.0
 
Overview of WPF in light of Ribbon UI Control
Overview of WPF in light of Ribbon UI ControlOverview of WPF in light of Ribbon UI Control
Overview of WPF in light of Ribbon UI Control
 
WPF - the future of GUI is near
WPF - the future of GUI is nearWPF - the future of GUI is near
WPF - the future of GUI is near
 
Introduction to Visual Basic 6.0
Introduction to Visual Basic 6.0Introduction to Visual Basic 6.0
Introduction to Visual Basic 6.0
 
Session 5#
Session 5#Session 5#
Session 5#
 
Python_for_Visual_Effects_and_Animation_Pipelines
Python_for_Visual_Effects_and_Animation_PipelinesPython_for_Visual_Effects_and_Animation_Pipelines
Python_for_Visual_Effects_and_Animation_Pipelines
 
ส่วนประกอบของโปรแกรม Visual basic 6
ส่วนประกอบของโปรแกรม Visual basic 6ส่วนประกอบของโปรแกรม Visual basic 6
ส่วนประกอบของโปรแกรม Visual basic 6
 
WPF Fundamentals
WPF FundamentalsWPF Fundamentals
WPF Fundamentals
 
Miha Lesjak Mobilizing The Web with Web Runtime
Miha Lesjak Mobilizing The Web with Web RuntimeMiha Lesjak Mobilizing The Web with Web Runtime
Miha Lesjak Mobilizing The Web with Web Runtime
 
Asp.net server controls
Asp.net server controlsAsp.net server controls
Asp.net server controls
 

Mehr von Sarod Paichayonrittha

พระพุทธเจ้าทรงสั่งสอนอะไร What did the buddha teach
พระพุทธเจ้าทรงสั่งสอนอะไร  What did the buddha teachพระพุทธเจ้าทรงสั่งสอนอะไร  What did the buddha teach
พระพุทธเจ้าทรงสั่งสอนอะไร What did the buddha teachSarod Paichayonrittha
 
สูตรของเว่ยหลาง โดย พุทธทาสภิกขุ
สูตรของเว่ยหลาง โดย พุทธทาสภิกขุสูตรของเว่ยหลาง โดย พุทธทาสภิกขุ
สูตรของเว่ยหลาง โดย พุทธทาสภิกขุSarod Paichayonrittha
 
อานาปานสติสูตร
อานาปานสติสูตรอานาปานสติสูตร
อานาปานสติสูตรSarod Paichayonrittha
 
Ukti marketing brief make it happens -jan2014
Ukti marketing brief  make it happens  -jan2014Ukti marketing brief  make it happens  -jan2014
Ukti marketing brief make it happens -jan2014Sarod Paichayonrittha
 
รำลึกวันวาน ปกิณกธรรม หลวงปู่มั่น_ภูริทัตโต_โดยหลวงตาทองคำ_จารุวัณโณ
รำลึกวันวาน ปกิณกธรรม หลวงปู่มั่น_ภูริทัตโต_โดยหลวงตาทองคำ_จารุวัณโณรำลึกวันวาน ปกิณกธรรม หลวงปู่มั่น_ภูริทัตโต_โดยหลวงตาทองคำ_จารุวัณโณ
รำลึกวันวาน ปกิณกธรรม หลวงปู่มั่น_ภูริทัตโต_โดยหลวงตาทองคำ_จารุวัณโณSarod Paichayonrittha
 
Led lighting outdoor design challenge dec2013
Led lighting outdoor design challenge dec2013Led lighting outdoor design challenge dec2013
Led lighting outdoor design challenge dec2013Sarod Paichayonrittha
 
Kwater investor presentation oct2013
Kwater investor presentation oct2013Kwater investor presentation oct2013
Kwater investor presentation oct2013Sarod Paichayonrittha
 
พระพุทธเจ้าทรงสั่งสอนอะไร พระนิพนธ์ในสมเด็จพระญาณสังวร
พระพุทธเจ้าทรงสั่งสอนอะไร  พระนิพนธ์ในสมเด็จพระญาณสังวรพระพุทธเจ้าทรงสั่งสอนอะไร  พระนิพนธ์ในสมเด็จพระญาณสังวร
พระพุทธเจ้าทรงสั่งสอนอะไร พระนิพนธ์ในสมเด็จพระญาณสังวรSarod Paichayonrittha
 
Handbook malaysian fi t feed-in-tariff renewable energy mar2011
Handbook   malaysian fi t feed-in-tariff renewable energy mar2011Handbook   malaysian fi t feed-in-tariff renewable energy mar2011
Handbook malaysian fi t feed-in-tariff renewable energy mar2011Sarod Paichayonrittha
 
รายงานประเมินผลไทยเข้มแข็ง มีค2554
รายงานประเมินผลไทยเข้มแข็ง มีค2554รายงานประเมินผลไทยเข้มแข็ง มีค2554
รายงานประเมินผลไทยเข้มแข็ง มีค2554Sarod Paichayonrittha
 
ตำราพิชัยสงครามสิบสามบท ของซุนวู
ตำราพิชัยสงครามสิบสามบท ของซุนวูตำราพิชัยสงครามสิบสามบท ของซุนวู
ตำราพิชัยสงครามสิบสามบท ของซุนวูSarod Paichayonrittha
 
The ultimatum of god nature the one straw revolution -a recapitulation-1996
The ultimatum of god nature the one straw revolution  -a recapitulation-1996The ultimatum of god nature the one straw revolution  -a recapitulation-1996
The ultimatum of god nature the one straw revolution -a recapitulation-1996Sarod Paichayonrittha
 
Led Lighting SSL Road Map US.DOE aug2012
Led Lighting SSL Road Map US.DOE aug2012 Led Lighting SSL Road Map US.DOE aug2012
Led Lighting SSL Road Map US.DOE aug2012 Sarod Paichayonrittha
 
หลักการเขียนลายเซ็น
หลักการเขียนลายเซ็นหลักการเขียนลายเซ็น
หลักการเขียนลายเซ็นSarod Paichayonrittha
 
ISA Effective Use of PID Controllers 3-7-2013
ISA Effective Use of PID Controllers 3-7-2013ISA Effective Use of PID Controllers 3-7-2013
ISA Effective Use of PID Controllers 3-7-2013Sarod Paichayonrittha
 
Feed in tariff malaysia brochure 2012
Feed in tariff malaysia brochure 2012Feed in tariff malaysia brochure 2012
Feed in tariff malaysia brochure 2012Sarod Paichayonrittha
 

Mehr von Sarod Paichayonrittha (20)

พระพุทธเจ้าทรงสั่งสอนอะไร What did the buddha teach
พระพุทธเจ้าทรงสั่งสอนอะไร  What did the buddha teachพระพุทธเจ้าทรงสั่งสอนอะไร  What did the buddha teach
พระพุทธเจ้าทรงสั่งสอนอะไร What did the buddha teach
 
สูตรของเว่ยหลาง โดย พุทธทาสภิกขุ
สูตรของเว่ยหลาง โดย พุทธทาสภิกขุสูตรของเว่ยหลาง โดย พุทธทาสภิกขุ
สูตรของเว่ยหลาง โดย พุทธทาสภิกขุ
 
อานาปานสติสูตร
อานาปานสติสูตรอานาปานสติสูตร
อานาปานสติสูตร
 
Ukti marketing brief make it happens -jan2014
Ukti marketing brief  make it happens  -jan2014Ukti marketing brief  make it happens  -jan2014
Ukti marketing brief make it happens -jan2014
 
รำลึกวันวาน ปกิณกธรรม หลวงปู่มั่น_ภูริทัตโต_โดยหลวงตาทองคำ_จารุวัณโณ
รำลึกวันวาน ปกิณกธรรม หลวงปู่มั่น_ภูริทัตโต_โดยหลวงตาทองคำ_จารุวัณโณรำลึกวันวาน ปกิณกธรรม หลวงปู่มั่น_ภูริทัตโต_โดยหลวงตาทองคำ_จารุวัณโณ
รำลึกวันวาน ปกิณกธรรม หลวงปู่มั่น_ภูริทัตโต_โดยหลวงตาทองคำ_จารุวัณโณ
 
The new scada jun2014
The new scada jun2014 The new scada jun2014
The new scada jun2014
 
Led lighting outdoor design challenge dec2013
Led lighting outdoor design challenge dec2013Led lighting outdoor design challenge dec2013
Led lighting outdoor design challenge dec2013
 
Kwater investor presentation oct2013
Kwater investor presentation oct2013Kwater investor presentation oct2013
Kwater investor presentation oct2013
 
พระพุทธเจ้าทรงสั่งสอนอะไร พระนิพนธ์ในสมเด็จพระญาณสังวร
พระพุทธเจ้าทรงสั่งสอนอะไร  พระนิพนธ์ในสมเด็จพระญาณสังวรพระพุทธเจ้าทรงสั่งสอนอะไร  พระนิพนธ์ในสมเด็จพระญาณสังวร
พระพุทธเจ้าทรงสั่งสอนอะไร พระนิพนธ์ในสมเด็จพระญาณสังวร
 
Oil and gas thailand 2011 v f
Oil and gas thailand 2011 v fOil and gas thailand 2011 v f
Oil and gas thailand 2011 v f
 
Handbook malaysian fi t feed-in-tariff renewable energy mar2011
Handbook   malaysian fi t feed-in-tariff renewable energy mar2011Handbook   malaysian fi t feed-in-tariff renewable energy mar2011
Handbook malaysian fi t feed-in-tariff renewable energy mar2011
 
รายงานประเมินผลไทยเข้มแข็ง มีค2554
รายงานประเมินผลไทยเข้มแข็ง มีค2554รายงานประเมินผลไทยเข้มแข็ง มีค2554
รายงานประเมินผลไทยเข้มแข็ง มีค2554
 
ตำราพิชัยสงครามสิบสามบท ของซุนวู
ตำราพิชัยสงครามสิบสามบท ของซุนวูตำราพิชัยสงครามสิบสามบท ของซุนวู
ตำราพิชัยสงครามสิบสามบท ของซุนวู
 
The ultimatum of god nature the one straw revolution -a recapitulation-1996
The ultimatum of god nature the one straw revolution  -a recapitulation-1996The ultimatum of god nature the one straw revolution  -a recapitulation-1996
The ultimatum of god nature the one straw revolution -a recapitulation-1996
 
ABB DC Circuit Breakers Catalog
ABB DC Circuit Breakers CatalogABB DC Circuit Breakers Catalog
ABB DC Circuit Breakers Catalog
 
Led Lighting SSL Road Map US.DOE aug2012
Led Lighting SSL Road Map US.DOE aug2012 Led Lighting SSL Road Map US.DOE aug2012
Led Lighting SSL Road Map US.DOE aug2012
 
หลักการเขียนลายเซ็น
หลักการเขียนลายเซ็นหลักการเขียนลายเซ็น
หลักการเขียนลายเซ็น
 
ISA Effective Use of PID Controllers 3-7-2013
ISA Effective Use of PID Controllers 3-7-2013ISA Effective Use of PID Controllers 3-7-2013
ISA Effective Use of PID Controllers 3-7-2013
 
China bullet train population 2013
China bullet train population 2013China bullet train population 2013
China bullet train population 2013
 
Feed in tariff malaysia brochure 2012
Feed in tariff malaysia brochure 2012Feed in tariff malaysia brochure 2012
Feed in tariff malaysia brochure 2012
 

Kürzlich hochgeladen

Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 

Kürzlich hochgeladen (20)

Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 

Building HMI with VB Tutorial [1998]

  • 1. Building Your HMI Using Visual Basic Technologies - A Tutorial John Weber The Software Toolbox ® jweber@softwaretoolbox.com October 21, 1998 Houston, TX Poster Presentation Copyright 1998 Qualitrol International & Software Toolbox.All rights reserved worldwide.The Software Toolbox is a registered trademark of Qualitrol International.
  • 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
  • 4. Software Objects What are they ? • You can’t touch them - except on the disks or CD you load them 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 similar tasks • Are similar to subroutines or functions • May contain numerous subroutines and functions of their own • Used to model software after real-world machine or process components or sections • Are easily transported from one PC to another provided standard interfaces are followed • Much of the software you use on your PC is built of objects
  • 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. 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. Object Terminology A 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. 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. 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. Software Objects Examples Invoking the Print Method The Print Event
  • 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. Software Objects Examples ActiveX control objects “plug-in” to VB to let you add functionality • PLC Communications • Trends • Gauges • Tanks
  • 13. Adding an ActiveX Component to the VB Toolbar & To A Form Right Mouse Click with pointer over the toolbar and select “components” The Default VB 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. 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. 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. VB - The Glue to connect objects 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.property, object.method, object_event syntaxes • VB known by 3,000,000 people worldwide
  • 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. Human Machine Interface Apps • HMI = Human Machine Interface • Process Graphics • PLC Connectivity for Data • Trending and Logging • Alarming and Logging • Recipe Loading • Networking
  • 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. 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. 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. 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. 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. Trending and Logging Builds upon what you’ve already learned by adding 2 new controls • Trending ActiveX control • VB’s standard Data control for database connectivity Setup a single instance of the PLC ActiveX control and its properties like before but this time use the standard VB command button’s On_Click() Properties Page event to start the polling of the for the Trending PLC based on user input ActiveX Control
  • 25. Trending and Logging - VB Code Invoke the PLC ActiveX Controls’ .Autopoll method to start/stop polling when user clicks on command buttons These lines setup the timebase and variables on the trend chart ActiveX control when the form is loaded Update text boxes on screen with data from the PLC ActiveX Control This OnReadDone Event Plot data on the trending ActiveX fires every time a poll control completes - the autopoll rate sets your trend update rate Log the data to the database using for you the VB data controls methods
  • 26. Trending and Logging The Finished Product in Run Mode
  • 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. 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. 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. 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 the database using the data controls methods
  • 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. 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. Alarming and Logging - Finished Product
  • 34. Alarming and Logging - Advanced Displays For more advanced alarm displays, ActiveX plug- ins are available to provide the needed functionality
  • 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. 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. 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. 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. 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. 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 the PLC network interface cards for each client are cost-prohibitive • The gateway software bridge can be either an EXE program that is included with some PLC communications ActiveX controls or an OPC server
  • 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. Resources for further learning • Understanding ActiveX & OLE - David Chappel, Microsoft Press • Office97 Visual Programmers Guide - Microsoft Press • Microsoft Websites - msdn.microsoft.com/vba • Download copy of this presentation and other presentations and technical papers at www.softwaretoolbox.com/isaexpo98
  • 46. Where do I find ActiveX controls and tools 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. www.softwaretoolbox.com