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 Matlab per scrivere e inviare stringhe di comandi di controllo alla pompa.
SOMMARIO
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 (nello specifico, Matlab)
- 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 frame check sequence (FCS), ottenuta calcolando lo XOR tra l'indirizzo della pompa, la lunghezza della PDU e la PDU stessa (calcola l'FCS utilizzando il nostro calcolatore XOR per frame check sequence online)
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 ilsenso 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, dove la stringa di 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
- Impostare la portata (4 byte) con 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 del 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 D0 indica 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 Matlab?
Di seguito sono presentati gli snippet di codice Matlab che mostrano come aprire la porta seriale, scrivere e inviare stringhe di comando di controllo alla pompa e redigere un semplice programma di pompaggio.
Partendo dal primo esempio appena presentato, il seguente frammento di codice Matlab fa ruotare il motore 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
% Open the serial port with the 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
s = serialport('COM3', 9600, 'Parity', 'None', 'DataBits', 8, 'StopBits', 1);
% Write the corresponding control command string
Str = 'E9 01 06 57 4A 07 D0 01 01 CD';
% 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);
- 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
% Open the serial port with the 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
s = serialport('COM3', 9600, 'Parity', 'None', 'DataBits', 8, 'StopBits', 1);
% Run pump 1 counter-clockwise at a flow rate of 5 mL/min for 10s
Str = 'E9 01 08 57 4C 00 4C 4B 40 01 01 55'; % corresponding control command string
Data = sscanf(Str, '%2x').';
write(s, Data, uint8); % write the Data to the pump
% 10s delay with a visible timer
Pumping_time = 10;
for Pumping_time = 10:-1:1
pause(1)
disp(['Remaining_time: ' num2str(Pumping_time)])
end
% Run pump 1 clockwise at a flow rate of 3 mL/min for 30s
Str = 'E9 01 08 57 4C 00 2D C6 C0 01 00 38'; % corresponding control command string
Data = sscanf(Str, '%2x').';
write(s, Data, uint8); % write the Data to the pump
% 30s delay with a visible timer
Pumping_time = 30;
for Pumping_time = 30:-1:1
pause(1)
disp(['Remaining_time: ' num2str(Pumping_time)])
end
% Stop the pump
Str = 'E9 01 08 57 4C 00 2D C6 C0 00 00 39'; % 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
Conclusione
Ci auguriamo che questo articolo del blog ti abbia aiutato a capire come controllare in remoto la pompa peristaltica Longer L100-1S-2 tramite Matlab utilizzando il protocollo LONGER RS485. Puoi anche utilizzare altre piattaforme di programmazione, come Python, 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, consulta il nostro articolo del blog “Come controllare la pompa Longer L100-1S-2 tramite Python?”.
Se avete domande o commenti, non esitate a contattarci all'indirizzo contact@darwin-microfluidics.com.



How to Control the Longer L100-1S-2 Pump via Python ? - Darwin Microfluidics
[…] Ci auguriamo che questo articolo del blog vi abbia aiutato a capire come controllare in remoto la pompa peristaltica L100-1S-2 di Longer tramite Python, utilizzando il protocollo RS485 di LONGER. È 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, consulta il nostro post sul blog “Come controllare la pompa L100-1S-2 di Longer tramite Matlab?”. […]
Come controllare da remoto le vostre pompe peristaltiche Longer?
[…] Come controllare la pompa L100-1S-2 di Longer tramite Matlab? […]