Dynamische Eingabeformulare und Tabellenansichten für benutzerdefinierte Protokolle

Die DAQORE Custom Logs App ist eine Lösung für benutzerdefinierte Formulareingaben und die Visualisierung von manuell erfassten Daten in der IXON Cloud. Passen Sie die Eingabemaske und die tabellarische Ausgabe einfach an Ihre Bedürfnisse an und starten Sie die Protokollierung. Hinzufügen, Ändern und Entfernen von Eingabefeldern, ohne dass bestehende Daten verloren gehen. Mathematische Ausdrücke (mit Operatoren und Funktionen wie +, -, *, /, (), sin, sqrt, etc.) können konfiguriert werden, um einzelne numerische Eingaben in Metadaten zu verwandeln. Die protokollierten Daten können nach Zeit gefiltert und von den Benutzern exportiert werden.

Die manuell erfassten Daten werden in Ihrem IXON-Firmenkonto gespeichert und/oder an einen WebHook gesendet. Die Konfiguration der Eingabefelder und der Tabellenansicht erfolgt im Admin-Bereich des IXON Portals. Mögliche Eingabefeldtypen sind Strings, Texte, Zahlen, Checkboxen, Auswahlen und Daten. Es ist möglich, Eingabefelder in Abschnitte zu gruppieren. Eingabefelder können erforderlich oder optional sein.

App Details

Dokumentation

Die Konfiguration wird in den App-Einstellungen im Bereich Admin/Apps des IXON Cloud-Admin-Panels gespeichert. Die App-Einstellungen folgen einer einfachen Struktur im YAML-Format.

"configurations":
  - "key": "uniqueKeyA"
    "inputs":
    "outputs":

  - "key": "uniqueKeyB"
    "inputs":
    "outputs":

Jede Konfiguration muss über einen eindeutigen Schlüssel (key), Eingaben (inputs) und Ausgaben (outputs) verfügen. Der eindeutige Schlüssel ist die Referenz im IXON Cloud Studio und legt fest, welche Konfiguration mit der UI-Komponente verknüpft wird. Der Konfigurationsschlüssel muss in die Konfiguration der UI-Komponente eingegeben werden. Jede Eingabe definiert ein Eingabeelement im Webformular, während jede Ausgabe eine Spalte in der Tabellenansicht definiert. Ein vollständiges Funktionsbeispiel könnte wie folgt aussehen.

"configurations":
  - "key": "machinePerformance"
      "inputs":
        - "key": "machineName"
          "type": "String"
          "label": "DAQORE_CL_MACHINE_NAME"
          "required": true
        
        - "key": "numGoodParts"
          "type": "Number"
          "min": 0
          "step": 1
          "label": "DAQORE_CL_NUM_GOOD_PARTS"
          "required": true
        
        - "key": "numBadParts"
          "type": "Number"
          "min": 0
          "step": 1
          "label": "DAQORE_CL_NUM_BAD_PARTS"
          "required": true

      "outputs":
        - "type": "String"
          "label": "DAQORE_CL_MACHINE_NAME"
          "reference": "machineName"

        - "type": "Number"
          "label": "DAQORE_CL_NUM_GOOD_PARTS"
          "numDecimalPlaces": 0
          "reference": "numGoodParts"

        - "type": "Number"
          "label": "DAQORE_CL_NUM_BAD_PARTS"
          "numDecimalPlaces": 0
          "reference": "numBadParts"

        - "type": "Number"
          "label": "DAQORE_CL_PERFORMANCE_FACTOR"
          "numDecimalPlaces": 0
          "prefix": "pre"
          "unit": "%"
          "postfix": "post"
          "references":
            - "numGoodParts"
            - "numBadParts"
          "formula": "(numGoodParts - numBadParts) / (numGoodParts + numBadParts) * 100"

Sie können beliebig viele Konfigurationen definieren, solange alle eindeutige Schlüssel haben. Sie können auch beliebig viele Tabellenansichten auf einer Geräteseite ausgeben, sofern diese in das Raster passen.

Eingaben müssen einen Schlüssel (key), einen Typ (type) und eine Bezeichnung (label) enthalten. Andere Attribute sind optional. Zahlen können beispielsweise so konfiguriert werden, dass sie einen Mindest- und Höchstwert haben, wodurch automatisch eine Eingabevalidierungsprüfung im Webformular aktiviert wird. Ausgaben müssen einen Typ (type), eine Bezeichnung (label) und eine Referenz (reference) auf die zugewiesene Eingabe enthalten. Übersetzungsschlüssel, die mit „DAQORE_CL_” beginnen, können als Bezeichnungen (label) für Eingaben und Ausgaben verwendet werden.

Number input

- "key": "yourNumberInput"
  "type": "Number"
  "label": "Number input"
  "min": 0
  "max": 200
  "step": 1

Text input

- "key": "yourTextInput"
  "type": "Text"
  "label": "Text input"
  "placeholder": "Enter text"

Rich text input

- "key": "yourRichTextInput"
  "type": "RichText"
  "label": "Rich text input"
  "placeholder": "Enter rich text"

Boolean input

- "key": "yourBooleanInput"
  "type": "Checkbox"
  "label": "Yes or no?"

String input

- "key": "yourStringInput"
  "type": "String"
  "label": "String input"

Selection input

- "key": "yourSelectionInput"
  "type": "Selection"
  "label": "Options"
  "options":
    - "value": "small"
      "shortLabel": "Small"
      "label": "Small (really small)"
    - "value": "medium"
      "shortLabel": "Medium"
      "label": "Medium (something in between)"
    - "value": "big"
      "shortLabel": "Big"
      "label": "Big (really big)"
  "defaultValue": "small"

Number output

- "type": "Number"
  "label": "Number output"
  "reference": "yourNumberInput"
  "numDecimalPlaces": 0

Text output

- "type": "Text"
  "label": "Text output"
  "reference": "yourTextInput"

Rich text output

- "type": "RichText"
  "label": "Rich text output"
  "reference": "yourRichTextInput"

Boolean output

- "type": "Checkbox"
  "label": "Boolean output"
  "reference": "yourBooleanInput"

String output

- "type": "String"
  "label": "String output"
  "reference": "yourStringInput"

Selection output

- "type": "Selection"
  "label": "Selected output"
  "reference": "YourSelectionInput"

Computation output

- "type": "Number"
  "label": "Performance factor"
  "numDecimalPlaces": 0
  "prefix": "pre"
  "unit": "%"
  "postfix": "post"
  "references":
    - "numGoodParts"
    - "numBadParts"
  "formula": "(numGoodParts - numBadParts) / (numGoodParts + numBadParts) * 100"