Autor Tema: modbus y crc  (Leído 1909 veces)

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

Desconectado Gokuden

  • PIC16
  • ***
  • Mensajes: 100
modbus y crc
« en: 06 de Noviembre de 2005, 20:22:00 »
buenas. necesito una ayudadita aqui porfavor..

estoy realizando una automatización en un central azucarero el cual incorpora monitorear diferentes variables en los molinos y centrifugas de azucar en un software escada llamado inusoft y impace. ya los hice en plc y cd600.. pero me falto meter la temperatura de las centrifugas en el software.. todo va por una red 485 por modbus..

se acabo el presupuesto y no hay para adquirir modulos analogicos para los plc. y como estoy de pasantia y me toco ese proyecto necesito terminarlo. lo estoy haciendo con pic y conectandome a la red 485 y modbus..

no toco el C. solo asm y picbasic.  lei los otros post y me fui a la web del amigo palaconcurso.. me baje el pdf de modbus over serial line.. estoy trabajando con la funcion 3 de modbus..

el pc me manda a mi los siguientes datos, esclavo = 02h, funcion = 03h, 3 datos  raros  que al parecer no los uso en el esclavo  que son = 00h   04h  00h, y dos de crc..

yo en el pic me quedo esperando por el 2.. pero si si es 2, espero el 3. y asi susecisamente. no solo pregunto por el 2 para responder porque en la red 485 todos estan mandando datos y si por casualidad alguien manda un 2, el pic pensarà que soy yo y tengo que responder..

ese no es el problema porque en el LOG del Inusoft veo que yo respondo, el problema es que me da CRC incorrect.. no logro hacer eso bien. calcular el CRC..

segui los pasos que estan en el pdf pero algo hice mal.. no se que es...

alguien lo ha hecho antes , (no es C porfavor)???

Desconectado jerupic666

  • PIC10
  • *
  • Mensajes: 5
RE: modbus y crc
« Respuesta #1 en: 31 de Enero de 2006, 18:41:00 »
mira sinceramente soy nuevo en esto, voy a hacer algo similar y voy comenzando, buscando informacion en la red encontre este proyecto, no se si te sirva

http://www.modbus.pl/

y estos datos que te han de ser de gran ayuda

http://www.modbus.org/specs.php

Desconectado jerupic666

  • PIC10
  • *
  • Mensajes: 5
RE: modbus y crc
« Respuesta #2 en: 31 de Enero de 2006, 18:44:00 »
aaaaaaaa

si encuentras informacion por favor subela  Rebotado

Desconectado jorgeansuini

  • PIC18
  • ****
  • Mensajes: 340
RE: modbus y crc
« Respuesta #3 en: 31 de Enero de 2006, 20:31:00 »
Hola:

esta es una rutina de calculo de crc hecha en basic:

;calculo de crc
Poly    con $8408   " CRC polynomial
I       VAR BYTE
pData   VAR BYTE
X       VAR BYTE
CRC     VAR WORD
C_Data  VAR WORD
 VALor var BYTE[3] " Holds 3 values passed to CRC routiine

VALor[0] = $AA
VALor[1] = $05
VALor[2] = $01

Begin:
    CRC = $FFFF
    for X = 0 TO 2
      pData = VALor[X]
      gosub Calc_CRC
    next X
    CRC = ~CRC
    hserout [IHEX CRC.LowByte,IHEX CRC.HighByte,13,10]
    pause 1000
    goto Begin
   
Calc_CRC:
    C_Data = $00FF & pData
    CRC = CRC ^ C_Data
    for I = 0 to 7
        if CRC.Bit0 = 1 then
         CRC = (CRC >> 1) ^ Poly
        else
         CRC = CRC >> 1
        endif
    next I
    return


espero te sirva
Jorge