;------------------------------------------------------------- ;Aplicación -> funcion de inhred ;Fecha -> julio 17 2003 ;listado subrutinas ;redon, funcionamiento trans en normal con presencia de red ;plaon,entrada de planta 1 y control funcionamiento ;plaof, salida planta1 ;horo, horometros ;sali,control salidas digitales ;even,eventos a db y alarmas ;sema, arranque semanal ;tempo, temporizador general ;ala, errores ;muti, lectura multitek ;------------------------------------------------------------- mida 64 scan equ 399 ;programa principal--------------------------------------- &ini ld scan jz &lea jmp ini &lea call &leavar ini call plc call vol ini0 ld vigrm ;cuando se reinicicia entra a ini00 xor vigrma ;inicia en reset out vigrmb ld vigrmb ;cambio vigrm ??????? jnz ini00 jmp ini1 ini00 ld vigrm ;cuando cambia vigrm entra aqui out vigrma clear disl carel com 0 call ala call even call horo ld vigrm ;hay red? jnz ini01 jmp ini02 ini01 call redon ;si hay red call caled call apapla jmp ini03 ini02 call plaon ;no hay red call caled ini03 jmp fin ini1 call caled ;no cambio vigilante de red!!!!! ld vigrm jnz ini10 jmp ini11 ini10 clear disl estared ;aviso de red estable com 0 ini11 ld vig1m ;si planta 1 encendida jnz ini12 jmp ini13 ini12 movci 1 stoi 600 movci 195 stoi 607 ;call muti ini13 ld vig2m ;si planta 2 encendida jnz ini14 jmp ini141 ini14 movci 2 stoi 600 movci 240 stoi 607 ;call muti ;pertenece a sema una vez arranca una prueba semanal ;no permite otro hasta que cambie el dia !!! ini141 ld vigrm or vig1m or vig2m jz ini142 jmp ini15 ini142 jmp ini00 ini15 movri diasema ;si cambio el dia.... movri diat cpei ini16 reset auxsemad ;permite entrar nuevamente a sema ini16 movri 45 ;actualiza el dia en diat para sema stoi diat setri temgeni 10 call tempo call horo call moto call sema call plc call apapla call ala fin end ;------------------------------------------------------------------------- ;vol mide voltjes en entradas analogas vol movif 60 movrf volta1 mulf stof voltr movif 61 movrf volta2 mulf stof volts movif 62 movrf volta2 mulf stof voltt volf ret ;=================================================================== uno clear disl unol com 0 ld 340 jz uno unof ret dos clear disl dosl com 0 ld 341 jz dos dosf ret tres clear disl tresl com 0 ld 342 jz tres tresf ret cuatro clear disl cuatrol com 0 ld 343 jz cuatro cuatrof ret ; setri temgeni 20 ; call tempo ;======================================================================== ;plc monitor de errores del plc========================== plc ld vigplcm jnz plc1 jmp plc2 plc1 reset saliplc jmp plcf plc2 set saliplc plcf ret ;caled, cambio en leds----------------------------- caled ld manaut out ledf4 ;manaut ld conrm ;actualiza led panel out ledf5 ld con1m out ledf6 ld con2m out ledf7 ld vigrm out ledf9 ld vig1m out ledf10 ld vig2m out ledf11 ld salipar and saliala ;de ala and saliplc ;de plc and salimot ;de moto out ledf12 ;salipar ld pla1c out ledf13 ld pla2c out ledf14 caledf ret ;ala alarmas============================================ ala call caled ld manaut ;cambio manaut? xor manauta out manautb ld manautb ;si cambio... jnz alaa jmp ala0 alaa ld manaut ;entro aqui cuando cambio... out manauta alab ld manaut ;es manual o auto ? jz alaba jmp alac alaba call caled ;manual...... set alama reset saliala ;deshabilita sali call sali clear disl manautl com 0 jmp alab alac reset alama set saliala ;habilita sali call sali ala0 ld mot2d ;moto2 se disparo jnz ala0a jmp ala0b ala0a set alamot ;prenda alarma jmp ala0c ala0b reset alamot ;se restauro moto2 ala0c ld mot0d ;moto1 o 0 se disparo? or mot1d jnz ala00 jmp ala03 ala00 ld conrct ;si.....guarde estados de contac out conrctt ld con1ct out con1ctt ld con2ct out con2ctt ala01 reset conrct ;resetee contactors reset con1ct reset con2ct call sali ala010 ld mot0d ;se restauraron moto 1 o 0? or mot1d outnt aux5 ld aux5 jnz ala02 set alamot ;dispare alarma clear disl erromot ;!!! ojo !!! queda en loop com 0 jmp ala010 ala02 ld conrctt ;si....rstaure los estados iniciales de cont out conrct ld con1ctt out con1ct ld con2ctt out con2ct call sali reset alamot ;resetee alarma ala03 ld prump ;no entraron plantas? jnz ala1 jmp ala2 ala1 clear ;no entraron..... disl alar com 0 set alaplat set alapla set apaplat reset pla1ct reset pla2ct call sali call caled ld vigrm or vig1m or vig2m ;!!!! ojo !!!! es temporal...que hago? jz ala1 ala2 reset prump ;reseteo entrada plantas reset alapla reset alaplat ala3 alaf ret ;even eventos============================================ ;parametros para even1 ;eveni fin de calculo=0 se reinicia ;event direccion memoria even clear disl guevl com 0 movci 0 ;reinicia eveni (respuesta final) stoi eveni movci 0 ;mueve registro que se quiere leer 0-7 stoi event call even1 ;corre subr para leer bit a bit movri eveni stoi even0e guarda resultados de los 8 bits movci 0 stoi eveni movci 8 ;8-15 stoi event call even1 movri eveni stoi even7e movci 0 stoi eveni movci 1000 ;1000-1007 stoi event call even1 movri eveni stoi even10e movci 0 stoi eveni movci 1008 ;1008-1014 stoi event call even1 movri eveni stoi even18e movci 0 stoi eveni movci 1100 ;1100-1107 stoi event call even1 movri eveni stoi even31e movci 0 stoi eveni movci 1108 ;1108-1115 stoi event call even1 movri eveni stoi even38e movci 0 stoi eveni movci 100 ;100-107 stoi event call even1 movri eveni stoi even100e movci 0 stoi eveni movci 108 ;108-115 stoi event call even1 movri eveni stoi even108e write 0 1 clear disri 50 4 com 3 evenf ret ;even1 temporal de event ciclico=========================== even1 movci 0 stoi even1i movci 0 stoi even2i movci 0 stoi even3i movci 0 stoi even4i movci 0 stoi even5i movci 0 stoi even6i movci 0 stoi even7i movci 0 stoi even8i ldx event jnz even2 jmp even3 even2 movci 1 ;guarda valor de 2 a la n stoi even1i even3 inc event 1 ldx event jnz even4 ;el bit es uno? jmp even5 even4 movci 2 ;guarda el 2 a la n en registro stoi even2i even5 inc event 1 ldx event jnz even6 jmp even7 even6 movci 4 stoi even3i even7 inc event 1 ldx event jnz even8 jmp even9 even8 movci 8 stoi even4i even9 inc event 1 ldx event jnz even10 jmp even11 even10 movci 16 stoi even5i even11 inc event 1 ldx event jnz even12 jmp even13 even12 movci 32 stoi even6i even13 inc event 1 ldx event jnz even14 jmp even15 even14 movci 64 stoi even7i even15 inc event 1 ldx event jnz even16 jmp even17 even16 movci 128 stoi even8i even17 movri even1i ;suma todos los registros movri even2i addi stoi eveni movri eveni movri even3i addi stoi eveni movri eveni movri even4i addi stoi eveni movri eveni movri even5i addi stoi eveni movri eveni movri even6i addi stoi eveni movri eveni movri even7i addi stoi eveni movri eveni movri even8i addi stoi eveni even1f ret ;tempo temporizador generico para tiempos cortos=============== ;parametros: temgeni=registro valor de tiempo tempo reset auxgen1 reset auxgen2 tempo1 ld auxgen1 timr timgen temgeni out auxgen2 set auxgen1 ld auxgen2 jz tempo1 tempof ret ;moto vigila motorizados================================== ;pareametros camtra=cambio transferencia =1 trans vieja =0 transf nueva moto moto2 ld camtra ;si camtra y camtrat son diferentes o iguales xor camtrat out camtra1 ld camtra1 ;camtra cambio !!!!!!! jnz moto3 jmp motof moto3 ld camtra out camtrat call redon ;primero entra la red ld camtra jnz moto4 ;camtra es 1 entra frasf vieja jmp moto5 ;camtra es 1 entra frasf nueva moto4 clear ;tranf vieja disl camol com 0 set salimot setri temgeni 50 call tempo set mot1cft ;abre moto1 call sali setri temgeni 20 call tempo reset mot1cft ;fin pulso de moto1 ld mot1cft out ledf15 call sali setri temgeni 50 call tempo set mot2cnt ;cierra moto2 ld mot2cnt out ledf16 call sali setri temgeni 20 call tempo reset mot2cnt ;fin pulso call sali reset salimot call sali call even ;evento moto41 clear ;si esta tranf vieja se queda en este loop disl trful1 loc 17 disl trful2 com 0 ld camtra ;!!!!!!!!!!!!!! ojo !!!!!!!!!!!!! jnz moto41 jmp motof moto5 clear ;transf nueva disl camol com 0 set salimot setri temgeni 50 call tempo set mot2cft ;abre moto2 call sali setri temgeni 20 call tempo reset mot2cft ;fin pulso ld mot2cft out ledf16 call sali setri temgeni 50 call tempo set mot1cnt ;cierra moto1 ld mot1cnt out ledf15 call sali setri temgeni 20 call tempo reset mot1cnt ;fin pulso call sali call even ;evento motof set salimot ret ;sali control salidas digitales======================= ;parametros salipar=0 no hay salidas 1=hay salidas sali clear loc 16 disl casal com 0 ld salipar ;mira los diferentes sali... and saliala ;de ala and saliplc ;de plc and salimot ;de moto jz sali2 sali1 ld conrct ;pasa temporales a salidas digitales salipar=1 out conrc ld con1ct out con1c ld con2ct out con2c ld pla1ct out pla1c ld pla2ct out pla2c ld mot1cnt out mot1cn ld mot1cft out mot1cf ld mot2cnt out mot2cn ld mot2cft out mot2cf ld alamat out alama ld alaplct out alaplc ld alaplat out alapla ld alamott out alamot ld sirt out sir ld lict out lic ;ld vigplcc ;out vigplcct jmp salif sali2 reset conrc ;resetea todas las salidas salipar=0 reset con1c reset con2c reset pla1c reset pla2c reset mot1cn reset mot1cf reset mot2cn reset mot2cf reset alama reset alaplc reset alapla reset alamot reset sir reset lic ;reset vigplcc salif ret ;horo carga horometros y selecciona planta=============== ;entrega....selpla rele si=0 arranca planta2 si=1 arranca planta1 horo set ledf8 movri horar ;mira horario y compara movri horart cpgi horo1 jmp horo4 horo1 ld vigrm ;hay red? jnz horo11 jmp horo2 horo11 movcf 1 ;si hay red acumula un minuto movrf horored addf stof horored movri horar ;guarda horario1 stoi horart horo2 ld vig1m ;hay planta1? jnz horo21 jmp horo3 horo21 movcf 1 ;si hay planta1 acumuna un minuto movrf horop1 addf stof horop1 movri horar ;guarda horario1 stoi horart horo3 ld vig2m ;hay planta2 jnz horo31 jmp horo4 horo31 movcf 1 ;si hay planta2 acumula 1 minuto movrf horop2 addf stof horop2 movri horar ;guarda horario1 stoi horart horo4 movrf horop1 ;cual planta tiene mas tiempo movrf horop2 cpgf horo41 jmp horo42 horo41 reset selpla ;arranca planta2 !!!!!! jmp horof horo42 set selpla ;arranca planta1 !!!!!!!! horof setri temgeni 10 call tempo reset ledf8 ret ;redon funcionamiento con red ============================= ;parametro redonp=1 si es 1 cambio el estado de la red y llego. redon reset auxt1 ;tiempo espera estabilidad red reset auxt2 redon01 clear disl enrel loc 16 disri timvr 6 com 0 ld auxt1 timr timvr ttimvr out auxt2 set auxt1 ld vigrm jz redonf ;si se fue la red....no hace nada ld auxt2 jz redon01 reset con1ct ;abre contactor de planta reset con2ct set apaplat ;param para apagar las 2 plantas call sali setri temgeni 50 call tempo set conrct ;cierra contactor de planta call sali call even call caled redonf ret ;plaon entrada de planta=============================== ;pruent(i) numero de pruebas de entrada plantas plaon setri pruent 0 reset prump ;pruebas mayor que 2 veces parametros set pla1ct ;enciende las 2 plantas set pla2ct call sali call caled reset auxt1 ;tiempo espera estabilidad red reset auxt2 plaon01 clear disl enpll loc 16 disri timpon 6 com 0 ld auxt1 timr timpon ttimpon out auxt2 set auxt1 ld vigrm jnz plaon011 ;si se fue la red....no hace nada jmp plaon012 plaon011 set apaplat jmp plaonf plaon012 ld auxt2 jz plaon01 reset conrct ;sale el contactor de red call sali call horo ;selecciono cual planta entra plaon02 ld selpla setri pruent 0 jnz plaon1 ;selecciono planta 1 jmp plaon2 ;selecciono planta 2 plaon1 inc pruent 1 ;arrranca planta1 clear disl intpla1 loc 16 disri pruent 3 loc 21 disri timrei 6 com 0 movri pruent movri pruentp ;prueba numero de arranques cpgi plaon3 ;mas de x arranques programados reset auxt1 ;tiempo entre reintentos reset auxt2 plaon10 loc 21 disri timrei 6 com 0 ld auxt1 timr timrei ttimrei out auxt2 set auxt1 ld auxt2 jz plaon10 ld vig1m ;pregunta por el vig de planta1 jnz plaon11 ;si entro el vig. jmp plaon1 ;no entro el vig, prueba nuevamente plaon11 reset prump reset con2ct call sali setri temgeni 10 call tempo set con1ct ;entra el contactor de planta 1 call sali set apapla2 ;setea para apagar planta2 call even jmp plaonf plaon2 inc pruent 1 ;arranca planta 2 clear disl intpla2 loc 16 disri pruent 3 com 0 movri pruent movri pruentp ;prueba numero de arranques cpgi plaon3 ;mas de x arranques programados reset auxt1 ;tiempo entre reintentos reset auxt2 plaon20 loc 21 disri timrei 6 com 0 ld auxt1 timr timrei ttimrei out auxt2 set auxt1 ld auxt2 jz plaon20 ld vig2m ;pregunta por el vig de planta2 jnz plaon21 ;si entro el vig. jmp plaon2 ;no entro el vig. prueba nuevamente plaon21 reset prump reset con1ct call sali setri temgeni 10 call tempo set con2ct ;entra el contactor de planta 2 call sali set apapla1 ;setea para apagar planta1 call even jmp plaonf plaon3 ld prump ;si es la primera vez=0 jnz plaon4 ;si ya paso por aca error grave set prump ld selpla ;cambia seltra para que arranque con otra outnt selpla jmp plaon02 ;prueba arranque con otra plaon4 plaonf ret ;=========================================================================== ;apapla apaga las plantas despues de minutos ;param apaplat(450)=1 apaga las 2 plantas ; apapla1(451)=1 apaga planta1 apapla2(452)=1 apaga planta 2 apapla ld apaplat ;seleccion de apagado 2 plantas jnz apapla03 ;selecciona apagado de 2 plantas jmp apapla04 apapla03 reset auxt3 ;tempo de apagado reset auxt4 apa031 clear disl apapls loc 16 disri timpof 6 com 0 ld vigrm ;si se fue la red jz apa032 jmp apa033 apa032 clear disl nored com 0 jmp apaplaf apa033 call moto call horo ld auxt3 timr timpof ttimpof ;252-312 out auxt4 set auxt3 ld auxt4 jz apa031 reset pla1ct ;apaga las plantas..... reset pla2ct call sali jmp apapla08 apapla04 ld apapla1 ;selecciona apagar planta 1 jnz apapla05 jmp apapla06 apapla05 reset auxt3 reset auxt4 apa051 clear disl apapl1 loc 16 disri timpof 6 com 0 ld vigrm ;si se fue la red jnz apaplaf call moto call horo ld auxt3 timr timpof ttimpof out auxt4 set auxt3 ld auxt4 jz apa051 reset pla1ct call sali jmp apapla08 apapla06 ld apapla2 jnz apapla07 jmp apapla08 apapla07 reset auxt3 reset auxt4 apa071 clear disl apapl2 loc 16 disri timpof 6 com 0 ld vigrm ;si se fue la red jnz apaplaf call moto call horo ld auxt3 timr timpof ttimpof out auxt4 set auxt3 ld auxt4 jz apa071 reset pla2ct call sali apapla08 reset apaplat reset apapla1 reset apapla2 apaplaf ret ;-------------------------------------------- ;------------------------------------------------------------- ;aplicación -> multitek multidin multitek.prg ;fecha -> agosto 8 2003 ;lee por protocolo libre una respuesta, toma los 32 bits y guarda en fflotaf resultado. ;------------------------------------------------------------- ;parametros reg 600=direccion (1 o2) reg 607=parte de crc (195 o 240) muti movci 1 stoi 21 movri 600 com 9 disb 0 1 com 2 movci 1 stoi 21 movri 601 com 9 disb 0 1 com 2 movci 1 stoi 21 movri 602 com 9 disb 0 2 com 2 movci 1 stoi 21 movri 603 com 9 disb 0 2 com 2 movci 1 stoi 21 movri 604 com 9 disb 0 2 com 2 movci 1 stoi 21 movri 605 com 9 disb 0 1 com 2 movci 1 stoi 21 movri 606 com 9 disb 0 1 com 2 movci 1 stoi 21 movri 607 com 9 disb 0 1 com 2 reset fauxt1 reset fauxt2 muti0 ld fauxt1 timr ftxtim1 20 out fauxt2 set fauxt1 movri larmen movri 22 cpei sal2 ld fauxt2 jz muti0 ;procesa respuesta ======================================== sal2 ld mens and rx out t1 ld t1 jz mutif flocio nop movci 3 stoi floci flo1 clear com 9 flo11 locx floci ;despues de leer aqui se repite la separacion de datos lecb 0 1 stoi fbit1i movif fbit1i stof fbit1f inc floci 1 locx floci lecb 0 1 stoi fbit2i movif fbit2i stof fbit2f inc floci 1 locx floci lecb 0 1 stoi fbit3i movif fbit3i stof fbit3f inc floci 1 locx floci lecb 0 1 stoi fbit4i movif fbit4i stof fbit4f inc floci 1 movrf fbit1f ;comienzan los calculos.... stof f1a2f movrf f1a2f movcf 2 mulf stof f1a2f movrf fbit2f movcf 127 cpgf flo4 jmp flo5 flo4 movrf fbit2f movcf 128 subf stof fbit2f movrf f1a2f movcf 1 addf stof f1a2f ld 301 out 400 flo5 movcf 65536 movrf fbit2f mulf stof fbit2f movcf 256 movrf fbit3f mulf stof fbit3f movcf 1 movrf fbit4f mulf stof fbit4f movrf 0 stof ftotf movrf fbit3f movrf fbit2f addf stof ftotf movrf ftotf movrf fbit4f addf stof ftotf movcf 0.0000001192092896 movrf ftotf mulf stof ftxkf movrf ftxkf stof faux39f movcf 1 movrf ftxkf addf stof ftxkf movcf 1 stof faux38f movrf fbit1f movcf 127 cpgf flo2 jmp flo3 flo2 movcf -1 stof faux38f flo3 movrf f1a2f movcf 127 subf stof f1a2f movrf f1a2f stofi faux40i flo31 movci 0 stoi faux41i movcf 1 stof faux37f flo32 movcf 2 movrf faux37f mulf stof faux37f inc faux41i 1 movri faux41i movri faux40i cpli flo32 movrf faux37f movrf ftxkf mulf stof fflotaf movrf faux38f movrf fflotaf mulf stof fflotaf ;resultado en flotante flo6 movci 7 comienza el llenado de variables en campos movri floci cpei flo61 jmp flo62 flo61 movrf fflotaf stof ffin1f ;voltaje L2-L1 flo62 movci 11 movri floci cpei flo63 jmp flo64 flo63 movrf fflotaf stof ffin2f ;voltaje L3-L2 flo64 movci 15 movri floci cpei flo65 jmp flo66 flo65 movrf fflotaf stof ffin3f ;voltaje L1-L3 flo66 movci 19 movri floci cpei flo67 jmp flo68 flo67 movrf fflotaf stof ffin4f ;voltaje L1 flo68 movci 23 movri floci cpei flo69 jmp flo610 flo69 movrf fflotaf stof ffin5f ;voltaje L2 flo610 movci 27 movri floci cpei flo611 jmp flo612 flo611 movrf fflotaf stof ffin6f ;voltaje L3 flo612 movci 31 movri floci cpei flo613 jmp flo614 flo613 movrf fflotaf stof ffin7f ;corriente L1 flo614 movci 35 movri floci cpei flo615 jmp flo616 flo615 movrf fflotaf stof ffin8f ;corriente L2 flo616 movci 39 movri floci cpei flo617 jmp flo618 flo617 movrf fflotaf stof ffin9f ;corriente L3 flo618 movci 43 movri floci cpei flo619 jmp flo620 flo619 movrf fflotaf stof ffin10f ;frecuencia flo620 movci 47 movri floci cpei flo621 jmp flo622 flo621 movrf fflotaf stof ffin11f ;presion aceite flo622 movci 51 movri floci cpei flo623 jmp flo624 flo623 movrf fflotaf stof ffin12f ;temperatura agua flo624 movci 55 movri floci cpei flo625 jmp flo626 flo625 movrf fflotaf stof ffin13f ;bateria flo626 movci 59 movri floci cpei flo627 jmp flo628 flo627 movrf fflotaf stof ffin14f ;horometro flo628 movri floci movci 61 cpli flo11 ;proceso de muestreo en display con reles de ;10 seg y de 30 seg. mue1 ld 304 ;rele de 10 seg. jnz mue11 jmp mue12 mue11 movci 1 ;es 1 stoi vmue10 jmp mue2 mue12 movci 0 ;es 0 stoi vmue10 mue2 ld 305 ;rele de 30 seg jnz mue21 jmp mue22 mue21 movci 1 ;es 1 stoi vmue30 jmp mue3 mue22 movci 0 ;es 0 stoi vmue30 mue3 movri vmue10 ;sume los 2 movri vmue30 addi stoi vmuet movri vmuet movci 0 cpei mue4 ;si la suma es cero jmp mue5 mue4 clear ;lee corrientes disl fi1 loc 4 disrf ffin7f 30 loc 8 disl fi2 loc 12 disrf ffin8f 30 loc 16 disl fi3 loc 20 disrf ffin9f 30 loc 24 disl fhz loc 28 disrf ffin10f 30 com 0 mue5 movri vmuet movci 1 cpei mue6 ;si la suma es 1 jmp mue7 mue6 clear ;lee voltajes disl fv1 loc 4 disrf ffin1f 30 loc 8 disl fv2 loc 12 disrf ffin2f 30 loc 16 disl fv3 loc 20 disrf ffin3f 30 loc 24 disl fhz loc 28 disrf ffin10f 30 com 0 mue7 movri vmuet movci 2 cpei mue8 ;si la suma es 2 jmp mutif mue8 clear ;lee varios disl foil loc 4 disrf ffin11f 30 loc 8 disl ftem loc 12 disrf ffin12f 30 loc 16 disl fvol loc 20 disrf ffin13f 41 loc 24 disl fhz loc 28 disrf ffin10f 30 com 0 mutif ret ;------------------------------------------------- ;sema, inicio semanal de prueba de plantas ;auxsema rele que indica que ya encendio una planta y esta temporizando ;auxsemad set con primer arranque del dia, se mantiene hasta que el dia cambie, ; esto evita que se hagan 2 pruebas en el dia cuando se chequea ; el mismo minuto sema ld auxsema ;esta temporizando, planta encendida..... jnz sema7 ld auxsemad ;ya hizo arranque en este dia? jnz semaf sema0 movri 45 ;dia de la semana movri diasem cpei sema1 jmp semaf sema1 movri 43 ;horario movri horasem cpei sema2 jmp semaf sema2 call horo ;seleccione planta ld selpla jnz sema3 jmp sema4 sema3 set pla1ct ;arranca planta1 jmp sema5 sema4 set pla2ct ;arranca planta2 sema5 call sali set auxsema set auxsemad movri 43 ;calcula tiempo de apagado movri ttimsem addi stoi ttimsemt movri ttimsemt ;es mayor a 1439 movci 1439 cpgei sema6 jmp sema7 sema6 movri ttimsemt ;si si reste movci 1439 subi stoi ttimsemt ;tiempo final de apagado. sema7 movri 43 ;termino tiempo? movri ttimsemt cplei sema8 ;temporizando....... jmp sema10 ;termino.......... sema8 ld vigrm jz sema80 ;se fue la red jmp sema9 ;hay red normal sema80 reset auxsema ;termine sema y arranque plantas call plaon jmp semaf sema9 jmp semaf sema10 reset pla1ct reset pla2ct call sali reset auxsema semaf ret ;&leavar============================================= &leavar ;[REG_RELAYS] ;entradas digitales-------------------------- manaut equ 0 ;***** 0 manual automatico manaut1 equ 1 manaut2 equ 2 vigrm equ 3 ;vigilante red monitoria vig1m equ 4 ;vigilante planta1 monitoria vig2m equ 5 ;vigilante planta2 monitoria conrm equ 6 ;contactor red monitoria con1m equ 7 ;contactor planta1 monitoria con2m equ 8 ;contactor planta2 monitoria mot0m equ 9 ;monitoria moto arriba contac red mot1m equ 10 ;motorizado barra1 monitoria mot2m equ 11 ;motorizado barra2 monitoria mot3d equ 12 camtra equ 13 ;cambio transferencias vigplcm equ 15 ;vigilante plc cond1 equ 1000 cond2 equ 1001 cond3 equ 1002 cond4 equ 1003 cond5 equ 1004 cond6 equ 1005 cond7 equ 1006 cond8 equ 1007 cond9 equ 1008 cond10 equ 1009 temt1 equ 1010 temt2 equ 1011 temt3 equ 1012 temt4 equ 1013 mot0d equ 1100 ;defecto moto arriba cont red mot1d equ 1101 ;motorizado defecto barra1 mot2d equ 1102 ;motorizado defecto barra2 mot3m equ 1103 ;motorizado defecto entre barras reset equ 1104 ;reset alarmas tablero reset1 equ 1105 ;reset alarmas piso11 ;salidas digitales---------------------------- conrc equ 100 ;contactor red control con1c equ 101 ;contactor planta1 control con2c equ 102 ;contactor planta2 control pla1c equ 103 ;planta 1 encendicdo control pla2c equ 104 ;planta 2 encendido control mot1cn equ 105 ;motorizado barra1 control on mot1cf equ 108 ;motorizado barras control off mot2cn equ 106 ;motorizado barras control on mot2cf equ 109 ;motorizado barras control off alama equ 111 ;alarma de manual auto segun documento alaplc equ 113 ;alarma falla plc alapla equ 112 ;alarma falla plantas alamot equ 114 ;alarma falla motorizados sir equ 107 ;sirena lic equ 110 ;licuadora vigplcc equ 115 ;vigilante plc control ;aux salidas--------------------------------------------- conrct equ 400 ;contactor red control con1ct equ 401 ;contactor planta1 control con2ct equ 402 ;contactor planta2 control pla1ct equ 403 ;planta 1 encendicdo control pla2ct equ 404 ;planta 2 encendido control mot1cnt equ 405 ;motorizado barra1 control on mot1cft equ 408 ;motorizado barras control off mot2cnt equ 406 ;motorizado barras control on mot2cft equ 409 ;motorizado barras control off alamat equ 411 ;alarma de manual auto segun documento alaplct equ 413 ;alarma falla plc alaplat equ 412 ;alarma falla plantas alamott equ 414 ;alarma falla motorizados sirt equ 407 ;sirena lict equ 410 ;licuadora vigplcct equ 415 ;vigilante plc control ;mas reles--------------------------------------------------------- ledf4 equ 323 ;manaut activado ledf5 equ 324 ;contactor red monitoria ledf6 equ 325 ;contactor planta 1 monitoria ledf7 equ 326 ;contactor planta 2 monitoria ledf8 equ 327 ;horometro ledf9 equ 328 ;vig red monitoria ledf10 equ 329 ;vig planta 1 mnonitoria ledf11 equ 330 vig planta 2 monitoria ledf12 equ 331 ;salipar =1 si salidas ledf13 equ 332 ;pla1c planta encendida ledf14 equ 333 ;pla2c planta 2 encendida ledf15 equ 334 ;moto 1 ledf16 equ 335 ;moto 2 selpla equ 420 ;call horo selecciona planta =1 planta1 =0 planta2 semhab equ 421 ;habilita arranque semanal=1 auxgen1 equ 430 ;aux para tempo general auxgen2 equ 431 ;aux para tempo general camtrat equ 434 ;temporal anterior camtra1 equ 435 ;resultado del xor auxt1 equ 436 auxt2 equ 437 auxt3 equ 438 auxt4 equ 439 aux5 equ 440 apaplat equ 450 ;indica que debe entrar a apapla las 2 plantas apapla1 equ 451 ;indica que debe entrar a apapla apaga planta1 apapla2 equ 452 ;indica que debe entrar a apapla apaga planta2 vigrma equ 454 vigrmb equ 455 prump equ 456 ;plaon hace que arranque la otra planta en caso de fallo conrctt equ 457 ;temporal cuando se disparan los motos en ala con1ctt equ 458 con2ctt equ 459 manauta equ 460 ;auxiliares para manaut detecta cambio call ala manautb equ 461 auxsema equ 462 ;aux de sema auxsemad equ 463 auxplc equ 464 ;aux de plc inhred equ 465 ;rele inhibe entrada de red. inhredt equ 470 salipar equ 466 ;=1 cambia salidas =0 reset salidas saliala equ 467 saliplc equ 468 salimot equ 469 ;reles de multitek---------------------------------- ent equ 340 rx equ 314 mens equ 318 prot equ 319 puls equ 304 ftxaux1r equ 620 ftxaux2r equ 621 t1 equ 622 t2 equ 623 fauxt1 equ 624 fauxt2 equ 625 ;[REG_INTEGERS] horar equ 43 ;horario diasema equ 45 horart equ 305 ;temp horario call horo ttimvr equ 310 ;temp. de vig. red antes de hacer trasnf ttimpon equ 311 ;temp toma carga por plantas ttimpof equ 312 ;temp apagado plantas minutos ttimrei equ 313 ;temp entre reintentos de encendido planta ttimcon equ 314 ;temp para mover contactores ppales.5 ttimsem equ 315 ;temp arranque semanal horasem equ 316 ;en horario hora arranque semanal diasem equ 317 ;dia arranque semanal reint equ 320 ;reintentos arranque plantas temgeni equ 321 timp1 equ 322 eveni equ 400 ;resultado de cada ciclo de calculo event equ 401 ;direccion de entrada even0e equ 402 ;resul entrada 0-7 even7e equ 403 ;resul entrada 8-15 even10e equ 404 ;resul entrada 1000-1015 even18e equ 405 ;resul entrada 1016-1030 even31e equ 406 ;resul entrada 1100-1115 even38e equ 407 ;resul entrada 1116-1130 even100e equ 408 ;resul salida 100-107 even108e equ 409 ;resul salida 108-115 even1i equ 410 ;dato x1 even2i equ 411 ;dato x2 even3i equ 412 ;dato x4 even4i equ 413 ;dato x8 even5i equ 414 ;dato x16 even6i equ 415 ;dato x32 even7i equ 416 ;dato x64 even8i equ 417 ;dato x128 pruent equ 420 ;# de reintentos de entrar contac de planta pruentp equ 421 ;parametro de # pruebas de entrada diat equ 422 ;temporal de horario para sema en ppal ttimsemt equ 423 ;temporal tiempo prueba semanal ;enteros de multitek--------------------------- tx equ 21 fbit1i equ 610 fbit2i equ 611 fbit3i equ 612 fbit4i equ 613 floci equ 620 faux40i equ 621 faux41i equ 622 fbitadi equ 623 fbitadti equ 624 tiempo equ 625 larmen equ 626 vmue10 equ 627 vmue30 equ 628 vmuet equ 629 ;[REG_FLOATS] horored equ 100 ;horometro red en minutos horop1 equ 101 ;horometro planta1 horop2 equ 102 ;horometro planta2 volmin equ 110 ;voltaje minimo volmax equ 111 ;voltaje maximo sobcor equ 112 ;sobrecorriente fremin equ 113 ;frecuencia minima fremax equ 114 ;frecuencia maxima volta1 equ 115 volta2 equ 116 volta3 equ 117 voltr equ 120 volts equ 121 voltt equ 122 ;flotantes de multitek---------------------------- fbit1f equ 620 fbit2f equ 621 fbit3f equ 622 fbit4f equ 623 ftotf equ 630 ftxkf equ 631 f1a2f equ 632 fflotaf equ 633 faux35f equ 635 faux37f equ 637 faux38f equ 638 faux39f equ 639 ffin1f equ 640 ffin2f equ 641 ffin3f equ 642 ffin4f equ 643 ffin5f equ 644 ffin6f equ 645 ffin7f equ 646 ffin8f equ 647 ffin9f equ 648 ffin10f equ 649 ffin11f equ 650 ffin12f equ 651 ffin13f equ 652 ffin14f equ 653 ftxb1 equ 660 ftxb2 equ 661 ;[TIM] timvr equ 250 ;temp. de vig. red antes de hacer trasnf timpon equ 251 ;temp toma carga por plantas timpof equ 252 ;temp apagado plantas minutos timrei equ 253 ;temp entre reintentos de encendido planta timcon equ 254 ;temp para mover contactores ppales. timsem equ 255 ;duracion arranque semanal timgen equ 256 ;temporizador general con entero 321 ftxtim1 equ 270 ;[CNT] ;[NOP] ;[TEXTOS] plc1l lite "ERROR LOGICO SOFTWARE" plc2l lite "ERROR HARDWARE PLC" plc3l lite "ERROR ENTRADAS/SALIDAS" unol lite "uno" dosl lite "dos" tresl lite "tres" cuatrol lite "cuatro" alar lite "No entro Planta" intpla1 lite "Intentos Planta1" intpla2 lite "Intentos Planta2" carel lite "Cambio en la red" estared lite "Estable Red" estapla1 lite "Estable Planta 1" estapla2 lite "Estable Planta 2" guevl lite "Guardando Eventos" camol lite "Cambio Motorizados" casal lite "Cambio Salidas" cahol lite "Cargando Horometros" enrel lite "Entrando Red" enpll lite "Entrando Plantas" apapls lite "Apagando Plantas" apapl1 lite "Apagando Planta1" apapl2 lite "Apagando Planta2" trful1 lite "Transferencia" trful2 lite "Fuera" erromot lite "Disparo Motorizados" manautl lite "Tranf. Manual" fv1 lite "V1= " ;ffin1f fv2 lite "V2= " ;ffin2f fv3 lite "V3= " ;ffin3f fi1 lite "I1= " ;ffin7f fi2 lite "I2= " ;ffin8f fi3 lite "I3= " ;ffin9f fhz lite "Hz= " ;ffin10f foil lite "Psi=" ;ffin11f ftem lite "Tem=" ;ffin12f fvol lite "Bat=" ;ffin13f nored lite "No Red" ;iniciar variables-------------------------------- file 0,600D,610T,402i,403i,404i,405i,406i,407i,408i,409i,410i,len=300,TYPE=C ;variables para multitek------------------------- ;movci 2 ;stoi 600 movci 4 stoi 601 movci 0 stoi 602 movci 0 stoi 603 movci 0 stoi 604 movci 28 stoi 605 movci 241 stoi 606 ;movci 240 ;stoi 607 movci 61 stoi larmen ;--------------------------------- movcf 0.1927 stof volta1 movcf 0.1927 stof volta2 movcf 0.1927 stof volta3 movri horar stoi horart ld camtra ;guarda el estado actual en camtra out camtrat setri pruentp 1 reset apaplat reset apapla1 reset apapla2 ld camtra jnz &var1 set ledf15 set vigplcct set vigplcc ldnt vigrm out vigrma ldnt manaut out manauta set inhredt reset inhred set saliala set salipar set salimot ;------------------------ jmp &var6 ;ojojojojojojojo........................ ld conrm and vigrm jz &var1 jmp &var2 &var1 call redon &var2 ld vig1m and pla1c and con1m jz &var3 jmp &var4 &var3 call plaon &var4 ld vig2m and pla2c and con2m jz &var5 jmp &var6 &var5 call plaon &var6 ;ojo ojo ojo para quitar despues------------------- ; setri ttimpon 50 ; setri ttimvr 50 ; setri ttimpof 100 ; setri ttimrei 100 ret ;======================================================