Icono del sitio ELECTROALL

Modulo de entradas de corriente (4-20mA) para PLC siemens

YouTube
YouTube
Instagram
Instagram
GitHub
GitHub

Sin duda las señales de corriente son la manera más efectiva de persuadir los ruidos y las interferencias en las industrias, si bien es cierto en este canal hemos creado muchos proyectos para las industrias y obviamente muchos ingenieros me pedían que diseñara un modulo de corriente para dispositivos PLC’s, Efectivamente en este video crearemos una tarjeta que sea capaz de enviar datos de corriente de 4-20mA a los dispositivos de PLC Siemens a través de la comunicación modbus, cabe señalar que el modulo contará con 4 entradas de corriente de 4-20mA.

ESPECIFICACIONES TÉCNICAS
  1. Tensión de alimentación……………………….…………24VDC
  2. Corriente de alimentación………………….……………80mA
  3. Tensión de entrada(recomendado)…………………24VDC
  4. Corriente de entrada (4-20mA)………………………4
  5. Puerto ethernet…………………………………………………….1
  6. Programación Directa…………………………………………PC-BOARD MAIN
  7. Condiciones ambientales min……………………….….-40°
  8. Condiciones ambientales max…………………..……….85°
  9. Dimensiones……………………………………………………………. 82*89mm
  10. Empotrable………………………………………………………………SÍ
ESQUEMÁTICO ELECTRÓNICO
DISEÑO TARJETA PCB
LISTA DE COMPONENTES
Categoría Cantidad Referencias Valor PCB Package Datasheet
Condensadores 32 C1,C4,C5,C6,C10,C11,C14,C15,C16,C17,C18,C20,
C21,C22,C23,C24,C25,C26,C29,C30,C31,C32,C33,
C35,C36,C37,C38,C39,C40,C41,C43,C45
100nF 0603_CAP (see &buy)
Condensadores 2 C2,C3 18pF CAPC1608X87 (see &buy)
Condensadores 1 C7 470uF CAP SMD 10.5X10MM ALUMINUM 470UF/35V (see &buy)
Condensadores 1 C8 220uF CAP SMD 6.3X7.7MM ALUMINUM 220UF/16V (see &buy)
Condensadores 1 C9 100nF 1206_CAP (see &buy)
Condensadores 6 C12,C13,C19,C27,C28,C34 10uF 1206_CAP (see &buy)
Condensadores 1 C42 10uF 0805_CAP (see &buy)
Condensadores 1 C44 47uF CAP SMD 5X5.4MM ALUMINUM 47UF/16V (see &buy)
Condensadores 1 C46 1000uF ELEC-RAD25 (see &buy)
Resistencias 20 R1,R2,R3,R11,R19,R20,R26,R28,R32,
R33,R37,R39,R43,R44,R50,R52,R56,R57,R61,R63
10k 0603_RES (see &buy)
Resistencias 5 R4,R5,R12,R13,R14 1k 0603_RES (see &buy)
Resistencias 1 R6 2.7k 0603_RES (see &buy)
Resistencias 4 R7,R8,R9,R10 49.9 0805_RES (see &buy)
Resistencias 1 R15 1M 0603_RES (see &buy)
Resistencias 4 R16,R29,R40,R53 10 0603_RES (see &buy)
Resistencias 4 R17,R30,R41,R54 15k 0603_RES (see &buy)
Resistencias 4 R18,R31,R42,R55 51k 0603_RES (see &buy)
Resistencias 4 R21,R34,R45,R58 20k 0603_RES (see &buy)
Resistencias 4 R22,R35,R46,R59 2k 0603_RES (see &buy)
Resistencias 4 R23,R36,R47,R60 4.7k 0603_RES (see &buy)
Resistencias 2 R24,R48 240 0603_RES (see &buy)
Resistencias 2 R25,R49 1.8k 0603_RES (see &buy)
Resistencias 4 R27,R38,R51,R62 100 1206_RES (see &buy)
Integrados 1 U1 ENC28J60-I/SS SSOP28 V1 (see &buy)
Integrados 1 U2 ATMEGA328P QFP80P900X900X120-32 (see &buy)
Integrados 1 U3 CH340C SO16 (see &buy)
Integrados 1 U4 LM2576-5,0 TO170P1410X464-6 (see &buy)
Integrados 4 U5,U9,U11,U15 LM358N SO8 (see &buy)
Integrados 2 U6,U12 ICL7660 SO8 (see &buy)
Integrados 4 U7,U10,U13,U16 TL431 SOT23-3 (see &buy)
Integrados 2 U8,U14 LM317L SOT89 (see &buy)
Integrados 1 U17 LD1117S33 SOT230P700X180-4 (see &buy)
Diodos 1 D1 SS14-TP DIOM5226X230N (see &buy)
Diodos 1 D2 B330A-13-F DIOM5226X230N (see &buy)
Diodos 1 D3 LED-RED LEDC2012X120 (see &buy)
Miscelánea 1 BTN1 RST BUTTON SMD 2P (see &buy)
Miscelánea 1 J1 USB TYPE C USB TYPE C (see &buy)
Miscelánea 1 J2 MICRO USB B MICRO USB B (see &buy)
Miscelánea 1 J3 TBLOCK-M2 T-BLOCK 2PIN BLUE
Miscelánea 1 J4 CONN-SIL6 CONN-SIL6 (see &buy)
Miscelánea 4 J5,J6,J7,J8 TBLOCK-M2 T-BLOCK 2PIN BLUE
Miscelánea 1 L1 HF70ACC201209 INDC2012X130 (see &buy)
Miscelánea 1 L2 100u INDUCTOR 100UH (see &buy)
Miscelánea 1 RJ1 RJ45/HR RJ45/NORMAB (see &buy)
Miscelánea 1 X1 CRYSTAL XTAL18 V1 (see &buy)
Miscelánea 1 X2 CRYSTAL SMD S OSCILADOR SMD (see &buy)
MATERIAL Y VIDEOS RELACIONADOS (Obligatorio*)
COMO MANDAR DATOS DE UN ARDUINO A UN PLC

