Autor Tema: Estoy implementando MODBUS en PIC  (Leído 12212 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado alfredoenvalpo

  • PIC10
  • *
  • Mensajes: 10
Estoy implementando MODBUS en PIC
« en: 25 de Octubre de 2006, 15:11:27 »
Hola!  :shock:
Me encuentro implementando el protocolo Modbus en un pic18f452

La idea de este mensaje es compartir experiencia y saber si hay alguien haciendo
lo mismo.

Me encuentro implementando las primeras funciones, read coils y read discrete
inputs las tengo hecha aunque aun no las he probado grabadas en el microcontrolador.

Espero comentarios,.  :-/

Saludos  ALFREDO


Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Estoy implementando MODBUS en PIC
« Respuesta #1 en: 25 de Octubre de 2006, 17:02:53 »
hola amigo, lei tu post y me carcome la duda, q es un MODbus?
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado alfredoenvalpo

  • PIC10
  • *
  • Mensajes: 10
Re: Estoy implementando MODBUS en PIC
« Respuesta #2 en: 25 de Octubre de 2006, 17:21:05 »
hola micro_cadaver

modbus es un protocolo de comunicacion industrial, utilizado para control y monitoreo
de procesos, suele ser conocido como el standard de facto. Permite comunicacion maestro-esclavo
entre dispositivos, similar a cliente servidor.

En internet, encontrarás mucha información,

Saludos!  :-/
Alfredo

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Estoy implementando MODBUS en PIC
« Respuesta #3 en: 25 de Octubre de 2006, 17:55:22 »
gracias amigo  :-/
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado GustavoT

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 102
Re: Estoy implementando MODBUS en PIC
« Respuesta #4 en: 26 de Octubre de 2006, 12:27:02 »
Me gustaria estar al tanto de tu proyecto, me parece muy interesante y util, cada vez que veo un PLC  me carcomen las ganas de conectarlo con un pic usando justamente modbus.

Cuenta conmigo en lo que te haga falta

Suerte

Gustavo T
Tucuman Argentina
Hay dos cosas infinitas: el Universo y la estupidez humana. Y del Universo no estoy seguro.   Albert Einstein

Desconectado ALE1973

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 229
Re: Estoy implementando MODBUS en PIC
« Respuesta #5 en: 26 de Octubre de 2006, 15:48:19 »
Yo implemente algunas de las funciones de modbus en un pic F873, dejame buscar el as, y lo posteo para ver... no esta nada optimizado... pero anda...

Saludos.
Alejandro

Desconectado alfredoenvalpo

  • PIC10
  • *
  • Mensajes: 10
Re: Estoy implementando MODBUS en PIC
« Respuesta #6 en: 26 de Octubre de 2006, 18:28:58 »
Gracias por el apoyo, me mantendré posteando en este topic conforme vaya avanzando.

ALE1973, estoy programando en C, pero de todas maneras espero tu comentario para echarle un vistazo.


SALUDOS!
Alfredo  :-)

Desconectado alfredoenvalpo

  • PIC10
  • *
  • Mensajes: 10
Re: Estoy implementando MODBUS en PIC
« Respuesta #7 en: 27 de Octubre de 2006, 23:45:31 »
GustavoT o quien pueda ayudarme,

necesito ayuda para implementar interrupciones, no deberia ser complicado, pero aun no encuentro
como escribir el codigo en C para implementar varias rutinas de interrupción solo encuentro como
se implementa una de alta prioridad y una de baja prioridad en un mismo programa, pero quiero
implementar varias de baja prioridad por ejemplo recepcion serial y timer 0..

Gracias!!  :-/

Desconectado alfredoenvalpo

  • PIC10
  • *
  • Mensajes: 10
Re: Estoy implementando MODBUS en PIC
« Respuesta #8 en: 31 de Octubre de 2006, 18:09:02 »
Hola ya he implementado hasta la funcion read holding registers. (03)...
Eso si estoy haciendo el desarrollo sin "grabar" el codigo en el micro,
tengo pendiente la tarea de crear rutinas de interrupcion que vayan recibiendo
bytes y contando el tiempo.

La duda la puse en el post anterior,..un poco de ayuda por favor  :mrgreen:

Desconectado Zaphyrus

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 323
    • Mi blog: Es cuestión de actitud
Re: Estoy implementando MODBUS en PIC
« Respuesta #9 en: 31 de Octubre de 2006, 18:26:38 »
Hola Alfredoenvalpo. ¿Que compilador de C estas usando CSS-C, Microchip C18 o Hitech C18?
Quería saber para ver si te puedo dar una mano.

Saludos.

Martín
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas." Arthur C. Clarke.
Mi Proyecto Final de Carrera-Microprocesador RISC de 16 bits en HDL: http://martin.calveira.googlepages.com/home
Mi página web o blog: http://es-cuestion-de-actitud.blogspot.com/
Martín Calveira - Zárate - Argentina

Desconectado alfredoenvalpo

  • PIC10
  • *
  • Mensajes: 10
Re: Estoy implementando MODBUS en PIC
« Respuesta #10 en: 31 de Octubre de 2006, 22:43:07 »
Estoy desarrollando el programa con Microchip C18 (Student)
lo que necesito es un ejemplo sobre como se implementan varias rutinas
de interrupcion, se que deberia ser facil pero no he encntrado como hacerlo.

