LDmicro0.2 MICRO=Microchip PIC16F887 40-PDIP CYCLE=10000 us at Timer0, YPlcCycleDuty:0, ConfigurationWord(s):0x60023E2 CRYSTAL=8000000 Hz BAUD=9600 Hz COMPILED=\\WDMYCLOUD\TecnoCalubert\Clientes y proovedores\Prgramas plc calubert\PROGETTO CORREDERA TRASERA\puerta trasera con pic 16f887 22.hex VAR LIST 1 bytes #0x8f 2 bytes CAu_Te_Pa Now not used !!! 2 bytes Cabre_cierra 2 bytes Cnew Now not used !!! 1 bytes TAUTOMATICA Now not used !!! 1 bytes TFincerrarcarrera Now not used !!! 1 bytes TPasoAPaso Now not used !!! 1 bytes TPre_Cerra_abre Now not used !!! 1 bytes TPres_Cerrar_abrir Now not used !!! 1 bytes TPresionCerrarabrir Now not used !!! 1 bytes TRetardo_abrir Now not used !!! 2 bytes Tabri_relen Now not used !!! 2 bytes Tcerrar_reli Now not used !!! 1 bytes Tnew Now not used !!! 1 bytes Tretardo_cerrar Now not used !!! 2 bytes WMoutpin_ABRE Now not used !!! 2 bytes dest Now not used !!! 2 bytes duty_cycle Now not used !!! 2 bytes duty_cycle_A 2 bytes duty_cycle_C 2 bytes src Now not used !!! 2 bytes t_automatica 2 bytes t_cerradura 2 bytes t_contador 2 bytes t_contadorC 2 bytes t_luz 2 bytes t_max_automatica 2 bytes t_max_cerradura 2 bytes t_max_luz 2 bytes t_maximo 2 bytes t_maximoC Now not used !!! END IO LIST XCELULA at 33 0 0 XProgra_Au_Pa_Hp at 34 0 0 XPulsoabre at 36 0 0 XPulsocierra at 39 0 0 XSTOP at 40 0 0 Xcarrera_abre at 37 0 0 Xcarrera_cierra at 38 0 0 YCerradur_S at 24 0 0 YFin_carre_cerrar at 20 0 0 YLed_Abre at 22 0 0 YLed_Cierra at 27 0 0 YPaso_Apaso at 21 0 0 YPresion_Cerrar at 30 0 0 YSTOP at 6 0 0 Yled_celula at 15 0 0 Yluzsalida at 18 0 0 ACerradura at 2 0 0 Aautomatica at 3 0 0 Acontrol_presion_A at 4 0 0 Acontrol_presion_C at 5 0 0 Aleer at 7 0 0 AleerC at 8 0 0 Aluz_parkin at 9 0 0 Apresion at 10 0 0 PPWM_ABRE at 16 0 0 PPWM_CIERRA at 17 0 0 END PROGRAM RUNG 1 COMMENT Programa Extandar para cualquier automatismo (Programador: Paulino Cano Diseņador: Gabriel Cano. \r\nEmpresa: Tecno Calubert SL. calubert@tecnocalubert.com www.tecnocalubert.com) END RUNG 2 COMMENT Parametros PWM Velocidades abrir y cerrar Relentizacion END RUNG 3 PARALLEL SET_PWM duty_cycle_A 1000 PPWM_ABRE SET_PWM duty_cycle_C 1000 PPWM_CIERRA SERIES EQU Cabre_cierra 1 MOVE duty_cycle_A 99 END SERIES EQU Cabre_cierra 3 PARALLEL MOVE duty_cycle_C 99 SERIES CONTACTS XCELULA 1 0 CONTACTS Rcedulainver 0 0 PARALLEL SERIES OSR MOVE Cabre_cierra 1 END SERIES OSR PARALLEL MOVE duty_cycle_A 0 MOVE duty_cycle_C 0 END END END END END END END END RUNG 4 COMMENT Comienzo de Automatica Tiempo que tardara en hacer el cierre automatico temorizada END RUNG 5 OSR MOVE #0x8f 0x77 END RUNG 6 CONTACTS XCELULA 0 0 CONTACTS Rautoma_input 0 0 LEQ t_automatica t_max_automatica ADD t_automatica t_automatica 1 END RUNG 7 CONTACTS Rautoma_input 1 0 MOVE t_automatica 0 END RUNG 8 PARALLEL GRT t_automatica t_max_automatica SERIES CONTACTS Rautoma_input 0 0 EQU t_max_automatica 0 END END COIL Rautoma_output 0 0 0 0 END RUNG 9 READ_ADC Aautomatica END RUNG 10 MUL t_max_automatica Aautomatica 5 END RUNG 11 CONTACTS RAutomatica 0 0 CONTACTS RPaso_Apaso 1 0 EQU Cabre_cierra 2 CONTACTS RHombrepresente 1 0 COIL Rautoma_input 0 0 0 0 END RUNG 12 CONTACTS Rautoma_output 0 0 OSR MOVE Cabre_cierra 3 END RUNG 13 COMMENT Comienzo de la cerradura temorizada END RUNG 14 CONTACTS Rcer_input 1 0 LEQ t_cerradura t_max_cerradura ADD t_cerradura t_cerradura 1 END RUNG 15 CONTACTS Rcer_input 0 0 MOVE t_cerradura 0 END RUNG 16 PARALLEL GRT t_cerradura t_max_cerradura SERIES CONTACTS Rcer_input 0 0 EQU t_max_cerradura 0 END END COIL Rcer_output 0 0 0 0 END RUNG 17 EQU Cabre_cierra 1 READ_ADC ACerradura END RUNG 18 MOVE t_max_cerradura ACerradura END RUNG 19 EQU Cabre_cierra 1 PARALLEL SERIES OSR COIL Rcer_input 0 0 0 0 END SERIES OSR COIL Rluz_parkin 0 0 0 0 END END END RUNG 20 CONTACTS Rcer_output 1 0 COIL YCerradur_S 0 0 0 0 END RUNG 21 COMMENT principio de la luz parkin temporizado END RUNG 22 CONTACTS Rluz_parkin 1 0 LEQ t_luz t_max_luz ADD t_luz t_luz 1 END RUNG 23 CONTACTS Rluz_parkin 0 0 MOVE t_luz 0 END RUNG 24 PARALLEL GRT t_luz t_max_luz SERIES CONTACTS Rluz_parkin 0 0 EQU t_max_luz 0 END END COIL Rluz_salida 0 0 0 0 END RUNG 25 GEQ Cabre_cierra 1 READ_ADC Aluz_parkin END RUNG 26 MUL t_max_luz Aluz_parkin 7 END RUNG 27 CONTACTS Rluz_salida 1 0 COIL Yluzsalida 0 0 0 0 END RUNG 28 COMMENT Principio de los tiempos de trabajo abre y cierra temporizado END RUNG 29 CONTACTS RentradaC 1 0 LEQ t_contadorC t_maximoC ADD t_contadorC t_contadorC 1 END RUNG 30 CONTACTS Rentrada 1 0 LEQ t_contador t_maximo ADD t_contador t_contador 1 END RUNG 31 CONTACTS RentradaC 0 0 MOVE t_contadorC 0 END RUNG 32 CONTACTS Rentrada 0 0 MOVE t_contador 0 END RUNG 33 PARALLEL GRT t_contadorC t_maximoC SERIES CONTACTS RentradaC 0 0 EQU t_maximoC 0 END END COIL RsalidaC 0 0 0 0 END RUNG 34 PARALLEL GRT t_contador t_maximo SERIES CONTACTS Rentrada 0 0 EQU t_maximo 0 END END COIL Rsalida 0 0 0 0 END RUNG 35 CONTACTS RabrirC 0 0 READ_ADC AleerC END RUNG 36 CONTACTS Rabrir 0 0 READ_ADC Aleer END RUNG 37 MUL t_maximoC AleerC 5 END RUNG 38 MUL t_maximo Aleer 5 END RUNG 39 CONTACTS RabrirC 0 0 OSR COIL RentradaC 0 0 0 0 END RUNG 40 CONTACTS Rabrir 0 0 OSR COIL Rentrada 0 0 0 0 END RUNG 41 CONTACTS RParo_alcierre 1 0 CONTACTS RsalidaC 1 0 COIL Rsalida_cerrar_i 0 0 0 0 END RUNG 42 CONTACTS Rsalida 1 0 COIL Rsalida_abrir_i 0 0 0 0 END RUNG 43 COMMENT comienzo de programacion hombre presente, paso a paso, temporizada automatica. END RUNG 44 CONTACTS XProgra_Au_Pa_Hp 0 0 CTC CAu_Te_Pa 2 0 END RUNG 45 EQU CAu_Te_Pa 0 COIL RHombrepresente 0 0 0 0 END RUNG 46 EQU CAu_Te_Pa 1 COIL RPaso_Apaso 0 0 0 0 END RUNG 47 EQU CAu_Te_Pa 2 COIL RAutomatica 0 0 0 0 END RUNG 48 PARALLEL EQU CAu_Te_Pa 0 SERIES EQU CAu_Te_Pa 1 TCY TPasoAPaso 300000 END SERIES EQU CAu_Te_Pa 2 TCY TAUTOMATICA 500000 END END COIL YPaso_Apaso 0 0 0 0 END RUNG 49 COMMENT esta seccion es para el uso de hombre presente END RUNG 50 CONTACTS RHombrepresente 0 0 CONTACTS RPaso_Apaso 1 0 PARALLEL SERIES CONTACTS XPulsoabre 0 0 CONTACTS RPaso_Apaso 1 0 CONTACTS RHombrepresente 0 0 MOVE Cabre_cierra 1 END SERIES CONTACTS XPulsoabre 1 0 OSR CONTACTS RPaso_Apaso 1 0 CONTACTS RHombrepresente 0 0 MOVE Cabre_cierra 0 END SERIES CONTACTS XPulsocierra 0 0 CONTACTS RPaso_Apaso 1 0 CONTACTS RHombrepresente 0 0 MOVE Cabre_cierra 3 END SERIES CONTACTS XPulsocierra 1 0 OSR CONTACTS RPaso_Apaso 1 0 CONTACTS RHombrepresente 0 0 MOVE Cabre_cierra 2 END END END RUNG 51 PERSIST CAu_Te_Pa END RUNG 52 CONTACTS Rsalida_abrir_i 1 0 PARALLEL SERIES OSR MOVE Cabre_cierra 2 END MOVE duty_cycle_A 0 SERIES OSR CONTACTS Xcarrera_abre 0 0 CONTACTS RHombrepresente 1 0 TOF Tabri_relen 5000000 PARALLEL SERIES CONTACTS Xcarrera_abre 0 0 MOVE duty_cycle_A 65 END SERIES CONTACTS Xcarrera_abre 1 0 OSR MOVE duty_cycle_A 0 END END END END END RUNG 53 CONTACTS Rsalida_cerrar_i 1 0 PARALLEL SERIES CONTACTS Rcedulainver 0 0 OSR MOVE Cabre_cierra 0 END MOVE duty_cycle_C 0 SERIES OSR CONTACTS Xcarrera_cierra 0 0 TOF Tcerrar_reli 5000000 CONTACTS RHombrepresente 1 0 PARALLEL SERIES CONTACTS Xcarrera_cierra 0 0 MOVE duty_cycle_C 65 END SERIES CONTACTS Xcarrera_cierra 1 0 OSR MOVE duty_cycle_C 0 END END END END END RUNG 54 CONTACTS RHombrepresente 1 0 CONTACTS XPulsocierra 0 0 MOVE Cabre_cierra 3 END RUNG 55 COMMENT comienzo de pulsos abre y cierra con un boton END RUNG 56 CONTACTS XPulsoabre 0 0 PARALLEL SERIES CONTACTS RHombrepresente 1 0 OSR PARALLEL SERIES CONTACTS Rsalida_cerrar_i 1 0 CTC Cabre_cierra 3 0 END SERIES CONTACTS Rsalida_cerrar_i 0 0 MOVE Cabre_cierra 1 END END END SERIES CONTACTS RHombrepresente 0 0 MOVE Cabre_cierra 1 END END END RUNG 57 CONTACTS Rsalida_abrir_i 0 0 PARALLEL COIL RParo_alcierre 0 0 0 0 MOVE t_maximoC 1 MOVE AleerC 0 END END RUNG 58 EQU Cabre_cierra 3 PARALLEL SERIES CONTACTS XCELULA 1 0 COIL Rcedulainver 0 0 0 0 END COIL YLed_Cierra 0 0 0 0 MOVE duty_cycle_A 0 END END RUNG 59 CONTACTS XCELULA 1 0 COIL Yled_celula 0 0 0 0 END RUNG 60 EQU Cabre_cierra 1 PARALLEL SERIES OSR COIL Rabrir 0 0 0 0 END COIL YLed_Abre 0 0 0 0 MOVE duty_cycle_C 0 END END RUNG 61 COMMENT comienzo Final de carrera abrir y cerrar, STOP END RUNG 62 CONTACTS Xcarrera_abre 1 0 PARALLEL MOVE t_maximo 1 SERIES OSR MOVE Cabre_cierra 2 END COIL RFin_carre_abre_i 0 0 0 0 SERIES CONTACTS Xcarrera_abre 1 0 MOVE duty_cycle_A 0 END END END RUNG 63 CONTACTS Xcarrera_cierra 1 0 PARALLEL MOVE t_maximoC 1 SERIES OSR MOVE Cabre_cierra 0 END COIL RFin_carre_cerrar_i 0 0 0 0 SERIES CONTACTS Xcarrera_cierra 0 0 MOVE duty_cycle_C 0 END END END RUNG 64 PARALLEL CONTACTS RFin_carre_abre_i 0 0 SERIES CONTACTS RFin_carre_cerrar_i 0 0 TCY TFincerrarcarrera 1000000 END END COIL YFin_carre_cerrar 0 0 0 0 END RUNG 65 EQU Cabre_cierra 3 OSR COIL RabrirC 0 0 0 0 END RUNG 66 COMMENT parametros para hacer eol Stop solo lo hace en abrir y cerrar STOP END RUNG 67 PARALLEL CONTACTS XSTOP 1 0 EQU Cabre_cierra 0 EQU Cabre_cierra 2 END PARALLEL MOVE t_maximo 1 MOVE t_maximoC 1 MOVE Aleer 0 MOVE AleerC 0 SERIES OSR MOVE duty_cycle_A 0 END MOVE duty_cycle_C 0 COIL YSTOP 0 0 0 0 END END RUNG 68 COMMENT Parte de control por presion, la presion es distinta del abrir y de cerrar (Son Independientes) END RUNG 69 PARALLEL READ_ADC Apresion READ_ADC Acontrol_presion_A READ_ADC Acontrol_presion_C END END RUNG 70 CONTACTS Rsalida_cerrar_i 0 0 TON Tretardo_cerrar 100000 COIL Rretardo_C 0 0 0 0 END RUNG 71 CONTACTS Rsalida_abrir_i 0 0 TON TRetardo_abrir 100000 COIL Rretardo_A 0 0 0 0 END RUNG 72 GEQ Acontrol_presion_A Apresion CONTACTS Rretardo_A 1 0 PARALLEL MOVE t_maximo 1 MOVE Aleer 0 MOVE duty_cycle_A 0 COIL RPresion_Abrir1 0 0 0 0 END END RUNG 73 GEQ Acontrol_presion_C Apresion CONTACTS Rretardo_C 1 0 PARALLEL MOVE t_maximoC 1 MOVE AleerC 0 MOVE duty_cycle_C 0 COIL RPresion_Cerrar_1 0 0 0 0 END END RUNG 74 PARALLEL CONTACTS RPresion_Cerrar_1 0 0 SERIES CONTACTS RPresion_Abrir1 0 0 TCY TPre_Cerra_abre 100000 END END COIL YPresion_Cerrar 0 0 0 0 END