Modbus - Load Cell Bricklet

Dies ist die Beschreibung des Modbus Protokolls für das Load Cell Bricklet. Allgemeine Informationen über die Funktionen und technischen Spezifikationen des Load Cell Bricklet sind in dessen Hardware Beschreibung zusammengefasst.

API

Eine allgemeine Beschreibung der Modbus Protokollstruktur findet sich hier.

Grundfunktionen

BrickletLoadCell.get_weight
Funktions-ID:
  • 1
Anfrage:
  • keine Nutzdaten
Antwort:
  • weight – Typ: int32, Einheit: 1 g, Wertebereich: [-231 bis 231 - 1]

Gibt das aktuell gemessene Gewicht zurück.

Wenn das Gewicht periodisch abgefragt werden soll, wird empfohlen den CALLBACK_WEIGHT Callback zu nutzen und die Periode mit set_weight_callback_period vorzugeben.

BrickletLoadCell.led_on
Funktions-ID:
  • 10
Anfrage:
  • keine Nutzdaten
Antwort:
  • keine Antwort

Aktiviert die LED.

BrickletLoadCell.led_off
Funktions-ID:
  • 11
Anfrage:
  • keine Nutzdaten
Antwort:
  • keine Antwort

Deaktiviert die LED.

BrickletLoadCell.is_led_on
Funktions-ID:
  • 12
Anfrage:
  • keine Nutzdaten
Antwort:
  • on – Typ: bool, Standardwert: false

Gibt true zurück wenn die LED aktiviert ist, false sonst.

BrickletLoadCell.tare
Funktions-ID:
  • 14
Anfrage:
  • keine Nutzdaten
Antwort:
  • keine Antwort

Setzt das aktuell gemessene Gewicht als Leergewicht.

Fortgeschrittene Funktionen

BrickletLoadCell.set_moving_average
Funktions-ID:
  • 8
Anfrage:
  • average – Typ: uint8, Wertebereich: [1 bis 40], Standardwert: 4
Antwort:
  • keine Antwort

Setzt die Länge eines gleitenden Mittelwerts für den Gewichtswert.

Wenn die Länge auf 1 gesetzt wird, ist das Averaging aus. Desto kleiner die Länge des Mittelwerts ist, desto mehr Rauschen ist auf den Daten.

BrickletLoadCell.get_moving_average
Funktions-ID:
  • 9
Anfrage:
  • keine Nutzdaten
Antwort:
  • average – Typ: uint8, Wertebereich: [1 bis 40], Standardwert: 4

Gibt die Länge des gleitenden Mittelwerts zurück, wie von set_moving_average gesetzt.

BrickletLoadCell.calibrate
Funktions-ID:
  • 13
Anfrage:
  • weight – Typ: uint32, Einheit: 1 g, Wertebereich: [0 bis 232 - 1]
Antwort:
  • keine Antwort

Zum Kalibrieren des Load Cell Bricklet müssen die folgenden zwei Schritte durchgeführt werden:

  • Die Waage leeren und die Funktion mit 0 aufrufen.
  • Eine bekanntes Gewicht auf die Waage legen und die Funktion mit dem Gewicht aufrufen.

Die Kalibrierung wird auf dem EEPROM des Bricklets gespeichert und muss nur einmal gesetzt werden.

Wir empfehlen die Kalibrierung über den Brick Viewer zu setzen, diese Funktion muss nicht im Quelltext genutzt werden.

BrickletLoadCell.set_configuration
Funktions-ID:
  • 15
Anfrage:
  • rate – Typ: uint8, Wertebereich: Siehe Bedeutungen, Standardwert: 0
  • gain – Typ: uint8, Wertebereich: Siehe Bedeutungen, Standardwert: 0
Antwort:
  • keine Antwort

Für die Messungen sind Rate und Gain konfigurierbar.

Die Rate kann auf 10Hz oder 80Hz gesetzt werden. Eine schnellere Rate erzeugt mehr Störungen. Zusätzlich ist es möglich einen gleitenden Mittelwert auf die Werte anzuwenden (siehe set_moving_average).

