Mit diesem Demonstrator zeigen wir unser Messuhr Funkmodul M8 und unser externes Display 280.
Beide Messuhr-Module sind zur ständigen Übertragung der Messwerte konfiguriert. Die Messwerte werden an einen MQTT Broker gesendet. Ein Python Programm im Hintergrund übernimmt diese Messwerte, subtrahiert sie und sendet das Ergebnis an das externe Display.

Konfiguration der Messuhr-Funkmodule

Für das Demo-Projekt werden die Messuhrmodule über eine USB Stromversorgung mit Energie versorgt. Genauso wäre eine Energieversorgung über Akku möglich.
Nach dem Einschalten der Module werden diese zunächst über eine Web-Oberfläche konfiguriert. Hierzu stellen die Module einen eigenen Access-Point zur Verfügung „raaare_[mac-adresse]“. Nach der WLAN-Verbindung mit diesem Accesspoint kann über einen beliebigen Browser unter der Adresse http://192.168.33.1 eine Verbindung zum Device aufgebaut werden.
In der Konfigurationsoberfläche werden die wesentlichen Parameter eingestellt.

Die Verbindungsparameter zum WLAN Netzwerk und zum MQTT Broker werden eingegeben.
Es wird ein zyklischer Messintervall von 200ms gewählt. Damit werden 5 Messungen pro Sekunde ausgeführt und zum MQTT Broker gesendet.
Für jede Messuhr wird ein individueller MQTT Topic gewählt, z.B.
rare/gauge1 und rare/gauge2.

Konfiguration des Displays

Ebenso wie die Funkmodule der Messmittel hat auch das Display eine eigene Konfigurationsoberfläche. Nachdem die Stromversorgung zum Display hergestellt ist öffnet auch das Display einen eigenen Accesspoint. Nach der WLAN Verbindung zum Accesspoint erfolgt die Konfiguration durch den Aufruf von „http://192.168.4.1“ im Browser.

Auch hier wird die Verbindung zum WLAN und MQTT Broker eingetragen. Der MQTT topic kann frei gewählt werden.

In unserem Beispiel verwenden wir ein Python Programm um die Messwerte zu übernehmen, zu subtrahieren und dann an das Display zu senden:

import paho.mqtt.client as mqttcli
import time

MQTT_SERVER = "localhost"
MQTT_PORT = 1883
MQTT_SUB = "rare/"
MQTT_CLI = 'mqtt-cli-python-1'
USERNAME = '' # optional
PASSWORD = 'secret'
RECONNECT_RATE = 2
MAX_RECONNECT_COUNT = 999
MAX_RECONNECT_DELAY = 30

# gauge:
#   get data:
# M4: rare/<id>/digimatic/value
# M8: rare/<id>/meas/value     
#   request data:
# M4: rare/<id>/digimatic/request/set   (no payload)
# M8: rare/<id>/in/meas/rep_cnt    payload=1
MQTT_CH1_TOKEN = "gauge1"
MQTT_CH1_ISM4 = False
MQTT_CH1_INTERVAL = True
MQTT_CH2_TOKEN = "gauge2"
MQTT_CH2_ISM4 = False
MQTT_CH2_INTERVAL = True
# display:
# mqtt: free to configure
MQTT_DISP = "rare/display/1/value"

value1 = 0.0
value2 = 0.0
hasValue1 = False

# mqtt client connect
def on_connect(client, userdata, flags, rc):
    if rc == 0 and client.is_connected():
        print("mqtt connected")
        # client.subscribe(MQTT_SUB+'#')
        if (MQTT_CH1_ISM4):
            client.subscribe(MQTT_SUB+MQTT_CH1_TOKEN+'/digimatic/value')
        else:
            client.subscribe(MQTT_SUB+MQTT_CH1_TOKEN+'/meas/value')
        if (MQTT_CH2_ISM4):
            client.subscribe(MQTT_SUB+MQTT_CH2_TOKEN+'/digimatic/value')
        else:
            client.subscribe(MQTT_SUB+MQTT_CH2_TOKEN+'/meas/value')
    else:
        print(f'mqtt connect failed. code={rc}')

# auto reconnect if connection get lost
def on_disconnect(client, userdata, rc):
    print(f'mqtt disconnected, code={rc}')
    reconnect_count = 0
    reconnect_delay = 1
    while reconnect_count < MAX_RECONNECT_COUNT:
        print(f"mqtt reconnecting in {reconnect_delay} sec")
        time.sleep(reconnect_delay)
        try:
            client.reconnect()
            print("mqtt reconnected")
            return
        except Exception as err:
            print("mqtt reconnect failed: {err}")
        reconnect_delay *= RECONNECT_RATE
        reconnect_delay = min(reconnect_delay, MAX_RECONNECT_DELAY)
        reconnect_count += 1
    print("mqtt reconnect failed after {reconnect_count} attempts")
    global doExit
    doExit = True

