Michael Aivaliotis Posted November 25, 2004 Report Share Posted November 25, 2004 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? Quote Link to comment
FLX Posted November 25, 2004 Report Share Posted November 25, 2004 Sow it turns out I got involved in creating an HMI interface with LabVIEW that interfaces to a PLC. Oh joy! Quote Link to comment
aledain Posted November 26, 2004 Report Share Posted November 26, 2004 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. Quote Link to comment
dswaine Posted November 26, 2004 Report Share Posted November 26, 2004 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. Quote Link to comment
Mariano Gauderio Posted March 1, 2008 Report Share Posted March 1, 2008 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! Quote Link to comment
LAVA 1.0 Content Posted March 1, 2008 Report Share Posted March 1, 2008 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. 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.