mida 14 ;PROGRAMA PARA LA SENSANI EN PROTABACO ; ;********************* CARACTERISTICAS ******************************************* = ; = ;funciona con un pulsador normamente cerrado = ; = ;este prg funciono para protabaco usando un solo pulsador para aceptar el proceso y = ;pulsar una vez para aceptar la caja vacia. = ; = ;este programa utiliza para la inestabilidad el concepto de desviacion estandar = ; = ;contien rutina de creacion de nuevo producto = ; = ;almacena el valor de tara = ; = ;contiene tecla acepta pesos por fuera de tolerancia -enter- = ; = ;incluye formatos de impresion = ; = ;indicador que es en funcionamiento protocolo libre con led 120 ; ;reset si caja esta mal ;bombillo verde enciende x tiempo ;Programa para la Senzani en Protabaco. ; = = ;************************ no olvidar *************************************************** = ; = ; no olvidar si se hicieron pruebas locales borrar estos valores. = ;====================================================================== ; ;DESCRIPCION DE TECLAS DE FUNCIONES ; ; Tara= ; ;Parametros general====> ;calibracion========== > PARA ;formatos de impresion = TODOS ;nombre producto a imprimir = ESTE MENU , ;estabilidad= ;aceptar peso x fuera de tolerancia === ;================================================================== call varia ;llama rutina de declaracion de variables ;[nop] ;textos caja lite "caja" vacia lite "vacia" e/c lite "ent" fina lite "listo" remoto lite "ini" proces lite "proce" retire lite "reti" desvi lite "desv" llena lite "llena" entcle lite "e/c" prod lite "prod" imp lite "inpr" kg lite "kg" lot lite "lote:" pes lite "peso:" tar lite "tara: prota lite "Protabaco S.A" mus1 lite "mustang azul" mus2 lite "mustang rojo" premi lite "premier" tropical lite "tropical" gt lite "Gt" cali lite "CALI" bala lite "BALA" para lite "PARA pro lite "PROD" esta lite "Esta" ducto lite "Producto:" line lite "Linea: can lite "Cantidad:" ;????????????????????????????????????????????????????????????????????????????????????? primer lite "191100602590030" ;Protabaco segunda lite "191100402150031" ;Producto tercera lite "191100402160112" ;Nombre producto cuarta lite "191100301790032" ;texto Cantidad quinta lite "191100301780096" ;dos ultimos numero de fardos sexta lite "191100301770121Fardos" ;texto fardos septima lite "191100301770181Fecha:" ;texto fecha octava lite "191100301770230" ;digitos de la fecha novena lite "191100401370180ORDEN :" decima lite "191100501350269 " ;digitos numero de la orden once lite "191100401380032Peso:" doce lite "191100401360077" ;valor del peso trece lite "191100401350136Kg" ;texto KG catorce lite "1X1100000030028b0374" catorce1 lite "029400010001" quince lite "1X1100001310028l0372" quince1 lite "0001" dieseis lite "1F3309200120115" ;barras diesiete lite "191100301770313Linea:" dieocho lite "191100301770362" ;falta el numero de la linea dienueve lite "1X1100002080028l0372 dienue1 lite "0001" veinte lite "1X1100002470028l0372 veinte0 lite "0001" veinte1 lite "1X1100001710028l0372 veinte11 lite "0001" veinte2 lite "1X1100001310168l0001 veinte21 lite "0077" veinte3 lite "1X1100001710307l0001 veinte31 lite "0037" ; font ID Ignore Columna ;1 2 10 000 0250 0031 ;rotacion multiplicador Fila ;**************************************************************** ;D11 ;W ;z ;PC ;SC ;H10 ;191100602590030Protabaco S.A. ;191100402150031Producto: ;191100402160112Mustang Azul cajetilla dura ;191100301790032Cantidad: ;19110030178009650 ;191100301770121Fardos ;191100301770181Fecha ;19110030177023006/11/2001 ;191100401370180ORDEN : ;191100501350269254789 ;191100401380032Peso: ;19110040136007712,385 ;191100401350136Kg ;1X1100000030028b0374029400010001 ;1X1100001310028l03720001 ;1F3309200120115770202345789 ;191100301770313Linea: ;1911003017703628 ;1X1100002080028l03720001 ;1X1100002470028l03720001 ;1X1100001710028l03720001 ;1X1100001310168l00010077 ;1X1100001710307l00010037 ;****************************************************************** ;¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ ;---------------------------------------------------------------------------------------------------------------------------------- ;-------------------------------------- programa principal -------------------------------------------------------------- ;----------------------------------------------------------------------------------------------------------------------------------- ;------------------- parametros para rutina de estabilidad --------------------------------------------------------------- movci 20 ;numero de conteos calculo de media stoi fincon movci 20 ;numero conteo calculos de desviacion stoi fincon1 movci 500 ;indica cuanto permanece encendico el led118 stoi fincon2 setri tieapea 30 ;valor tiempo encendido bombillo verde setri tieapea1 500 reset outcaja reset bombillo setri ework 0 setri calibra 0 paso7 call variable movcf 0 ;inicio conteo de media stof pesofin movci 1 ;inicio contador de media stoi parcon movci 1 ;inicio contador de desviacion stoi parcon1 set finad ;siempre en 1 reset flag10 reset flagtol setri basc 0 set finalok setri anchotx 105 ;ancho buffer puerto para imprimir movci 0 stoi cont movci 0 stoi units movci 0 stoi unidades setri outtole 0 reset nuevopro reset fouttole ;================= inicio programa principal ================================= inicio ld nuevopro ;flag que pregunta si lv solicito creacion de nuevo producto jz inicio_1 call newpro ;rutina de creacion nuevo producto inicio_1 ld inirmto jnz ini call waiting ;muestra en los displays 0 y 1 el mensaje que esta ;esperando el inicio remoto. ini ld inirmto out led119 ;si esta encendido llego inicio remoto ;=================================================================== ;========= r u t i n a s a j u s t e y c a l i b r a c i o n d e b a l a n z a =========== ;===================== t a r a ======================================== ;tecla ink tarriba ; jz set_up func 7 basc ;autotara ;================= p a r a m e t r o s f u n c i o n a m i e n t o ======================= ;teclas set_up ld tenter ld tizq andld jz visual call balanza ;======================================================================== ;================== fin rutinas de ajuste y calibracion de la balanza ================== ;======================================================================== visual movrf peso ;muevo el valor de peso del canal analogo a pesof stof pesof ld display jnz proceso ;======================================================================== ;==================== rutina para 2 o 3 decimales ================================ siga ld inirmto jz inicio ;========================================================================== ; inicio rutina para tarar ;=========================== rutina caja vacia ================================== proceso ld finalok ;este flag inicie en 1 jz final ld inirmto jz inicio ld flag1 jnz paso2 set display movrf peso movcf 1 cpgef inicio encima3 ld flagtara ;flag que indica que se llamo la funcion de tara jnz cajin ;movri 110 ;comparacion canal conversor ;movci 3200 ;valor en puntos de conversion de 6.300 kg ;cplei encima3 ;cpgei encima3 encima4 movri 110 ;comparacion canal conversor movri canalmin cplei encima3 ;encima func 7 basc ;taro set flagtara cajin ;activa salida que indica que puede iniciar proceso, se retiro caja de la balanza ;clear ;cambio protabaco 28 dic ;com 0 ;clear ;disl caja ;com 1 ;clear ;disl vacia ;com 2 paso2 ld flag2 jnz paso3 ld bombillo jnz paso2_1 set out1 set 101 set bombillo paso2_1 ld outcaja jnz paso2_2 call apagar paso2_2 ;ld in0 ;jnz inicio ;espera pulsador reset outcaja reset temagr1 reset tiefina1 reset display reset bombillo ;movri 110 ;comparacion canal conversor ;movri canalmin ;movri canalmax ;cpgei paso2_3 ;cpgei paso10 ;jmp cajin ;paso2_3 movri 110 ;movri canalmax ;cplei paso10 ;jmp cajin ;paso10 call est ;ld led118 ;jnz paso10 ;movri 110 ;comparacion canal conversor ;movri canalmax ;cpgei paso10_1 ;jmp cajin ;paso10_1 movrf peso ;stof tara ;almacena peso de la tara ;func 7 basc ;taro. para entender el por que? mirar el set flag2 ;valor del peso despues que realiza esta funcion set flag1 reset flagtara ;fin rutina de tarar ******************************************************* paso3 ld flag3 ;bandera para que pase por aqui solo una vez jnz paso3_1 movci 1 stoi acepta ;indica las cantidades que han sido aceptadas movri acontar movri fardo divi stoi fardo1 movri fardo1 movci 1 addi stoi totacep movcf 0 stof ultacep set flag3 reset out1 ;apaga indicador inicia proceso de empaque ;********************************************************************************************* paso3_1 ld flagtol jnz paso4 call estabi set flagtol ;--------------------------------------------------------------------------------------------------------------------------------------- ;------------------------------------ rutina calculo tolerancia ------------------------------------------------------------------ ;----------------------------------------------------------------------------------------------------------------------------------------- ;************************************************************************************************** ;rutina para saber si peso esta dentro de tolerancia y ademas estable ;*************************************************************************************************** paso4 ld gamba jnz paso4_3 call dis reset led118 movrf peso movcf 4 cplef ini set gamba paso4_3 call dis call est ;llama rutina tolerancia call toleranc ;llama rutina de tolerancia para verificar si pico es un valor estable ld in0 jnz paso4_0 movri 110 movri canal cplei cajamal jmp paso4_0 cajamal call reseteo jmp paso7 paso4_0 ld led122 ldnt led118 andld out 100 ld led122 ;pregunta led tolerancia ldnt led118 ;estabilidad andld out flagok ld flagok jnz paso4_2 ;pregunta si peso esta dentro de tolerancia y ademas estable nop ld fla_reta jnz verde ;salta a termporizador de indicador fardo aceptado ink tclear ;ink tenter ;pregunta si peso esta dentro de tolerancia , si no, pregunta si se presiono tecla jz ini ;jz paso4 ;enter que acepta pesos fuera de tolerancia paso4_1 call est ;llamado a estabilidad ld led118 jnz paso4_1 ;espera a que este estable para aceptar peso call fueratol ld aceptar ;este valor lo devuelve la rutina fueratol jz ini inc outtole 1 ;registro que cuenta las veces que ocurrio fuera de tolerancia por caja set fouttole ;flag que ocurrio fuera de tolerancia al menos una fez ;cuando llega a este sitio es por que peso esta entre tolerancia y estable paso4_2 set led126 ;?????????????????????????????? reset aceptar ;rutina para aceptar pesos ********************************** movri fardo movri acepta muli stoi ework clear disri ework 2 ;muestra en display fardos aceptados com 1 movri acepta movci 1 ;adiciona 1 al numero de rondas aceptadas addi stoi acepta movri acepta movri totacep cpli acept1 jmp conta2 acept1 movrf peso stof ultacep ;actualiza el ultimo peso aceptado call estabi ;recalcula tolerancias para la siguinte ronda set fla_reta ;flag que indica que esta termporizando verde set out1 ;call retardo ;llamo temporizador que indica led aceptado este encendido x tiempo jmp ini ;jmp paso4 conta2 movrf peso stof pneto fin set led124 reset led122 val set valvula ;movri 110 ;movri canalmin ;cplei paso5 movrf peso movcf 0.001 cplef paso5 jmp val ;jmp paso5 ;========================================================================= ;cuando llega aqui se han termionado todas las rondas de pesaje para finalizar un caja paso5 ld led124 ;los registros y almacena el peso acumulado jz inicio reset led124 clear ;se mantienen inalterados. disl fina com 0 reset led124 reset led125 reset led126 movri unidades stoi unit movrf pneto movrf tara addf stof pesofaux reset finalok reset led119 reset inirmto reset flag1 reset flag2 reset flag3 reset led124 reset led121 reset led122 reset led123 reset finalok reset gamba clear com 1 clear com 2 set out1 ;finalizo proceso de empaque de una caja. se apagara cuando se retire la caja. set 101 final0 movrf peso movcf 0.001 cpgf final0 reset valvula call impres call est func 7 0 setri ework 0 final jmp paso7 end ;====================== FIN PROGRAMA PRINCIPAL ======================== ;====================================================================== ;****************************************************************************************** ;====================================================================== ;======================= s u b r u t i n a s ============================= ;====================================================================== ;====================================================================== ;======================= rutina tolerancia ================================= ;====================================================================== toleranc reset led122 ;valor que retorna tolerancia movrf peso ;usa medio para calculo de tolerancia mas precision movrf tolmen cplf apague1 ; pesprov es menor que pesof1 ? movrf peso movrf tolmax cpgf apague2 ;pesoprov mayor a pesof2 ? set led122 reset led121 reset led123 reset out6 ;peso ok reset 101 reset out1 jmp apague3 apague1 set led123 set out6 ;peso bajo. set 101 ;bombillo amarillo reset led121 reset led122 jmp apague3 apague2 set led121 ;peso alto set out6 ;salida nuemro 6 set out1 ;bombillo verde reset led123 reset led122 reset 101 ;bombillo amarillo apague3 ret ;========================================================================= ;================= subrutina estabilidad ======================================== ;========================================================================= est nop ;----------------------------------------------------------- rutina para buscar la media ------------------------------------ ; SUMATORIA ( canal analogo + pesofin) desde 1 hasta fincon ;donde pesofin inicia en cero iniest movif 110 ;lee canal analogo cero y lo almacena en peso1 stof peso1 ld finad ;O J O suceptible de borrar pregunta por el led de fin de conversion que siempre esta en uno jz iniest movrf pesofin ;mueve valor de pesofin que para la primera vez esta en cero movrf peso1 ;mueve el valor del canal analogo addf ;pesofin+peso1 stof pesofin ;suma de pesos movif fincon stof finflot ;conversion de entero a flot numero muestras movri parcon ;contador y comparador movci 1 addi stoi parcon movri parcon movri fincon cplei iniest ;CALCULO EL VALOR DE LA MEDIA CON EL RESULTADO ;DE LA SUMATORIA movrf pesofin movrf finflot divf ;valor medio stof media ;================== fin rutina media ==================================== ;==================== rutinas de reseteo =============================== movcf 0 stof pesofin movci 1 ;resetee el contador stoi parcon movcf 1 stof findes ;================= fin rutinas de reseteo ================================= ;==================== rutina para la desviacion =========================== iniest1 ld finad jz iniest1 movif 110 stof pepe movrf pepe movrf media subf stof temdes ;resta que de la desviacion movrf temdes movrf temdes mulf stof temdes ;parentesis al cuadrado movrf temdes movrf findes addf stof findes ;sumatorias de los parentesis movri parcon1 ;contador y comparador movci 1 addi stoi parcon1 movri parcon1 movri fincon1 cplei iniest1 movci 1 ;resetee el contador stoi parcon1 movrf findes movrf finflot divf stof desvia ;calculo de desviacion ;================== fin rutina desviacion ========================================= ;===================== inicio rutina de comparacion determina si esta estable ================ movrf desvia movrf setdesv cpgef iniest4 ;busca el maximo movrf setdesv movrf desvia cplef iniest4 ;busca el minimo reset led118 ;reset 101 jmp iniest5 iniest4 set led118 ;set 101 movri parcon2 ;contador y comparador movci 1 addi stoi parcon2 movri parcon2 movri fincon2 cplei iniest4 movci 1 stoi parcon2 ;================== fin rutina de comparacion ==================================== iniest5 ret ;========================================================================== ;================ fin subrutina de estabilidad ====================================== ;=========================================================================== ;================== fin p r o c e s o ============================================ ;=========================================================================== ;============================================================================= ;======== rutina para mostrar en display que esta en espera del inicio remoto ========== ;=================================================================== waiting clear disl remoto com 0 clear disl proces com 1 clear disrf pesof 42 com 2 ret ;========== fin rutina display inicio remoto ============================================ ;============================================================================== ;================== subrutina de display ============================================ ;=============================================================================== dis ld led124 jnz dis2 clear disrf peso 42 ;muestra en display com 0 clear disri ework 3 com 1 dis2 movrf peso movrf punit divf stof uni movrf uni movif fardo mulf stof uni clear disrf uni 40 com 2 difin ret ;================== fin rutina de display ======================================================= ;con base al ultimo peso aceptado y el total de rondas aceptadas calcula los limites superior ; e inferior de la tolerancia en las variables tolmen y tolmax, para esto utiliza el valor del peso por ;unidad punit. estabi movrf punit movrf tole mulf movcf 100 divf stof rtole movrf ultacep movrf punit addf movrf rtole subf stof tolmen ;este el peso para comparar, restado la tolerancia movrf ultacep movrf punit addf movrf rtole addf stof tolmax ;peso para comparar sumado la tolerancia ret ;*********************************************************************************************************** debug set debuger debug1 ld debuger jnz debug1 ret ;********************************************************************************************************** ;rutina para la creacion de un nuevo producto, aqui llega por un flag que se activa desde lv ;primero pesa la caja vacia y luego pesa la caja llena, en ambos casos llama estabilidad para ;aceptar los pesos. los pesos aceptados los almacena donde los lee lv normalmente , tara y pneto. newpro clear ; com 0 clear disl caja com 1 clear disl vacia com 2 nop call est ld led118 jnz newpro ld in0 ;espera pulsador jnz newpro movrf peso stof tara ;stof taranuep func 7 basc :ojo !!! mirar si hace falta flag para la tara nop nop newpro2 clear ;cambio protabaco 28 dic disrf peso 42 com 0 clear disl caja com 1 clear disl llena com 2 call est ld led118 jnz newpro2 ld in0 jnz newpro2 movrf peso movcf 1 cplf newpro2 movrf peso stof pneto reset nuevopro reset inirmto ret ;***** fin rutina nuevo producto ******* ;********************************************************************************************** ;******************** r u t i n a d e i m p r e s i o n ****************************************** ;********************************************************************************************** impres ;************* fotmato 1 ************** ;770202345789 movcf 770202 stof barra movcf 345789 stof barra1 setri D 11 setri h 10 ;??????????????????????????????????????????????????????????????????????????????????? setri r4 0 ;puntero setri r3 15 ;para posicionar el puntero en 15 movci 801 ;para apuntar al registro 1001 stoi r1 movri 800 ;tamano del texto stoi r2 ;tamano del lote setri r10 0 setri r6 15 movci 701 stoi r7 movri 700 stoi r9 clear disch 2 ;STX disch 76 ;L disch 13 ;CR disch 68 ;D disri d 2 ;11 disch 13 ;CR disch 87 ;W disch 13 disch 122 ;z disch 13 disch 80 ;P disch 67 ;C disch 13 disch 83 ;S disch 67 ;C disch 13 disch 72 ;H disri h 2 ;10 com 3 clear disl primer ;PROTABACO S.A loc 15 disl prota com 3 clear disl segunda loc 15 disl ducto com 3 ;rutina para imprimir nombre clear disl tercera loop locx r3 movix r1 stoi r5 discx r5 inc r1 1 inc r3 1 inc r4 1 movri r2 movri r4 cpei loop0 jmp loop loop0 com 3 ;fin rutina para imprimir nombre clear disl cuarta loc 15 disl can ;texto de la cantidad de fardos com 3 clear disl quinta loc 15 disri acontar 2 ;numero de fardos com 3 clear disl sexta disch 13 disl septima com 3 clear disl octava loc 15 date disch 13 disl novena com 3 clear disl decima loc 15 disrf orden 70 disch 13 disl once com 3 clear disl doce loc 15 disrf pneto 33 disch 13 disl trece com 3 clear disl catorce loc 20 disl catorce1 com 3 clear disl quince loc 20 disl quince1 com 3 clear disl dieseis loc 15 disrf barra 60 loc 21 disrf barra1 70 com 3 clear disl diesiete disch 13 disl dieocho loc 36 disri linea 2 com 3 clear disl dienueve loc 20 disl dienue1 com 3 clear disl veinte loc 20 disl veinte0 com 3 clear disl veinte1 loc 20 disl veinte11 com 3 clear disl veinte2 loc 20 disl veinte21 com 3 clear disl veinte3 loc 20 disl veinte31 disch 13 disch 69 ;E com 3 ret ;esta opcion se habilitara cuando sea necesario, lo unico que ; se hace es pasar esta ruina en cualquier parte de la empresion. ;clear ;disl septima ;numero de LOTE ;loop1 ;locx r6 ;r3 ;movix r7 ;r1 ;stoi r8 ;r5 ;discx r8 ;r5 ;inc r7 1 ;r1 1 ;inc r6 1 ;r3 1 ;inc r10 1 ;r4 1 ;movri r9 ;r2 ;movri r10 ;r4 ;cpei final1 ;jmp loop1 ;final1 ;com 3 ret ;************* fin formato 1 ***************************************** ;¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ enviar2 clear ret ;********* fin rutina impresion ******************* ;================================================================== ;rutina para cambiar el nombre del producto para ser impreso ;================================================================= campro setri txt 17 setri contxt 17 campro1 clear disl prod com 0 clear disl entcle com 1 clear com 2 ink tclear jnz outcam ink tenter jz campro1 campro2 clear dislx txt com 1 ink tarriba jz campro3 inc txt 1 inc contxt 1 ;auxiliar para saber que numero de txt se esta esligiendo movri contxt movci 22 ;este valor por que es el ultimo de la tabla de textos ;si se menten mas textos este valor se debe cambiar cpei igual campro3 ink tenter jnz campro1 jmp campro2 igual setri txt 17 setri contxt 17 jmp campro2 outcam ret ;======= fin rutina cambiar nombre ;======== R U T I N A S D E B A L A N Z A ============================ ;================================================================ ;Esta subrutina cuenta con un menu en donde se encuentra calibracion ;y parametros de funcionamiento de la plataforma. balanza0 nop balanza ld tenter jnz balanza0 ;esto para qie no siga de largo cuando entra a los menus clear disl cali ;disl bala ;al entrar muestra en el LCD 0: bala com 0 clear disl entcle ; muestra en LCD 1 enter o clear com 1 clear com 2 ink tclear ;si se desea salir sin hacer nada jnz outbala ;se presiona CLEAR para salir o ENTER para aceptar ink tizq jnz outbala ld in0 jz outbala ink tarriba jnz menu1 ld tenter jz balanza balanza1 clear ;lo primero que muestra es menu para calibrar disl cali com 0 ink tclear ;ENTER= acepta CLEAR= salir jnz outbala ink tarriba ;con la tecla ARRIBA navego el menu jnz outbala ld in0 jz outbala ink tenter jz balanza1 inc calibra 1 balan1_0 nop ld tenter jnz balan1_0 nop ink tenter jz balan1_0 inc calibra 1 movri calibra movci 2 cpei balan1_1 setri calibra 0 jmp balanza1 balan1_1 func 8 0 movri 110 ;valor cero absoluto de la celda stoi canal ;valor del canal a/d 110 movci 100 movri canal addi stoi canalmax ;registro entero eeprom movri canal movci 100 subi stoi canalmin ;registro entero eeprom setri calibra 0 ;para que se presione dos veces enter para calibrar menu1 clear disl para ;rutina que muestra los parametros com 0 ;de funcionamiento de la plataforma ink tclear jnz outbala ld in0 jz outbala ink tarriba jnz menu2 ink tenter jz menu1 func 9 1 jmp balanza ;===================== f a c t o r e s t a b i l i d a d ====================================== ;teclas ;cambio por teclado del mida del valor de estabilidad menu2 clear disl esta com 0 clear disl entcle com 1 ink tarriba jnz menu3 ink tclear jnz outbala ld in0 jz outbala ink tenter jz menu2 clear disl desvi com 0 movrf setdesv movcf 10 divf stof 411 clear disrf 411 40 com 1 inf 2 0 stof setdesv movrf setdesv movcf 10 mulf stof setdesv clear com 1 clear com 2 jmp menu2 ;================== fo r m a t o s d e i m p r e s i o n =============================== menu3 clear disl imp com 0 ink tclear jnz outbala ld in0 jz outbala ink tarriba jnz produc ink tenter jz menu3 clear disri formato 2 com 1 clear ini 2 stoi formato jmp menu3 ;====================================================================== ;Cambia nombre de producto a IMPRIMIR ; produc clear disl pro com 0 clear disl entcle com 1 ink tclear jnz outbala ld in0 jz outbala ink tarriba jnz balanza ink tenter jz produc call campro ;llama rutina para cambiar el producto para imprimir jmp produc outbala ret ;-========================================================== ;Rutina de tiempo encendido indicador fardo aceptado ;=========================================================== retardo ld temagr ;temporizado encendido timr 50 tieapea ;tieapea=tiem.ape.agregado out tiefina ;ya termino? set temagr ld tiefina jnz reta1 ret reta1 reset out1 ;indicador fardo aceptado reset temagr ;inicializador de temporizador reset tiefina ;estado de temporizador reset fla_reta ;flag que indica que esta temporizando ret ;fin rutina encendido indicador fardo aceptado ;======================================================= apagar ld temagr1 ;temporizado encendido timr 51 tieapea1 ;tieapea=tiem.ape.agregado out tiefina1 ;ya termino? set temagr1 ld tiefina1 jnz apagar1 ret apagar1 reset out1 ;indicador fardo aceptado reset 101 reset temagr1 ;inicializador de temporizador reset tiefina1 ;estado de temporizador set outcaja ret ;fin====================================0 ;rutina para cundo una cja esta mal y se desea perder reseteo reset led118 reset led119 reset led120 reset led123 reset led121 reset led124 reset led125 reset led126 reset led122 reset display reset inirmto reset auxlv reset flag1 reset flag2 reset flag3 reset flagtara reset flag10 reset flag11 reset flagok reset flagtol set finalok ret ;rutina para no aceptar pesos por fuerta del 20 porciento, cuando se presiona clear fueratol movrf punit movcf 20 mulf movcf 100 divf stof rtole1 movrf ultacep movrf punit addf movrf rtole1 subf stof tolmen1 ;este el peso para comparar, restado la tolerancia movrf ultacep movrf punit addf movrf rtole1 addf stof tolmax1 ;peso para comparar sumado la tolerancia movrf peso movrf tolmen1 ;comparo para saber si peso esta dentro del 15% cplf noacept ;si es menor sale, demasiado peso por fuera de tolerancia movrf peso movrf tolmax1 cpgf noacept set aceptar jmp noacept1 noacept reset aceptar noacept1 ret ;0000000000000000000000000000000000000000000000000000000 ;========================================================= ;RUTINA para pruebas con M I D A V I S U A L ;rutina para setear variables con valores fijos y realizar pruebas desde midavisual variable movcf 2.76 ;11.3 peso caja premier stof punit movci 50 stoi acontar movcf 5 stof tole setri fardo 50 movci 12345 stoi orden ;lote setri linea 1 set inirmto call datos ret datos setri 800 3 setri 801 74 setri 802 79 setri 803 82 movcf 59 stof producto ;setri venci1 10 ;setri venci2 2004 movcf 3659 stof orden ;movcf 8000537 ;stof ean ret ; FIN rutina para pruebas con M I D A V I S U A L ;*********************************************************************************** ;================================================================= ;================= D E F I N I C I O N D E V A R I A B L E S ============ ================================================================= ;*********************************************************************************** varia nop ;[reg_relays] tenter equ 30 tclear equ 31 tarriba equ 32 tizq equ 33 led118 equ 118 ;indica inestabilidad led119 equ 119 ;indica el final ok led120 equ 120 ;significa que esta funcionando el protocolo libre por el com 1 led123 equ 123 ;led peso por debajo led121 equ 121 ;led peso por encima led124 equ 124 ;led que indica que ya se contaron las unidades que se deben contar led125 equ 125 led126 equ 126 ;se enciende al final del proceso led122 equ 122 ;led tolerancia ;---------------------------------------------------------------------------------------------------------------------------------- display equ 134 finalok equ 132 ;este rele inicio en on y cundo termina el proceso se pone a off inirmto equ 133 ; 1 ;relay que activa labview para iniciar el proceso auxlv equ 131 ;este relay no lo utiliza para nada el plc pero labview si lo requiere fin_ad equ 110 ;rele fin de conversion a/d finad equ 135 ;fin de conversion a/d ;-------------------------------------------------------------------------------------------------------------------------------------- flag1 equ 127 ;estas banderas se utilizan para que el programa no pase de nuevo por flag2 equ 128 ;partes que no sea necesario que pase de nuevo, ejemplo, calculo de la flag3 equ 129 ;tolerancia, poner caja vacia, etc flagtara equ 137 ;la utilizo para que pase una vez por el sitio dode pregunta si la caja esta encima de bascula flag10 equ 139 ;flag para contador de aceptar peso dentro de tolerancia flag11 equ 140 ;este flag se activa cunado el peso esta en tolerancia y estable(conta1) flagok equ 141 ;la utilizo para saber si esta estable y dentro de tolerancia (paso 4) flagtol equ 144 debuger equ 145 nuevopro equ 146 ;flag que activa lv para nuevo producto fouttole equ 147 ;indica que termino rutina de nuevo producto fla_reta equ 148 ;flag que inidca que inicio termporizado de led fardo aceptado (verde) temagr equ 149 ;inicializador de temporizador tiefina equ 150 ;indica el estado del temporizador temagr1 equ 151 ;inicializador de temporizador tiefina1 equ 152 ;indica el estado del temporizador outcaja equ 153 bombillo equ 154 gamba equ 155 aceptar equ 156 prolibre equ 856 ;indica cuando el protocolo libre esta activo. ;-------------------------------------------------------------------------------------------------------------------------------------------- ;entradas in0 equ 1 ;esta entrada se utiliza para aceptar el peso in3 equ 3 ;para saber si se reseteo el equipo ;---------------------------------------------------------------------------------------------------------------------------------------------- ;salidas out1 equ 100 ;salida para encender que puede iniciar proceso y que termino proceso valvula equ 104 ;salida para activar valvula neumatica out6 equ 106 ;salida para alarma de peso fuera de tolerancias ;---------------------------------------------------------------------------------------------------------------------------------------------- ;[reg_integers] ch0 equ 110 ;canal analogo 0 basc equ 150 units equ 153 ;auxiliar unidades contadas cont equ 154   ;contador para el rele fin de conversor acontar equ 155 ;unidades a contar fardo equ 156 ;unidades por fardo unidades equ 157 ;total unidades unit equ 158 ;unidades contadas, esta variable la lee labview parcon equ 160 ;parcial conteo parcon1 equ 162 ;para estabilidad parcon2 equ 164 ;para estabilidad acepta equ 168 ;cantidades aceptadas totacep equ 169 ; ework equ 170 fardo1 equ 171 ;(unidades a contar/ fardo) , calcula cuantas contadas tengo que realizar outtole equ 172 ;almacena las veces que hubo fuera de tolerancia lote equ 173 ;lote sscc equ 174 ;sscc anchotx equ 127 ;tamaño del ancho de transmision ;txt equ 175 ;puntero para rotar textos del nombre del producto contxt equ 176 ;puntero para rotar textos del nombre de producto tieapea equ 177 ;inidica el valor del tiempo encendido bombillo verde tieapea1 equ 178 calibra equ 179 ;para que se presione enter dos veces para calibrar linea equ 180 ; Numero de linea orden equ 181 ;Numero de orden D equ 183 h equ 184 r1 equ 194 r2 equ 195 r3 equ 196 r4 equ 197 r5 equ 198 r6 equ 199 r7 equ 200 r8 equ 201 r9 equ 202 r10 equ 203 canalmax equ 1100 ;almacena el valor del canal para retirar caja canalmin equ 1101 canal equ 1102 ;almacena el cero en puntos de conversion despues de calibrar fincon2 equ 1103 ;contador de tiempo de estabilizacion fincon equ 1104 ;fin de conteo contador media fincon1 equ 1105 ;contador desviacion formato equ 1106 ;indica que numero de formato se desea imprimir de dos posibles. txt equ 1107 ;------------------------------------------------------------------------------------------------------------------------------- ;[reg_floats] peso equ 0 ;peso leido directamente del conversor pesof equ 5 ;peso que se muestra en display tara equ 10 ;peso en tara o "caja vacia" pneto equ 11 ;peso neto del producto al final del proceso punit equ 12 ;peso por unidad tole equ 17 ;tolerancia pesprov equ 21 ;peso-provicional.se utiliza para hacer la comparacion y saber si esta en tolerancia producto equ 15 tolmen equ 19 ;peso minimo de la tolerancia tolmax equ 22 ;peso max de la tolerancia rtole equ 23 ; (punit*tolerancia)/ 100 pesofin equ 24 ;suma de pesos para buscar media finflot equ 25 ;numero de muestras en conteo a flotante media equ 26 ;media temdes equ 27 ;desviacion de cada muestra con signo posest equ 28 ;desviacion de cada muestra positivo findes equ 29 ;suma de desviacion desvia equ 31 ;desviacion final peso1 equ 32 ;= a peso para calcular acumulados pesofaux equ 38 ;peso total caja + tara uni equ 40 ;peso/ punit=unidades ultacep equ 43 ;corresponde al ultimo peso estable aceptado barra equ 44 barra1 equ 45 tolmax1 equ 46 tolmen1 equ 47 rtole1 equ 48 pepe equ 406 ;variable aux para inestabilidad setdesv equ 410 ;cuanto se permite en desviacion ret ;-----------------------------------------------------------------------------------------------------------------------------------