Lernprogramm: Einfache Funktion hinzufügen

In diesem Lernprogramm schreiben Sie eine einfache Funktion, um Ausreißerwerte in der von Robotern zurückgelegten Entfernung zu ermitteln. Testen Sie diese einfache Funktion mit einem Skript, bevor Sie sie auf einen Beispielgerätetyp in anwenden Maximo® Monitor.

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.
    Tipp: Alternativ können Sie zum Installieren von IoT Functions und den zugehörigen Abhängigkeiten die Schritte im Abschnitt "Vorbereitungen" des Lernprogramms: 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 Robotertypen 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 Erstellen von Batch- oder Streaming-Datenmetriken.

Sie testen eine einfache Funktion in Ihrer lokalen Umgebung, um sicherzustellen, dass die Berechnung funktioniert und dass die Syntax korrekt ist.

Im Script erstellen Sie einen Beispielgerätetyp, generieren einige Beispieldaten und wenden die einfache Funktion auf die Beispieldaten an, um eine neue adjusted_distance -Metrik zu erstellen.

Schritte

Führen Sie die folgenden Schritte aus, um eine Berechnung mithilfe einer einfachen Funktion auf Beispieldaten anzuwenden.

Schritt 1: Berechnung definieren

Definieren Sie "adjusted_distance" wie folgt: adjusted_distance = distance * 0.9

Schritt 2: Berechtigungsnachweise in Datei speichern

Legen Sie die Anmeldedaten für die Maximo Monitor Verbindung fest.

  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: Speichern Sie die Berechtigungsnachweisdatei nicht in einem externen Repository.

Schritt 3: Einfache Funktion in Python schreiben

Schreiben Sie ein Script, save_simple_function_locally.py, das die von Robotern zurückgelegte Entfernung anpasst. Verbinden Sie sich im Skript mit Maximo Monitor Ihren Anmeldedaten mit und speichern Sie die Funktion in einem lokalen Modellspeicher. Anweisungen finden Sie in den Inlinekommentaren.

#Import packages and libraries

import datetime as dt
import json
import pandas as pd
import numpy as np
from sqlalchemy import Column, Integer, String, Float, DateTime, Boolean, func
import iotfunctions.bif as bif
from iotfunctions.metadata import EntityType, LocalEntityType
from iotfunctions.db import Database
from iotfunctions.dbtables import FileModelStore


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

#Write the function

def f(df, parameters = None):
    adjusted_distance = df['distance'] * 0.9
    return adjusted_distance

#Save the function to a local model store
model_store = FileModelStore()
model_store.store_model('adjusted_distance', f)

Schritt 4: Funktion in einem lokalen Dateimodellspeicher speichern

Führen Sie das Script save_simple_function_locally.py von Ihrer lokalen Umgebung aus. Eine Datei KPI_MODEL_STOREadjusted_distance wird in demselben Verzeichnis erstellt, in dem Sie Ihr Script gespeichert haben.

Schritt 5: Einfache Funktion in lokaler Umgebung testen

Erstellen Sie ein Script mit dem Namen test_my_simple_function_locally.py. Führen Sie im Script die folgenden Schritte aus:

  1. Importieren Sie Python-Bibliotheken und -Pakete:
     import datetime as dt
     import json
     import pandas as pd
     import numpy as np
     from sqlalchemy import Column, Integer, String, Float, DateTime, Boolean, func
     import iotfunctions.bif as bif
     from iotfunctions.metadata import EntityType, LocalEntityType
     from iotfunctions.db import Database
     from iotfunctions.dbtables import FileModelStore
  2. Verbinden Sie sich mit dem Maximo Monitor :
     with open('credentials_as.json', encoding='utf-8') as F:
         credentials = json.loads(F.read())
     db_schema = None
     model_store = FileModelStore()
     db = Database(credentials=credentials, model_store=model_store)
    				
  3. Erstellen Sie einen Beispielgerätetyp und übergeben Sie die einfache Funktion mithilfe der integrierten Funktion PythonFunction aus dem Modul bif , das Sie aus IoT Functions importiert haben, an sie.
    sample_entity_type = bif.PythonFunction(
        function_code = 'adjusted_distance',
        input_items = ['distance'],
        output_item = 'adjusted_distance',
        parameters = {}
            )
  4. Führen Sie die Methode 'execute_local_test' des Mustergerätetyps aus, um die Funktion in Ihrer lokalen Umgebung zu testen. Speichern Sie die Ergebnisse in einer CSV-Datei.
    sample_entity_type.execute_local_test(db=db, generate_days=1, to_csv=True)

Das Script erstellt ein neues adjusted_distance-Datenelement. Überprüfen Sie die Ergebnisse in der Datei .csv . Wenn dies erfolgreich ist, können Sie die einfache Funktion über die Maximo Monitor Benutzeroberfläche hinzufügen.

Schritt 6: Die einfache Funktion auf den Gerätetyp des Roboters anwenden

  1. Klicken Sie auf der Registerkarte Daten auf Metrik erstellen.
  2. Wählen Sie die Funktion PythonFunction im Katalog aus.
  3. Legen Sie den Bereich fest und klicken Sie auf Weiter.
  4. Wählen Sie distance als Eingabeelement aus.
  5. Geben Sie die einfache Funktion in das Feld function_code ein oder fügen Sie sie ein. Geben Sie Folgendes ein:
    def f(df, parameters = None):
     adjusted_distance = df['distance'] * 0.9
     return adjusted_distance
  6. Klicken Sie auf Weiter
  7. Geben Sie adjusted_distance als Ausgabedatenelement an.
  8. Geben Sie 'Zahl' als Datentyp an.
  9. Klicken Sie auf Erstellen.
  10. Wählen Sie in der Datenelementliste adjusted_distanceaus.
  11. Zeigen Sie die neuen adjusted_distance -Metrikdaten an.

Warten Sie bis zu 5 Minuten, bis die einfache Funktion anhand Maximo Monitor der Beispieldaten ausgewertet hat.