Introducción
En esta publicación, vamos a explicar cómo hacer lo básico para trabajar con la comunicación RS-232 de los controladores lógicos programables de Industrial Shields. Al leer esta publicación, entenderás cómo conectar y configurar el RS-232 de tu controlador PLC industrial Arduino.
El protocolo RS-232 define las señales que están conectadas entre DTE como terminal de computadora y DCE como módem. Nuestros PLCs tienen en el interior el circuito integrado MAX232, que puede convertir las señales de un puerto serie TIA-232 en señales adecuadas que pueden usarse en circuitos lógicos digitales compatibles con TTL.
El circuito integrado, MAX232, tiene salidas que pueden funcionar con los niveles de voltaje de RS-232, que se producen a partir del suministro de voltaje de 5V utilizando multiplicadores de voltaje en asociación con condensadores externos.
Lectura previa
Te recomendamos que leas la siguiente publicación para comprender la programación de este blog. Utilizamos el siguiente post para hacer este ejemplo::
Cómo programar nuestro PLC industrial con Arduino IDE: Instalación de las placas de Industrial Shields en el IDE de Arduino >>>
Requisitos
Para trabajar con el protocolo RS-232, necesitarás cualquiera de nuestros controladores industriales para la automatización industrial:
Controladores Industrial Shields:
Configuración de los conmutadores
En la familia M-Duino, siempre tendrás activado el RS-232 por defecto, por lo que no necesitarás activarlo mediante ningún interruptor.ForPara la familia Ardbox Analog, hay algunos interruptores que debemos configurar.
Hardware Serie RS-232.
I2C * Si I2C está activo, I0.0 & I0.6 están deshabilitados.
SPI
TTL
USB
Entradas: 8 de las 10 entradas, I0.0, I0.1 & I0.4 to I0.9. * Si usas I2C, I0.0 también está deshabilitado.
Salidas digitales: todas las 10 salidas. * Si utilizas I2C, Q0.6 está deshabilitado.
Salidas analógicas: de A0.0 a A0.6. * Si usas I2C A0.6 está deshabilitado.
El último caso es la familia Ardbox Relay, con los siguientes interruptores:
Nota: Para habilitar el protocolo RS-232, la ZONA SUPERIOR debe configurarse como se muestra en la tabla. Aunque el nombre del interruptor solo está referenciado a R
S-485 es también li mismo para el RS-232.
A parte de los interruptores, tenemos 2 puentes dentro del PLC. Protocolo de comunicaciones y conexiones disponibles que utilizan estas configuraciones de puentes:
Hardware Serie RS-232.
I2C * Si I2C está activo, I0.0 & I0.6 están deshabilitados.
SPI
TTL
USB
Entradas: Todas las 10 entradas, I0.0 to I0.9. * Si usas I2C, I0.0 está deshabilitado.
Salidas de Relé: de R1 a R6. * Si usas I2C, R5 está deshabilitado. R7 & R8 están desactivados desde el interruptor TOP ZONE.
Salidas analógicas: A0.0 & A0.1
Hardware
Lo primero que tenemos que hacer es asegurarnos de que el PLC está alimentado con 12-24Vdc.
Para realizar la conexión, en ambas familias, utilizamos los pines RX y TX de esta manera:
1r PLC 2o PLC
TX------------------RX (RS232)
RX------------------TX (RS232)
Software
Para todas las gamas de la familia Industrial Shields PLC:
Un ejemplo básico de escritura en el RS-232:
// Incluir las bibliotecas de Industrial shields
#incluir <RS232.h>
///IMPORTANTE: comprueba la configuración de los interruptores:
//////////////////////////////////////////////////////////////////////////////////////////////
void setup() {
// Begin serial port
Serial.begin(9600);
// Begin RS232 port
RS232.begin(38400);
}
///////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
// Wait bytes in the serial port
if (Serial.available()) {
byte tx = Serial.read();
// Echo the byte to the serial port again
Serial.write(tx);
// And send it to the RS-232 port
RS232.write(tx);
}
}
Un ejemplo básico de lectura del RS-232
// Incluir las bibliotecas de Industrial shields
#incluir <RS232.h>
/// IMPORTANTE: comprueba la configuración de los interruptores:
//////////////////////////////////////////////////////////////////////////////////////////////
void setup() {
// Begin serial port
Serial.begin(9600);
// Begin RS232 port
RS232.begin(38400);
}
//////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
// Print received byte when available
if (RS232.available()) {
byte rx = RS232.read();
// Hexadecimal representation
Serial.print("HEX: ");
Serial.print(rx, HEX);
// Decimal representation
Serial.print(", DEC: ");
Serial.println(rx, DEC);
}
}