Saludos  :shock:

Desconectado Zaphyrus

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 323
    • Mi blog: Es cuestión de actitud
Re: Estoy implementando MODBUS en PIC
« Respuesta #11 en: 31 de Octubre de 2006, 23:11:47 »
Alfredoenvalpo, solo he usado el compilador de Hitech pero he visto el código del PicOS18 en donde encontré el asunto de las interrupciones. Si te interesa te dejo el enlace para que lo bajes y lo mires:

http://www.picos18.com/Download/PICos18_v2_09.zip

(http://www.picos18.com/Download/)

Este es el único lugar donde vi algo de eso.

Saludos.

Martín
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas." Arthur C. Clarke.
Mi Proyecto Final de Carrera-Microprocesador RISC de 16 bits en HDL: http://martin.calveira.googlepages.com/home
Mi página web o blog: http://es-cuestion-de-actitud.blogspot.com/
Martín Calveira - Zárate - Argentina

Desconectado Zaphyrus

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 323
    • Mi blog: Es cuestión de actitud
Re: Estoy implementando MODBUS en PIC
« Respuesta #12 en: 31 de Octubre de 2006, 23:24:56 »
Acá está el código que te comentaba del PICOS18:

Código: [Seleccionar]
#include "define.h"

/**********************************************************************
 * Function you want to call when an IT occurs.
 **********************************************************************/
  extern void AddOneTick(void);
/*extern void MyOwnISR(void); */
  void InterruptVectorL(void);
  void InterruptVectorH(void);

/**********************************************************************
 * General interrupt vector. Do not modify.
 **********************************************************************/
#pragma code IT_vector_low=0x18
void Interrupt_low_vec(void)
{
   _asm goto InterruptVectorL  _endasm
}
#pragma code

#pragma code IT_vector_high=0x08
void Interrupt_high_vec(void)
{
   _asm goto InterruptVectorH  _endasm
}
#pragma code

/**********************************************************************
 * General ISR router. Complete the function core with the if or switch
 * case you need to jump to the function dedicated to the occuring IT.
 * .tmpdata and MATH_DATA are saved automaticaly with C18 v3.
 **********************************************************************/
#pragma code _INTERRUPT_VECTORL = 0x003000
#pragma interruptlow InterruptVectorL
void InterruptVectorL(void)
{
  EnterISR();

  if (INTCONbits.TMR0IF == 1)
    AddOneTick();
/*Here is the next interrupts you want to manage */
/*if (INTCONbits.RBIF == 1)                      */
/*  MyOwnISR();                                  */

  LeaveISR();
}
#pragma code

/* BE CARREFULL : ONLY BSR, WREG AND STATUS REGISTERS ARE SAVED  */
/* DO NOT CALL ANY FUNCTION AND USE PLEASE VERY SIMPLE CODE LIKE */
/* VARIABLE OR FLAG SETTINGS. CHECK THE ASM CODE PRODUCED BY C18 */
/* IN THE LST FILE.                                              */
#pragma code _INTERRUPT_VECTORH = 0x003300
#pragma interrupt InterruptVectorH nosave=FSR0, TBLPTRL, TBLPTRH, TBLPTRU, TABLAT, PCLATH, PCLATU, PROD, section(".tmpdata"), section("MATH_DATA")
void InterruptVectorH(void)
{
  if (INTCONbits.INT0IF == 1)
    INTCONbits.INT0IF = 0;
}
#pragma code



extern void _startup (void);
#pragma code _RESET_INTERRUPT_VECTOR = 0x003400
void _reset (void)
{
    _asm goto _startup _endasm
}
#pragma code


/* End of file : int.c */


Saludos.

Martín
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas." Arthur C. Clarke.
Mi Proyecto Final de Carrera-Microprocesador RISC de 16 bits en HDL: http://martin.calveira.googlepages.com/home
Mi página web o blog: http://es-cuestion-de-actitud.blogspot.com/
Martín Calveira - Zárate - Argentina

Desconectado alfredoenvalpo

  • PIC10
  • *
  • Mensajes: 10
Re: Estoy implementando MODBUS en PIC
« Respuesta #13 en: 01 de Noviembre de 2006, 15:32:13 »
Martin:

Muchas gracias por tu respuesta!! es justo lo que estaba buscando
he perdido mucho tiempo tratando de encontrar como hacer eso..

Cuando lo pruebe te avisaré en este topic

Gracias de nuevo  :-/
Saludos!!

Alfredo

Desconectado Zaphyrus

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 323
    • Mi blog: Es cuestión de actitud
Re: Estoy implementando MODBUS en PIC
« Respuesta #14 en: 01 de Noviembre de 2006, 16:32:26 »
Me alegra que te haya servido y yo haya dado justo con lo que necesitabas :-/ Hace tiempo que quiero aprender el Microchip C18 Students pero no tengo tiempo. Me parece un compilador bastante poderoso porque te permite tocar más a bajo nivel que los otros.

Saludos.

Martín
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas." Arthur C. Clarke.
Mi Proyecto Final de Carrera-Microprocesador RISC de 16 bits en HDL: http://martin.calveira.googlepages.com/home
Mi página web o blog: http://es-cuestion-de-actitud.blogspot.com/
Martín Calveira - Zárate - Argentina


 

anything