PyUAF - Python bindings for the UAF (Unified Architecture Framework)¶
Introduction¶
This documentation is part of the UAF (Unified Architecture Framework) project, which is hosted at http://github.com/uaf.
It documents the Python bindings for the UAF, which is supported on both Linux and Microsoft Windows.
The PyUAF bindings provide a very convenient interface to create OPC UA applications. For instance, an OPC UA variable can be read by a UAF client with just a few lines of Python code:
# examples/pyuaf/client/easiest_client_example.py
# Start the demo server ($SDK/bin/uaservercpp) of Unified Automation before running this script!
import pyuaf
from pyuaf.util import Address, NodeId
from pyuaf.client import Client
from pyuaf.client.settings import ClientSettings
# create a client named "myClient", and provide the discovery URL of the server (uaservercpp):
myClient = Client(ClientSettings("myClient", ["opc.tcp://localhost:48010"]))
# specify the address of the node of which we would like to read its Value attribute:
# (here we're using an absolute address, i.e. a NodeId(<identifier>, <namespace URI>) and a <server URI>)
someAddress = Address(NodeId("Demo.SimulationSpeed", # NodeId identifier
"http://www.unifiedautomation.com/DemoServer"), # NodeId namespace URI
"urn:UnifiedAutomation:UaServerCpp") # server URI
# read the Value attribute of the node that we just addressed:
result = myClient.read( [someAddress] )
print("The value is %d" %result.targets[0].data.value)
As you can see, all session management is done automatically for you!
More in general, the UAF takes care of some “technical” aspects of the OPC UA communication (such as Session and Subscription management, server discovery, node resolution, ...) so that you can concentrate on the “functional” aspects of your software application.
Project details¶
Project website: http://github.com/uaf
Author: Wim Pessemier
Contact: Wxx.Pxxxxxxxx@ster.kuleuven.be
(replace the x
‘es)
Organization: Institute of Astronomy, KU Leuven (http://fys.kuleuven.be/ster)
Examples¶
- Client examples
- Easiest client example
- How to define addresses?
- How to read some data?
- How to browse some nodes?
- How to read some historical data?
- How to read some data?
- How to read and write structures?
- How to configure all settings?
- How to manually connect to an endpoint without discovery?
- How to connect to a secured endpoint?
API¶
pyuaf
pyuaf.client
pyuaf.client.connectionsteps
pyuaf.client.monitoreditemstates
pyuaf.client.requests
- class AsyncCreateMonitoredDataRequest
- class AsyncCreateMonitoredEventsRequest
- class AsyncMethodCallRequest
- class AsyncReadRequest
- class AsyncWriteRequest
- class BrowseNextRequest
- class BrowseNextRequestTarget
- class BrowseNextRequestTargetVector
- class BrowseRequest
- class BrowseRequestTarget
- class BrowseRequestTargetVector
- class CreateMonitoredDataRequest
- class CreateMonitoredDataRequestTarget
- class CreateMonitoredDataRequestTargetVector
- class CreateMonitoredEventsRequest
- class CreateMonitoredEventsRequestTarget
- class CreateMonitoredEventsRequestTargetVector
- class HistoryReadRawModifiedRequest
- class HistoryReadRawModifiedRequestTarget
- class HistoryReadRawModifiedRequestTargetVector
- class MethodCallRequest
- class MethodCallRequestTarget
- class MethodCallRequestTargetVector
- class ReadRequest
- class ReadRequestTarget
- class ReadRequestTargetVector
- class TranslateBrowsePathsToNodeIdsRequest
- class TranslateBrowsePathsToNodeIdsRequestTarget
- class TranslateBrowsePathsToNodeIdsRequestTargetVector
- class WriteRequest
- class WriteRequestTarget
- class WriteRequestTargetVector
pyuaf.client.results
- class AsyncCreateMonitoredDataResult
- class AsyncCreateMonitoredEventsResult
- class AsyncMethodCallResult
- class AsyncReadResult
- class AsyncResultTarget
- class AsyncResultTargetVector
- class AsyncWriteResult
- class BrowseNextResult
- class BrowseResult
- class BrowseResultTarget
- class BrowseResultTargetVector
- class CreateMonitoredDataResult
- class CreateMonitoredDataResultTarget
- class CreateMonitoredDataResultTargetVector
- class CreateMonitoredEventsResult
- class CreateMonitoredEventsResultTarget
- class CreateMonitoredEventsResultTargetVector
- class HistoryReadRawModifiedResult
- class HistoryReadRawModifiedResultTarget
- class HistoryReadRawModifiedResultTargetVector
- class MethodCallResult
- class MethodCallResultTarget
- class MethodCallResultTargetVector
- class ReadResult
- class ReadResultTarget
- class ReadResultTargetVector
- class TranslateBrowsePathsToNodeIdsResult
- class TranslateBrowsePathsToNodeIdsResultTarget
- class TranslateBrowsePathsToNodeIdsResultTargetVector
- class WriteResult
- class WriteResultTarget
- class WriteResultTargetVector
pyuaf.client.settings
- class ServiceSettings
- class BrowseNextSettings
- class BrowseSettings
- class ClientSettings
- class CreateMonitoredDataSettings
- class CreateMonitoredEventsSettings
- class HistoryReadRawModifiedSettings
- class MethodCallSettings
- class MonitoredItemSettings
- class ReadSettings
- class SessionSettings
- class SessionSecuritySettings
- class SessionSecuritySettingsVector
- class SpecificSessionSettings
- class SubscriptionSettings
- class TranslateBrowsePathsToNodeIdsSettings
- class WriteSettings
pyuaf.client.sessionstates
pyuaf.client.subscriptionstates
pyuaf.util
- class Address
- class ApplicationDescription
- class ApplicationDescriptionVector
- class BrowsePath
- class ByteStringVector
- class DataChangeFilter
- class DataValue
- class DataValueVector
- class DateTime
- class DateTimeVector
- class EndpointDescription
- class EndpointDescriptionVector
- class EnumValue
- class EventFilter
- class ExpandedNodeId
- class ExpandedNodeIdVector
- class ExtensionObject
- class EUInformation
- class GenericStructureValue
- class GenericStructureVector
- class GenericUnionValue
- class GenericUnionVector
- class Guid
- class LocalizedText
- class LoggingInterface
- class LogMessage
- class Mask
- class Matrix
- class ModelChangeStructureDataType
- class ModificationInfo
- class ModificationInfoVector
- class NodeId
- class NodeIdIdentifier
- class PkiCertificate
- class PkiCertificateInfo
- class PkiPrivateKey
- class PkiPublicKey
- class PkiRsaKeyPair
- class PkiIdentity
- class QualifiedName
- class QualifiedNameVector
- class Range
- class ReferenceDescription
- class ReferenceDescriptionVector
- class RelativePath
- class RelativePathElement
- class SdkStatus
- class ServerOnNetwork
- class ServerOnNetworkVector
- class SimpleAttributeOperand
- class SimpleAttributeOperandVector
- class Status
- class StatusVector
- class StringVector
- class StructureDefinition
- class StructureField
- class UInt32Vector
- class UserTokenPolicy
- class UserTokenPolicyVector
- class VariantVector
- class ViewDescription
pyuaf.util.attributeids
pyuaf.util.applicationtypes
pyuaf.util.browsedirections
pyuaf.util.constants
pyuaf.util.errors
pyuaf.util.loglevels
pyuaf.util.messagesecuritymodes
pyuaf.util.monitoringmodes
pyuaf.util.nodeclasses
pyuaf.util.nodeididentifiertypes
pyuaf.util.opcuaidentifiers
pyuaf.util.opcuastatuscodes
pyuaf.util.opcuatypes
pyuaf.util.primitives
- class Boolean
- class SByte
- class Byte
- class Int16
- class UInt16
- class Int32
- class UInt32
- class Int64
- class UInt64
- class Float
- class Double
- class String
- class ByteString
- class BooleanArray
- class SByteArray
- class ByteArray
- class Int16Array
- class UInt16Array
- class Int32Array
- class UInt32Array
- class Int64Array
- class UInt64Array
- class FloatArray
- class DoubleArray
- class StringArray
- class ByteStringArray
pyuaf.util.serverstates
pyuaf.util.securitypolicies
pyuaf.util.structurefielddatatypes
pyuaf.util.statuscodes
pyuaf.util.timestampstoreturn
pyuaf.util.usertokentypes
- A note on dynamic data types
- A note on **kwargs for Client services