mida 14 ;------------------------------------------------------------- ;Aplicación ->dimont ;Fecha ->inicio 01/22/2005 ;dimo4 ultima y dosific pasan de enteros a rele ;------------------------------------------------------------- scan equ 99 ;programa principal--------------------------------------- &ini ld scan jz &lea jmp ini10 &lea call leavar ini10 call diba ld dosific jnz &dos ;si estamos en dosificacion salta call reposo jmp &inif &dos call dosificar &inif end ;------------------------------------------- reposo clear com 1 disl tstop com 2 ink izqu ;<- para calibrar peso nominal jnz &calnom ; ld arri ;arriba + clear para calibrar and izqu jnz &calib ink ente ;enter para dosificacion en automatico jnz &dosi jmp &reposof &dosi clear ;dosificar, enter para confirmar com 2 disl tinic com 0 clear disl tec com 1 ink ente jnz &cdosi ink clea jnz &reposof jmp &dosi &cdosi set dosific ;dosific=1 si esta dosificando setri fase 1 reset ultima jmp &reposof ;calib. calibracion ---------------------------------------------------- &calib ;menu de calibración, ENTER para confirmar clear com 2 disl tcalibr com 0 clear disl tec com 1 ink ente ;calibra func8 jnz &cali2 ink clea jnz &cali4 ink izqu ;izquierda para parametros avanzados jnz &cali3 jmp &calib &cali2 func 8 0 jmp &reposof &cali3 func 9 0 jmp &reposof &cali4 clear disl tcola com 0 clear disl tec com 1 ink ente jnz &cali5 ink clea jnz &cali6 jmp &cali4 &cali5 inf 2 2 stof cola &cali6 clear disl ttvac com 0 clear disl tec com 1 ink ente jnz &cali7 ink clea jnz &cali8 jmp &cali6 &cali7 inf 2 2 stof tvac &cali8 clear disl tvacb com 0 clear disl tec com 1 ink ente jnz &cali9 ink clea jnz &cali10 jmp &cali8 &cali9 ini 2 stoi vacb &cali10 clear disl tfalp com 0 clear disl tec com 1 ink ente jnz &cali11 ink clea jnz &cali12 jmp &cali10 &cali11 ini 2 stoi falp &cali12 clear disl tabep com 0 clear disl tec com 1 ink ente jnz &cali13 ink clea jnz &cali14 jmp &cali12 &cali13 ini 2 stoi apeb &cali14 ;clear ;disl tfalp ;com 0 ;clear ;disl tec ;com 1 ;ink ente ;jnz &cali15 ;ink clea ;jnz &cali16 ;jmp &cali14 &cali15 ;ini 2 ;stoi falp &cali16 clear disl tcieb com 0 clear disl tec com 1 ink ente jnz &cali17 ink clea jnz &cali18 jmp &cali16 &cali17 ini 2 stoi cieb &cali18 clear disl tpist com 0 clear disl tec com 1 ink ente jnz &cali19 ink clea jnz &cali20 jmp &cali18 &cali19 ini 2 stoi pist &cali20 clear disl tniv com 0 clear disl tec com 1 ink ente jnz &cali21 ink clea jnz &cali22 jmp &cali20 &cali21 ini 2 stoi niv &cali22 ;calnom. para entrar datos de nominal, tolerancia------------------------------------------ &calnom clear ;muestra peso nominal com 2 disl tpeso com 0 clear disrf pesnom 42 com 1 ink arri jnz &toler ;flecha arriba para cambiar tolerancia para alarmas ink ente ;ENTER para cambiar peso nominal jnz &camnom ink clea jnz &reposof jmp &calnom &camnom inf 2 2 ;introducir peso nominal com 2 y 2 decimales stof pesnom jmp &reposof &toler clear ;muestra tolerancia para alarmas disl ttole com 0 clear disrf tolalar 43 com 1 ;ink arri ;arriba para otros cambios de parámetros ;jnz &cola ink ente ;ENTER para cambio de tolerancia para alarmas jnz &camtol ink clea jnz &reposof jmp &toler &camtol inf 2 2 ;introducir tolerancia stof tolalar jmp &reposof &reposof ret ;------------------------------------------- dosificar ink ente ;enter mientras se dosifica finaliza jnz &cacab ink clea ;clear mientras doifica o mezcla aborta jnz &cabor jmp &sigue &cacab clear ;confirmacion de finalizar com 2 disl tfin com 0 clear disl tec com 1 ink ente jnz &acab ink clea jnz &sigue jmp &cacab &acab reset alopt set ultima jmp &sigue &cabor clear ;confirmacion de abortar com 2 disl tabo com 0 clear disl tec com 1 ink ente jnz &abor ink clea jnz &sigue jmp &cabor &abor reset valv ;parar todo reset cargue reset entrad reset salida reset alopt reset dosific setri fase 1 reset ultima jmp &dosifin &sigue movri fase ;en que fase esta... movci 1 cpei &fase1 movri fase movci 2 cpei &fase2 movri fase movci 3 cpei &fase3 &fase1 movrf peso ;si hay inicialmete mas de 1 kg no arranca movrf tvac ;TVAC !!!!!!!!!!!! cpgf &fase1f clear disl tespe com 1 ld sentra ;sensor de caja en posicion jz &fase1f set entrad &fase11 ld cilentr jz &fase11 reset entrad setri fase 2 &fase1f jmp &dosifin &fase2 call pesa ;proceso de pesada jmp &dosifin &fase3 ld fotocel jz &fase3f movri vacb ;VACB!!!!!!!!!!!! stoi temtie call tempo set salida setri temtie 15 ;tiempo de cilindro afuera call tempo reset salida ld ultima jnz &salir call tara clear com 1 setri fase 1 jmp &dosifin &salir reset dosific &fase3f nop &dosifin ret ;------------------------------------------- ;pesa. controla el llenado de la caja ; el sistema aprende del llenado ; empieza abriendo valv termina cerrando valv pesa ld valv ;FALP!!!!!!!!!!!!!!!!!!!!!!! timr timfalp timfalpi out falpaux ld falpaux jnz &pesa12 clear disl tdosi com 1 movrf peso ;compara peso con el nominal aprendido movrf pesnom ;!!!!!!!!!!!!!!!!!!!!ojo lo guardo como eeprom cplf &pesa10 reset valv ;peso es mayor que el buscado....cierre reset led119 call ajus setri fase 3 jmp &pesaf &pesa10 ld valv jnz &pesa11 movri niv ;NIV!!!!!!!!!!!! stoi temtie call tempo &pesa11 set valv ;peso es menor que el buscado...repita set led119 jmp &pesaf &pesa12 clear disl terr3 com 0 clear disl tec com 1 ink ente jnz &pesaf ink clea jnz &pesa13 jmp &pesa12 &pesa13 reset valv ;parar todo reset cargue reset entrad reset salida reset alopt reset dosific setri fase 1 reset ultima &pesaf ret ;------------------------------------------------ ;ajus. recalculo del peso final ajus setri temtie 15 ;tiempo de estabilizacion call tempo ;call diba movrf peso ;el peso quedo bajo..corrija movrf pesnom movrf tolalar subf cplf ajus10 movrf peso ;el peso quedo alto...corrija movrf pesnom ;ojo!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! movrf tolalar addf cpgf ajus10 jmp ajusf ajus10 movrf peso ;si el peso es menor que 5 no corrija movcf 5 cplf ajusf set alopt ;da alarma movrf peso ;mira el peso final real y lo compara movrf pesnom subf stof pesnomt ;es la diferencia de pesos movrf pesnom ;corrige la diferencia para la prox pesada movrf pesnomt addf stof pesnom clear ;muestra el nuevo nominal disrf pesnom 42 com 1 ajusf ret ;------------------------------------------- ;diba. display basico diba clear disrf peso 42 com 0 &dibaf ret ;------------------------------------------ ;tara. tarado automatico entre tolerancias ;param. taramen=tolerancia menor, taramas=tole mayor tara clear disl ttare com 1 tara1 movrf peso ;peso bajo movrf taramen ojo!!!!!!!!!!!!!!!!!se inicia en variables cplf tara2 movrf peso ;peso alto movrf taramas ;ojo!!!!!!!!!!!!!!!!se inicia en variables cpgf tara2 jmp taraf tara2 call tarat ;esta fuera de tolerancias...... jmp tara taraf ret tarat func 7 pesota ;tarar clear disl ttare com 1 setri temtie 10 ;tiempo de espera call tempo clear disrf peso 42 com 0 taratf ret ;----------------------------------------- ;parametros: temtie=registro valor de tiempo tempo reset temaux1 reset temaux2 tempo1 ld temaux1 timr timtem temtie out temaux2 set temaux1 ld temaux2 jz tempo1 tempof ret ;--------------------------------------------- leavar ;[REG_RELAYS] ;Entradas digitales manauto equ 0 ;manual o automatico sentra equ 1 ;caja en posicion para entrar fotocel equ 2 ;banda salida alarm equ 3 cilentr equ 4 ;sensor trasero cilindro de entrada penter equ 5 ;pulsador Enter del tablero ;Teclado ente equ 30 izqu equ 33 clea equ 31 arri equ 32 ;Salidas digitales valv equ 100 ;valvula de dosificacion cargue equ 100 ;cargar caja salida equ 101 ;cilindro de salida alopt equ 102 ;Alarma optica alacu equ 103 ; Alarma audible entrad equ 104 ;Entrada de cajas led119 equ 119 ;estado de la valvula temaux1 equ 150 ;aux de temporizador temaux2 equ 151 ;aux de temporizador tecaux1 equ 155 ;aux para teclado tecaux2 equ 156 ;aux para teclado ultima equ 157 ;para finalizar el proceso ultima=1 dosific equ 158 ;0 en reposo y 1 en dosificacion falpaux equ 159 ;aux de FALP ;[REG_INTEGERS] pesota equ 150 ;registro para func7 temtie equ 151 ;tiempo de temporizador timfalpi equ 152 ;FALP tiempo de falta de producto fase equ 160 ;fase del ciclo de dosificacion vacb equ 1100 falp equ 1101 apeb equ 1102 cieb equ 1103 pist equ 1104 niv equ 1105 ;[REG_FLOATS] peso equ 0 ;peso de plataforma taramen equ 10 ;tolerancia tara menos para corregir peso taramas equ 11 ;tolerancia tara mas para corregir peso pesnomt equ 12 ;temporal peso nominal se usa para que aprenda pesoant equ 13 ;almacena el ultimo peso para gradiente de peso pesnom equ 450 ;peso nominal de llenado pesmin equ 451 ;tolerancia menor de llenado pesmax equ 452 ;tolerancia mayor de llenado tolalar equ 453 ;tolerancia para alarmas al operario y correccion cola equ 454 tvac equ 455 ;[TIM] timtem equ 48 ;temporizador unico timfalp equ 49 ;FALP tiempo falta de producto ;[CNT] ;[TEXTOS] tec lite "E-C" ;enter o clear tstop lite "STOP" ttare lite "TARA" tpeso lite "PESO" ttole lite "TOLE" tcalibr lite "CALI" tinic lite "INIC" test lite "EST" tdosi lite "DOSI" tespe lite "ESPE" tdesc lite "DESC" tcerr lite "CERR" tfin lite "FIN" tabo lite "ABO" tcola lite "COLA" ttvac lite "TVAC" tvacb lite "VACB" tfalp lite "FALP" tabep lite "APEB" tcieb lite "CIEB" tpist lite "PIST" tniv lite "NIV" terr3 lite "ERR3" ;VARIABLES PARA INICIAR setri pesota 0 ;registro de balanza ;movcf 25.00 ;stof pesnom ;movcf 0.50 ;stof tolalar movcf -0.1 stof taramen movcf 0.1 stof taramas reset dosific ;estado de reposo setri fase 0 reset ultima &leavarf ret