Seguramente a muchos de nosotros nos suena familiar el protocolo de comunicación MODBUS, esta comunicación es una de las comunicaciones estándar que se usa en las industrias para la comunicación de dispositvos plc’s, drivers, módulos, etc. Justamente para  establecer el intercambio de datos de un Arduino y un PLC usaremos el mismo protocolo ya antes mencionado, el cual nos permitirá el intercambio de lecturas de señales digitales, señales analógicas y otros datos. Por consiguiente, en este episodio mandaremos señales analógicas desde un arduino a un dispositivo PLC Siemens S7 1200, para que posteriormente el dispositivo PLC realice un acción de acuerdo a los datos recibidos. por ejemplo, que se active una salida cuando el valor analógico sea mayor igual a 500.
MAS INFORMACIÓN

COMO HACER UN CONVERSOR DE CORRIENTE (4-20mA) – Voltaje (0-3V)

En este episodio explicamos paso a paso a como crear el circuito conversor de corriente a voltaje.
MAS INFORMACIÓN

MODULO DE ENTRADAS DE CORRIENTE (4-20mA) PARA PLC Siemens

Prácticamente este proyecto es la fusión de todos los artículos que hicimos en la parte superior.

PASOS PARA SUBIR UN PROGRAMA
PASO 1 : SUBIR GESTOR DE ARRANQUE (BOOTLOADER)

Para poder usar un microcontrolador nuevo (atmega328p-AU), es necesario subir un un gestor de arranque como también llamado “BOOTLOADER”, esto nos facilitará subir programas en futuras ocasiones.

finalmente para quemar el bootloader se tendrá que realizar a través de los pines ISP, que prácticamente serían los pines [ (MOSI=11) (MISO = PIN12) (SCK=PIN13) (Slave=PIN10) ]. Para subir y quemar el gestor de arranque necesitaremos un arduino UNO ó MEGA y realizar las siguientes conexiones (ARDUINO UNO – MAIN BOARD).

DESCARGAR BOOTLOADER

PASO 2 : SUBIR PROGRAMA; PC – MAIN BOARD

Después de haber subido el gestor de arranque finalmente ya podremos subir cualquier programa como normalmente lo realizamos a través del puerto serie.

ARDUINO CODE
#include <EtherCard.h>
#include <Modbus.h>
#include <ModbusIP_ENC28J60.h>

const int SENSOR_IREG1 = 10;
const int SENSOR_IREG2 = 20;
const int SENSOR_IREG3 = 30;
const int SENSOR_IREG4 = 40;

const int sensorAnalog1 = A0;
const int sensorAnalog2 = A1;
const int sensorAnalog3 = A2;
const int sensorAnalog4 = A3;
const int sensorAnalog5 = A4;

ModbusIP mb;

void setup() {
  //dirección MAC
  byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
  //dirección IP
  byte ip [] = {192, 168, 1, 22};
  mb.config (mac, ip); // se confirma las direcciones

  mb.addIreg(SENSOR_IREG1);
  mb.addIreg(SENSOR_IREG2);
  mb.addIreg(SENSOR_IREG3);
  mb.addIreg(SENSOR_IREG4);

}

void loop() {
  mb.task();// actualiza para el trabajo se realize con normalidad

  // envía los valores de la entrada de corriente
  mb.Ireg(SENSOR_IREG1, analogRead(sensorAnalog1));
  mb.Ireg(SENSOR_IREG2, analogRead(sensorAnalog2));
  mb.Ireg(SENSOR_IREG3, analogRead(sensorAnalog3));
  mb.Ireg(SENSOR_IREG4, analogRead(sensorAnalog4));

}
VIDEO
Salir de la versión móvil