mida 14 ;------------------------------------------------------------- ;Aplicación -> registros que cuentan cajas para LV. ;Fecha -> octubre 25 del 2004 ;------------------------------------------------------------- scan equ 99 ;programa principal--------------------------------------- &ini ld scan jz &lea jmp ini10 &lea call &leavar ini10 ld pereon jz ini11 jmp ini21 ini11 call peba movrf peso ;queda ahi hasta que se descargue la plataforma movcf 1 cpgf fin reset luz102 ld inirem jnz ini20 reset pricava ;primera caja reset abor call peba ;peso basico jmp fin ini20 call cava ini21 call pere fin end ;------------------------------------------- ;cava. caja vacia ;aqui cuando se resetea el inirem se sale al basico, ojo!!!!!!!!!!!!!!!!!!!!!! cava nop cava00 reset aboini set procpes ;activa indicador proceso pesado ld inirem ;rechequeo inirem por si se desconecto en lv jz cava20 cava1 ld borre ;PROCESO DE ABORTAR !?!?!?!?!?!? and boton jz cava11 call aborta 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 call diba cava11a movrf peso ;ya reconocio caja vacia movrf pemica ;peso minimo de caja cplef cava11a movrf cavafi stof pecaja jmp cavaf cava11b call diba ;es la primera caja vacia que se coloca ld borre ;quiere tarar? jz cava11c call tara ;si tare....poner en cero balanza desocupada 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 movrf peso ;se guarda el peso de la tara!!!!!!!!!!!!!!!! stof pecaja ; tara al lv movrf pecaja stof cavafi call tara ;unica tara se tara la caja jmp cavaf cava20 set aboini ;....se desconecto del lv!!! cavaf ret ;--------------------------------------------- ;pere. pesado de unidades pere ld pereon jnz pere2 clear ;inidades en display disl uni com 1 clear disri unipes 4 com 2 call diba movrf pesunii ;valor de peso de uni con tolerancias movif unitol mulf movcf 100 divf stof peunto ;valor del porcentaje del peso movrf pesunii ;peso mayor con tolerancia movrf peunto addf stof peunmax movrf pesunii ;peso menor con tolerancia movrf peunto subf stof peunmin pere2 set pereon ld borre ;PROCESO DE ABORTAR !?!?!?!?!?!? and boton jz pere21 pere20 call aborta jmp peref pere21 call diba ld punref jz pere22 movrf peso 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 pere22 movrf peso ;el peso es menor al de tole? movrf peunmin cplf pere3 movrf peso ;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 reset luz102 jmp peref pere4 set led121 ;peso por encima enciende led y queda en loop !!!!!!!!!!!!!!! reset led122 reset luz102 reset led123 jmp peref pere5 call diba reset led121 ;enciende el led del centro set led122 set luz102 set punref reset led123 ld boton jz peref ;en loop mientras boton!!!!!!!!!!!!!!!!!!! set luz102 ;enciende luz verde que permite sacar caja reset punref reset luz103 movrf peso ;peso de referencia de # unidades stof peret ;PESO FINAL SOBRE LA BALANZA !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! movrf peret stof pefuni ;para enviarlo al lv movrf pecaja ;suma de tara+neto=bruto movrf pefuni addf stof pesobru movif unicaj stof unidado ;simplemente se transcribe la info de unidades en caja al lv movrf numcaji stof numcajo set fincaj ;activa rele fin de caja reset pereon call dili peref ret ;----------------------------------------- ;peba peso basico en display peba nop ld borre ;si borre tare ;!!!!!!!!!antes ink!!!!!!!!!!!!!!! jz peba10 func 7 pesota peba10 call diba ;display basico ld izqui and tenter jz pebaf call menu ;si.... pebaf ret ;--------------------------------------------------- ;diba display basico diba nop clear disrf peso 42 com 0 dibaf 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 ;------------------------------------------------- ;aborta aborta set abor reset procpes reset punref reset luz103 clear com 1 clear com 2 abortaf ret ;-------------------------------------- ;dili. display llenado de cajas listo dili nop ;peso actual clear disrf peso 43 com 0 clear ;unidades actuales disl cajvac com 1 clear disl listo com 2 dilif ret ;--------------------------------------------- ;tara. tarado automatico entre tolerancias ;param. taramen=tolerancia menor, taramas=tole mayor tara movrf peso movrf taramen cplf tara1 movrf peso movrf taramas cpgf tara1 jmp taraf tara1 call tarat jmp tara taraf ret tarat func 7 pesota clear disl tare com 2 setri temtie 10 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] boton equ 1 ;entrada 1 boton externo tenter equ 30 borre equ 31 arriba equ 32 izqui equ 33 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 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 aboini equ 305 ;reinicio proceso pesado pricava equ 307 ;indica caja vacia reconocida punref equ 308 ;punto de referencia para identificar si no se pulsa boton pereon equ 309 ;bandera de pesado de caja habilitada ;[REG_INTEGERS] rerror equ 131 ;registro de errores temtie equ 150 ;tiempo en tempo pesota equ 153 ;en este reg. esta el # balanza a tarar unitol equ 300 ;tolerancia peso referencia del lv unipes equ 301 ;# unidades a controlar del lv unicaj equ 302 ;# unidades en caja del lv pesobru2 equ 303 ;!!!!!!!!!!!!!!!!!!!!NO APARECE EN PROGRAMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! guaerro equ 309 ;registros de guardar errores ;!!!!!!!!!!!!!!!!!!!!NO APARECE EN PROGRAMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! guaerro0 equ 313 ;!!!!!!!!!!!!!!!!!!!!NO APARECE EN PROGRAMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! guaerro1 equ 314 ;!!!!!!!!!!!!!!!!!!!!NO APARECE EN PROGRAMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! guaerro2 equ 315 ;!!!!!!!!!!!!!!!!!!!!NO APARECE EN PROGRAMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! guaerro3 equ 316 ;!!!!!!!!!!!!!!!!!!!!NO APARECE EN PROGRAMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! guaerro4 equ 317 ;!!!!!!!!!!!!!!!!!!!!NO APARECE EN PROGRAMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! guaerro5 equ 318 ;!!!!!!!!!!!!!!!!!!!!NO APARECE EN PROGRAMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! guaerro6 equ 319 ;!!!!!!!!!!!!!!!!!!!!NO APARECE EN PROGRAMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! guaerro7 equ 320 ;!!!!!!!!!!!!!!!!!!!!NO APARECE EN PROGRAMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! pro1 equ 310 ;nombre producto del lv ;!!!!!!!!!!!!!!!!!!!!NO APARECE EN PROGRAMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ;[REG_FLOATS] peso equ 0 ;peso del canal 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 ;!!!!!!!!!!!!!!!!!!!!NO APARECE EN PROGRAMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 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 ;!!!!!!!!!!!!!!!!!!!!NO APARECE EN PROGRAMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! unac equ 125 ;unidades sobre la balanza en peca ;!!!!!!!!!!!!!!!!!!!!NO APARECE EN PROGRAMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! unicon equ 126 ;unidades de control a mostrar en peca ;!!!!!!!!!!!!!!!!!!!!NO APARECE EN PROGRAMA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! cavafi equ 127 ;peso de caja vacia pemica equ 128 ;peso minimo de caja vacia taramen equ 129 ;tole menor de tara ej. -0.01 en tara taramas equ 130 ;tole mayor tara ej. 0.01 en tara ;[TIM] timtem equ 48 ;temporizador en tempo ;[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 ;inicio variables reset pereon 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.04 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 setri 300 2 setri 301 50 setri 302 50 movcf 1.4 stof 101 ret &leavarf ret ;-----------------------------------------------