Si busca una bomba peristáltica de precisión diseñada para aplicaciones de laboratorio exigentes, con caudales desde menos de 1 µL/min hasta 366,7 mL/min (según el número de rodillos en el cabezal), le recomendamos echar un vistazo a la Longer L100-1S-2. Esta bomba dispensa sus fluidos con la máxima precisión en un amplio rango de caudales y resulta además relativamente económica.
Es posible controlarla de forma remota desde su ordenador, lo que aporta una mayor flexibilidad y comodidad, especialmente si necesita ejecutar programas de bombeo complejos que incluyan bucles, pausas y caudales variables.
En esta entrada del blog, te mostraremos cómo comunicarte con el L100-1S-2 mediante el protocolo LONGER RS485, un protocolo de comunicación en serie que permite enviar comandos y recibir respuestas de la bomba. También te proporcionaremos algunos ejemplos y fragmentos de código sobre cómo utilizar Matlab para escribir y enviar cadenas de comandos de control a la bomba.
ÍNDICE
¿Qué necesita para comunicarse con la L100-1S-2?
Para comunicarse con la L100-1S-2 utilizando el protocolo LONGER RS485, necesitará lo siguiente:
- Una bomba L100-1S-2 equipada con un cabezal de bomba y un tube de su elección
- Un módulo de control RS485 que se conecta al puerto DB15 de la parte posterior de la bomba
- Un cable serie que conecta el módulo de control RS485 a su ordenador o dispositivo
- Una plataforma de programación (Matlab en este caso)
- Una comprensión básica del formato de datos, el formato de comandos y el formato PDU del protocolo LONGER RS485 (explicado a continuación 👇)
¿Cómo configurar el puerto de comunicación?
Antes de comenzar a enviar y recibir datos de la bomba, debe configurar el puerto de comunicación correctamente. Siga estos pasos:
- Conecte el conector DB15 al puerto DB15 situado en la parte posterior de la bomba
- Encienda la bomba y utilice el teclado en el panel frontal de la misma para acceder a la interfaz de configuración de control remoto y establecer el modo de control remoto en "COM" 🕹️
- Asegúrese de que los parámetros de comunicación en su plataforma de programación coincidan con los de la L100-1S-2 (como se muestra en la figura siguiente), que son:
- 1 bit de inicio
- 8 bits de datos
- Paridad: P-n (sin paridad), P-O (paridad impar) o P-E (paridad par)
- Bit de parada: S-1 (1 bit de parada) o S-2 (2 bits de parada)
- Velocidad en baudios: 12 (1200 bits/s), 24 (2400 bits/s), 48 (4800 bits/s), 96 (9600 bits/s), 192 (19200 bits/s) o 384 (38400 bits/s)
¿Cómo escribir cadenas de comandos de control para la L100-1S-2?
Una vez que haya configurado el puerto de comunicación, puede comenzar a redactar y enviar cadenas de comandos de control a la bomba. Una cadena de comandos de control es una secuencia de caracteres hexadecimales que sigue un formato específico, el cual consta de:
- un indicador de inicio (E9H)
- una dirección de bomba (del 1 al 30)
- una longitud de la PDU (unidad de datos de protocolo)
- una PDU, que contiene los caracteres de comando y los parámetros para la aplicación deseada
- una secuencia de verificación de trama (FCS), que se obtiene calculando el XOR de la dirección de la bomba, la longitud de la PDU y la PDU en sí (calcule su FCS utilizando nuestra calculadora XOR de secuencia de verificación de trama en línea)
La PDU y su longitud dependen de la aplicación requerida para la bomba. Algunas de las aplicaciones comunes son:
- Establecer parámetro de funcionamiento (velocidad de rotación)
- Leer parámetro de funcionamiento (velocidad de rotación)
- Establecer el parámetro de funcionamiento (caudal)
- Leer el parámetro de funcionamiento (caudal)
- Establecer los parámetros de comunicación de la bomba
Para cada aplicación, existe un conjunto correspondiente de caracteres de comando y parámetros que debe incluir en la PDU. Estos parámetros se detallan a continuación.
Establecer el parámetro de funcionamiento (velocidad de rotación)
Esta aplicación consiste en escribir en la bomba. La longitud total de la PDU es de 6 bytes donde la cadena de comandos de control consta de (en el mismo orden exacto):
| WJ | Establecer velocidad | Estado 1 | Estado 2 |
| 2 bytes | 2 bytes | 1 byte | 1 byte |
- WJ, cadena de comandos de control de 2 bytes, 57 4A
- Establecer la velocidad (2 bytes) con una unidad de velocidad de 0,01 rpm y una velocidad máxima de 100 rpm
- Estado 1 (1 byte):
- bit 0 – bit de inicio/parada, donde 1 es para iniciar la bomba y 0 es para detenerla
- bit 1: bit de cebado, donde 1 es para cebar la bomba a velocidad máxima (100 rpm) y 0 es para hacer funcionar la bomba a velocidad normal
- Estado 2 (1 byte):
- bit 0: establece elsentido de rotación, donde 0 corresponde a la rotación en el sentido de las agujas del reloj y 1, a la rotación en sentido contrario a las agujas del reloj
La bomba responderá con WJ y mostrará en su pantalla frontal la velocidad de rotación y el sentido de giro tras recibir la cadena de comandos de control.
Leer el parámetro de funcionamiento (velocidad de rotación)
Esta aplicación consiste en la lectura de la bomba. La longitud total de la PDU es de 2 bytes, donde la cadena de comandos de control es RJ.
La respuesta de la bomba consta de:
| RJ | Mostrar velocidad | Estado 1 | Estado 2 |
| 2 bytes | 2 bytes | 1 byte | 1 byte |
- RJ, cadena de comando de control de 2 bytes, 52 4A
Establecer el parámetro de funcionamiento (caudal)
Esta aplicación consiste en realizar una escritura en la bomba. La longitud total de la PDU es de 8 bytes, donde la cadena de comandos de control consta de:
| WL | Establecer el caudal | Estado 1 | Estado 2 |
| 2 bytes | 4 bytes | 1 byte | 1 byte |
- WL, cadena de comando de control de 2 bytes, 57 4C
- Establecer caudal (4 bytes) con la unidad de caudal en nL/min
La bomba responderá con WL Mostrar caudal (4 bytes)y mostrará en su pantalla frontal el caudal y el sentido de giro tras recibir la cadena de comandos de control.
Leer parámetro de funcionamiento (caudal)
Esta aplicación consiste en leer de la bomba. La longitud total de la PDU es de 2 bytes donde la cadena de comandos de control es RL.
La respuesta de la bomba consta de:
| RL | Mostrar caudal | Estado 1 | Estado 2 |
| 2 bytes | 4 bytes | 1 byte | 1 byte |
- RL, cadena de comandos de control de 2 bytes, 52 4C
Configurar los parámetros de comunicación de la bomba
Esta aplicación consiste en escribir en la bomba para configurar los diferentes parámetros de comunicación. La longitud total de la PDU es de 8 bytes, donde la cadena de comandos de control consta de:
| WID | Dirección | Tasa de baudios | Paridad | Bit de parada |
| 3 bytes | 1 byte | 2 bytes | 1 byte | 1 byte |
- WID, cadena de comando de control de 3 bytes, 57 49 44
- Dirección de la bomba(1 byte), rango válido: 1-30
- Velocidad de transmisión (2 bytes), el byte alto es 00H y el byte bajo es el que se indica en la tabla siguiente:
| Byte bajo | Tasa de baudios (bits/s) |
|---|---|
| 01H | 1200 |
| 02H | 2400 |
| 03H | 4800 |
| 04H | 9600 |
| 05H | 19200 |
| 06H | 38400 |
| Otro valor | No válido |
- Paridad (1 byte), configuración según la tabla siguiente:
| Configuración | Paridad |
|---|---|
| 01H | Sin paridad |
| 02H | Paridad impar |
| 03H | Paridad par |
| Otro valor | No válido |
- Bit de parada (1 byte), configuración según la tabla siguiente:
| Configuración | Bit de parada |
|---|---|
| 01H | 1 bit de parada |
| 02H | 2 bits de parada |
| Otro valor | No válido |
Ejemplos de cadenas de comandos de control
- Configurar el L100-1S-2 para que funcione en sentido antihorario a una velocidad de rotación de 20 rpm
Cadena de comando de control: E9 01 06 57 4A 07 D0 01 01 CD
- E9 como indicador (flag)
- 01 como la dirección 1 de la bomba
- 06 como la longitud de la PDU (57 4A 07 D0 01 01)
- 57 4A como caracteres de comando WJ
- 07 D0 se refiere a la velocidad de rotación, 07 D0 (hex) = 2000 (dec); la unidad de velocidad es 0,01 rpm ⇒ la velocidad de rotación = 20 rpm (consulta nuestraherramienta en líneade conversión de sistemas numéricos)
- 01 para poner en marcha la bomba a velocidad normal
- 01 para hacer funcionar la bomba en sentido antihorario
- CD como el resultado XOR de 01 (dirección de la bomba), 06 (longitud de la PDU) y 57 4A 07 D0 01 01 (PDU)
- Configure el L100-1S-2 para que funcione en sentido horario a un caudal de 3 mL/min
Cadena de comando de control: E9 01 08 57 4C 00 2D C6 C0 01 00 38
- E9 como indicador (flag)
- 01 como la dirección 1 de la bomba
- 08 como la longitud de la PDU (57 4C 00 2D C6 C0 01 00)
- 57 4C como los caracteres de comando WL
- 00 2D C6 C0 se refiere al caudal, 00 2D C6 C0(hex) = 3000000(dec); siendo la unidad de caudal nL/min ⇒ el caudal = 3000000 nL/min = 3 mL/min
- 01 para poner en marcha la bomba a velocidad normal
- 00 para hacer funcionar la bomba en sentido horario
- 38 como el resultado XOR de 01 (dirección de la bomba), 08 (longitud de la PDU) y 57 4C 00 2D C6 C0 01 00 (PDU)
🚨No dude en utilizar nuestro generador de cadenas de comando en línea intuitivo para generar sin esfuerzo cadenas de comando de control precisas para su L100-1S-2.
¿Cómo comunicarse con el L100-1S-2 utilizando MATLAB?
A continuación se presentan fragmentos de código en Matlab que muestran cómo abrir el puerto serie, escribir y enviar cadenas de comandos de control a la bomba y redactar un programa de bombeo sencillo.
A partir del primer ejemplo que acabamos de presentar, el siguiente fragmento de código de MATLAB hace que el L100-1S-2 gire en sentido antihorario a una velocidad de rotación de 20 rpm.
%%% 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);
- En un segundo fragmento de código, haremos que la bomba funcione en sentido antihorario a un caudal de 5 mL/min durante 10 s, luego haremos que funcione en sentido horario a un caudal de 3 mL/min durante 30 s antes de detenerla.
%%% 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
Conclusión
Esperamos que esta entrada del blog te haya ayudado a comprender cómo controlar de forma remota la bomba peristáltica L100-1S-2 de Longer a través de Matlab utilizando el protocolo RS485 de LONGER. También puedes utilizar otras plataformas de programación, como Python, para escribir y enviar cadenas de comandos de control a la bomba, así como para leer e interpretar las respuestas de la misma. Para obtener más detalles sobre este tema, consulta nuestra entrada del blog «¿Cómo controlar la bomba L100-1S-2 de Longer mediante Python?».
Si tiene alguna pregunta o comentario, no dude en ponerse en contacto con nosotros en contact@darwin-microfluidics.com.



¿Cómo controlar la bomba Longer L100-1S-2 a través de Python? - Darwin Microfluidics
[…] Esperamos que esta entrada del blog te haya ayudado a comprender cómo controlar de forma remota la bomba peristáltica L100-1S-2 de Longer mediante Python y utilizando el protocolo RS485 de LONGER. También puedes utilizar otras plataformas de programación, como Matlab, para escribir y enviar cadenas de comandos de control a la bomba, así como para leer e interpretar las respuestas de la misma. Para obtener más detalles sobre este tema, consulta nuestra entrada del blog «¿Cómo controlar la bomba L100-1S-2 de Longer a través de Matlab?». […]
¿Cómo controlar de forma remota sus bombas peristálticas Longer?
[…] ¿Cómo controlar la bomba L100-1S-2 de Longer mediante MATLAB? […]