... standards1
Most technologies are W3C standards.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... (SOAP)2
To be correct, SOAP is not an acronym for Simple Object Access Protocol anymore, instead it's simply ``SOAP''.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... messages3
More information about XML Schema can be found in [VLI02].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... technologies4
For instance, HTTPS can be used to secure a HTTP channel.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... pass5
On some slower machines, certain server operations may fail as they rely on a predefined execution time of certain operations.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...ex_quickstart6
A demo server, implemented with PyOPC, is set up at http://violin.qwer.tk:8000/, which may, however, not be available all the time. There are several other public OPC XML-DA compliant servers available. Some addresses for such servers may be found at http://www.opcfoundation.org, moreover Advosol also offers access to some demo servers (see http://www.advosol.com).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... messages7
This process is hidden from developers, instead PyOPC provides abstract Python objects for accessing underlying SOAP messages.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... items8
OPC items are basically containers which may hold a piece of information. They resemble fieldbus data points and may contain arbitrary data.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... operation9
Every request and response SOAP message has each a read and write method.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... framework10
The reason for these unsupported data types is that the underlying SOAP framework, ZSI, does also not support them.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... lists11
OPC XML-DA further allows to nest arrays in arrays, however this is currently not supported by PyOPC
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... client12
This sample code can also be found in the file samples/clients/simple.py in the PyOPC distribution
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... made13
This event-based mechanism must not be confused with multi-threading.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... parallel14
The speed gain is currently not very significant, as fast XML parsers are quite efficient compared to other tasks, such as serializing the SOAP message.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... empty15
A ContainerItem is empty, if the attribute 'IsEmpty' is set to true. This happens if it is created such as i=ItemContainer() and no attribute is ever set.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... error16
The OPC XML-DA specification is quite loose on this topic, therefore in PyOPC concurrent SPRs are prohibited.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.