Lernprogramm: Konstante hinzufügen

In diesem Lernprogramm fügen Sie eine Konstante hinzu und verwenden sie in einer Stapeldatenmetrik. Metriken für Streaming-Daten verwenden keine Konstanten.

Vorbereitende Schritte

  1. Installieren Sie Python 3.9.x in Ihrer Umgebung.
  2. Installieren Sie IoT Functions in Ihrer lokalen Umgebung. Befolgen Sie die Anweisungen in der IoT Functions-Readme-Datei.
    Alternativ können Sie zur Installation von IoT Functions und den zugehörigen Abhängigkeiten die Schritte im Abschnitt "Vorbereitende Schritte" unter Lernprogramm: Angepasste Funktion hinzufügenausführen. Klonen Sie das Starterpaket HelloWorld und importieren Sie es in PyCharm. Installieren Sie die Anforderungen von PyCharm.
  3. Vollständiges Tutorial: Hinzufügen von Ausdrücken zum Hinzufügen einer distance Metrik zum Robotergerätetyp in Maximo Monitor.

Informationen zu diesem Vorgang

Hinweis: Zum Durcharbeiten dieses Lernprogramms verwenden Sie eine Beispielvorlage für Gerätetypen und Daten. Beispielgerätetypen verwenden nicht die neueste Version von Gerätetypen und unterstützen keine Streaming-Datenmetriken. Weitere Informationen finden Sie unter Einführung für Benutzer.

Passen Sie die Entfernung an, um eine Verzögerung zu berücksichtigen.

Schritte

Führen Sie die folgenden Schritte aus, um eine Berechnung anzuwenden, die einen konstanten Wert auf Beispieldaten verweist.

Schritt 1: Berechnung definieren

Definieren Sie 'distance_adjusted_by_constant' wie folgt:

df['distance_adjusted_by_constant'] = df['distance']*delay

Schritt 2: Berechtigungsnachweise in Datei speichern

Anmeldedaten für die Verbindung mit Maximo Monitor.

  1. Laden Sie die credentials_as.json -Dateiherunter.
  2. Ersetzen Sie die Variablen durch Ihre Daten und speichern Sie die Datei auf Ihrer lokalen Maschine.
Hinweis: Achten Sie darauf, die Berechtigungsnachweisdatei nicht in einem externen Repository zu speichern.

Schritt 3: Globale Konstante erstellen

Führen Sie die POST-Konstante API mit der folgenden Nutzlast aus

[
    {
        "name": "ArrayConstant",
        "enabled": true,
        "value": {
            "value": [
                "A",
            ]
        },
        "metadata": {
            "jsonSchema": {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "type": "array",
                "minItems": 1,
                "items": {
                    "type": "string"
                }
            },
            "dataType": "ARRAY",
            "values": [
                "A",
                "B",
                "C"
            ],
            "description": "Sample multi-valued array",
            "dataTypeForArray": [
                "LITERAL"
            ],
            "type": "CONSTANT",
            "required": true,
            "tags": []
        },
        "resourceId": null,
        "resourceUUID": null,
        "isBuiltin": false
    },
    {
        "name": "alpha",
        "enabled": true,
        "value": {
            "value": 4
        },
        "metadata": {
            "dataType": "NUMBER",
            "values": null,
            "description": "general purpose numeric constant",
            "type": "CONSTANT",
            "required": true,
            "tags": []
        },
        "resourceId": null,
        "resourceUUID": null,
        "isBuiltin": false
    },
    {
        "name": "delay",
        "enabled": true,
        "value": {
            "value": 120
        },
        "metadata": {
            "dataType": "NUMBER",
            "values": null,
            "description": "Adjustment to output due to delay",
            "type": "CONSTANT",
            "required": true,
            "tags": []
        },
        "resourceId": null,
        "resourceUUID": null,
        "isBuiltin": false
    },
    {
        "name": "text",
        "enabled": true,
        "value": {
            "value": "ABC"
        },
        "metadata": {
            "dataType": "LITERAL",
            "values": null,
            "description": "This is string text",
            "type": "CONSTANT",
            "required": true,
            "tags": []
        },
        "resourceId": null,
        "resourceUUID": null,
        "isBuiltin": false
    },
    {
        "name": "json",
        "enabled": true,
        "value": {
            "value": {
                "A": "B",
                "B": "A",
                "C": {
                    "A": "B",
                    "B": "A"
                }
            }
        },
        "metadata": {
            "dataType": "JSON",
            "values": null,
            "description": "This is JSON text",
            "type": "CONSTANT",
            "required": true,
            "tags": []
        },
        "resourceId": null,
        "resourceUUID": null,
        "isBuiltin": false
    },
    {
        "name": "Gamma",
        "enabled": true,
        "value": {
            "value": 5
        },
        "metadata": {
            "dataType": "NUMBER",
            "values": null,
            "description": "general purpose numeric constant",
            "type": "CONSTANT",
            "required": true,
            "tags": []
        },
        "resourceId": null,
        "resourceUUID": null,
        "isBuiltin": false
    },
]

