Contacto Llámanos - 0034 938 760 191

Detalles Técnicos

M-DUINO PLC Arduino Ethernet 58 I/Os Analog/Digital PLUS

VOLVER AL PRODUCTO

Instalación Inicial

ARDUINO IDE

El controlador industrial Arduino IDE es la plataforma original para programar placas Arduino. Esta aplicación multiplataforma está disponible en Windows, macOS y Linux y está bajo la Licencia Pública General de GNU. Arduino IDE admite la estructuración de codigo C y C++. Industrial Shields recomienda usar Arduino IDE para programar PLC's basados en Arduino, pero cualquier software compatible con Arduino es también compatible con los controladores de Industrial Shields.

Además de eso, Industrial Shields brinda la posibilidad de seleccionar su PLC industrial basado en Arduino en su Arduino IDE y compilar sus bocetos para los diferentes PLC (controlador lógico programable).

Descargar el Arduino IDE 1.8.6: 

Windows Installer

MAC OSX

Instalalas unidades de Industrial Shields para Arduino IDE:

Industrialshields boards

Entradas y Salidas

ENTRADAS ANALÓGICAS

La variación de voltaje entre –Vcc (o GND) y , +Vcc, puede tomar cualquier valor. Una salida analógica proporciona una medición codificada en forma de un valor digital con un número de N-Bits. En I/O digital y analógica hay una autoaislamiento, por lo que es posible conectarlos a una fuente de alimentación diferente a 24 V.  

Entradas: (16x) Entradas Analógicas (0-10Vdc) / Digitales (7-24Vdc) configurables por software.

CONEXIÓN TÍPICAPara saber más sobre entradas analógicas... 

TYPICAL CONNECTION

ENTRADAS DIGITALES

VVariación de voltaje de –Vcc (o GND) a + Vcc, sin valores intermedios. Dos estados: 0 (-Vcc o GND) y 1 (+ Vcc). En E / S digital y analógica existe aislamiento, por lo que es posible conectarlos en una fuente de alimentación diferente a 24 V.  

Entradas: (16x) Analog Inputs (0-10Vdc) / Digital (7-24Vdc) configurable by software.

             (20x) Digital aislado (7-24Vdc).


Todas las entradas digitales son PNP.

Para saber más sobre entradas digitales ...


CONEXIÓN TÍPICA


Entrada Digital Aislada


 

Entrada Digital no Aislada


ENTRADAS DE INTERRUPCIÓN

Interrupt Service Rutine ( rutina de servicio de interrupción).  Un mecanismo que permite asociar una función con la ocurrencia de un evento particular. Cuando el evento ocurre que el procesador sale inmediatamente del flujo normal del programa y ejecuta la función ISR asociada ignorando cualquier otra tarea. 


Interrupt Arduino Mega Pin M-Duino Pin
INT0 2 I0.5/INT0
INT1 3 I0.6/INT1
INT4 19 I1.6/INT4
INT5 18 I1.5/INT5
INT2 21 I2.6/INT2
INT3 20 I2.5/INT3

    - I0.5 / INT0 e I0.6 / INT1 también como Pin3 y Pin2. Habilite las interrupciones encendiendo los interruptores número 3 y 4 de interruptores de comunicación inactivos.
    -I1.5 / INT4 e I1.6 / INT5 también como Tx1 y Rx1. Habilite las interrupciones encendiendo los interruptores número 1 y 2 de los interruptores de comunicación ascendente.
    - I2.5 / INT3 e I2.6 / INT2 también como SCA y SCL. Habilite las interrupciones activando los interruptores número 3 y 4 de los interruptores de comunicación ascendente. En este caso no podrá usar I2C.

Para saber más sobre las entradas de interrupción...

CONEXIÓN TÍPICA

 Ejemplo de código

En este ejemplo activamos INT0 usando el pin I0_5 de la placa M-duino. Cuando haya un cambio  

#define INTERRUPT I0_5 //other pins: I0_6, I2_6, I2_5, I1_6, I1_5 (M-Duino) I0_0, I0_3, I0_2, I0_1 (Ardbox)

volatile bool state = false;

void setup() {
  pinMode(INTERRUPT, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(INTERRUPT), function_call_back, CHANGE);
}

void loop() {
  if (state == true){
    Serial.println("Interrupt activated");
    state = false;
  }
}

void function_call_back(){ //Change led state
  state = true;
}

COMUNICACIONES

Ethernet

Ethernet  is the technology that is most commonly used in  wired local area networks  ( LANs ). 

A LAN is a  network  of computers  
and other electronic devices that covers a small area such as a room, office, or building. It is used in contrast to a  wide area  
network (WAN) , which spans much larger geographical areas.
Ethernet is a  network protocol  that controls how data is  
transmitted over a LAN. Technically it is referred to as the IEEE 802.3 protocol. The protocol has evolved and improved over time  
to transfer data at the speed of a gigabit per second.

Nuestra familia M-Duino incorpora el IC W5500 integrado.