# mqtt client receiver
def on_message(client, userdata, msg):
    global hasValue1
    global value1
    global value2
    topics = msg.topic.rsplit('/')
    payload = str(msg.payload.decode("utf-8"))
    print(f"mqtt data received: {topics} = {payload}")
    time.sleep(0.03) # secs - avoid "bad char in struct format"
    if ((topics[2] == "meas") or ((topics[2] == "digimatic"))) and (topics[3] == "value"):
        if (topics[1] == MQTT_CH1_TOKEN) and (len(topics)==4):
            try:
                value1 = float(payload)
            except:
                print(f"payload invalid") # e.g. "E:001" if no value available
        elif (topics[1] == MQTT_CH2_TOKEN) and (len(topics)==4):
            try:
                value2 = float(payload)
            except:
                print(f"payload invalid")
        sendToDisp(value2-value1)

def doPublish(topic,value):
    if mqtt.is_connected():
        result = mqtt.publish(topic, value)
        # result: [0, 1]
        status = result[0]
        if status == 0:
            print(f'  mqtt send ok: {topic}={value}')
        else:
            print(f'  mqtt send failed: {topic}={value}')
        time.sleep(0.05) # secs - avoid "bad char in struct format" 0.04

def sendToDisp(value):
    # send value to display
    # mqtt.publish(MQTT_DISP,str(value))
    doPublish(MQTT_DISP,round(value, 3))

print(f"mqtt connect...")
mqtt = mqttcli.Client(client_id = MQTT_CLI)
if USERNAME != "":
    mqtt.username_pw_set(USERNAME, PASSWORD)
mqtt.on_connect = on_connect
mqtt.on_message = on_message
mqtt.on_disconnect = on_disconnect
mqtt.connect(MQTT_SERVER, MQTT_PORT, keepalive=120)
mqtt.loop_start()
time.sleep(1) # secs
print(f"press ctrl-c to stop")
try:
    while not doExit:
        mqtt.loop_forever()
finally:
    print("done.")
    mqtt.disconnect()

Ein kleines Video zeigt den Demostrator in Aktion.

Messuhr mit externer Anzeige und Funkverbindung (Anbindung über Funkmodul M4)

Mit unserer Digitalanzeige für Messmittel bieten wir eine einfache Möglichkeit die Messwerte auf einem externen Display darzustellen. Die Anbindung des externen Displays für die Messuhr (oder ein anderes Messmittel wie Messschieber oder Bügelmessschraube) erfolgt über ein Kabel oder über Funk. Durch die Verwendung allgemeiner und offener Standards können die großen Displays sehr universell eingesetzt werden. Entweder als reine Anzeige zum Beispiel einer einzelnen Messuhr oder als Teil einer komplexen MQTT oder LAN Infrastruktur zur Anbindung über eine Funkverbindung. Als Funkprotokolle werden sowohl MQTT als auch WebSocket jeweils über WLAN (WiFi) unterstützt.

Einsatzmöglichkeiten der Fernanzeige für verschiedene Messgeräte

Das Angebot für eine einfache, externe Messwertanzeige für Messuhr oder Messschieber für Mess-, Anzeige- oder Prüfaufgaben ist am Markt sehr übersichtlich. Entsprechend bedienen wir mit unserem Funk-Anzeigemodul für Messuhren ein Produkt in dieser Nische für Anwendungsfälle in welchen ein eigener PC, Smartphone oder Tablet entweder als überdimensioniert gelten oder aufgrund der damit verbundenen administrativen Aufwände ausscheiden.

Das Stand-Alone Display mit TFT Farbbildschirm kann als externe große Messwertanzeige für Messmittel wie Messuhr, Messschieber oder Bügelmessschraube verwendet werden.

MQTT und WLAN für Messmittel sind unsere Passion. Dennoch gibt es Anforderungen, in welchen eine kabellose Übertragung nicht gewünscht oder notwendig ist.
Entsprechend kann dieses Modul nicht nur als WLAN-Funkanzeige sondern auch über ein Kabel als kabelgebundene Fernanzeige für eine Messuhr oder ein anderes Messgerät verbunden werden. Als weitere Verbindungsmöglichkeit besteht die Option per WLAN Funkverbindung eine Verbindung zum Messsystem über das MQTT Protokoll oder HTTP / WebSockets herzustellen.
Als kabelgebundenes Protokoll wird das Mitutoyo Digimatic Protokoll oder auch ein serielles Protokoll wie es z.B. von Mahr-Messuhren oder den Messuhren von Helios-Preisser verwendet wird unterstützt.

