;------------------------------------------------------------------------------------------------------------------------------------------------ ;Aplicacion -> Con Mida 14, para la concretera de Almanza en Medellin ;Fecha ->Inicio feb 2 de 2001 ; ;INCLUYE LA DOSIFICACION DE CEMENTO temporizao + AGREGADOS+interupcion+modo manual ;ESTA ES UNA NUEVA VERSION PARA MEJORAR EL PROYECTO REALIZADO PARA ALMANZA ;EN MEDELLIN , ANTERIORMENTE SE UTILIZO UN MIDA 20 ; ; !!!!!!!! O J O !!!!!!!!!!!! funciono la prueba para saber si los cambios con pestol1t funcionan ;osea que estas variables no son necesarias y se puede modificar el valor minimo que se ;puede dosificar ;para mirar mejor el programa en otro pc seleccionar el icono ABC y tamano 12 ;!!!!!!!!!! O J O !!!!!!!! para 2 AGREGADOS ;*************************** C A R A C T E R I S T I C A S ************************************ ;Este fue el que funciono en las pruebas para finalmente montarlo en la cocretera de MEDELLIN ;Para 2 AGREGADOS ;Introduccion por teclado del set de Estabilidad, utilizando las teclas ;Tara para ambas tolvas, para agregados con para Cemento ;Menu de calibracion con teclas ;Menu parametros generales ;PARA AGREGADOS SE ESTA UTILIZANDO TIEMPO **** O J O ***** O J O **** O J O **** ;ULTIMA VERSION REALIZADA EL DIA 18 DE MAYO DE 2001 ;FECHA 12 MAYO 2001 ;esta fue el programa que se envio a Medellin despues de tener el computador en la Oficina ------------------------ ; 28 de julio de 2000 ;----------------------------------------------------------------------------------------------------------------------------------------------- MIDA 14 ;[REG_RELAYS] sie1 equ 300 ;siempre 1 sie0 equ 301 ;siempre 0 tent equ 30 ;tecla enter tcle equ 31 ;tecla clear, con enter calibra tarr equ 32 ;tecla arriba para tarar taba equ 33 ;tecla abajo, con enter parametros ;tara0 equ 356 ;tara bascula 0 ,tara1 equ 357 ;tara bascula1 ;*****--- SALIDAS ****--------- valagr1 equ 100 ; val. agregado 1(100) valagr2 equ 101 ; val agr. 2(101) valcem equ 102 ;val agr (102) valdesc equ 103 ;val descaraga cemento agr (103) valagu equ 104 ; valvula agua valdesa equ 105 ;descarga de agregados ;valadi equ 108 ;valvula descarga aditivo ;arrvan equ 109 ;arranque banda ;arrcom equ 110 ;arranque compresor inirem equ 400 ;flag inicio remoto finbac equ 401 ;flag fin de bache finagr equ 402 ;flag fin agregado temagr equ 403 ;flag de inicio temp.agregado tiefina equ 404 ;flag de fin de temporizacion llepara equ 405 ;flag de que se lleno parcialmente ;si esta en 1 se continua llenando ;por tiempo valagr equ 406 ;valvula agregado finagrto equ 407 ;flag de final de agregado x finagr1 equ 408 ;flag fin agregado 1 finagr2 equ 409 finagr3 equ 410 finagr4 equ 411 fincem equ 412 ;flag fin cemento finagu equ 413 ;flag fin agua temagro equ 415 ;flag que activa temporizador de cierre de valvula en pesaa tiefinao equ 416 ;flga que se activa cuando termina temporizador de cierre de valvula finagrs equ 420 ;Flag que me indica que finalizo dosificacion de AGREGADOS valdesaf equ 421 ;flag que indica que esta cerrada tolva de agre. flag50% equ 423 ;flag de 50% de agua finbac1 equ 424 ;flag fin bache parcial fintoce equ 432 ;flag final total de dosificacion CEMENTO finaxu equ 433 ;flag auxiliar cuando se llama estabilidad en la rutina pesaa ledest equ 332 ;led estabilidad agregados ledestc equ 335 ;led inestabilidad cemento finaxu1 equ 434 ;flag para cuando se llama estabilidad en la rutina pesaa por temporizado debuger equ 798 ;DEBUGER relest equ 435 ;auxiliar estabilidad agregados,igual funcion que ledest taraf equ 438 ;flag para tarar cuando se finalizo de dosificar todos los agregados relestc equ 439 ;reles estabilidad cemento cumple la misma funcion que el led inecem equ 440 ;flag que indica que se llamo estabilidad en cemento tifinace equ 441 ;flag para temporizador de cemento temcem equ 442 ;flag para temporozador de cemento resetval equ 443 set_con equ 444 tifinagr equ 451 ;para el temporizador de la tolva de agregados ; ********* flags para decoder ********** agr1 equ 445 ;para sonido en LV agr2 equ 446 valagr3 equ 447 valagr4 equ 448 fincemlv equ 449 finagulv equ 450 eseeprom equ 799 ;flag para que LV escriba en unos registros normales y mida los escriba en la eeprom ;entradas ************************** banda equ 0 ;entrada que indica que esta encendida la banda compre equ 2 ;entrada que indica que compresor esta encendido manu equ 3 ;entrada modo manual canimpa equ 5 ;entrada impulsos contador agua ;LEDS led118 equ 118 led119 equ 119 led120 equ 120 led121 equ 121 led122 equ 122 led123 equ 123 led124 equ 124 led125 equ 125 led126 equ 126 ;[REG_INTEGERS] bas0 equ 300 bas1 equ 301 valoff equ 301 ;valvula que controla pesaa fincon equ 400 ;numero de muestras en estabi para la media de agregados fincon1 equ 401 ;numero de muestras en estabi para la desviacion en agregados fincon2 equ 402 ;tiempo que dura encendido led estabilidad de agrega parcon equ 403 ;este registro se incrementa para compararlo con fincon(media) parcon1 equ 404 ;de est parcon2 equ 405 ;de est mueagr equ 450 ;muestre cual agregado se esta dosificando impagu equ 452 ;impulsos de agua tieapea equ 453 ;tiempo ape.valvula agragado manval equ 454 ;manejo valvula agreg. subr. manvala puncal equ 460 ;puntos de calibracion en tiempo real en bascula 0 puncal0 equ 461 ;resta de puntos de calibracion menos el cero timest equ 462 ;tiempo para estabilidad conta1 equ 463 ;contador con interrupcion finconc equ 464 ;estabilidad C E M E N T O parconc equ 465 parcon1c equ 466 fincon1c equ 467 parcon2c equ 468 fincon2c equ 469 impagum equ 470 ;impulsos de agua en modo manual totagum equ 471 ;total impulsos de agua en modo manual ;EEPROM ENTEROS tieapea1 equ 1100 ;O J O !!! cambio por que LV no pudo escribir en la eeprom, tiempo apertura valvula agregado 1 tieapea2 equ 1101 ;O J O !!!!tiempo de apertura valvula agre 2 tieapea3 equ 1102 ;O J O !!! tieapea4 equ 1103 ;O J O !!! tieapec equ 1104 ;O J O !!tiempo de apertura para cemento puntcer equ 1105 ;puntos de cero puntcal equ 1106 ;puntos de calibracion temAgre equ 1107 ;registro donde se almacena el valor que tempori de la tolva de agregados ;--------------------------------------------------- tiapea1t equ 700 ;O J O !!! cambio por que LV no pudo escribir en la eeprom, tiempo apertura valvula agregado 1 tiapea2t equ 701 ;O J O !!!!tiempo de apertura valvula agre 2 tiapea3t equ 702 ;O J O !!! tiapea4t equ 703 ;O J O !!! tieapect equ 704 ;--------------------------------------------------------------------------------------------------- ;[REG_FLOATS] peso equ 19 ;variables de est. pesoc equ 0 ; O J O ! ! canal para el cemento no olvidar cambiarlo por 1 ;pesoc equ 74 ;O J O !!!!!!!! solo para pruebas pesofin equ 100 ;peso acumulado de peso para calcular media finflot equ 101 ;numero de muestras para la media este valor se pasa de entero a flotante en est media equ 102 ;valor de la media temdes equ 103 ;auxiliar para calculo de la desviacion en est posest equ 104 ;O J O de est no se esta utilizando findes equ 105 ;auxiliar para calculo de la desviacion en est ;setdesv equ 106 ;parametro que se compara para saber si esta estable (desviacion) desvia equ 107 ;resultado de la desaviacion peso1 equ 108 ;auxiliar para inestabilidad pestot1 equ 20 ;peso que se debe dosificar del agregado 1, lo escribe LV pestot2 equ 21 pestot3 equ 22 pestot4 equ 23 pestotc equ 24 ;peso final cemento lo escribe LV agufin equ 25 ;cantidad que se debe contar de agua escrita po LV adifin equ 26 ;cantidad final aditivo pesacua1 equ 27 ;peso acumulado agre.1 para el pc pesacua2 equ 28 pesacua3 equ 29 pesacua4 equ 30 pestova equ 31 ;peso acumulado de tolva agregado pesacuc equ 32 ;peso acumulado cemento totagu equ 33 ;acumulado de agua totadi equ 34 ;acumulado de aditivo pestova1 equ 36 ;O J O!! suceptible de ser borrado, no se utiliza agu50% equ 37 ;registro 50% de agua pesfin1 equ 38 ;cantidad a dosificar de agregado 1 , dependiendo la capacidad de la tolva pesfin2 equ 39 pesfin3 equ 40 pesfin4 equ 41 pesfinc equ 42 ;cantidad a dosificar de cemento,dependiendo capacidad de la tolva pesmin equ 43 ;valor minimo en la tolva para aceptar como cero pestol1 equ 44 ;peso de tolerancia para agre1 pestol2 equ 45 pestol3 equ 46 pestol4 equ 47 pestolc equ 48 ;peso de tolerancia para cemento pestol1t equ 49 pestol2t equ 50 pestol3t equ 51 pestol4t equ 52 pestolct equ 53 pesminc equ 58 ;peso minimo de cemento para aceptarlo como cero pepe equ 59 ;auxiliar para inestabilidad pesoacu equ 60 ;auxiliar para la rutina pesaa,incrementar el peso y almacenarlo para LV pesoaux1 equ 61 ;estas son auxiliares para incrementar peso y para que LV lea pesoaux2 equ 62 pesoaux3 equ 63 pesoaux4 equ 64 ;------------------------------------------------------------------------------------------------------------------------------------ peso1c equ 65 ;auxiliar para estabili. de cemento pesofinc equ 66 finflotc equ 67 mediac equ 68 findesc equ 69 pepec equ 70 temdesc equ 71 desviac equ 72 setdesvc equ 73 ;***************************************************************************************************** pesfin equ 200 ;peso final de agregado pesoseg equ 201 ;peso seguridad llenado sub.pesaa pesseg equ 202 ;peso seguridad agregados tiapea equ 203 ;tiempo ape.valv.agrgado tolagr equ 204 ;peso tolerancia agragado pestol equ 205 ;peso final - tolerancia impaguf equ 207 ;cantidad impulsos entrada agua en flotante de la entrada puncerf equ 212 ;puntos de calibracion en flotante punresf equ 213 ;puntos de resta para el nuevo cero ;REG_EEPROM pesseg1 equ 401 ;peso seguridad agre.1 lo escrobe LV pesseg2 equ 402 ;lo escribe LV pesseg3 equ 403 pesseg4 equ 404 pessegc equ 405 tolagr1 equ 406 ;tolerancia de peso agregado 1 lo escribeLV tolagr2 equ 407 tolagr3 equ 408 tolagr4 equ 409 tolc equ 410 ;tolerancia para cemento lo escribe LV aguxl equ 411 ;litros por pulso de agua lo escribe LV tolagrmx equ 412 ;peso maximo tolva agregados lo escribe LV tolcemmx equ 413 ;peso maximo tolva cemento lo escribe LV 50% equ 414 ;porcentaje de agua para empezar proceso lo escribe LV pescerf equ 420 ;peso cero en flotante pescalf equ 421 ;peso calibracion en flotante puntcerf equ 422 ;puntos cero en flotante puntcalf equ 423 ;puntos calibracion en flotante fm equ 424 ;factor de calibracion bascula 0 respunf equ 425 ;resta de puntos en flotante setdesv equ 426 ;set D E S V I A C I O N EEPROM ;---------------------------------------------------------------------------------------------------------------------------------- ;----------------------------------------------------------------------------------------- ;[TIM] ;[CNT] ;[NOP] ;TEXTOS agr lite "Inicia agregado." agr1 lite "agre.1" agr2 lite "agre.2" agr3 lite "agre.3" agr4 lite "agre.4" finagre lite "fin_agre" cem lite "Cemen." pescero lite "peso cero" pescali lite "peso calib." litros lite "litros de agua" agrega lite "agregado" desvi lite "Set_desviacion" ;PARAMETROS DE INICIO set sie1 ;axuliar para tara ;Parametros para estabilidad de agregados ************************* movcf 0 stof pesofin ;de est movci 1 ;CHANGE001 stoi parcon ;de est ;CHANGE001 movci 1 stoi parcon1 ;de est ;CHANGE001 movci 60 stoi fincon ;de est numero de muestras para la mediaO J O!!!!!!!(original en 20) movci 60 stoi fincon1 ;de est numero de muestras para desviacionO J O!!!!!!!!(original en 20) movci 500 stoi fincon2 ;de est movrf setdesv stofi temAgre ;---------------------------------------------------------------------------------------------------------------- ;Parametros para inestabilidad de C E M E N T O ***************************************** movcf 0 stof pesofinc ;de est cemento movcf 1 stof parconc ;de est movcf 1 stof parcon1c ;de est ;movcf 0.01 movcf 0.05007 ;factor de desviacion estandar stof setdesvc ;de est FACTOR estabilidad movci 60 stoi finconc ;de est numero de muestras para la mediaO J O!!!!!!!(original en 20) movci 60 stoi fincon1c ;de est numero de muestras para desviacionO J O!!!!!!!!(original en 20) movci 500 stoi fincon2c ;de est ;---------------------------------------------------------------------------------------------------------------------------------------------- movci 0 stoi bas0 movci 1 stoi bas1 movcf 0 stof 213 reset finagrto reset finagr1 reset finagr2 reset finagr3 reset finagr4 reset fincem reset finagu reset finagulv ;fin agua para sonido reset inirem reset temagr reset llepara reset temagro reset finagrs reset fintoce ;fin total de cemento reset 445 reset 446 reset 447 reset 448 reset 449 reset finbac reset set_con movci 0 stoi canimpa movci 0 stoi impagu movcf 0 stof totagu movcf 0 stof pesacua1 movcf 0 stof pesacua2 movcf 0 stof pesacua3 movcf 0 stof pesacua4 movcf 0 stof pestova1 movcf 0 stof pestova ;------------------------------------------------------------------------------------------------ movcf 0 stof pesoaux1 ;auxiliar movcf 0 stof pesoaux2 movcf 0 stof pesoaux3 movcf 0 stof pesoaux4 setri impaguf 0 movcf 0 stof pesacuc ;------------------------------------------------------------------------------------------------- ;VARIABLES TEMPORALES PARA PRUEBA ;call seteo ;hace un llamado a rutina de seteo, unicamente para pruebas ;------------------------------------------------------------------------------------------------- movci 1 stoi mueagr movcf 0 stof pesfin movcf 0 stof pesfin1 movcf 0 stof pesfin2 movcf 0 stof pesfin3 movcf 0 stof pesfin4 movcf 0.6 stof pesmin ;peso minimo para aceptar que termino agregado movcf 0.6 stof pesminc movcf 0 stof pesoacu movcf 0 stof pesfinc movcf 5 stof pestol1t movcf 5 stof pestol2t movcf 5 stof pestol3t movcf 5 stof pestol4t ;************************-------------------------------------------------------------------- ;RUTINA AUXILIAR ;llama rutina que pasa el valor de un reg_float eeprom a un registro normal ;******************--------------------**********************----------------------------- ;************************************************************************************************************ ;************************************ PROGRAMA PRINCIPAL ********************************************** ;************************************************************************************************************ ini1 ld manu ;salto a MODO M A N U A L jnz manual ;salta a cuenta litros en modo manual reset resetval reset led118 ;tecla F1 reset led119 ;F2 reset led120 ;F3 reset led121 ;F4 reset led122 ;F4 reset led123 ;F4 reset led124 ;F4 reset led125 ;F4 reset led126 reset finagr1 ;reset de los finales de agregados reset finagr2 reset finagr3 reset finagr4 reset led118 call disp0 ld inirem jz ini ld finagrs jnz ini call tar0 set led118 ;------------------------------------------------------------------------------------------------------------------------------------- ;Recalculo de la tolerancia, dependiendo del nuevo valor obtenido del pesototal a dosificar - lo dosificado ;-------------------------------------------------------------------------------------------------------------------------------------- movrf pestot1 movrf tolagr1 mulf stof pestol1 movrf pestot2 movrf tolagr2 mulf stof pestol2 movrf pestot3 movrf tolagr3 mulf stof pestol3 movrf pestot4 movrf tolagr4 mulf stof pestol4 ;---------------------------------------------------------------------------------------------------------------------------------------------------- ;Rutina para saber si lo que hace falta de cada agregado es menor a un valor minimo(pestolxt) que se puede dosificar, ;limitante de la parte mecanica.Si valor que hace falte por dosificar(pesototX) es mayor a este valor minimo pregunta si ;cabe en la tolva(tolagrmx), si este valor es mayor a la tolva de agregados se envia dosificar el valor de la tolva de ;agregados, si el peso es menor a la capacidad de la tolva se envia a dosificar este valor de peso (pesototX) ;------------------------------------------------------------------------------------------------------------------------------------------------------ movrf pestot1 movrf pestol1t cplef ini1_2 ;salto a dosificar agregado 2 movrf pestot1 movrf tolagrmx subf movrf pesmin cpgef ini1_12 ini1_1 movrf pestot1 stof pesfin1 movcf 0 stof pesfin2 movcf 0 stof pesfin3 movcf 0 stof pesfin4 jmp ini ini1_12 movrf tolagrmx stof pesfin1 movcf 0 stof pesfin2 movcf 0 stof pesfin3 movcf 0 stof pesfin4 jmp ini ini1_2 movrf pestot2 movrf pestol2t cplef ini1_3 movrf pestot2 movrf tolagrmx subf movrf pesmin cpgef ini1_22 ini1_21 movrf pestot2 stof pesfin2 movcf 0 stof pesfin1 movcf 0 stof pesfin3 movcf 0 stof pesfin4 jmp ini ini1_22 movrf tolagrmx stof pesfin2 movcf 0 stof pesfin1 movcf 0 stof pesfin3 movcf 0 stof pesfin4 jmp ini ini1_3 movrf pestot3 movrf pestol3t cplef ini1_4 movrf pestot3 movrf tolagrmx subf movrf pesmin cpgef ini1_32 ini1_31 movrf pestot3 stof pesfin3 movcf 0 stof pesfin1 movcf 0 stof pesfin2 movcf 0 stof pesfin4 jmp ini ini1_32 movrf tolagrmx stof pesfin3 movcf 0 stof pesfin1 movcf 0 stof pesfin2 movcf 0 stof pesfin4 jmp ini ini1_4 movrf pestot4 movrf pestol4t cplef ini movrf pestot4 movrf tolagrmx subf movrf pesmin cpgef ini1_42 ini1_41 movrf pestot4 stof pesfin4 movcf 0 stof pesfin1 movcf 0 stof pesfin2 movcf 0 stof pesfin3 jmp ini ini1_42 movrf tolagrmx stof pesfin4 movcf 0 stof pesfin1 movcf 0 stof pesfin2 movcf 0 stof pesfin3 jmp ini ;--------------------------------------------------------------------------------------------------------------------------------- ;Rutina de parametros de la tolva, calibracion, tara, cambio del set de inestabilidad, ;--------------------------------------------------------------------------------------------------------------------------------- ini reset 333 ;mirar cual es en el mida 64 call disp0 set 333 ld tent ld tcle andld jz ini0 call cal ;rutina cal tent+tcle ini0 ld tent ld taba andld jz cam_reg call par ;rutina par tent+taba ;---------------------------------------------------------------------------------------------------------------------------------------------- ;pulsando al tiempo las teclas CLEAR y ARRIBA se puede cambiar el parametro del set de desviacion y asi ;poder modificar la calidad de la estabilidad ;rutina para cambiar el valor del setdesviacion ;------------------------------------------------------------------------------------------------------------------------------------------------ cam_reg ld tcle ;CLEAR ld tarr ;ARRIBA andld jz ini2 clear disl desvi com 0 movrf setdesv ;movcf 10 ;divf stof 300 clear disrf 300 40 com 1 inf 2 0 stof setdesv movrf setdesv stofi temAgre ;movrf setdesv ;movcf 10 ;mulf ;stof setdesv ;------------------------------------------------------------------------------------------------------------------------ ini2 ;ld tara0 ld tent ld sie1 andld jz ini3 call tar0 ;rutina tar bas disrf 0 62cula0 ini3 ;ld tara1 ld tcle ld sie1 andld jz ini4 func 7 bas1 ; call tar1 ;rutina tar bascula1 ini4 ld inirem ;REGISTRO REMOTO EN 1 jz ini1 ;************************************************************************************************** ;*********** rutina para DOSIFICACION DE A G U A ********************************************* ;Para poder iniciar el proceso en automatico, y despues de recibir el inicio remoto la banda y el compresor ;deben estar encendidos por el operario de forma manual, el MIDA no se encarga de activar estos elementos ;La rutina de contador de agua funciona utilizando la entrada C E R O , en forma de INTERRUPCION de modo que ;no importa endonde este el programa simpre realizara el conteo. ;para iniciar la dosificacion de agregados se debe haber terminado el 50% de agua, siendo este parametro cambiable ;desde LV, escribiendo el registro EEprom 5018, osea se puede cambiar para que inicie al haber terminado cierta ;cantidad de agua. ;***************************************************************************************************** ld banda ;condiciones para empezar proceso and compre ;BANDA + COMPRESOR jz ini1 movrf agufin movcf 1 cplef ini44 ld set_con ;seteo de parametros de interrupcion de cuenta litros jnz abri_agu ;nuevo setri 104 0 ;nuevo ;movrf agufin ;nuevo ;stofi 107 ;nuevo setri 108 107 ;nuevo set set_con ;nuevo abri_agu ld finagu ;rutina para dosificacion de agua, flag de fin de agua jnz ini1_5 ;si ya termino agua salta a verificar cemento set valagu ;abre valvula agua ini41 movif 104 ;total impulsos ;movif impagu ;mueve este registro, que es incrementado por la interrupcion. stof impaguf ;contador flotante movrf impaguf movrf aguxl ;multipleque por factor de litros x pulso mulf stof totagu ;registro total de agua lo lee el pc ini43 call disp3 movrf totagu ;acumulado del agua dosificada movrf agufin ;registro de agua total viene del pc cpgef ini42 ;pregunta si termino agua, si ya termino salta a cerra valvula movrf agufin movrf 50% ;registro escrito por LV mulf stof agu50% movrf totagu movrf agu50% cplef ini ;salto a cemento si ya cumplio el 50% de agua set flag50% jmp ini1_5 ini42 reset valagu ;cierra valvula porque acabo set finagulv ;para sonido en LV ini44 set finagu ;flag de fin de agua en 1 set flag50% reset set_con ;********************************************************************************************************** ;************************** fin rutina dosificacion agua ****************************************************** ;********************************************************************************************************** ;************************ RUTINA C E M E N T O ************************ ini1_5 ld fintoce ;pregunta si ya termino cemento en su totalidad jnz termine ;si termino cemento salta a agregados ld valdesc ;pregunta estado de la valvula de DESCARGA cemento jnz ini1_59 ;si esta abierta salta. ld valcem ;pregunta estado valvula de dosificacion de cemento jnz ini1_52 ;si esta abierta salta ini1_53 movrf pestotc ;carga en pila valor a cargar de cemento movrf tolc ;a este valor le resta la tolerancia mulf stof pestolc ;este es el valor de tolerancia de cemento movrf pestolc movrf tolcemmx ;pregunta si lo que tiene que pesar cabe en la tolva de cemento cplef ini1_51 ;si lo que tiene que pesar <= capa max tolva salta a ini1_51 movrf tolcemmx ;recalcula lo que cabe en la tolva dependiendo la tolerancia movrf tolc mulf stof pestolc movrf pestolc stof pesfinc jmp ini1_52 ini1_51 movrf pestolc ;este es el valor que tiene que dosificar de cemento stof pesfinc ini1_52 ld fincem ;pregunta si ya termino cemento jnz ini1_56 ;salta cuando termine cemento call cemento ;llamado subrutina dosificacion cemento ld fincem jz termine ini1_56 movrf pestotc ; si la valvula de dosificacion cerrada resta del total de cemento movrf pesoc ;el valor del peso de cemento leido de la tolva subf stof pestotc ;calcula lo que queda de cemento reset valcem ;cierra valvula de dosificacion set valdesc ;abre valvula de descarga ini1_59 movrf pesoc ;pregunta por la tolva de agregados descargandoce, si el valor de peso movcf 0.2 ;es menor de 0.2 acepta que termino la descarga cpgf ini1_58 reset valdesc ;cuando el valor es menor a 0.2 apaga valvula de descarga movrf pestotc ;compara valor total de cemento con el valor minimo movrf pesminc ; como aceptado como cero despues de restar las bachadas cplef ini1_57 ; reset fincem ;reset fin de cemento parcial para la subrutina jmp ini1_53 ini1_58 reset valcem set valdesc jmp termine ini1_57 reset valcem ; reset valdesc movcf 0 stof pestotc set fintoce ;setea fin de cemento T O T A L set 449 ;fin cemento para sonido lv ;*********************************************************************************************************** ;************************ fin rutina pesaje de cemento ******************************************************* ;------------------------------------------------------------------------------------------------------------------------------------------------------ ;rutina para saber si termino el bache de agregados------- en esta rutina se muestran los valores totales que se ;dosificaron de cada agregado, si se termino con agregados TARA para no mostrar valores negativos en el Display ;si finagrs(fin agregados) esta en 1 salta a bache para saber si ya termino el bache termine ld finagrs jnz ini_35 jmp ini_36 ini_35 ld taraf jnz bache ;salta a mirar si ya termino bache movrf pesoaux1 stof pesacua1 movrf pesoaux2 stof pesacua2 movrf pesoaux3 stof pesacua3 movrf pesoaux4 stof pesacua4 call tar0 ;O J O!!! Resetear para que se quede pegada la tara set taraf jmp bache ;para saber el estado del bache ini_36 ld finagr1 ;pregunta si ya termino los agregados si termino salta ld finagr2 ;abrir la tolva de agre. andld out 470 ;O J O !!!!!!!!!!!!!!!!!! ld 470 ;O J O !!!!!!!!!!!!!!!! ld finagr3 andld out 471 ;O J O !!!!!!!!!!!!!!! ld 471 ;O J O !!!!!!!!!!!!!! ld finagr4 andld out 472 ;O J O !!!!!!!!!!!! ld 472 ;O J O !!!!!!!!!!!! ld flag50% andld out finbac1 ld valdesaf jnz ini14_5 ld finbac1 jz ini6 ;fin rutina para saber si termino el bache********************************** ini14 nop movrf pestot1 movrf pestol1t cplef ini14_11 movrf pestot1 movrf pesoacu ;movrf pesfin1 subf stof pestot1 jmp ini14_5 ini14_11 movcf 0 stof pesfin1 ini14_2 movrf pestot2 movrf pestol2t cplef ini14_21 movrf pestot2 movrf pesoacu ;movrf pesfin2 subf stof pestot2 jmp ini14_5 ini14_21 movcf 0 stof pesfin2 ini14_3 movrf pestot3 movrf pestol3t cplef ini14_31 movrf pestot3 movrf pesoacu ;movrf pesfin3 subf stof pestot3 jmp ini14_5 ini14_31 movcf 0 stof pesfin3 ini14_4 movrf pestot4 movrf pestol4t cplef ini14_41 movrf pestot4 movrf pesoacu ;movrf pesfin4 subf stof pestot4 jmp ini14_5 ini14_41 movcf 0 stof pesfin4 ;abre valvula de tolva de agregados************************************************************ ;************ DESCARGA TOLVA A G R E G A D O S ************************************* ini14_5 set valdesa movrf 1 movcf 0.1 ;para prueba local cplef final1 set valdesaf movrf 1 stof pestova jmp ini final1 reset valdesa reset valdesaf ;------------------------------------------------------------------------------------------------------------------------------------------------------ ;en esta parte del programa se setea la cantidad minima a dosificar o sea no podemos asegurar poder dosificar 1 kilo ;etc, ademas de preguntar si ya se termino de dosificar los agregados. movrf pestot1 movcf 5 ;valor minimo a dosificar 5 KILOS cplef otro1 ;en esta parte del programa se setea la cantidad minima a dosificar jmp final otro1 set 445 movrf pestot2 movcf 5 ;OJO este vaor era 0 cplef otro2 jmp final otro2 ;set finagr1 set 446 movrf pestot3 movcf 5 cplef otro3 jmp final otro3 set 447 movrf pestot4 movcf 5 cplef otro4 jmp final otro4 set 448 set finagrs final jmp ini1 :---------------------------------------------------------------------------------------------------------------------------------------------- ;************ inicio rutina pesaje de agregado 1 **************** ini6 ld finagr1 ;pregunta si ya termino agre. 1 si ya termino salta a mirar jnz ini7 ;agregado 2 movrf pesfin1 ;nuevamente pregunta si el peso enviado por LV fue cero movcf 0 ;si es cero salta a agre. 2. Si no dosifica agre. 1 cpgf ini6_11 set finagr1 jmp ini7 ini6_11 setri mueagr 1 movci 1 ;le dice que es la valvula 1 stoi manval movrf pesfin1 ;almacena lo que tiene que pesar de agre. 1 en la variable stof pesfin ;pesfin que es de subrutina pesaa movrf pesseg1 ;5000 estos registros estan en porcentaje movrf pesfin ;calculo de la tolerancia mulf stof pesseg ;peso de seguridad en kilos 202 movri tieapea1 stoi tieapea movrf tolagr1 stof tolagr movrf pesfin movrf tolagr mulf stof pestol ;peso de tolerancia reset led123 ;reset 328 ;;O J O !!!!!!!!!!!! call disp0 call pesaa ;llama subrutina para disificar agregado ld finagrto ;pregunta si ya termino agre. 1 jz ini6_13 movrf pesoacu movrf pesoaux1 addf stof pesoaux1 movrf pesoaux1 ;movcf 0 ;stof pesoacu ini6_12 call tar0 ini6_13 ld finagrto out finagr1 reset finagrto set led123 ;set 328 ; movrf 1 ;O J O!!!!!!! stof pesacua1 movrf 1 stof pestova ;************** fin rutina agregado 1***************************************************************** -------------------------------------------------------------------------------------------------------------------------------------------- ;***************** inicio rutina pesaje de agregados 2 **************** ini7 ld finagr2 ;408 jnz ini8 movrf pesfin2 ;20 movcf 0 cpgf ini7_11 set finagr2 jmp ini8 ini7_11 setri mueagr 2 movci 2 stoi manval movrf pesfin2 ;20 stof pesfin ;200 movrf pesseg2 ;5000 estos registros estan en porcentaje movrf pesfin mulf stof pesseg ;peso de seguridad en kilos 202 movri tieapea2 stoi tieapea movrf tolagr2 stof tolagr movrf pesfin movrf tolagr mulf stof pestol ;peso de tolerancia reset led124 ;reset 329 call disp0 call pesaa ld finagrto jz ini7_13 movrf pesoacu movrf pesoaux2 addf stof pesoaux2 movrf pesoaux2 ini7_12 call tar0 ini7_13 ld finagrto out finagr2 reset finagrto set led124 ;set 329 movrf 1 ;O J O!!!!!!! stof pesacua2 movrf 1 stof pestova ;************** fin rutina agregado 2********************************************************** ;-------------------------------------------------------------------------------------------------------------------------------------------------- ;****************** inicio rutina pesaje de agregados 3 **************** ini8 ld finagr3 jnz ini9 movrf pesfin3 ;20 movcf 0 cpgf ini8_11 set finagr3 jmp ini9 ini8_11 setri mueagr 3 movci 3 stoi manval movrf pesfin3 ;20 stof pesfin ;200 movrf pesseg3 ;5000 estos registros estan en porcentaje movrf pesfin mulf stof pesseg ;peso de seguridad en kilos 202 movri tieapea3 stoi tieapea movrf tolagr3 stof tolagr movrf pesfin movrf tolagr mulf stof pestol ;peso de tolerancia reset led125 ;reset 330 call disp0 call pesaa ld finagrto jz ini8_13 movrf pesoacu movrf pesoaux3 addf stof pesoaux3 movrf pesoaux3 ini8_12 call tar0 ini8_13 ld finagrto out finagr3 reset finagrto set led125 ;set 330 movrf 1 ;O J O!!!!!!! stof pesacua3 movrf 1 stof pestova ;***************** fin rutina agregado 3********************************************************** ;-------------------------------------------------------------------------------------------------------------------------------------- ;****************** inicio rutina pesaje de agregados 4 **************** ini9 ld finagr4 jnz ini movrf pesfin4 ;20 movcf 0 cpgf ini9_11 set finagr4 jmp ini ini9_11 setri mueagr 4 movci 4 stoi manval movrf pesfin4 ;20 stof pesfin ;200 movrf pesseg4 ;5000 estos registros estan en porcentaje movrf pesfin mulf stof pesseg ;peso de seguridad en kilos 202 movri tieapea4 stoi tieapea movrf tolagr4 stof tolagr movrf pesfin movrf tolagr mulf stof pestol ;peso de tolerancia reset led126 ;reset 331 call disp0 call pesaa ld finagrto jz ini9_13 movrf pesoacu movrf pesoaux4 addf stof pesoaux4 movrf pesoaux4 ini9_12 call tar0 ini9_13 ld finagrto out finagr4 reset finagrto set led126 ;set 331 movrf 1 ;O J O!!!!!!! stof pesacua4 movrf 1 stof pestova jmp ini ;*********** fin rutina agregado 4********************************************************** end ;********************************************************************** ; ***************************Subrutinas ****************************** ;********************************************************************** cal func 8 0 ret par func 9 1 ret disp3 clear disrf totagu 61 com 2 ret disp0 call pesar clear disrf peso 62 com 1 clear disrf pesoc 62 com 0 ret ;********* D O S I F I C A C I O N D E A G R E G A D O S ************************************* ;------------------------------------------------------------------------------------------------------------------------------------------ pesaa ld finaxu ;salto a estabilidad jnz sigaa52 ld finaxu1 ;salto estabilidad cuando apertura de valvulas es temporizado jnz sigaa51 ld temagro ;flag que me indica que esta temporizando jnz sigaa4 ;salto a temporizador de apertura de valvula ld llepara ;bandera que indica que esta dosificando por temporizado jnz sigaa1 ;si ya lleno parcial,llene con tiempo reset finagrto call manvala ;rutina que sabe cual valvula debe abrir set valagr ;abre valvula indicada por la rutina manvala call pesar ;rutina peso agregados call disp0 ;rutina de display movrf peso movrf pesseg ;peso seguridad cpgef cieval_1 ;compara peso con peso seguridad ret cieval_1 set finaxu ;flag que indica que se llamo estabilidad sigaa52 call manvala reset valagr ;O J O !!!!!!Cierra valvula y llama estabilidad ;call est ;verifica que no sea un pico call timagre ld led119 ;si es pico retorna jnz sigaa7 ;retorna reset finaxu ;flag para que cuando se llame est y regrese de todo el programa salte a sigaa52 call pesar movrf peso ;compara valor de peso con peso seguridad movrf pesseg cpgef cie_val ;si el peso en menor que seguridad call pesar movrf peso stof pesoacu ret ;no ha llenado siga proceso ojo***** cie_val call manvala reset valagr ;si llega peso seguridad call pesar movrf pestol ;busque peso de tolerancia minima movrf peso cpgef sigaa1 ;si llega a tolerancia set finagrto ;407 reset llepara ;resetea flag de llenado por temporizado reset finaxu ;reset flag de llamado estabilidad cuando peso>pesoseguridad call pesar movrf peso stof pesoacu ret sigaa1 set llepara ;indica que de debe realizar dosificado por temporizado call manvala set valagr ;abre valvula sigaa2 ld temagr ;temporizado de apertura de valvula timr 50 tieapea ;tieapea=tiem.ape.agregado out tiefina ;ya termino? set temagr ld tiefina jnz sigaa3 ret sigaa3 reset valagr ;cierre valvula call manvala sigaa4 ld temagro tim 51 50 ;temporizador para que cierra valvula 5 seg out tiefinao set temagro ld tiefinao jnz sigaa5 ;si no ha terminado de temporizar salta a ret ret sigaa5 call pesar movrf pestol ;busque peso de tolerancia minima movrf peso ;peso leido del registro cero cpgef sigaa6 ;si llega a tolerancia set finaxu1 ;flag que indica llamado estabilidad en la dosificacion por temporizado sigaa51 call manvala reset valagr ;oJo!! no estaba originalmenet ;call est ;llama rutina de estabilidad call timagre ld led119 ;pregunata por inestabilidad jnz sigaa7 ;si existe inestabilidad salta a RET set finagrto ;setea flag fin de dosificacion del elemento correspondiente reset finaxu1 ;reset flag llamado d estabilidad en dosificacion por tiempo. call pesar movrf peso ;lee el peso despues de estabilizado el sistema y lo almacena stof pesoacu reset llepara ;hace reset del flag de llenado por temporizado reset finaxu1 ;reset flag de llamado estabi. en la dosifica. por temporizado sigaa6 reset tiefina ;reset de flags de temporizadores reset temagr reset temagro reset tiefinao sigaa7 ret ;retorno de subrutina ;********************* F I N rutina agregados *************************************************** ;rutina E S T A B I L I D A D A G R E G A D O S ****************************************************** ;-------------------------------------------------------------------------------------------------------------------------------------------------- ;est ;rutina para buscar la media ;iniest ;movrf 0 ;movif 111 ;canal analogo 1 ;stof peso1 ;call disp0 ;movrf pesofin ;movrf peso1 ;addf ;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 ;movrf pesofin ;movrf finflot ;divf ;valor medio ;stof media ;fin rutina de 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 desviacion ;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 relest ; O J O !!! Cambio ;reset led119 ;reset ledest ;jmp iniest5 ;iniest4 set relest ;O J O !!!! Cambio ;set led119 ;set ledest ;call disp3 ;movri parcon2 ;contador y comparador ;movci 1 ;;addi ;stoi parcon2 ;movri parcon2 ;movri fincon2 ;;cplei iniest4 ;movci 1 ;stoi parcon2 ;iniest5 ret ;fin rutina de compaacion ;************* F I N rutina ESTABILIDAD AGREGADOS *************************************** ;rutina E S T A B I L I D A D C E ME N T O ****************************************************** ; ;estc ;rutina para buscar la media ;iniestc ;movrf 0 ;movif 111 ;leo el valor del conversor ;stof peso1c ;se almacena en variable auxiliar ;call disp0 ;llamado display ;movrf pesofinc ;mueve peso fin que inicia en cero ;movrf peso1c ;mueve el valor leido del conversor ;addf ;stof pesofinc ;suma de pesos ;movif finconc ;numero de muestras para calcular media ;stof finflotc ;conversion de entero a flot numero muestras ;movri parconc ;contador y comparador ;movci 1 ;addi ;stoi parconc ;contador de muestras empieza en 1 ;movri parconc ;movri finconc ;compara si contador es igual a numerode muestras ;cplei iniestc ;si no termino salta al inicio de est ;movrf pesofinc ;mueve peso que es un valor acumulado de peso ;movrf finflotc ;divide el total acumulado por el numero de muestras ;divf ;valor medio ;stof mediac ; M E D I A ;fin rutina de media ; rutinas de reseteo ;movcf 0 ;setea el contador en cero ;stof pesofinc ;movci 1 ;resetee el contador ;stoi parconc ;movcf 1 ;stof findesc ; fin rutinas de reseteo ; rutina para desviacion ;iniest1c movif 111 ;valor del conversor ;stof pepec ;variable auxiliara para incrementar ;movrf pepec ;movrf mediac ;valor del conversor - media ;subf ; stof temdesc ;resta que de la desviacion ;movrf temdesc ;movrf temdesc ;mulf ;stof temdesc ;parentesis al cuadrado ;movrf temdesc ;movrf findesc ;addf ;stof findesc ;SUMATORIAS DE LOS PARENTESIS ;movri parcon1c ;contador y comparador ;movci 1 ;addi ;stoi parcon1c ;movri parcon1c ;movri fincon1c ;cplei iniest1c ;movci 1 ;resetee el contador ;stoi parcon1c ;;movrf findesc ;movrf finflotc ;divf ;stof desviac ;D E S V I A C I O N calculo de desviacion ; fin rutina desviacion ; inicio rutina de comparacion determina si esta estable ;movrf desviac ;movrf setdesvc ;cpgef iniest4c ;busca el maximo ;movrf setdesvc ;movrf desviac ;cplef iniest4c ;busca el minimo ;reset relestc ; O J O !!! Cambio ;reset ledestc ;led tecla F16 ;jmp iniest5c ;iniest4c set relestc ;O J O !!!! Cambio ;set ledestc ;led tecla F16 ;call disp3 ;movri parcon2c ;contador y comparador ;movci 1 ;addi ;stoi parcon2c ;movri parcon2c ;movri fincon2c ;cplei iniest4c ;movci 1 ;stoi parcon2c ;iniest5c ret ;fin rutina de compaacion ;fin rutina estabilidad C E M E N T O ***************************************************** ; inicio rutina manejo valvulas agregado *********************** manvala movri manval movci 1 cpei man1 jmp man10 man1 ld valagr out valagr1 man10 movri manval movci 2 cpei man2 jmp man20 man2 ld valagr out valagr2 man20 movri manval movci 3 cpei man3 jmp man30 man3 ld valagr out valagr3 ;cambio junio 14 man30 movri manval movci 4 cpei man4 jmp man40 man4 ld valagr out valagr4 man40 ret pesar movrf 1 movrf 213 subf stof peso ret tar0 movrf 1 stof 213 ret ;***************************************************************************************** ; R U T I N A D E DOSIFICACION C E M E N T O ;****************************************************************************************** cemento ld temcem jnz timcem reset fincem reset valdesc set valcem call disp0 ;RUTINA PESO AGREGADOS movrf pesoc ;O J O Cambiar por peso del canal 1 movrf pesfinc cpgef ce_valce ;si el peso en menor que seguridad ret ;no ha llenado siga proceso ojo***** ce_valce reset valcem ;si llega peso seguridad ;temporizado opcional ********************** timcem ld temcem tim 53 60 ;tieapea=tiem.ape.agregado out tifinace ;ya termino? set temcem ld tifinace jnz sigace3 ret sigace3 reset valcem ;cierro valvula de dosificacion de cemento reset fincem ;reset de fin de cemento, no ha terminado movrf pesoc ;comparo peso despues del tempo movrf pesfinc cpgef sigace4 reset temcem reset tifinace ret sigace4 reset valcem reset temcem reset tifinace set fincem movrf pesoc movrf pesacuc addf stof pesacuc ret ;************************** FIN subrutina cemento *************************************** ;rutina cuenta litros en modo manual ************************* manual ld resetval jnz manual2 reset valagr1 ;ciera todas las valvulas en modo manual reset valagr2 reset valagr3 reset valagr4 reset valdesa reset valcem reset valdesc reset valagu set resetval ;flag para que apague todo cuando entra a mual manual2 set led118 ;tecla F1 set led119 ;F2 set led120 ;F3 set led121 ;F4 set led122 ;F4 set led123 ;F4 set led124 ;F4 set led125 ;F4 set led126 ;F4 clear disrf 0 62 com 0 clear disrf 1 62 com 1 ld tent jz tarman0 func 7 bas0 tarman0 ld tcle jz cal0 func 7 bas1 cal0 ld tarr jz lit movci 0 stoi impagum lit flanc 4 1 ;flanco en la entrada digital 1 jz manual1 inc impagum 1 ;incremente contador de impulsos manual1 movif impagum movrf aguxl mulf stof totagum ;registro total de agua lo lee el pc clear disrf totagum 30 com 2 jmp ini1 ;fin rutina ciżuanta litros modo manual ******************************* ;cuenta litros por I N T E R R U P C I O N por software ************************* ;INTER ;ld inirem ;si no hay inicio remoto no cuenta ;jz eti2 ;inc impagu 1 ;detecta pulso en la entrada cero, incrementa en 1 impagu ;eti1 ;iret ;eti2 ;movci 0 ;setea impagu para que siempre inicie en cero ;stoi impagu ;setri 104 0 ;O J O !!!!!!!!!!!!!!!! ;iret ;end_inter ;fIN cuenta litros por I N T E R R U P C I O N ************************* ;********************* estado del B A C H E ************************ bache ld finagrs ;estado bacge agregados and fintoce ;estado del bache de cemento and finagu ;estado bache de agua out finbac jmp ini1 ;fin bache O J O!!!!!! se puede hacer saltar a ini ya que cuando salta aqui ;se ha terminado agregados. ;********************************************************************************************************** ;***************************** R U T I N A S P A R A P R U E B A S ************************************* ;********************************************************************************************************** seteo movcf 1 stof aguxl ;valor de cada pulso del cuentalitros movcf 0.9 stof pesseg1 ;factor de seguridad para agregado 1 movcf 0.9 stof pesseg2 movcf 0.9 stof pesseg3 movcf 0.9 stof pesseg4 movcf 0.95 stof tolagr1 ;tolerancia para agre. 1 movcf 0.95 stof tolagr2 movcf 0.95 stof tolagr3 movcf 0.95 stof tolc ;tolerancia para cemento movcf 0.95 stof tolagr4 movci 30 ;tiempo apertura agre 1 stoi tieapea1 movci 10 stoi tieapea2 movci 10 stoi tieapea3 movci 10 stoi tieapea4 movcf 10 stof tolagrmx movcf 10 stof tolcemmx ;peso maximo tolva cemento lo escribe LV movcf 0.5 stof 50% movcf 50 stof agufin movcf 20 stof pestot1 movcf 11 stof pestot2 movcf 11 stof pestotc ret debug set debuger debug1 ld debuger jnz debug1 ret ;FIN RUTINAS DE PRUEBAS ;********************************************************************************************************* ;*********** rutina de tiempo para agregados ****************************************** timagre ld 119 ;pregunta si led de inicio de temporizacion esta encendido timr 54 temAgre ;tiempo en que verifica el peso: 5 segundos out tifinagr ;el resultado del temporizador se refleja en el rele tifinagr set 119 ;seteo el temporizador ld tifinagr ;bandera que significa que termino de temporizar jnz sigagre3 ;si no ha terminado de temporizar sale de aqui a verificar el resto ret ;del programa,cuando termina salta y resetea el temporizador sigagre3 reset 119 ;reseteo temporizador para que vuelva a contar cuando sea llamado reset tifinagr ret ;*********** fin rutina tiempo para agregados ***************************************************