Connection QML Type

Stellt eine Verbindung zu einem Server her. Mehr...

Import Statement: import QtOpcUa
Since: QtOpcUa 5.12

Eigenschaften

Signale

Methoden

Ausführliche Beschreibung

Die Haupt-API verwendet Backends, um Verbindungen herzustellen. Sie müssen das Backend vor jedem Verbindungsversuch festlegen.

import QtOpcUa as QtOpcUa

QtOpcUa.Connection {
    backend: "open62541"
}

Component.onCompleted: {
    connection.connectToEndpoint("opc.tcp://127.0.0.1:43344");
}

Eigenschaft Dokumentation

authenticationInformation : AuthenticationInformation

Legt die Authentifizierungsinformationen für diese Verbindung fest. Die Authentifizierungsinformationen müssen vor dem Aufruf von connectToEndpoint festgelegt werden. Wenn keine Authentifizierungsinformationen gesetzt sind, wird der anonyme Modus verwendet. Er hat keine Auswirkung auf die aktuelle Verbindung. Wenn der Client getrennt und dann wieder verbunden wird, werden die neuen Anmeldeinformationen verwendet. Wird diese Eigenschaft gelesen und geschrieben, bevor eine backend gesetzt ist, werden Schreibvorgänge ignoriert und Lesevorgänge geben ungültige AuthenticationInformation zurück.


availableBackends : stringlist [read-only]

Gibt die Namen aller verfügbaren Backends als Liste zurück. Diese werden verwendet, um ein Backend beim Verbindungsaufbau auszuwählen.

Siehe auch Connection::backend.


backend : string

Legt das Backend fest, das für eine Verbindung zum Server verwendet werden soll. Muss vor jedem Verbindungsversuch gesetzt werden.

Siehe auch Connection::availableBackends.


connected : bool [read-only]

Status der Verbindung. true wenn eine Verbindung besteht, sonst false.


connection : QOpcUaClient

Diese Eigenschaft wird nur verwendet, um eine Verbindung von C++ aus zu injizieren. Im Falle eines komplexen Verbindungsaufbaus können Sie C++ verwenden, um alle Details zu regeln. Nachdem die Verbindung aufgebaut ist, kann sie mit dieser Eigenschaft an QML übergeben werden. Der Besitz des Clients wird an QML übertragen.

