Designing new SCADA systems

Reduce design time and achieve better results when developing a new SCADA project for Windows or Windows Embedded platform.

By Fabio Terezinho, InduSoft, Inc. December 14, 2011

Following these steps will help you reduce design time and achieve better results when developing a new supervisory control and data acquisition (SCADA) project for a Windows or Windows Embedded platform. The two first steps, designing the new project and creating a tag database, can be performed effectively in less time by adhering to these guidelines. These quick tips will help you handle your project the right way from the beginning.

Designing a new project

Here’s a quick checklist for planning the project that covers the two most important initial decisions: platform and resolution.

What platform should I use?

Choosing a platform is important because most SCADA packages have different licensing for different platforms, such as one for Windows and one for Windows Embedded. Moreover, different restrictions often apply to the various Windows Embedded platforms. Make sure that the features you need are supported by the platform you choose.

What resolution should I create when I start a project?

The easy answer is the resolution of the device in which the application will be deployed. However, it’s important to consider other platforms that may be used by different hardware devices. You need to consider various resolutions when creating applications such as demos and templates. If you don’t know the resolution of the devices that will be used, I recommend using 1,280 by 800 because that resolution will cover most devices in the marketplace.

What if I need to change the platform or resolution?

Make sure the SCADA software you choose lets you change the platform or resolution without excessive cost or effort. Some programs allow you to change the resolution with a mouse click and convert the resolution in your project, even a custom one. However, it is best to avoid changing the resolution because you lose some definition from the screens and pictures.

What features should I enable or disable?

Review your project settings, especially viewer, communication, and web. You’ll probably want to include some features, such as “disable palm rejection” found in Windows 7 touchscreen devices. Palm rejection means you must click on an item and hold. I recommend you disable this, so the screen becomes more responsive. Other considerations are activating the virtual keyboard and deciding whether to hide the cursor.

How should you define the driver and OPC option?

Choosing the correct option for your application is critical to ensure that the right values are sent to the PLC or controller. The software should provide the options “send every state” and “send the last state.” “Send every state,” usually the default setting, means all commands will be buffered and written to the PLC. For example, if you click a button and set a tag to a value of one, then release and write zero to the tag, the software buffers the command to write one and to write zero. This is very useful for machine control and jogging commands.

When should I choose “send the last state?”         

For an application that writes and changes many tag values quickly, the buffer state can be quickly exceeded. The “send the last state” option sends only the last current value when the driver scan is triggered, so no information is buffered.

Tags database

You usually create the tags for the entire application after you create your project. This is one of the best areas in which to save time.

Is there a way to reduce the amount of time creating tags?

Avoid having to create tags manually by choosing a software package that offers arrays and classes.

How do arrays work?

Arrays enable you to use only a single line to create duplicated tags. For example, your project has 30 tags for temperature sensors. You create a main tag called “temperature” then put 29 in the array column. Automatically 30 tags are created, but each tag can hold an independent value.

How do classes work?                      

You often have many properties in parameters from one specific device you would like to encapsulate. For example, you have 30 tanks, and each tank has temperature, pressure, and level readings. Instead of creating three rows for temperature, pressure, and level, each with 29 elements, you create a class to encapsulate the properties from each tank (temperature, pressure, and level).

Is the class a tag?      

The class is the template for a tag, not a tag. You’ll have 30 instances of a tank element, which you can then use to create an array. You can use the prefix “c” to distinguish a class from a tag.

By planning ahead and doing these steps correctly at the very beginning of your project, you will save development time and money.

Terezinho is vice president of consulting services for InduSoft, Inc. www.indusoft.com