Der Gain kann zwischen 128x, 64x und 32x konfiguriert werden. Er repräsentiert einen Messbereich von ±20mV, ±40mV und ±80mV respektive. Das Load Cell Bricklet nutzt eine Erregerspannung (Excitation Voltage) von 5V und die meisten Wägezellen haben eine Ausgabe von 2mV/V. Dies bedeutet, der Spannungsbereich ist ±15mV für die meisten Wägezellen (d.h. ein Gain von 128x ist am geeignetsten). Falls nicht klar ist was dies alles bedeutet, ein Gain von 128x ist höchstwahrscheinlich korrekt.

Die Konfiguration wird auf dem EEPROM des Bricklets gespeichert und muss nur einmal gesetzt werden.

Wir empfehlen die Konfiguration über den Brick Viewer zu setzen, diese Funktion muss nicht im Quelltext genutzt werden.

Die folgenden Bedeutungen sind für die Elemente dieser Funktion definiert:

Für rate:

  • 0 = 10Hz
  • 1 = 80Hz

Für gain:

  • 0 = 128x
  • 1 = 64x
  • 2 = 32x
BrickletLoadCell.get_configuration
Funktions-ID:
  • 16
Anfrage:
  • keine Nutzdaten
Antwort:
  • rate – Typ: uint8, Wertebereich: Siehe Bedeutungen, Standardwert: 0
  • gain – Typ: uint8, Wertebereich: Siehe Bedeutungen, Standardwert: 0

Gibt die Konfiguration zurück, wie von set_configuration gesetzt.

Die folgenden Bedeutungen sind für die Elemente dieser Funktion definiert:

Für rate:

  • 0 = 10Hz
  • 1 = 80Hz

Für gain:

  • 0 = 128x
  • 1 = 64x
  • 2 = 32x
BrickletLoadCell.get_identity
Funktions-ID:
  • 255
Anfrage:
  • keine Nutzdaten
Antwort:
  • uid – Typ: char[8]
  • connected_uid – Typ: char[8]
  • position – Typ: char, Wertebereich: ['a' bis 'h', 'z']
  • hardware_version – Typ: uint8[3]
    • 0: major – Typ: uint8, Wertebereich: [0 bis 255]
    • 1: minor – Typ: uint8, Wertebereich: [0 bis 255]
    • 2: revision – Typ: uint8, Wertebereich: [0 bis 255]
  • firmware_version – Typ: uint8[3]
    • 0: major – Typ: uint8, Wertebereich: [0 bis 255]
    • 1: minor – Typ: uint8, Wertebereich: [0 bis 255]
    • 2: revision – Typ: uint8, Wertebereich: [0 bis 255]
  • device_identifier – Typ: uint16, Wertebereich: [0 bis 216 - 1]

Gibt die UID, die UID zu der das Bricklet verbunden ist, die Position, die Hard- und Firmware Version sowie den Device Identifier zurück.

Die Position ist 'a', 'b', 'c', 'd', 'e', 'f', 'g' oder 'h' (Bricklet Anschluss). Ein Bricklet hinter einem Isolator Bricklet ist immer an Position 'z'.

Eine Liste der Device Identifier Werte ist hier zu finden. 

Konfigurationsfunktionen für Callbacks

BrickletLoadCell.set_weight_callback_period
Funktions-ID:
  • 2
Anfrage:
  • period – Typ: uint32, Einheit: 1 ms, Wertebereich: [0 bis 232 - 1], Standardwert: 0
Antwort:
  • keine Antwort

Setzt die Periode mit welcher der CALLBACK_WEIGHT Callback ausgelöst wird. Ein Wert von 0 deaktiviert den Callback.

Der CALLBACK_WEIGHT Callback wird nur ausgelöst, wenn sich das Gewicht seit der letzten Auslösung geändert hat.

BrickletLoadCell.get_weight_callback_period
Funktions-ID:
  • 3
Anfrage:
  • keine Nutzdaten
Antwort:
  • period – Typ: uint32, Einheit: 1 ms, Wertebereich: [0 bis 232 - 1], Standardwert: 0

Gibt die Periode zurück, wie von set_weight_callback_period gesetzt.

