Autor Tema: arranque suave con 12f675  (Leído 16941 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: arranque suave con 12f675
« Respuesta #15 en: 18 de Abril de 2011, 16:03:28 »
Mañana a ver si pongo un programa con unas modificaciones que le estoy haciendo, me costo hacer cuadrar los tiempos creo que estoy en el buen camino. Me engañaste con la demora de 3MS era de 3.7ms mañana te comento.

Desconectado rghugo

  • PIC10
  • *
  • Mensajes: 48
Re: arranque suave con 12f675
« Respuesta #16 en: 18 de Abril de 2011, 16:11:07 »
AMIGO☺... NO PUDE PROBAR SE ME HIZO HILACHA EL PIC DE TANTO QUEMARLO..

mañana seguro lo prueba.. me decis que lleve el tiepo de disparo entre fases a 3.7ms. el tiepo que genero el prog. esta bien?

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: arranque suave con 12f675
« Respuesta #17 en: 19 de Abril de 2011, 06:50:07 »
Al final con este codigo parece que va bien, deberia arrancar sin problemas, si la corriente de la linea no nos falla mucho, recemos para que los ingenieros y tecnicos de la compañia electrica no se hayan ido ayer de copas.  :lol:
Este tampoco es el definitivo, se puede hacer mejor, digo mas lo haremos mejor, o al menos lo intentaremos.

Código: [Seleccionar]
LIST P = 12f675
        INCLUDE "P12f675.INC"   
     
         __CONFIG   _CPD_OFF & _CP_OFF & _BODEN_OFF  & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT



;**CONSTANTES**
VALOR1      EQU   .164   ;VALORES PARA EL RETARDO
VALOR2      EQU   .1

;**VARIABLES**
REG1      EQU   H'20'   ;VARIABLES LOCALES DE LA SUBRUTINA DE RETARDO
REG2      EQU   H'21'
REG3 EQU H'27'
REG4 EQU H'28'
AUX         EQU H'22'
SEMI_PERIODOS   EQU H'23'
PASOACTUAL      EQU H'24'
CONTADOR      EQU H'25'
COPIA_CONTADOR      EQU H'26'
#DEFINE BANCO0   BCF   STATUS,RP0
#DEFINE BANCO1   BSF   STATUS,RP0
#DEFINE CRUCE   GPIO,2
#DEFINE TRIACR   GPIO,1
#DEFINE TRIACS  GPIO,0
#DEFINE TRIACT  GPIO,4
;**********************************VECTOR RESET*************************************
     
      ORG     0x00
     
        goto    INIC

  INIC   BANCO1         
       MOVLW   B'00000100'
      MOVWF   TRISIO     
      CLRF   ANSEL
   
      call 3FFh ;Get the cal value
      movwf OSCCAL ;Calibrate


      BANCO0   
      MOVLW   B'00000111'
      MOVWF   CMCON     
      CLRF   GPIO         

INICIO   
                MOVLW .100
                MOVWF SEMI_PERIODOS
   
LEER_CRUCE1     BCF TRIACR   
                BCF TRIACS
                BCF TRIACT   
            BTFSC CRUCE            ;DETECTA FLANCO POSITIVO
            GOTO LEER_CRUCE1
           
ESCERO         BTFSS CRUCE
            GOTO ESCERO

             CALL DEMORA_2MS
                CALL DEMORA_2MS
                CALL DEMORA_2MS
                CALL DEMORA_2MS
CICLO_1 ;para que venga aqui y lo repita 1seg
                BSF TRIACR
                CALL DEMORA.33
                BCF TRIACR
                CALL DEMORA_3MS
                BSF TRIACT
                CALL DEMORA.33
                BCF TRIACT
                CALL DEMORA_3MS
                BSF TRIACS
                CALL DEMORA.33
                BCF TRIACS
CALL DEMORA_3MS
                DECFSZ SEMI_PERIODOS
                GOTO CICLO_1

                MOVLW .100
                MOVWF SEMI_PERIODOS

LEER_CRUCE2     BCF TRIACR   
                BCF TRIACS
                BCF TRIACT   
            BTFSC CRUCE            ;DETECTA FLANCO POSITIVO
            GOTO LEER_CRUCE2
           
ESCERO2         BTFSS CRUCE
            GOTO ESCERO2

             CALL DEMORA_2MS
                CALL DEMORA_2MS
                CALL DEMORA_2MS
CICLO_2
                BSF TRIACR
                CALL DEMORA.33
                BCF TRIACR
                CALL DEMORA_3MS
                BSF TRIACT
                CALL DEMORA.33
                BCF TRIACT
                CALL DEMORA_3MS
                BSF TRIACS
                CALL DEMORA.33
                BCF TRIACS
CALL DEMORA_3MS
DECFSZ SEMI_PERIODOS
                GOTO CICLO_2

                MOVLW .100
                MOVWF SEMI_PERIODOS

LEER_CRUCE3     BCF TRIACR   
                BCF TRIACS
                BCF TRIACT   
            BTFSC CRUCE            ;DETECTA FLANCO POSITIVO
            GOTO LEER_CRUCE3
           
ESCERO3         BTFSS CRUCE
            GOTO ESCERO3

             CALL DEMORA_2MS
                CALL DEMORA_2MS
 CICLO_3         
                BSF TRIACR
                CALL DEMORA.33
                BCF TRIACR
                CALL DEMORA_3MS
                BSF TRIACT
                CALL DEMORA.33
                BCF TRIACT
                CALL DEMORA_3MS
                BSF TRIACS
                CALL DEMORA.33
                BCF TRIACS
CALL DEMORA_3MS
DECFSZ SEMI_PERIODOS
                GOTO CICLO_3
                MOVLW .100
                MOVWF SEMI_PERIODOS

LEER_CRUCE4     BCF TRIACR   
                BCF TRIACS
                BCF TRIACT   
            BTFSC CRUCE            ;DETECTA FLANCO POSITIVO
            GOTO LEER_CRUCE4
           
ESCERO4         BTFSS CRUCE
            GOTO ESCERO4

             CALL DEMORA_2MS
CICLO_4
                BSF TRIACR
                CALL DEMORA.33
                BCF TRIACR
                CALL DEMORA_3MS
                BSF TRIACT
                CALL DEMORA.33
                BCF TRIACT
                CALL DEMORA_3MS
                BSF TRIACS
                CALL DEMORA.33
                BCF TRIACS
CALL DEMORA_3MS
DECFSZ SEMI_PERIODOS
                GOTO CICLO_4
             

ARRANCO_MAXIMA  MOVLW H'13'
                MOVWF GPIO
                GOTO ARRANCO_MAXIMA

               RETURN






DEMORA_2MS movlw     .249      ; 1 set numero de repeticion
        movwf     REG1    ; 1 |
PLoop0  clrwdt              ; 1 clear watchdog
PDelL1  goto PDelL2         ; 2 ciclos delay
PDelL2  goto PDelL3         ; 2 ciclos delay
PDelL3
        decfsz    REG1, 1  ; 1 + (1) es el tiempo 0  ?
        goto      PLoop0    ; 2 no, loop
PDelL4  goto PDelL5         ; 2 ciclos delay
PDelL5  clrwdt              ; 1 ciclo delay
        return              ; 2+2 Fin.




DEMORA_3MS 
movlw     .4        ; 1 set numero de repeticion  (B)
        movwf     REG2     ; 1 |
Loop1  movlw     .186      ; 1 set numero de repeticion  (A)
        movwf     REG3     ; 1 |
Loop2  clrwdt              ; 1 clear watchdog
        decfsz    REG3, 1  ; 1 + (1) es el tiempo 0  ? (A)
        goto      Loop2    ; 2 no, loop
        decfsz    REG2,  1 ; 1 + (1) es el tiempo 0  ? (B)
        goto      Loop1    ; 2 no, loop
PDelL6  goto PDelL7         ; 2 ciclos delay
PDelL7  clrwdt              ; 1 ciclo delay
        return              ; 2+2 Fin.

DEMORA.33 movlw     .81       ; 1 set numero de repeticion
        movwf    REG4     ; 1 |
Loop0  clrwdt              ; 1 clear watchdog
        decfsz    REG4, 1  ; 1 + (1) es el tiempo 0  ?
        goto     Loop0    ; 2 no, loop
        clrwdt              ; 1 ciclo delay
        return              ; 2+2 Fin.
     







   END

Mira esta es la demora que pones de 3ms:

Código: [Seleccionar]
DEMORA_3MS  movlw     .4      ; 1 set numero de repeticion  (B)
        movwf    REG2    ; 1 |
Loop1  movlw     .186       ; 1 set numero de repeticion  (A)
        movwf    REG3     ; 1 |
Loop2  clrwdt              ; 1 clear watchdog
        clrwdt              ; 1 ciclo delay
        decfsz    REG3, 1  ; 1 + (1) es el tiempo 0  ? (A)
        goto      Loop2    ; 2 no, loop
        decfsz    REG2,  1 ; 1 + (1) es el tiempo 0  ? (B)
        goto      Loop1    ; 2 no, loop
        return              ; 2+2 Fin.

Probaba y no me salian los tiempos hasta que la mire y vi que me daba 3.7 ms, en cada semiciclo se hacen 3 y eses 0.7ms de mas se convierten en 2.1ms de 10 que tiene el semiciclo, hice otra en PDel y me salio esta:

Código: [Seleccionar]
DEMORA_3MS 
movlw     .4        ; 1 set numero de repeticion  (B)
        movwf     REG2     ; 1 |
Loop1  movlw     .186      ; 1 set numero de repeticion  (A)
        movwf     REG3     ; 1 |
Loop2  clrwdt              ; 1 clear watchdog
        decfsz    REG3, 1  ; 1 + (1) es el tiempo 0  ? (A)
        goto      Loop2    ; 2 no, loop
        decfsz    REG2,  1 ; 1 + (1) es el tiempo 0  ? (B)
        goto      Loop1    ; 2 no, loop
PDelL6  goto PDelL7         ; 2 ciclos delay
PDelL7  clrwdt              ; 1 ciclo delay
        return              ; 2+2 Fin.

No te preocupes estoy acostumbrado a sufrir con el MPLAB  :lol:

El caso es que aqui los tiempos son muy importantes, ya que controlamos un paso por 0 y despues por tiempos controlamos un seg. entero, si hay una pequeña desviacion en cada demora al final al ser 100 ciclos se convierte en una desviacion grande.

Veo que cuando acaba el arranque alimentas el motor con el arrancador, verdad? esto en los arrancadores comerciales no se suele hacer, sino que se le pone un contactor de baypass, y se ponen los triacs en no conduccion y se activa el contactor. Los triac consumen potencia porque tienen caida de tension entre anodos y el contactor no (es despreciable la que cae), si lo alimentas con el arrancador tienes que poner triacs que vayan muy sobrados, sobre todo si el motor va a trabajar mucho tiempo, y con contactores de baypass puedes arrancar varios motores con el mismo arrancador, se llama arranque en cascada porque van arrancando uno detras de otro.Bueno esto ya es decision tuya.


Desconectado rghugo

  • PIC10
  • *
  • Mensajes: 48
Re: arranque suave con 12f675
« Respuesta #18 en: 19 de Abril de 2011, 07:14:04 »
hola amigo.. muchas gracias..   olvide colocar la etiqueta ciclo para decrementar.. :?.... respecto al final donde queda el motor a maxima velocidad,, si los triac que estoy utilizando son los BTA40600 capsula RD91.. y el motor es de 5HP.. si veo que calientan que no creo porque consume 5amp en el arranque y luego queda en 3amp, le meto el contactor de Bypass.

bueno voy a probar este codigo fuente y luego te digo que paso.. busque la manera de simular en proteus y no pde.. la vercion que tengo no tiene optodiac y tampoco me dejo usar el osciloscopio.. :( pero bueno.. lo meto en la cancha que ahi se ven los pingos..
mil gracias..

Desconectado rghugo

  • PIC10
  • *
  • Mensajes: 48
Re: arranque suave con 12f675
« Respuesta #19 en: 19 de Abril de 2011, 11:49:52 »
amigo lo probe y no funciona correctamente-- hice un bucle ahora en la primera fase de regulacion 20% para ver que pasa.. trabajo en esa parte si arranca ahi luego lo sigo.


Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: arranque suave con 12f675
« Respuesta #20 en: 19 de Abril de 2011, 14:39:38 »
Citar
amigo lo probe y no funciona correctamente--

Bien esto quiere decir que estamos en el buen camino, cuando funcionan a la primera es para desconfiar....

Hace algo? empieza pero no va ?

Desconectado rghugo

  • PIC10
  • *
  • Mensajes: 48
Re: arranque suave con 12f675
« Respuesta #21 en: 19 de Abril de 2011, 15:37:19 »
si.. gira pero mal con interferencias.. vibra mucho..

lo que hice ahora es recortar todo el programa y trabajar en una sola velocidad lenta. unicamente.. una ves que lo haga arrancar bien lento.. hago el resto del programa..

ahora me puse a analizar los defasages y me dieron algunos valores de retardo diferentes.

adjunto imagen

decime si lo ves bien orientado al analisis...

muchas gracias por tu tiempo.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: arranque suave con 12f675
« Respuesta #22 en: 19 de Abril de 2011, 15:58:21 »
En esa grafica la que veo bien en el 60% es la fase T aproximadamente ahi se tienen que cebar todas, tambien en los semiciclos negativos.

Con que estas cebando los triacs? Y el cruce por 0 como lo estas detectando?

En las secuencias del MPLAB daban perfectos los tiempos de cebado, no obstante mañana lo miro otra vez, igual cometi algun error.

Desconectado rghugo

  • PIC10
  • *
  • Mensajes: 48
Re: arranque suave con 12f675
« Respuesta #23 en: 19 de Abril de 2011, 17:51:03 »
los triac los cebo con un optodiac, y el cruce por cerro por un optoacoplador.. de iagual manera el error estaba en el bucle?? PARA DECREMENTAR no volvia a leer el cruce por cero.. ese es tu error? yo lo vi pero no lo corregi.. esto a que frecuencia nos queda???

con que lo simulas? con osciloscopio?  antes de empezar este proyecto hice un arranque usando los misms componentes pero con un potenciometro.. en realidad eran tres pote.. una para cada fase y los tres giraban al mismo tiempo.. y el motor funcionaba perfecto.. eso me sirbio para ver que necesita un minimo de 210 volts para empezar a girar el motor. sino no arranca,

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: arranque suave con 12f675
« Respuesta #24 en: 20 de Abril de 2011, 05:30:09 »
Citar
los triac los cebo con un optodiac, y el cruce por cerro por un optoacoplador.. de iagual manera el error estaba en el bucle?? PARA DECREMENTAR no volvia a leer el cruce por cero.. ese es tu error? yo lo vi pero no lo corregi.. esto a que frecuencia nos queda???

Sera optodiac sin cruce por 0? con cruce por 0 no regula.
No es un error lo de no mirar el cruce por 0 de cada ciclo, bueno a lo mejor si, pero lo puse asi a proposito, de esta manera es mas facil, pero dependemos mucho de que la corriente sea buena, si la frecuencia fluctua un poco podria ser que los tiempos de los cebados no sean exactos, ya que los hacemos por tiempos, esto de todos modos pensaba mejorarlo posteriormente.

Citar
con que lo simulas? con osciloscopio?  antes de empezar este proyecto hice un arranque usando los misms componentes pero con un potenciometro.. en realidad eran tres pote.. una para cada fase y los tres giraban al mismo tiempo.. y el motor funcionaba perfecto.. eso me sirbio para ver que necesita un minimo de 210 volts para empezar a girar el motor. sino no arranca,

Lo simulo con el simulador del MPLAB, por lo que solo simulo el soft, pero ahi veo los tiempos con mucha exactitud asi como la secuencia. Las versiones de PROTEUS que tengo no me simulan, ademas si son desviaciones en la frecuencia el PROTEUS tampoco lo diria, y el optodiac que trae es de cruce por 0, por lo menos en la version que yo uso.
Prueba a suprimir la del 20%, para que empiece a mas tension en el 40% y ponle en vez de 100 repeticiones 200 asi le dariamos mas tiempo al motor a ir tomando velocidad.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: arranque suave con 12f675
« Respuesta #25 en: 20 de Abril de 2011, 09:22:39 »
Buenas amigo, he estado leyendo sobre sistemas trifasicos y entre tanta matematica complicada, lei que los sistemas trifasicos se pueden analizar en secuencia positiva y secuencia negativa, y que es esto, no te asustes  :lol:
La secuencia positiva es la que nosotros estuvimos usando para hacer la secuencia de cebados, la fase S va retrasada 120º con respecto a R que es la que tomamos de referencia, pero si la secuencia es negativa quiere decir que la fase S va adelantada 120º o atrasada 240º que es lo mismo y es la fase T la que va a continuacion de la R atrasada 120º. Asi lo tenias tu y yo lo cambie.
Por tanto si esto fuera asi la solucion seria cambiar en los #DEFIENE de las fases del principio la fase S por la T y viceversa, haz la prueba con el programa original y este cambio, a ver que hace.

Desconectado rghugo

  • PIC10
  • *
  • Mensajes: 48
Re: arranque suave con 12f675
« Respuesta #26 en: 13 de Mayo de 2011, 21:09:24 »
Amigo tapi8 .. antes que nada queria pedirte disculpas.. ya que hace un tiempo que no escribo sobre el tema.. pero bueno tube algunos problemitas,, y no podia ponerme con esto..
Hice las pruebas,, y nada.. no me da resultado..  no puedo conseguir un sincronismo. en los arranques-.. creo que voy a tener que hacerme un banco de pruebas.. donde tenga todo montado y pueda probar diferentes tiepos hasta que enganche uno.. no tengo un osciloscopio como para ver como genero la onda.. y cuanto la estoy recortando.
si se que es muy poco lo que tengo que recortar porque sino no arranca, pero estoy trabajando en el aire... porque no tengo el osc- ademas para ver como leo la fase,, lo raro de todo esto que los circuitos publicados.. seban los 3 triac al mismo tiempo con una sola salida del pic. yo creo que haciendo eso, se respeta el defasaje.. pero el tema es en que momento hay que sebarlos, cuando tiempo deberia ser el tiempo de sebadooo.. que pasa si el sebado lo tengo que  tener hasta que detecta otra ves cero ¿?-,,,
Bueno amigo.. quiero agradecerte, porque fuiste el unico que me ayuda con esto..
mil gracias.

saludos

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: arranque suave con 12f675
« Respuesta #27 en: 14 de Mayo de 2011, 14:18:38 »
Amigo no te des por vencido. Lo solucionaremos, o al menos lo intentaremos.

Citar
Hice las pruebas,, y nada.. no me da resultado.. 

Has hecho la prueba como te pongo en el ultimo post?. Si el motor te vibra puede ser debido a eso, ya que si se toman mal las fases le estamos dando a R un 20% y a las otras dos un 80% y el hace lo mismo que cuando le falla una fase, lo que no se es si unas veces va en una secuencia y otras veces en otra, aqui yo creo que los comerciales detectan los tres cruces por 0 y asi funciona vayan en una u otra secuencia.


Citar
lo raro de todo esto que los circuitos publicados.. seban los 3 triac al mismo tiempo con una sola salida del pic. yo creo que haciendo eso, se respeta el defasaje..

Para alimentar al motor a tope de potencia si vale esto, pero con esto lo que haces es un contactor de estado solido, donde cada triac conecta una fase, pero sin regular potencia solo alimentarlo.
He conectado y medido con osciloscopios esas ondas bastantes veces y son trozos de senoide desfasados 120º, hay que echarle imaginacion para verlas porque los bobinados de los motores las distorsionan muchisimo, a pesar de la red snuber que llevan los arrancadores, por cierto le tienes puesta RED SNUBER? para cargas con bobinas en alterna son imprescindibles.
Mira este segundo esquema, es el condensador C1 y la resistencia R4, de ese circuito lo que no vale es el opto por ser de cruce por 0.

http://www.todopic.com.ar/foros/index.php?topic=13389.0


Citar
porque no tengo el osc- ademas para ver como leo la fase

Los osciloscopios que yo usaba en la empresa para estas cosas eran FLUKE que valian sobre 5000€, los teniamos especialmente para medir en motores porque llevan las sondas aisladas, te digo esto porque creo que no puedes poner cualquier osciloscopio ahi.

Desconectado rghugo

  • PIC10
  • *
  • Mensajes: 48
Re: arranque suave con 12f675
« Respuesta #28 en: 14 de Mayo de 2011, 14:42:17 »
mm,,,, Amigo entiendo.

           si la red snuber esta instalada.. con resistencia  de 100ohms 10watts y capacitor de poliester de 1uf 600v un par por fase.. los triac son los BTa40-600.. 40amp 600volts y el motor de 5hp...voy a intentar armar un circuito aparte en un banco de pruebas.. lo que me mata  es que el pic.. si lo grabo una 20 veces.. se me hace hilacha.. no me deja seguir grabandolo.

bueno amigo cualquier novedad la publico

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: arranque suave con 12f675
« Respuesta #29 en: 15 de Mayo de 2011, 05:24:34 »
Citar
lo que me mata  es que el pic.. si lo grabo una 20 veces.. se me hace hilacha.. no me deja seguir grabandolo.

No lo entiendo porque segun Microchip soportan 100.000 escrituras de la memoria flash, o se te estropean al cambiarlo del programador al circuito? Si es por esto ultimo lo mejor es ponerle un zocalo y hacer los cambios con el zocalo, asi el PIC sufre menos.
Haz las pruebas sin problema, tengo por aqui un par 12f617 si se te estropea me das una direccion y te los envio, me los mendo Microchip gratis, no os envian samples a Argentina?