Complex flashing with scripts

<< Click to Display Table of Contents >>

Navigation:  Examples > Object flashing >

Complex flashing with scripts

Previous pageReturn to chapter overviewNext page

If you have to change flash frequency depending on several tags you need to use scripts. For example you have 2 tags for every Pump object - State and Speed:

complexwithscriptstags

Depending on tag's values for every Pump object use flash frequency:

State

Speed

Flash frequency

0

Any

Not flashing

1

0...500

1000

1

500...1000

500

1

>1000

250

Let's create Motor graphical object for our example:

motorexample

We need intermediate tags to enable or disable object's flashing - Flash1, Flash2 and Flash3:

flashtags

Let's open Object properties window by double clicking on it:

motorpropertieswindow

And let's create user-defined property - Number and make it's equal 1:

complexudp

Close Collection window and click OK to Object properties window. Now reopen Object properties of the Motor and setup its Flash property. First we need to setup tag and bind it to Flash tag dependent on the User-defined property - Number. To do this click "..." and setup Tag name - Flash{Number}:

flashchoosetag

Flash property setup like in the picture:

flashproperty

Now we have to create Object type ST script with Execution type - OnDataChange:

stscriptforcomplexscript

Now open Object properties for our Motor object and click Script's collection and add our script:

stcollection

Now close Collection window and Object properties by clicking OK to confirm our changes. And now we can write our script:

flashscript

Now we have Motor with setup fill property by script. To copy this Motor and bind fill color property to tags - State2, Speed2 and State3, State3 you no need to setup script for every Motor you only have to duplicate Motor:

 

complexduplicate

And change Number property of the new Motor in the Property sheet:

complexpropertysheet

Click OK to confirm your changes and Run simulation to check your settings:

commonmulflashscript