Resultados 1 al 5 de 5
- 25/05/2012, 18:26 #1Forero
- Fecha de ingreso
- nov 2007
- Ubicación
- Galicia-Orense
- Mensajes
- 1.044
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
-
- 25/05/2012, 18:52 #2Forero
- Fecha de ingreso
- ene 2012
- Ubicación
- Zamora
- Mensajes
- 816
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.
- 25/05/2012, 19:01 #3Forero
- Fecha de ingreso
- nov 2007
- Ubicación
- Galicia-Orense
- Mensajes
- 1.044
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.
- 25/05/2012, 19:08 #4Forero
- Fecha de ingreso
- ene 2012
- Ubicación
- Zamora
- Mensajes
- 816
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.
- 25/05/2012, 19:35 #5Forero
- Fecha de ingreso
- nov 2007
- Ubicación
- Galicia-Orense
- Mensajes
- 1.044
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