Die Anzeige wird mit einem 5V Steckernetzteil mit USB Kabel ausgeliefert. Der Versorgungsspannungsanschluss an der Anzeige erfolgt über einen Micro-USB Stecker.

Die Fernanzeige mit aktivierter Grenzwertüberwachung (IO/NIO, grün/rot) und Bereichsanzeige

Produktvarianten

Die Messwertanzeige ist in 2 Varianten lieferbar:

(a) Reine Anzeige ohne Touch-Screen. [Produkt im Shop]

(b) Modell mit berühungsemfindlichem Bildschirm (Touch-Screen) [Produkt im Shop]

Auch bei dem Modell ohne Touch-Display kann eine Grenzwertüberwachung über die Web-Oberfläche vorgenommen werden. Beim Touch-Modell kann diese Einstellung jedoch direkt vom Bediener an der Anzeige vorgenommen werden. Über die „set“ „>0<“ Taste kann hier eine Nullstellung direkt am Displaymodul durchgeführt werden.

Grenzwertüberwachung und Nullstellen über den Touchscreen

Eine konfigurierbare Grenzwertüberwachung ermöglich das Beurteilen des Messergebnisses an der Fernanzeige mit aktiver Grün-Rot-Umschaltung.
Der Zielbereich wird über eine Balkenanzeige zusätzlich visualisiert.

Weiter kann über eine Offsetvorgabe/Nullstellung ein Zielbereich ausserhalb der realen Messdimensionen eingestellt werden.

Die Grenzen können extern über die Web-Oberfläche konfiguriert werden oder bei dem Display-Modul mit Touchscreen auch direkt am Display eingegeben und verändert werden.

konfiguration der grenzwerte und des datenoffsets am touchscreen der messwertanzeige

Zum Ändern der Grenzwerte und zur Eingabe des Datenoffsets wird zunächst die gewünschte Zeile angetippt. Mit den „<“ „>“ Tasten wird die gewünschte Dezimalstelle des Wertes markiert. Dann kann über „up“ und „dn“ der Wert der Ziffer inkrementiert oder dekrementiert werden.

„set“ übernimmt den aktuellen Wert als negatives Offset („Nullstellung“).

„ok“ beendet das Setup.

Der Hintergrund der Messanzeige als auch die Balkenanzeige wechselt beim Erreichen des IO Wertes die entsprechende Farbe. Die Vorgabefarben ROT und GRÜN können vom Anwender durch individuelle Farben in der Web-Konfiguration verändert werden.

Konfigurationsmöglichkeiten

Die Grundkonfiguration erfolgt über eine Web-Oberfläche. Hierzu stellt das Anzeigemodul eine eigene Web-Schnittstelle bereit. Diese ermöglicht weitreichende Konfigurationsmöglichkeiten über alle Features der Fernanzeige.

Web Oberfläche zur Konfiguration des Remote Displays über einen Browser

Kabelverbindung

Wenn keine Funkverbindung zum Einsatz kommt, kann mit einem konfektionierten Kabel aus unser Fertigung die Verbindung zwischen Messuhr und Display hergestellt werden.
Bitte geben Sie bei einer Bestellung oder Angebotsanfrage an, für welches Messmittel das Kabel geeignet sein soll. Wir unterstützen die Datenausgänge der Mitutoyo Messuhren, Bügelmessschrauben und Messschieber mit Digimatic Datenausgang (ID-S, ID-CX, ID-C) sowie die Datenausgänge der Mahr oder Helios-Preisser Messuhren. Bei speziellen Messmitteln senden Sie bitte ein Bild des Datenausgangs mit der Anfrage oder Bestellung.

Lagernde Kabellängen sind 1m und 2m. Es sind individuelle Kabellängen von 20cm bis 5m möglich.

Technische Daten der Fernanzeige

EigenschaftWertEinheit
Maße (BxHxT), ohne Kabel106 x 78 x 22mm
Lochabstand Montageplatte (X/Y)65 x 65mm
Gewicht95g
Temperaturbereich0-50°C
Versorgungsspannung5V
Stromaufnahme300mA
Messinterval0,3 – 600sek
TFT LCD Display (7.1 cm/2.8″ Bildschirm-Diagonale)320 x 200pixel

Die Gehäusefarbe ist nach Kundenwunsch möglich. Standardfarbe ist schwarz.

Dokumentation

Lesen Sie unsere Dokumentation der Fernanzeige um Detailinformationen über die Funktionsweise und Konfigurationsmöglichkeiten zu erhalten.

Resourcen

Download der Übersicht als PDF.

Kundenprojekte

