Entry type: FAQ, Entry ID: 53752382, Entry date: 02/23/2015
(2)
Rate

How do you use scripts to dynamize objects in WinCC Comfort and WinCC Advanced?

  • Entry
  • Associated product(s)

Description
Accessing object properties via a script serves as an alternative to configuring object properties from the Properties dialog box.
Some objects cannot be changed in SIMATIC WinCC (TIA Portal) using the available options, resizing rectangles in runtime, for example. These attributes or properties can be changed or dynamized with the aid of scripts.

At the end of the entry is a PDF document and the described sample project ready for downloading.
The PDF document contains a list of objects included by default in WinCC Comfort and WinCC Advanced. In addition, there is a list of all the properties (attributes) of the objects and the type of access to the properties which can be called using a script statement. 
All the properties and methods of an object which can be dynamized are available in the FAQ response in Entry ID: 108893939.

Instructions
In the example below we show how you can change the width and height of a rectangle using a script in Runtime.

The names used for the tags and the objects can be changed separately as required.
The tags do not need a controller connection (only if you want to assign the width and height of the rectangle via the controller).

For better understanding it is useful to open the attached configuration.
 

No. Procedure
1 Add a rectangle
  • Insert an object of the "Rectangle" type into the "Screen_01" screen.
    Note
    The name of the screen will be used later in the script.
  • Define the size and name of the object.
    In this example the rectangle has a width of 100 and a height of 50.
    The name of the object is "Rectangle_1".
    Note
    The name of the object (rectangle) will be used later in the script.


Fig. 01

2 Create tags
The width and height of the rectangle are to be changed using a script. Create two internal tags named "RectangleHeight" and "RectangleWidth".
(Project navigation > Operator panel > HMI tags > Standard tag table).

The tags are assigned a start value. In this case, "100" for the width and "50" for the height (Properties > Values > Start value). The reason for this measure is described further on (see Step 8).

Note
The tags will be used later in the script.


Fig. 02

3 Create scripts
Two scripts are used in the configuration.
(Project navigation > Operator panel > VB scripts > Add new VB function).
You can specify the names of the scripts as required.
In this example:
  • Script_01_Rectangle
  • Script_02_Init_Rectangle

Below we describe the two scripts used in more detail.

4 Script_01_Rectangle
Using the "Script_01_Rectangle" script you can change the size of the rectangle.

Create an internal script tag
You need an internal script tag to change the properties of an object in WinCC (in this case the properties of a rectangle).
You can specify the name of the tag as required.
In this example: "ObjectRectangle" 

Define the object
The "Rectangle_1" object is transferred in the script editor to the "ObjectRectangle" internal tag.
The "HmiRuntime.Screens" statement indicates the screen where the object (rectangle) is located.
The object (rectangle) in the screen in question is accessed explicitly using the "ScreenItems" statement.
In this example:
Set ObjectRectangle = HmiRuntime.Screens("Screen_01").ScreenItems("Rectangle_1"),

Note
Bear in mind that the object must be unique in that screen, this means that the name may not be used by any other object.
However, the same object name may exist in other screens!

Assign to the object (rectangle) the attributes and tags for "Height" and "Width"
The "Width" attribute defines the object's width.
The "Height" attribute defines the object's height.
Two tags for "Width" and "Height" have been defined for the rectangle used.
These tags are assigned to the object accordingly.

In this example:
ObjectRectangle.Width = SmartTags("RectangleWidth")
ObjectRectangle.Height = SmartTags("RectangleHeight")


Fig. 03

5 Script_02_Init_Rectangle
Using the "Script_02_Init_Rectangle" script you can change the size of the rectangle to a size defined in the script (reset to "initial size").
It is only for resetting the rectangle to the "original size", for example, without having to enter a value beforehand using the IO fields.

The script has exactly the same structure as the "Script_01_Rectangle" script. The only difference is that fixed values are given for the width ("200") and height ("100") of the rectangle.

 
Fig. 04 

6 Tips for creating the script

