8/1/2014 10:25 AM | |
Joined: 10/3/2010 Last visit: 9/27/2024 Posts: 1562 Rating: (191) |
WinCC v7.0 SP3 on my screen, an I/O-field with OutputValue linked to an internal tag also has an OnChange Event on the OutputValue Property. Is it possible to trigger that OutputValue_OnPropertyChanged-event from another object on the screen. I know that this can be done by global script but in this case, I would like to avoid a global script. |
Last edited by: SteBo at: 8/1/2014 6:57 PMChanged title to Solved B r g d s , |
|
8/1/2014 6:56 PM | |
Joined: 10/3/2010 Last visit: 9/27/2024 Posts: 1562 Rating: (191) |
Gärchla I don't need to know if the tag has changed or not, I just need to trigger the script as configured on the OutputValue OnChange event, even if the OutputValue has not changed. Meanwhile, we found the solution, you can trigger onchange events of other object, even if the original object didn't have a change: add following line in a VBScript on mouseclick event of a button ObjektName_PropertyName_OnPropertyChanged and replace ObjektName with the name of the original object replace PropertyName with for example OutputValue to get something like: IOField1_OutputValue_OnPropertyChanged IOField1, value and don't forget to add the same parameters as in the orignal script. Issue solved! |
Last edited by: SteBo at: 8/1/2014 6:57 PMB r g d s , |
|
This contribution was helpful to2 thankful Users |
6/28/2016 7:41 AM | |
Posts: 291 Rating: (69) |
Dear SteBo, Could you please advise me ~ how to trigger an OnClick Event of a button object locates in another picture within a PictureWindow? I have tried activating the screen of the picture in advance. But the following code was executed with error saying "Type mismatch" or "Get_item para error" in RT! Objects in the same picture will be triggered properly. [e.g.]================================= 'Objects in the same picture will be triggered properly. 'But I just couldn't trigger the event of an object in the parent PictureWindow. Dim TreeView1 Set TreeView1 = Item.parent.parent.parent.ScreenItems("TreeView1") TreeView1.Nodes.Item("EL").Selected = True 'This line helps me to make sure it works so far. TreeView1_Click TreeView1 'executed with error ==> "unknown object" Configuration_Setting.pdl_Events.TreeView1_Click TreeView1 'executed with error ==> "Type mismatch" ================================= Please take a look at the attachment. Any advice will be much appreciated!! Thanks & regards, P.S.: Dear SteBo, Just an information for you, I just took an advantage of an internal tag to trigger the object event in the same picture. still wondering how to trigger object event across pictures/screens without an intermedium tag.
|
Last edited by: Komi at: 6/28/2016 9:50:34 AMLast edited by: Komi at: 6/28/2016 9:53:50 AMLast edited by: Komi at: 6/28/2016 9:59:45 AM |
|
6/28/2016 11:27 AM | |
Joined: 10/3/2010 Last visit: 9/27/2024 Posts: 1562 Rating: (191) |
Dear Komi, I was about to reply with the internal tag alternative. I'm trying your request but can't get it right now. Somehow funny because you are the VBA/VBS expert to me ;-) |
B r g d s , |
|
This contribution was helpful to1 thankful Users |
6/28/2016 6:43 PM | |
Joined: 9/19/2009 Last visit: 9/25/2024 Posts: 459 Rating: (85) |
Hi The only way I was successful to do it without any tag is if you create in the Picture Windows (pdl) and your Image (pdl) Procedures or Function. So you will be able to call the procedure or function. Not is the best way to do it, but if you have multi Project and every client must run diferents images (pdl) work fine. sorry for my english... Option Explicit Sub ClickButton(Byval NameItem, Byval NamePdl) Dim Btn Set Btn = HMIRuntime.Screens(NamePdl).ScreenItems(NameItem) Btn.BackColor = RGB(250,0,0) End Sub Sub OnClick(ByVal Item) ClickButton "Button","Start.VI:VentanaImagen" End Sub
|
If my answer help you, use the Thanks or Rate Button, It is free of charge :-) |
|
6/29/2016 12:56 PM | |
Joined: 9/19/2009 Last visit: 9/25/2024 Posts: 459 Rating: (85) |
Hi Komi It is a pleasure try to help you!!! I have learnt a lot from you :-) Please see the attachment, I don´t have a Global Script, only procedures or function inside the pdl you need. When I tried to run my Script works perfectly, if you are request data from database and this task requiere a few seconds, this is what I have done. If you have two buttons, then you can use this code: Item.Operation = false item.Parent.Parent.Parent.ScreenItems("Button2").Operation = False or HMIRuntime.Screens("Main:VI.PictureWindowspdl").ScreenItem(Button).Operation = False .... Your Code ... Item.Operation = True This way, only one Script take the ActiveX Control. For me works perfectly and I don´t have any error about memory or resources Feel free to tell me exactly what is your task, and I will try to do it. By the way, my english isn´t very good :-( Best Regards
|
If my answer help you, use the Thanks or Rate Button, It is free of charge :-) |
|
This contribution was helpful to1 thankful Users |
6/29/2016 3:36 PM | |
Joined: 9/19/2009 Last visit: 9/25/2024 Posts: 459 Rating: (85) |
Hi Komi I believe I found a trick, please see the attachment |
If my answer help you, use the Thanks or Rate Button, It is free of charge :-) |
|
This contribution was helpful to1 thankful Users |
Follow us on