Mit Hilfe von Nachrichten können Sie Befehle, Zustandsaktualisierungen oder Daten wie JSON zwischen Systemen und Anwendungen austauschen. Nachrichten dienen als Netzwerk-Queues, die mit dem Sender-Empfänger-Modell arbeiten.

Voraussetzungen

Sie finden die Nachrichten- und -Konfigurations-APIs von SystemLink auf der Palette „Datenaustausch“ in LabVIEW, im LabVIEW NXG Web Module und in der G Web Development Software.
Hinweis In diesem Beispiel werden die Nachrichten- und Konfigurations-APIs der G Web Development Software verwendet. Sie können in LabVIEW Nachrichten mit demselben Programmcode zwischen Systemen übertragen.

Vorgehensweise

  1. Erstellen Sie das folgende Diagramm in einem VI zum Austauschen von Nachrichten.

    Die grauen Bereiche können je nach Programmierzweck variabel gestaltet werden.

    1"Open Configuration" initiiert eine Verbindung mit einem SystemLink-Server.
    2Mit "Open" wird eine Nachrichten-Session mit dem Server erstellt, mit der Sie eine Nachrichten-Queue empfangen können.
    3"Subscribe" registriert einen Endpunkt, beispielsweise eine Webanwendung, für ein bestimmtes Thema.
    Hinweis Abonnenten eines Themas erhalten jede zu diesem Thema veröffentlichte Nachricht ab dem Zeitpunkt, ab dem sie abonniert haben. Sie erhalten keine Nachrichten und haben keinen Zugriff auf Nachrichten, die vor diesem Zeitpunkt gesendet wurden.
    4"Read" gibt eine Nachricht aus der Warteschlange aus.
    Wenn keine Nachrichten in der Warteschlange vorhanden sind, wird der Aufruf synchron bis zum angegebenen Timeout oder bis zum maximalen vom Webdienst festgelegten Timeout blockiert, je nachdem, welcher Wert kleiner ist. Wenn der Eingang "Timeouts (ms)" unverbunden bleibt, hat der Knoten "Read" ein Standard-Timeout von 100 Millisekunden. In diesem Beispiel ist der Timeout auf 2000 Millisekunden festgelegt.
    Hinweis

    Der maximale Timeout für den NI-Webserver beträgt 10 Sekunden. Sie können den Timeout für den NI-Webserver bearbeiten.

    Bearbeiten Sie die Konfigurationsdatei des Servers, um den Timeout für den NI-Webserver anzupassen. Weitere Informationen dazu finden Sie unter "Konfigurieren des NI-Webservers".

    Wenn Sie "Read" verwenden, können Sie mit Hilfe des VIs "Aus JSON zurückkonvertieren" das Analysieren von Nachrichten in einem Webbrowser vereinfachen.

    Verwenden Sie eine While-Schleife, um Nachrichten so lange zu lesen, bis eine bestimmte Bedingung erfüllt ist. In diesem Beispiel liest der Knoten Nachrichten, bis ein Fehler auftritt.

  2. Erstellen Sie das folgende Diagramm in einem VI zum Veröffentlichen von Nachrichten.

    Die grauen Bereiche können je nach Programmierzweck variabel gestaltet werden.

    1"Open Configuration" initiiert eine Verbindung mit einem SystemLink-Server.
    2Mit "Open" wird eine Nachrichten-Session mit dem Server erstellt, mit der Sie Nachrichten an eine Nachrichten-Queue übertragen können.
    3"Publish" schreibt eine Nachricht an ein Thema. Wenn mehrere Nachrichten veröffentlicht werden, liest der Teilnehmer die Nachrichten in der Reihenfolge, in der sie empfangen werden.

    Verwenden Sie "In JSON konvertieren", wenn Sie mit Hilfe von "Publish" LabVIEW-Datentypen in einen String umwandeln (die einzige Datentypnachricht, die unterstützt wird) zum einfachen Interagieren mit den Daten beim Lesen von Nachrichten in LabVIEW und anderen JSON-unterstützen Sprachen.

    Mit Hilfe einer Case-Struktur können Sie die Bedingungen für die Veröffentlichung festlegen. In diesem Beispiel schreibt "Publish" Nachrichten, bis Sie den Schalter "Publish" auf dem Panel ausschalten.

    Verwenden Sie eine While-Schleife, um Tags so lange zu veröffentlichen, bis eine bestimmte Bedingung erfüllt ist. In diesem Beispiel schreibt "Publish" Nachrichten, bis ein Fehler auftritt.

    4Mit "Close" wird die Nachrichten-Session mit dem Server beendet.
    5Mit "Close Configuration" wird die Verbindung bereinigt, die der Konfiguration zugeordnet ist, indem alle offenen Referenzen auf erstellte Objekte ungültig gemacht werden.

Problembehandlung

Wenn ein Fehler auftritt, probieren Sie die folgenden Strategien zur Fehlersuche aus:
  • Rufen Sie "Subscribe" auf, bevor Sie "Read" aufrufen. Sie müssen ein Thema abonnieren, bevor Ihr Programm eine Nachricht lesen kann.
  • Stellen Sie sicher, dass Sie das richtige Thema abonniert haben, bevor Sie den Programmcode ausführen.
    Hinweis Bei der Eingabe des Themas wird zwischen Groß- und Kleinbuchstaben unterschieden.