;------------------------------------------------------------- ;Aplicación -> se quito multi, cambio direccion variables ;Fecha -> nov 5 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 ;ver25, rutina espe en &var para toma de control ;vis1_1.prg, ultima con modificacion direcciones entrada viene de tra29_1.prg ;linea 407 se quita mot0m del control ;cambio en sire ;cambio en sali ;en ala se ponen xor ;cambio en ini y vol...ojo para plc2 ;------------------------------------------------------------- mida 64 scan equ 399 ;programa principal--------------------------------------- &ini ld scan jz &lea jmp ini &lea call &leavar ini call plc ld encsir ;enciende alarmas desde el pc jz inisir reset encsir set auxsire inisir call sire call vol call even 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 call apapla ini03 jmp fin ini1 call caled ;NO CAMBIO VIGRM ld vigrm jnz ini10 jmp ini11 ini10 clear disl estared ;aviso de red estable com 0 jmp ini141 ini11 ld vig1m ;si planta 1 encendida jnz ini12 jmp ini13 ini12 clear disl estapla1 com 0 jmp ini141 ini13 ld vig2m ;si planta 2 encendida jnz ini14 jmp ini141 ini14 clear disl estapla2 com 0 ;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 ;--------------------------------------- ; cali. calibracion temp y hum cali clear ;calibracion temp disl calit loc 16 disl e-c com 0 ink ent jnz cali1 ink cle jnz cali2 jmp cali cali1 clear ;dato Y1 temp high disl te-h com 0 ini 2 stoi ythi movif ythi stof yth movif tei ;dato X1 stof xth clear ;dato YO temp low disl te-l com 0 ini 2 stoi ytli movif ytli stof ytl movif tei ;dato XO stof xtl movrf xth ;X1-XO movrf xtl subf stof tx movrf yth ;Y1-YO movrf ytl subf stof ty movrf ty ;Y1-Y0 / X1-XO movrf tx divf stof tk movrf tk ; K * XO movrf xtl mulf stof tmx movrf ytl ;B = YO - K*XO movrf tmx subf stof tb cali2 clear ;calibracion humedad disl calih loc 16 disl e-c com 0 ink ent jnz cali21 ink cle jnz cali3 jmp cali2 cali3 clear ;dato Y1 humedad high disl hu-h com 0 ini 2 stoi yhhi movif yhhi stof yhh movif hui ;dato X1 stof xhh clear ;dato YO humedad low disl hu-l com 0 ini 2 stoi yhli movif yhli stof yhl movif hui ;dato XO stof xhl movrf xhh ;X1-XO movrf xhl subf stof hx movrf yhh ;Y1-YO movrf yhl subf stof hy movrf hy ;Y1-Y0 / X1-XO movrf hx divf stof hk movrf hk ; K * XO movrf xhl mulf stof hmx movrf yhl ;B = YO - K*XO movrf hmx subf stof hb calif ret ;----------------------------------------- ;sire. prende apaga sirenas sire ld auxsire jnz sire1 jmp sire2 sire1 set sir set sirt set lic set lict jmp sire3 sire2 reset sir reset sirt reset lic reset lict sire3 ld reset or reset1 jnz sire4 jmp siref sire4 reset auxsire set auxsire1 siref ret ;------------------------------------------------------------------------- ;vol. mide voltjes en entradas analogas vol movif 60 movrf volta1 mulf stof voltr movif 61 movrf volta2 mulf stof volts movif 62 movrf volta3 mulf stof voltt 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 ;resultado para mover ;------------ movri vmuet movci 0 cpei mue4 ;si la suma es cero jmp mue5 mue4 clear disl v1 loc 3 disrf voltr 30 com 3 mue5 movri vmuet movci 1 cpei mue6 ;si la suma es 1 jmp mue7 mue6 clear disl v2 loc 3 disrf volts 30 com 3 mue7 movri vmuet movci 2 cpei mue8 ;si la suma es 2 jmp vol10 mue8 clear disl v3 loc 3 disrf voltt 30 com 3 vol10 movif tei movrf tk mulf stof tot movrf tot movrf tb addf stof to movif hui movrf hk mulf stof hot movrf hot movrf hb addf stof ho volf ret ;=================================================================== ;uno. 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 set vigplcc set saliplc ;call sali 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 ;CONTROL DE MANUAL AUTOMATICO 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 call plc ld manaut ;es manual o auto ? jz alaba jmp alac alaba call caled ;manual...... call even ;set alama ;!!!!!!!!!!!!!! reset saliala ;deshabilita sali clear disl manautl com 0 setri temgeni 40 call tempo call sali jmp alab alac ;esta en automatico ;mira como funciona y setea los contac antes ;cambiar las salidas ld vigrm ;esta funcionando con red? and conrm jnz alac1 jmp alac2 alac1 reset conrct ;si con red....... reset con1ct reset pla1ct reset con2ct reset pla2ct alac2 ld vig1m and con1m jnz alac3 jmp alac4 alac3 set conrct ;si con planta1....... set con1ct set pla1ct reset con2ct reset pla2ct alac4 ld vig2m and con2m jnz alac5 jmp alac6 alac5 set conrct ;si con planta2...... reset con1ct reset pla1ct set con2ct set pla2ct alac6 set saliala ;habilita sali call sali ala0 ;CONTROL DE MOTORIZADOS ld mot2d ;determina si cambio xor mot2da jnz ala00 ld mot3d ;determina si cambio xor mot3da jnz ala00 jmp ala0c ;.....no cambiaron ala00 ld mot2d out mot2da ld mot3d out mot3da ld mot2d ;moto2 se disparo or mot3d ;o moto3... jnz ala0a jmp ala0b ala0a set alamot ;prenda alarma ld auxsire1 jnz ala0aa set auxsire ala0aa call sire jmp ala0c ala0b reset alamot ;se restauro moto2. reset auxsire1 reset auxsire ;DISPARO DE MOTO1 GRAVE..... ala0c ld mot1d ;cambio???? xor mot1da jz ala03 ala0c0 ld mot1d out mot1da ld mot1d ;se disparo moto1? jnz ala0c00 jmp ala03 ala0c00 ld conrct ;si.....guarde estados de contac out conrctt ld con1ct out con1ctt ld con2ct out con2ctt ala01 set conrct ;resetee contactors reset con1ct reset con2ct call sali ala010 ld mot1d ;se restauraron moto 1 outnt aux5 ld aux5 jnz ala02 set alamot ;dispare alarma ld auxsire1 jnz ala010a set auxsire ala010a call sire clear disl erromot ;!!! ojo !!! queda en loop com 0 jmp ala010 ala02 ld conrctt ;si....restaure los estados iniciales de cont out conrct ld con1ctt out con1ct ld con2ctt out con2ct call sali reset alamot ;resetee alarma reset auxsire1 reset auxsire ala03 ;ALARMA POR PLANTAS ld prump ;cambio????? xor prumpa jz ala3 ala030 ld prump out prumpa 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 reset con1ct reset con2ct call sali call caled ld auxsire1 jnz ala1a set auxsire ala1a call sire ld vigrm or vig1m or vig2m ;!!!! ojo !!!! es temporal...que hago? jz ala1 ala2 ld vigrm jz ala21 set apaplat jmp ala25 ala21 ld vig1m jz ala22 set apapla2 ala22 ld vig2m jz ala23 set apapla1 ala23 ld vig1m and vig2m jz ala25 call horo ld selpla jz ala24 reset apapla1 set apapla2 jmp ala25 ala24 set apapla1 reset apapla2 ala25 reset prump ;reseteo entrada plantas reset alapla reset auxsire1 reset auxsire reset alaplat ;ALARMA POR LOCAL REMOTO EN LAS PLANTAS ala3 ld manaut1 xor manaut1a jnz ala30 ld manaut2 xor manaut2a jnz ala30 jmp alaf ala30 ld manaut1 out manaut1a ld manaut2 out manaut2a ld manaut1 or manaut2 jnz ala31 jmp ala32 ala31 set alama ld auxsire1 jnz ala31a set auxsire ala31a call sire set auxpla jmp alaf ala32 ld auxpla jnz ala33 jmp alaf ala33 reset alama reset auxsire1 reset auxsire reset auxpla alaf ret ;even. eventos============================================ ;parametros para even1 ;eveni fin de calculo=0 se reinicia ;event direccion memoria even 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 movri even0e cpei even01 movri eveni movri even0e subi movci 1000 addi stoi evedif write 0 1 even01 movri eveni stoi even0e guarda resultados de los 8 bits ;---------------------------- movci 0 stoi eveni movci 8 ;8-15 stoi event call even1 movri eveni movri even10e cpei even02 movri eveni movri even10e subi movci 2000 addi stoi evedif write 0 1 even02 movri eveni stoi even10e guarda resultados de los 8 bits ;---------------------- movci 0 stoi eveni movci 1008 ;1008-1014 stoi event call even1 movri eveni movri even18e cpei even03 movri eveni movri even18e subi movci 3000 addi stoi evedif write 0 1 even03 movri eveni stoi even18e guarda resultados de los 8 bits ;------------------------ movci 0 stoi eveni movci 1100 ;1100-1107 stoi event call even1 movri eveni movri even31e cpei even04 movri eveni movri even31e subi movci 4000 addi stoi evedif write 0 1 even04 movri eveni stoi even31e ;-------------------------- movci 0 stoi eveni movci 1108 ;1108-1115 stoi event call even1 movri eveni movri even38e cpei even05 movri eveni movri even38e subi movci 5000 addi stoi evedif write 0 1 even05 movri eveni stoi even38e ;-------------------------- movci 0 stoi eveni movci 100 ;100-107 stoi event call even1 movri eveni movri even100e cpei even06 movri eveni movri even100e subi movci 6000 addi stoi evedif write 0 1 even06 movri eveni stoi even100e ;---------------------------- movci 0 stoi eveni movci 108 ;108-115 stoi event call even1 movri eveni movri even108e cpei even07 movri eveni movri even108e subi movci 7000 addi stoi evedif write 0 1 even07 movri eveni stoi even108e ;--------------------------- 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 set ledf1 reset auxgen1 reset auxgen2 tempo1 ld auxgen1 timr timgen temgeni out auxgen2 set auxgen1 ld auxgen2 jz tempo1 tempof reset ledf1 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 xor conrc jz sali11 set auxeve sali11 ld conrct ;pasa temporales a salidas digitales salipar=1 out conrc ld con1ct xor con1c jz sali12 set auxeve sali12 ld con1ct out con1c ld con2ct xor con2c jz sali13 set auxeve sali13 ld con2ct out con2c ld pla1ct xor pla1c jz sali14 set auxeve sali14 ld pla1ct out pla1c ld pla2ct xor pla2c jz sali15 set auxeve sali15 ld pla2ct out pla2c ld mot1cnt xor mot1cn jz sali16 set auxeve sali16 ld mot1cnt out mot1cn ld mot1cft xor mot1cf jz sali17 set auxeve sali17 ld mot1cft out mot1cf ld mot2cnt xor mot2cn jz sali18 set auxeve sali18 ld mot2cnt out mot2cn ld mot2cft xor mot2cf jz sali19 set auxeve sali19 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 auxeve jz sali101 call even reset auxeve sali101 jmp salif sali2 set 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 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 reset conrct ;cierra contactor de red 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 set conrct ;sale la red call sali call horo ;selecciono cual planta entra ld vig1m ;las 2 encendidas... and vig2m jnz plaon02 ld vig1m ;en caso que planta prendida ya jz pla013 ;sigue con la misma set selpla pla013 ld vig2m ;lo mismo que anterior jz plaon02 reset selpla plaon02 setri pruent 0 ld selpla 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 ;no hace nada se sale disl nored com 0 jmp apaplaf apa033 ld vig1m ;apaga plantas or vig2m ;si estan apagadas or auxapa1 jz apa0331 ;se salta el temporiza set auxapa1 ;una vez que empieza call moto ;una temporiza, la termina call horo call plc ld auxt3 timr timpof ttimpof ;252-312 out auxt4 set auxt3 ld auxt4 jz apa031 reset auxapa1 ;rele obliga temporizado apa0331 reset pla1ct ;apaga las plantas..... reset pla2ct call sali jmp apaplaf 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 call plc ld vig1m ;apaga plantas or vig2m ;si estan apagadas or auxapa1 jz apa0511 ;se salta el temporiza set auxapa1 ;una vez que empieza ld auxt3 timr timpof ttimpof out auxt4 set auxt3 ld auxt4 jz apa051 reset auxapa1 apa0511 reset pla1ct call sali jmp apaplaf apapla06 ld apapla2 ;apagado planta 2 jnz apapla07 jmp apaplaf 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 call plc ld vig1m ;apaga plantas or vig2m ;si estan apagadas or auxapa1 jz apa0711 ;se salta el temporiza set auxapa1 ;una vez que empieza ld auxt3 timr timpof ttimpof out auxt4 set auxt3 ld auxt4 jz apa071 reset auxapa1 apa0711 reset pla2ct call sali apaplaf reset apaplat reset apapla1 reset apapla2 reset auxapa1 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 encpla ;entra plantas del supervis jnz sema2 ;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 reset encpla set pla1ct set pla2ct 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 mot3m equ 12 camtra equ 13 ;cambio transferencias vigplcm equ 15 ;vigilante plc ;cond1 equ 1000 ;16 monitorias solo para lv como direccion ;cond2 equ 1001 ;17 ;cond3 equ 1002 ;18 ;cond4 equ 1003 ;19 ;cond5 equ 1004 ;20 ;cond6 equ 1005 ;21 ;cond7 equ 1006 ;22 ;cond8 equ 1007 ;23 ;cond9 equ 1008 ;24 ;cond10 equ 1009 ;25 ; equ 1010 ;26 pos. salida a PDU en CC ; equ 1011 ;27 pos. totalizador 1 salida UPS liebert ; equ 1012 ;28 pos. totalizador 2 salida UPS liebert ; equ 1013 ;29 posicion contingencia red regulada pisos ; equ 1014 ;30 totalizador ups ; equ 1015 ;31 totalizador igrp ; equ 1100 ;32 tota trans. 125kva piso11 ; equ 1101 ;33 tota trans. 75kva piso 11 mot1d equ 1102 ;34 motorizado defecto barra1 mot2d equ 1103 ;35 motorizado defecto barra2 mot3d equ 1104 ;36 motorizado defecto entre barras reset equ 1105 ;37 reset alarmas tablero reset1 equ 1106 ;38 reset alarmas piso11 ; equ 1107 ;39 alarma transformador principal MONITORIAS ; equ 1108 ;40 alarma disparo transformador principal ; equ 1109 ;41 falla transformador principal ; equ 1110 ;42 bajo nivel combustible tanque ppal ; equ 1111 ;43 bajo nivel combustible tanque emerg. ; equ 1112 ;44 ; equ 1113 ;45 ; equ 1114 ;46 ; equ 1115 ;47 ; equ 1116 ;48 ;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 1500 ;contactor red control con1ct equ 1501 ;contactor planta1 control con2ct equ 1502 ;contactor planta2 control pla1ct equ 1503 ;planta 1 encendicdo control pla2ct equ 1504 ;planta 2 encendido control mot1cnt equ 1505 ;motorizado barra1 control on mot1cft equ 1508 ;motorizado barras control off mot2cnt equ 1506 ;motorizado barras control on mot2cft equ 1509 ;motorizado barras control off alamat equ 1511 ;alarma de manual auto segun documento alaplct equ 1513 ;alarma falla plc alaplat equ 1512 ;alarma falla plantas alamott equ 1514 ;alarma falla motorizados sirt equ 1507 ;sirena lict equ 1510 ;licuadora ;mas reles--------------------------------------------------------- ledf1 equ 320 ;detecta tempo en proceso 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 auxgen1 equ 413 ;aux para tempo general auxgen2 equ 414 ;aux para tempo general auxt1 equ 415 auxt2 equ 416 auxt3 equ 417 auxt4 equ 418 aux5 equ 419 auxsire equ 420 ;aux on/off sirena auxsire1 equ 421 ;aux silenciar sirena auxmot equ 422 auxpla equ 423 auxmot1 equ 424 auxeve equ 425 mot2da equ 426 ;de ala. determinar cambios en ent. mot3da equ 427 mot1da equ 428 prumpa equ 429 manaut1a equ 430 manaut2a equ 431 encpla equ 450 encsir equ 451 evewri equ 452 ;se produjo cambio en i/o semhab equ 453 ;semanal habilitado selpla equ 1520 ;call horo selecciona planta =1 planta1 =0 planta2 semhab equ 1521 ;habilita arranque semanal=1 camtrat equ 1521 ;temporal anterior camtra1 equ 1522 ;resultado del xor apaplat equ 1523 ;indica que debe entrar a apapla las 2 plantas apapla1 equ 1524 ;indica que debe entrar a apapla apaga planta1 apapla2 equ 1525 ;indica que debe entrar a apapla apaga planta2 vigrma equ 1526 vigrmb equ 1527 prump equ 1528 ;plaon hace que arranque la otra planta en caso de fallo conrctt equ 1529 ;temporal cuando se disparan los motos en ala con1ctt equ 1530 con2ctt equ 1531 manauta equ 1532 ;auxiliares para manaut detecta cambio call ala manautb equ 1533 auxsema equ 1534 ;aux de sema auxsemad equ 1535 auxplc equ 1536 ;aux de plc inhred equ 1537 ;rele inhibe entrada de red. inhredt equ 1538 salipar equ 1540 ;=1 cambia salidas =0 reset salidas saliala equ 1541 saliplc equ 1542 salimot equ 1543 auxapa1 equ 1544 ;aux para que no temporice cuando ;las plantas estan apagadas en min ;[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 evedif equ 410 ;clase de evento even1i equ 411 ;dato x1 even2i equ 412 ;dato x2 even3i equ 413 ;dato x4 even4i equ 414 ;dato x8 even5i equ 415 ;dato x16 even6i equ 416 ;dato x32 even7i equ 417 ;dato x64 even8i equ 418 ;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 vmue10 equ 424 ;movimiento display en vol. vmue30 equ 425 vmuet equ 426 ;[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 temp equ 123 humr equ 124 ;[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 "Suministro Red" estapla1 lite "Suministro Pla 1" estapla2 lite "Suministro Pla 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 Planta" apapl2 lite "Apagando Planta" trful1 lite "Transferencia" trful2 lite "Fuera" erromot lite "Disparo Motorizados" manautl lite "Tranf. Manual" nored lite "No Red" espera lite "En Espera estabilidad" v1 lite "1-" v2 lite "2-" v3 lite "3-" ;iniciar variables-------------------------------- file 0,600D,610T,402i,403i,404i,405i,406i,407i,408i,409i,410i,len=300,TYPE=C ;--------------------------------- ;ciclo de espera para entrada si plc2 esta funcionando espe ld vigplcm ;salida del plc2 jnz espe1 jmp espe2 espe1 ld vigrm and conrm andnt vig1m andnt vig2m andnt con1m andnt con2m jnz espe2 clear disl espera com 0 jmp espe espe2 setri temgeni 50 call tempo ;INICIO DE VARIABLES !!!!!!!!!!!!!!! clear com 0 movcf 0.1927 stof volta1 movcf 0.1936 stof volta2 movcf 0.1923 stof volta3 ld vigrm ;cambios en vigred out vigrma ldnt manaut ;cambios en manual/autom out manauta ld camtra ;cambio en motorizados out camtrat ;se entra para que actuliza salidas movri horar ;horo iguala el minuto con el de stoi horart ;comparacion setri pruentp 1 ;inicio # pruebas entrada ;plantas plaon reset apaplat ;parametro de arranque de seleccion reset apapla1 ;arranque de plantas reset apapla2 set saliala ;inhibidores de salidas digitales set salipar set salimot reset auxapa1 ;aux no tempo en minutos reset auxmot reset auxpla reset auxmot1 ld mot2d out mot2da ld mot3d out mot3da ld mot1d out mot1da ld prump out prumpa ld manaut1 out manaut1a ld manaut2 out manaut2a reset evewri reset encsir reset encpla ld vigrm ;si hay red ....!!!!!!!!!!!!!! jnz &var1 jmp &var2 ;--------------- &var1 call redon jmp &varf &var2 ld vig1m ;planta 1 funcionando and con1m jnz &var3 jmp &var4 &var3 set pla1ct set conrct set con1ct reset con2ct call sali &var4 ld vig2m ;planta 2 funcionando and con2m jnz &var5 jmp &var6 &var5 set pla2ct set conrct set con2ct reset con1ct call sali jmp &varf &var6 set conrct ;nada funcionando reset con1ct reset con2ct reset pla1ct reset pla2ct ;ojo ojo ojo para quitar despues------------------- ; setri ttimpon 50 ; setri ttimvr 50 ; setri ttimpof 100 ; setri ttimrei 100 &varf ret ;======================================================