06-28-2006 12:44 AM
07-05-2006 02:45 AM
07-11-2006 12:58 AM
09-06-2006 02:21 AM
Hello,
I have the same problem.
I use a pentium 4 PC and Windows XP....
Somebody can help me?
Thanks,
Giuseppe
01-30-2007 02:42 PM
Its probably not much help but heres an explanation of what you are seeing.
Reading from an OPC server normally reads a local cache which is refreshed by the server at the chosen update rate. Writing however is always to the device and, to quote from the OPC specification, ", the function should not return until it verifies that the device has actually accepted (or rejected) the data".
This might be why your system appears to hang because it is 'inside' the OPC server waiting for a response from the hardware. The question is where is the delay? Is it in sending the TCP/IP packet?
Let me know if you managed to find the cause.
Tony
05-31-2007 09:05 AM
I have exactly the same problem with Labview 8.2 and SimaticNET opc-server. Frustrating. Doesn't seem to be able to write faster than 450ms. I'm trying to do a scan-program with a refreshrate of 200ms. Don't think it is possible with simaticNET. But please tell me if somebody knows otherwise.
Erik
05-31-2007 05:55 PM
06-03-2007 01:46 PM
06-03-2007 04:50 PM
Hi,
Firstly an appology, I incorrectly stated that Async reads can be used to perform direct reads from the device where in fact it is Sync I/O.
I dont know anything about Labview but OPC servers generally provide Async and Sync I/O interfaces. I expect that Labview will provide a means to invoke either of these but I dont know the Labview specifics.
The fastest and most efficient way to read a value via OPC is to use an Async I/O interface. Requests are queued and a callback is issued when the value is available. The values are read from a CACHE in the OPC server which is updated at the OPC update rate. This is usually configurable.
If on the other hand you need to get 'fresh' values from a device quickly, you should connect using sync I/O using DEVICE as the data source. This method does not return until it has got the value from the device. This means that the call can tak longer than Async, and utilizes more CPU time, but the value is fresh and not affected by the update rate of the OPC server.
Hope this helps
Tony
06-08-2007 01:47 AM
Hi,
thank you for the information Tony.
We actually found the problem now. It is not Labview nor the OPC server. It is the PLC program. The guy who made it some years ago made it "big and heavy", and during the years some hardware has been removed. The PLC software has never been updated and are issuing a lot of error messages and probably some timeouts due to the missing hardware. All this mess causes the cycle time of the PLC to take as long as 450ms, exactly the minimum write rate I can atchieve with Labview using datasocket.
Erik