class MyClass : public QObject {
    Q_OBJECT
    Q_PROPERTY(QOpcUaClient* connection READ connection NOTIFY connectionChanged)

public:
    MyClass (QObject* parent = nullptr);
    QOpcUaClient *connection() const;

signals:
    void connectionChanged(QOpcUaClient *);

Durch die Ausgabe des Signals connectionChanged, wenn der Client-Aufbau abgeschlossen ist, wird der unten stehende QML-Code die Verbindung nutzen.

import QtOpcUa as QtOpcUa

MyClass {
    id: myclass
}

QtOpcUa.Connection {
    connection: myclass.connection
 }

currentEndpoint : QOpcUaEndpointDescription

Eine Endpunktbeschreibung des Servers, mit dem die Verbindung aufgebaut wird. Wenn die Verbindung nicht hergestellt wird, wird eine leere Endpunktbeschreibung zurückgegeben.


defaultConnection : bool

Macht dies zur Standardverbindung. Normalerweise muss jedem Knoten eine zu verwendende Verbindung zugewiesen werden. Wenn diese Eigenschaft auf true gesetzt ist, wird diese Verbindung in allen Fällen verwendet, in denen für einen Knoten keine Verbindung festgelegt ist. Bereits bestehende Verbindungen sind davon nicht betroffen. Wenn defaultConnection bei mehreren Verbindungen auf true gesetzt ist, wird die letzte Verbindung verwendet.

QtOpcUa.Connection {
    ...
    defaultConnection: true
    ...
}

Siehe auch Node.


namespaces : stringlist [read-only]

Liste der Zeichenketten aller auf dem verbundenen Server registrierten Namespace-URIs.


supportedSecurityPolicies : stringlist

Eine Liste von Strings mit den unterstützten Sicherheitsrichtlinien

Diese Eigenschaft ist derzeit als Technologievorschau verfügbar. Daher können sich die bereitgestellte API und Funktionalität jederzeit ohne vorherige Ankündigung ändern.


supportedUserTokenTypes : array[tokenTypes]

Ein Array von Benutzer-Token-Richtlinientypen aller unterstützten Benutzer-Token-Typen.

Diese Eigenschaft ist derzeit als Technologievorschau verfügbar. Daher können die bereitgestellte API und Funktionalität jederzeit ohne vorherige Ankündigung geändert werden.


Signal-Dokumentation

nodeChanged()

Wird ausgegeben, wenn sich der zugrunde liegende Knoten geändert hat. Dies geschieht, wenn sich der Namespace oder der Bezeichner des NodeId geändert hat.

Hinweis: Der entsprechende Handler ist onNodeChanged.


readNodeAttributesFinished(readResults)

Wird ausgesendet, wenn die mit readNodeAttributes() gestartete Leseanforderung beendet ist. Der Parameter readResults ist ein Array von ReadResult Einträgen, die die vom Server angeforderten Werte enthalten.

connection.onReadNodeAttributesFinished(results) {
    for (var i = 0; results.length; i++) {
        if (results[i].status.isGood) {
            console.log(results[i].value);
        } else {
            // handle error
        }
    }
}

Hinweis: Der entsprechende Handler ist onReadNodeAttributesFinished.

Siehe auch readNodeAttributes() und ReadResult.


writeNodeAttributesFinished(writeResults)

Wird gesendet, wenn die mit writeNodeAttributes() gestartete Schreibanforderung beendet ist. Der Parameter writeResults ist ein Array von WriteResult Einträgen, die die vom Server angeforderten Werte enthalten.

for (var i = 0; i < writeResults.length; i++) {
    console.log(writeResults[i].nodeId);
    console.log(writeResults[i].namespaceName);
    console.log(writeResults[i].attribute);

    if (writeResults[i].status.isBad) {
        // value was not written
    }
}

Hinweis: Der entsprechende Handler ist onWriteNodeAttributesFinished.

Siehe auch writeNodeAttributes() und WriteResult.


Dokumentation der Methode

connectToEndpoint(endpointDescription)

Stellt eine Verbindung zu dem mit endpointDescription angegebenen Endpunkt her.

Siehe auch EndpointDescription.


disconnectFromEndpoint()

Trennt eine bestehende Verbindung.


readNodeAttributes(valuesToBeRead)

Diese Funktion wird verwendet, um mehrere Werte von einem Server in einem Durchgang zu lesen. Gibt true zurück, wenn die Leseanforderung erfolgreich übermittelt wurde.

Der Parameter valuesToBeRead muss ein JavaScript-Array mit ReadItem Einträgen sein.

// List of items to read
var readItemList = [];
// Item to be added to the list of items to be read
var readItem;

// Prepare an item to be read

// Create a new read item and fill properties
readItem = QtOpcUa.ReadItem.create();
readItem.ns = "http://qt-project.org";
readItem.nodeId = "s=Demo.Static.Scalar.Double";
readItem.attribute = QtOpcUa.Constants.NodeAttribute.DisplayName;

// Add the prepared item to the list of items to be read
readItemList.push(readItem);

// Add further items
[...]

if (!connection.readNodeAttributes(readItemList)) {
    // handle error
}

Das Ergebnis der Leseanforderung wird durch das Signal readNodeAttributesFinished() bereitgestellt.

Siehe auch readNodeAttributesFinished() und ReadItem.


writeNodeAttributes(valuesToBeWritten)

Diese Funktion wird verwendet, um mehrere Werte in einem Durchgang auf einen Server zu schreiben. Gibt true zurück, wenn die Schreibanforderung erfolgreich abgeschickt wurde.

Der Parameter valuesToBeWritten muss ein JavaScript-Array mit WriteItem Einträgen sein.

// List of items to write
var writeItemList = [];
// Item to be added to the list of items to be written
var writeItem;

// Prepare an item to be written

// Create a new write item and fill properties
writeItem = QtOpcUa.WriteItem.create();
writeItem.ns = "http://qt-project.org";
writeItem.nodeId = "s=Demo.Static.Scalar.Double";
writeItem.attribute = QtOpcUa.Constants.NodeAttribute.Value;
writeItem.value = 32.1;
writeItem.valueType = QtOpcUa.Constants.Double;

// Add the prepared item to the list of items to be written
writeItemList.push(writeItem);

// Add further items
[...]

if (!connection.writeNodeAttributes(writeItemList)) {
    // handle error
}

Das Ergebnis der Schreibanforderung wird durch das Signal Connection::writeNodeAttributesFinished() bereitgestellt.

Siehe auch Connection::writeNodeAttributesFinished() und WriteItem.


© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.