Autocomplete

  • Use "Autocomplete" when creating scripts.
    Autocomplete is a feature that provides a context-dependent list in a dialog from which you can choose the tags or statements required.
    Example 1
    Enter a "period" after the "...= HmiRuntime" dialog.
    A "pop-menu" opens from which you can select from all of the available tags and statements.


Fig. 05

Example 2
Enter a "period" after the "ObjectRectangle" dialog.
A "pop-menu" opens from which you can select from all of the available attributes.


Fig. 06

Add tag

  • Go to the point where you want to add the tag.
  • Right-click. A pop-up menu opens.
    Select the menu command "Autocomplete > List objects".
    Another window opens from which you can select the relevant tag and accept it with the symbolic "OK" button.


Fig. 07

7 Add buttons and IO fields
To specify the width and height of the rectangle you need two IO fields. Two buttons are used to run the scripts.
  • "Change size" ("Script_01_Rectangle" script)
  • "Standard size" ("Script_02_Init_Rectangle" script)


Fig. 08

The internal tags for "width" and "height" are configured respectively at the IO fields
(Properties > General > Process).

The "Change size" button calls the "Script_01_Rectangle" script
(Properties > Events > Click).

The "Standard size" button calls the "Script_02_Init_Rectangle" script
(Properties > Events > Click).

8 Define properties of the "Screen_01" screen
This example is executed using the "Screen_01" screen.

If the size of the rectangle is changed, then this is only present temporarily. If the page is called again, the rectangle resumes the size of the configuration.

If you wish to retain the changed size after a page change, call the "Script_1_Rectangle" script when the "Screen_01" screen is loaded (Properties > Events > Loaded).

The first time the page is called or if no values have been defined yet for the size of the rectangle, then the rectangle is not visible on the page (width and height have the value "Zero").
This can be prevented by predefining start values at the "Width" and "Height" tags (see Step 2).


Fig. 09

9 Notes and tips on configuring
  • To test the attached configuration you can use a TP1200 Comfort or the simulation from WinCC Comfort or WinCC Advanced. 
  • If you specify a value via the IO fields, then make sure that with this value the current screen width or screen height is not exceeded by the object (rectangle). Otherwise you get a system message (script error).
    Remedy
    In the properties of the "RectangleHeight" and "RectangleWidth" tags you can set a maximum value via "Properties > Range > Settings". This value depends on the position of the object configured.
  • Error in the script ...
    The scripts read out the name of the object (rectangle). If you want to test the configuration in the "PC Runtime Simulation", then, before starting Runtime, check that the option is enabled under "Runtime Settings > General > Screen > Load name".
  • The Help system and the manual of WinCC (TIA Portal) provide further information on the topic of VBS Object Model under "Visualize processes > Working with System Functions and Runtime Scripting > Reference > VB Scripting > VBS Object Model".


Fig. 10

Table 01

Further Information (not relevant for this example)
The Help system of WinCC (TIA Portal) provides all the objects in relation to VBS. The entry entitled "Relationship between Object and Object Type" (Entry ID: 108893939) gives you a list of the objects and their associated object types. In the manual or information system (TIA Portal Help), via the object types you can call - language independent - an overview of the searched objects.

In the information system, for example, or in the manual (Entry ID: 92323076) you enter "Rectangle" as the keyword to be found under Index. You get an overview of the object displayed. The description includes the properties and methods of the object.


Fig. 11

Note
Bear in mind that not all objects are available in all operator panels.

Downloads
 

Contents of the downloads

Download

Documentation 
Attachment 1 contains a list of objects included by default in WinCC Comfort
and WinCC Advanced. In addition, there is a list of the properties (attributes) of the objects and the type of access to the properties which can be called via the script statement of "HmiRuntime.Screens" and "ScreenItems". 

Object_Attributes ( 102 KB )
Code 
The packed file contains the described sample project in the version SIMATIC WinCC (TIA Portal) V13 SP1.

TIA_Project_V13_SP1 ( 2694 KB )

Error details
Detailed error description
Help us to improve Online Support.
The page requested cannot be displayed. Please contact the webmaster.
Contact to webmaster