07-13-2013 01:09 AM
I am using DDE as data exchange server. When i transmit data in bulk the DDE server VI closes and labview gives application error. If I reduce data the same vi works good. So is there any data limitations for DDE to send. Please take a look of screen shoots and suggest me possible solution
07-13-2013 03:13 AM
Your code look like it's still in LabVIEW 4.0. (No "stop if true" loop termination, weird tunnels and icons, etc). According to this page, DDE has been hidden from the palettes for a long time already). As such it might not be as up to date as it probably should be.
What is your current LabVIEW version and what is your current OS?
Who worte this code? There are some really weird code constructs, such as "equal TRUE", which is completely unecessary and just returns the original input, or a "Select" node with the same value wired to the top and bottom. From these indications, it looks like the program has not been professionally written and there could be many other things wrong. Note that we cannot see most of the code, because it is hidden inside deeply stacked sequence frames or case structures. No way to really analyze anything
How big is the "bulk data"? Do you have some numbers? What size works? What size doesn't?
07-13-2013 04:47 AM
I don't know who wrote this code. Code is old i used its function and build exe.The system is upgraded from labview 4 to labview 8.5 and windows 98 to windows xp SP3. VIs written in labview8.5 collect and send data to labview 4 exe name compare .exe and this exe communicate with 16bit shared libraries and then send answer back to labview 8.5 code. Now when LV8.5 VI send data through DDE to LV4 compare exe the LV4 exe shuts down with error. The total lentgh of string is 65544. When 65544 string and 4095 data number is passed to compare exe, the compare exe crashes. if i delete 14 bytes e.g A5A5 A5A5 A5A5 A5A5 A55A 5A5A 5A5A from main data the test get passed.
07-13-2013 06:07 AM - edited 07-13-2013 06:11 AM
The DDE functionality in LabVIEW has been written in LabVIEW 3 times (~18 years ago) and uses technology buried deep in Windows which relies on techniques written in Windows 3.0 times and ported just for the sake of compatibility to Windows 32 bit, nothing more. As such its implementation both in the Windows kernel and in the LabVIEW interface should be considerd highly legacy technology. DDE definitely never was intended nor designed for high speed, high throughput data transfer at all. Or lets say that a few kB per second was already very high throughput in those days but it definitely was not designed to transfer MBs of data through it.
This all combined with the fact that the DDE functionality is hidden both in LabVIEW and Windows for quite some time already and therefore rarely exercised and even more rarely looked at makes that this technology is basically something that either works for your intended purpose or it doesn't!
There is nobody both within NI nor Microsoft who will spend one single thought about improving that functionality if it doesn't work for some applications. In fact if enough people complain about problems with this interface the most likely cause of action will be that NI completely removes that functionality altogether from future LabVIEW versions.