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 -- int32

Gibt das aktuell gemessene Gewicht in Gramm 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 -- bool

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 -- uint8
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.

Der Wertebereich liegt bei 1-40.

Der Standardwert ist 4.

BrickletLoadCell.get_moving_average
Funktions ID:

9

Anfrage:

keine Nutzdaten

Antwort:
  • average -- uint8

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

BrickletLoadCell.calibrate
Funktions ID:

13

Anfrage:
  • weight -- uint32
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 in Gramm 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 -- uint8
  • gain -- uint8
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 Standardwerte sind 10Hz für die Rate und 128x für den Gain.

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

  • 0: 10hz, für rate
  • 1: 80hz, für rate
  • 0: 128x, für gain
  • 1: 64x, für gain
  • 2: 32x, für gain
BrickletLoadCell.get_configuration
Funktions ID:

16

Anfrage:

keine Nutzdaten

Antwort:
  • rate -- uint8
  • gain -- uint8

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

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

  • 0: 10hz, für rate
  • 1: 80hz, für rate
  • 0: 128x, für gain
  • 1: 64x, für gain
  • 2: 32x, für gain
BrickletLoadCell.get_identity
Funktions ID:

255

Anfrage:

keine Nutzdaten

Antwort:
  • uid -- char[8]
  • connected_uid -- char[8]
  • position -- char
  • hardware_version -- uint8[3]
  • firmware_version -- uint8[3]
  • device_identifier -- uint16

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 kann 'a', 'b', 'c' oder 'd' sein.

Eine Liste der Device Identifier Werte ist hier zu finden. 

Konfigurationsfunktionen für Callbacks

BrickletLoadCell.set_weight_callback_period
Funktions ID:

2

Anfrage:
  • period -- uint32
Antwort:

keine Antwort

Setzt die Periode in ms 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.

Der Standardwert ist 0.

BrickletLoadCell.get_weight_callback_period
Funktions ID:

3

Anfrage:

keine Nutzdaten

Antwort:
  • period -- uint32

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

BrickletLoadCell.set_weight_callback_threshold
Funktions ID:

4

Anfrage:
  • option -- char
  • min -- int32
  • max -- int32
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)

Der Standardwert ist ('x', 0, 0).

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

  • x: off, für option
  • o: outside, für option
  • i: inside, für option
  • <: smaller, für option
  • >: greater, für option
BrickletLoadCell.get_weight_callback_threshold
Funktions ID:

5

Anfrage:

keine Nutzdaten

Antwort:
  • option -- char
  • min -- int32
  • max -- int32

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

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

  • x: off, für option
  • o: outside, für option
  • i: inside, für option
  • <: smaller, für option
  • >: greater, für option
BrickletLoadCell.set_debounce_period
Funktions ID:

6

Anfrage:
  • debounce -- uint32
Antwort:

keine Antwort

Setzt die Periode in ms mit welcher die Schwellwert Callback

ausgelöst wird, wenn der Schwellwert

weiterhin erreicht bleibt.

Der Standardwert ist 100.

BrickletLoadCell.get_debounce_period
Funktions ID:

7

Anfrage:

keine Nutzdaten

Antwort:
  • debounce -- uint32

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

Callbacks

BrickletLoadCell.CALLBACK_WEIGHT
Funktions ID:

17

Antwort:
  • weight -- int32

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 -- int32

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.