Durch unsere Agile Fertigung lassen sich über Kundenprojekte viele Anpassungen für Anzeigelösungen für Messinstrumente umsetzen. Was letztendlich auf dem TFT Farbdisplay angezeigt wird kann frei definiert werden. Der Fantasie des Kunden sind hier keine Grenzen gesetzt. Denkbar ist die grafische Visualisierung der Messwerte z.B. als Zeigerinstrument genauso wie eine Messhistorie in Form einer Verlaufsgrafik oder Historienansicht. Trotzdem ist zu bedenken, dass es sich um ein einfaches Display handelt: Sehr aufwendige Visualisierungen von Messwerten lassen sich nach wie vor deutlich einfacher, schneller und besser mit einem PC oder Tablet-Computer in MS-Windows oder Android/iOS umsetzen. Hier haben wir genug Erfahrung um jeden Visualisierungswunsch einer Messvorrichtung als Remote Display für ein beliebiges Messmittel im Labor-, Entwicklungs- oder Fertigungsumfeld umzusetzen.

Optional kann das Display auch zusätzliche Steuereingänge bereitstellen. Diese können dann z.B. für unseren elektromechanischen Messuhr-Anheber in einer automatisierten Prüfvorrichtung verwendet werden.

Das Produkt wurde nach unserer Philosophie der agilen Fertigung umgesetzt.
Dies bedeutet z.B. dass das Gehäuse in ABS gedruckt wird und nur einfache Standardkomponenten verwendet werden.
Dadurch wird eine lange Teileversorgung sichergestellt. In Bezug auf die Kabelverbindungen bedeutet es, dass einfache Standardkabel in fertig konfektionierter Länge direkt verwendet werden können.
Weiter können spezielle Kundenanforderungen einfach umgesetzt werden.

Projektbeispiele

MQTT Funkverbindung

Projektbeispiel mit 2 Messuhren bei gleichzeitiger Messung über WLAN/MQTT und gemeinsamer Darstellung auf einem Display: Zum Artikel.

4fach Anheber mit Display

In diesem Projektbeispiel zur automatisierten Messung über IoT Messmittel werden 4 Messuhren mit automatischem Anheber des Messtaster verwendet. Die Messwerte werden zentral auf einer externen MQTT-Anzeige dargestellt. Die Kombination ergibt eine Messuhr mit großer externer Anzeige und externer Anhebemöglichkeit.

Alle 4 Mitutoyo Absolute Messuhren der Messeinrichtung sind per Kabel an die externen Displays angeschlossen. Über einen Schalter lassen sich die Messuhren zentral anheben und absenken sobald das Werkstück vom Werker in die Montageeinrichtung eingelegt ist. Die Messwerte werden an zentraler Stelle über die externe Anzeige visualisiert. Die Anlage kann dahingehend automatisiert werden, dass sowohl die Verarbeitung der Messwerte als auch das Anheben oder Absenken der Messuhr-Taster über externe Signale z.B. über MQTT gesteuert werden. Somit ist auch ein komplett autonomer Betrieb der Messstation über Roboter und Steuerung möglich.

Über ein externes Signal kann der Messfühler anheben oder absenken. Der Zustand des Messstiftes wird auf dem Display als Pfeil dargestellt. Bei abgesenktem Messstift wird der aktuelle Messwert der Messuhr in rot oder grün dargestellt. Bei nicht angeschlossener oder ausgeschalteter Messuhr wird ein rotes diagonales Kreuz angezeigt.

Das Produkt wurde nach unserer Philosophie der agilen Fertigung umgesetzt.
Dies bedeutet z.B. dass das Gehäuse mit 3D Druckern gedruckt wird und nur einfache Standardkomponenten verwendet werden. Dadurch wird eine lange Teileversorgung sichergestellt. In Bezug auf die Kabelverbindungen bedeutet es, dass einfache Standardkabel in fertig konfektionierter Länge direkt verwendet werden können.

Alternativen

Eine Alternative zu einem autonomen externen Display stellt ein Smartphone oder Tablet als Anzeige dar. Auch dieses kann über ein Adapterkabel direkt an eine Messuhr angeschlossen werden. Neben der reinen Anzeige lassen sich hier dann noch weitere Funktionen auf dem Betriebssystem des mobilen Rechnern einfach umsetzen. Unser Produkt „smart measure display“ deckt diesen Anwendungsfall ab.

Rechtliches

Mitutoyo und Digimatic sind vermutlich eingetragene Warenzeichen von Mitutoyo. Wir verwenden diese Bezeichnungen hier zur Erklärung des hier vorgestellten Produkts (der Hardware und Software). Wir stehen in keiner Verbindung zu Mitutoyo – setzen aber sehr gerne und wo immer möglich deren gute und zuverlässigen Messuhren und Messschieber ein.