Resultados 1 al 5 de 5
  1. #1
    ASBERGADAS está desconectado Forero
    Fecha de ingreso
    nov 2007
    Ubicación
    Galicia-Orense
    Mensajes
    1.044

    Predeterminado Ayuda para tonto con ModBusq

    Hola colegas.

    Mi unica habilidad es diseñar hardware y programar en assembler. A partir de aqui soy absolutamente inutil. Y ahora me toca ensayar soluciones para mis Tristar usando el protocolo ModBus, que no he usado nunca.

    Ya habreis visto en la que me han metido estos señores. Si no lo habeis visto leer aqui :http://www.solarweb.net/forosolar/fo...pitulo-ii.html

    Debo intentar poner en orden el caos de los reguladores en paralelo, pasandolos a float todos cuando toque. Como debo hacerlo via serial (hay algunos de 45A no llevan 485, para ahorrar convertidores multiplexare una salida serial a seis) y para poder programar desde un uP de 8 bits la comunicación debería poder entender bit a bit como funciona y poder cambiar registros y los llamados coils (registros de 1 bit) de los MPPT Tristar.

    Ya se que es en RTU y 9600 bauds etc, lo que no entiendo es el formato de los mensajes. Me explico, imaginemos que quiero poner a cero los registros de tiempo de absorción en el MPPT Tristar que segun su manual es :

    PDU adress = 0xE002


    Logical adress = 57347 (Et_absorp absorption time)

    y lo quiero hacer en el equipo con direccion de ModBus 1


    Mensaje:

    Byte 1 Direccion:
    Direccion del equipo Seria 01H (0000 0001 en binario) para el equipo con direccion 1

    Byte 2 Funcion :
    Aqui ya me pierdo Seria 06H (Write Data in 16-bit Integer) (0000 0110 binario) supongo para escribir un registro de 16 bits

    Byte 3 Address High
    Sera el E0H??

    Byte 4 Address Low
    Seria 02H ??

    Byte 5 Data High
    00H

    Byte 6 Data Low
    00H

    Byte 7 y Byte 8 CRC - CRC (no se si uno a dos bytes) Ha buscarse la vida para calcular el CRC , pero esto aun sería capaz.

    O sea que le mando (escrito en hexa) 01 06 E0 02 00 00 CRC todo ellos en formato de 8 bits, sin paridad y con un stop bit

    Alguien sabe si esto es correcto. ¿Que pinta en el PDU address el 0 x antes de la direccion de 16 bits E002H?.

    Como aqui hay sabios del soft, de verdad me sacareis de un apuro si me aclarais este tema, para mi confuso asunto. Quiero asegurarme para no hacer "pum" al regulador, que alguno ha petado ya.
    Mucho agradeceré la ayuda.

    Tambien quisiera preguntar si es posible hacer la siguiente chapuza : Como debo escribir en seis equipos con entrada serial habia pensado conectar todos los data in (de los reguladores) en paralelo. Como el Modbus invoca a un solo equipo (por la direccion) supongo que solo el invocado respondera, con lo cual hago una OR en los datos recibidos y listos. A parte del problema de que los RS232 de los Tristra son aislados y precisan "caña" parar funcionar", creeis que puede funcionar asi, pues me ahorraria meter seis salidas RS232 a mi uP.

    Gracias por ayudar


    Cordiales saludos

  2. #2
    Josef111 está desconectado Forero
    Fecha de ingreso
    ene 2012
    Ubicación
    Zamora
    Mensajes
    816

    Predeterminado Re: Ayuda para tonto con ModBusq

    Espero te sirva si no tienen los write capados.

    » Regulador Morningstar TriStar MPPT a través de modbus » Blog de jeperez

    Un saludo.

  3. #3
    ASBERGADAS está desconectado Forero
    Fecha de ingreso
    nov 2007
    Ubicación
    Galicia-Orense
    Mensajes
    1.044

    Predeterminado Re: Ayuda para tonto con ModBusq

    Hola
    Esto no puedo ejecutarlo ni de coña en mi placa. Solo puedo meter codigo maquina. O sea a partir de assembler puro y duro
    Cuando dice :
    //Leemos los registros desde el 0 al 91
    modbus_read_registers(mb, 0,91, tab_reg);

    Supongo que esta usando alguna libreria preexistente y yo ni puta idea tengo de esto. Tengo que hacerme la comunicacion bit a bit y unas rutinas en assembler para ello, es decir tengo que entender exactamente que "sale" por el conector serial y que sentido tiene cada bit, en realidad es como si hiciese una bios de una placa.
    Siento ser tan burro.

    Saludos codiales

    EDIT Ademas creo que esto es una ModBus TCP , no RTU, con lo cual tampoco me vale para nada.

  4. #4
    Josef111 está desconectado Forero
    Fecha de ingreso
    ene 2012
    Ubicación
    Zamora
    Mensajes
    816

    Predeterminado Re: Ayuda para tonto con ModBusq

    Claro descarga el soft para win 32 o linux si no está roto el link.

    Bueno ya comentarás.

    Buen finde a todos que este cura se va.

  5. #5
    ASBERGADAS está desconectado Forero
    Fecha de ingreso
    nov 2007
    Ubicación
    Galicia-Orense
    Mensajes
    1.044

    Predeterminado Re: Ayuda para tonto con ModBusq

    Hola

    Ya me he enterado de algo el 0x se refiere al banco o pagina donde estan los registros. Depende de la organizacion del uC. Por tanto mientras esten los registros en el banco 0 ni caso, solo vale la direccion de 16 bits que viene detras.

    Ya sé algo mas, y lo escribo por si otro pasa el mismo calvario.

    Saludos cordiales




1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47