DASYLab

cancel
Showing results for 
Search instead for 
Did you mean: 

TCP-IP ICOM is too slow?

Hello everybody,

I am new to DasyLab (I have good experience with labview though) and am trying to build up a TCP-IP Connection between a PLC and DasyLab10 using the ICOM module . So far I managed to build up a connection and send measured data to dasylab. There it gets decoded correctly and it even displays correctly after some fine-tuning in the options of that ICOM module. But the problem is, the ICOM module works too slow for my TCP-Server.

I have two channels so far and I do send pakets with 2 floats in it every millisecond. No delimiter, no string, nothing else just 8 bytes. So its around 8kB/s. I had different delimiter in it, but some people stated out, that this could slow down the interpretation process.
I tinkered around with packet-size on Dasylab as well as sending more then 2 floats per TCP-packet with no effect. The TCP-connection gets shut down(the server does it, because of an error) within some seconds after the buffer of DasyLab filled up.

I got it working so far for a sample-rate of 1kHz and the packet-size of 1 with maximum CPU-Load on one core (With the "One Measurement per"-option: Gathermode), but only when the line-plotter is minimized. Then it behaves almost as intended. When I increase the packet-size within the ICOM module, than its gets laggy again, but the CPU-Load drops significantly. It seems to process the data considerably slower then with a packet-size of 1. It takes the ICOM Module between 2-10 seconds to process 1 sec of data depending on packet-size with higher packet-size resulting in a slower process. IThe global data-rate and packet-size does not seem to have any influence on that laggyness.

 

The goal is actually a sample-rate of 2,5kHz with 25channels, which would be around 250kB/s on a direct crossover FastEthernet connection. It should be possible to save all the data to hdd as well as some sort of live view of the data like a line plotter. It would be okay if the plotter only refreshes every 10th second as long as it shows the data live(with no lag, correct timestamp) and completely(every data-point sent by the server is in there, no duplicates).

 

The wiring diagram so far only includes one ICOM module plus a digital instrument and a line plotter. I have attached it to this message.

 

Is my task really impossible with DasyLab? Do I need a faster PC? It has got a Core 2 Duo 2Ghz CPU. I feel like I am missing something important to get this up and running.

 

Thanks in advance. Any help is appreciated.

 

Have a nice day
Philipp Michalski

0 Kudos
Message 1 of 9
(7,920 Views)

Try to increase the output block size in the ICOM modules options dialog (for example to 500).

The "gather mode" is for fast data, but when you output each value separately (block size=1), then the gather mode is virtually disabled.

M.Sc. Holger Wons | measX GmbH&Co. KG, Mönchengladbach, Germany | DASYLab, DIAdem, LabView --- Support, Projects, Training | Platinum NI Alliance Partner | www.measx.com
0 Kudos
Message 2 of 9
(7,911 Views)

 


@hw70 wrote:

Try to increase the output block size in the ICOM modules options dialog (for example to 500).

The "gather mode" is for fast data, but when you output each value separately (block size=1), then the gather mode is virtually disabled.


 

I did and thats what happend to me:


@Philipp_Biggs wrote:

When I increase the packet-size within the ICOM module, than its gets laggy again, but the CPU-Load drops significantly. It seems to process the data considerably slower then with a packet-size of 1. It takes the ICOM Module between 2-10 seconds to process 1 sec of data depending on packet-size with higher packet-size resulting in a slower process.  


 

 

0 Kudos
Message 3 of 9
(7,907 Views)

I increased the packet-size now to 100 and sent exactly 1000 samples within 1 second (i checked with the debugger tools on the PLC). DasyLab took 10 sec to display those values. It refreshed the line-plotter pretty much once per second. Displaying each time 100 new values. I took the time of dasyLab with the timer on my phone. 

With block-size 250 it refreshed 4 times taking again around 10 seconds to display all values. 

With a Block-size of 50 it refreshed 20 times taking again around 10 seconds.

With a block-size of 10 it refreshed more often, but again taking around 10 seconds to display all the data.

 

With block-size 1 its flickering all the time but it only take ~1 seconds to display all the values, it takes a bit longer if the line-plotter is visible.

0 Kudos
Message 4 of 9
(7,901 Views)

Can you post the worksheet with just the ICOMS module in it for us to look at? 

What is the global sample rate for the worksheet? 

 

As you can see, this module is a bit tricky to configure for high speed. The design center was for lower speed (1 s/sec or less) samples, mostly because the ASCI parsing is complex. 

 

 

Measurement Computing (MCC) has free technical support. Visit www.mccdaq.com and click on the "Support" tab for all support options, including DASYLab.
0 Kudos
Message 5 of 9
(7,898 Views)

The worksheet i sent in my OP has only the ICOM module plus the digital Instrument plus the line-plotter in it (3 modules). Shall i really post it again without the 2 visual elements?

With global sample rate you mean the option (sorry i use the german version of it): measurement-> timebases -> all options ? This one was set to 1000hz and Block-size 10 with my last experiment. It doesnt seem to alter the results in any way. I have tried various settings there. 

0 Kudos
Message 6 of 9
(7,895 Views)

The worksheet only containing the icom module for DasyLab10.

 

Update: 

I am off for vacation now. We will see us again next week, i hope we can fix this problem then 🙂

 

Have a nice week

0 Kudos
Message 7 of 9
(7,894 Views)

Hello again,

 

i now assume its just impossible to get the ICOM module working with more then 100Hz and a packet-size of greater then 1?

Is there any other way to acquire data of 2,5kHz except for using analogous inputs? I tried OPC, but with that i cant even establisch a connection. 

 

Greetings

Philipp

0 Kudos
Message 8 of 9
(7,828 Views)

Phillip,

 

The module is simply not designed for high speed data. You have tried all of the settings... it suggests that DASYLab cannot keep up with the data stream even if you tell it that it's coming in at a rapid rate and to use a larger block.

 

The only other option is to tackle writing a driver, or having someone write a driver for you. We have two ways to do that - DASYLab 13 Full version has the Script module, or you can purchased the Extension toolkit to write a module using C. 

 

 

Measurement Computing (MCC) has free technical support. Visit www.mccdaq.com and click on the "Support" tab for all support options, including DASYLab.
0 Kudos
Message 9 of 9
(7,814 Views)