Jump to content

LabVIEW DSC engine update rate problem


Recommended Posts

Sow it turns out I got involved in creating an HMI interface with LabVIEW that interfaces to a PLC. Oh joy! :thumbdown:

I started off by using datasocket and OPC to read and write values to the PLC. It turns out that this method becomes unusable for anything larger than 100 variables. The data transfer is painfully slow. This has been confirmed by NI support.

So then I convinced the customer to go with the LabVIEW DSC module. I started adding tags in the DSC engine and everything started to go well. Now I have about 320 tags setup in the engine and it is again painfully slow to transfer data back and forth. How slow? It takes over 5 seconds to get a variable change to show up in the PLC. Unbelievable!

Ok, so now I'm looking at the hardware interface to the Allen Bradly PLC. It is a serial connection at 19200 baud. Yes, I agree, this could be the bottle-neck. However does anyone out there have any experience with the DSC engine? Before I go shelling out cash for new hardware (ethernet connection). How can I make sure that this is not an inherent problem with the DSC engine and nothing to do with the hardware?

Link to comment
Sow it turns out I got involved in creating an HMI interface with LabVIEW that interfaces to a PLC. Oh joy!  :thumbdown:

I  started off by using datasocket and OPC to read and write values to the PLC. It turns out that this method becomes unusable for anything larger than 100 variables. The data transfer is painfully slow. This has been confirmed by NI support.

So then I convinced the customer to go with the LabVIEW DSC module. I started adding tags in the DSC engine and everything started to go well. Now I have about 320 tags setup in the engine and it is again painfully slow to transfer data back and forth. How slow? It takes over 5 seconds to get a variable change to show up in the PLC. Unbelievable!

Ok, so now I'm looking at the hardware interface to the Allen Bradly PLC. It is a serial connection at 19200 baud. Yes, I agree, this could be the bottle-neck. However does anyone out there have any experience with the DSC engine? Before I go shelling out cash for new hardware (ethernet connection). How can I make sure that this is not an inherent problem with the DSC engine and nothing to do with the hardware?

2758[/snapback]

This is pure speculation, but maybe there is an "update" flag on the DSC side (and maybe on the PLC side) which means that it (they) continually send ALL the tags. What you really want is to just read/write only those that change. Perhaps there is a configuration on the DSC/PLC that only notifies the other on change?

As I said, pure speculation and musing outloud.

cheers, Alex.

Link to comment

The programming on the PLC side can also have a significant effect on the update/communication rate limits. If the items/data registers you've configured tags for are scattered all over the PLC's memory map, the OPC server has to read a lot larger block of PLC data than it would if the items were contiguous.

There's mention of how the NI's Industrial Automation Servers are "optimized" to speed read/write operations somewhere in all the documentation that comes with LVDSC, but PLC communication protocols don't always lend themselves to much optimization.

Link to comment
  • 3 years later...

QUOTE(Michael_Aivaliotis @ Nov 25 2004, 02:15 AM)

Sow it turns out I got involved in creating an HMI interface with LabVIEW that interfaces to a PLC. Oh joy! :thumbdown:

I started off by using datasocket and OPC to read and write values to the PLC. It turns out that this method becomes unusable for anything larger than 100 variables. The data transfer is painfully slow. This has been confirmed by NI support.

So then I convinced the customer to go with the LabVIEW DSC module. I started adding tags in the DSC engine and everything started to go well. Now I have about 320 tags setup in the engine and it is again painfully slow to transfer data back and forth. How slow? It takes over 5 seconds to get a variable change to show up in the PLC. Unbelievable!

Ok, so now I'm looking at the hardware interface to the Allen Bradly PLC. It is a serial connection at 19200 baud. Yes, I agree, this could be the bottle-neck. However does anyone out there have any experience with the DSC engine? Before I go shelling out cash for new hardware (ethernet connection). How can I make sure that this is not an inherent problem with the DSC engine and nothing to do with the hardware?

I´ve had the same problem!

And.. like u, we changed to serial comunication (RS232/485) to solve this problem.

I don´t use DSC anyway.

And to access database we have program our own lib (specific for our aplication), using PostgreSQL.

I just use the BASE of Labview VI Analyzer and Internet Toolkit and nothing else, just it solved all my problems.

We do all we need by ourselves.

Enjoy it... and be happy!

Link to comment

Yes I have experience with DSC.

If you are using LV 8+ wheer DSC is based on shared variables, I suggest you punch those "Champion Buttons" ASAP!

What I know.

With the pre-LV 8 datasocket reads CPU demands scaled linearly with the tag count so after about 100 performance started to suffer.

Still with pre LV 8 DSC...

The Tag engine for DSC was quite efficient and I have deployed apps with 3000+ tags with good performance.

With LV 8+ DSC....

I have avoided going to LV8+ DSC since some of my smaller apps (<100 tags) started showing hits on performance.

Generally speaking...

Depending on your OPC server your performance can vary depending on the how the OPC server is impelemtned. All of the 3rd party OPC servers I have touched have shipping utilities that allow me to monitor tags apart from DSC. If you poke around enough, there should be configuration screens that let you specifiy update rates, dead-bands etc. Very often we have solved our performance issue by setting the OPC server settings. There are also settings in LV DSC and the shared variables that also let you set update rates.

So while your app is running, try monitoring tags using the 3rd party Tag monitor to help narrow down were the issue lies. If you see quick updates in the OPC server but they don't show up in the Shared Variable engine... then start pulling strings! You are trying something that NI has never attempted.

I hope this helps!

Ben

PS sorry about all of the CR's. Sometimes I just can't help myself.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.