Introducción
En este post, vamos a explicar cómo hacer lo básico cuando trabajamos con entradas digitales del controlador PLC de Industrial Shields. Entenderás cómo conectar y configurar los PLCs para estar seguro de poder leer las entradas digitales.
Lecturas previas
Te recomendamos que leas los siguientes blogs para entender el programa de este post. Usamos las siguientes entradas del blog para hacer este ejemplo:
- Saber programar nuestro PLC industrial con Arduino IDE: Instalar las placas de Industrial Shields en el Arduino ID
Requisitos
Para trabajar con entradas digitales necesitarás cualquiera de nuestros PLC para automatización industrial:
- Controladores de Industrial Shields: Familia de controladores Wifi & Bluetooth, Familia de controladores Ethernet, Familia de controladores GPRS / GSM o 20IOs Controlador Familia Arduino
Configuración de los conmutadores
Casi todas las entradas digitales están siempre conectadas al Arduino interno, pero en algunos casos, el usuario puede elegir una configuración especial de periféricos o un GPIO que funcione normalmente.
En estos casos, el usuario puede elegir entre dos opciones a través de los interruptores.
Cada interruptor puede seleccionar solo una configuración. Por ejemplo, en este caso estamos viendo la configuración de GPIOs de un M-Duino 57R+. Si pones el interruptor de la derecha en el superior, se activará la entrada I2.1 y podrás trabajar con esta entrada como digital. Si el interruptor está en la posición de la izquierda, activarás la línea SCL que se utilizará para la comunicación I2C. Ten en cuenta que cada interruptor tiene dos configuraciones diferentes: debes seleccionar la opción derecha o la izquierda.
Entrada I2.1 habilitada - SCL deshabilitado
Entrada I2.1 deshabilitada - SCL habilitado
Tipos de entrada
Hay tres tipos diferentes de entradas en los PLCs Industrial shields:
- Entrada 5V - 24V
- entrada optoaislada 5V - 24V
- Entrada 5V
Cada uno tiene un consumo particular en el caso del PLC. Recuerda que sólo el Pin 2 y el Pin 3 son compatibles con 5V:
5V - 24V entrada optoaislada
Entrada de 5V - 24V
Entrada de 5V
Hardware
No todas las entradas deben estar conectadas de la misma manera. Mientras que las entradas no aisladas deben estar referidas a la misma tierra que el PLC, las entradas aisladas pueden conectarse a las tierras de entrada, permitiendo aislar los sistemas del PLC. De todos modos, la entrada optoaislada puede ser conectada a la tierra del PLC también.
Las siguientes imágenes muestran cómo conectar las diferentes entradas al PLC para la automatización industrial:
5V - 24V entrada optoaislada
Entrada de 5V - 24V
Entrada de 5V
Software
Para programar los digitales GPIO, debes tener en cuenta que puedes leer los valores con el siguiente comando:
digitalRead(GPIO);
Esta función devuelve "0" o "1" dependiendo del valor real de la entrada.GPIO es el nombre de la entrada. Imagina que queremos saber el estado de la entrada "I0.4", entonces, debemos escribir esta línea:
digitalRead(I0_4);
digitalRead(I0_4);
Las entradas "2" y "3" no tienen un nombre especial, y para leerlas debemos escribir:
digitalRead(2);
digitalRead(3);
digitalRead(2);
digitalRead(3);
Hay que tener en cuenta que no es necesario configurar las entradas digitales del PLC como digitales, excepto con las entradas compatibles de 5V. Significa que debemos configurar las entradas en la configuración antes de leerlas:
pinMode(2,INPUT);
pinMode(3,INPUT);
pinMode(2,INPUT);
pinMode(3,INPUT);
Examples
Puedes ver un ejemplo de GPIO digital de lectura en el siguiente párrafo:
// Digital read example
// This example reads the I0_10, I0_2 and Pin 2 inputs, and shows via serial if they are active
// Setup function
void setup()
{
// Set the speed of the serial port
Serial.begin(9600UL);
// Configure Pin 2 as a digital input
pinMode(2, INPUT);
}
// Loop function
void loop()
{
// Check Pin 2
if (digitalRead(2))
Serial.println("Pin 2 active");
// Check I0_10
if(digitalRead(I0_10))
Serial.println("I0_10 active");
// Check I0_2
if(digitalRead(I0_2))
Serial.println("I0_2 active");
// Digital read example
// This example reads the I0_10, I0_2 and Pin 2 inputs, and shows via serial if they are active
// Setup function
void setup()
{// Set the speed of the serial port
Serial.begin(9600UL);
// Configure Pin 2 as a digital input
pinMode(2, INPUT);}
// Check Pin 2
// Loop function
void loop()
{if (digitalRead(2))
Serial.println("Pin 2 active");
// Check I0_10
if(digitalRead(I0_10))
Serial.println("I0_10 active");
// Check I0_2
if(digitalRead(I0_2))
Serial.println("I0_2 active");