TOP
SSV Software Systems Registrieren  Registrieren
Einloggen, um private Nachrichten zu lesen  Einloggen, um private Nachrichten zu lesen
Startseite FAQ Suchen Mitglieder Profil  Login 
SSV Support-Forum
MLS/160A als (I)IoT-Sensor …

 
Neues Thema eröffnen   Neue Antwort erstellen    SSV-Forum Foren-Übersicht >>> RMG/941
<<< Vorheriges Thema - Nächstes Thema >>>  
Beiträge der letzten Zeit anzeigen:   
Autor Nachricht
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1334

BeitragVerfasst am: 13.11.2020, 22:27    Titel: MLS/160A als (I)IoT-Sensor … Antworten mit Zitat

Hallo Forum.

Die Anforderungen an Sensoren für das Internet der Dinge verändern sich nach wie vor in einem beachtlichen Tempo. Vor einiger Zeit reichte noch ein Sensorelement mit einer geeigneten Signalverarbeitung plus eine hochwertige Kommunikationsschnittstelle (z. B. Ethernet oder Wi-Fi) aus. Inzwischen werden komplexe Softwarefunktionen aus dem Umfeld der künstlichen Intelligenz erwartet, um die Sensordaten in Echtzeit zu analysieren. Die folgende Abbildung zeigt die Bausteine einer IoT-Beispielsensorlösung für Maschinen und Anlagen, die mit Hilfe der Amazon-IoT-Cloud realisiert wurde:



1. (I)IoT-Sensorik (Maschinensensor + Gateway). Dient zum Sammeln „gelabelter“ Trainingsdaten und zum Erfassen von Echtzeit-Merkmalsvektoren für die Inferenzmaschine. Das Gateway wird nicht nur für die Sensordatenerfassung, sondern auch für Fernzugriffsaufgaben verwendet (z. B. Fernzugriff auf eine Antriebswellen-SPS oder den Controller eines Frequenzumrichters).

2. AWS S3-Dienst (S3 = Simple Storage Service). Wird zur Speicherung der Machine-Learning-Trainingsdaten und des für den Sensor erzeugten Modells genutzt.

3. AWS SageMaker-Service: Wird zum Erstellen des Machine-Learning-Modells (ML-Modell) und für die Inferenzphase verwendet (Iot-Sensor-Inferenz = Klassifizieren eines Datenvektors an Hand des ML-Modells, die Inferenz Engine des virtuellen Sensors).

4. AWS IoT Core. Schnittstelle zur Entgegennahme eines Datenvektors von der Sensor-Hardware, um die Inferenz auszuführen und um das Inferenzergebnis anderen Anwendungen zur Verfügung zu stellen (entspricht dem "Datenausgang" eines virtuellen Sensors).

5. AWS Lambda-Service. Als I/O-Daten-Dispatcher wird eine AWS-Lambda-Funktion eingesetzt.

6. AWS SNS-Dienst. Ereignisbenachrichtigung mit der Inferenz-Engine-Ausgabe. Bei bestimmten Ereignissen kann der virtuelle Sensor Benachrichtigungen verschicken (z. B. eine SMS, E-Mail usw.).

VG KDW

Siehe auch: https://github.com/SSV-embedded/RMG-941-and-AWS
Siehe auch: https://github.com/SSV-embedded/MLS160A-SDK
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1334

BeitragVerfasst am: 15.02.2021, 15:21    Titel: MLS/160A mit USB ... Antworten mit Zitat

Hallo Forum.

Den Softsensor MLS/160A gibt nicht nur mit einer RS485-Datenschnittstelle. Alternativ ist auf Anfrage auch eine USB-Variante mit Typ A-USB-Stecker verfügbar. Sie kann ohne weitere mechanische und elektrische Anpassungen direkt an jedem PC oder Edge-Gateway mit USB-Steckverbinder betrieben werden. Da USB-Kabel nur relativ kurz sein dürfen, kann der Abstand zwischen einer Maschine als Messdatenquelle und dem PC/Edge-Gateway zur Datenauswertung nur sehr gering ausfallen.



Als MLS/160A-USB-Zubehör kann über GitHub ein Jupyter-Notebook mit einem einfachen Datenerfassungs- und Analysebeispiel geladen werden. Siehe MLS160A-USB.ipynb unter https://github.com/SSV-embedded/MLS160A-SDK/tree/master/notebooks.

Wenn Sie dieses Jupyter-Notebook auf Ihrem PC ausprobieren wollen, muss zunächst einmal die Python-Bibliothek PyDSlog nachinstalliert werden. Siehe hierzu auch https://pypi.org/project/PyDSlog/. Des Weiteren muss im folgenden Einstellungs-Codeblock der „serial_port“ an Ihr System angepasst werden. „COM10“ war die entsprechende Einstellung auf dem Windows-Rechner, auf dem dieser Code zuletzt überprüft wurde.

Code:
### Modify here ###

# Channels
chan = ["ACCX","ACCY","ACCZ"]
# Frequency
frequency = 400
# Signal length
size_signal = 400
# Port
serial_port = "COM10"

###


Ersetzen Sie bitte die Zeichenfolge „COM10“ durch den Namen der virtuellen Schnittstelle, über der MLS/160A-USB mit Ihrem Rechnersystem verbunden ist.

