08-10-2015 04:07 PM
Hi all,
Does anybody know what is the data communication verision (1.0 2.0 | 3.0) that Labview client uses to communication over OPC?
I have Labview 2013 (Classic OPC (DCOM)) and Opto22 OpcServer connected, but is nowhere specified which version of OPC they are using.
I am trying to troubleshoot an sporadic bug that crashes Opto OPCserver, and apparently it might be related to the communication version. So if I am using 1.0 I would like to switch to 2.0.
Thank you.
08-11-2015
09:45 AM
- last edited on
01-22-2025
12:07 PM
by
Content Cleaner
Hey Pablo,
This paper descibes a little bit about the OPC versions we use to communicate:
Are you using the DSC Module to communicate with your OPC server?
08-11-2015 12:16 PM
Thank you Ty P for your reply.
The white paper says that Labview can handle the three communication versions, but it does not state how can you switch between them, which is what I need.
An Opto22 engineer is looking into my problem and he said that the sporadic crash of the server is normally due to the client (Labview in my case) using version 1.0, so apparently I need to switch to version 2.0, which I have no clue how to do it. During the configuration of the client, I was never asked about that.
A little more about the server crash; I use labview as the client to DCOM with the Opto22 OPC server without problems. I collect data during hours without problems. But sometimes, the server crashes, disable the communication obviously. The amount of time collecting data before the server crashes is variable. Sometimes it takes 20 minutes, sometimes it takes days. That PC is not connected to internet, firewall is disable, no antivirus,...so, there are no reasons to think any 3rd element is affecting the communication. Win 7 64bits Pro in the machine.
08-12-2015 04:43 PM
Hey Pablo,
So when LabVIEW is connecting to your Opto22 server, it should actually poll the server and see which versions are compatible for communication and then choose the highest version.
You should be able to see a log somewhere on the Opto22 server of what version it ends up using and if not, then you may be able to enable logging while you're setting up your I/O Server in LabVIEW and that may provide you a little more information
08-12-2015 04:53 PM
Hi Ty P,
When I choose the OPC server to stablish communication, there is only one Opto server, named:
"Opto22.OpcServer.2"
And that is the one I use. Do you think the "....2" at the end of the name means data communication version 2.x?
I will investigate the server logging option, but I have not find anything so far.
Pablo
08-13-2015 10:25 AM
Pablo,
That 2 at the end could be the version, but I'll have to do a little checking to be sure.
I believe the server or client logs are going to be the best way for us to determine which version we're actually communicating with. See if you can find anything in those and let me know if you still have any questions!
10-22-2015 11:18 AM
Hi Ty P,
I have more insight into my problem (unsolved yet).
I have logged the server (Opto22) event history, and now I see what the problem is. Which is;
- Labview client send reads and writes events to acquire/write data. In my specific aplication, labview needs to read in the order of 15 signals/sec and write 5/sec.
- Analysing the server event history I have discovered that prior to the server crash, Labview request to write an absurd amount of data in 1/10 sec, which outflow the capacity of the server memory and develop the crash.
There is no apparent reason for Labview to send that amount of writes and Labview does it in a completelly random manner. I run the VI most days and some times the crash appear after 5 min of the VI running and some times it takes 7 hours.
This is obviously a bug that I would certainly appreciate some help in trying to find a solution.
Thank you
10-26-2015 03:45 PM
Hi Pablo,
Can you give us some more information about the event you are seeing? What is an absurd amount of data? How much data compared to all the other times data is being written? Do you know exactly what is being written at that time? Do you know what your code is doing at that time?
01-26-2016 01:40 PM
Hi JD B,
I am back trying to find a solution to this issue.
By an absurb amount of data I mean when Labview try to write ~600 events/tags/values/variables_updates in one second to the Opto22 server memory. You can see that in "OptoOPCLog_1440004856_000_HERE.txt" attached to this message, check how many "AsyncIO2Write" labview send during the second "14:55:57"
As a comparison, I have also attached "OptoOPCLog_1439999138_022" which is a normal operation log. During normal operation, the amount of reads/writes is in the order of 10 each (write and read).
When Labview send all those write events to the server, Labview is just updating the outputs values that Opto22 control (which are analog voltages). In the Labview cofiguration, I specified a refreshsing rate of 1 second, which means, every second Laview write and read the values to and from the server. There are less than 15 values to read and less than 10 values to write. Every second only the values that are different from the previous second are transfered.
I have also attached the Labview configuration that I specified when I built the Labview project that connects to Opto22 server.
Thank you,
Pablo
01-27-2016
07:08 PM
- last edited on
01-22-2025
12:07 PM
by
Content Cleaner
Hello Pablo,
Thanks for the log files. These were generated by the OPC Server, correct?
It do agree it does appear weird that LabVIEW sends so many commands that quick.
Have you looked at the LabVIEW Client Side OPC Diagnostic Files?
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019XhySAE&l=en-US
Regards,