Difference between revisions of "Inside the Python support in QuickOPC"

From OPC Labs Knowledge Base
Jump to navigation Jump to search
Line 8: Line 8:
  
 
The disadvantages of the COM approach include:
 
The disadvantages of the COM approach include:
- Strictly limited to Windows only.
+
* Strictly limited to Windows only.
- Multiple layers (QuickOPC is .NET API primarily, the COM API layer sits on top of it, then Python layer accesses this COM API), with performance and possibly reliability implications.
+
* Multiple layers involved (QuickOPC is .NET API primarily, the COM API layer sits on top of it, then Python layer accesses this COM API), with performance and possibly also reliability implications.
 +
* The fact that COM API is involved "in the middle" precludes usage of many .NET features, such as generics, methods overloads, or callbacks.
 +
* The '''pypiwin32''' package is poorly documented, and does not appear to be very actively maintained.
 +
* Apparent impossibility to make the event notifications work.

Revision as of 15:48, 3 November 2023

QuickOPC can currently be used from Python using two approaches: With the help of Python.NET (the new, recommended approach), and over Microsoft COM (older approach, deprecated).

QuickOPC with Python.NET

QuickOPC with Python (COM)

In this approach, the pypiwin32 Python package is used to access QoickOPC COM API from Python. For the reasons explained further below, this approach is now deprecated. The examples using the COM approach remain in the product, at least for the time being.

The disadvantages of the COM approach include:

  • Strictly limited to Windows only.
  • Multiple layers involved (QuickOPC is .NET API primarily, the COM API layer sits on top of it, then Python layer accesses this COM API), with performance and possibly also reliability implications.
  • The fact that COM API is involved "in the middle" precludes usage of many .NET features, such as generics, methods overloads, or callbacks.
  • The pypiwin32 package is poorly documented, and does not appear to be very actively maintained.
  • Apparent impossibility to make the event notifications work.