Als u op zoek bent naar een precisie-peristaltische pomp die meerdere kanalen tegelijk kan aansturen (tot 24), is de Longer BT100-1L. Deze pomp kan debieten leveren van 2 µL/min tot 366,7 mL/min, afhankelijk van het aantal rollen in de pompkop. Het is bovendien een relatief goedkope peristaltische pomp met een breed scala aan toepassingen.
De BT100-1L kan op afstand worden bediend vanaf uw computer, wat u meer flexibiliteit en gebruiksgemak biedt, vooral als u complexe pompprogramma’s wilt uitvoeren met lussen, pauzes en variërende debieten.
In deze blogpost laten we je zien hoe je met de BT100-1L kunt communiceren via het LONGER RS485-protocol, een serieel communicatieprotocol waarmee je commando’s naar de pomp kunt sturen en reacties van de pomp kunt ontvangen. Daarnaast geven we enkele voorbeelden en codefragmenten over hoe je met Matlab besturingscommando’s kunt schrijven en naar de pomp kunt verzenden.
INHOUDSOPGAVE
Wat heb je nodig om met de BT100-1L te communiceren?
Om via het LONGER RS485-protocol met de BT100-1L te communiceren, hebt u het volgende nodig:
- Een BT100-1L-pomp met een pomphoofd en een tube naar keuze
- Een RS485 besturingsmodule die in de DB15-poort aan de achterzijde van de pomp wordt geplugd
- Een seriële kabel die de RS485-besturingsmodule verbindt met uw computer of apparaat
- Een programmeerplatform (in dit geval Matlab)
- Een basisbegrip van het dataformaat, commandoformaat en pdu-formaat van het LONGER RS485-protocol (hieronder uitgelegd 👇)
Hoe configureert u de communicatiepoort?
Voordat u data kunt verzenden en ontvangen van de pomp, moet u de communicatiepoort correct instellen. Volg hiervoor de volgende stappen:
- Sluit de DB15-connector aan op de DB15-poort aan de achterzijde van de pomp
- Zet de pomp aan en druk op de instelknop aan de voorkant van de pomp om het instellenscherm voor de afstandsbediening te openen en de afstandsbedieningsmodus in te schakelen 🕹️
- Zorg ervoor dat de communicatieparameters op uw programmeerplatform overeenkomen met die van de BT100-1L, namelijk:
- 1 startbit
- 8 databits
- 1 even pariteit
- 1 stopbit
- een baudrate van 1200 bit/s
Hoe schrijf je besturingsopdrachten naar de BT100-1L?
Zodra u de communicatiepoort heeft ingesteld, kunt u besturingscommando's schrijven en naar de pomp verzenden. Een besturingscommando is een reeks hexadecimale tekens die voldoet aan een specifiek formaat, bestaande uit:
- een startvlag (E9H)
- een pompadres (1 tot 30, of 31 voor broadcast)
- een lengte van de pdu (protocol data unit)
- een pdu, die de commandotekens en de parameters voor de gewenste toepassing bevat
- een frame check sequence (FCS), die wordt verkregen door de XOR-waarde te berekenen van het pompadres, de lengte van de PDU en de PDU zelf (bereken je FCS met behulp van onze online FCS-XOR-calculator)
De pdu en de lengte daarvan hangen af van de gevraagde toepassing van de pomp. Enkele veelvoorkomende toepassingen zijn:
- Bedrijfsparameter instellen (rotatiesnelheid)
- Bedrijfsparameter uitlezen (rotatiesnelheid)
- Stel de bedrijfsparameter (debiet) in met behulp van de pomphoogte en de slang
- Lees de bedrijfsparameter (doorstroomsnelheid) af met behulp van de pompkop en de slang
- Doorstroomkalibratie
Voor elke toepassing is er een bijbehorende set opdrachttekens en parameters die u in de pdu moet opnemen. Deze parameters worden hieronder nader toegelicht.
Bedrijfsparameter instellen (rotatiesnelheid)
Deze toepassing bestaat uit het schrijven naar de pomp. De totale lengte van de PDU bedraagt 6 bytes, waarbij de reeks van besturingsopdrachten bestaat uit (in precies dezelfde volgorde):
| XL | Snelheid instellen | Status 1 | Status 2 |
| 2 bytes | 2 bytes | 1 byte | 1 byte |
- XL, besturingsopdrachtreeks van 2 bytes, 58 4C
- Stel de snelheid (2 bytes) in met een snelheidseenheid van 0,1 rpm en een maximale snelheid van 100 rpm (03 E8)
- Status 1 (1 byte):
- bit 0 – start/stop-bit waarbij 1 is om de pomp te starten en 0 om deze te stoppen
- bit 1 – opstartbit: bij waarde 1 wordt de pomp opgestart met de maximale snelheid van 100 tpm, bij waarde 0 draait de pomp op normale snelheid
- Status 2 (1 byte):
- bit 0 – stelt de rotatierichting in waarbij 1 is voor met de klok mee en 0 voor tegen de klok in
De pomp reageert met XL en zal na ontvangst van de besturingsopdracht op het scherm aan de voorkant het toerental en de draairichting weergeven.
Bedrijfsparameter uitlezen (rotatiesnelheid)
Deze toepassing bestaat uit het uitlezen van gegevens uit de pomp. De totale lengte van de PDU bedraagt 2 bytes, waarbij de reeks met besturingsopdrachten als volgt luidt: DL.
De reactie van de pomp bestaat uit:
| DL | Snelheid weergeven | Status 1 | Status 2 |
| 2 bytes | 2 bytes | 1 byte | 1 byte |
- DL, besturingsopdrachtreeks van 2 bytes, 44 4C
Stel de bedrijfsparameter (debiet) in met behulp van de pomphoogte en de slang
Deze toepassing bestaat uit het verzenden van gegevens naar de pomp. De totale lengte van de PDU bedraagt 10 bytes, waarbij de reeks met besturingsopdrachten bestaat uit:
| WL | 2 bytes |
| Debiet instellen | 4 bytes |
| Status 1 | 1 byte |
| Status 2 | 1 byte |
| Nummer van de pompkop | 1 byte |
| Buisnummer | 1 byte |
- WL, besturingsopdrachtreeks van 2 bytes, 57 4C
- Stel het debiet in (4 bytes) met de eenheid nL/min
- Toestand 1 (1 byte) en Toestand 2 (1 byte) zoals eerder uitgelegd
- Pompkopnummer (1 byte), zoals weergegeven in de onderstaande tabellen:
| Pompkop | Personages |
|---|---|
| DG (6 rollen) | 01 |
| DG (10 rollen) | 02 |
| YZ1515/YZ2515 | 03 |
| 313D | 04 |
| DG15 | 05 |
- Buisnummer (1 byte), zoals weergegeven in de onderstaande tabel:
| tube ID (mm) 01: DG (6 rollen) 02: DG (10 rollen) 05: DG15 | Buisnummer |
|---|---|
| 0.13 | 01 |
| 0.19 | 02 |
| 0.25 | 03 |
| 0.38 | 04 |
| 0.44 | 05 |
| 0.51 | 06 |
| 0.57 | 07 |
| 0.64 | 08 |
| 0.76 | 09 |
| 0.89 | 10 |
| 0.95 | 11 |
| 1.02 | 12 |
| 1.09 | 13 |
| 1.14 | 14 |
| 1.22 | 15 |
| 1.30 | 16 |
| 1.42 | 17 |
| 1.54 | 18 |
| 1.65 | 19 |
| 1.75 | 20 |
| 1.85 | 21 |
| 2.06 | 22 |
| 2.29 | 23 |
| 2.54 | 24 |
| 2.79 | 25 |
| 3.17 | 26 |
| tube ID (mm) 3: YZ1515/YZ2515 4: 313D | Personages |
|---|---|
| 0.8 | 01 |
| 1.6 | 02 |
| 2.4 | 03 |
| 3.1 | 04 |
| 4.8 | 05 |
| 6.4 | 06 |
| 7.9 | 07 |
| 9.6 | 08 |
De pomp zal reageren met WL Debiet weergeven (4 bytes) en zal na ontvangst van de besturingsopdrachtreeks op het scherm aan de voorzijde het debiet, het bijbehorende toerental en de draairichting weergeven.
Lees de bedrijfsparameter (doorstroomsnelheid) af met behulp van de pompkop en de slang
Deze toepassing bestaat uit het uitlezen van gegevens uit de pomp. De totale lengte van de PDU bedraagt 2 bytes, waarbij de reeks van besturingscommando’s RL is .
De reactie van de pomp bestaat uit:
| RL | 2 bytes |
| Debiet weergeven | 4 bytes |
| Status 1 | 1 byte |
| Status 2 | 1 byte |
| Nummer van de pompkop | 1 byte |
| Buisnummer | 1 byte |
- RL, besturingscommando-reeks van 2 bytes, 52 4C
Doorstroomkalibratie
Deze toepassing bestaat uit het schrijven naar de pomp. De totale lengte van de PDU bedraagt 6 bytes, waarbij de reeks met besturingsopdrachten bestaat uit:
| CL | Test van het debiet |
| 2 bytes | 4 bytes |
- CL, besturingsopdrachtreeks van 2 bytes, 43 4C
- Teststroom (4 bytes) met de eenheid nL/min
Voorbeelden van besturingsopdrachtreeksen
- Stel de BT100-1L zo in dat hij met de klok mee draait met een toerental van 20 rpm
Besturingsopdrachtreeks: E9 01 06 58 4C 00 C8 01 01 DB
- E9 als de vlag
- 01 als pompadres 1
- 06als de lengte van de PDU (58 4C 00 C8 01 01)
- 58 4C als opdrachttekens XL
- 00 C8 verwijst naar het toerental, 00 C8 (hex) = 200 (dec); de snelheidseenheid is 0,1 rpm ⇒ het toerental = 20 rpm (zie onze online tool voor het omrekenen van getallen)
- 01 om de pomp te starten op normale snelheid
- 01 om de pomp met de klok mee te laten draaien
- DB als het XOR-resultaat van01(pompadres),06(PDU-lengte) en58 4C 00 C8 01 01(PDU)
- Stel de BT100-1L zo in dat deze tegen de klok in draait met een stroomsnelheid van 3 ml/min, met een pompkop DG (10 rollen) en een inwendige diameter (ID) van de tube van 0,25 mm
Besturingsopdrachtreeks: E9 01 0A 57 4C 00 2D C6 C0 01 00 02 03 3B
- E9 als de vlag
- 01 als adres 1 van de pomp
- 0A als de lengte van de PDU (57 4C 00 2D C6 C0 01 00 02 03)
- 57 4C als opdrachttekens WL
- 00 2D C6 C0 verwijst naar het debiet, 00 2D C6 C0(hex) = 3000000(dec); de debieteenheid is nL/min ⇒ het debiet = 3000000 nL/min = 3 mL/min
- 01 om de pomp te starten op normale snelheid
- 00om de pomp tegen de klok in te laten draaien
- 02voor de DG-pompkop (10 rollen)
- 03voor de „ tube ” met een diameter van 0,25 mm
- 3B als het XOR-resultaat van01(pompadres),0A(PDU-lengte) en 57 4C 00 2D C6 C0 01 00 02 03(PDU)
🚨Aarzel niet om onze gebruiksvriendelijke online commandostringgenerator te gebruiken om moeiteloos nauwkeurige besturingscommando's voor uw BT100-1L te genereren.
Hoe kan ik via Matlab communiceren met de BT100-1L?
Hieronder worden Matlab-codefragmenten gepresenteerd die laten zien hoe u de seriële poort opent, besturingscommando's naar de pomp schrijft en verzendt, en een eenvoudig pompprogramma schrijft.
Op basis van het eerste voorbeeld dat hierboven is gegeven, zorgt het volgende stukje Matlab-code ervoor dat de BT100-1L met de klok mee draait met een toerental van 20 rpm.
%%% RUN PUMP 1, CLOCKWISE, AT A ROTATING SPEED OF 20 RPM
% Open the serial port with the data format corresponding to the BT100-1L
s = serialport('COM6', 1200, 'Parity', 'Even', 'DataBits', 8, 'StopBits', 1);
% Write the corresponding control command string
Str = 'E9 01 06 58 4C 00 C8 01 01 DB';
% Read data from Str, convert it according to the format specified '%2x' (hexadecimal conversion), transpose and return the results in an array
Data = sscanf(Str, '%2x').';
% Write the Data to the pump in the form of an unsigned integer 8bits
write(s, Data, uint8);
- Laten we in een tweede codefragment de pomp eerst 10 seconden met de klok mee laten draaien met een toerental van 10 rpm, en vervolgens 30 seconden tegen de klok in met een toerental van 5 rpm, voordat we hem tot stilstand brengen.
%%% RUN PUMP 1 CLOCKWISE AT A ROTATING SPEED OF 10 RPM FOR 10s, THEN COUNTER−CLOCKWISE AT A ROTATING SPEED OF 5 RPM FOR 30s BEFORE STOPPING IT
% Open the serial port with the data format corresponding to the BT100-1L
s = serialport('COM6', 1200, 'Parity', 'Even', 'DataBits', 8, 'StopBits', 1);
% Run pump 1 clockwise at a rotating speed of 10 rpm for 10s
Str = 'E9 01 06 58 4C 00 64 01 01 77'; % corresponding control command string
Data = sscanf(Str, '%2x').';
write(s, Data, uint8); % write the Data to the pump
Pumping_time = 10;
while Pumping_time > 0
pause(1)
Pumping_time = Pumping_time − 1;
disp(['Remaining_time:' num2str(Pumping_time)])
end % 10s delay with a visible timer
% Run pump 1 counter-clockwise at a rotating speed of 5 rpm for 30s
Str = 'E9 01 06 58 4C 00 32 01 00 20'; % corresponding control command string
Data = sscanf(Str, '%2x').';
write(s, Data, uint8); % write the Data to the pump
Pumping_time = 30;
while Pumping_time > 0
pause(1)
Pumping_time = Pumping_time − 1;
disp(['Remaining_time:' num2str(Pumping_time)])
end % 30s delay with a visible timer
% Stop the pump
Str = 'E9 01 06 58 4C 00 32 00 00 21'; % corresponding control command string; we took the previous command string and changed the State 1 byte from 01 (start the pump) to 00 (stop the pump) and of course computed the new fcs
Data = sscanf(Str, '%2x').';
write(s, Data, uint8); % write the Data to the pump
Conclusie
We hopen dat deze blogpost je heeft geholpen te begrijpen hoe je de Longer BT100-1L meerkanaals peristaltische pomp op afstand kunt aansturen via Matlab met behulp van het LONGER RS485-protocol. Je kunt ook andere programmeerplatforms gebruiken, zoals Python, om besturingsopdrachten te schrijven en naar de pomp te sturen, en de reacties van de pomp te lezen en te interpreteren. Voor meer informatie over dit onderwerp kun je onze blogpost “Hoe bedien je de Longer BT100-1L-pomp via Python?”.
Als u vragen of opmerkingen heeft, neem dan gerust contact met ons op via contact@darwin-microfluidics.com.



Hoe kunt u uw Longer peristaltische pompen op afstand besturen?
[…] Hoe bedien je de BT100-1L-pomp van Longer via Matlab? […]
How to control the Longer BT100-1L pump via Python ? - Darwin Microfluidics
[…] We hopen dat deze blogpost je heeft geholpen te begrijpen hoe je de Longer BT100-1L meerkanaals peristaltische pomp op afstand kunt aansturen via Python met behulp van het LONGER RS485-protocol. Je kunt ook andere programmeerplatforms gebruiken, zoals Matlab, om besturingsopdrachten te schrijven en naar de pomp te sturen, en de reacties van de pomp te lezen en te interpreteren. Voor meer informatie over dit onderwerp kun je onze blogpost „Hoe bedien je de Longer BT100-1L-pomp via Matlab?“ raadplegen. […]