02-09-2007 08:42 AM
02-12-2007 05:24 PM
02-14-2007 07:09 AM
Mike,
Thanks for the response. It would indeed be convenient to be able to run the mass configuration utility on objects in a tab, since moving everything out of a tab and back into it kills the front-to-back orientation of all of the controls, i.e. objects that were in the background might now be in front of objects, obscuring other objects, etc.
However, this is not the main problem I am having, as you have surmised.
The project is indeed upgraded from a previous LabVIEW 7.1 project utilizing DSC As part of the upgrade, I replaced all of the legacy DSC reads and writes to utilize shared variables, and removed a large chunk of code that handled the FieldPoint I/O (using the FP open/create tag/etc) to now utilize shared variables bound to I/O via the Fieldpoint OPC server. I also obviously am using the LabVIEW project approach now to support all of the changes.
Because of the way the application works (I can attach source code it it helps), I am using a lot of individual datasocket reads and writes to access tags that are bound to the FP OPC Server. I am just using the datasocket read and write VIs and am directly attaching the shared variable tag name to it, without DS open/close VIs. I have a hundred or more of these in the program. Prior to 8.2, I was using DSC reads and writes to perform the same functionality.
The slowdown problem I am experiencing is actually twofold: first, editing the block diagram has become unacceptably slow, and just moving a wire might take 5 seconds. You can imagine how frustrating this can be. The second slowdown that I am experiencing is that the performance of the running program is degraded, I think due to the datasocket reads and writes. For example, the fastest I can get the main loop to update now is about .25 seconds, while before I was getting update times in the low tens of milliseconds. Because many PID loops and other controls in the program require fast update times, .25 seonds is not good. Additionally, it might take 30 seconds or more for the initial program pass to perform the first read/write to the tags and intialize everything in the program.
To answer your other questions:
1) This behavior does not exhibit itself when creating a new vi. As a test, I created a blank vi in the same project and dropped 50 or so shared variables on the front panel and block diagram, with no noticeable slowdown.
2) I somehow assumed that the problem was related to the shared variables in the diagram. I don't know why this assumtion was reached. Perhaps 8.2 has a different method of error checking that is causing the problem... I really don't know.
3) As a final note, the slowdown problem is significantly improved when the VI is opened alone (without the project being open). However, this does not help much, as I need the ability to work with the shared variables.
I would appreciate any help you can give. I have not yet opened a service ticket for this, but can do this if you think it will help. I attached the program (with some proprietary information removed per my customer's request).
Thanks,
Michael Hampson
XL Automation, Inc.
02-15-2007 11:14 PM