Please explain what is the Difference Between OPC UA and OPC DA ?
In which condition which one should be used, and if any example can be provided for both OPC UA and OPC DA, it would be helpful
Please explain what is the Difference Between OPC UA and OPC DA ?
In which condition which one should be used, and if any example can be provided for both OPC UA and OPC DA, it would be helpful
OPC UA is not only for OPC-DA, but for all OPC Classic (DA, AE, HDA, etc). OPC Classic uses DCOM communication for Client-Server connection. DCOM is for Windows OS. And, DCOM and RPC ports are a headache for engineers.
So, OPC UA is new technology which does not rely on DCOM communication and is platform (OS) independent. OPC UA supports Linux as well.
A lot of OPC servers in the market are not ready for OPC UA. But I believe they are on the way.
OPC client application developers need to focus that your OPC client app supports for which OPCs? For which purpose, e.g. AE:alarm and event collection or DA:data access)
Every OPC knowledge are avaliable at https://opcfoundation.org/. You can download source codes and some component Dlls but you must be a member.
OPC-UA being a successor for OPC-DA provides the improved specification for the connectivity protocol implementation on different platforms and languages. The performance of the protocol is dependent on the implementation and there are SDK's that are certified by the OPC foundation for popular programming languages like JAVA, C#...The goal of the OPC UA is Platform independence, improve the ability to expose complex data and complex system representation.
Some legacy devices and software's may not support OPC-UA but it would be a good decision to adopt to OPC-UA since wrapper are available to convert OPC-DA to UA with minor cost in performance.
OPC-UA is the successor to OPC-DA. It has many benefits, one of the most prominent being that it is platform agnostic. There are SDKs available in a multitude of languages and OPC-UA can be implemented on anything from a tiny embedded to device running Linux, to a desktop running Windows, or a server running the OS of your choice.
For any new development, given the choice, OPC-UA should be used. The only reason to use OPC-DA at this point in time is if you're connecting to a legacy product that only supports OPC-DA and cannot be replaced or upgraded.
OPC UA is the Unified Architecture of OPC.
Specification doesn't says anything about platform, OS etc.
OPC DA, is older version of OPC specification. Where there was data modelling (not to a greater extent like OPC UA has). Only information which was transferred between server and client is VQT (Value Quality and Time). Where as OPC UA has data and information Modelling, Along with VQT, there are many attributes/Properties which can be shared between server and client about a variable (in simple example, Say describing what this variable doing. Which is the conversion formula used, whether the variable is accessible by user or not! to name few).
OPC DA is completely OS Dependent. Where is OPC UA is independent of Operating system. Some using some of the OPC UA SDKs the Servers can be created on a platform where OS is not present
OPC DA communication medium is COM/DCOM. Where is OPC UA is about TCP/IP and/or HTTPS. it depends on SDK to support either both or any one of them.
these are some of the key differences.
Which one to use when:
My suggestion is, go with OPC UA irrespective of whether you have OPC DA servers or not. Because, there are some products in which with the Old OPC DA products data can still be collected with the new OPC UA based products.
OPC UA servers can be OS independent (it purely depends on type of SDK). In future if you want to migrate to any operating system then it will not be a ahead ache.
I hope this helped you to understand the difference.