Modbus USB
Modbus USB
CARRERA: MECATRÓNICA
TEMA :
Arquitectura maestro/esclavo con adaptador USB a RS485 Modbus
NIVEL : OCTAVO
PARALELO : B
1. TEMA.................................................................................................................................................3
2. OBJETIVOS........................................................................................................................................3
2.2. Objetivos específicos...................................................................................................................3
3. MARCO TEÓRICO............................................................................................................................3
3.1. RS-485.........................................................................................................................................3
3.2. Adaptador USB a RS-485............................................................................................................3
3.3. Acceso a características del protocolo MODBUS........................................................................4
4. MATERIALES....................................................................................................................................5
5. DESARROLLO...................................................................................................................................6
6. CONCLUSIONES...............................................................................................................................7
7. BIBLIOGRAFÍA.................................................................................................................................8
8. ANEXOS.............................................................................................................................................9
8.1. Programación Arduino:................................................................................................................9
1. TEMA
2. OBJETIVOS
3. MARCO TEÓRICO
3.1. RS-485
El conversor USB a RS485 integra un conversor USB a serial TTL (CH340) y un chip
serial a RS485 (MAX485). El conversor USB a RS485 permite establecer
comunicación entre una PC (USB).
El estándar RS485 también llamado EIA-485 es muy utilizado por equipos industriales
de instrumentación y control: Variadores de velocidad, PLC, Pirómetros. El
estándar RS485 está definido como un sistema de comunicación en bus de transmisión
multipunto diferencial, es ideal para transmitir a velocidades medianas sobre largas
distancias (35 Mbit/s hasta 10 metros y 100 kbit/s en 1200 metros) y a través de canales
ruidosos, ya que al emplear voltajes diferenciales reduce los ruidos eléctricos que
aparecen en la línea de transmisión. El medio físico de transmisión (cableado) es el
cable par trenzado que admite hasta 32 estaciones en 1 solo bus, con una longitud
máxima de 1200 metros operando entre 300 y 19200 bit/s bajo comunicación half-
duplex (semiduplex).[ CITATION Nor12 \l 12298 ]
Diseñado para
introducir
una resistencia eléctrica
Resistencia determinada entre dos
puntos de un circuito
eléctrico.
Un interruptor eléctrico
es un dispositivo que
Switch permite desviar o
interrumpir el curso de
una corriente eléctrica.
Convertidor de USB a
Adaptador USB
RS-485
5. DESARROLLO
En la figura 2, se muestra el diagrama de comunicación maestro/esclavo por medio de
tres arduinos en donde el maestro va a enviar distintas condiciones a cada uno de los
arduinos esclavos, el esclavo 1 tendrá un potenciómetro y un switch, esclavo 2 indicará
el estado de un led, la variación del potenciómetro y el estado del switch será mostrado
por medio de un PC, conectado por medio de un adaptador USB a RS485
6. CONCLUSIONES
Modbus es un Protocolo monomestro, es decir que a pesar de tener 32 equipos
solo puede estar un maestro al tiempo estableciendo la comunicación con el
esclavo que él seleccione.
Utilizando RS485 como capa física es posible implementar un bus de campo
industrial tipo MODBUS para comunicación entre equipos industriales o DMX
para el control de luces entre otras aplicaciones.
El módulo permite usar el estándar RS-485 y MODBUS para comunicarse con
otros dispositivos que lo soporten,: usando un par de cobre trenzado conectado a
la bornera o usando un cable DB9.
7. BIBLIOGRAFÍA
Esclavo 1
#include <LiquidCrystal.h> #define SLAVE_ID 1
#include <String.h> #define SLAVE_EN 2
#include <stdio.h> void setup()
#include <stdlib.h> {
//#include <SoftwareSerial.h> pinMode(8,OUTPUT);
LiquidCrystal lcd(26, 27, 28, 29, 30, 31); modbus_configure( 9600, SLAVE_ID, SLAVE_EN,
//SoftwareSerial mySerial(9, 10); // RX, TX TOTAL_REGS_SIZE, 0 );//modbus_configure( 9600, 2, 2,
TOTAL_REGS_SIZE, 0 );
int dato=0,inByte=0; }
char datoc=0; int t1=0,t2=0;
void loop(){
char SMS[200]; if (digitalRead(9) == HIGH){
char SMS1[5]; t2=1;
char SMS2[5]; digitalWrite(8,HIGH);
char received[200]; }else{
digitalWrite(8,LOW);
#include <SimpleModbusSlave.h> t2=0;
enum{ }
REG1, registros[ TOTAL_ERRORS ] = modbus_update( registros
REG2, );
TOTAL_ERRORS, registros[ REG1 ] = analogRead(A0);//registros[ REG1 ] =
TOTAL_REGS_SIZE t1;
}; registros[ REG2 ] = t2;//registros[ REG2 ] = t2;
unsigned int registros[ TOTAL_REGS_SIZE ]; }
Esclavo 2
#include <LiquidCrystal.h> char SMS[200];
#include <String.h> char SMS1[5];
#include <stdio.h> char SMS2[5];
#include <stdlib.h> char received[200];
LiquidCrystal lcd(26, 27, 28, 29, 30, 31);
#include <SimpleModbusSlave.h>
int dato=0,inByte=0; enum{
char datoc=0; REG1,
REG2,
TOTAL_ERRORS,
TOTAL_REGS_SIZE
};
unsigned int registros[ TOTAL_REGS_SIZE ];
#define SLAVE_ID 2
#define SLAVE_EN 2
void setup()
{
modbus_configure( 9600, SLAVE_ID, SLAVE_EN,
TOTAL_REGS_SIZE, 0 );//modbus_configure( 9600, 2, 2,
TOTAL_REGS_SIZE, 0 );
}
int t1=0,t2=0;
void loop(){
if(digitalRead(8)==HIGH){
t1=1;
}else{
t1=0;
}
//int pot = map(analogRead(0),0,1024,0,255);
//int pot1 = map(analogRead(1),0,1024,0,255);