Schritt 4: Wert der Konstanten über die Benutzerschnittstelle festlegen

  1. Wählen Sie auf der Seite Setup auf der Registerkarte Devices einen Gerätetyp aus und klicken Sie auf Set up device type.
  2. Klicken Sie auf das Symbol "Gerätetyp konfigurieren" und wählen Sie dann Einschränkungen verwaltenaus.
  3. Klicken Sie für die Bedingung delay auf das Symbol 'Bearbeiten'.
  4. Weisen Sie den Wert 2 zu und klicken Sie auf Speichern.

Schritt 5: Auf die Konstante in einem Ausdruck verweisen

  1. Klicken Sie auf der Registerkarte Daten auf Metrik erstellen .
  2. Wählen Sie die Funktion PythonExpression im Katalog aus.
  3. Legen Sie den Geltungsbereich fest und klicken dann auf Weiter.
  4. Geben oder fügen Sie den folgenden Ausdruck ein:
        df['distance']*c['delay']
  5. Klicken Sie auf Weiter.
  6. Geben Sie distance_adjusted_by_factor als Ausgabe an.
  7. Klicken Sie auf Erstellen.
  8. Zeigen Sie die neuen distance_adjusted_by_factor -Metrikdaten an.

Warten Sie bis zu 5 Minuten, bis Maximo Monitor um den Ausdruck anhand der Beispieldaten zu bewerten.

Schritte zum Aktualisieren, Rückgängigmachen und Löschen konstanter Werte

Führen Sie die folgenden Schritte aus, um Konstanten zu aktualisieren, ihre Werte zu ändern oder eine Konstante zu löschen

Globalen Standardwert aktualisieren

  1. Wählen Sie auf der Einrichtungsseite auf der Registerkarte Geräte einen Gerätetyp aus, und klicken Sie ihn an.
  2. Klicken Sie auf das Symbol "Gerätetyp konfigurieren" und wählen Sie dann Einschränkungen verwaltenaus.
  3. Bewegen Sie im Dialogfeld Konstanten den Mauszeiger über die Konstante, wählen Sie weitere Aktionen und dann Globalen Standardwert ändern aus
  4. Weisen Sie einen Wert zu und klicken Sie auf Speichern.

Aktualisieren von Konstanten auf Ressourcenebene

  1. Wählen Sie auf der Einrichtungsseite auf der Registerkarte Geräte einen Gerätetyp aus, und klicken Sie ihn an.
  2. Klicken Sie auf das Symbol "Gerätetyp konfigurieren" und wählen Sie dann Einschränkungen verwaltenaus.
  3. Bewegen Sie im Dialogfeld Konstanten den Mauszeiger auf die Konstante und wählen Sie Bearbeiten
  4. Weisen Sie einen Wert zu und klicken Sie auf Speichern.

Die Konstante der Ressourcenebene auf den globalen Standardwert zurücksetzen

  1. Wählen Sie auf der Einrichtungsseite auf der Registerkarte Geräte einen Gerätetyp aus, und klicken Sie ihn an.
  2. Klicken Sie auf das Symbol "Gerätetyp konfigurieren" und wählen Sie dann Einschränkungen verwaltenaus.
  3. Bewegen Sie im Dialogfeld Konstanten den Mauszeiger auf die Konstante und wählen Sie Bearbeiten
  4. Wählen Sie die Option Auf den globalen Standardwert zurücksetzen.
  5. Wählen Sie Rückgängig, um Ihre Wahl zu bestätigen.

Optionaler Schritt: Aufheben der Registrierung der Konstante

Schreiben Sie ein Script unregister_constant.py und führen Sie es aus. Das Aufheben der Registrierung der Konstante wirkt sich auf alle Berechnungen aus, die diese Konstante verwenden.

  #Import packages and libraries

  import logging
  logging.basicConfig(level=logging.DEBUG)
  logger = logging.getLogger(__name__)
  import pandas as pd
  import json
  #Import these classes from IoT Functions
  from iotfunctions.db import Database
  from iotfunctions.ui import UISingle,UIMulti

  #Connect to the Maximo Monitor
  with open('credentials_as.json', encoding='utf-8') as F:
    credentials = json.loads(F.read())
  db_schema = None
  db = Database(credentials=credentials)

  #Connect to the Maximo Monitor
  db = Database(credentials = credentials)

  #Unregister the constant using the database object
  db.unregister_constants(['delay'])

Optionaler Schritt: Löschen Sie die Konstante der Ressourcenebene oder der globalen Ebene

  1. Wählen Sie auf der Einrichtungsseite auf der Registerkarte Geräte einen Gerätetyp aus, und klicken Sie ihn an.
  2. Klicken Sie auf das Symbol "Gerätetyp konfigurieren" und wählen Sie dann Einschränkungen verwaltenaus.
  3. Bewegen Sie im Dialogfeld Konstanten den Mauszeiger über die Konstante, wählen Sie weitere Aktionen aus und wählen Sie dann Konstante löschen
  4. Wählen Sie Entfernen, um Ihre Wahl zu bestätigen.