Se state cercando una pompa peristaltica di precisione progettata per applicazioni di laboratorio che richiedono un'elevata precisione, con portate comprese tra meno di 1 µL/min e fino a 366,7 mL/min, a seconda del numero di rulli presenti nella testina della pompa, potreste prendere in considerazione il modello Longer L100-1S-2. Questa pompa eroga i fluidi con la massima precisione su un'ampia gamma di portate ed è anche relativamente economica.
Può essere controllato in remoto dal proprio computer, il che garantisce maggiore flessibilità e praticità, soprattutto se si desidera eseguire programmi di pompaggio complessi con cicli, pause e portate variabili.
In questo articolo del blog vi mostreremo come comunicare con il modello L100-1S-2 utilizzando il protocollo LONGER RS485, un protocollo di comunicazione seriale che consente di inviare comandi e ricevere risposte dalla pompa. Forniremo inoltre alcuni esempi e frammenti di codice su come utilizzare Python per scrivere e inviare stringhe di comandi di controllo alla pompa.
Cosa serve per comunicare con l'L100-1S-2?
Per comunicare con l'L100-1S-2 utilizzando il protocollo LONGER RS485, è necessario disporre di quanto segue:
- Una pompa L100-1S-2 con una testa di pompaggio e una tube a scelta
- Un modulo di controllo RS485 che si collega alla porta DB15 sul retro della pompa
- Un cavo seriale che collega il modulo di controllo RS485 al computer o al dispositivo
- Una piattaforma di programmazione (Python in questo caso)
- Una comprensione di base del formato dei dati, del formato dei comandi e del formato pdu del protocollo LONGER RS485 (illustrato di seguito 👇)
Come configurare la porta di comunicazione?
Prima di poter iniziare a inviare e ricevere dati dalla pompa, è necessario configurare correttamente la porta di comunicazione. Ecco i passaggi da seguire:
- Collegare il connettore DB15 alla porta DB15 sul retro della pompa
- Accendere la pompa e utilizzare il tastierino sul pannello frontale per accedere all'interfaccia di configurazione del controllo remoto, impostando la modalità di controllo remoto su "COM" 🕹️
- Assicurarsi che i parametri di comunicazione sulla piattaforma di programmazione corrispondano a quelli dell'L100-1S-2 (come illustrato nella figura sottostante), ovvero:
- 1 bit di start
- 8 bit di dati
- Parità: P-n (nessuna parità), P-O (parità dispari) o P-E (parità pari)
- Bit di stop: S-1 (1 bit di stop) o S-2 (2 bit di stop)
- Velocità di trasmissione: 12 (1200 bit/s), 24 (2400 bit/s), 48 (4800 bit/s), 96 (9600 bit/s), 192 (19200 bit/s) o 384 (38400 bit/s)
Come scrivere stringhe di comando di controllo sull'L100-1S-2?
Una volta configurata la porta di comunicazione, è possibile iniziare a scrivere e inviare stringhe di comando di controllo alla pompa. Una stringa di comando di controllo è una sequenza di caratteri esadecimali che segue un formato specifico, costituito da:
- un flag di inizio (E9H)
- un indirizzo della pompa (da 1 a 30)
- una lunghezza della PDU (protocol data unit)
- una PDU, che contiene i caratteri di comando e i parametri per l'applicazione desiderata
- una sequenza di controllo del frame (FCS), ottenuta calcolando l'operazione XOR tra l'indirizzo di pompa, la lunghezza della PDU e la PDU stessa (calcola la tua FCS utilizzando il nostro calcolatore online per la sequenza di controllo del frame XOR)
La potenza nominale (PDU) e la sua durata dipendono dall'applicazione prevista per la pompa. Alcune delle applicazioni più comuni sono:
- Impostazione del parametro di marcia (velocità di rotazione)
- Lettura del parametro di marcia (velocità di rotazione)
- Impostare il parametro di funzionamento (portata)
- Leggi il parametro di funzionamento (portata)
- Impostare i parametri di comunicazione della pompa
A ciascuna applicazione corrisponde un insieme di caratteri di comando e parametri da includere nella PDU. Tali parametri sono dettagliati di seguito.
Imposta parametro di funzionamento (velocità di rotazione)
Questa applicazione consiste nella scrittura sulla pompa. La lunghezza complessiva della PDU è di 6 byte, in cui la stringa di comando di controllo è composta da (nell'esatto ordine):
| WJ | Imposta velocità | Stato 1 | Stato 2 |
| 2 byte | 2 byte | 1 byte | 1 byte |
- WJ, stringa di comando di controllo di 2 byte, 57 4A
- Impostare la velocità (2 byte) con un'unità di misura pari a 0,01 giri/min e una velocità massima di 100 giri/min
- Stato 1 (1 byte):
- bit 0 – bit di start/stop, dove 1 avvia la pompa e 0 la arresta
- bit 1 – bit di avviamento: il valore 1 indica l'avviamento della pompa a piena velocità (100 giri/min), mentre il valore 0 indica il funzionamento della pompa a velocità normale
- Stato 2 (1 byte):
- bit 0 – imposta il senso di rotazione, dove 0 indica il senso orario e 1 quello antiorario
La pompa risponderà con WJ e, dopo aver ricevuto la stringa di comando, visualizzerà sul display frontale la velocità di rotazione e il senso di rotazione.
Lettura del parametro di funzionamento (velocità di rotazione)
Questa applicazione consiste nella lettura dalla pompa. La lunghezza complessiva della pdu è di 2 byte e la stringa del comando di controllo è RJ.
La risposta della pompa consiste in:
| RJ | Mostra velocità | Stato 1 | Stato 2 |
| 2 byte | 2 byte | 1 byte | 1 byte |
- RJ, stringa del comando di controllo di 2 byte, 52 4A
Imposta parametro di funzionamento (portata)
Questa applicazione consiste nell'inviare dati alla pompa. La lunghezza complessiva della PDU è di 8 byte, dove la stringa del comando di controllo è composta da:
| WL | Impostare la portata | Stato 1 | Stato 2 |
| 2 byte | 4 byte | 1 byte | 1 byte |
- WL, stringa di comando di controllo di 2 byte, 57 4C
- Imposta la portata (4 byte) con l'unità di misura nL/min
La pompa risponderà con WL Visualizza portata (4 byte) e, dopo aver ricevuto la stringa di comando di controllo, visualizzerà sul display frontale la portata e il senso di rotazione.
Lettura del parametro di funzionamento (portata)
Questa applicazione consiste nella lettura dei dati dalla pompa. La lunghezza complessiva della PDU è di 2 byte, dove la stringa del comando di controllo è RL.
La risposta della pompa consiste in:
| RL | Visualizza la portata | Stato 1 | Stato 2 |
| 2 byte | 4 byte | 1 byte | 1 byte |
- RL, stringa di comando di controllo di 2 byte, 52 4C.
Impostare i parametri di comunicazione della pompa
Questa applicazione consiste nell'inviare comandi alla pompa per impostare i diversi parametri di comunicazione. La lunghezza complessiva della PDU è di 8 byte, dove la stringa del comando di controllo è composta da:
| WID | Indirizzo | Velocità di trasmissione | Parità | Bit di stop |
| 3 byte | 1 byte | 2 byte | 1 byte | 1 byte |
- WID, stringa di comando di controllo di 3 byte, 57 49 44
- Indirizzo della pompa (1 byte), intervallo valido: 1-30
- Velocità di trasmissione (2 byte): il byte alto è 00H e il byte basso è quello indicato nella tabella sottostante:
| Byte inferiore | Velocità di trasmissione (bit/s) |
|---|---|
| 01H | 1200 |
| 02H | 2400 |
| 03H | 4800 |
| 04H | 9600 |
| 05H | 19200 |
| 06H | 38400 |
| Altro valore | Non valido |
- Parità (1 byte), impostazione come indicato nella tabella sottostante:
| Ambientazione | Parità |
|---|---|
| 01H | Nessuna parità |
| 02H | Parità dispari |
| 03H | Parità pari |
| Altro valore | Non valido |
- Bit di stop (1 byte), impostazione come indicato nella tabella sottostante:
| Ambientazione | Bit di stop |
|---|---|
| 01H | 1 bit di stop |
| 02H | 2 bit di stop |
| Altro valore | Non valido |
Esempi di stringhe di comando di controllo
- Impostare il modello L100-1S-2 in modo che ruoti in senso antiorario a una velocità di rotazione di 20 giri al minuto
Stringa di comando di controllo: E9 01 06 57 4A 07 D0 01 01 CD
- E9come indicatore
- 01come indirizzo 1 della pompa
- 06come lunghezza della PDU (57 4A 07 D0 01 01)
- 57 4A come caratteri di comando WJ
- 07 D0indica la velocità di rotazione, 07 D0 (esadecimale) = 2000 (decimale); l'unità di misura della velocità è 0,01 giri/min ⇒ la velocità di rotazione è pari a 20 giri/min (consulta il nostrostrumento onlineper la conversione tra sistemi numerici)
- 01per avviare la pompa a velocità normale
- 01 per far girare la pompa in senso antiorario
- CDcome risultato dell'operazione XOR tra01(indirizzo della pompa),06(lunghezza della PDU) e57 4A 07 D0 01 01(PDU)
- Impostare l'L100-1S-2 in modo che ruoti in senso orario a una portata di 3 mL/min
Stringa di comando di controllo: E9 01 08 57 4C 00 2D C6 C0 01 00 38
- E9come indicatore
- 01 come indirizzo 1 della pompa
- 08 come lunghezza della PDU (57 4C 00 2D C6 C0 01 00)
- 57 4C come caratteri di comando WL
- 00 2D C6 C0indica la portata; 00 2D C6 C0 (esadecimale) = 3000000 (decimale); l'unità di misura della portata è nL/min ⇒ la portata = 3000000 nL/min = 3 mL/min
- 01per avviare la pompa a velocità normale
- 00 per far funzionare la pompa in senso orario
- 38come risultato dell'operazione XOR tra01(indirizzo della pompa),08(lunghezza della PDU) e 57 4C 00 2D C6 C0 01 00(PDU)
🚨Non esitate a utilizzare il nostro generatore di stringhe di comando online, facile da usare, per generare senza sforzo stringhe di comando precise per il vostro L100-1S-2.
Come comunicare con l'L100-1S-2 utilizzando Python?
Di seguito sono riportati i frammenti di codice Python che mostrano come aprire la porta seriale, scrivere e inviare stringhe di comando di controllo alla pompa e scrivere un semplice programma di pompaggio.
Come illustrato nel primo esempio appena presentato, il seguente frammento di codice Python fa ruotare il modello L100-1S-2 in senso antiorario a una velocità di rotazione di 20 giri al minuto.
### 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 un secondo frammento di codice, facciamo funzionare la pompa in senso antiorario a una portata di 5 mL/min per 10 secondi, poi in senso orario a una portata di 3 mL/min per 30 secondi, prima di arrestarla.
### 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
Conclusione
Ci auguriamo che questo articolo del blog vi abbia aiutato a comprendere come controllare in remoto la pompa peristaltica Longer L100-1S-2 tramite Python utilizzando il protocollo LONGER RS485. È inoltre possibile utilizzare altre piattaforme di programmazione, come Matlab, per scrivere e inviare stringhe di comandi di controllo alla pompa, nonché per leggere e interpretare le risposte provenienti dalla pompa. Per ulteriori dettagli su questo argomento, consultate il nostro articolo del blog “Come controllare la pompa Longer L100-1S-2 tramite Matlab?”.
Se avete domande o commenti, non esitate a contattarci all'indirizzo contact@darwin-microfluidics.com.



Come controllare da remoto le vostre pompe peristaltiche Longer?
[…] Come controllare la pompa L100-1S-2 di Longer tramite Python? […]
Come controllare la pompa Longer L100-1S-2 tramite Matlab?
[…] interpretare i segnali provenienti dalla pompa. Per ulteriori dettagli su questo argomento, consulta il nostro articolo sul blog “Come controllare la pompa L100-1S-2 di Longer tramite Python?”. Se hai domande o commenti, non esitare a contattarci all’indirizzo […]