Página 21 de 52 PrimerPrimer ... 1120212231 ... ÚltimoÚltimo
Resultados 501 al 525 de 1294
  1. #501
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    983

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Tienes razón, crearé un diccionario nuevo para las condiciones horarias.

    Código PHP:
    OP={'id_rele':0,'nombre':1,'modo':2,'id_rele2':3,'operacion':4,'parametro':5,'condicion':6,'valor':7}
    OH={'id_rele':0,'nombre':1,'modo':2,'id_rele2':3,'parametro_h':4,'valor_h_ON':5,'valor_h_OFF':6
    ¿Así mejor?

    ----

    He pensado desconectar toda la producción FV del híbrido y pasarla al KID (regulador MPPT, máx 30A -estoy en el límite-). Así podría tener más control sobre todos los elementos que tengo ya.
    ¿Qué os parece?
    PvControl+: Control sistema fotovoltaico
    Si te gusta la web, aquí el proyecto. El manual está aquí
    ¿Cómo conectar un Axpert a una Raspberry? Aquí
    ¿Cómo conectar un InfiniSolar a una Raspberry? Aquí

  2. #502
    el_cobarde Invitado

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Cita Iniciado por nikitto Ver mensaje
    He pensado desconectar toda la producción FV del híbrido y pasarla al KID (regulador MPPT, máx 30A) ... ¿Qué os parece?
    Ningún problema. Un regulador MPPT no tiene problemas, si se supera un poco la intensidad nominal; por ejemplo 1000Wp en vez de 750Wp. Simplemente bloquea la producción FV excesiva y deja pasar solo 30A.

    Quiero decir, que si te facilita el control, puedes conectar todas las placas al KID, sin miedo.

  3. #503
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    983

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Así es, con un shunt a la salida del regulador junto con el que tengo en la batería puedo saber la producción y el consumo diario.

  4. #504
    Avatar de Mleon
    Mleon está desconectado Forero
    Fecha de ingreso
    may 2016
    Ubicación
    MADRID
    Mensajes
    991

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Yo tuve algun problema (el LCD se colgaba, etc) poniendo al FM80 mas placas de las nominales, ademas, supongo que por efecto nube, vi intensidades de carga mayores de 80 a pesar de estar limitada por configuracion...por lo que preferi quitarle placas conectadas

    Supongo que si el exceso es poco no pasara nada, pero al menos a mi ,con el FM80, no me dio confianza dejarlo sobredimensionado en la entrada

  5. #505
    Avatar de Mleon
    Mleon está desconectado Forero
    Fecha de ingreso
    may 2016
    Ubicación
    MADRID
    Mensajes
    991

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Ayer hice una prueba de algoritmo para el control por horario y creo que va bien con algunas limitaciones ( si quieres que encienda por ejm a las 23:00 y que apague a las 3:00 se debe hacer en dos registros....de 23:00 a 23:59 y de 0:00 a 3:00)

  6. #506
    el_cobarde Invitado

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Cita Iniciado por Mleon Ver mensaje
    Yo tuve algun problema ... poniendo al FM80 mas placas de las nominales ...
    Qué potencia en placa tenías conectado al FM80 cuando te daba problemas?
    Antes de tener el "regulador BBB", tenía 3400Wp conectados a mi Sunstar SS-50C (de 50A nominales), y me iba perfectamente. Claro, durante las horas de máximo sol me limitaba la intensidad a 50A, pero en un 80% del día me aprovechaba perfectamente toda la potencia conectada.

  7. #507
    Avatar de Mleon
    Mleon está desconectado Forero
    Fecha de ingreso
    may 2016
    Ubicación
    MADRID
    Mensajes
    991

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Creo recordar que un pico de 100-110A....como vi problemas con el LCD y en el manual te indica el array maximo que se puede instalar decidi no ponerlo en riesgo

  8. #508
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    983

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Cita Iniciado por Mleon Ver mensaje
    Ayer hice una prueba de algoritmo para el control por horario y creo que va bien con algunas limitaciones ( si quieres que encienda por ejm a las 23:00 y que apague a las 3:00 se debe hacer en dos registros....de 23:00 a 23:59 y de 0:00 a 3:00)
    Que raro que no puedas poner de 23:00:00 a 03:00:00. Publica aquí el código o súbelo a tu directorio de la RPi.

    ¿Has visto lo que puse antes de los diccionarios? ¿Era así cómo decías?

    Cita Iniciado por el_cobarde Ver mensaje
    Qué potencia en placa tenías conectado al FM80 cuando te daba problemas?
    Antes de tener el "regulador BBB", tenía 3400Wp conectados a mi Sunstar SS-50C (de 50A nominales), y me iba perfectamente. Claro, durante las horas de máximo sol me limitaba la intensidad a 50A, pero en un 80% del día me aprovechaba perfectamente toda la potencia conectada.
    Haré unas pruebas y decidiré que hago. No me cuesta nada mover 2 cables (+PV & -PV).

    ------


    En unos minutos veremos como que pasa con los relés hoy.
    PvControl+: Control sistema fotovoltaico
    Si te gusta la web, aquí el proyecto. El manual está aquí
    ¿Cómo conectar un Axpert a una Raspberry? Aquí
    ¿Cómo conectar un InfiniSolar a una Raspberry? Aquí

  9. #509
    Avatar de Mleon
    Mleon está desconectado Forero
    Fecha de ingreso
    may 2016
    Ubicación
    MADRID
    Mensajes
    991

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Claro que lo puedes poner....pero el algoritmo pregunta si
    hora_actual > Valor_on and hora_actual < Valor_off

    Para saber si esta dentro del periodo de funcionamiento, por lo que en el caso de pasar de medianoche habria que hacer algo especial para considerarlo

    En un momento pongo el codigo....no estaba muy contento de como me habia quedado, pero para empezar deberia valer

    De paso ya he puesto algo para que solo se ejecute la funcion i2c_rele en los reles dados de alta

  10. #510
    el_cobarde Invitado

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Cita Iniciado por Mleon Ver mensaje
    Creo recordar que un pico de 100-110A....como vi problemas con el LCD y en el manual te indica el array maximo ... decidi no ponerlo en riesgo
    Pues esto es 25% - 37% de sobrepotencia. Me extraña que el FM80 tenga problemas con esto. No es solo mi experiencia personal, otros foreros comentan lo mismo.
    Posiblemente sea solo la pantalla, que se niega a marcar picos >80A?

  11. #511
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    983

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Mientras puedo decir que los relés han vuelto a pararse. En breve podré mirar el log, que no se porque motivo lo escribe cada x minutos.

    Es decir, la parte de los for -> 1 y -> 2 puede dejarse como estaba.

    - - - - - - - - - - - - - - - - - - -

    El problema es HW como ya se sabía, en ningún momento desde el SW se les manda ninguna instrucción de apagado. He revisado todo el log, al que añadí hora y sólo figuran los encendidos de los relés, esta mañana, según condiciones y nada más.

    Ejemplo del encendido del relé TERMO esta mañana:

    Código PHP:
    hora09:58:19
    hora
    09:58:24
    i2c_rele
    32 2 1
    estado
    255
    i2c_out
    (=1253
    hora
    09:58:29
    hora
    09:58:34 
    y relé DEPURADORA un rato después:

    Código PHP:
    hora10:44:03
    hora
    10:44:08
    i2c_rele
    32 1 1
    estado
    253
    i2c_out
    (=1252
    hora
    10:44:14
    hora
    10:44:19 
    - - - - - - - - - - - - - - - - - - -

    Quizás podríamos añadir algún algoritmo que comprobara el estado de los mismos y si es necesario los encendiera. Ya que ahora se da por hecho que están encendidos. Del tipo:

    estado_actual = estado_anterior, si se cumplen las condiciones
    PvControl+: Control sistema fotovoltaico
    Si te gusta la web, aquí el proyecto. El manual está aquí
    ¿Cómo conectar un Axpert a una Raspberry? Aquí
    ¿Cómo conectar un InfiniSolar a una Raspberry? Aquí

  12. #512
    Avatar de Mleon
    Mleon está desconectado Forero
    Fecha de ingreso
    may 2016
    Ubicación
    MADRID
    Mensajes
    991

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Vamos con el codigo...

    Primero he importado la libreria datetime (es posible que valga con la libreria time) y creo dos nuevos diccionarios uno del join de las condiciones de horario y otro de los dias de la semana


    Código PHP:
    import datetime
    .......
    OPH={'id_rele':0,'nombre':1,'modo':2,'id_rele2':3,'parametro_h':4,'valor_h_on':5,'valor_h_off':6}
    NDIA={'D':0,'L':1,'M':2,'X':3,'J':4,'V':5,'S':6
    Ya en el bucle principal al principio veo que dia de la semana es y los segundos que se llevan desde el principio del dia (esto de los segundos es que no he visto claro como hacer la comparacion de dos variables de horas:minutos:seg

    Código PHP:
     ........
            
    diasemana=time.strftime("%w")
            
    ahoradatetime.datetime.now()
            
    segundosdia=ahora.hour*60*60+ahora.minute*60+ahora.second
            
    ....... 


    Vamos a coger tanto la tabla reles como la reles_c como la reles_h

    Código PHP:
    ### Cargar tablas reles , reles_c, reles_h
     
            
    treles MySQLdb.connect(host "localhost"user "root"passwd "fv"db "fv")
            
    cur treles.cursor()
            
    sql_reles='SELECT * FROM reles'
            
    nreles=cur.execute(sql_reles)
            
    nreles=int(nreles)  # = numero de reles
            
    TR=cur.fetchall()

           
            
    reles MySQLdb.connect(host "localhost"user "root"passwd "fv"db "fv")
            
    cur reles.cursor()
            
    sql_reles='SELECT * FROM reles JOIN reles_c WHERE reles.id_rele = reles_c.id_rele'
            
    ncon=cur.execute(sql_reles)
            
    ncon=int(ncon)  # = numero de condiciones
            
    R=cur.fetchall()
           
            
    reloj MySQLdb.connect(host "localhost"user "root"passwd "fv"db "fv")
            
    cur reloj.cursor()
            
    sql_reloj='SELECT * FROM reles INNER JOIN reles_h ON reles.id_rele = reles_h.id_rele'
            
    hcon=cur.execute(sql_reloj)
            
    hcon=int(hcon)  # = numero de condiciones h
            
    H=cur.fetchall() 
    y ahora el algoritmo (los print se pueden quitar..eran para control)

    Código PHP:
    #------------------------ ALGORITMO CONDICIONES RELES -----------------------------
            
            
    Rele_Out_Ant = [i[:] for i in Rele_Out#copio valores Rele_Out en Rele_Out_Ant

            
    for I in range(nreles):
                    
    Puerto=(TR[I][0]%10)-1   # desde 0 a 7
                    
    GR=int((TR[I][0]-Puerto)/10-32# desde 0 donde GR=0 si id_rele=32X, GR=1 si id_rele=33X
                    
    Rele_Out[GR][Puerto]=#encendemos virtualmente todos los reles por defecto

     # -------------------- Bucle de condiciones de horario --------------------------
     
            
    Rele_Out_H = [[0] * for i in range(8)] # Inicializo variable a 0
            
            
    for I in range(hcon):                   
                    print 
    "Procesando ",H[I]
                    
    Puerto=(H[I][0]%10)-1   
                    GR
    =int((H[I][0]-Puerto)/10-32

                    
    diaok=0
                    horaok
    =0
                    
                    
    if H[I][OPH['parametro_h']]=='T'#Todos los dias de la semana
                            
    diaok=1
                    elif str
    (NDIA[H[I][OPH['parametro_h']]])==diasemana:
                            
    diaok=1
                                                         
                    
    if (segundosdia >= H[I][OPH['valor_h_on']].seconds and 
                        
    segundosdia <= H[I][OPH['valor_h_off']].seconds):
                            
    horaok=1
                            
                    
    if diaok == and horaok == 1:
                            
    Rele_Out_H[GR][Puerto]+=1
                            
    print "registro activo"
                            
    print
                    
            print 
    Rele_Out_H

            
    for I in range(hcon):
                    
    Puerto=(H[I][0]%10)-1   
                    GR
    =int((H[I][0]-Puerto)/10-32
                    
                    if 
    Rele_Out_H[GR][Puerto]==0:
                            
    Rele_Out[GR][Puerto]=#apago rele

                    
            
    print

      
    # -------------------- Bucle de condiciones de parametros FV --------------------------
            
    for I in range(ncon):           
                    print 
    "Procesando ",R[I]
                    
    Puerto=(R[I][0]%10)-1   
                    GR
    =int((R[I][0]-Puerto)/10-32

                    if 
    R[I][OP['condicion']]=='<':
                            if (
    R[I][OP['operacion']]=='ON' and
                               
    DatosFV[R[I][OP['parametro']]] > R[I][OP['valor']] and
                               
    Rele_Out_Ant[GR][Puerto] == 0) :
                                    
    Rele_Out[GR][Puerto]=0

                            
    if R[I][OP['operacion']]=='OFF' and DatosFV[R[I][OP['parametro']]] < R[I][OP['valor']] :
                                    
    Rele_Out[GR][Puerto]=0

                    
    if R[I][OP['condicion']]=='>':
                            if (
    R[I][OP['operacion']]=='ON' and
                               
    DatosFV[R[I][OP['parametro']]] < R[I][OP['valor']] and
                               
    Rele_Out_Ant[GR][Puerto] == 0) :
                                    
    Rele_Out[GR][Puerto]=0

                            
    if R[I][OP['operacion']]=='OFF' and DatosFV[R[I][OP['parametro']]] > R[I][OP['valor']] :
                                    
    Rele_Out[GR][Puerto]=0

                    
    ### forzado ON/OFF
                    
    if R[I][OP['modo']]=='ON' :
                            
    Rele_Out[GR][Puerto]=1
                    
    if R[I][OP['modo']]=='OFF' :
                            
    Rele_Out[GR][Puerto]=0

                    
    print "Salida Rele="Rele_Out[GR][Puerto]
                    
            print
                            
     
    # -----------------------Bucle encendido/apagado reles -----------------

            
    Flag_Rele_Encendido 0

            
    for I in range(nreles):

                    
    Puerto=(TR[I][0]%10)-1   # desde 0 a 7
                    
    GR=int((TR[I][0]-Puerto)/10-32# desde 0 donde GR=0 si id_rele=32X, GR=1 si id_rele=33X

                    
    if Rele_Out[GR][Puerto] == and Rele_Out_Ant[GR][Puerto] == and Flag_Rele_Encendido == :
                            
    Rele_Out[GR][Puerto] = #no encender rele

                    
    if Rele_Out[GR][Puerto] == and Rele_Out_Ant[GR][Puerto] == and Flag_Rele_Encendido == :
                            
    i2c_rele(GR+32,Puerto+1,1#encender rele
                            
    Flag_Rele_Encendido=1

                    
    if Rele_Out[GR][Puerto] == and Rele_Out[GR][Puerto] == :
                             
    i2c_rele(GR+32,Puerto+1,0#apagar rele

                    
    print "Rele",TR[I][0],"=",Rele_Out[GR][Puerto],"  //  ",


            print 

    Por ultimo faltara cerrar las conexiones a la BD

    Código PHP:
           ........
            
    reles.close()
            
    treles.close()
            
    reloj.close
            
    ........ 
    - - - - - - - - - - - - - - - - - - -

    Cita Iniciado por nikitto Ver mensaje


    - - - - - - - - - - - - - - - - - - -

    Quizás podríamos añadir algún algoritmo que comprobara el estado de los mismos y si es necesario los encendiera. Ya que ahora se da por hecho que están encendidos. Del tipo:

    estado_actual = estado_anterior, si se cumplen las condiciones
    Pues asi a primera vista cambia e bucle de encendido de reles por este codigo

    Código PHP:
    # -----------------------Bucle encendido/apagado reles -----------------

            
    Flag_Rele_Encendido 0

            
    for I in range(nreles):

                    
    Puerto=(TR[I][0]%10)-1   # desde 0 a 7
                    
    GR=int((TR[I][0]-Puerto)/10-32# desde 0 donde GR=0 si id_rele=32X, GR=1 si id_rele=33X

                    
    if Rele_Out[GR][Puerto] == and Rele_Out_Ant[GR][Puerto] == and Flag_Rele_Encendido == :
                            
    Rele_Out[GR][Puerto] = #no encender rele

                    
    if Rele_Out[GR][Puerto] == and Rele_Out_Ant[GR][Puerto] == and Flag_Rele_Encendido == :
                            
    i2c_rele(GR+32,Puerto+1,1#encender rele
                            
    Flag_Rele_Encendido=1

                    
    if Rele_Out[GR][Puerto] == and Rele_Out_Ant[GR][Puerto] == :
                            
    i2c_rele(GR+32,Puerto+1,1#confirmar rele encendido
                            
                    
    if Rele_Out[GR][Puerto] == and Rele_Out[GR][Puerto] == :
                             
    i2c_rele(GR+32,Puerto+1,0#apagar rele

                    
    print "Rele",TR[I][0],"=",Rele_Out[GR][Puerto],"  //  " 
    La pega que veo es que se te van a encender de golpe los 2 reles si se han apagado

    Podemos hacer que el valor de Rele_Out_Ant no sea un valor calculado por el programa sino leido de los PCF, para ello tienes que confirmar que cuando se apagan los reles por fallo HW.. si lees el valor del PCF te da coherente

    En este caso parece facil ver el estado del PCF y si no coincide con el valor de Rele_Out_Ant actuar en consecuencia

  13. #513
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    983

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Voy mirando, luego me centraré con lo de la hora.
    Ahora quería comentar que cogiendo también la tabla reles (1) sabes el número de relés instalados, fijándote en la info de la BD. ¿No?
    De todas formas no hay problema con el anterior SW.

    - - - - - - - - - - - - - - - - - - -

    Sobre lo de la hora, creo que ya te lo puse.

    Código PHP:
            hora time.strftime("%H:%M:%S")
            print(
    'hora='),hora 
    y luego el tema de comparaciones es muy fácil:

    Código PHP:
            if (hora>= "00:00:00" and hora<="00:00:05"): 
    Cambiando los valores, por el propio contenido que pueda tener valor_h_on o valor_h_off

    Tal como has cogido el día de la semana, perfecto.

    - - - - - - - - - - - - - - - - - - -

    Cita Iniciado por Mleon Ver mensaje

    La pega que veo es que se te van a encender de golpe los 2 reles si se han apagado

    Podemos hacer que el valor de Rele_Out_Ant no sea un valor calculado por el programa sino leido de los PCF, para ello tienes que confirmar que cuando se apagan los reles por fallo HW.. si lees el valor del PCF te da coherente

    En este caso parece facil ver el estado del PCF y si no coincide con el valor de Rele_Out_Ant actuar en consecuencia
    El valor del PCF cuando se 'apaga todo' es 255.
    PvControl+: Control sistema fotovoltaico
    Si te gusta la web, aquí el proyecto. El manual está aquí
    ¿Cómo conectar un Axpert a una Raspberry? Aquí
    ¿Cómo conectar un InfiniSolar a una Raspberry? Aquí

  14. #514
    Avatar de Mleon
    Mleon está desconectado Forero
    Fecha de ingreso
    may 2016
    Ubicación
    MADRID
    Mensajes
    991

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Cita Iniciado por nikitto Ver mensaje
    Voy mirando, luego me centraré con lo de la hora.
    Ahora quería comentar que cogiendo también la tabla reles (1) sabes el número de relés instalados, fijándote en la info de la BD. ¿No?
    De todas formas no hay problema con el anterior SW.
    Claro..por eso he cogido la tabla TR....ademas es mas "limpio" recorrer la tabla reles que la tabla reles_c en algunos for y por eso he actualizado el codigo en algunas partes para usar TR en lugar de R


    Cita Iniciado por nikitto Ver mensaje

    Sobre lo de la hora, creo que ya te lo puse.

    Código PHP:
            hora time.strftime("%H:%M:%S")
            print(
    'hora='),hora 
    y luego el tema de comparaciones es muy fácil:

    Código PHP:
            if (hora>= "00:00:00" and hora<="00:00:05"): 
    Cambiando los valores, por el propio contenido que pueda tener valor_h_on o valor_h_off
    Si pero comparar dos cadenas de texto siempre me ha dado menos confianza que comparar numeros, y como me dio algun error con las variables valor_h_on y valor_h_off (por controlar poco python supongo) tire por la opcion de segundos


    Cita Iniciado por nikitto Ver mensaje

    El valor del PCF cuando se 'apaga todo' es 255.
    Luego es coherente........en este caso haz que la variable Rele_Out_Ant se actualice al valor leido de los PCF y el algoritmo reconectara los reles de uno en uno

  15. #515
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    983

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Cita Iniciado por Mleon Ver mensaje
    Si pero comparar dos cadenas de texto siempre me ha dado menos confianza que comparar numeros, y como me dio algun error con las variables valor_h_on y valor_h_off (por controlar poco python supongo) tire por la opcion de segundos

    Luego es coherente........en este caso haz que la variable Rele_Out_Ant se actualice al valor leido de los PCF y el algoritmo reconectara los reles de uno en uno
    Llevo usanto la variable 'hora' desde hace un mes y un día y ningún problema. Es más, piensa que en la tabla reles_h, las variables valor_h_on y valor_h_off son del tipo TIME (xx:xx:xx)

    Con lo de que 'Rele_Out_Ant se actualice al valor leido de los PCF', ¿a qué te refieres? Vas mil pasos por delante mío. Sorry.
    PvControl+: Control sistema fotovoltaico
    Si te gusta la web, aquí el proyecto. El manual está aquí
    ¿Cómo conectar un Axpert a una Raspberry? Aquí
    ¿Cómo conectar un InfiniSolar a una Raspberry? Aquí

  16. #516
    Avatar de Mleon
    Mleon está desconectado Forero
    Fecha de ingreso
    may 2016
    Ubicación
    MADRID
    Mensajes
    991

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Cita Iniciado por nikitto Ver mensaje
    Llevo usanto la variable 'hora' desde hace un mes y un día y ningún problema. Es más, piensa que en la tabla reles_h, las variables valor_h_on y valor_h_off son del tipo TIME (xx:xx:xx)

    Con lo de que 'Rele_Out_Ant se actualice al valor leido de los PCF', ¿a qué te refieres? Vas mil pasos por delante mío. Sorry.
    Como he comentado tuve algunos problemas con la comparación (supongo que tenia que haber pasado a texto las variables valor_h_on y valor_h_off con la funcion .strftime o algo asi...pero me sentía mas cómodo con números

    Evidentemente si mejoras el código estupendo

    .................

    Lo de 'Rele_Out_Ant se actualice al valor leido de los PCF'.....

    Ahora mismo el valor de Rele_Out_Ant sale del valor de Rele_Out antes de empezar la comparación

    Código PHP:
    Rele_Out_Ant = [i[:] for i in Rele_Out#copio valores Rele_Out en Rele_Out_Ant 
    Dicho valor nos sirve para saber si cada rele una vez hecha la comparación de horario y condiciones FV pasa de encendido a apagado o de apagado a encendido..... y asi por ejm:

    - No encender mas de 1 rele en cada iteracion
    - Solamente mandar información al PCF cuando cambia de estado

    En este sentido si tienes en Rele_Out_Ant un valor de encendido y realmente el PCF esta apagado, el SW no manda la instrucción de encendido i2c_rele dado que no es necesaria en teoría.....y por tanto el rele permanece apagado

    Vamos a hacer que el valor Rele_Out_Ant sea el valor leido del PCF cambiando el código

    Código PHP:
    Rele_Out_Ant = [i[:] for i in Rele_Out#copio valores Rele_Out en Rele_Out_Ant 
    por algo que lea el valor real del PCF y lo guarde en Rele_Out_Ant

    Con esto se debería recuperar ante errores HW salvo que el PCF o la RPi dejen de responder

    No creo que sea muy complicado hacer dicho código....intenta hacerlo, si te atrancas avisa

  17. #517
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    983

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Vale, entiendo, a ver si lo he hecho bien:

    Código PHP:
            #algoritmo condiciones reles
            
    estado=bus.read_byte(32)
            if 
    estado != 255 :
                    
    Rele_Out_Ant = [i[:] for i in Rele_Out]
            else :
                    
    Rele_Out_Ant = [[0] * for i in range(8
    No me he parado a especificar direcciones, he ido directo al grano. Es para probar y si funciona, perfeccionar.
    Es lo mismo que teníamos, lo que primero mira que valor tiene en la dirección 32 (0x20H), si no es = a 255, Rele_Out_Ant=Rele_Out y si es = a 255, pone todos los campos de Rele_Out_Ant a 0
    PvControl+: Control sistema fotovoltaico
    Si te gusta la web, aquí el proyecto. El manual está aquí
    ¿Cómo conectar un Axpert a una Raspberry? Aquí
    ¿Cómo conectar un InfiniSolar a una Raspberry? Aquí

  18. #518
    Avatar de Mleon
    Mleon está desconectado Forero
    Fecha de ingreso
    may 2016
    Ubicación
    MADRID
    Mensajes
    991

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Cita Iniciado por nikitto Ver mensaje
    Vale, entiendo, a ver si lo he hecho bien:

    Código PHP:
            #algoritmo condiciones reles
            
    estado=bus.read_byte(32)
            if 
    estado != 255 :
                    
    Rele_Out_Ant = [i[:] for i in Rele_Out]
            else :
                    
    Rele_Out_Ant = [[0] * for i in range(8
    No me he parado a especificar direcciones, he ido directo al grano. Es para probar y si funciona, perfeccionar.
    Es lo mismo que teníamos, lo que primero mira que valor tiene en la dirección 32 (0x20H), si no es = a 255, Rele_Out_Ant=Rele_Out y si es = a 255, pone todos los campos de Rele_Out_Ant a 0
    Para probar valdria pero como no se quede en 255 sino en otro valor no valdria, ademas como tengas mas de un PCF tambien ira raro

    Me habia puesto a mirarlo y este era el codigo que me salia en primera pensada

    Código PHP:
    for I in range(nreles):
               
    Puerto=(TR[I][0]%10)-1
               GR
    =int((TR[I][0]-Puerto)/10-32)
               
    addr=GR+32

               estado
    =bus.read_byte(addr)  #devuelve el valor en decimal del PCF en direccion addr
               
    estado=bin(estado)
               
    estado=estado[2:10]
               
    Rele_Out_Ant[GR][Puerto]=int(estado[7-Puerto]) 
    Con esto solo leemos y actualizamos los reles dados de alta en la BD

    Al final voy a empezar a conocer algo de Python

  19. #519
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    983

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Vale, dejame que pruebe mañana mi código para confirmar que funciona. Y luego implemento todo lo expuesto hoy.
    Desde esta noche hasta el martes por la mañana tengo invitados en casa. Pero intentaré sacar tiempo para ello.
    Lo único que no me convence es lo de los segundos, por ello implementaré el programa con 'hora'.

    - - - - - - - - - - - - - - - - - - -

    Cita Iniciado por Mleon Ver mensaje

    Al final voy a empezar a conocer algo de Python
    Eso, seguro.
    PvControl+: Control sistema fotovoltaico
    Si te gusta la web, aquí el proyecto. El manual está aquí
    ¿Cómo conectar un Axpert a una Raspberry? Aquí
    ¿Cómo conectar un InfiniSolar a una Raspberry? Aquí

  20. #520
    Avatar de Mleon
    Mleon está desconectado Forero
    Fecha de ingreso
    may 2016
    Ubicación
    MADRID
    Mensajes
    991

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    OK....

    Por cierto viendo la web dos temas:

    - El 13/Ago tuviste un pico negativo de Ibat de -70A......lo bueno es que se ve perfectamente

    - En el grafico de Kwh bateria el valor sera en wh...ya te gustaria tener mil y pico Kwh por dia

  21. #521
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    983

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Cita Iniciado por Mleon Ver mensaje
    OK....

    Por cierto viendo la web dos temas:

    - El 13/Ago tuviste un pico negativo de Ibat de -70A......lo bueno es que se ve perfectamente

    - En el grafico de Kwh bateria el valor sera en wh...ya te gustaria tener mil y pico Kwh por dia
    1. Sí, es de ayer, con tanta prueba con la bomba de la depuradora.

    2. Jajaja...ya te digo. Esta madrugada he pasado los Wh a kWh (/1000) que no lo tenía en el programa. Y luego he modificado la web. Lógicamente toda la info ahora sale como kWh. De todas formas, quizás vuelva a Wh. Iré viendo como va.

    - - - - - - - - - - - - - - - - - - -

    He cambiado también esta parte:

    Código PHP:
            if (ibat>and ibat<and abs(vbat-27.4)<0.2) :
                    
    DS DS + (AH-DS)/50 
    Que se había quedado en 13,7. Estos días por la tarde veía que no llegaba el SOC al 100% y buscando encontré el fallo.
    PvControl+: Control sistema fotovoltaico
    Si te gusta la web, aquí el proyecto. El manual está aquí
    ¿Cómo conectar un Axpert a una Raspberry? Aquí
    ¿Cómo conectar un InfiniSolar a una Raspberry? Aquí

  22. #522
    Avatar de Mleon
    Mleon está desconectado Forero
    Fecha de ingreso
    may 2016
    Ubicación
    MADRID
    Mensajes
    991

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Cita Iniciado por nikitto Ver mensaje
    - - - - - - - - - - - - - - - - - - -

    He cambiado también esta parte:

    Código PHP:
            if (ibat>and ibat<and abs(vbat-27.4)<0.2) :
                    
    DS DS + (AH-DS)/50 
    Que se había quedado en 13,7. Estos días por la tarde veía que no llegaba el SOC al 100% y buscando encontré el fallo.
    Leñe lo habia visto pero se me paso comentartelo....lo logico dado que detectas la V del sistema (12, 24,48..) es que ese valor dependa de dicha variable

  23. #523
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    983

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Código PHP:
    #declaracion variables
    vflotacion 0.0 
    Código PHP:
    ### Calcular voltaje sistema (12,24 o 48)

    valor adc.read_adc(2gain=1)
    voltaje = (valor 0.125) / 1000
    voltaje 
    voltaje RES
    if voltaje 11 and voltaje 15.5 :
            
    vsis 1
            
    print('Voltaje nominal 12V')
            
    vflotacion 13.7
    elif voltaje 
    22 and voltaje 31 :
            
    vsis 2
            
    print('Voltaje nominal 24V')
            
    vflotacion 27.4
    elif voltaje 
    44 and voltaje 62 :
            
    vsis 4
            
    print('Voltaje nominal 48V')
            
    vflotacion 54.8
    else :
            print(
    'Error: Imposible reconocer el voltaje del sistema')
            
    sys.exit()

    ### 

    Código PHP:
    #calculo del SOC
    ...
            if (
    ibat>and ibat<and abs(vbat-vflotacion)<0.2) :
                    
    DS DS + (AH-DS)/50
            
    else :
                    
    DS DS + (Ip Tiempo_horas

    Hecho.
    PvControl+: Control sistema fotovoltaico
    Si te gusta la web, aquí el proyecto. El manual está aquí
    ¿Cómo conectar un Axpert a una Raspberry? Aquí
    ¿Cómo conectar un InfiniSolar a una Raspberry? Aquí

  24. #524
    Avatar de Mleon
    Mleon está desconectado Forero
    Fecha de ingreso
    may 2016
    Ubicación
    MADRID
    Mensajes
    991

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    La ventaja de tener algo que controlas tu ........ y no un sistema cerrado

    No sabes la rabia que tengo de no poder entrarle al FM80 al menos para que me diera sus datos (Vbat, Iplaca,....) y poder variarle los parametros de carga Vflot,Vabs,.... en remoto

  25. #525
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    983

    Predeterminado Re: Control exhaustivo ciclo de carga/SOC/Cargas/etc

    Cita Iniciado por Mleon Ver mensaje
    La ventaja de tener algo que controlas tu ........ y no un sistema cerrado

    No sabes la rabia que tengo de no poder entrarle al FM80 al menos para que me diera sus datos (Vbat, Iplaca,....) y poder variarle los parametros de carga Vflot,Vabs,.... en remoto
    Estoy casi seguro que acabarás haciéndote tu mismo un regulador.
    PvControl+: Control sistema fotovoltaico
    Si te gusta la web, aquí el proyecto. El manual está aquí
    ¿Cómo conectar un Axpert a una Raspberry? Aquí
    ¿Cómo conectar un InfiniSolar a una Raspberry? Aquí

Página 21 de 52 PrimerPrimer ... 1120212231 ... ÚltimoÚltimo



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