DESIGN-Praxis / embedded-HMI

Qt OPC UA – Ein Tutorial

3. April 2018, 19:36 Uhr | Frank Meerkötter und Jannis Völker, basysKom
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 3

SignalHandling und Write

Die verbundenen Slots nehmen den neuen Wert entgegen und setzen das entsprechende Property im Backend, so dass der neue Wert in der QML-Anwendung zur Verfügung steht. Durch das Emittieren des entsprechenden Changed-Signals im Setter ist die Verwendung von Property-Bindings in QML möglich.

Signal-Handler für DataChange und Read

void OpcUaMachineBackend::percentFilledTank1Updated(QOpcUa::NodeAttribute attr, const QVariant &value)
{
    m_percentFilledTank1 = value.toDouble();
    emit percentFilledTank1Changed(m_percentFilledTank1);
}

void OpcUaMachineBackend::machineDesignationRead(QOpcUa::NodeAttributes attr)
{
    m_machineDesignation = m_machineDesignationNode->attribute(
                       QopcUa::NodeAttribute::Value)
              ).toString();
    emit machineDesignationChanged(m_machineDesignation);
}

 

Der Slot für das Schreiben des Sollwerts verwendet dasselbe QOpcUaNode-Objekt wie das DataChange-Monitoring zum Update des Properties. Hier kann optional ein Slot zur Kontrolle des Erfolgs der Operation mit dem writeFinished-Signal des QOpcUaNode verbunden werden.

Schreiben des Sollwerts auf den Server

void OpcUaMachineBackend::machineWriteTank2TargetPercent(double value)
{
    m_tank2TargetPercentNode->writeAttribute(QOpcUa::NodeAttribute::Value,
                          value);
}

 

In den Slots zum Starten und Stoppen der Pumpe, zum Öffnen des Ventils und für den Reset der Simulation werden die Methoden-Knoten Machine.Start, Machine.Stop, Machine.FlushTank2 und Machine.Reset von m_machineNode aus aufgerufen. Um den Rückgabewert des Methodenaufrufs zu erhalten, kann ein Slot mit dem methodCallFinished-Signal des QOpcUaClient verbunden werden.

Methodenaufruf zum Starten der Pumpe

void OpcUaMachineBackend::startPump()
{
    m_machineNode->callMethod("ns=2;s=Machine.Start");
}

 


  1. Qt OPC UA – Ein Tutorial
  2. Verwendung von Qt OPC UA
  3. Implementierung einer Beispielanwendung
  4. SignalHandling und Write
  5. Eintrag im BackEnd
  6. Fazit und Ausblick

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Componeers GmbH

Weitere Artikel zu Embedded Vision Alliance

Weitere Artikel zu Zertifizierung und Prüfung

Weitere Artikel zu Automatisierung

Weitere Artikel zu Industrie-Computer / Embedded PC

Weitere Artikel zu Betriebssysteme