Contents
Page
Training Training aims ............ ................. ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ............ ........... ........... ............ ........... ........... ........... ........... ........... ........... ........
3
General General informat information ion about program programmin ming g langua languages ges ...... .......... ....... ....... ....... ...... ...... ...... ...... ....... ....... ...... ...... ...... ...... ...... ...... ...... ...... ....... ....... ..... .... ..
4
Data types types in WinCC WinCC and and in C
...... .......... ....... ....... ....... ...... ...... ...... ...... ....... ....... ...... ...... ...... ...... ...... ...... ...... ...... ....... ....... ..... ...... ....... ...... ...... ...... ...... ....... ....... ...... ...... .....
5
...... .......... ....... ...... ...... ...... ..... ...... ....... ...... ...... ....... ....... ...... ...... ...... ...... ...... ..... ...... ........ ....... ....... ....... ...... ...... ...... ...... ....... ....... ...... ...... ...... ...... ...... ...... ...... .....
6
....... .......... ...... ...... ...... ...... ..... ...... ........ ....... ..... ...... ....... ...... ...... ...... ...... ....... ....... ....... ....... ..... ...... ....... ...... ...... ....... ....... ...... ...... ...... ...... ...... ...... ...... ....... ....... ...... ...... ...... ...... ...
7
Opening Opening the C editor editor in WinCC WinCC ....... .......... ...... ...... ...... ....... ....... ....... ....... ...... ...... ...... ...... ...... ....... ....... ...... ...... ...... ...... ...... ..... ...... ........ ....... ..... ...... ....... ...... ...... ...... ...... ..... ..
8
C editor editor in the WinCC toolbar ............ ................. ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ............ ........... ........... ............ ........... ........ ...
9
Importan Importantt operato operators rs if stateme statement nt
Read Reading ing and and writing riting WinCC WinCC tags tags
.... ...... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ....
10
Dynamizing Dynamizing graphics graphics objects objects with C ............ ................. ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ............ ........... ........... .......... ....
11
Diagnos Diagnostics tics option options s for for C scripts scripts
....... .......... ...... ....... ....... ...... ...... ...... ...... ...... ..... ...... ........ ....... ....... ....... ...... ...... ...... ...... ....... ....... ...... ...... ...... ..... ...... ....... ...... ....... ....
12
Diagnos Diagnostics tics option options s for C scripts scripts Error Error mess message age in the diag diagnos nostics tics wind window ow ....... .......... ...... ....... ....... ...... ...... ....... ....... ...... .....
13
Tips for writing writing C scripts scripts ............ ................. ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ............ ........... ........... ............ ........... ........... ........... .....
14
Exercise Exercise 1: 1: C script script on mouse mouse click with diagnostic diagnostics s ............ ................. ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... .......
15
Exercis Exercise e 2: Cyclic Cyclic C script script
...... .......... ....... ...... ...... ...... ..... ...... ....... ...... ...... ....... ....... ...... ...... ...... ...... ...... ..... ...... ........ ....... ....... ....... ...... ...... ...... ...... ....... ....... ...... ...... ...... ...
16
C scripts and cross reference reference
............ ................. ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ............ ........... ........... ............ ........... .......
17
C scripts and cross reference reference
............ ................. ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ............ ........... ........... ............ ........... .......
18
....... .......... ...... ....... ....... ...... ...... ...... ...... ...... ..... ...... ........ ....... ....... ....... ...... ...... ...... ...... ....... ....... ...... ...... ...... ..... ...... ....... ...... ....... ....... ...... ...... ...... ..... ....
19
...... .......... ....... ....... ....... ...... ...... ....... ....... ...... ...... ...... ...... ...... ...... ...... ....... ....... ....... ....... ...... ...... ...... ...... ....... ....... ...... ...... ...... ...... ...... ...... ...... ....... ....... ...... ...
20
...... ......... ...... ...... ....... ....... ..... ...... ....... ...... ...... ...... ...... ....... ....... ....... ....... ...... ...... ...... ...... ...... ....... ....... ...... ...... ...... ...... ...... ...... ....... ....... ...... ...... ...... ...... ...... ...... ...... ...... .....
21
Visual Visual Basic Basic and WinCC VBS,, VBA data VBS data types types VBA in WinCC WinCC
Compa Compari riso son n of VB VBA A and VBS
.... ...... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... .... ..
22
Where do I find help on VBS VBS?... ?........ .......... ........... ........... ........... ............ ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ............ ........... ........... ......... ...
23
Importan Importantt operato operators rs in VBS
....... .......... ...... ...... ...... ....... ....... ....... ....... ...... ...... ...... ...... ...... ....... ....... ...... ...... ...... ...... ...... ..... ...... ........ ....... ..... ...... ....... ...... ...... ...... ...... ....... ......
24
....... .......... ...... ...... ...... ...... ..... ...... ........ ....... ..... ...... ....... ...... ...... ...... ...... ....... ....... ....... ....... ..... ...... ....... ...... ...... ....... ....... ...... ...... ...... ...... ...... ...... ...... ....... ....... ...... ...... ...... ...... ...
25
Opening Opening the VBS edito editorr in WinCC ............ ................. ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ............ ........... ........... ............ ........
26
VBS editor editor in the WinCC toolbar............... toolbar..................... ........... ........... ........... ........... ........... ........... ............ ........... ........... ........... ........... ........... ........... ............ ........... ....... ..
27
If statem statemen entt
SITRAIN Train Trainin ing g for for Automation Automation and Industrial Industrial Solutions Solutions
Page 1
ST-BWINCCS Scripts
Contents
Page
Reading Reading and writin writing g WinCC tags
...... ......... ...... ...... ...... ...... ...... ....... ....... ...... ...... ...... ...... ...... ...... ...... ....... ....... ..... ...... ....... ...... ...... ...... ...... ....... ....... ....... ....... ...... ...... ...
28
Dynamizing Dynamizing graph graphics ics objects objects with VBS VBS ............ ................. ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ............ ........... ........... ......
29
Diagnostics Diagnostics options options for VB scripts Trace
............ ................. ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ............ ........... .......
30
Diagnos Diagnostics tics option options s for VB scripts scripts Error Error message message in the diagnos diagnostics tics windo window w ........ ........... ..... ...... ........ ....... ....... ........ ....... .....
31
Diagno Diagnostic stics s option options s for VB scripts scripts Debugge Debuggerr
...... .......... ....... ....... ....... ...... ...... ...... ...... ....... ....... ...... ...... ...... ...... ...... ...... ...... ...... ....... ....... ..... ...... ....... ...... .....
32
....... .......... ...... ...... ...... ....... ....... ....... ....... ...... ...... ....... ....... ..... ...... ....... ...... ...... ...... ...... ....... ....... ....... ....... ...... ...... ...
33
Tips for writing writing VB scripts scripts 2/4 Ctrl Ctrl + spacebar spacebar ....... .......... ...... ....... ....... ...... ...... ....... ....... ...... ...... ...... ...... ...... ....... ....... ...... ...... ....... ....... ...... ...... ...... ...... ..... ..
34
Tips for writi writing ng VB scripts scripts 3/4 3/4 Exten Extende ded d tag brow browser ser
....... .......... ...... ....... ....... ...... ...... ...... ...... ....... ....... ...... ...... ...... ....... ....... ...... ...... ...... ...... ...... ...
35
Tips for writin writing g VB scripts scripts 4/4 Code Code templa templates tes ....... .......... ...... ....... ....... ...... ...... ...... ...... ....... ....... ...... ...... ...... ....... ....... ...... ...... ...... ...... ....... ....... ...... ...... ..... ..
36
Exercise Exercise 3: 3: VB script on mouse mouse click click with diagnost diagnostics ics ............ ................. ........... ........... ........... ........... ........... ........... ........... ........... ........... .......... ....
37
Exercise Exercise 4: Cyclic Cyclic VB script ............ ................. ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ............ ........... ........... ............ ........... .......... .....
38
Configurati Configuration on rules in VBS actions actions ............ ................. ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ............ ........... ........... ............ ......
39
Examples Examples with VBS actions actions
............ ................. ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ............ ........... ........... ............ ........... ......... ....
40
Configurati Configuration on notes notes Target: Target: Good performance performance ............ ................. ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........... ........ ..
41
Tips Tips for writing writing VB scripts scripts 1/4 Intelli IntelliSen Sense se
SITRAIN Train Training ing for for Automation Automation and Industrial Industrial Solutions Solutions
Page 2
ST-BWINCCS Scripts
The participant will : •
Get to to know know selec selected ted oper operator ators s and and commands commands of C
•
Be able to hand handle le dyna dynamizat mization ion tasks tasks with with C
•
Know Know opt option ions s for for homin homing g in in on erro errors rs
•
Get to to know know selec selected ted oper operator ators s and and commands commands of VBS VBS
•
Be able to hand handle le dyna dynamizat mization ion tasks tasks with with VBS VBS
•
Know Know opt option ions s for for homin homing g in in on erro errors rs
SITRAIN Train Trainin ing g for for Automation Automation and Industrial Industrial Solutions Solutions
Page 3
ST-BWINCCS Scripts
Historical
At the start of the 70s C was developed by Dennis M. Ritchie at the Bell Laboratories. This development is closely associated with the dev elopment of the UNIX operating system with over 95% of it written in C. Over the course of t ime, C has devel oped into a separate programming language independent of the operating system. In 1988 the ANSI committee comm ittee X3J11 X3J11 published a language description for C and in December 1989 it was standardized by ANSI.
Advan Ad van tag es
C combines the power of an assembler language with the conv enience of a high-level programming language: - Contain Contains s the memory memory propert properties ies and and const construc ructs ts of other other programming languages such as block structures, pointers etc. - Progra Programming mming directly directly for the the hardw hardware are is possib possible le - Suita Suitable ble for for time-cr time-criti itica call appli applica catio tions ns - Suita Suitable ble for syst system em pro progr gramm amming ing - Univer Universa sally lly usab usable le langu languag age e - Small mall lan language - Func Functio tiona nally lly simpl simple e to expan expand d
SITRAIN Train Trainin ing g for for Automation Automation and Industrial Industrial Solutions Solutions
Page 4
ST-BWINCCS Scripts
WinCC
The data types for a WinCC tag are specified in the tag management. See the figure top right
C data types
The data types in the C programming language are defined differently. Some of these definitions originate from the ANSI C programming language: e.g. char, short, long, etc. Other data types are additionally defined in WinCC. These are, however, only ali as names for the actual data types. Examples: BOOL, SHORT, UINT, etc.
Table
In the table abov e, the assignment of W inCC tag types and the C tag types along with their ranges of v alues can be seen.
SITRAIN Training for Automation and Industrial Solutions
Page 5
ST-BWINCCS Scripts
Note
The list of operators is not complete. Nor is complete help on ANSI C part of the WinCC documentation. For beginners, it is therefore recommended that they purchase a specialist book on ANSI C.
SITRAIN Training for Automation and Industrial Solutions
Page 6
ST-BWINCCS Scripts
Conditi onal statement With the if statement an instruction can be executed depending on a condition. In the example on the left (1), simply the color value for red is returned if the speed is higher than 1300. If this is not the case, the program continues with the next line. In the example (2) an if-else if-else instruction is shown. In the example (3), two if instructions are nested. If sev eral instructions need to be executed in the TRUE branch or F ALSE branch, this instruction block must be placed in curly brackets (see else branch). Global color scheme If the color of an object needs to be changed statical ly or dynamically, this works only if the property "Global color scheme" is turned off . Otherwise the global settings of the colors are used.
SITRAIN Training for Automation and Industrial Solutions
Page 7
ST-BWINCCS Scripts
C scripts
If a task, f or example, cannot be solved with a simpler dynami zation option (e.g. Dynamic dialog or direct connecti on), a C script or a VB script makes sense. To use this, the object to be dynamized must first be selected. "C Acti on" can then be selected in the shortcut menu. In this way the C editor can be started. Every program begins with "{" and ends with "}". Within the two outer curly brackets, the required C program code can be inserted. Comments are automatically shown in green. The comm ents shown abov e are inserted automatically in every new C script. Their significance is explai ned later.
Event
If a C action is configured for an event, the stored action is represented by agreen lightning symbol . If the C action has not yet been compil ed, thelightning symbol is s hown yellow.
SITRAIN Training for Automation and Industrial Solutions
Page 8
ST-BWINCCS Scripts
Toolbar
The toolbar provides other options apart from the known options such as "Copy".
Compiling
Once a program code has been entered, this needs to be compiled. If you attempt to close the editor without hav ing compiled you will automatically be asked about it. An uncompiled C script is ignored in runtime.
Trigger
If the C script is linked to a mouse click ev ent (Events tab), no trigger can be defined. A trigger can only be defined for cyclic C scripts (in the Properties tab). With a cyclic C script, for example more complex color changes can be made.
Browser
With the tag or picture name browser, it is possible to search for a name and to adopt this text in the program. This helps to av oid typing errors.
SITRAIN Training for Automation and Industrial Solutions
Page 9
ST-BWINCCS Scripts
Reading/writing WinCC tags A typical task is to read or write one or more WinCC tags. For a binary tag, there are the commands GetTagBit() and SetTagBit(). W ith the read command only the tag name is transferred as the parameter. As the return value, the current value of this tag is returned. When writing, two parameters are required: the tag name and the v alue to be written.
SITRAIN Training for Automation and Industrial Solutions
Page 10
ST-BWINCCS Scripts
Changing graphics objects in runt ime Another typical task is to change graphics objects depending on process tags. In WinCC almost all properties can be dynamized: e.g. background colors, line color, X position, visibility, size, f ill level, ... To do this, there are numerous corresponding C functions for reading out the current status (e.g. GetBackColor()) or for changing the status (e.g. Set GetBackColor()). For further examples see above. Apart from these very concrete functions, there are also functions that are kept general that can also be used for reading out and changing: SetPropertyBOOL(), SetPropertyWord(), …
SITRAIN Training for Automation and Industrial Solutions
Page 11
ST-BWINCCS Scripts
Troubleshooting in C scripts For testing C scripts, WinCC provides an Appl ic ati on w in do w -> Glo bal Sc ri pt -> GSC Diagno st ic s This is inserted in a picture. As of this point in time, all printf functions from all C scripts are output in the application window. The printf command is part of the ANSI C library and has the following syntax e.g. printf( “\r\n Value1: %d“, temp); %d is a placeholder for integral values, this is replaced during runtime by the current value of temp. This makes it simple to troubleshoot.
SITRAIN Training for Automation and Industrial Solutions
Page 12
ST-BWINCCS Scripts
Error message
Syntactical errors are automatically reported by the C editor in the Graphics Designer. Runtime errors, on the other hand, are only detected during runtime. Example: The name of a tag has been written incorrectly. In the example above, a runtime error is found and reported in the diagnostics window. The precise location of the problem is shown: szApplicationname: PDLRuntimeSystem => corresponds to Graphics Runtime bCycle: acycle => acyclic, in other words not cyclic, for example mouse click lpszPictureName: START.WORK_PIC:SCRIPT => In the Start.pdl there is a picture window WORK_PIC and there the picture SCRIPT.PDL is shown in which an error has occurred. lpszObjectName: Button16 => The graphics object inv olved is "Button13" szErrorText: Tag not found => tag was not found szTagName: "S7 program(1)/User.Speed_set999" => Name of the tag
Tip
When the picture has been opened, you can search for the object directly at the top left :
SITRAIN Training for Automation and Industrial Solutions
Page 13
ST-BWINCCS Scripts
Effective writing of C scripts Copy / Paste
As in most editors it is also possible to work here with Copy and Paste.
Calling C functions To avoid typing errors e.g. with Wi nCC tag names (these are case sensitive!), an aid can be used. 1. To do this, first search for the C function in the tree structure. The function GetTagSWord is located for exam ple in Internal functions/tag/get. 2. By double-clicking on the function name GetTagSWord the parameter assignment dialog opens. The functi on above requires only one parameter: the tag name. 3. So that the tag to be read can be read with the tag browser, first click on the ".. ." button and then on "Tag selection". 4. Here, every WinCC tag can be selected. Then close the screens with OK. 5. As the result, you will see the functi on with the necessary parameters.
SITRAIN Training for Automation and Industrial Solutions
Page 14
ST-BWINCCS Scripts
Objective
Two new buttons need to be added to the Motor picture to adj ust the setpoint speed: "+100" and "-100". The calculation is made with a C action. For diagnostics, the "printf" command is used.
Exercise
1. Add two buttons with the texts "+100" and "-100" 2. For the button "+100" edit a C script for event/mouse click as shown in the picture above. Attempt to type in as little text as possible yourself, but rather use the parameter dialog (see prev ious page). 3. Add a "Global Script - Diagnose" window: Go to Smart Objects and select the Application Window object. After you hav e placed the object in a suitabl e size in the Motor picture, a box appears automatically in which you select "Gl obal Script". A further box then appears in which you select "GSC - Diagnose". Finally, go to the properties to the Miscellaneous group and there set all the pr operties (Sizeable, Movable, Border etc.) to Yes. As a result a toolbar is shown in runtim e. 4. Test the function in runtime. 5. Copy the "+100" button and adapt t he labeling and the C script so t hat the "100" function is executed.
SITRAIN Training for Automation and Industrial Solutions
Page 15
ST-BWINCCS Scripts
Objective A speed indicator is to be added to the Motor picture. This should be green in the normal situation, with high speeds (higher than 1300 revolutions per minute) it should be red. As an exercise, this simple task will be solved with a C script. Exercise
1. Add a circle to the Motor.pdl picture. 2. Add the C script above to the object properties in the Properties tab under Colors/ Background Color. 3. Start Runtime and test the f unctionality. When doing this, note the output of the printf () commands in the diagnostics window. How often are these output? 4. Change the trigger to 2 seconds. How often are the printf() commands output now? 5. Change the trigger to t ag trigger with the tag "S7- Program/User.Speed_set" and a cycle of 1 second. How often are the printf() commands output now?
SITRAIN Training for Automation and Industrial Solutions
Page 16
ST-BWINCCS Scripts
Tags in actions Tags in actions can only be found and replaced by the Cross Ref erence if the predefined confi guration rules for tags and pictu re names are kept to in the C scripts. Note
The configuration rules are taken i nto account by the Dynamic Wi zards when the scripts are generated. When creating C scripts, a comment allows the configuration rule to be recognized. You will find further information in the onli ne help of the WinCC Information system, Index tab, keyword: Cross Reference
. The configuration rules can also be generated with the WinCC Cross Reference Assistant. The WinCC Cross Reference Assistant is a tool that searches for scripts according to picture names and tags and it extends the scripts so that the WinCC component Cross Reference finds the picture names and tags and enters them in the cross reference list.
SITRAIN Training for Automation and Industrial Solutions
Page 17
ST-BWINCCS Scripts
Tags in actions Tags in actions can only be found and replaced by the Cross Ref erence if the predefined confi guration rules for tags and pictu re names are kept to in the C scripts. Note
The configuration rules are taken i nto account by the Dynamic Wi zards when the scripts are generated. When creating C scripts, a comment allows the configuration rule to be recognized. You will find further information in the onli ne help of the WinCC Information system, Index tab, keyword: Cross Reference
. The configuration rules can also be generated with the WinCC Cross Reference Assistant. The WinCC Cross Reference Assistant is a tool that searches for scripts according to picture names and tags and it extends the scripts so that the WinCC component Cross Reference finds the picture names and tags and enters them in the cross reference list.
SITRAIN Training for Automation and Industrial Solutions
Page 18
ST-BWINCCS Scripts
Introduction
What is Visual Basic? The "Visual" part of the name refers to the method for creating graphical user interf aces. Instead of writing innumerable program lines that specify the appearance and the position of user interface elements, simply move preassembled objects to the required locat ion by dragging them. The "Basic" part of the name refers to the language BASIC (Beginners All-Purpose Symbolic Instruction Code). Visual Basic was devel oped from the original BASIC and today contains several hundred instructions, functi ons and keywords many of which relate directly to the W indows user interf ace. By learning a few keywords, beginners can create practical applicat ions. At the same time due to its performance, the language allows professionals to implem ent everything that can also be developed with all other W indows programming languages.
Appl ic ati on
The Visual Basic programming language can not only be used for Visual Basic. The Visual Basic for Applic ations (VBA) in Microsoft Excel, Microsoft Access and in many other W indows applications uses the same language. VBA was developed to automate software applications. The Visual Basic prog ramming system Scripti ng edition (VBScript) for programming the Internet. VBA and VBS are a subset of the Visual Basic language.
VB in WinCC
In WinCC both VBS and VBA are used. For VBS, a separate editor was developed. For VBA scripts, the Microsoft Visual Basic Edit or is used.
SITRAIN Training for Automation and Industrial Solutions
Page 19
ST-BWINCCS Scripts
VBS and VBA in t he WinCC environ ment VBA is used in W inCC Configuration during the configuration in order to adapt the Graphics Designer to your indiv idual requirements and to simplify and automate configuration. VBA programs only run in the configuration environment of WinCC. In contrast to VBA, VB scripts onl y run in W inCC Runtime and allow you access to graphics objects and tags there. O bjects and pictures can be neither created nor modified on a permanent basis in VBS, in c ontrast to VBA. The main language-related differences between VBA and VBS are e.g.: + VBS was developed for use in the Internet, VBA for the automation of software applications + The data type of VBS tags is always VARIANT. VBA on the other hand distinguishes the individual data types such as INT, DOUBLE, STRING etc. + Certain language constructs from VBA have been removed from or added to VBS. + Errors are handled differently in VBS compared to VBA.
SITRAIN Training for Automation and Industrial Solutions
Page 20
ST-BWINCCS Scripts
VBA
You can use VBA to expand the f unctionality of the Graphics Designer and to automate configuration. A VBA editor is av ailable in the Graphics Designer which you can use to automate the configuration of pictures - and other tasks. The VBA editor is identical to the products from the Microsoft Office family. Although an editor for macros was only implemented in the WinCC editor Graphics Designer, the possibilities extend way beyond the possibiliti es of the Graphics Designer, for example in the VBA scripts, new tags can also be created in the WinCC project. In VBA, it is also possible to create your own m enus in the Graphics Designer. Unfortunately this topic is not consolidated in t he system course, only in the extended course.
SITRAIN Training for Automation and Industrial Solutions
Page 21
ST-BWINCCS Scripts
VBA
VBA provides the option of automati ng engineering tasks in the WinCC Graphics Designer e.g. creating user-defi ned menus and toolbars. Creating and processing standard objects, smart objects and W indows objects. Accessing products that support VBA. Configuring actions for pictures and objects etc.
VBS
The VBS scripts are based on the Microsoft Scripting host that is installed in every Windows 2000, Windows XP and W indows ME system. e.g. configuring the setting of setpoints for t ags with the manipulation of a graphics object. Making the switchover of the runt ime language dependent on the manipulation of a graphics object. Configuring changes of color, e.g. cyclically (flashing) or displaying statuses (motor on). Transferring data to other applications (e.g. Excel, W ord, Access). Starting external applications from WinCC etc.
·
SITRAIN Training for Automation and Industrial Solutions
Page 22
ST-BWINCCS Scripts
Object model
The WinCC object model of the graphic runtime system allows, for example, access to graphics objects and tags in runtime. The object model is described in t he WinCC help.
Objects
With the objects and lists you have access to all the objects in the graphic runtime systems: graphics objects, pictures, layers and t ags.
Properties
The properties of the indi vidual objects can be used to modif y specific graphics objects and tags at runtim e, for example enabling an operating element with a mouse click or triggering a color change when a tag v alue changes.
Methods
Methods that are applied to i ndividual objects can be used, for exampl e, to read tag values for further processing or display diagnostics messages at runtime. e.g. + HMIRuntime.Stop + HMIRuntime.Trace "Customized error message" + Expression.Write [Value] + Expression.Read + etc.
Examples of VBS
Apart from examples directly for WinCC such as reading and writing tags, here you will find further examples: + Access to MS Excel + Access to any SQL database + etc.
SITRAIN Training for Automation and Industrial Solutions
Page 23
ST-BWINCCS Scripts
Note
The list of operators above is not complete. You will find further information in the WinCC help.
SITRAIN Training for Automation and Industrial Solutions
Page 24
ST-BWINCCS Scripts
Conditi onal statement With the if statement an instruction can be executed depending on a condition. In the example on the left, simply the color value for red is returned if the speed is higher than 1300. If this is not the case, the color value green is returned. The right-hand example shows an if-elseif-else statement. If the first condition is met, the color becomes red. Only if this is not the case is the second condition queried. This then decides about the color y ellow or green. Global color scheme If the color of an object needs to be changed statical ly or dynamically, this works only if the property "Global color scheme" is turned off . Otherwise the global settings of the colors are used.
SITRAIN Training for Automation and Industrial Solutions
Page 25
ST-BWINCCS Scripts
VB Scripts
If a task, f or example, cannot be solved with a simpler dynami zation option (e.g. Dynamic dialog or direct connecti on), a C script or a VB script makes sense. To use this, the object to be dynamized must first be selected. "VBS Action" can then be selected in the shortcut menu. In this way the VBS edit or can be started. Every program must be inserted between the first line (Sub .. .) and End Sub. Comments begin with a single quote at the start of the line and are automatically displayed green.
Event
If a VBS action is configured for an event or a property, the stored action is represented by a blue lightning symbol .
SITRAIN Training for Automation and Industrial Solutions
Page 26
ST-BWINCCS Scripts
Toolbar
The toolbar provides other options apart from the known options such as "Copy".
Syntax check
Here, the syntax can be checked m anually. When the editor is closed with OK, t his check is made automatically. Only if an error is detected, is it reported and the editor remains open. This means that no scripts with errors can be saved. If an error cannot be corrected immediately, temporary commenting out of the problem area is recommended.
Trigger
If the VB script is linked to a mouse click event (Events tab), no trigger can be defined. A trigger can only be def ined for cyclic VB scripts (in t he Properties tab). With a cyclic VB script, for example more complex color changes can be made.
Browser
With the tag or picture name browser, it is possible to search for a name and to adopt this text in the program. This helps to av oid typing errors. The extended tag browser will be explained later.
SITRAIN Training for Automation and Industrial Solutions
Page 27
ST-BWINCCS Scripts
Reading/writing WinCC tags A typical task is to read or write one or more WinCC tags. Above, two options are shown. In the top example a tag is declared with Dim Speed. With the following line, this is referenced with an object and therefore linked to a concrete WinCC tag. Afterwards, all properties and methods (Read and Write) related to this WinCC tag in other words with Speed.Read the current value of the WinCC tag is read in and stored in the Speed.Value property. After the calculations, the value in the Speed.Value property is written to the WinCC tag with Speed.Write. The bottom example shows simple writing.
SITRAIN Training for Automation and Industrial Solutions
Page 28
ST-BWINCCS Scripts
Changing graphics objects in runt ime Another typical task is to change graphics objects depending on process tags. In WinCC almost all properties can be dynamized: e.g. background colors, line color, X position, visibility, size, f ill level, ... To do this, in VBS an object reference to the required graphics obj ect is created first. Following this, it is v ery easy to access all properties e.g. with oPoly.Backcolor . For further examples see above.
SITRAIN Training for Automation and Industrial Solutions
Page 29
ST-BWINCCS Scripts
Trace
Similar to the printf() command in C scripts, a simi lar command can also be used in VBS. HMIRuntime.Trace The trace output is made in the same object as with the C scripts (Global Script Diagnose). Character strings and also tags are simply linked by a &. The constant vbCrLf stands for Carriage Return and Line Feed and produces a new line. This Trace command can, for ex ample, be used to output interim results of an extensive calculation or to check whether a certain branch in an IF-Then-Else structure is run through.
SITRAIN Training for Automation and Industrial Solutions
Page 30
ST-BWINCCS Scripts
Error message
Syntactical errors are automatically reported by the VBS editor in the Graphics Designer. Runtime errors, on the other hand, are only detected during runtime. Example: The name of a tag has been written incorrectly. In the example above, a runtime error is found and reported in the diagnostics window. The precise location of the problem is shown: Application: PDLRT => corresponds to Graphics Runtime Picture: Script.pdl_Events => the picture name is script.pdl, Ev ents means that the problem is with the ev ents (e.g. mouse click). Script.pdl_Triggers would mean that the problem is at the properties and (cyclic scripts). Function: Sub Button14_OnLButtonDown => The first part of the name corresponds to the name of the obj ect in the WinCC picture (here Button_14), the second part shows the event (OnLButtonDown corresponds to press mouse click/left). Line: 3 => line in the VBScript Error : … => brief error description
SITRAIN Training for Automation and Industrial Solutions
Page 31
ST-BWINCCS Scripts
Microsoft debugger You can use the "Microsoft Visual Studio 2008" debugger to test your VB scripts in Runtime. The debugger is installed during setup of the SQL Server. It provides options such as the setting of breakpoints and the line by line execution of VB scripts. The debugger can be started manuall y at any time. As an alternativ e it can also be started automatically if an error occurs (this does, however, need to be enabled in the WinCC Explorer in the properties of the computer). Logical errors are best detected with a debugger. Example: The condition of an if instruction was incorrectly formulated. Procedure
Start the debugger e.g. manuall y. Then create a new project in the Vi sual Studio. In the menu "Debug/ Attach to Process..." connect either pdlrt. exe (Graphics Runtime) or gscrt.exe to the required process (with global script actions). In the Solution Explorer (see above, there are two threads under PDLRT: Script.pdl_Triggers (here, cyclic VB scripts are executed, e.g. a more complex color change) and Script.pdl_Events (here the events of the picture Script.pdl are processed, e.g. a mouse cli ck on a graphics object). By double cli cking on one of these lines, the source codes of all VB scripts of this picture are displayed. In the example above, a breakpoint (red point at the left margin) was set in the procedure Circle3_BackColor_Trigger (Circle3 = name of t he graphics object, BackColor = name property, Trigger = cycli c VB script). Via the menu Debug/Step Ov er or with F10 the script can be executed line by line. The line with the yellow background will execute with the next F10 command.
Caution
If a VB script is stopped, other VB scripts are not executed but entered in a queue.
SITRAIN Training for Automation and Industrial Solutions
Page 32
ST-BWINCCS Scripts
IntelliSense
If an object is given a period, a list with the properties and methods of this object opens automatically. This is therefore an aid t o completing a source code.
SITRAIN Training for Automation and Industrial Solutions
Page 33
ST-BWINCCS Scripts
As can be seen from the example above, it is possible to create a source code quickly and without typing errors. Further tips follow on the next pages.
SITRAIN Training for Automation and Industrial Solutions
Page 34
ST-BWINCCS Scripts
Tag browser
This can insert the tag name in a source code.
Extended tag browser This dialog adds two lines to the source code. In the first it declares a tag and in the second it links this tag with an object reference to a W inCC tag.
Other browsers
The other browsers can be used to adopt picture names and graphics object names in the source code free of errors.
SITRAIN Training for Automation and Industrial Solutions
Page 35
ST-BWINCCS Scripts
Code template
By double-clicking on one of the code templates, the "framework" of this construction is inserted. This then needs t o be filled in manually or adapted.
SITRAIN Training for Automation and Industrial Solutions
Page 36
ST-BWINCCS Scripts
Objective
Two further buttons need to be added to the Motor picture to adj ust the setpoint speed: "+ 20%" and "- 20%". The calculation is made this time with a VB script. For diagnostics, the "HMIRunti me.Trace" command is used.
Exercise
1. Add two buttons with the texts "+20%" and "-20%" 2. For the button "+20%" edit a C script for event/mouse click as shown in the picture above. Attempt to type in as little text as possible yourself, but rather use the aids provided by the VBS editor (see previ ous pages). 3. The "Global Script - Diagnose" window still exists from the previous exercise and can also be used f or the VB scripts. 4. Test the function in runtime. 5. Copy the "+20%" button and adapt the label ing and the VB script so that t he "20%" function is executed.
SITRAIN Training for Automation and Industrial Solutions
Page 37
ST-BWINCCS Scripts
Objective A second speed indicator is to be added to the Motor picture. However this time, the solution will be achieved with a VB script. This is green in the normal situation, with high speeds (higher than 1300 r evolutions per minute) it should be red. Exercise
1. Add a circle to the Motor.pdl picture. 2. Add the VB script above to the object properties in the Properties tab under Colors/ Background Color. Use the tag trigger. 3. Start Runtime and test the functionality.
OPTIONAL 4. Start the debugger and t hen set a breakpoint in the l ine "Speed.Read". Then have the script executed line by line to check which branch of the if loop is run through.
SITRAIN Training for Automation and Industrial Solutions
Page 38
ST-BWINCCS Scripts
Tags in VBS action s The CrossReference from W inCC can be used to quickly fi nd all the places of use of tags and picture names, even in VBS actions. Tags in actions in the G raphics Designer can be "linked" using CrossReference, i.e. replaced by other tags at all or selected points. Configuration rules for VBS scripts All tags that you address with the standard formulation HMIRunti me.Tags(" tag name") are automatically detected by the CrossReference of W inCC and then listed in the picture properties. If tags are addressed with diff erent formulations in your code, you can make this known by the following section of the CrossReference: ' WINCC:TAGNAME_SECTION_START Const TagNameInActi on = "TagName" ' WINCC:TAGNAME_SECTION_END Note
Between the single quote W INCC, there must be a space! All the pictures which are addressed with the standard formulation HMIRuntime.BaseScreenName("Screenname") are automatically detected by the CrossReference of W inCC and then listed in the picture properties. If pictures are addressed with diff erent formulations in your code, you can make this known by the f ollowing section of the CrossReference: ' WINCC:SCREENNAME_SECTION_START Const ScreenNameInAct ion = " ScreenName" ' WINCC:SCREENNAME_SECTION_END
Note
Picture names must be written without the file extension ".PDL".
SITRAIN Training for Automation and Industrial Solutions
Page 39
ST-BWINCCS Scripts
VBS action s With VBS actions, very extensive actions, checks and queries can be processed. Configuration VBS actions can be used where the direct connection to indivi dual tags is not adequate or several properties need to be changed at the same time. With the aid of the VBS actions, the user has complete access to all available object properties and tag contents from WinCC. Function procedures To group repeating or often used functions, procedures can be used. Functions normally have a return value. Sub proc edures A sub procedure is a code block that is executed as a reaction to an event and does not supply a return value. Local scrip t variables Local script variables must be defined by the Dim, Priv ate or Public statement and only apply within the VBS action. Picture-specific sc ript variables In the declaration area of the action window, picture-specif ic variables can be declared.
SITRAIN Training for Automation and Industrial Solutions
Page 40
ST-BWINCCS Scripts