La energía solar no es una energía alternativa: es la energía.
Hermann Scheer

Página 5 de 62 PrimerPrimer ... 4561555 ... ÚltimoÚltimo
Resultados 81 al 100 de 1233
  1. #81
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    973

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

    Hice varias pruebas y tal cual lo tengo funciona. A0 -> borne - batería y A1 -> otro extremo

    Sin producción FV (paneles desconectados), tenía una intensidad negativa (sentido inversor) con un consumo aproximado de 50Wh. 40 de los cuales eran una bombilla de filamento y los otros 10 del propio inversor.

    Si conecto los paneles, la intensidad pasa, por lo general (depende del regulador, estado de la batería y consumo), a ser positiva porque se realiza una carga de la batería, aunque este en flotación y otro tanto de la producción FV pasa directamente a consumo, a encender la bombilla.

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

    El esquema que subió Mleon AQUÍ es muy bueno, a mi entender. Porque al tener esos 2 shunts podemos calcular que intensidad entra en baterías y que intensidad va directa a consumo desde la propia producción FV.

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

    No es una de mis mejores fotos, jajaja. Pero puede apreciarse que el cálculo de Vbat es casi,casi exacto a lo que marca el voltímetro:

    Control exhaustivo ciclo de carga/SOC/Cargas/etc-20160614_182823.jpg

    Y si no me fallan las mates: 3,88A x 12,88v = 49,97
    La intensidad de signo negativo porque está descargando de la propia batería
    Última edición por nikitto; 16/06/2016 a las 13:18

  2. #82
    junavar está desconectado Forero
    Fecha de ingreso
    ene 2011
    Ubicación
    madrid
    Mensajes
    393

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

    Cita Iniciado por nikitto Ver mensaje
    Todo esto es lo que tengo hasta ahora. Como dije, seguro se puede mejorar/pulir/rehacer/... cualquier ayuda en programación será bienvenida. Recordar que este trabajo es de un autodidacta; no soy informático, ni mucho menos programador. Pero a estas alturas, ya me gustaría...
    Veo mucho entusiasmo en lo que estás haciendo Nikitto.
    Si me permites una sugerencia, la manera de llevar a cabo proyectos de código cooperativo es emplear un lugar común donde pueda participar más gente y controlar eficazmente su evolución, versionado y derivaciones (forks). GitHub es una herramienta muy adecuada para estos menesteres aunque requiere cierto entrenamiento para su manejo.

    Por otro lado lado, creo que los interfaces de presentación WEB son muy importantes y en este sentido te sugiero que trabajes en HTML5, CSS y Javascript empleando un "framework" llamado "AngularJS". Te recomiendo que intentes que tus programas (servicios) devuelvan mera información en formato JSON, sin info HTML. Emplea AJAX en el código Javascript que se ejecuta el navegador para pedir asíncronamente esta información y formatearla en el terminal mediante paginas web dinámicas.

    Naturalmente es muy conveniente dar prioridad al empleo del móvil inteligente. En las aplicaciones web actuales se emplea un diseño que en la jerga se denomina "responsive" y "mobile first". Para ayudar en esto puedes emplear "Boostrap".

    Por último en javascript existen varias librerías para la representación gráfica muy potentes. Yo he empleado "google graphs" pero las mas reputadas se llaman "D3".

    Por supuesto son meros consejos que a lo mejor pueden ser de utilidad cuando avances un poco más en tu proyecto.
    Ten presente que la "programación" solo es una parte del complejo mundo de las tecnologías de la información.

    Saludos.

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

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

    Algunos aspectos importantes que debemos tener en cuenta para trabajar con bases de datos.
    Lo primero, debe existir el usuario. Entonces vamos a crearlo y a darle permisos:

    nikitto@asako ~ $ sudo mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 113
    Server version: 5.5.46-0+deb7u1 (Debian)

    Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.

    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

    mysql>

    Una vez dentro vamos a crear el usuario:

    mysql>CREATE USER 'fv'@'localhost' IDENTIFIED BY 'fv';

    usuario 'fv' en el mismo sistema y contraseña 'fv'
    y a darle permisos totales para una base de datos en concreto (fv) y las tablas que contenga (*):

    mysql>GRANT ALL ON fv.* TO 'fv'@'localhost';

    mysql>FLUSH PRIVILEGES;
    mysql>quit

    Con esto ya funciona el programa que subí antes.

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

    Gracias junavar

    Tengo para 10 años

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

    Control exhaustivo ciclo de carga/SOC/Cargas/etc-20160616_133424.jpg

    Más cositas van llegando.

  4. #84
    junavar está desconectado Forero
    Fecha de ingreso
    ene 2011
    Ubicación
    madrid
    Mensajes
    393

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

    Cita Iniciado por nikitto Ver mensaje


    Pulsa en la imagen para verla en tamaño completo

