mida 14 ;------------------------------------------------------------- ;Aplicación -> modificacion para uso de las torretas o semaforos con ; sirena,utilizando los salidas digitales 102, 103 ; PROTAB9 CAMBIO DE VARIABLE CLEAR COMO TECLA A BORRE 09-01-2004 ; PROTAB10 CAMBIO EN INDICACION DE PESO DE 42 A 43 09-01-2004 ; PROTAB11 NESECITA UN PULSO MAS PARA PESO REFERENCIA 09-02-2004 ; Y SE LE AGREGO UNA DETECCION PARA CUANDO SE QUITA LA CAJA SIN PULSAR ; PROTAB12 SE LE AGREGO RESETEO DE ALARMA EN EL PROCESO DE ABORTAR 09-08-2004 ; PROTAB13 SE LE AGREGO UN INICIO REMOTO LOCAL 09-20-2004 ; PROTAB14 se asignaron unos registros guarda errores 10-08-2004 ; PROTA15 se asignan registros paralelos en ram con bateria para los reles ; 301, 302, 303, 304, de igual manera se introduce registros para reportar ; errores en horario para saber cuando sucedieron ; prota16 la tara se hace manualmente con el programa de tara y el de elpeso ; prota17 registros de error de dia ; prota18 activar alarma despues de 9 Kilos ;Fecha -> junio 29/2005 ;------------------------------------------------------------- scan equ 99 ;programa principal--------------------------------------- &ini ld scan jz &lea jmp ini0 &lea call &leavar ini0 nop ld izqui and tenter jz inir call menu inir ld inirem out iniremt ld inirem jnz ini10 reset pricava reset abor reset abort reset led118 call peba ;peso basico ink tenter jz fin set inirem ;inicio remoto local ?????????????????????????????????????????????????? set iniremt ini10 set led118 call vartem ;TEMPORAL EN IMECTRO PARA PRUEBAS call cava ;caja vacia ld aboini ;caso en cava al iniciao proc se haya termin en lv jnz fin ld abor out abort ld abor jnz afin call pere ;peso referencia ld abor out abort ld abor jnz afin movri rerror ;carga registro de errores movci 1 cpli clpeca movri guaerro movri rerror cpei clpeca ;si es el mismo error no lo guarda call errores clpeca call peca ;pesa caja jmp fin afin reset pricava reset abor reset abort set inirem set iniremt fin end ;------------------------------------------- ;peba. peso basico y entrada a peba nop ld borre ;si borre tare jz peba10 call tara peba10 call diba ;display basico ld izqui and tenter jz pebaf call menu ;si.... pebaf ret ;----------------------------------------- ;cava. caja vacia cava nop cava00 reset aboini set procpes ;activa indicador proceso pesado set procpest ld inirem ;rechequeo inirem por si se desconecto en lv out iniremt ld inirem jz cava20 cava1 ld borre ;PROCESO DE ABORTAR !?!?!?!?!?!? and boton jz cava11 call aborte jmp cavaf cava11 clear ;display caja vacia disl cajvac com 1 clear disl cajvac1 com 2 ld pricava ;pregunta si reconocio primer caja vacia jz cava11b cava11a call diba movrf epeso movrf pemica cplef cava11a movrf cavafi stof pecaja jmp cavaf cava11b call diba ld borre jz cava11c call tara cava11c ld boton ;taro manual? jz cava1 ;no.. sigo esperando cava12 ld boton ;se queda aqui hasta que se suelte el boton jnz cava12 set pricava ;indica primer caja vacia call elpeso movrf epeso ;se guarda el peso de la tara stof pecaja movrf pecaja stof cavafi call tara ;unica tara jmp cavaf cava20 set aboini ;....se desconecto del lv!!! cavaf movri rerror ;carga registro de errores movci 1 cpli cavaff movri guaerro movri rerror cpei cavaff ;si es el mismo error no lo guarda call errores cavaff ret ;----------------------------------------- ;pere. pesado de unidades de referencia pere nop clear disl uni com 1 clear disri unipes 4 com 2 call diba movrf pesunii ;valor de peso de uni con tolerancias movrf unitol mulf movcf 100 divf stof peunto movrf pesunii ;peso mayor con tolerancia movrf peunto addf stof peunmax movrf pesunii ;peso menor con tolerancia movrf peunto subf stof peunmin pere2 call encin ld borre ;PROCESO DE ABORTAR !?!?!?!?!?!? and boton jz pere21 pere20 call aborte jmp peref pere21 call diba call elpeso movrf epeso movcf 9 ;9000 gramos cplf pere2a ;si el peso sobre la vascula es menor de 1.2Kg suena la alarma set punref ;enciende luz roja pere2a ld punref jz pere22 call elpeso movrf epeso movcf 1.2 ;1200 gramos cpgf pere22 ;si el peso sobre la vascula es menor de 1.2Kg suena la alarma set luz103 ;enciende luz roja reset punref pere22 call elpeso movrf epeso ;el peso es menor al de tole? movrf peunmin cplf pere3 call elpeso movrf epeso ;el peso en mayor al de tole? movrf peunmax cpgf pere4 jmp pere5 pere3 set led123 ;peso por debajo enciende led y queda en loop !!!!!!!!!!!!!!!! reset led121 reset led122 jmp pere2 pere4 set led121 ;peso por encima enciende led y queda en loop !!!!!!!!!!!!!!! reset led122 reset led123 jmp pere2 pere5 call diba reset led121 ;enciende el led del centro set led122 set punref reset led123 ld boton jz pere2 ;en loop mientras boton!!!!!!!!!!!!!!!!!!! reset punref reset luz103 call elpeso movrf epeso ;peso de referencia de # unidades stof peret movif unicaj movrf peret ;peso esperado de la caja mulf movif unipes divf stof pereu movrf pereu ;valor de peso esperado de ujni control movrf unitol mulf movcf 100 divf stof peunto movrf pereu ;peso mayor con tolerancia movrf peunto addf stof peunmax movrf pereu ;peso menor con tolerancia movrf peunto subf stof peunmin movri rerror ;carga registro de errores movci 1 cpli peref movri guaerro movri rerror cpei peref ;si es el mismo error no lo guarda call errores peref ret ;----------------------------------------- ;peca. pesado caja peca nop peca00 ld borre ;PROCESO DE ABORTAR !?!?!?!?!?!? and boton jz peca0 call aborte jmp pecaf peca0 reset led122 call elpeso movrf epeso movcf 1.2 ;1200 gramos cpgf peca1 ;si el peso sobre la vascula es menor de 2Kg suena la alarma set luz103 ;luz roja peca1 call elpeso movrf epeso ;determina las unidades sobre balanza movrf peret divf stof unac movrf unac ;unidades sobre balanza en entero stofi unaci call elpeso movrf epeso ;el peso es menor al de tole? movrf peunmin cplf peca11 call elpeso movrf epeso ;el peso en mayor al de tole? movrf peunmax cpgf peca12 jmp peca13 peca11 set led123 ;peso por debajo enciende led y queda en loop !!!!!!!!!!!!!!!! reset led121 reset led122 jmp peca2 peca12 set led121 ;peso por encima enciende led y queda en loop !!!!!!!!!!!!!!! reset led122 reset led123 jmp peca3 peca13 call dili reset led121 ;enciende el led del centro set led122 reset luz103 reset led123 jmp peca4 movri unicaj ;las unidades son iguales....? movri unaci cpei peca2 jmp peca3 peca2 call dica ;si........... jmp peca peca3 call dica ;faltan...faltan..o sobran... jmp peca ;en loop !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! peca4 ld boton jz peca ;en loop mientras boton!!!!!!!!!!!!!!!!!!! peca41 ld boton ;se queda aqui hasta que se suelte el boton jnz peca41 set luz102 ;enciende luz verde que permite sacar caja set cajlst ;activa caja aceptada call elpeso movrf epeso ;peso de unidades actuales stof pefuni movrf pecaja ;suma de tara+neto=bruto movrf pefuni addf stof pesobru movif unicaj stof unidado movrf numcaji stof numcajo peca6 call elpeso movrf epeso movcf 1 cpgf peca6 reset procpes ;reset proceso pesado activo reset procpest set fincaj ;activa rele fin de caja set fincajt pecaf clear com 0 clear com 1 clear com 2 reset led122 reset luz102 movri rerror ;carga registro de errores movci 1 cpli pecaff movri guaerro movri rerror cpei pecaff ;si es el mismo error no lo guarda call errores pecaff ret ;------------------------------- ;diba. display basico solo el peso en com 0 diba call elpeso clear disrf epeso 43 com 0 dibaf ret ;----------------------------------------------- ;dica. display llenado de cajas dica call elpeso ;peso actual clear disrf epeso 43 com 0 clear ;unidades actuales disrf unac 40 com 1 movif unicaj movif unipes divf stof unicon clear ;unidades de control totales disrf unicon 40 com 2 dicaf ret ;----------------------------------------------- ;dili. display llenado de cajas listo dili call elpeso ;peso actual clear disrf epeso 43 com 0 clear ;unidades actuales disrf unac 40 com 1 clear disl listo com 2 dilif ret ;--------------------------------------------- ;menu. calibracion, configuracion, estabilidad menu nop clear ;muestra aviso menu disl men com 0 clear ;muestra aviso c/e disl ec com 1 ld tenter ;se oprime cualquier tecla? or borre or arriba or izqui jz menu ;sino... se queda en loop ld borre ;oprimo borre? jnz menu10 jmp menu20 menu10 clear com 0 clear com 1 clear com 2 jmp menuf ;si....se salio a peba menu20 ld tenter ;oprime enter? jnz menu30 jmp menu40 menu30 func 8 0 ;si....calibra jmp menu menu40 ld arriba ;oprime arriba? and izqui ;y izqui jnz menu50 jmp menu menu50 func 9 0 ;si...parametriza jmp menu menuf ret ;--------------------------------------- ;tempo. temporizador generico para tiempos cortos ;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 ;------------------------------------------ ;tara. tarado automatico entre tolerancias ;param. taramen=tolerancia menor, taramas=tole mayor tara call elpeso movrf epeso movrf taramen cplf tara1 call elpeso movrf epeso movrf taramas cpgf tara1 jmp taraf tara1 call tarat jmp tara taraf ret tarat movcf 0 stof latara clear disl tare com 2 setri temtie 10 call tempo call elpeso movrf epeso stof latara call elpeso clear disrf epeso 43 com 0 taratf ret ;------------------------------------ ;aborte. aborte set abor set abort reset procpes reset procpest reset punref reset luz103 clear com 1 clear com 2 abortef ret ;------------------------------- ;elpeso. rutina para peso total con tara elpeso movrf peso movrf latara subf stof epeso elpesof ret ;------------------------------------ ;rutina encintadora encin ld microt jnz encin1 ld micro out microt ld cajlst and micro jz encinf encin1 ld auxenc1 tim tmenc 100 out auxenc2 set auxenc1 set encint ld auxenc2 jz encinf reset encint reset auxenc1 reset auxenc2 reset cajlst reset microt encinf ret ;------------------------------------ ;errores. errores movri rerror stoi guaerro movri guaerro1 stoi guaerro0 movri guaerro2 stoi guaerro1 movri guaerro3 stoi guaerro2 movri guaerro4 stoi guaerro3 movri guaerro5 stoi guaerro4 movri guaerro6 stoi guaerro5 movri guaerro7 stoi guaerro6 movri guaerro stoi guaerro7 ;guarda el error si lo hay movri terror stoi timerro movri timerro1 stoi timerro0 movri timerro2 stoi timerro1 movri timerro3 stoi timerro2 movri timerro4 stoi timerro3 movri timerro5 stoi timerro4 movri timerro6 stoi timerro5 movri timerro7 stoi timerro6 movri timerro stoi timerro7 movri derror stoi dierror movri dierror1 stoi dierror0 movri dierror2 stoi dierror1 movri dierror3 stoi dierror2 movri dierror4 stoi dierror3 movri dierror5 stoi dierror4 movri dierror6 stoi dierror5 movri dierror7 stoi dierror6 movri dierror stoi dierror7 erroresf ret ;--------------------------------------- &leavar ;[REG_RELAYS] boton equ 1 ;entrada 1 boton externo micro equ 0 ;entrada 0 del micro de la encintadora tenter equ 30 borre equ 31 arriba equ 32 izqui equ 33 encint equ 100 ;salida de 220v que activa la encintadora luz102 equ 102 ;luz verde del semaforo,indica caja aceptada luz103 equ 103 ;luz roja del semaforo, caja no aceptada led118 equ 119 ;rojo en merck y verde en protabaco led121 equ 121 ;led de peso unidades control bajo en pere led122 equ 122 ;led de peso unidades control bien en pere led123 equ 123 ;led de peso unidades control alto en pere temaux1 equ 150 ;aux en tempo temaux2 equ 151 microt equ 152 ;aux para saber cuando micro se inicio por primera vez auxenc1 equ 153 ;aux tempo encintadora auxenc2 equ 154 inirem equ 301 ;inicia pesado en ppal del lv fincaj equ 302 ;fin caja al lv abor equ 303 ;abortar procpes equ 304 ;proceso de pesado activo cajlst equ 902 ;bandera de caja aceptada iniremt equ 900 ;temporal inirem en caso de reset fincajt equ 901 abort equ 903 procpest equ 904 aboini equ 905 ;reinicio proceso pesado pricava equ 906 ;indica caja vacia reconocida punref equ 907 ;punto de referencia para identificar si no se pulsa boton ;[REG_INTEGERS] terror equ 99 derror equ 100 rerror equ 131 ;registro de errores temtie equ 150 ;tiempo en tempo pesota equ 153 ;en este reg. esta el # balanza a tarar unaci equ 154 ;unidades sobre balanza entero en peca unipes equ 301 ;# unidades a controlar del lv unicaj equ 302 ;# unidades en caja del lv pesobru2 equ 303 guaerro equ 312 ;registros de guardar errores guaerro0 equ 313 guaerro1 equ 314 guaerro2 equ 315 guaerro3 equ 316 guaerro4 equ 317 guaerro5 equ 318 guaerro6 equ 319 guaerro7 equ 320 timerro equ 321 ;registros de timrdar errores timerro0 equ 322 timerro1 equ 323 timerro2 equ 324 timerro3 equ 325 timerro4 equ 326 timerro5 equ 327 timerro6 equ 328 timerro7 equ 329 dierror equ 330 ;registros de timrdar errores dierror0 equ 331 dierror1 equ 332 dierror2 equ 333 dierror3 equ 334 dierror4 equ 335 dierror5 equ 336 dierror6 equ 337 dierror7 equ 338 pro1 equ 310 ;nombre producto del lv ;[REG_FLOATS] peso equ 0 ;peso del canal latara equ 10 ;tara epeso equ 11 ;peso con tara numcaji equ 100 ;# de caja del lv pesunii equ 101 ;peso de unidades a controlar de lv numcajo equ 105 ;# de caja al lv pefuni equ 106 ;peso neto al lv pecaja equ 107 ;peso tara al lv unidado equ 108 ;# unidades en caja al lv pesobru equ 109 ;peso bruto de la caja pesobru1 equ 110 peunto equ 120 ;peso =/- de la tolerancia unidades en pere peunmax equ 121 ;peso maximo permitido de unidades en pere peunmin equ 122 ;peso minimo permitido de unidades en pere peret equ 123 ;peso de referencia de # unidades en pere pereu equ 124 ;peso de referencia por unidad en pere unac equ 125 ;unidades sobre la balanza en peca unicon equ 126 ;unidades de control a mostrar en peca cavafi equ 127 ;peso de caja vacia pemica equ 128 ;peso minimo de caja vacia taramen equ 151 ;tole menor de tara ej. -0.01 en tara taramas equ 152 ;tole mayor tara ej. 0.01 en tara unitol equ 300 ;tolerancia peso referencia del lv ;[TIM] timtem equ 48 ;temporizador en tempo tmenc equ 49 ; temporizador encendido encintadora ;[CNT] ;[NOP] ;[TEXTOS] men lite "nenu" ;menu ec lite "E/C" ;menu cajvac lite "caja" ;cava cajvac1 lite "vaci" ;cava tare lite "tare" ;cava manu lite "menu" ;cava uni lite "unid" ;pere listo lite "list" ;dili saldl lite "sald" ;disa plat lite "plat" ;cava cerouno lite "(01)" diez7 lite "(17)" diez7s lite "17" diez lite "(10)" 3cero lite "000" 2cero lite "00" gra lite "Kg" tre7s lite "37" tre7 lite "(37)" ;inicio variables call errores ld iniremt out inirem ld fincajt out fincaj ld abort out abor ld procpest out procpes setri 127 70 setri pesota 0 ;registro de balanza movcf 0.01 ;max y min de tarado stof taramas ;en tara movcf -0.01 stof taramen movcf -0.400 stof pemica ;peso que debe haber el la vascula para aceptar caja vacia movci 1 ;estado para pruebas locales movri 1100 cpei leavara jmp &leavarf leavara call vartem &leavarf ret ;---------------------------------------------------------- vartem ;temporales de prueba entra cuando el registro entero 1100 eeprom esta en 1 setri unipes 50 setri unitol 10 setri unicaj 50 movcf 14.40 stof pesunii vartemf ret ;-----------------------------------------------