I am a beginner in SCADA applications.I would like to know what is the role of VB language in developing SCADA applications.
VB is an one option for programming a SCADA or HMI application. Others include "canned" software designed specifically for SCADA and HMI application. Examples of canned packages would be Rockwell Software's RSView and Wonderware. There are pro's and con's to both VB and canned SCADA/HMI packages.
1. No runtime licenses (cheaper)
2. More flexible
Generally with VB you would purchase a third party ActiveX control to facilitate PLC communication. There would be an additional cost for that control, but again once you purchase is (under $1,000) there are no runtime fees for any applications you develop with it. Also, there are many third party graphics packages aimed specifically at the industrial control market. These add-ons can greatly improve the look and reduce the development cost of your application.
1. In general the code is more difficult (more involved) to write and requires higher level code skills for the customer to maintain and modify. The time from concept to finished application will almost always be longer with VB.
Canned Package Pro's:
1. Quicker application development.
2. PLC communication generally built in
3. Library of standard SCADA/HMI controls (buttons, dials, sliders, etc. built in.
Canned Package Con's:
1. These packages can be fairly expensive and you generally incurr additional runtime cost for each application which must me licensed to the customer.
2. Less flexibility in how you build the application.
The bottom line on which package is right for you would be the choice application and market. Many industrial customers want to use HMI pacakages that they already support in-house. If you are an OEM there is a lot of money to be saved in runtime fees if you take the hit for the development time up front.
Ed McClure has given a nice summary, to which I would like to add the following:
In our organization (robotics), we use SCADA packages from Rockwell and Wonderware and sometimes a lesser know package depending on our customer requirements. We have also developed our own VB implementation.
The necessity for creating our own SCADA solution resulted in that we needed to add functionality that no canned SCADA products could provide without developing many ActiveX controls. We found that we could provide a richer experience with our VB implementation (and moving over to the .NET platform as we speak). We also provide full source code to the customer should they ever need to enhance the software or to fix any issues that they feel are within their capabilities. We are also aware of customers who took our initial implantation and enhanced it using VB Developers that they hired on contract. Some of these enterprising customers have integrated our initial product in ways that we could never have thought of before. All of these enhanced solutions would never have been possible with canned SCADA solutions.
There are still customers that choose canned solutions and we certainly do our best to give them the maximum experience within the constraints of the canned applications.
In the end, I can say that VB does provide a platform where new solutions or highly customized SCADA's can be created with a richer experience than those that may be provided by standard canned SCADA offerings. Each product has its core audience and certainly comes with advantages and disadvantages. Many Integrators will offer customized SCADA solutions together with canned applications.
Remember that VB is a RAD application that allows developers to create applications faster than other programing languages.
I hope that this helps.
Shawn and Ed have covered much of the points on this but one thing that seems to be missing is the cost of the people building the custom VB solution and the additional risk to the schedule and cost estimate. In addition, the on-going maintenance is more expensive, involving VB programmers in place of users.
One maintenance item is keeping current with security patches and the inevitable upgrade in the version of Windows that is forced by the need to keep current and the dropping of support for old versions of Windows. I understand that this often requires significant VB application maintenance. If this is the case, then the customer is faced with either a significant re-engineering of the SCADA system or being increasingly more vulnerable. With C-based applications, this is much less of an issue.
We have been developing VB code for more than a decade. With VB6, we have never had to re-compile the software because of Microsoft OS issues. For the most part, VB6 SP6 has been good to us. Even with VB.NET, there has never been a need to recompile software due to security updates from Microsoft. I do not believe that this argument is relevant.
In the same breath, whether the application (exe) is Wonderware, RSView or VB, Microsoft understands that they cannot break functionality of the core components. Most of the time, the applications are just calling DLLs that still maintain the functionality required, but fixes security holes.
Please give us an example where VB code had to be updated after a Microsoft OS security update. We have an application that is very big and has never had to be updated due to security updates. Even with the Windows XP SP2 update, we experienced no issues at all. I know this as we have customers in Asia, EU, Africa, S. America and N. America (more than 900 unique installations worldwide) that have updated machines with no issues.