Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations KootK on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

VB for WinCC question 1

Status
Not open for further replies.

Fritzfrederix

Chemical
May 28, 2003
63
Hi there,

I'm relative new to VB, I got a small problem. I'm using WinCC with VBS, it's something like VBA in excel.

I've got one variable called Dummy, this var can contain three conditions namely 1,2 and 4. If it contains 1 then a tekst (Press 3)should be displayed in var Test and so on.
In fact it's a selection of 3 radio buttons, it depends on which button is clicked which tekst should be displayed.

I wrote the following code

Sub OnLButtonDown(ByVal Item, ByVal Flags, By Val x, By Val y)

Dim dummy, Test

Set Dummy = HMIRuntime.Tags(“Dummy”)
Set Test = HMIRuntime.Tags(“Test”)

If Dummy = 1 Then Test = (“Pers3”)
Else
If Dummy = 2 Then Test = (“Pers4”)
Else Test = (“Pers5”)
End IF
End IF
End Sub

What am I doing wrong ?
 
Replies continue below

Recommended for you

First thing I notice is that you are comparing an object to a value. The Set command indicates you are setting an object. Objects can not be compared to values. You may have to access a property of the object to compare it to.

Set Dummy = ...
If Dummy = 1 - Probably causing problem

Maybe something like
Dummy.Value, Dummy.Count, ...?

DimensionalSolutions@Core.com
While I welcome e-mail messages, please post all thread activity in these forums for the benefit of all members.
 
DSI,

Perhaps something like

Dim Dummy
Dummy = HMIRuntime.Tags(“Dummy”).value

?
 
That may work.

Also, if Test is an object, you'll have to define it using the Set method.
Code:
Sub OnLButtonDown(...)

Dim dummy, Test

  Set Test = HMIRuntime.Tags(“Test”)

  Dummy = HMIRuntime.Tags(“Dummy”).value 
  If Dummy = 1 Then 
    Set Test = HMIRuntime.Tags(“Pers3”)
  ElseIf Dummy = 2 Then 
    Set Test = HMIRuntime.Tags(“Pers4”)
  Else 
    Set Test = HMIRuntime.Tags(“Pers5”)
  End IF
End Sub
Unfortunately, I don't have WinCC, so I'm just grabbing at straws.

DimensionalSolutions@Core.com
While I welcome e-mail messages, please post all thread activity in these forums for the benefit of all members.
 
The advice by others is absolutely correct.
You need to use the .read and .write properties as follows...


Set Dummy = HMIRuntime.Tags(“Dummy”)
Set Test = HMIRuntime.Tags(“Test”)

If Dummy.read = 1 Then Test.write = (“Pers3”)
Else
If Dummy.read = 2 Then Test.write = (“Pers4”)
Else Test.write = (“Pers5”)
End IF
End IF
End Sub


I hope that this gets you away.


Regards

Dean
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor