{"id":152,"date":"2021-03-07T01:53:19","date_gmt":"2021-03-07T01:53:19","guid":{"rendered":"https:\/\/joseamaita.com\/en\/?p=152"},"modified":"2023-02-28T19:42:10","modified_gmt":"2023-02-28T19:42:10","slug":"opc-ua-super-complete-tutorial","status":"publish","type":"post","link":"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/","title":{"rendered":"OPC UA Super Complete Tutorial"},"content":{"rendered":"\n<p>Welcome! You are about to begin a tour to learn how to design and create OPC UA applications using a super complete tutorial. Here, I present several application samples to demonstrate the use of OPC UA specifications and technology. Finally, you&#8217;ll be ready to start implementing real-world OPC UA applications.<\/p>\n\n\n\n<p>To sum up, below is a list of posts that complete this series:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>OPC Foundation Unified Architecture Technology Samples<\/li><\/ul>\n\n\n\n<p>However, before we dive in our OPC UA super complete tutorial, let&#8217;s review some important concepts:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_is_OPC_UA\"><\/span>What is OPC UA?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Basically, we can say <strong>OPC<\/strong> <strong>U<\/strong>nified <strong>A<\/strong>rchitecture (OPC UA) is an industrial automation standard for moving data between the factory floor and the enterprise.<\/p>\n\n\n\n<p>For a longer definition, we can say OPC UA is a platform-independent interoperability standard interface through which various kinds of systems and devices can communicate to each other over various types of networks. OPC UA is applicable to components in all industrial domains, such as industrial sensors and actuators, control systems, Manufacturing Execution Systems and Enterprise Resource Planning Systems, including the Industrial Internet of Things (IIoT), Machine To Machine (M2M) as well as Industrie 4.0 and China 2025.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"746\" height=\"247\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/02\/img_p_03_002.png\" alt=\"OPC UA standard\" class=\"wp-image-188\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/02\/img_p_03_002.png 746w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/02\/img_p_03_002-300x99.png 300w\" sizes=\"auto, (max-width: 746px) 100vw, 746px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Why_an_OPC_UA_super_complete_tutorial\"><\/span>Why an OPC UA super complete tutorial?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Firstly, I want you to build something, which can be a completely practical project. Consequently, you will apply the quote &#8220;learn by doing&#8221; and a guide like this could help you to achieve this goal. Therefore, the main idea here is to design and implement a real-world OPC UA software application, one step at a time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_will_we_need\"><\/span>What will we need?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>We&#8217;ll need several software components:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Microsoft Visual Studio<\/strong>, an IDE from Microsoft.<\/li><li><strong>Git<\/strong>, a free and open source distributed version control system.<\/li><li>Git repositories, usually from <a href=\"https:\/\/github.com\/\">GitHub<\/a>.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Designing_for_OPC_UA\"><\/span>Designing for OPC UA<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Integrated\"><\/span>Integrated<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>OPC UA provides a consistent, integrated <em>AddressSpace<\/em> and service model. This allows a single <em>Server<\/em> to integrate data, <em>Alarms<\/em> and <em>Events<\/em>, and history into its <em>AddressSpace<\/em>, and to provide access to them using an integrated set of <em>Services<\/em>. These <em>Services<\/em> also include an integrated security model.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Openly_browsable_and_dynamic\"><\/span>Openly browsable and dynamic<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>OPC UA also allows <em>Servers<\/em> to provide <em>Clients<\/em> with type definitions for the <em>Objects<\/em> accessed from the <em>AddressSpace<\/em>. Additionally, information models describe the contents of the <em>AddressSpace<\/em>. OPC UA exposes data in many different formats, including binary structures and XML or JSON documents. Moreover, the OPC Foundation, other standard organizations or vendors may define the format of the data. Through the <em>AddressSpace<\/em>, <em>Clients<\/em> can query the <em>Server<\/em> for the metadata that describes the format for the data. In many cases, <em>Clients<\/em> with no pre-programmed knowledge of the data formats will be able to determine the formats at runtime and properly utilize the data.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Flexible_hierarchy_for_multiple_applications\"><\/span>Flexible hierarchy for multiple applications<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>OPC UA adds support for many relationships between <em>Nodes<\/em>, which could be much more than a single hierarchy. In this way, a <em>Server<\/em> may present data in a variety of hierarchies tailored to the way a set of Clients would typically like to view the data. This flexibility, combined with support for type definitions, makes OPC UA applicable to a wide array of problem domains. In addition to this, OPC UA aims not just the SCADA, PLC and DCS interface, but to provide greater interoperability between higher level functions.<\/p>\n\n\n\n<p>Now, let&#8217;s see the scope of some OPC UA target applications:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"563\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/02\/img_p_03_001.png\" alt=\"\" class=\"wp-image-179\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/02\/img_p_03_001.png 768w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/02\/img_p_03_001-300x220.png 300w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure><\/div>\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Robust_communication\"><\/span>Robust communication<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>OPC UA provides robustness of published data. A major feature of all OPC servers is the ability to publish data and <em>Event Notifications<\/em>. OPC UA provides mechanisms for <em>Clients<\/em> to quickly detect and recover from communication failures associated with these data transfers. In doing so, there is no need to wait for long timeouts provided by the underlying protocols.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Scalable\"><\/span>Scalable<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>OPC UA supports a wide range of <em>Servers<\/em>, from plant floor PLCs to enterprise <em>Servers<\/em>, all of them with a broad scope of size, performance, execution platforms and functional capabilities. Therefore, OPC UA defines a comprehensive set of capabilities, and <em>Servers<\/em> may implement a subset of these capabilities. To promote interoperability, OPC UA defines subsets, referred to as <em>Profiles<\/em>, to which <em>Servers<\/em> may claim conformance. <em>Clients<\/em> can then discover the <em>Profiles<\/em> of a <em>Server<\/em>, and tailor their interactions with that <em>Server<\/em> based on the <em>Profiles<\/em>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Stable_core\"><\/span>Stable core<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>The OPC UA specifications layers isolate the core design from the underlying computing technology and network transport. This allows future technologies to map OPC UA when necessary, without negating the basic design. According to the standard, we will use three data encodings:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>XML\/text<\/li><li>UA Binary<\/li><li>JSON<\/li><\/ul>\n\n\n\n<p>Furthermore, we will use several protocols:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>OPC UA TCP<\/li><li>HTTPS<\/li><li>WebSockets<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Business-conscious\"><\/span>Business-conscious<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p><em>OPC UA Applications<\/em> that support multiple transports and encodings will allow the end users to make decisions about trade-offs between performance and compatibility at the time of deployment, rather than determined by the OPC vendor at the time of product definition.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Backward_compatibility\"><\/span>Backward compatibility<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>OPC UA is the evolution or migration path for OPC clients and servers that are based on Microsoft COM technology. With great care in the design, existing data exposed by OPC COM servers (DA, HDA and A&amp;E) can easily match OPC UA. Evidently, vendors may choose migrating their products natively to OPC UA or use external wrappers to convert from OPC COM to OPC UA and viceversa. Besides, each of the previous OPC specifications defined its own address space model and its own set of <em>Services<\/em>. Consequently, OPC UA unifies the previous models into a single integrated address space with a single set of <em>Services<\/em>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Additional_messaging_pattern\"><\/span>Additional messaging pattern<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Unlike OPC UA <em>Client Server<\/em>, OPC UA <em>PubSub<\/em> opens new application fields for OPC UA. The following are some example uses for <em>PubSub<\/em>:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Configurable peer to peer communication between controllers and between controllers and HMIs. There is no need for the peers to stay directly connected and do not even need to know about the existence of each other. The data exchange often requires a fixed time-window and it may be point-to-point or a multi-point connection.<\/li><li>An order processing application can place an order on a message queue or an enterprise service bus (asynchronous workflow). Thence, one or more workers can process such orders.<\/li><li>Sensors or actuators that write logs to a monitoring system, an HMI, an archive application for later querying.<\/li><li><em>Servers<\/em> representing services or devices that stream data to applications hosted in the cloud such as backend servers, big data analytics for system optimization and predictive maintenance.<\/li><\/ul>\n\n\n\n<p>Certainly, various different messaging systems can implement <em>PubSub<\/em>. Let&#8217;s see this with two examples:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Production environments with frequent transmissions of small amounts of data can easily use <em>PubSub<\/em> with UDP. It also allows data exchange in one-to-one and one-to-many configurations.<\/li><li>The use of established messaging protocols (e.g. the ISO\/IEC AMQP 1.0 protocol) with JSON data encoding supports the cloud integration path and readily allows handling of the information in modern stream and batch analytics systems.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Basic_exercises\"><\/span>Basic exercises<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>As I wrote in the beginning, you will understand this technology with examples. Then, let&#8217;s complete some basic exercises from the <a href=\"http:\/\/opcfoundation.github.io\/UA-.NETStandard\/help\/index.htm\">OPC Foundation Unified Architecture Technology Samples<\/a>:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Launching_the_OPC_UA_Server_Client\"><\/span>Launching the OPC UA Server &amp; Client<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Go to the &#8220;UA-.NETStandard-Samples&#8221; GitHub repository <a href=\"https:\/\/github.com\/OPCFoundation\/UA-.NETStandard-Samples\">here<\/a>.<\/li><li>Download or clone the repository to your workspace.<\/li><li>Open the &#8220;UA Quickstart Applications.sln&#8221; solution file using Visual Studio.<\/li><li>Wait until all projects load.<\/li><li>Once in Visual Studio, compile the entire solution (Build -&gt; Build Solution).<\/li><li>Notice that compiled applications are within &#8220;..\/bin\/Debug&#8221; folder.<\/li><li>Firstly, go to that folder and launch the DA server by running &#8220;Quickstarts.DataAccessServer.exe&#8221;.<\/li><li>Secondly, launch the DA client by running &#8220;Quickstarts.DataAccessClient.exe&#8221;.<\/li><li>Finally, you should see both applications open on-screen.<\/li><\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"741\" height=\"514\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_003.png\" alt=\"OPC DA server\" class=\"wp-image-233\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_003.png 741w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_003-300x208.png 300w\" sizes=\"auto, (max-width: 741px) 100vw, 741px\" \/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"886\" height=\"577\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_004.png\" alt=\"OPC DA client\" class=\"wp-image-234\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_004.png 886w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_004-300x195.png 300w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_004-768x500.png 768w\" sizes=\"auto, (max-width: 886px) 100vw, 886px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"External_resources\"><\/span>External resources<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>To experience the OPC UA super complete tutorial better, make sure to check these external resources:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/opcfoundation.org\/\">OPC Foundation website<\/a><\/li><li><a href=\"https:\/\/opcfoundation.org\/resources\/books\/\">Featured books recommended by the OPC Foundation<\/a><\/li><li><a href=\"https:\/\/www.springer.com\/gp\/book\/9783540688983\">Book &#8220;OPC Unified Architecture | Wolfgang Mahnke | Springer&#8221;<\/a><\/li><\/ul>\n\n\n\n<p>For other articles like this one in English, click <a href=\"https:\/\/joseamaita.com\/en\/blog\/\">here<\/a>. To see them in Spanish, click <a href=\"https:\/\/joseamaita.com\/blog\/\">here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Welcome! You are about to begin a tour to learn how to design and create OPC UA applications using a super complete tutorial. Here, I present several application samples to demonstrate the use of OPC UA specifications and technology. Finally, you&#8217;ll be ready to start implementing real-world OPC UA applications. To sum up, below is&hellip;&nbsp;<a href=\"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">OPC UA Super Complete Tutorial<\/span><\/a><\/p>\n<div class='heateor_sss_sharing_container heateor_sss_vertical_sharing heateor_sss_bottom_sharing' style='width:44px;left: -10px;top: 100px;-webkit-box-shadow:none;box-shadow:none;' data-heateor-sss-href='https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/posts\/152'><div class=\"heateor_sss_sharing_ul\"><a aria-label=\"Facebook\" class=\"heateor_sss_facebook\" href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fjoseamaita.com%2Fen%2Fwp-json%2Fwp%2Fv2%2Fposts%2F152\" title=\"Facebook\" rel=\"nofollow noopener\" target=\"_blank\" style=\"font-size:32px!important;box-shadow:none;display:inline-block;vertical-align:middle\"><span class=\"heateor_sss_svg\" style=\"background-color:#0765FE;width:40px;height:40px;margin:0;display:inline-block;opacity:1;float:left;font-size:32px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box\"><svg style=\"display:block;\" focusable=\"false\" aria-hidden=\"true\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 32 32\"><path fill=\"#fff\" d=\"M28 16c0-6.627-5.373-12-12-12S4 9.373 4 16c0 5.628 3.875 10.35 9.101 11.647v-7.98h-2.474V16H13.1v-1.58c0-4.085 1.849-5.978 5.859-5.978.76 0 2.072.15 2.608.298v3.325c-.283-.03-.775-.045-1.386-.045-1.967 0-2.728.745-2.728 2.683V16h3.92l-.673 3.667h-3.247v8.245C23.395 27.195 28 22.135 28 16Z\"><\/path><\/svg><\/span><\/a><a aria-label=\"Twitter\" class=\"heateor_sss_button_twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?text=joseamaita.com%20-%20The%20place%20where%20I%20make%20things%20happen.&url=https%3A%2F%2Fjoseamaita.com%2Fen%2Fwp-json%2Fwp%2Fv2%2Fposts%2F152\" title=\"Twitter\" rel=\"nofollow noopener\" target=\"_blank\" style=\"font-size:32px!important;box-shadow:none;display:inline-block;vertical-align:middle\"><span class=\"heateor_sss_svg heateor_sss_s__default heateor_sss_s_twitter\" style=\"background-color:#55acee;width:40px;height:40px;margin:0;display:inline-block;opacity:1;float:left;font-size:32px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box\"><svg style=\"display:block;\" focusable=\"false\" aria-hidden=\"true\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"100%\" height=\"100%\" viewBox=\"-4 -4 39 39\"><path d=\"M28 8.557a9.913 9.913 0 0 1-2.828.775 4.93 4.93 0 0 0 2.166-2.725 9.738 9.738 0 0 1-3.13 1.194 4.92 4.92 0 0 0-3.593-1.55 4.924 4.924 0 0 0-4.794 6.049c-4.09-.21-7.72-2.17-10.15-5.15a4.942 4.942 0 0 0-.665 2.477c0 1.71.87 3.214 2.19 4.1a4.968 4.968 0 0 1-2.23-.616v.06c0 2.39 1.7 4.38 3.952 4.83-.414.115-.85.174-1.297.174-.318 0-.626-.03-.928-.086a4.935 4.935 0 0 0 4.6 3.42 9.893 9.893 0 0 1-6.114 2.107c-.398 0-.79-.023-1.175-.068a13.953 13.953 0 0 0 7.55 2.213c9.056 0 14.01-7.507 14.01-14.013 0-.213-.005-.426-.015-.637.96-.695 1.795-1.56 2.455-2.55z\" fill=\"#fff\"><\/path><\/svg><\/span><\/a><a aria-label=\"Linkedin\" class=\"heateor_sss_button_linkedin\" href=\"https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=https%3A%2F%2Fjoseamaita.com%2Fen%2Fwp-json%2Fwp%2Fv2%2Fposts%2F152\" title=\"Linkedin\" rel=\"nofollow noopener\" target=\"_blank\" style=\"font-size:32px!important;box-shadow:none;display:inline-block;vertical-align:middle\"><span class=\"heateor_sss_svg heateor_sss_s__default heateor_sss_s_linkedin\" style=\"background-color:#0077b5;width:40px;height:40px;margin:0;display:inline-block;opacity:1;float:left;font-size:32px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box\"><svg style=\"display:block;\" focusable=\"false\" aria-hidden=\"true\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 32 32\"><path d=\"M6.227 12.61h4.19v13.48h-4.19V12.61zm2.095-6.7a2.43 2.43 0 0 1 0 4.86c-1.344 0-2.428-1.09-2.428-2.43s1.084-2.43 2.428-2.43m4.72 6.7h4.02v1.84h.058c.56-1.058 1.927-2.176 3.965-2.176 4.238 0 5.02 2.792 5.02 6.42v7.395h-4.183v-6.56c0-1.564-.03-3.574-2.178-3.574-2.18 0-2.514 1.7-2.514 3.46v6.668h-4.187V12.61z\" fill=\"#fff\"><\/path><\/svg><\/span><\/a><a aria-label=\"Whatsapp\" class=\"heateor_sss_whatsapp\" href=\"https:\/\/api.whatsapp.com\/send?text=joseamaita.com%20-%20The%20place%20where%20I%20make%20things%20happen.%20https%3A%2F%2Fjoseamaita.com%2Fen%2Fwp-json%2Fwp%2Fv2%2Fposts%2F152\" title=\"Whatsapp\" rel=\"nofollow noopener\" target=\"_blank\" style=\"font-size:32px!important;box-shadow:none;display:inline-block;vertical-align:middle\"><span class=\"heateor_sss_svg\" style=\"background-color:#55eb4c;width:40px;height:40px;margin:0;display:inline-block;opacity:1;float:left;font-size:32px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box\"><svg style=\"display:block;\" focusable=\"false\" aria-hidden=\"true\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"100%\" height=\"100%\" viewBox=\"-6 -5 40 40\"><path class=\"heateor_sss_svg_stroke heateor_sss_no_fill\" stroke=\"#fff\" stroke-width=\"2\" fill=\"none\" d=\"M 11.579798566743314 24.396926207859085 A 10 10 0 1 0 6.808479557110079 20.73576436351046\"><\/path><path d=\"M 7 19 l -1 6 l 6 -1\" class=\"heateor_sss_no_fill heateor_sss_svg_stroke\" stroke=\"#fff\" stroke-width=\"2\" fill=\"none\"><\/path><path d=\"M 10 10 q -1 8 8 11 c 5 -1 0 -6 -1 -3 q -4 -3 -5 -5 c 4 -2 -1 -5 -1 -4\" fill=\"#fff\"><\/path><\/svg><\/span><\/a><a aria-label=\"Telegram\" class=\"heateor_sss_button_telegram\" href=\"https:\/\/telegram.me\/share\/url?url=https%3A%2F%2Fjoseamaita.com%2Fen%2Fwp-json%2Fwp%2Fv2%2Fposts%2F152&text=joseamaita.com%20-%20The%20place%20where%20I%20make%20things%20happen.\" title=\"Telegram\" rel=\"nofollow noopener\" target=\"_blank\" style=\"font-size:32px!important;box-shadow:none;display:inline-block;vertical-align:middle\"><span class=\"heateor_sss_svg heateor_sss_s__default heateor_sss_s_telegram\" style=\"background-color:#3da5f1;width:40px;height:40px;margin:0;display:inline-block;opacity:1;float:left;font-size:32px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box\"><svg style=\"display:block;\" focusable=\"false\" aria-hidden=\"true\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"100%\" height=\"100%\" viewBox=\"0 0 32 32\"><path fill=\"#fff\" d=\"M25.515 6.896L6.027 14.41c-1.33.534-1.322 1.276-.243 1.606l5 1.56 1.72 5.66c.226.625.115.873.77.873.506 0 .73-.235 1.012-.51l2.43-2.363 5.056 3.734c.93.514 1.602.25 1.834-.863l3.32-15.638c.338-1.363-.52-1.98-1.41-1.577z\"><\/path><\/svg><\/span><\/a><a aria-label=\"Reddit\" class=\"heateor_sss_button_reddit\" href=\"https:\/\/reddit.com\/submit?url=https%3A%2F%2Fjoseamaita.com%2Fen%2Fwp-json%2Fwp%2Fv2%2Fposts%2F152&title=joseamaita.com%20-%20The%20place%20where%20I%20make%20things%20happen.\" title=\"Reddit\" rel=\"nofollow noopener\" target=\"_blank\" style=\"font-size:32px!important;box-shadow:none;display:inline-block;vertical-align:middle\"><span class=\"heateor_sss_svg heateor_sss_s__default heateor_sss_s_reddit\" style=\"background-color:#ff5700;width:40px;height:40px;margin:0;display:inline-block;opacity:1;float:left;font-size:32px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box\"><svg style=\"display:block;\" focusable=\"false\" aria-hidden=\"true\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"100%\" height=\"100%\" viewBox=\"-3.5 -3.5 39 39\"><path d=\"M28.543 15.774a2.953 2.953 0 0 0-2.951-2.949 2.882 2.882 0 0 0-1.9.713 14.075 14.075 0 0 0-6.85-2.044l1.38-4.349 3.768.884a2.452 2.452 0 1 0 .24-1.176l-4.274-1a.6.6 0 0 0-.709.4l-1.659 5.224a14.314 14.314 0 0 0-7.316 2.029 2.908 2.908 0 0 0-1.872-.681 2.942 2.942 0 0 0-1.618 5.4 5.109 5.109 0 0 0-.062.765c0 4.158 5.037 7.541 11.229 7.541s11.22-3.383 11.22-7.541a5.2 5.2 0 0 0-.053-.706 2.963 2.963 0 0 0 1.427-2.51zm-18.008 1.88a1.753 1.753 0 0 1 1.73-1.74 1.73 1.73 0 0 1 1.709 1.74 1.709 1.709 0 0 1-1.709 1.711 1.733 1.733 0 0 1-1.73-1.711zm9.565 4.968a5.573 5.573 0 0 1-4.081 1.272h-.032a5.576 5.576 0 0 1-4.087-1.272.6.6 0 0 1 .844-.854 4.5 4.5 0 0 0 3.238.927h.032a4.5 4.5 0 0 0 3.237-.927.6.6 0 1 1 .844.854zm-.331-3.256a1.726 1.726 0 1 1 1.709-1.712 1.717 1.717 0 0 1-1.712 1.712z\" fill=\"#fff\"\/><\/svg><\/span><\/a><a class=\"heateor_sss_more\" aria-label=\"More\" title=\"More\" rel=\"nofollow noopener\" style=\"font-size: 32px!important;border:0;box-shadow:none;display:inline-block!important;font-size:16px;padding:0 4px;vertical-align: middle;display:inline;\" href=\"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/posts\/152\" onclick=\"event.preventDefault()\"><span class=\"heateor_sss_svg\" style=\"background-color:#ee8e2d;width:40px;height:40px;margin:0;display:inline-block!important;opacity:1;float:left;font-size:32px!important;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;display:inline;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box;\" onclick=\"heateorSssMoreSharingPopup(this, 'https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/posts\/152', 'joseamaita.com%20-%20The%20place%20where%20I%20make%20things%20happen.', '' )\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" viewBox=\"-.3 0 32 32\" version=\"1.1\" width=\"100%\" height=\"100%\" style=\"display:block;\" xml:space=\"preserve\"><g><path fill=\"#fff\" d=\"M18 14V8h-4v6H8v4h6v6h4v-6h6v-4h-6z\" fill-rule=\"evenodd\"><\/path><\/g><\/svg><\/span><\/a><\/div><div class=\"heateorSssClear\"><\/div><\/div>","protected":false},"author":1,"featured_media":493,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[5,3,13],"tags":[18,19],"class_list":["post-152","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-english","category-industrial-automation","category-opc","tag-opc-ua","tag-opc-ua-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>OPC UA Super Complete Tutorial - joseamaita.com<\/title>\n<meta name=\"description\" content=\"Welcome! You are about to begin a tour to learn how to design and create OPC UA applications using a super complete tutorial. Get ready!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OPC UA Super Complete Tutorial - joseamaita.com\" \/>\n<meta property=\"og:description\" content=\"Welcome! You are about to begin a tour to learn how to design and create OPC UA applications using a super complete tutorial. Get ready!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/\" \/>\n<meta property=\"og:site_name\" content=\"joseamaita.com\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-07T01:53:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-28T19:42:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_005.png\" \/>\n\t<meta property=\"og:image:width\" content=\"306\" \/>\n\t<meta property=\"og:image:height\" content=\"84\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jos\u00e9 Alberto Maita\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jos\u00e9 Alberto Maita\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/\"},\"author\":{\"name\":\"Jos\u00e9 Alberto Maita\",\"@id\":\"https:\/\/joseamaita.com\/en\/#\/schema\/person\/b53d49d3ddf8f348fed0d484b541b1a4\"},\"headline\":\"OPC UA Super Complete Tutorial\",\"datePublished\":\"2021-03-07T01:53:19+00:00\",\"dateModified\":\"2023-02-28T19:42:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/\"},\"wordCount\":1313,\"image\":{\"@id\":\"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_005.png\",\"keywords\":[\"OPC UA\",\"OPC UA tutorial\"],\"articleSection\":[\"English\",\"Industrial Automation\",\"OPC\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/\",\"url\":\"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/\",\"name\":\"OPC UA Super Complete Tutorial - joseamaita.com\",\"isPartOf\":{\"@id\":\"https:\/\/joseamaita.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_005.png\",\"datePublished\":\"2021-03-07T01:53:19+00:00\",\"dateModified\":\"2023-02-28T19:42:10+00:00\",\"author\":{\"@id\":\"https:\/\/joseamaita.com\/en\/#\/schema\/person\/b53d49d3ddf8f348fed0d484b541b1a4\"},\"description\":\"Welcome! You are about to begin a tour to learn how to design and create OPC UA applications using a super complete tutorial. Get ready!\",\"breadcrumb\":{\"@id\":\"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/#primaryimage\",\"url\":\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_005.png\",\"contentUrl\":\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_005.png\",\"width\":306,\"height\":84},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/joseamaita.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OPC UA Super Complete Tutorial\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/joseamaita.com\/en\/#website\",\"url\":\"https:\/\/joseamaita.com\/en\/\",\"name\":\"joseamaita.com\",\"description\":\"The place where I make things happen.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/joseamaita.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/joseamaita.com\/en\/#\/schema\/person\/b53d49d3ddf8f348fed0d484b541b1a4\",\"name\":\"Jos\u00e9 Alberto Maita\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/joseamaita.com\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dfc4d3fa06e5fa2aee2ef3834715e1b8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dfc4d3fa06e5fa2aee2ef3834715e1b8?s=96&d=mm&r=g\",\"caption\":\"Jos\u00e9 Alberto Maita\"},\"url\":\"https:\/\/joseamaita.com\/en\/author\/joseamaita\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"OPC UA Super Complete Tutorial - joseamaita.com","description":"Welcome! You are about to begin a tour to learn how to design and create OPC UA applications using a super complete tutorial. Get ready!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/","og_locale":"en_US","og_type":"article","og_title":"OPC UA Super Complete Tutorial - joseamaita.com","og_description":"Welcome! You are about to begin a tour to learn how to design and create OPC UA applications using a super complete tutorial. Get ready!","og_url":"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/","og_site_name":"joseamaita.com","article_published_time":"2021-03-07T01:53:19+00:00","article_modified_time":"2023-02-28T19:42:10+00:00","og_image":[{"width":306,"height":84,"url":"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_005.png","type":"image\/png"}],"author":"Jos\u00e9 Alberto Maita","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jos\u00e9 Alberto Maita","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/#article","isPartOf":{"@id":"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/"},"author":{"name":"Jos\u00e9 Alberto Maita","@id":"https:\/\/joseamaita.com\/en\/#\/schema\/person\/b53d49d3ddf8f348fed0d484b541b1a4"},"headline":"OPC UA Super Complete Tutorial","datePublished":"2021-03-07T01:53:19+00:00","dateModified":"2023-02-28T19:42:10+00:00","mainEntityOfPage":{"@id":"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/"},"wordCount":1313,"image":{"@id":"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_005.png","keywords":["OPC UA","OPC UA tutorial"],"articleSection":["English","Industrial Automation","OPC"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/","url":"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/","name":"OPC UA Super Complete Tutorial - joseamaita.com","isPartOf":{"@id":"https:\/\/joseamaita.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/#primaryimage"},"image":{"@id":"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_005.png","datePublished":"2021-03-07T01:53:19+00:00","dateModified":"2023-02-28T19:42:10+00:00","author":{"@id":"https:\/\/joseamaita.com\/en\/#\/schema\/person\/b53d49d3ddf8f348fed0d484b541b1a4"},"description":"Welcome! You are about to begin a tour to learn how to design and create OPC UA applications using a super complete tutorial. Get ready!","breadcrumb":{"@id":"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/#primaryimage","url":"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_005.png","contentUrl":"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_005.png","width":306,"height":84},{"@type":"BreadcrumbList","@id":"https:\/\/joseamaita.com\/en\/opc-ua-super-complete-tutorial\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/joseamaita.com\/en\/"},{"@type":"ListItem","position":2,"name":"OPC UA Super Complete Tutorial"}]},{"@type":"WebSite","@id":"https:\/\/joseamaita.com\/en\/#website","url":"https:\/\/joseamaita.com\/en\/","name":"joseamaita.com","description":"The place where I make things happen.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/joseamaita.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/joseamaita.com\/en\/#\/schema\/person\/b53d49d3ddf8f348fed0d484b541b1a4","name":"Jos\u00e9 Alberto Maita","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/joseamaita.com\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/dfc4d3fa06e5fa2aee2ef3834715e1b8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dfc4d3fa06e5fa2aee2ef3834715e1b8?s=96&d=mm&r=g","caption":"Jos\u00e9 Alberto Maita"},"url":"https:\/\/joseamaita.com\/en\/author\/joseamaita\/"}]}},"jetpack_featured_media_url":"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2021\/03\/img_p_03_005.png","_links":{"self":[{"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/posts\/152","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/comments?post=152"}],"version-history":[{"count":80,"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/posts\/152\/revisions"}],"predecessor-version":[{"id":2022,"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/posts\/152\/revisions\/2022"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/media\/493"}],"wp:attachment":[{"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/media?parent=152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/categories?post=152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/tags?post=152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}