Nombre: 20160616_133424.jpg
Visitas: 106
Tamaño: 38,7 KB
ID: 14828

    Más cositas van llegando.
    Supongo que sabes que estos relés van con un optoacoplador que se activa por nivel bajo en la salida del pin GPIO de la RPi.

  5. #85
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    973

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

    Cita Iniciado por junavar Ver mensaje
    Supongo que sabes que estos relés van con un optoacoplador que se activa por nivel bajo en la salida del pin GPIO de la RPi.
    Código PHP:
    import RPi.GPIO as GPIO
    import time

    # Use physical pin numbers
    #GPIO.setmode(GPIO.BOARD)
    # Set up header pin 11 (GPIO17) as an output
    print "Setup Pin 11"
    GPIO.setup(11GPIO.OUT)

    var=
    1
    print "Start loop"
    while var==:
      print 
    "Set Output False"
      
    GPIO.output(11False)
      
    time.sleep(10)
      print 
    "Set Output True"
      
    GPIO.output(11True)
      
    time.sleep(10
    Ya lo he probado, alimentación Vcc a 5 V directo desde PIN2 y PIN 6 (GND). Para conectar/desconectar con PIN11.

    Control exhaustivo ciclo de carga/SOC/Cargas/etc-fn1yekzhn824u1e.jpg

    De todas formas el control de los módulos voy a realizarlo tal cual lo hace Mleon, con el integrado PCF8574P que se conecta también al puerto I2C.

  6. #86
    Avatar de Mleon
    Mleon está desconectado Forero
    Fecha de ingreso
    may 2016
    Ubicación
    MADRID
    Mensajes
    854

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

    Cita Iniciado por el_cobarde Ver mensaje
    - - - - - - - - - - - - - - - - - - -


    Hay que reflexionar un poco sobre el tema de como conectar el shunt.
    En general se dice que "el polo negativo del shunt es el más cercano al borne negativo de la batería". Yo también lo dije así.
    Esto es correcto, cuando la batería alimenta al consumo!
    Pero en FV, es el regulador que carga o "alimenta" a la batería. Entonces, es al revés!
    En FV, entre regulador y batería, lo cierto es que "el polo negativo del shunt es el más cercano al borne negativo del regulador"

    Conceptualmente:

    Un shunt no tiene polaridad dado que es una resistencia
    Como tal, su polo "positivo" o "negativo" dependera del sentido de la I que circule

    Si consideramos como convenio que Intensidad positiva es cuando se carga la batería y el shunt esta conectado en el cable negativo de la batería, en situaciones de carga de batería el positivo estará en el lado de la batería y el negativo en el lado del regulador, al contrario en caso de descarga de batería

    Comoquiera que lo que medimos es Voltaje diferencial entre ambos polos del shunt, (por ejm el A0 a un polo y el A1 al otro) independientemente de como los conecte lo único que hay que cuidar por SW es calcular A0-A1 o A1-A0 para que el signo de la corriente sea congruente con el convenio

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

    Cita Iniciado por junavar Ver mensaje
    Veo mucho entusiasmo en lo que estás haciendo Nikitto.

    ..... forks... GitHub..... HTML5...... CSS ...... Javascript ......"AngularJS"...... JSON, ...HTML....AJAX .....Javascript...........asíncronamente.......... web dinámicas......"responsive" ....."mobile first"....... "Boostrap"...."google graphs"....."D3".
    Leñe junavar no acongojes

    Como persona de cierta edad, cuando me plantee este tema y lo quería en bajo coste y en plazo rápido, me decante por el duinomite porque me hizo gracia volver a la programación de Basic (esa que melancólicamente tenia el ZX-81, spectrum,....)

    Después, para gráficos off-line y base de datos, también por sencillez, opte por Ms-Access que viene con el Office (El excel te da menos funcionalidad y no es capaz de manejar el volumen de registros que se guardan)

    Para acceso remoto simplemente uso Teamviewer como escritorio remoto
    ....

    La idea de Nikitto con la Raspberry me parecio una muy buena alternativa (mas "moderna", potente, web, etc), y estoy contigo en el entusiasmo (y trabajo) con la que lo esta implementando

    Lo perfecto es enemigo de lo bueno, creo que es mas gratificante tener un primer prototipo funcional pronto y después "mejorarlo"

    Como veo que estas versado en estos temas, seria bueno que orientes en las decisiones de diseño que, de no tomarlas ahora, complica su introducción mas tarde

    En este sentido, Nikitto ha optado por una arquitectura (Base de datos: Mysql, ....), si ves que hay algo que no complica en exceso y da mas potencialidad ahora es el momento

    Si te animas, incluso te puedes meter en el lio y coger una parte (interfaz web, gráficos avanzados, etc)

    El concepto para el mundo FV es simple:

    Tengo los datos de Vbateria, Ibateria, Iplacas, SOC%,Temperatura..... de mi instalación cada 1,5 sg por ejm y quiero con esos datos:

    En tiempo real:
    Controlar "N" Reles (Luces, termo, Placas, Bateria Auxiliar, etc)
    Ver el grafico: IBat, Iplacas, Vbat de los ultimos 5 minutos por ejm
    ....

    En tiempo no real:

    Multiples graficos: por hora, dia, semana....

    Tablas Estadisticas: Maximo/minimo/Medio valor SOC, Vbat,Iplacas por hora/dia...

    ....


    Como esto acabe con una "web dinamica" dando prioridad al "movil inteligente" va a ser curioso dado que empezó con el modesto basic junto con un teclado y una pantalla vga

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


    En mi programa en basic como es "lineal" el bucle esta en un menu que permite elegir varias opciones (programar los reles, ver resumen diario, etc)

    Utilizo una interrupcion SW cada 1,5sg para leer los valores de la instalación FV , "pintarlos", guardarlos en la SD y actuar en consecuencia con los reles activandolos o desactivandolos

    Con la Rpi entiendo que ya no tiene sentido una programacion lineal con interrupciones sino que se tendran activos varios procesos concurrentes:

    - Lectura de valores
    - Gráfico en tiempo real
    - Control Reles
    - .....

    Adicionalmente procesos de guardado de valores, servidor web, etc

    Entiendo que lo estas planteando así ¿no?


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


    El usar el PCF8574P , fue por dos motivos:

    - Hay posibilidad de ampliar hasta 8 integrados de 8 puertos GPIO luego 64 puertos con solo usar 2 cables del puerto I2C

    - Siempre es bueno (fallo en el cableado etc) que si me equivoco se queme un integrado de menos de 1€ que el micro
    Última edición por Mleon; 17/06/2016 a las 00:35

  7. #87
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    973

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

    Manuel, dale un vistazo al programa, está en la página anterior (8) http://www.solarweb.net/forosolar/fo...tml#post314389

    Gráficas por ahora no hace, ya que serán accesibles desde la web. Generación inmediata, leyendo los datos desde la BD.
    De momento el programa es pequeño, está en un mismo bucle que se repite cada 1,5 seg. al tiempo que se guardan los datos generados en la base de datos.

    Sobre lo de usar el integrado PCF8574P, estoy de acuerdo contigo (tengo pedidos 5 - a ver si llegan-). Prefiero que se queme uno, a que se queme la raspberry.

    Me haría falta saber con que condiciones, activar/desactivar relés. Ya sabes que mi instalación FV es de juguete por ahora. Y excedentes me sobran casi todos. Pero puedo dejar programada la activación de X relés según las condiciones del sistema: Vbat, Ibat, SOC, ... Con esto todavía no he jugado, y tengo ganas de meterle mano.

    Te he mandado un un vídeo por lo del PWM. Parece interesante, fácil y se podría implementar.

  8. #88
    Avatar de Mleon
    Mleon está desconectado Forero
    Fecha de ingreso
    may 2016
    Ubicación
    MADRID
    Mensajes
    854

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

    Cita Iniciado por nikitto Ver mensaje
    Manuel, dale un vistazo al programa, está en la página anterior (8) http://www.solarweb.net/forosolar/fo...tml#post314389

    Gráficas por ahora no hace, ya que serán accesibles desde la web. Generación inmediata, leyendo los datos desde la BD.
    De momento el programa es pequeño, está en un mismo bucle que se repite cada 1,5 seg. al tiempo que se guardan los datos generados en la base de datos.

    Sobre lo de usar el integrado PCF8574P, estoy de acuerdo contigo (tengo pedidos 5 - a ver si llegan-). Prefiero que se queme uno, a que se queme la raspberry.

    Me haría falta saber con que condiciones, activar/desactivar relés. Ya sabes que mi instalación FV es de juguete por ahora. Y excedentes me sobran casi todos. Pero puedo dejar programada la activación de X relés según las condiciones del sistema: Vbat, Ibat, SOC, ... Con esto todavía no he jugado, y tengo ganas de meterle mano.

    Te he mandado un un vídeo por lo del PWM. Parece interesante, fácil y se podría implementar.


    No se PHP, pero interpretando la logica (y sin meterme detalladamente) parece correcto y mucho mejor documentado (comentarios etc) que el mio

    Algunos consejos:

    Valores propios de cada instalacion (Shunt 200/75mV, divisor tension,... ) yo los tendria como variables al principio del programa y no dentro del codigo, asi el mas facil personalizarlo/cambiarlo

    Hay algunos "elementos de control" que habra que pulir por SW

    - Por ejm yo si durante la noche no tengo un valor de Iplaca >x considero I=0
    - Yo saco de la salida auxiliar del FM80 la situacion de Flotacion de las baterias y la leo/guardo (es verdad que si no se dispone de esa señal se puede calcular por ejm en base a que la bateria mantiene la Vflot durante X sg con una Ibat< Zamperios) y en ese caso decidir si corrijo o no el valor SOC que me esta dando el SW
    - ....

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

    Con respecto a las condiciones para activar/desactivar reles

    Creo que ya he comentado como lo tengo programado:

    - Basicamente tengo 32 salidas (4ud PCF8734P)
    - Cada rele se activa cuando se cumplen todas la condiciones y se desactiva cuando se cumple al menos una condicion
    - Como condicion tengo un conjunto de parametros:

    Flot: Si esta en flotación el sistema
    Vbat: que puedo elegir si es > o < y un valor (por ejm >24,7 o <29,0)
    IBat: idem
    Soc: Idem
    Programacion horaria: a intervalos de 30'

    Por tanto yo defino en una tabla de 32 registros (1 por cada rele) la condiciones de On y de OFF por cada uno de esos parametros

    Si un parámetro no es relevante para un rele simplemente pongo una condición que siempre se cumpla (por ejm Vbat_ON>0)

    Como la "programacion de reles" esta guardada en la SD y la leo al principio del programa pasandola a una matriz, simplemente con los datos (Vbat, Ibat, SOC,hora,..) que leo de la instalacion activo o desactivo reles cada 1,5sg

    Un matiz....por eso de minimizar picos hago que solo se pueda encender 1 rele cada 1,5 sg, es decir que si por las condiciones que se dan deberian pasar de OFF a ON varios reles a la vez solo enciendo el primero y espero al siguiente 1,5 sg para encender el 2º y asi sucesivamente........para apagar si lo hago todos a la vez

    Como ejemplo.....

    ON: yo tengo puesto el Termo electrico que se encienda solo si
    - El sistema esta en flotacion
    - Vbat>25,0 (el valor dependera de los w que consuma el termo y de la bateria que se tenga)
    - Ibat>30 (el valor tambien dependera de la instalacionpero solo enciendo si esta cargando la bateria por encima de un valor de I)
    - SOC>95% (valor a criterio de instalacion/usuario)
    - En la programacion horaria tengo puesto varios intervalos para que no coincida con otras cargas (depuradora, etc)


    OFF: El termo se apagara si se cumple cualquiera de estas condiciones

    - Vbat<24,0 (el valor dependera de los w que consuma el termo y de la bateria que se tenga)
    - Ibat<-30 (el valor tambien dependera de la instalacion pero una valor que no haga sufrir mucho a la bateria)
    - SOC<90% (valor a criterio de instalacion/usuario)
    - Programacion horaria: los intervalos que no quiero que este encendida


    En las cargas que se prevea que va a existir mucho ON-OFF es mejor poner un rele SSR o ampliar los margenes de ON-OFF para que el rele no se estropee rapido



    Otro Ejemplo: Conectar Placas

    En este caso por ejm ON seria si Vbat<24.8 y OFF si Vbat>27.3......(¿ves la necesidad de > o < dependiendo de lo que se quiera controlar?)

    Otros Ejm:
    - Conectar Bateria Auxiliar
    - Activar Rele alto voltaje o bajo voltaje
    - Activar Rele bajo SOC,
    - .....


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


    No se si lo he comentado antes, pero, siguiendo con mi "criterio de diseño" si al final se ve la necesidad de tener control de PWM, quizas lo logico es usar un integrado a través de I2C

    Por ejm por unos 2€ tenemos el PCA9685 con 16 canales de 12 bits de resolución (mas que suficiente para las necesidades medias de una instalacion FV)

    De todas formas hay que tener en cuenta que PWM si se quiere usar para AC hay que utilizar un circuito de paso por 0 para implementar control de potencia por disparo de angulo de fase (o utilizar el "dispositivo" del Carlotron)

  9. #89
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    973

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

    Buena información. Sí señor.

    A ver, un par de cosas, la programación web está realizada en PHP, aunque está todavía muy verde.
    La programación del controlador está realizada en Python.

    Los valores tienes razón, mejor definirlos al principio del programa. Había pensado que se pueden solicitar al iniciar el programa y guardarlos en la base de datos. Si por algún problema se reinicia el programa/raspberry, recuperar los datos de la BD en caso de existir.
    También solicitar el voltaje del sistema:

    Introduce voltaje batería sistema:
    1- Batería 12V
    2- Batería 24V
    4- Batería 48


    Y construir toda la programacion en base a x1 (12), x2 (24) o x4 (48). Esto he de mirármelo bien.

    El Midnite Kid también puede facilitarme la señal (FLOAT ON) a través de la salida LOAD. Claro, para que sea libre de potencial debería poner algún tipo de relé. Pero casi prefiero que sea el mismo programa el que me diga esa situación. Repasaré la info que has aportado al respecto.

    ¿ Las placas también las controlas con uno/s de los relés del móludo de relés? He visto que pone máximo 10A.

  10. #90
    Avatar de Mleon
    Mleon está desconectado Forero
    Fecha de ingreso
    may 2016
    Ubicación
    MADRID
    Mensajes
    854

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

    Cita Iniciado por nikitto Ver mensaje
    ¿ Las placas también las controlas con uno/s de los relés del móludo de relés? He visto que pone máximo 10A.
    Las placas si tienes I>6-8A yo lo haria con SSR, en mi caso para conectar 2 conjuntos de placas tengo 2 SSR DC de 80A (con disipador y no mas de 40A de pico previsto)

    Pero si quieres controlar placas de una en una (cada 1 o 2 o 3... si están en serie) para conectarlas a un regulador (el principal) o a otro regulador (bat auxiliar)....como el rele es conmutador (1 entrada que conmuta entre 2 salidas) es especialmente fácil hacerlo, ¿no te parece?

    Esto lo tengo pensado implementar yo para al principio y final del dia (o en dias nublados) conectar mas placas al FM80 y en las horas centrales poner las placas a otro regulador que alimenta otro banco de baterias auxiliar que tengo de back-up

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

    Con respecto al inicio del programa, dado que en mi caso esta "desantendido", si se reinicia (tengo un watchdog activado por si se cuelga), el sistema arranca solo, carga los parámetros de la SD y ........ sigue con el control/datalogging

    Por ese motivo intenta "minimizar" la intervencion del usuario "obligatoria"......por ejm si quieres hacer un sistema valido para sistemas 12V-24V-.... lee el valor de Vbat al arrancar y ya esta

    Pongo el codigo de control de los 32 reles por si ayuda con los algoritmos (no esta optimizado, lo hice rapido pero.... funciona,....)

    Algunas aclaraciones
    En la matriz RELEOUT$() tengo 32 registros de texto con la programacion por cada rele...un ejm

    P,BAT_BAJA ,N,N,<230,>240,>-200,<-200,<99,>99,11111111111111111111111111111111111111 1111111111
    P,BAT_ALTA ,N,N,>302,<275,>-200,<-200,>50,<50,11111111111111111111111111111111111111 1111111111
    .....

    Tengo definida una subrutina para controlar cada GPIO de los integrados PCF8574P denominada I2C_RELE() ....intenta entenderla es un poco curiosa como esta hecha

    Por ejm I2C_RELE(&H21,5,1) significa que enciendo el puerto numero 5 en el PCF8574P que esta en la direccion &H21 del bus I2C

    En el programa uso logica positiva (1=ON, 0=OFF) solo en I2C-RELE() convierto la logica positiva a lo que necesita el PCF8574P para conectar el rele (0 en el puerto )

    Hay algunas instrucciones que solo tienen sentido en duinomite (pintar en pantalla, etc)

    Código PHP:
    '------------ SUB RELES SALIDA ----------
    RELES_SALIDA:
     FLAG_RELE=0
     If Val(Mid$(Time$,4,2))>29 Then MH=1 Else MH=0 ' 
    media hora

     
    If T1=9 Then ' en T1 tengo la tecla pulsada, si pulso 9 cambio de grupo de 8 reles a presentar en pantalla
       GR=GR+1:If GR=4 Then GR=0
     EndIf

     If T1>=1 And T1<=8 Then
       If Mid$(RELEOUT$(GR*8+T1),1,1)="E" Then a$="A" ' 
    Apagado
       
    If Mid$(RELEOUT$(GR*8+T1),1,1)="A" Then a$="P" ' Programacion
       If Mid$(RELEOUT$(GR*8+T1),1,1)="P" Then a$="E" ' 
    Encendido
       RELEOUT
    $(GR*8+T1)=a$+Mid$(RELEOUT$(GR*8+T1),2)
     EndIf

     
    '------------- FOR para CONDICIONES ON-OFF -----------
     For j1=1 To 32
     ' 
    control Horario  
       
    If FLAG_RELE=0 Then 'para encender solo uno cada vez
         RELESAL(j1)=Val(Mid$(RELEOUT$(j1),48+2*Hora+MH,1))
       Else
         RELESAL(j1)=RELESAL_ANT(j1)
       EndIf


     '
    Control Flotacion
       
    If Flot=And Mid$(RELEOUT$(j1),14,1)="S" Then RELESAL(j1)=0

       
    'Von
       If Mid$(RELEOUT$(j1),18,1)="<" Then
         If Volt>Val(Mid$(RELEOUT$(j1),19,3))/10 And RELESAL_ANT(j1)=0 Then
           RELESAL(j1)=0
         EndIf
       EndIf
       If Mid$(RELEOUT$(j1),18,1)=">" Then
         If Volt<Val(Mid$(RELEOUT$(j1),19,3))/10 And RELESAL_ANT(j1)=0 Then
           RELESAL(j1)=0
         EndIf
       EndIf

       '
    Voff
       
    If Mid$(RELEOUT$(j1),23,1)=">" Then
         
    If Volt>Val(Mid$(RELEOUT$(j1),24,3))/10 Then RELESAL(j1)=0
       
    EndIf
       If 
    Mid$(RELEOUT$(j1),23,1)="<" Then
         
    If Volt<Val(Mid$(RELEOUT$(j1),24,3))/10 Then RELESAL(j1)=0
       
    EndIf

       
    'Ion
       If Mid$(RELEOUT$(j1),28,1)="<" Then
         If Amp>Val(Mid$(RELEOUT$(j1),29,4)) And RELESAL_ANT(j1)=0 Then
           RELESAL(j1)=0
         EndIf
       EndIf
       If Mid$(RELEOUT$(j1),28,1)=">" Then
         If Amp<Val(Mid$(RELEOUT$(j1),29,4)) And RELESAL_ANT(j1)=0 Then
           RELESAL(j1)=0
         EndIf
       EndIf

       '
    Ioff
       
    If Mid$(RELEOUT$(j1),34,1)=">" Then
         
    If Amp>Val(Mid$(RELEOUT$(j1),35,4)) Then RELESAL(j1)=0
       
    EndIf
       If 
    Mid$(RELEOUT$(j1),34,1)="<" Then
         
    If Amp<Val(Mid$(RELEOUT$(j1),35,4)) Then RELESAL(j1)=0
       
    EndIf


     
    'SOC on
       If Mid$(RELEOUT$(j1),40,1)="<" Then
         If DS(0)/AH*100>Val(Mid$(RELEOUT$(j1),41,2)) And RELESAL_ANT(j1)=0 Then
           RELESAL(j1)=0
         EndIf
       EndIf
       If Mid$(RELEOUT$(j1),40,1)=">" Then
         If DS(0)/AH*100<Val(Mid$(RELEOUT$(j1),41,2)) And RELESAL_ANT(j1)=0 Then
           RELESAL(j1)=0
         EndIf
       EndIf


     '
    SOC off
       
    If Mid$(RELEOUT$(j1),44,1)=">" Then
         
    If DS(0)/AH*100>Val(Mid$(RELEOUT$(j1),45,2)) Then RELESAL(j1)=0
       
    EndIf
       If 
    Mid$(RELEOUT$(j1),44,1)="<" Then
         
    If DS(0)/AH*100<Val(Mid$(RELEOUT$(j1),45,2)) Then RELESAL(j1)=0
       
    EndIf

     
    'FORZADO
       If Mid$(RELEOUT$(j1),1,1)="E" Then RELESAL(j1)=1
       If Mid$(RELEOUT$(j1),1,1)="A" Then RELESAL(j1)=0

       '
    ---- ENCENDIDO RELE Volt>V_alarma SI Activa DERIVACION
       
    If Volt>V_alarma And Mid$(RELEOUT$(j1),16,1)="S" And FLAG_RELE=0 Then
         RELESAL
    (J1)=1
       
    EndIf
       If 
    Volt>V_alarma-And Mid$(RELEOUT$(j1),16,1)="S" And RELESAL_ANT(j1)=1 Then
         RELESAL
    (J1)=1   ' Dejo 1 Voltio de Histeresis para apagar
       EndIf
       '
    ------------

       If 
    RELESAL_ANT(j1)=And RELESAL(j1)=1 Then FLAG_RELE=1

     Next j1

    ' --------------------------------

      FM$(BB)=""
      For j1=1 To 32
        If RELESAL(j1)<>RELESAL_ANT(J1) Then
          RELESAL_ANT(J1)=RELESAL(J1)
          J2=(j1-1) Mod 8 +1
          If j1<=8 Then I2C_RELE(&H20,J2,RELESAL(j1))
          If j1>8 And j1<=16 Then I2C_RELE(&H21,J2,RELESAL(j1))
          If j1>16 And j1<=24 Then I2C_RELE(&H22,J2,RELESAL(j1))
          If j1>24 And j1<=32 Then I2C_RELE(&H23,J2,RELESAL(j1))
        EndIf
        I=(j1-1) Mod 8: J=(j1-1)\8 '
    para presentar situacion reles en pantalla
        
    Print @(I*6+62*6,J*12+24Format$(RELESAL(j1),"%1.0f");
        
    FM$(BB)=FM$(BB)+Str$(RELESAL(j1))
     
    Next j1

     
     T1
    =0

    Return

    '-------------------------Control RELES por I2C----------

    Sub I2C_RELE(DIREC,PORT,OUT) '
    Out=1 enc.puerto PORT en direccion DIREC
     I2C OPEN 100
    1000
     I2C READ DIREC
    ,0,1,Status_I2C  ' Leer el status actual de los 8 puertos
     If OUT=1 Then
       I2C_OUT=Status_I2C And (2^(PORT-1) Xor &HFF)
     Else
       I2C_OUT=Status_I2C Or 2^(PORT-1)
     EndIf
     I2C WRITE DIREC,0,1,I2C_OUT
     I2C CLOSE
    End Sub 


    ------------------------------------------------------ FIN

    Tengo algunos problemas con los tabuladores al copiar/pegar......se lee peor pero espero sea suficientemente claro......

    Actualizado gracias a consejo de Nikitto
    Última edición por Mleon; 16/06/2016 a las 23:51

  11. #91
    junavar está desconectado Forero
    Fecha de ingreso
    ene 2011
    Ubicación
    madrid
    Mensajes
    393

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

    Cita Iniciado por Mleon Ver mensaje
    Leñe junavar no acongojes...
    ¡Vaya!. Ya veo que he errado "el tiro".
    Cita Iniciado por Mleon Ver mensaje
    ... seria bueno que orientes en las decisiones de diseño que, de no tomarlas ahora, complica su introducción mas tarde
    Pues esa era la intención. Yo he aprendido lo poco que sé poniendo a punto el sistema de limitación de potencia de mi inversor Fronius. Por eso me he permitido hacer los comentarios sobre las tecnologías de interfaz de usuario a emplear. A la larga ahorran tiempo, dan mayor robustez al código y permiten su comoda visualización en los, ahora ubicuos, teléfonos inteligentes
    Cita Iniciado por Mleon Ver mensaje
    ... te puedes meter en el lio y coger una parte (interfaz web, gráficos avanzados, etc)
    Lo siento pero mi interés, al menos de momento, no pasa por emplear baterías sino por optimizar la conexión a red. Con la RPi lo que pretendo es el control de la potencia generada, la gestión de cargas no prioritarias y la monitorización y registro de los parámetros eléctricos para un mejor aprovechamiento y ahorro.
    Cita Iniciado por Mleon Ver mensaje
    Con la Rpi entiendo que ya no tiene sentido una programacion lineal con interrupciones sino que se tendrán activos varios procesos concurrentes.
    Sí. En mi opinión este es el mejor modelo. Pero para sacarle partido hay que tener un buen conocimiento de Linux y de su interfaz de programación lo que implica programar en C/C++.

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

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

    Cita Iniciado por junavar Ver mensaje
    ¡Vaya!. Ya veo que he errado "el tiro".

    .
    No hombre es que, como yo empece a programar con tarjetas perforadas.....y casi me quede en ese nivel..... al leerlo me quede un poco apabullado por las nuevas tecnologías

    En cualquier caso gracias por las sugerencias

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

    Cita Iniciado por junavar Ver mensaje
    Lo siento pero mi interés, al menos de momento, no pasa por emplear baterías sino por optimizar la conexión a red. Con la RPi lo que pretendo es el control de la potencia generada, la gestión de cargas no prioritarias y la monitorización y registro de los parámetros eléctricos para un mejor aprovechamiento y ahorro.
    Por favor, ¿puedes explicar con mas detalle lo que tienes hecho y su objetivo?

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

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

    Cita Iniciado por Mleon Ver mensaje
    Tengo algunos problemas con los tabuladores al copiar/pegar......se lee peor pero espero sea suficientemente claro
    Entra en modo avanzado de escritura, botón 'Ir a avanzado' y utiliza el icono PHP: Envolver con la etiqueta [PHP]...

    Código PHP:
    ejemplo
             ejemplo
                       ejemplo 
    -----
    Como ves hay mil formas de hacer lo mismo o parecido, tú usas Basic, yo Python y junavar C/C++. Seguro que sale otro que usa un lenguaje de programación diferente. Estuve tentado en hacerlo en C, pero Python me parece un muy buen lenguaje y con gran cantidad de librerías para hacerte la vida más cómoda.

    Las tarjetas programables las llegué a ver cuando estudiaba, pero nunca las usé. Allá por el año 85 (creo).

    Con todo lo que me has dado ya tengo curro. Ahora voy a centrarme en lo que me has dicho, para la autoconfiguración del voltaje del sistema (12,24 o 48) y Vflot.

  14. #94
    el_cobarde Invitado

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

    Cita Iniciado por Mleon Ver mensaje
    Un shunt no tiene polaridad dado que es una resistencia. Como tal, su polo "positivo" o "negativo" dependera del sentido de la I que circule.
    Exactamente! Es que nunca hay polo "positivo" o "negativo" absoluto, siempre es en comparación con un punto que esté a otro potencial. Esto es cierto hasta en una batería: En dos baterías conectadas en serie, el polo de en medio (donde están conectadas las baterías), es el positivo para una de las baterías y el negativo para la otra.
    Cuando por una resistencia circula corriente, habrá una caída de tensión en la resistencia. Entonces sí que un extremo de la resistencia será positivo respecto al otro (en el caso de CC). Pero claro, dependerá del sentido de la corriente que circula.
    Si lo prefieres, podemos llamar a los dos polos "el del cable rojo" y "el del cable negro".


    Cita Iniciado por Mleon Ver mensaje
    Si consideramos como convenio que Intensidad positiva es cuando se carga la batería y el shunt esta conectado en el cable negativo de la batería, en situaciones de carga de batería el positivo estará en el lado de la batería y el negativo en el lado del regulador, al contrario en caso de descarga de batería
    Justo esto es lo que quería decir. Parece que dicho con tus palabras se entiende mejor ...

  15. #95
    junavar está desconectado Forero
    Fecha de ingreso
    ene 2011
    Ubicación
    madrid
    Mensajes
    393

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

    Cita Iniciado por Mleon Ver mensaje
    ¿puedes explicar con mas detalle lo que tienes hecho y su objetivo?
    Puedes consultar el siguiente hilo.
    http://www.solarweb.net/forosolar/fo...berryp-pi.html

    Al final hay una referencia a un documento que explica el proyecto.
    Saludos.

  16. #96
    Gabriel 2015 Invitado

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

    Cita Iniciado por junavar Ver mensaje
    Puedes consultar el siguiente hilo.
    http://www.solarweb.net/forosolar/fo...berryp-pi.html

    Al final hay una referencia a un documento que explica el proyecto.
    Saludos.
    Excelente hilo; no lo había visto porque es antiguo.

  17. #97
    Avatar de Mleon
    Mleon está desconectado Forero
    Fecha de ingreso
    may 2016
    Ubicación
    MADRID
    Mensajes
    854

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

    Cita Iniciado por Gabriel 2015 Ver mensaje
    Excelente hilo; no lo había visto porque es antiguo.
    Estoy con Gabriel 2015 en cuanto a lo interesante del hilo de junavar

    Me ha hecho especial gracia, que cuando estaba leyendo los problemas que se derivan de la cuanto menos curiosa legislacion.......veo que en un grafico de la pag 2 aparece el subconsciente de junavar y escribe ......lavapleitos......en lugar de lavaplatos

  18. #98
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    973

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

    Una pequeña actualización del software:

    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')
    elif voltaje 22 and voltaje 31 :
            
    vsis 2
            
    print('Voltaje nominal 24V')
    elif voltaje 44 and voltaje 62 :
            
    vsis 4
            
    print('Voltaje nominal 48V')
    else :
            print(
    'Error: Imposible reconocer el voltaje del sistema')
            
    sys.exit()

    ### 
    ¿Cómo veis los voltajes?

    Otra parte en la que estoy trabajando:

    Código PHP:
            ### CALCULO FLOTACION

            
    if vbat >= (14.4 vsis) or soc >= 99 :
                    
    vabs 1

                    
    print('vbat '),vbat
                    
    print('amps '),amps
                    
    print('vabs '),vabs
                    
    if vbat >= (13.4 vsis) and vbat <= (13.85 vsis) and amps and vabs == 1  :
                            
    ## 20 x 1,5 = 30 segundos
                            
    contador contador 1
                            
    print('contador ='),contador
                            
    if contador == 20 :
                                    
    #print('Bateria en flotacion')
                                    # 1 = bateria en flotacion
                                    
    vflot 1
                                    contador 
    0
                                    vabs 
    0

                                    
    if soc >= 99 :
                                            print(
    'SOC correcto: 100%')

                                    else:
                                            print(
    'SOC no correcto. Autoreparar')
                                            
    DS[0] = AH

                    
    else :
                            
    contador 0
                            vflot 
    0
            
    else :
                    
    vabs 0

            
    ####

            
    if vflot == :
                    print(
    'Bateria en flotacion')

            
    #### PERMISO PARA ACTIVAR


                    ### ACTIVAR X

                    ### DESACTIVAR X

            #### 
    ¿ Ideas ? ¿ Mejoras ?

  19. #99
    Avatar de Mleon
    Mleon está desconectado Forero
    Fecha de ingreso
    may 2016
    Ubicación
    MADRID
    Mensajes
    854

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

    Cita Iniciado por nikitto Ver mensaje
    Una pequeña actualización del software:

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


    ¿Cómo veis los voltajes?
    Por mi parte es suficiente para detectar el voltaje del sistema

    Cita Iniciado por nikitto Ver mensaje
    Otra parte en la que estoy trabajando:

    Código PHP:
            ### CALCULO FLOTACION 
    ¿ Ideas ? ¿ Mejoras ?
    Algun comentario

    Demasiado poco restrictivo que se cumpla en una sola muestra la condicion de V>14,4 (Absorcion)

    Es verdad que la condicion de Vbat>13,4 con amp<1 es bastante restrictiva y, a bote pronto, no veo casuistica que diera error (nubes, etc)

    Eso si, el no activar hasta que amps<1 asegurara la carga del sistema pero seguro pierdes algunos posibles excedentes que podrias utilizar

    No obstante el tema de entrar en flotacion, una vez que se "activa" no se deberia desactivar hasta otro tipo de condiciones, y por tanto el "else" con Vflot=0 no lo veo claro

  20. #100
    Avatar de nikitto
    nikitto está desconectado Forero
    Fecha de ingreso
    ago 2015
    Ubicación
    Cambrils
    Mensajes
    973

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

    Siguiendo con la idea de Mleon de coger el estado de las baterías del propio regulador (FLOAT) y mientras no me llegan los integrados PCF8574P, he decidido usar uno de los puertos GPIO de la Raspberry. Este es el esquema eléctrico:

    Nombre:  pulsador.png
Visitas: 69
Tamaño: 8,0 KB

    Y este el programa:

    Código PHP:
    import RPi.GPIO as GPIO

    GPIO
    .setup(7GPIO.IN)

    if (
    not GPIO.input(7)) :
        print (
    " Regulador: FLOAT"
    El Midnite KID no tiene una salida dedicada para este menester, pero si puedes usar la salida LOAD. Que puede activarse/desactivarse con diferentes configuraciones. Algunas tan interesantes como FLOAT ON o PWM Divert. Se coloca un relé y ya tenemos interruptor libre de carga.

Página 5 de 62 PrimerPrimer ... 4561555 ... ÚltimoÚltimo

Temas similares

  1. Consulta sobre nivel de carga de baterías y su ciclo de descarga.
    Por Dredon en el foro Fotovoltaica. Sistemas aislados de la red
    Respuestas: 56
    Último mensaje: 18/01/2018, 12:31
  2. Control en la carga de baterías
    Por eseperao en el foro Fotovoltaica. Sistemas aislados de la red
    Respuestas: 2
    Último mensaje: 28/04/2016, 10:53
  3. Control de carga mppt
    Por ramon celaya en el foro Fotovoltaica. Sistemas aislados de la red
    Respuestas: 19
    Último mensaje: 26/07/2010, 21:40
  4. Reguladores de carga Acido/plomo Vs Ciclo/profundo
    Por arthus16 en el foro Fotovoltaica. Sistemas aislados de la red
    Respuestas: 8
    Último mensaje: 23/03/2010, 03:03
  5. Carga de baterias de ciclo profundo
    Por arthus16 en el foro Fotovoltaica. Sistemas aislados de la red
    Respuestas: 1
    Último mensaje: 19/03/2010, 15:30

Copyright, 2002-2017 Solarweb.net



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