Als u op zoek bent naar een precisie-slangenpomp ontworpen voor nauwkeurige the toepassingen in het laboratorium van minder dan 1 µL/min tot 366,7 mL/min, afhankelijk van het aantal rollers in de pompkop, is de Longer L100-1S-2 het overwegen waard. Deze pomp verplaatst uw vloeistoffen met de hoogste precisie over een breed scala aan debieten en is bovendien relatief voordelig.
Deze kan op afstand worden aangestuurd vanaf uw computer, wat zorgt voor meer flexibiliteit en gemak, met name wanneer u complexe pompprogramma's wilt uitvoeren met lussen, pauzes en variërende debieten.
In deze blogpost laten we je zien hoe je met de L100-1S-2 kunt communiceren via het LONGER RS485-protocol, een serieel communicatieprotocol waarmee je opdrachten naar de pomp kunt sturen en reacties van de pomp kunt ontvangen. Daarnaast geven we enkele voorbeelden en codefragmenten om te laten zien hoe je met Python besturingsopdrachten kunt schrijven en naar de pomp kunt sturen.
Wat heeft u nodig om te communiceren met de L100-1S-2?
Om te communiceren met de L100-1S-2 via het LONGER RS485-protocol, heeft u het volgende nodig:
- Een L100-1S-2 pomp met een pompkop 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 Python)
- 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
- Schakel de pomp in en gebruik het toetsenbord aan de voorzijde van de pomp om naar de instellingsinterface voor afstandsbediening te gaan en de afstandsbedieningsmodus in te stellen op "COM" 🕹️
- Zorg ervoor dat de communicatieparameters op uw programmeerplatform overeenkomen met die van de L100-1S-2 (zoals te zien is in onderstaande figuur), te weten:
- 1 startbit
- 8 databits
- Pariteit: P-n (geen pariteit), P-O (oneven pariteit) of P-E (even pariteit)
- Stopbit: S-1 (1 stopbit) of S-2 (2 stopbits)
- Baudrate: 12 (1200 bit/s), 24 (2400 bit/s), 48 (4800 bit/s), 96 (9600 bit/s), 192 (19200 bit/s) of 384 (38400 bit/s)
Hoe schrijft u besturingscommando's naar de L100-1S-2?
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)
- 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)
- Loopparameter instellen (debiet)
- Loopparameter uitlezen (debiet)
- De communicatieparameters van de pomp instellen
Voor elke toepassing is er een bijbehorende set opdrachttekens en parameters die u in de pdu moet opnemen. Deze parameters worden hieronder nader toegelicht.
Loopparameter instellen (rotatiesnelheid)
Deze toepassing bestaat uit het schrijven naar de pomp. De totale lengte van de pdu is 6 bytes waarbij de besturingsopdrachtreeks bestaat uit (in exact deze volgorde):
| WJ | Snelheid instellen | Status 1 | Status 2 |
| 2 bytes | 2 bytes | 1 byte | 1 byte |
- WJ, besturingscommandostring van 2 bytes, 57 4A
- Stel de snelheid (2 bytes) in met een snelheidseenheid van 0,01 rpm en een maximale snelheid van 100 rpm
- 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 – prime-bit waarbij 1 is om de pomp op volle snelheid (100 tpm) te primen en 0 is om de pomp op normale snelheid te laten draaien
- Status 2 (1 byte):
- bit 0 – bepaalt de draairichting, waarbij 0 staat voor met de klok mee en 1 voor tegen de klok in
De pomp reageert met WJ en zal na ontvangst van de besturingsopdracht op het scherm aan de voorkant het toerental en de draairichting weergeven.
Loopcriterium lezen (rotatiesnelheid)
Deze toepassing bestaat uit het uitlezen van de pomp. De totale lengte van de pdu is 2 bytes waarbij de besturingsopdrachtreeks RJ is.
De reactie van de pomp bestaat uit:
| RJ | Snelheid weergeven | Status 1 | Status 2 |
| 2 bytes | 2 bytes | 1 byte | 1 byte |
- RJ, besturingsopdrachtreeks van 2 bytes, 52 4A
Loopcriterium instellen (debiet)
Deze toepassing bestaat uit het schrijven naar de pomp. De totale lengte van de pdu is 8 bytes waarbij de besturingscommando-reeks bestaat uit:
| WL | Debiet instellen | Status 1 | Status 2 |
| 2 bytes | 4 bytes | 1 byte | 1 byte |
- WL, besturingsopdrachtreeks van 2 bytes, 57 4C
- Stel het debiet in (4 bytes) met de eenheid nL/min
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 en de draairichting weergeven.
Loopcriterium lezen (debiet)
Deze toepassing bestaat uit het lezen van de pomp. De totale lengte van de pdu is 2 bytes waarbij de besturingscommando-reeks RL is.
De reactie van de pomp bestaat uit:
| RL | Debiet weergeven | Status 1 | Status 2 |
| 2 bytes | 4 bytes | 1 byte | 1 byte |
- RL, besturingsopdrachtreeks van 2 bytes, 52 4C.
De communicatieparameters van de pomp instellen
Deze toepassing bestaat uit het naar de pomp schrijven om de verschillende communicatieparameters in te stellen. De totale lengte van de pdu is 8 bytes waarbij de besturingscommando-reeks bestaat uit:
| WID | Adres | Baudrate | Pariteit | Stopbit |
| 3 bytes | 1 byte | 2 bytes | 1 byte | 1 byte |
- WID, besturingsopdrachtreeks van 3 bytes, 57 49 44
- Pompadres (1 byte), geldig bereik: 1-30
- Baudsnelheid (2 bytes), waarbij de bovenste byte 00H is en de onderste byte zoals weergegeven in de onderstaande tabel:
| Laagste byte | Baudsnelheid (bits/s) |
|---|---|
| 01H | 1200 |
| 02H | 2400 |
| 03H | 4800 |
| 04H | 9600 |
| 05H | 19200 |
| 06H | 38400 |
| Overige waarde | Ongeldig |
- Pariteit (1 byte), instelling zoals in de onderstaande tabel:
| Instelling | Pariteit |
|---|---|
| 01H | Geen pariteit |
| 02H | Oneven pariteit |
| 03H | Even pariteit |
| Overige waarde | Ongeldig |
- Stopbit (1 byte), instelling zoals in de onderstaande tabel:
| Instelling | Stopbit |
|---|---|
| 01H | 1 stopbit |
| 02H | 2 stopbits |
| Overige waarde | Ongeldig |
Voorbeelden van besturingscommando's
- Stel de L100-1S-2 in om linksom te draaien met een rotatiesnelheid van 20 rpm
Besturingscommandoreeks: E9 01 06 57 4A 07 D0 01 01 CD
- E9 als de vlag
- 01 als pompadres 1
- 06 als de lengte van de pdu (57 4A 07 D0 01 01)
- 57 4A als commandotekens WJ
- 07 D0verwijst naar het toerental, 07 D0 (hex) = 2000 (dec); de snelheidseenheid is 0,01 rpm ⇒ het toerental = 20 rpm (zie onze onlineomzetter voor getallenstelsels)
- 01 om de pomp te starten op normale snelheid
- 01 om de pomp linksom te laten draaien
- CD als het XOR-resultaat van 01 (pompadres), 06 (pdu-lengte) en 57 4A 07 D0 01 01 (pdu)
- Stel de L100-1S-2 in om rechtsom te draaien met een debiet van 3 mL/min
Besturingsopdrachtreeks: E9 01 08 57 4C 00 2D C6 C0 01 00 38
- E9 als de vlag
- 01 als adres 1 van de pomp
- 08 als de lengte van de pdu (57 4C 00 2D C6 C0 01 00)
- 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
- 00 om de pomp rechtsom te laten draaien
- 38 als het XOR-resultaat van 01 (pompadres), 08 (pdu-lengte) en 57 4C 00 2D C6 C0 01 00 (pdu)
🚨Gebruik gerust onze gebruiksvriendelijke online opdrachtreeksgenerator om moeiteloos nauwkeurige besturingsopdrachtreeksen te genereren voor uw L100-1S-2.
Hoe communiceer je met de L100-1S-2 via Python?
Hieronder worden Python-codefragmenten getoond die laten zien hoe u de seriële poort opent, besturingsreeksen naar de pomp schrijft en verzendt, en een eenvoudig pompevenement programmeert.
Op basis van het eerste voorbeeld dat hierboven is gegeven, zorgt het volgende stukje Python-code ervoor dat de L100-1S-2 tegen de klok in draait met een toerental van 20 rpm.
### RUN PUMP 1, COUNTER-CLOCKWISE, AT A ROTATING SPEED OF 20 RPM
# To use the pySerial package
import serial
# Open the serial port with tha data format corresponding to the L100-1S-2
# The parameters in the command need to be the same as the communication parameters set for the pump
ser = serial.Serial('COM3', 9600, parity=serial.PARITY_NONE, bytesize=8, stopbits=1, timeout=None, xonxoff=0, rtscts=0)
# Write the corresponding control command string in hexadecimal
Data = bytearray(b'\xE9\x01\x06\x57\x4A\x07\xD0\x01\x01\xCD')
# Write the Data to the pump
ser.write(Data)
- In een tweede codefragment laten we de pomp linksom draaien met een debiet van 5 mL/min gedurende 10s, om deze vervolgens rechtsom te laten draaien met een debiet van 3 mL/min gedurende 30s voordat we hem stoppen.
### RUN PUMP 1 COUNTER-CLOCKWISE AT A FLOW RATE OF 5 mL/min FOR 10s, THEN CLOCKWISE AT A FLOW RATE OF 3 mL/min FOR 30s BEFORE STOPPING IT
# To use the pySerial package
import serial
# To use the time package
import time
# Open the serial port with tha data format corresponding to the L100-1S-2
# The parameters in the command need to be the same as the communication parameters set for the pump
ser = serial.Serial('COM3', 9600, parity=serial.PARITY_NONE, bytesize=8, stopbits=1, timeout=None, xonxoff=0, rtscts=0)
# Run pump 1 counter-clockwise at a flow rate of 5 mL/min for 10s
Data = bytearray(b'\xE9\x01\x08\x57\x4C\x00\x4C\x4B\x40\x01\x01\x55') # corresponding control command string in hexadecimal
ser.write(Data) # Write the Data to the pump
# 10s delay with a visible timer
for Pumping_time in range(10, 0, -1):
print(Pumping_time)
time.sleep(1)
# Run pump 1 clockwise at a flow rate of 3 mL/min for 30s
Data = bytearray(b'\xE9\x01\x08\x57\x4C\x00\x2D\xC6\xC0\x01\x00\x38') # corresponding control command string in hexadecimal
ser.write(Data) # Write the Data to the pump
# 30s delay with a visible timer
for Pumping_time in range(30, 0, -1):
print(Pumping_time)
time.sleep(1)
# Stop the pump
Data = bytearray(b'\xE9\x01\x08\x57\x4C\x00\x2D\xC6\xC0\x00\x00\x39') # corresponding control command string in hexadecimal: 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
ser.write(Data) # Write the Data to the pump
Conclusie
We hopen dat deze blogpost je heeft geholpen te begrijpen hoe je de Longer L100-1S-2 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 L100-1S-2-pomp via Matlab?”.
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 L100-1S-2-pomp van Longer via Python? […]
Hoe stuur je de Longer L100-1S-2 pomp aan via Matlab?
[…] de signalen van de pomp interpreteren. Voor meer informatie over dit onderwerp kun je onze blogpost „Hoe bedien je de Longer L100-1S-2-pomp via Python?“ raadplegen. Mocht je vragen of opmerkingen hebben, neem dan gerust contact met ons op via […]