Daten als HTTP-Client senden und weiterleiten

Daten als HTTP-Client senden und weiterleiten

Viele Web-basierte Visualisierungslösungen unterstützen das HTTP-Protokoll, um Daten zu empfangen und dann anzuzeigen. Daher zeigen wir in diesem Beitrag, wie das connect-Gateway erhobene Daten als HTTP-Client an ein Dashboard weiterleitet.

In diesem Beispiel gehen wir davon aus, dass wir die Position der Spindel einer Fräse als Datenpunkte erfasst haben. Die aktuellen Werte der X, Y und Z-Koordinaten wollen wir per HTTP-POST an ein fiktives Dashboard weiterleiten.

Das könnte Sie auch interessieren:
Daten als HTTP-Server verarbeiten

Konfiguration des HTTP-Client

Wir definieren zuerst einen Endpoint mit passendem Namen: “Dashboard”. Die Namen helfen uns die gewünschten Elemente innerhalb der Konfigurationsdatei einfach lokalisieren zu können.

<endpoint>
    <name>Dashboard</name>

HTTP-Client Plugin

Für diesen Endpoint wählen wir das HTTP_CLIENT Plugin. Die Konfiguration weiterer Protokollparameter ist in diesem Fall nicht notwendig.

    <protocol plugin="HTTP_CLIENT">
        <name>HttpClient</name>
        <parameters/>

Trigger

Wir wollen die Daten im Dashboard so aktuell wie möglich halten. Der hier konfigurierte passive Trigger lauscht dauerhaft auf neu ankommende Daten von der Fräse. Sobald neue Werte verfügbar sind, sendet das Gateway diese Daten automatisch an unseren Endpoint.

    <trigger>
        <passive/>
    </trigger>

Consumer

Nun legen wir innerhalb des Endpoints einen Consumer an. Der Consumer ist das Dashboard, an das wir die Daten senden. Per http_method POST werden die aktuellen Daten vom Gateway an die konfigurierte endpoint_url verschickt.

        <consumer>
            <name>cnc_1_axis</name>
            <parameters>
                <param key="endpoint_url">
                    http://127.0.0.1:8088/api/v1/48BZ54YoR1Mv26BoYtrm/telemetry
                </param>
                <param key="http_method">POST</param>
            </parameters>

Encoder

Als nächstes konfigurieren wir den Encoder. Dieser nimmt verfügbare Werte aus den Datapoints und bringen sie in das gewünschte Format.

In diesen Fall möchten wir die Daten im JSON-Format weiterleiten. Dazu verwenden wir das JSON_ENCODER Plugin. Mit ihm können wir beliebige JSON-Dokumente mit unseren Daten erzeugen.

            <encoder plugin="JSON_ENCODER">
                <parameters/>

Zuerst geben wir im Mapping den Datenpunkt /cnc1/axis_position_x an, dessen Wert wir im JSON-Dokument verwenden wollen. Außerdem legen wir den Name des Attributes im JSON-Dokument über den Parameter path fest. Auf diese Weise lassen sich auch verschachtelte Strukturen erzeugen.

                <mapping>
                    <datapoint>/cnc_1/axis_position_x</datapoint>
                    <parameters>
                        <param key="path">/axis_position_x</param>
                    </parameters>
                </mapping>
            </encoder>
        </consumer>
</endpoint>

Zur Veranschaulichung zeigen wir hier beispielhaft noch ein generiertes JSON-Dokument, wie es per HTTP POST-Anfrage an das Dashboard gesendet wird.

{
    "/axis_position_x": 13.5
}

Ergebnis

Um Maschinendaten effektiv auswerten zu können, ist es notwendig, einen Überblick über alle produzierten Daten zu bekommen. Das connect-Gateway bietet uns die Möglichkeit alle Daten zu erfassen und flexibel weiter zu geben. Dabei ist die grafische Anzeige aller gesammelten Daten ein häufiger Anwendungsfall.

Hierzu müssen die genau die relevanten Daten in der richtigen Struktur übertragen werden. Ansonsten könnte das Dashboard die Daten nicht verarbeiten. Über den JSON_ENCODER können wir extrem flexibel genau die Daten aufbereiten, die für eine Auswertung sinnvoll sind. Über die REST-Schnittstelle des Dashboards können wir dann mit Hilfe des HTTP_CLIENT Protokolls per HTTP-POST fortlaufend neue Daten in jedes Web-basierte Dashboard laden.