WX5500   es un controlador Ethernet incorporado TCP / IP cableado que proporciona una conexión a Internet más fácil a los sistemas integrados. Este chip permite a los usuarios tener Conectividad a Internet en sus aplicaciones mediante el uso de un solo chip en el que se apilan TCP / IP, 10/100 Ethernet MAC y PHY están integrados. El chip W5500 incorpora el búfer de memoria interna de 32Kb para el paquete Ethernet tratamiento. Con este chip, los usuarios pueden implementar la aplicación Ethernet agregando el programa de socket simple. SPI se proporciona para Fácil integración con el microcontrolador externo. 

Hardware   

Configuración del Hardware 

*IMPORTANTE:  Asegúrese de que su PLC Ethernet esté alimentado (12-24 V CC). Solo con USB no hay suficiente energía para encender la comunicación de Ethernet 

 

Configuración de interruptores

aAsegúrese de que su PLC Ethernet esté alimentado (12-24 V CC). Solo con USB no hay suficiente energía para encender la comunicación de Ethernet. 

Códigos (pines) usados

Para el protocolo de comunicación Ethernet, el pin Arduino Mega definido es el PIN 10, que está conectado y ya internamente ensamblado al controlador Ethernet WX5500 . El W5500 IC se comunica con la placa Mega a través del bus SP también ensamblado. Usted puede Acceder fácilmente al puerto Ethernet en nuestros PLC Ethernet, se encuentra en la parte superior de la capa de comunicaciones.

La configuración del hardware Ethernet debe ser plug and play. 

Software 

 

*IMPORTANTE: Asegúrese de descargar los Arduino based PLC boards para Arduino IDE.

Configuración del Software

Una vez que se realiza la configuración del hardware, es posible continuar con la configuración del software y también su uso. En primer lugar es necesario incluir la biblioteca Ethernet2.h proporcionada por Industrial Shields (tiene la misma funcionalidad y uso que Ethernet.h)

#include <Ethernet2.h> 
* Recuerde que para la versión V7 o versiones anteriores debe usar la biblioteca <Ethernet.h>Ethernet2 Library - funciones.

Ethernet2 Library - functions.

* Ethernet2.h library tiene las mismas funciones que Ethernet.h.

Códigos de ejemplo

Echo TCP Server:

Una vez que el servidor se está ejecutando, cualquier cliente puede conectarse al servidor. En este ejemplo, se utiliza un M-Duino para generar el servidor. El ejemplo de cliente TCP mostrado anteriormente podría ser uno de los clientes.

A continuación se muestra el código de Arduino IDE

// use Ethernet.h if you have a M-Duino V7 version
#include <Ethernet2.h>
// mac address for M-Duino
byte mac[] = { 0xBE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// Ip address for M-Duino
byte ip[] = { 192, 168, 1, 100 };
int tcp_port = 5566;
EthernetServer server = EthernetServer(5566);
void setup()
{
  // initialize the ethernet device
  Ethernet.begin(mac, ip);
  // start server for listenign for clients
  server.begin();
}
void loop()
{
  // if an incoming client connects, there will be bytes available to read:
  EthernetClient client = server.available();
  if (client.available()) {
    // read bytes from the incoming client and write them back
    // to the same client connected to the server
    client.write(client.read());
  }
}

Echo TCP Client:

Una vez que el servidor se está ejecutando, M-Duino puede conectarse al servidor. En este ejemplo, se utiliza un M-Duino para conectarse con Node.js servidor llamado server.js, el mismo que se usó en el enlace de ejemplo anterior

Para configurar el M-Duino, esta publicación solo sigue el ejemplo de TCP del sitio web de Arduino con algunos cambios. Para poder conectarnos al servidor, debemos conocer la IP del servidor TCP y el puerto donde este servidor está escuchando.

A continuación se muestra el código Arduino.

#include <Ethernet2.h>
#include <SPI.h>
byte mac[] = { 0xBE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 100 };
byte server[] = { 192, 168, 1, 105 }; // Touchberry Pi Server
int tcp_port = 5566;
EthernetClient client;
void setup()
{
  Ethernet.begin(mac, ip);
  Serial.begin(9600);
  delay(1000);
  Serial.println("Connecting...");
  if (client.connect(server, tcp_port)) { // Connection to server.js
    Serial.println("Connected to server.js");
    client.println();
  } else {
    Serial.println("connection failed");
  }
}
void loop()
{
  if (client.available()) {
    if(Serial.available()){
      char s = Serial.read();
      client.write(s); // Send what is reed on serial monitor
      char c = client.read();
      Serial.print(c); // Print on serial monitor the data from server 
    }
  }
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
    for(;;) ;
  }
}

Para saber más sobre la comunicación Ethernet...

Ethernet con HTTP.
Ethernet con MQTT.
Ethernet con Modbus TCP/IP (PLC = Slave).
Ethernet con Modbus TCP/IP (PLC = Master).