BrickletLoadCell.set_weight_callback_threshold
Funktions-ID:
  • 4
Anfrage:
  • option – Typ: char, Wertebereich: Siehe Bedeutungen, Standardwert: 'x'
  • min – Typ: int32, Einheit: 1 g, Wertebereich: [-231 bis 231 - 1], Standardwert: 0
  • max – Typ: int32, Einheit: 1 g, Wertebereich: [-231 bis 231 - 1], Standardwert: 0
Antwort:
  • keine Antwort

Setzt den Schwellwert für den CALLBACK_WEIGHT_REACHED Callback.

Die folgenden Optionen sind möglich:

Option Beschreibung
'x' Callback ist inaktiv
'o' Callback wird ausgelöst, wenn das Gewicht außerhalb des min und max Wertes ist
'i' Callback wird ausgelöst, wenn das Gewicht innerhalb des min und max Wertes ist
'<' Callback wird ausgelöst, wenn das Gewicht kleiner als der min Wert ist (max wird ignoriert)
'>' Callback wird ausgelöst, wenn das Gewicht größer als der min Wert ist (max wird ignoriert)

Die folgenden Bedeutungen sind für die Elemente dieser Funktion definiert:

Für option:

  • 'x' = Off
  • 'o' = Outside
  • 'i' = Inside
  • '<' = Smaller
  • '>' = Greater
BrickletLoadCell.get_weight_callback_threshold
Funktions-ID:
  • 5
Anfrage:
  • keine Nutzdaten
Antwort:
  • option – Typ: char, Wertebereich: Siehe Bedeutungen, Standardwert: 'x'
  • min – Typ: int32, Einheit: 1 g, Wertebereich: [-231 bis 231 - 1], Standardwert: 0
  • max – Typ: int32, Einheit: 1 g, Wertebereich: [-231 bis 231 - 1], Standardwert: 0

Gibt den Schwellwert zurück, wie von set_weight_callback_threshold gesetzt.

Die folgenden Bedeutungen sind für die Elemente dieser Funktion definiert:

Für option:

  • 'x' = Off
  • 'o' = Outside
  • 'i' = Inside
  • '<' = Smaller
  • '>' = Greater
BrickletLoadCell.set_debounce_period
Funktions-ID:
  • 6
Anfrage:
  • debounce – Typ: uint32, Einheit: 1 ms, Wertebereich: [0 bis 232 - 1], Standardwert: 100
Antwort:
  • keine Antwort

Setzt die Periode mit welcher die Schwellwert Callback

ausgelöst wird, wenn der Schwellwert

weiterhin erreicht bleibt.

BrickletLoadCell.get_debounce_period
Funktions-ID:
  • 7
Anfrage:
  • keine Nutzdaten
Antwort:
  • debounce – Typ: uint32, Einheit: 1 ms, Wertebereich: [0 bis 232 - 1], Standardwert: 100

Gibt die Entprellperiode zurück, wie von set_debounce_period gesetzt.

Callbacks

BrickletLoadCell.CALLBACK_WEIGHT
Funktions-ID:
  • 17
Antwort:
  • weight – Typ: int32, Einheit: 1 g, Wertebereich: [-231 bis 231 - 1]

Dieser Callback wird mit der Periode, wie gesetzt mit set_weight_callback_period, ausgelöst. Der Rückgabewert ist das Gewicht wie von der Wägezelle gemessen.

Der CALLBACK_WEIGHT Callback wird nur ausgelöst, wenn sich das Gewicht seit der letzten Auslösung geändert hat.

BrickletLoadCell.CALLBACK_WEIGHT_REACHED
Funktions-ID:
  • 18
Antwort:
  • weight – Typ: int32, Einheit: 1 g, Wertebereich: [-231 bis 231 - 1]

Dieser Callback wird ausgelöst, wenn der Schwellwert, wie von set_weight_callback_threshold gesetzt, erreicht wird. Der Rückgabewert ist das Gewicht wie von der Wägezelle gemessen.

Wenn der Schwellwert erreicht bleibt, wird der Callback mit der Periode, wie mit set_debounce_period gesetzt, ausgelöst.