Die weiteren Parameter im Einstellungs-Codeblock legen fest, dass alle drei Achsen (X = ACCX, Y = ACCY und Z = ACCZ) des MLS/160A-Beschleunigungssensors mit 400 Hz jeweils eine Sekunde abgetastet werden. Dadurch entstehen jeweils 400 Messpunkt je Achse.

Wenn Sie die zweite Codezelle des Jupyter-Notebooks in einer Jupyter-Notebook-Sitzung per Run starten, erhalten Sie eine grafische Datendarstellung mit zwei Spalten und jeweils drei Diagrammen. Die linke Spalte enthält die aktuellen MLS/160A-Daten für die drei Achsen X, Y und Z im Zeitbereich. Jedes Diagramm zeigt 400 Datenpunkte, also eine Sekunde an. Die rechte Spalte liefert die gleichen Daten im Frequenzbereich, also nach einer FFT.



Die erste Darstellung mit den zwei mal drei Diagrammen oberhalb dieses Textblocks zeigen ein starkes Rauschen, also einen nicht weiter definierbaren Zustand. Die Daten für die zweite Darstellung weiter unten wurden an einem rotierenden Lüfter erfasst. Man kann im Frequenzbereich der drei Achsen eindeutig die Rotationsfrequenz erkennen.



Der Beispielcode in MLS160A-USB.ipynb läuft in einer „Endlosschleife“ für immer. Wird die USB-Verbindung zum MLS/160A-Sensor getrennt, endet die Codeausführung mit zahlreichen Fehlermeldungen (siehe Beispiel unter GitHub am Ende der Datei MLS160A-USB.ipynb).

VG KDW

P.S.: Das MLS/160A-Handbuch findet man hier https://www.ssv-embedded.de/doks/manuals/sr_mls160a_en.pdf
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1334

BeitragVerfasst am: 18.02.2021, 17:47    Titel: In-System-MQTT-Broker … Antworten mit Zitat

Hallo Forum.

Wird ein RMG/941 zusammen mit dem MLS/160A ausgeliefert, ist ein Beispiel vorinstalliert, dass per Python den Sensordaten-Stream des MLS/160A empfängt und innerhalb des RMG/941-Linux an einen Node-RED-Flow weiterleitet. Dort kommen die Sensordaten als JSON-Objekt in einem Node mit dem Namen mls160a an.



Innerhalb der RMG/941-Node-RED-Umgebung können die Sensordaten gemäß den jeweiligen Anforderungen weiterverarbeitet werden. Mit Hilfe der mls160a-Konfigurationsschnittstelle lassen sich des Weiteren die einzelnen MLS/160A-Achsen auswählen sowie die Abtastfrequenz (eine Einstellung für alle ausgewählten Achsen) konfigurieren.

Die Kommunikation zwischen der Python-Datenerfassungssoftware und dem Node-RED-Flow erfolgt über den In-System-MQTT-Broker (ISMB) des RMG/941. Der ISMB ermöglicht mehreren in ihrer jeweiligen Laufzeitumgebung isolierten Anwendungen den bidirektionalen Datenaustausch per MQTT.



Der Python-Code läuft in der RMG/941-Python3-Laufzeitumgebung. Er ist in einem Skript mit dem Namen ssvmq-pydslogd im Verzeichnis /usr/local/sbin gespeichert. Grundsätzlich ist dieser Code zusammen mit dem entsprechenden Node-RED-Node in andere Systemumgebungen übertragbar. Dabei sind allerdings die hier folgenden Code-Fragmente in https://ssv-comm.de/forum/dokumente/ssvmq-pydslogd zu beachten.

Code:
import paho.mqtt.client as mqtt
import PyDSlog.stream as stream
import time
from datetime import datetime
import json

import sys
import logging
import logging.handlers
import signal


Zunächst einmal müssen alle benötigten Bibliotheken in der Python3-Laufzeitumgebung vorhanden sein. Dazu gehört auch die SSV-Python-Bibliothek PyDSlog. Siehe hierzu auch https://pypi.org/project/PyDSlog/.

Code:
port="/dev/ttyR1"


Weiterhin ist der Name für die benutzte serielle Schnittstelle zum MLS/160A in der Codezeile 151 an die jeweiligen Gegebenheiten anzupassen ("/dev/ttyR1" ist der Device-Name der RS485-Schnittstslle eines RMG/941).

Code:
mqhost = "127.0.0.1"
mqport = 7883


Die Codezeilen 231 und 232 adressieren den RMG/941-ISMB (IP-Adresse plus TCP-Portnummer). Falls der zum Einsatz kommende MQTT-Broker unter anderen Adressparametern betrieben wird, sind diese beiden Zeilen entsprechend anzupassen.

Zum Schluss noch eine Anmerkung: Die hier beschriebenen Funktionen lassen sich auf einem RMG/941 auch nachträglich als App installieren. Siehe http://www.ssv-embedded.de/downloads/igw941/. Die Bausteine sind in der App node-red-contrib-pydslog enthalten.

VG KDW
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    SSV-Forum Foren-Übersicht >>> RMG/941 Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht teilnehmen.

SSV Software Systems GmbH

Dünenweg 5
30419 Hannover

Fon: +49(0)511 / 40 000-0
Fax: +49(0)511 / 40 000-40

sales@ssv-embedded.de


Impressum    ·    Datenschutz    ·    AGB

© 2021 SSV Software Systems GmbH. Alle Rechte vorbehalten.

ISO 9001:2015