jgcode Posted April 26, 2011 Report Share Posted April 26, 2011 I was wondering want people's thoughts are on the behaviour of the Shared Variable Value Change Event. If this variable is written to on e.g. a RT target then it will cause a Value Change Event. In this case, as the program loops it updates all variables, with the latest data. In the video you will see that the value of the ALARM WORD does not change (stays as zero) however, an event is still fired. The problem is that this was happening for a large number of variables (500-1000+) and seemed to be stressing out the Variable Engine (even causing it to crash). Now the behaviour seems correct compared to doing the same thing with a e.g. ValSig node on a simple BD. But for Network Comms I don't see the point in the Event occurring if the value has not updated but has just been written too with the same value. Regardless, (assuming that there is not one already???) do you think there should be an option to filter this behaviour? We ended up doing the filtering in the code on the RT side, but a configuration option would be cool. Cheers -JG <object id="scPlayer" width="1168" height="711" type="application/x-shockwave-flash" data="http://content.screencast.com/users/jgcode/folders/LabVIEW/media/d8bb4fe1-a57c-47c1-989c-b80b42238d3c/bootstrap.swf" > <param name="movie" value="http://content.screencast.com/users/jgcode/folders/LabVIEW/media/d8bb4fe1-a57c-47c1-989c-b80b42238d3c/bootstrap.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#FFFFFF" /> <param name="flashVars" value="thumb=http://content.screencast.com/users/jgcode/folders/LabVIEW/media/d8bb4fe1-a57c-47c1-989c-b80b42238d3c/FirstFrame.jpg&containerwidth=1168&containerheight=711&content=http://content.screencast.com/users/jgcode/folders/LabVIEW/media/d8bb4fe1-a57c-47c1-989c-b80b42238d3c/LV_2010_-_DSC_-_Shared_Variable_Events_Issue.swf&blurover=false" /> <param name="allowFullScreen" value="true" /> <param name="scale" value="showall" /> <param name="allowScriptAccess" value="always" /> <param name="base" value="http://content.screencast.com/users/jgcode/folders/LabVIEW/media/d8bb4fe1-a57c-47c1-989c-b80b42238d3c/" /> Unable to display content. Adobe Flash is required. </object> Quote Link to comment
viSci Posted April 26, 2011 Report Share Posted April 26, 2011 Did you setup your SV event to ignore timestamp changes? 2 Quote Link to comment
PaulL Posted April 26, 2011 Report Share Posted April 26, 2011 I was wondering want people's thoughts are on the behaviour of the Shared Variable Value Change Event. Well, there are times when we want to see an event when the variable has a new instance of the same value. A simple example immediately comes to mind: Latched Boolean on View: The View sends a true value for this button each time the user clicks it. So, the user might click Start, do stuff, stop, and then click Start again. The Start shared variable has a value of True in both cases, but the controller needs to know the user clicked the button again. (There are other ways to do this but this is about the simplest we have found.) Similarly, we might have the same situation when we send a setpoint. The controller may use an old or default setpoint until it receives a new value, which perhaps only occurs upon user demand. It is entirely plausible that the user could send the same setpoint after starting the controller on two successive runs. We sometimes program publishers only to write certain data on first call or if the values have changed (it sounds like you did something similar). If you can only edit the subscribers, that won't help, of course, and you will have to do the filtering on the subscriber side, but currently that means after the event triggers. I think generally the given behavior of getting an event is correct, however. EDIT: OK, I just looked at what sachsm suggested. That could be what you are seeking. I admit I've never paid any attention to that option. I definitely learned another new thing today! Thanks! 1 Quote Link to comment
jgcode Posted April 26, 2011 Author Report Share Posted April 26, 2011 Thanks guys, I am definitely here to learn too, Did you setup your SV event to ignore timestamp changes? Where do I find this option? I can't see it in the Variable Properties Dialog? Quote Link to comment
PaulL Posted April 26, 2011 Report Share Posted April 26, 2011 Thanks guys, I am definitely here to learn too, Where do I find this option? I can't see it in the Variable Properties Dialog? It's an optional parameter on NI_DSC.lvlib:Request Value Change Notifications. 1 Quote Link to comment
jgcode Posted April 26, 2011 Author Report Share Posted April 26, 2011 It's an optional parameter on NI_DSC.lvlib:Request Value Change Notifications. Thanks! Was looking in the wrong spot Thats great. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.