06-29-2012 12:39 AM
JimMacD,
Thanks for your interest in OPC UA. An IO Server supporting OPC UA is on the list of possible things that NI could do in a future release, but it is not currently in development. For planning purposes, it would be helpful if you could provide some additional insight behind your request. From your perspective, what advantages do you see in the IO Server approach compared to the VIs provided here? Is there functionality missing in the VIs you would expect in the IO Server? Any thoughts you provide are appreciated.
06-29-2012 09:56 AM
Kyle,
Thanks for the quick response.
I have not used the OPC UA API yet, just started looking into it. I think the advantages of an I/O server approach is that all the details are done in the background, which allows the developer to focus on making the application, not worrying about correctly setting up the communications protocol.
I use the Modbus IO server a-lot. What I appreciate about it is that I can set a few parameters, and create some Shared Variables to interact with that IO server, and I'm done. LabVIEW set's up the rest in the background, and I can then focus on what I need to do with the application. It is very easy that way. This also seems to be the way NI's OPC server is setup on Window's, where you are creating Tags to bind to diffrent equipment. The OPC Server is going in the background and handles all the details.
Thanks
-Jim
10-04-2012 07:45 AM
Hello,
I started a project using OPC UA in LV 2012. The server in the realtime environment works fine. I have a problem with the test client in windows 7. If I register with the "Add Monitored Nodes VI" a tag that is Byte Array, after the event is reveived, Labview crashes with the following error:
There are limists on the type of registered tags? If it is a bug, how can I send a feedback to you?
Thanks in advance.
Sandro
10-04-2012 08:50 AM
Hi Tonch,
Can you repost this on the DSC support forums? I want to make sure an NI Application Engineer is assigned your post. LabVIEW crashes are something we take very seriously and we'll will want to debug further.
Thanks,
Mark
10-04-2012 08:58 AM
Hello,
I found the error in my code: mismatch of Byte Array in client and ByteString in server. Anyway there is the problem of robustness, if you are interested.
10-04-2012 08:59 AM
Ok, I do. Thanks.
11-06-2012 09:41 AM
Hello,
I need to know how can I address a dynamic tag in OPC UA client. I've tried every way I could imagine with no success. Seems the API only access browseble tags.
Error message:
"LabVIEW: (Hex 0xFFFA8EBB) The node path refers to a node that does not exist in the server address space."
Example of Siemens S7 syntax tried:
C40.CLP_140A_04.DB16,Real0
ns=2;s=C40.CLP_140A_04.DB16,Real0
C40.CLP_140A_04."DB16,Real0"
"C40.CLP_140A_04.DB16,Real0"
PS.: I can browse C40.CLP_140A_04. I can read this addess throught OPC DA without issues.
Modbus also failed:
c100.RT_137A_9101.30000
I'm using Kepware v5. The issue is the same in Labview 2011 and 2012.
11-08-2012 02:16 AM
I don't know what's the dynamic tag. You must specify the node path to address a node for read/write.
11-08-2012 01:01 PM
Cheng,
A dynamic tag is a kind of direct addressing of a PLC memory. In Siemens and Schneider I don't need to have a browseble "tag", I have some rules to address a PLC memory for example.
This is part of the Kepware Siemens Ethernet help file. Using this syntax I can access the PLC memory. I think UA API is filtering the node paths that doesn't match the browsed tags. The problem is that Kepware answers to node paths that are not browseble. If I'm write the correction to this problem is simple but I cannot do it because the API is closed.
Address Syntax
Input, Output, Peripheral, Flag Memory Types
<memory type><S7 data type><address>
<memory type><S7 data type><address><.bit>
<memory type><S7 data type><address><.string length>*
<memory type><S7 data type><address><[row][>col]>
Timer and Counter Memory Types
<memory type><address>
DB Memory Type
DB<num>,<S7 data type><address>
DB<num>,<S7 data type><address><.bit>
DB<num>,<S7 data type><address><.string length>*
DB<num>,<S7 data type><address><[row][col]>
11-08-2012 08:09 PM
Hi Felipe,
Now the UA APIs don't accept a path with the S7 syntax. The path must be the browseable tag. If you can convert the S7 address into a browseable path, the UA APIs should work.
I think the S7 syntax is some sort of filter rule to get all the tags which meet the filter in the address space. But the UA Server's address space is not classified by the memory type/data type. One way I can find is that get all the tags of the UA Server by browse, then use the filter rule of the S7 syntax to get the tag meeting the filter.