{"id":70,"date":"2020-07-12T13:05:00","date_gmt":"2020-07-12T13:05:00","guid":{"rendered":"https:\/\/joseamaita.com\/en\/?p=70"},"modified":"2023-02-28T19:40:10","modified_gmt":"2023-02-28T19:40:10","slug":"openopc-and-python-37-on-windows","status":"publish","type":"post","link":"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/","title":{"rendered":"OpenOPC and Python 3.7 on Windows"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#Introducing_OpenOPC_and_Python_37\" >Introducing OpenOPC and Python 3.7<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#Prerequisites_and_Considerations\" >Prerequisites and Considerations<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#Basic_Settings\" >Basic Settings<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#Advanced_Settings\" >Advanced Settings<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#Details_of_Test_Environment\" >Details of Test Environment<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#Installation\" >Installation<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#Getting_Started_with_OpenOPC\" >Getting Started with OpenOPC<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#Install_the_OpenOPC_Gateway_Service\" >Install the OpenOPC Gateway Service<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#Usage\" >Usage<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#Start_the_OpenOPC_Gateway_Service\" >Start the OpenOPC Gateway Service<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#Stop_the_OpenOPC_Gateway_Service\" >Stop the OpenOPC Gateway Service<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#Configure_the_way_the_OpenOPC_Gateway_Service_starts\" >Configure the way the OpenOPC Gateway Service starts<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#Implement_the_OpenOPC_library_module\" >Implement the OpenOPC library module<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#a_Clientserver_in_the_same_node\" >a. Client\/server in the same node<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#b_Clientserver_in_different_nodes\" >b. Client\/server in different nodes<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#Documentation\" >Documentation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#Credits\" >Credits<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#License\" >License<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#Contact\" >Contact<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Introducing_OpenOPC_and_Python_37\"><\/span>Introducing OpenOPC and Python 3.7<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>OpenOPC and Python 3.7 on Windows are the correct setup when working with some industrial automation projects that implement industry-tested OPC DA servers. It\u2019s possible to use it from learning how the OPC DA protocol actually works to connect to multiple servers and build applications for deeper data integration.<\/p>\n\n\n\n<p><strong>OpenOPC for Python<\/strong> is a free, open source and easy to use OPC (OLE for Process Control) library that works very well with the popular Python programming language (now, version 3.7) on Windows. Also, includes a Windows gateway service that enable non-Windows clients to also access OPC-DA calls.<\/p>\n\n\n\n<p>The procedure described here allow us to integrate OpenOPC 1.2.0 with recent versions of Python (v3.7+) and Pyro4 (v4.80+) installed on Windows.<\/p>\n\n\n\n<p>Interested in the original version from Barry Barnreiter? Go <a href=\"http:\/\/openopc.sourceforge.net\/\" target=\"_blank\" aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener\">here<\/a>. However, if you want to try a different fork that works with Python 3.4+ (if you make some minor changes to the Python source code that affects Pyro4), go to the GitHub version of Anton D. Kachalov by clicking <a href=\"https:\/\/github.com\/ya-mouse\/openopc\" target=\"_blank\" aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener\">here<\/a>.<\/p>\n\n\n\n<p>To start working with OpenOPC and Python 3.7 on Windows, we need to know what&#8217;s included in the package:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>An OpenOPC Gateway Service (a Windows service providing remote access to the OpenOPC library, which is useful to avoid DCOM issues).<\/li><li>An OpenOPC for Python library module (used to connect to an OPC server from both Windows and Linux).<\/li><li>A system check module (allows you to check the health of your system for performance, free memory, tasks list, among others).<\/li><li>A free OPC automation wrapper (required DLL file).<\/li><li>Documentation from the original author.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Prerequisites_and_Considerations\"><\/span>Prerequisites and Considerations<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Basic_Settings\"><\/span>Basic Settings<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Follow these steps to prepare your work environment:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>First, understand the main goal here. We want to use OpenOPC 1.2.0 and Python 3.7.6 on Windows to exchange data with a standard OPC DA server on a Windows system through an OPC client application.<\/li><li>Next, design a system architecture for OPC DA remote data communication (both the server and client nodes are in different machines):<\/li><\/ul>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"769\" height=\"204\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_001-1.png\" alt=\"Prepare OPC DA system architecture to work with OpenOPC and Python\" class=\"wp-image-80\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_001-1.png 769w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_001-1-300x80.png 300w\" sizes=\"auto, (max-width: 769px) 100vw, 769px\" \/><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\"><li>Make sure to download and install a recent Python version (we use here v3.7.6 on 32-bit) in both your server and client nodes. To do this, go <a href=\"https:\/\/www.python.org\/downloads\/release\/python-376\/\" target=\"_blank\" aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener\">here<\/a>.<\/li><\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"656\" height=\"425\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_002-1.png\" alt=\"Python 3.7 downloads page\" class=\"wp-image-81\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_002-1.png 656w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_002-1-300x194.png 300w\" sizes=\"auto, (max-width: 656px) 100vw, 656px\" \/><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\"><li>Make sure to download and install Python for Windows Extensions (pywin32) for the Python version you&#8217;re using (3.7) and for both your server and client nodes (pywin32-228.win32-py3.7.exe). To do this, go <a href=\"https:\/\/github.com\/mhammond\/pywin32\/releases\">h<\/a><a href=\"https:\/\/github.com\/mhammond\/pywin32\/releases\" target=\"_blank\" aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener\">e<\/a><a href=\"https:\/\/github.com\/mhammond\/pywin32\/releases\">re<\/a>.<\/li><\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1016\" height=\"531\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_003.png\" alt=\"Python for Windows Extensions on GitHub (required to work with OpenOPC)\" class=\"wp-image-84\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_003.png 1016w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_003-300x157.png 300w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_003-768x401.png 768w\" sizes=\"auto, (max-width: 1016px) 100vw, 1016px\" \/><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\"><li>Make sure to download and install a recent Pyro4 version (we use here v4.80) in both your server and client nodes. To do this, open a terminal prompt and use the &#8220;pip install Pyro4&#8221; command (it also installs associated package, &#8220;serpent&#8221;).<\/li><\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"458\" height=\"110\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_004.png\" alt=\"Installing Pyro4 with serpent on Windows (compatible version with Python 3.7)\" class=\"wp-image-87\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_004.png 458w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_004-300x72.png 300w\" sizes=\"auto, (max-width: 458px) 100vw, 458px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Advanced_Settings\"><\/span>Advanced Settings<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Make sure to set these environment variables in your server node (use your own IP address in the OPC_GATE_HOST variable).<\/li><\/ul>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-1 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"wp-block-code\"><code>OPC_CLASS=Matrikon.OPC.Automation;Graybox.OPC.DAWrapper;HSCOPC.Automation;RSI.OPCAutomation;OPC.Automation\nOPC_CLIENT=OpenOPC\nOPC_GATE_HOST=192.168.1.6 # IMPORTANT: Replace with your own IP address\nOPC_GATE_PORT=7766\nOPC_HOST=localhost\nOPC_MODE=dcom\nOPC_SERVER=Hci.TPNServer;HwHsc.OPCServer;opc.deltav.1;AIM.OPC.1;Yokogawa.ExaopcDAEXQ.1;OSI.DA.1;OPC.PHDServerDA.1;Aspen.Infoplus21_DA.1;National Instruments.OPCLabVIEW;RSLinx OPC Server;KEPware.KEPServerEx.V4;Matrikon.OPC.Simulation;Prosys.OPC.Simulation<\/code><\/pre>\n<\/div>\n<\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"612\" height=\"599\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_005.png\" alt=\"Required environmental variables for OpenOPC on Windows\" class=\"wp-image-89\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_005.png 612w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_005-300x294.png 300w\" sizes=\"auto, (max-width: 612px) 100vw, 612px\" \/><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\"><li>Make sure to allow the firewall to keep the port 7766 open. If in doubt, and you&#8217;re doing a quick test, just turn off your firewall completely.<\/li><\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"170\" height=\"182\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_006.png\" alt=\"Firewall port 7766 must be open on Windows\" class=\"wp-image-92\"\/><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\"><li>Consider to apply the DCOM configuration guidelines written <a href=\"https:\/\/www.softwaretoolbox.com\/dcom\/html\/configuring_dcom.html\" target=\"_blank\" aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener\">here<\/a> for both the server and client nodes.<\/li><\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"965\" height=\"799\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_007.png\" alt=\"Website for tutorial on DCOM configuration guidelines on Windows\" class=\"wp-image-94\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_007.png 965w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_007-300x248.png 300w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_007-768x636.png 768w\" sizes=\"auto, (max-width: 965px) 100vw, 965px\" \/><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\"><li>Keep in mind this scheme if you&#8217;re still have questions about which packages are required and which ones are optional for you to work without issues (remember that Python is necessary on all platforms):<\/li><\/ul>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-2 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"wp-block-code\"><code>1. Win32 platform, using the OpenOPC Gateway Service\n\nPywin32: optional\nPyro4: required\n\n2. Win32 platform, talking to OPC Servers directly using COM\/DCOM\nPywin32: required\nPyro4: optional\n\n3. Non-Windows platform (use of Gateway Service is mandatory)\nPywin32: not applicable\nPyro4: required<\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<ul class=\"wp-block-list\"><li>For easy OPC client application testing, make sure to install an OPC server in your Windows machine (for instance, &#8220;MatrikonOPC Simulation Server&#8221;).<\/li><\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"553\" height=\"686\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_008.png\" alt=\"Download page for MatrikonOPC Simulation Server (very useful to test OpenOPC)\" class=\"wp-image-97\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_008.png 553w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_008-242x300.png 242w\" sizes=\"auto, (max-width: 553px) 100vw, 553px\" \/><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\"><li>In order to get the most from the OpenOPC package, Windows developers should install both Pywin32 and Pyro4. Using Pyro4 to talk to the Gateway Service provides a quick and easy method for bypassing the DCOM security nightmares which are all too common when using OPC.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Details_of_Test_Environment\"><\/span>Details of Test Environment<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Now, we&#8217;ll consider this specific environment:<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"339\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_009-1024x339.png\" alt=\"Details of test environment that includes OpenOPC and Windows versions\" class=\"wp-image-100\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_009-1024x339.png 1024w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_009-300x99.png 300w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_009-768x254.png 768w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_009.png 1042w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Installation\"><\/span>Installation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Getting_Started_with_OpenOPC\"><\/span>Getting Started with OpenOPC<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Begin to work with this package by doing this:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Clone or download the repository as a .zip file from <a href=\"https:\/\/github.com\/joseamaita\/openopc120\" target=\"_blank\" aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener\">here<\/a> in both your server and client nodes.<\/li><\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"353\" height=\"420\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_010.png\" alt=\"OpenOPC 1.2.0 on GitHub\" class=\"wp-image-102\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_010.png 353w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_010-252x300.png 252w\" sizes=\"auto, (max-width: 353px) 100vw, 353px\" \/><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\"><li>Extract the compressed file to a folder in both your server and client nodes (for instance, &#8220;C:\\OpenOPC120&#8221;).<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"112\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_011.png\" alt=\"Contents of extracted OpenOPC package on Windows\" class=\"wp-image-104\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_011.png 605w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_011-300x56.png 300w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Open a command prompt window (run it as administrator), go to your work directory and change to the &#8220;lib&#8221; folder. Then, register the OPC automation wrapper (gbda_aut.dll) in both the server and client nodes using the &#8220;regsvr32&#8221; command. Finally, check that the registration was successful.<\/li><\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"361\" height=\"252\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_012.png\" alt=\"Registering &quot;gbda_aut.dll&quot; (required for OpenOPC on Windows)\" class=\"wp-image-106\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_012.png 361w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_012-300x209.png 300w\" sizes=\"auto, (max-width: 361px) 100vw, 361px\" \/><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\"><li>If, for any reason, you want to uninstall this file and remove it from your system registry later, type this in the command line:<\/li><\/ul>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"wp-block-code\"><code>C:\\OpenOPC120\\lib&gt;regsvr32 gbda_aut.dll -u<\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Install_the_OpenOPC_Gateway_Service\"><\/span>Install the OpenOPC Gateway Service<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Achieve this goal by running the &#8220;OpenOPCService.py&#8221; script with the Python interpreter and the &#8220;install&#8221; argument (remember to do it as administrator):<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>In the server node and as administrator, change to the &#8220;src&#8221; folder and install the &#8220;OpenOPC Gateway Service&#8221; by typing this in the command line:<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"813\" height=\"374\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_013.png\" alt=\"Command to install the OpenOPC Gateway Service on Windows\" class=\"wp-image-109\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_013.png 813w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_013-300x138.png 300w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_013-768x353.png 768w\" sizes=\"auto, (max-width: 813px) 100vw, 813px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Usage\"><\/span>Usage<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Start_the_OpenOPC_Gateway_Service\"><\/span>Start the OpenOPC Gateway Service<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Complete this task from one of two ways (make sure to have it installed first):<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>By clicking the &#8220;Start&#8221; link on the &#8220;OpenOPC Gateway Service&#8221; from the &#8220;Services&#8221; window (Start -&gt; Control Panel -&gt; System and Security -&gt; Administrative Tools).<\/li><li>By running the &#8220;net start SERVICE&#8221; command like this:<\/li><\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"670\" height=\"89\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_014.png\" alt=\"Command to start the OpenOPC Gateway Service on Windows\" class=\"wp-image-111\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_014.png 670w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_014-300x40.png 300w\" sizes=\"auto, (max-width: 670px) 100vw, 670px\" \/><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\"><li>You can also try to start this in &#8220;debug&#8221; mode, if you have problems starting the service:<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"778\" height=\"76\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_015-1.png\" alt=\"Command to start the OpenOPC Gateway Service in debug mode on Windows\" class=\"wp-image-114\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_015-1.png 778w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_015-1-300x29.png 300w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_015-1-768x75.png 768w\" sizes=\"auto, (max-width: 778px) 100vw, 778px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Stop_the_OpenOPC_Gateway_Service\"><\/span>Stop the OpenOPC Gateway Service<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Complete this task from one of two ways:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>By clicking the &#8220;Stop&#8221; link on the &#8220;OpenOPC Gateway Service&#8221; from the &#8220;Services&#8221; window (Start -&gt; Control Panel -&gt; System and Security -&gt; Administrative Tools).<\/li><li>By running the &#8220;net stop SERVICE&#8221; command.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Configure_the_way_the_OpenOPC_Gateway_Service_starts\"><\/span>Configure the way the OpenOPC Gateway Service starts<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>If you are going to use this service frequently, it would be better to configure it to start in &#8220;automatic&#8221; mode. To do this:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Select the &#8220;OpenOPC Gateway Service&#8221; from the &#8220;Services&#8221; window (Start -&gt; Control Panel -&gt; System and Security -&gt; Administrative Tools).<\/li><li>Right-click and choose &#8220;Properties&#8221;.<\/li><li>Change the startup mode to &#8220;Automatic&#8221;. Click &#8220;Apply&#8221; and &#8220;OK&#8221; buttons.<\/li><li>Start the service (if not already started).<\/li><\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"404\" height=\"466\" src=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_016-1.png\" alt=\"Startup type for OpenOPC Gateway Service on Windows\" class=\"wp-image-117\" srcset=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_016-1.png 404w, https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_016-1-260x300.png 260w\" sizes=\"auto, (max-width: 404px) 100vw, 404px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Implement_the_OpenOPC_library_module\"><\/span>Implement the OpenOPC library module<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The idea here is to test the OpenOPC library in two scenarios. Let\u2019s see:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"a_Clientserver_in_the_same_node\"><\/span>a. Client\/server in the same node<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Go to your server station and make sure you have completed the following prerequisites:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Windows 10 (64-bit)<\/li><li>Python 3.7.6 32-bit<\/li><li>Python for Windows Extensions Build 228 for Python 3.7<\/li><li>Pyro4 4.80<\/li><li>OpenOPC version: 1.2.0<\/li><li>OpenOPC Gateway Service version: 1.2.0<\/li><li>MatrikonOPC Simulation Server<\/li><\/ul>\n\n\n\n<p>Also, check these steps:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Make sure the &#8220;OpenOPC Gateway Service&#8221; is installed and running.<\/li><li>Make sure the &#8220;MatrikonOPC Simulation Server&#8221; is installed and running.<\/li><li>Go to your OpenOPC local repository (downloaded from <a href=\"https:\/\/github.com\/joseamaita\/openopc120\" target=\"_blank\" aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener\">here<\/a>) and change to the &#8220;src&#8221; folder.<\/li><li>Then, open a command prompt to open a Python interpreter.<\/li><li>Type in the following instructions (also, follow the output):<\/li><\/ul>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-4 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; import OpenOPC\n&gt;&gt;&gt; opc = OpenOPC.open_client('localhost')\n&gt;&gt;&gt; opc    # here the \"opc\" object was created successfully\n&lt;Pyro4.core.Proxy \u2026; not connected; for PYRO:obj_cfdb802c74654f21849adf9572fbee4b ...\n&gt;&gt;&gt; opc.servers()\n&#91;'RSOPC Gateway', 'FactoryTalk Gateway', 'Kepware.KEPServerEX.V6', 'RSLinx OPC Server', 'RSLinx Remote OPC Server', 'Matrikon.OPC.Simulation.1']\n&gt;&gt;&gt; opc.connect('Matrikon.OPC.Simulation')\n&gt;&gt;&gt; opc.list()\n&#91;'Simulation Items', 'Configured Aliases']\n&gt;&gt;&gt; opc.close()<\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>Make sure to get similar responses from the system.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"b_Clientserver_in_different_nodes\"><\/span>b. Client\/server in different nodes<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Go to your server station and make sure you have completed the following prerequisites:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Windows 10 (64-bit)<\/li><li>Python 3.7.6 32-bit<\/li><li>Python for Windows Extensions Build 228 for Python 3.7<\/li><li>Pyro4 4.80<\/li><li>OpenOPC version: 1.2.0<\/li><li>OpenOPC Gateway Service version: 1.2.0<\/li><li>MatrikonOPC Simulation Server<\/li><\/ul>\n\n\n\n<p>Also, check these steps:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Make sure the &#8220;OpenOPC Gateway Service&#8221; is installed and running.<\/li><li>Make sure the &#8220;MatrikonOPC Simulation Server&#8221; is installed and running.<\/li><li>Now, go to your OpenOPC repository in the remote client node and change to the &#8220;src&#8221; folder.<\/li><li>Then, open a command prompt to open a Python interpreter.<\/li><li>Type in the following instructions (also, follow the output):<\/li><\/ul>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-5 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; import OpenOPC\n&gt;&gt;&gt; opc = OpenOPC.open_client(\"192.168.1.6\") # IP address for OPC DA server\n&gt;&gt;&gt; opc    # here the \"opc\" object was created successfully\n&lt;Pyro4.core.Proxy \u2026; not connected; for PYRO:obj_e931559b8624441bac6744f006638d2 ...\n&gt;&gt;&gt; opc.servers()\n&#91;'RSOPC Gateway', 'FactoryTalk Gateway', 'Kepware.KEPServerEX.V6', 'RSLinx OPC Server', 'RSLinx Remote OPC Server', 'Matrikon.OPC.Simulation.1']\n&gt;&gt;&gt; opc.connect('Matrikon.OPC.Simulation')\n&gt;&gt;&gt; opc.list()\n&#91;'Simulation Items', 'Configured Aliases']\n&gt;&gt;&gt; opc.close()<\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>Make sure to get similar responses from the system.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Documentation\"><\/span>Documentation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>A PDF manual for OpenOPC is included in this package inside the &#8220;doc&#8221; folder, written by the original author. Users and developers are encouraged to also look at the <a href=\"http:\/\/openopc.sourceforge.net\/\" target=\"_blank\" aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener\">OpenOPC web site<\/a> for additional usage examples that may not be contained in the manual.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Credits\"><\/span>Credits<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The authors of this package are:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-6 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<pre class=\"wp-block-code\"><code>Copyright (c) 2008-2012 by Barry Barnreiter (barry_b@users.sourceforge.net)\nCopyright (c) 2014 by Anton D. Kachalov (mouse@yandex.ru)\nCopyright (c) 2017 by Jos\u00e9 A. Maita (jose.a.maita@gmail.com)<\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"License\"><\/span>License<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>This software is licensed under the terms of the GNU GPL v2 license plus a special linking exception for portions of the package. This license is available in the &#8220;LICENSE.txt&#8221; file.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Contact\"><\/span>Contact<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>If you need technical assistance to implement this in a larger project, go to the main site\u00a0<a aria-label=\"undefined (opens in a new tab)\" href=\"https:\/\/joseamaita.com\/en\/\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>\u00a0or\u00a0<a href=\"https:\/\/joseamaita.com\/en\/research-and-development-at-your-reach\/\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a>\u00a0for more detailed information.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introducing OpenOPC and Python 3.7 OpenOPC and Python 3.7 on Windows are the correct setup when working with some industrial automation projects that implement industry-tested OPC DA servers. It\u2019s possible to use it from learning how the OPC DA protocol actually works to connect to multiple servers and build applications for deeper data integration. OpenOPC&hellip;&nbsp;<a href=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">OpenOPC and Python 3.7 on Windows<\/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\/70'><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%2F70\" 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%2F70\" 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%2F70\" 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%2F70\" 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%2F70&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%2F70&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\/70\" 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\/70', '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":494,"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":"off","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":[8,10,9,6,7,12],"class_list":["post-70","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-english","category-industrial-automation","category-opc","tag-opc-da","tag-opc-da-client","tag-opc-server","tag-openopc","tag-python3-7","tag-windows"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>OpenOPC and Python 3.7 on Windows - joseamaita.com<\/title>\n<meta name=\"description\" content=\"OpenOPC and Python 3.7 on Windows is the right setup when working with certain industrial automation projects that implement industry-tested OPC DA servers.\" \/>\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\/openopc-and-python-37-on-windows\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OpenOPC and Python 3.7 on Windows - joseamaita.com\" \/>\n<meta property=\"og:description\" content=\"OpenOPC and Python 3.7 on Windows is the right setup when working with certain industrial automation projects that implement industry-tested OPC DA servers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/\" \/>\n<meta property=\"og:site_name\" content=\"joseamaita.com\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-12T13:05:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-28T19:40:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_017.png\" \/>\n\t<meta property=\"og:image:width\" content=\"269\" \/>\n\t<meta property=\"og:image:height\" content=\"99\" \/>\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=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/\"},\"author\":{\"name\":\"Jos\u00e9 Alberto Maita\",\"@id\":\"https:\/\/joseamaita.com\/en\/#\/schema\/person\/b53d49d3ddf8f348fed0d484b541b1a4\"},\"headline\":\"OpenOPC and Python 3.7 on Windows\",\"datePublished\":\"2020-07-12T13:05:00+00:00\",\"dateModified\":\"2023-02-28T19:40:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/\"},\"wordCount\":1340,\"image\":{\"@id\":\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_017.png\",\"keywords\":[\"OPC DA\",\"OPC DA client\",\"OPC Server\",\"OpenOPC\",\"Python3.7\",\"Windows\"],\"articleSection\":[\"English\",\"Industrial Automation\",\"OPC\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/\",\"url\":\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/\",\"name\":\"OpenOPC and Python 3.7 on Windows - joseamaita.com\",\"isPartOf\":{\"@id\":\"https:\/\/joseamaita.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_017.png\",\"datePublished\":\"2020-07-12T13:05:00+00:00\",\"dateModified\":\"2023-02-28T19:40:10+00:00\",\"author\":{\"@id\":\"https:\/\/joseamaita.com\/en\/#\/schema\/person\/b53d49d3ddf8f348fed0d484b541b1a4\"},\"description\":\"OpenOPC and Python 3.7 on Windows is the right setup when working with certain industrial automation projects that implement industry-tested OPC DA servers.\",\"breadcrumb\":{\"@id\":\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#primaryimage\",\"url\":\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_017.png\",\"contentUrl\":\"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_017.png\",\"width\":269,\"height\":99},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/joseamaita.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OpenOPC and Python 3.7 on Windows\"}]},{\"@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":"OpenOPC and Python 3.7 on Windows - joseamaita.com","description":"OpenOPC and Python 3.7 on Windows is the right setup when working with certain industrial automation projects that implement industry-tested OPC DA servers.","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\/openopc-and-python-37-on-windows\/","og_locale":"en_US","og_type":"article","og_title":"OpenOPC and Python 3.7 on Windows - joseamaita.com","og_description":"OpenOPC and Python 3.7 on Windows is the right setup when working with certain industrial automation projects that implement industry-tested OPC DA servers.","og_url":"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/","og_site_name":"joseamaita.com","article_published_time":"2020-07-12T13:05:00+00:00","article_modified_time":"2023-02-28T19:40:10+00:00","og_image":[{"width":269,"height":99,"url":"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_017.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":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#article","isPartOf":{"@id":"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/"},"author":{"name":"Jos\u00e9 Alberto Maita","@id":"https:\/\/joseamaita.com\/en\/#\/schema\/person\/b53d49d3ddf8f348fed0d484b541b1a4"},"headline":"OpenOPC and Python 3.7 on Windows","datePublished":"2020-07-12T13:05:00+00:00","dateModified":"2023-02-28T19:40:10+00:00","mainEntityOfPage":{"@id":"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/"},"wordCount":1340,"image":{"@id":"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#primaryimage"},"thumbnailUrl":"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_017.png","keywords":["OPC DA","OPC DA client","OPC Server","OpenOPC","Python3.7","Windows"],"articleSection":["English","Industrial Automation","OPC"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/","url":"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/","name":"OpenOPC and Python 3.7 on Windows - joseamaita.com","isPartOf":{"@id":"https:\/\/joseamaita.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#primaryimage"},"image":{"@id":"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#primaryimage"},"thumbnailUrl":"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_017.png","datePublished":"2020-07-12T13:05:00+00:00","dateModified":"2023-02-28T19:40:10+00:00","author":{"@id":"https:\/\/joseamaita.com\/en\/#\/schema\/person\/b53d49d3ddf8f348fed0d484b541b1a4"},"description":"OpenOPC and Python 3.7 on Windows is the right setup when working with certain industrial automation projects that implement industry-tested OPC DA servers.","breadcrumb":{"@id":"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#primaryimage","url":"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_017.png","contentUrl":"https:\/\/joseamaita.com\/en\/wp-content\/uploads\/sites\/2\/2020\/07\/img_p_01_017.png","width":269,"height":99},{"@type":"BreadcrumbList","@id":"https:\/\/joseamaita.com\/en\/openopc-and-python-37-on-windows\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/joseamaita.com\/en\/"},{"@type":"ListItem","position":2,"name":"OpenOPC and Python 3.7 on Windows"}]},{"@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\/2020\/07\/img_p_01_017.png","_links":{"self":[{"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/posts\/70","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=70"}],"version-history":[{"count":42,"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/posts\/70\/revisions"}],"predecessor-version":[{"id":2861,"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/posts\/70\/revisions\/2861"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/media\/494"}],"wp:attachment":[{"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/media?parent=70"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/categories?post=70"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/joseamaita.com\/en\/wp-json\/wp\/v2\/tags?post=70"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}