Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
(PLC)
de
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 1
Este es el texto de un peque o !ursillo" que es una introdu!!i#n a los !on!eptos $%si!os de la progra&a!i#n de !ontroladores l#gi!os" apli!ados al !ontrol o siste&a de seguridad de una &aquina o pro!eso. Se refiere a los !on!eptos $%si!os de progra&a!i#n estru!tural ' &odular" ' a las !onsidera!iones $%si!as de seguridad fun!ional (S)*2+. Para &ostrar la apli!a!i#n pra!ti!a de estos !on!eptos" se presenta ' anali,a el &is&o e-e&plo fi!ti!io" desarrollado para equipos de los prin!ipales fa$ri!antes de P*.. El &is&o !aso resuelto en un /ri!onex" en un S!hneider ' en un .ontrol*ogix" para ver las diferen!ias entre distintas &ar!as ' &odelos de !ontrolador l#gi!o progra&a$le.
Rolf Dahl-Skog
rolfds0g&ail.!o&
1ndi!e de !ontenido
.ontroladores *#gi!os Progra&a$les..................................................................................2 .onsidera!iones de seguridad.............................................................................................3 Siste&a )nstru&entado de Seguridad (S)S+................................................................4 Seguridad 5un!iona ( 5un!tional Safet' + .................................................................4 6iveles de seguridad (S)*+..........................................................................................4 .onsidera!iones de dise o..................................................................................................7 Progra&a!i#n de un P*......................................................................................................8 9:ue es un algorit&o ;...............................................................................................< Progra&a!i#n Estru!turada........................................................................................10 Progra&a!i#n =odular...............................................................................................11 /ipos de varia$les......................................................................................................12 *engua-es de progra&a!i#n.......................................................................................13 E-e&plos de algorit&os usados en pl!.......................................................................1>
?lgorit&o @5irstAButC .....................................................................................................................................1> ?lgorit&o @5anA)nC ..........................................................................................................................................17 ?lgorit&o @5anAButC .....................................................................................................................................18
Defini!i#n de un !aso fi!ti!io !o&o e-e&plo......................................................................1< Solu!i#n !on Dnit'" de S!hneider.............................................................................21 Solu!i#n !on /ristation" de /ri!onex..........................................................................27 Solu!i#n !on .ontrol*ogix" de Ro!kEell..................................................................22
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 2
Dn P*. per&ite !ontrolar o proteger un pro!eso industrial" posi$ilitando ade&as las op!iones de &onitoreo ' diagnosti!o de !ondi!iones (alar&as+" present%ndolas en un K=) (Ku&an-=a!hine )nterfa!e+ o pantalla de opera!i#n" o present%ndolas a una una red de !ontrol superior.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 2
Dn P*. es un e-e&plo de !ontrol en tie&po real" pues rea!!iona auto&%ti!a&ente ante las !ondi!iones varia$les que esta vigilando. Dn P*. puede ser parte de un siste&a de !ontrol distri$uido (D.S+. B puede ser parte de un S.?D?. B puede ser parte del siste&a de seguridad. Dn D.S ( Distri$uted .ontrol S'ste&+ . Es un siste&a de !ontrol de un pro!eso (de una planta industrial+ for&ado por una red de !ontroladores. Dn D.S esta orientado al !ontrol en tie&po real del pro!eso. En !a&$io se ha$la de un S.?D?" !uando es una red orientada al &onitoreo de equipos distantes (no !ontrol en tie&po real+. En !a&$io" un Siste&a de seguridad" o S)S (Safet' )nstru&ented S'ste&+ es algo distinto a un siste&a de !ontrol" es la prote!!i#n para !uando el pro!eso (o la &aquina+ se sale de !ontrol. Por lo tantoG 6B de$e usarse el &is&o P*. que se usa para el !ontrol de un pro!eso" !o&o parte del siste&a de seguridad (prote!!i#n+ del &is&o pro!eso. Pues" la finalidad de un Sistema de seguridad, es -usta&ente llevar el proceso hacia una condicin segura, cuando su control se sale de los limites de seguridad.
.onsidera!iones de seguridad
*a prin!ipal apli!a!i#n de un P*. en la industria petro-quL&i!as ' de sustan!ias quL&i!as peligrosas" es for&ar parte de un siste&a de seguridad (Safet' )nstru&ented S'ste&+ . I por esto en el dise o de la solu!i#n ade!uada para !ada !aso" sie&pre se de$e anali,arse ta&$iJn las ne!esidades de seguridad de !ada !aso" ' ta&$iJn anali,arse la integridad del dise o del &is&o P*. desde el punto de vista de la seguridad. *a nor&a interna!ional )E. >1408" define los !riterios de seguridad para el dise o" !onstru!!i#n ' opera!i#n de siste&as elJ!tri!os M ele!tr#ni!os M ele!tr#ni!os progra&a$les. *a nor&a interna!ional )E. >1411 esta $asada en la )E. >1408" ' define los !riterios so$re la apli!a!i#n de Sistemas Instrumentados de Seguridad en las industrias de pro!esos" que se utili,a en industrias petro-quL&i!as ' de sustan!ias quL&i!as peligrosas" entre otras. *a nor&a interna!ional )E. >1412 esta $asada en la )E. >1408" ' define los !riterios so$re la apli!a!i#n de Siste&as )nstru&entados de Seguridad en la industria nu!lear. Seguridad N ?usen!ia de riesgo ina!epta$le" de da o a las personas" de da os a la propiedad o al &edio a&$iente.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 3
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 4
Para !ada una de las P5un!i#n de SeguridadP" del pro!eso o la &aquina" de$e deter&inarse el nivel de seguridad (S)*+ requerido" anali,ando la pro$a$ilidad de o!urren!ia de la !ondi!i#n peligrosa" ' la &agnitud del da o poten!ial de sus !onse!uen!ias. S)* es enton!es el nivel de seguridad requerido para !ada deter&inada P5un!i#n de SeguridadP *os requeri&ientos de seguridad (S)*+ de$en sie&pre deter&inarse a partir de un estudio de los riesgos de opera!i#n ( HAZOP + del pro!eso o &aquina !orrespondiente. Dsando las tJ!ni!as de an%lisis que se &en!ionan en las nor&as )E. >1411 e )E. >1408. Si despuJs del an lisis de riesgos de !ada !aso. Se define" que una deter&inada fun!i#n de seguridad (una prote!!i#n+ de$e ser S)*2 (o S)*2" et!+ todos los ele&entos involu!rados en esa fun!i#n de$en !u&plir !on el &is&o !riterioG *os sensores" trans&isores" repetidores" a!tuadores" v%lvulas" et! ' no solo el P*.. Para lograr esto" &u!has ve!es se de$e re!urrir a sensores redundantes" o triple redundantes" o a!tuadores ' v%lvulas redundantes" et!. En el dise o del siste&a de seguridad (S)S+ de$e !onsiderarse el S)* de !ada fun!i#n de seguridad" ' un an%lisis de fallos Q efe!tos" ' !riti!idad" de !ada uno de los !o&ponentes del siste&a.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina >
.onsidera!iones de dise o
*as fun!iones de seguridad" de un siste&as de seguridad" se instalan para proteger a las personas" el &edio a&$iente ' para la prote!!i#n de a!tivos de la e&presa. Estas prote!!iones sie&pre de$en a!tivarse ante una !ondi!i#n peligrosa" pero solo en estas situa!iones. =ientras &a'or el S)* requerido por una fun!i#n de seguridad" de$er%n e&plearse &as re!ursos te!nol#gi!os para garanti,ar el fun!iona&iento de esta fun!i#n de seguridad. I &as !o&ple-o es el siste&a" ' &as !osas podrLan fallar en Jl. Si una fun!i#n de seguridad se a!tiva sin la presen!ia real de la situa!i#n peligrosa (por e-e&plo" de$ido a una falla interna de algHn !o&ponente" falla de instru&enta!i#n" et!.+ provo!a" deten!iones inne!esarias" que signifi!an pJrdidas e!on#&i!as. El dise o de$e in!luir los auto diagn#sti!os ' alar&as ne!esarios para advertir a tie&po las anor&alidades. Dsando redundan!ia ' verifi!a!i#n de dis!repan!ias si es ne!esario.
.o&o la &a'orLa de los P*. solo per&ite for,ar se ales de entrada o salida dis!retos" ' ho' en dLa la &a'orLa de los instru&entos sensores no son dis!retos. El dise o de la l#gi!a de$erLa !onte&plar la for&a de poder ha!er &anteni&iento de la instru&enta!i#n sin tener que detener el pro!eso produ!tivo" in!orporando $'pass te&porales de las prote!!iones" que no des ha$iliten la &edi!i#n ' alar&as. *a revisi#n ' &anteni&iento de los !o&ponentes del siste&a instru&entado de seguridad" puede ser difL!il" o hasta i&posi$le de ha!er sin detener el pro!eso" si en el dise o no se !onsider# el diagnosti!o ' &anteni&iento del siste&a.
El Siste&a resultante puede ser tan !o&ple-o !o&o se i&agine" o tan si&ple !o&o lo que real&ente se ne!esite. Dn siste&a de seguridad &al dise ado" no garanti,a &as seguridad" solo difi!ultara su &anteni&iento ' la opera!i#n del pro!eso. El !o&prar de equipos de &a'or !osto" !ertifi!ados para seguridad" sin un $uen dise!o integral del siste&a" puede que no au&ente la seguridad" pero esta &a'or !o&ple-idad te!nol#gi!a (' &a'or inversi#n+ si podrLa au&entara las deten!iones inne!esarias ' las perdidas e!on#&i!as" por no disponi$ilidad.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 7
Progra&a!i#n de un P*.
Dn progra&a de !o&putadora es un !on-unto de instru!!iones que produ!ir%n la e-e!u!i#n de una deter&inada tarea. En esen!ia" un progra&a es una respuesta predeter&inada" a todas las posi$les !o&$ina!iones de estados de la infor&a!i#n que re!i$e. El pro!eso de progra&a!i#n de un P*. es" por !onsiguiente" un pro!eso" en !u'o desarrollo se requieren !ada una de las siguientes pasosG
".#
Defini!i#n ' an lisis del pro$lema. Este es el paso &as i&portante" tener !laridad de que se ne!esita. Este an%lisis de$erLa in!luir el resultado de un K?RBP. 1. 1 - 9:uJ resultados de$e propor!ionar el siste&a; :ue salidas" so$re que de$e a!tuar. 1. 2 - 9:uJ datos se ne!esitan para deter&inar el resultado; :ue de$e &edir o vigilar (Entradas+ 1. 2 - 9.o&o de$e rea!!ionar ante perdida de infor&a!i#n; .o&o de$e rea!!ionar si no puede &edir varia$les que ne!esita vigilar. (S)*.+ 1. 3 - 9.o&o de$e rea!!ionar ante fallas de si &is&o; .apa!idad de auto diagnosti!o (S)*.+
%.# Defini!i#n de la arquite!tura del hardEare ne!esario (entradasMsalidas" redundan!ia" auto diagnosti!o" et!. +
&.#
'.#
(.#
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 8
9:ue es un algorit&o ;
Dn algorit&o es una se!uen!ia de pasos (instru!!iones o reglas+ para llevar a !a$o una tarea espe!ifi!a. *os algorit&os son independientes tanto del lengua-e de progra&a!i#n en que se expresan" !o&o de la &aquina que los e-e!uta. Dise ar un ?lgorit&o es dise ar un &Jtodo de to&a de de!isiones. *as !ara!terLsti!as funda&entales que de$e !u&plir todo algorit&o sonG *a defini!i#n de un algorit&o de$e des!ri$ir tres partesG Entrada" Pro!eso ' Salida. Dn algorit&o de$e ser pre!iso e indi!ar el orden de reali,a!i#n de !ada paso. Dn algorit&o de$e estar definido. ?nte las &is&as !ondi!iones de entradas" sie&pre de$e o$tener se el &is&o resultado. Dn algorit&o de$e ser finito. De$e de tener un nH&ero finito de pasos. (En ninguna situa!i#n se puede quedar @pensadoC en un !i!lo infinito.
E-e&plo de algorit&oG EntradasG Sot#n de partida Sot#n de parada Estado del &otor SalidasG .o&ando de &ar!ha o deten!i#n ha!ia el &otor *#gi!a del algorit&oG Si &otor esta andando O esta a!tivado $ot#n de partida ) no esta a!tivado $ot#n de parada Enton!es enviar !o&ando de &ar!ha De lo !ontrario enviar !o&ando detener
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina <
Progra&a!i#n Estru!turada.
*a progra&a!i#n estru!turada es la for&a !l%si!a de progra&ar en for&a se!uen!ial. PodrLa&os de!ir que es lo !ontrario a la progra&a!i#n orientada a o$-etos (!lases" eventos+. *a progra&a!i#n estru!turada utili,a solo 2 tipos de estru!turasG Se!uen!ias Sele!!i#n ()nstru!!i#n !ondi!ional+ )ntera!!i#n (repeti!i#n !ondi!ional+
.ada una de estas estru!turas puede a su ve, !ontener otras de estas &is&as estru!turas" a esto se le lla&a Panida&ientoP.
E-e&ploG
Leer BotonPartir Leer BotonParar Si BotonPartir Y No BotonParar Entonces Motor = Activar Sino Motor = Detener FinDelSi
Btro e-e&ploG
Leer x Leer y Si x > y Entonces Escribir x " es mayor q e " y Sino Escribir y " es mayor q e " x FinDelSi
Este e-e&plo tiene un error. 9*o viste; Dn progra&a es una respuesta predeter&inada" a todas las posi$les !o&$ina!iones de estados de la infor&a!i#n que re!i$e. 9:ue o!urre en este e-e&plo si x es igual a ' ; /a&$iJn es!ri$irLa @' es &a'or que xC.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 10
Progra&a!i#n =odular
*a progra&a!i#n &odular !onsiste en dividir un progra&a en &#dulos o su$-progra&as !on el fin de ha!erlo &%s legi$le ' &ane-a$le. Kist#ri!a&ente la progra&a!i#n &odular" es una evolu!i#n de la progra&a!i#n estru!turada" para solu!ionar pro$le&as de progra&a!i#n &as grandes ' !o&ple-os. la progra&a!i#n &odular" !onsiste en dividir un pro$le&a !o&ple-o en varios su$-pro$le&as &%s si&ples" ' estos a su ve, en otros su$ pro$le&as &%s si&ples. Esto se ha!e hasta o$tener su$ pro$le&as lo sufi!iente&ente si&ples !o&o para poder ser resueltos f%!il&ente (divide ' ven!er%s+.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 11
.ada &odulo" es una parte de un progra&a" ' es lo que en infor&%ti!a se !ono!e !o&o Psu$-rutinaP 'M o Pfun!i#nP. /radi!ional&ente se deno&ina @fun!i#nC al su$ progra&a que devuelve un resultado. Pode&os ali&entar una @fun!ionC !on datos ' esta nos entregar% un resultado" sin ne!esitar tener que o!uparnos de su fun!iona&iento interno.
Varia$le de entrada
Varia$le de salida
.o&o e-e&plo de fun!i#n" en la i&agen se &uestra la fun!i#n @S:R/-realC esta es una fun!i#n 'a existente que viene !on el siste&a" si&ple&ente le da&os un valor ' nos devuelve otro valor que es la rai, !uadrada del anterior. De la &is&a &anera pode&os !rear nuestras propias fun!iones para lo que ne!esite&os. *a venta-a de usar un su$ progra&a que sea una @fun!ionC es que pode&os apli!ar &u!has ve!es el &is&o algorit&o para distintos datos" es!ri$iendo una sola ve, el !#digo (algorit&o en lengua-e de progra&a!i#n+" sin tener que es!ri$ir repetidas ve!es el &is&o !#digo. Dna su$rutina o fun!i#n" solo se e-e!uta !uando es lla&ada desde dentro de otro progra&a" ' ha!e que el progra&a prin!ipal se detenga" por que Ple pasaP la e-e!u!i#n a la su$ rutina. El progra&a que lla&o a la su$ rutina" solo !ontinuar% su e-e!u!i#n" !uando la su$ rutina ter&ina" ' le @devuelveP el resultado.
/ipos de varia$les.
En progra&a!i#n" una varia$le es un espa!io reservado en la &e&oria" que pueden !a&$iar de !ontenido a lo largo de la e-e!u!i#n de un progra&a. *as varia$les se representan !on identifi!adores (P/agP+ que ha!en referen!ia al lugar de la &e&oria en donde se al&a!ena un dato. Respe!to a su %&$ito" un varia$le puede serG ,aria$le LocalG .uando la &is&a s#lo es a!!esi$le desde el su$ progra&a al que pertene!e" no pudiendo ser leLda o &odifi!ada desde otro su$ progra&a. ,aria$le -lo$alG .uando la &is&a es a!!esi$le desde todos los su$ progra&as de la apli!a!i#n. En un P*. todas sus entradas ' salidas sie&pre son varia$les glo$ales. *as varia$les internas solo ser%n glo$ales si espe!Lfi!a&ente se las define !o&o tales. De lo !ontrario solo ser%n lo!ales del su$ progra&a dentro del !ual est%n definidas. *a venta-a de usar varia$les lo!ales" es que evita&os tener un gigantes!o listado de varia$les glo$ales" difL!il de &ane-ar.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 12
Respe!to a su tipo" un varia$le puede serG /ipo *ogi!aG (P$ooleanaP+ Verdadero M 5also. /ipo .nteroG un valor entero entre 0 ' n. Donde n depende de la !antidad de $'tes !on que tra$a-e el siste&a" (' si usa o no un $it para representar el signo+.
Por e-e&ploG 2 $'tes N 2x8 $its N 1>$its ----- 2 elevado a 1> N >442>. El valor &axi&o seria >4424
/ipo /ealG o P!o&a flotantePG El rango valido ' su exa!titud varia segHn la !antidad de $'tes !on que tra$a-e el siste&a ( !uo!iente U exponente +.
Por e-e&ploG 213"1> N 2"131> x 10 elevado 2
/ipo !ara!teresG (PStringP+ Es una se!uen!ia de nH&eros enteros" que representa una se!uen!ia de !ara!teres (letras o signos+ de un deter&inado alfa$eto. SegHn el ta&a o de &e&oria que usan" se a!ostu&$ra ha$lar deG Sool N 1 $its S'te N 8 $its Ford N 1> $it Dou$le Ford N 22 $it )nteger N 2 $'tes N 1> $its Dou$le )nteger N 3 $'tes Real N 3 $'tes et!.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 12
*engua-es de progra&a!i#n
El standard interna!ional )E. >1121 define los siguientes lengua-es de progra&a!i#n para P*.G )nstru!tion list ()*+" texto *adder (*D+" grafico 5un!tion $lo!k diagra& (5SD+" grafico Stru!tured text (S/+" texto
El lengua*e 0Instruction list0 no es &as que la representa!i#n en for&a de texto del lengua-e gr%fi!o P*adderP. Es el &as antiguo de los lengua-es de progra&a!i#n de P*.. Pre!ursor del *adder se usa$a !uando los !o&putadores aun no tenLan !apa!idad gr%fi!a.
E-e&plo en )nstru!tion list
LD BotonPartir OR Motor AND NOT BotonParar OUT Motor
El lengua*e LA11./" (Pes!aleraP+" es un lengua-e de progra&a!i#n gr%fi!o &u' popular" 'a que est% $asado en los !l%si!os esque&as de !ontrol elJ!tri!os !on reles. De este &odo" es &u' f%!il de entender para un tJ!ni!o elJ!tri!o.
El &is&o e-e&plo anterior en *adder
| | | BotonPartir BotonParar Motor | |------[ ]------|------[/]----------------------(OUT)---------| | | | | | | | | | | Motor | | |------[ ]------| | | !
1esventa*as del lengua-e ladderG Es el &%s ade!uado para !ontrolar los pro$le&as" donde s#lo las varia$les dis!retas ($oleanas+ son ne!esarias 'Mo donde son el pro$le&a prin!ipal de !ontrol. Es difL!il &anipular las varia$les anal#gi!as ' expresar las opera!iones arit&Jti!as. /iene un soporte &u' li&itado para las &atri!es ' $u!les" resultando a &enudo en la dupli!a!i#n de !#digo.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 13
El lengua*e 02unction $loc3 diagram0 es un lengua-e gr%fi!o" que des!ri$e una fun!i#n entre las varia$les de entrada ' varia$les de salida" !o&o un !on-unto de $loques ele&entales" que est%n !one!tados por lineas lLneas de !onexi#n.
El &is&o e-e&plo anterior en 5un!tion $lo!k diagra&
El lengua*e 0Structured te4t0 es un lengua-e de alto nivel" que es estru!turado en $loques ' sint%!ti!a&ente si&ilar a Pas!al.
El &is&o e-e&plo anterior en Stru!tured text
IF ( BotonPartir OR Motor ) AND NOT BotonParar Motor := TRUE EL!E Motor := FAL!E END"IF THEN
,enta*as del lengua-e Stru!tured text G Soporta instru!!iones arit&eti!as !o&ple-as. Soporta instru!!iones anidadas. Soporta !i!los de itera!i#n (repeat-until" Ehile-do+ Soporta e-e!u!i#n !ondi!ional ()f-/hen-Else" .ase+ Es f%!il agregar !o&entarios que expli!an la l#gi!a.
/odo lo que esta entre (# ' #) es !o&entario ' no se e-e!uta.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 14
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 1>
Este algorit&o @5irstAoutC per&ite tener una foto del estado de las varia$les !riti!as en el instante en que se detuvo la &aquina" de &anera de poder indi!ar !ual fue la !ausante. En el !aso de un !o&presor $asta !on uno de estos algorit&os" por que la &aquina tiene solo dos estados" pero" por e-e&plo en un horno" en que ha' v%lvulas de pilotos a gas" v%lvulas de que&adores de gas ' v%lvulas de que&adores de petroleo. Ka$r% que tener un @5irst-ButC pilotos" un @5irst-ButC que&adores de gas" ' un @5irst-ButC que&adores de petroleo" !ada uno !one!tado a sus varia$les !orrespondientes.
Algoritmo 52an6In7
.onvierte 1> dis!retos en un valor entero entre 0 ' >4424" usado para enviar por !o&uni!a!i#n" los $ooleanos !o&o un valor dentro de un arreglo de valores.
t&*% :=B !i !i !i !i !i !i !i !i !i !i !i !i !i !i !i !i 2itBB 2itB4 2itB6 2itB8 2itB: 2itBF 2itBE 2itBG 2itBD 2itBA 2it4B 2it44 2it46 2it48 2it4: 2it4F &nton+&$ &nton+&$ &nton+&$ &nton+&$ &nton+&$ &nton+&$ &nton+&$ &nton+&$ &nton+&$ &nton+&$ &nton+&$ &nton+&$ &nton+&$ &nton+&$ &nton+&$ &nton+&$ t&*% := t&*% C 4 t&*% := t&*% C 6 t&*% := t&*% C : t&*% := t&*% C D t&*% := t&*% C 4E t&*% := t&*% C 86 t&*% := t&*% C E: t&*% := t&*% C 46D t&*% := t&*% C 6FE t&*% := t&*% C F46 t&*% := t&*% C 4B6: t&*% := t&*% C 6B:D t&*% := t&*% C :BAE t&*% := t&*% C D4A6 t&*% := t&*% C 4E8D: t&*% := t&*% C 86GED
>a(orO,t := t&*%
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 17
Algoritmo 52an6Out7
Es el algorit&o inverso del anterior" extrae 1> dis!retos desde un valor entero entre 0 ' >4424. entregando un arreglo de $ooleanos P?lar&aVxW
t&*%4 :=>a(orIn Para !i = '&$'& 4E 7a$ta 4 r&%&tir (t&*%4 / t&*%6) &$ *&nor .,& A(ar*a[=] = Fa($o D& (o +ontrario A(ar*a[=] = >&r'a'&ro t&*%4 := t&*%4 - t&*%6 Hontin,ar +on (a $i),i&nt& r&%&ti+iIn 4 &nton+&$ t&*%6 := ( 6 &(&-a'o a ( =-4 ) )
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 18
Plantea&iento del pro$le&aG Suponga&os que tene&os un !o&presor de gases re!ipro!o (de pist#n+ &ovido por un &otor elJ!tri!o" ' se ne!esita que tenga las siguientes alar&as ' prote!!iones. El &otor se de$e detener ante !ualquiera de las siguientes !ondi!ionesG Sot#n de deten!i#n &anual Sa-a presi#n de a!eite de lu$ri!a!i#n (&edida por un trans&isor de 3 a 20 &ilia&peres+ ?lta te&peratura de des!arga (&edida por un trans&isor de 3 a 20 &ilia&peres+ Sa-a presi#n de su!!i#n (se al desde un sEit!h de presi#n+ So$re!arga elJ!tri!a (o falla elJ!tri!a en general+ ?lta vi$ra!i#n (se al desde un sEit!h de vi$ra!i#n+ ?lta diferen!ial su!!i#n des!arga (se al desde un sEit!h de presi#n diferen!ial+ El &otor de$e partir solo !uando una persona presione un $ot#n de partida &anual" sie&pre ' !uando en ese &o&ento estJn !u&plidos los siguientes requisitosG 6inguna de las !ondi!iones que lo detienen Presi#n de a!eite de lu$ri!a!i#n tenga un valor nor&al (&edia por el trans&isor+ /e&peratura de des!arga tenga un valor nor&al (&edia por el trans&isor+ Exista presi#n de agua de enfria&iento (se al desde un sEit!h de presi#n+ De$e tener un panel !on lu!es de alar&a que indique !ada una de estas !ondi!iones de alar&a. Este de$e fun!ionar !o&o un panel de alar&as !l%si!o. Esto es la lu, de indi!a!i#n de !ada alar&a de$e parpadear hasta que la nueva alar&a sea re!ono!ida" !on un $ot#n re!ono!er. ?lar&a de deten!i#n por el $ot#n de deten!i#n &anual ?lar&a de &u' $a-a presi#n de a!eite ?lar&a de $a-a presi#n de a!eite
Rolf Dahl-Skog Enero 2012. Volver al
Indice
Pagina 1<
?lar&a de &u' alta te&peratura de des!arga ?lar&a de alta te&peratura de des!arga ?lar&a de $a-a presi#n de su!!i#n ?lar&a de falla elJ!tri!a ?lar&a de alta vi$ra!i#n ?lar&a de alta diferen!ial su!!i#n des!arga ?lar&a de $a-a presi#n de agua de enfria&iento Resu&en alar&a no re!ono!ida (So!ina de alar&a+ Resu&en de !ondi!i#n de alar&a presente (un rele a una alar&a re&ota+ De$e ade&as per&itir que el estado de todas estas alar&as puedan ser leLdas por !o&uni!a!i#n digital desde un D.S.
Se trata de un e-e&plo tLpi!o de los &as si&ples. El desarrollados que se &uestra a !ontinua!i#n per&iten dar un vista,o a las parti!ularidades" de la progra&a!i#n de los prin!ipales fa$ri!antes de pl!" ' ver !o&o se apli!a en ellos los !on!eptos de progra&a!i#n estru!turada ' &odular. *as fun!iones" arreglos" !i!los" et!.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 20
El pri&er progra&a que se e-e!uta es @?nalogasC" donde se es!alan las entradas anal#gi!as ' se !o¶n !on las valores de alar&a. Este progra&a a su ve, usa la fun!i#n @Es!alarC. *a funcin 5.scalar7 re!i$e la entrada an%loga en rango de 1000 a 4000 &ili volt ' la es!ala al rango deseado. /a&$iJn levanta una alar&a si la entrada esta fuera de su rango.
>a(orIn := INT"TO"REAL(>a(or) Ma=In := INT"TO"REAL(Ma="in) MinIn := INT"TO"REAL(Min"in) E$+a(a'o := ((((>a(orIn - MinIn)/(Ma=In - MinIn))#(Ma="O,t - Min"O,t))C Min"O,t) IF (>a(or K !o2r&Ran)o) OR (>a(or J Ba3oRan)o) THEN Fa((a := TRUE EL!E Fa((a := FAL!E END"IF
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 21
El programa 5Analogas7.
El segundo progra&a que se e-e!uta es @Prin!ipalC" en el se de!ide si &antener" detener o dar partida al &otor prin!ipal. KS21 es el $oton de parar (nor&al !errado+. KS22 es el $oton de partir (nor&al a$ierto+. @Read'C es la indi!a!i#n de que est%n todas las !ondi!iones para partir. X=21 el el !o&ando de &ar!ha o deten!i#n ha!ia el &otor.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 22
El programa 5Principal7
DespuJs se e-e!uta el programa 5Alarmas7 donde se infor&a al operador los estados de las alar&as. El progra&a @?lar&asC usa un arreglo lla&ado @?lar&C (de di&ensi#n 0 a <<+ del tipo de @?lar&/ipoC que es una estru!tura !o&puesta de ...
En la pri&era parte de este progra&a se aso!ian las !ondi!iones ' estados a las entradas de las alar&as.
(#"""""""""""""LEER""E!TADO!"""""""""""""#) Bot"R&+ono+& := H!68 A(ar*[B]/In := NOT(H!64) (#D&t&n+ion *an,a(#) A(ar*[4]/In := PLLB4 (#*,5 2a3a %r&$ion a+&it&#) A(ar*[6]/In := PL44 (#2a3a %r&$ion a+&it&#) A(ar*[8]/In := THHB6 (#*,5 a(ta t&*% '&$+ar)a#) A(ar*[:]/In := TH46 (#a(ta t&*% '&$+ar)a#) A(ar*[F]/In := NOT(PLLB8) (#2a3a %r&$ion $,++ion#) A(ar*[E]/In := NOT(LHHB:) (#0a((a &(&+tri+a#)
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 22
A(ar*[G]/In := NOT(>HHBF) (#a(ta -i2ra+ion#) A(ar*[D]/In := NOT(PDHHBE) (#a(ta 'i0&r&n+ia( $,++ion '&$+ar)a#) A(ar*[A]/In := NOT(PL4G) (#2a3a %r&$ion a),a#) A(ar*[4B]/In := FAL!E (#A(ar*a 'i$%oni2(&#) A(ar*[44]/In := FAL!E (#A(ar*a 'i$%oni2(&#) A(ar*[46]/In := FAL!E (#A(ar*a 'i$%oni2(&#) A(ar*[48]/In := FAL!E (#A(ar*a 'i$%oni2(&#) A(ar*[4:]/In := FAL!E (#A(ar*a 'i$%oni2(&#) (# $& %,&'&n $&),ir a)r&)an'o 7a$ta AA a(ar*a$#)
En la segunda parte de este progra&a se e-e!uta la l#gi!a de panel de alar&as" para esto se lla&a " por !ada una de las alar&as" a la fun!i#n @=oduloA?lar&aC.
(# EMEHUTAR LO@IHA DEL PANEL DE ALARMA! #) (# ((a*a a ,na in$tan+ia '& (a 0,n+ion NMi"R&(o3N #) (# .,& &ntr&)a &( %ar%a'&o %ara (a$ (,+&$ #) P,($o$ := R&(o34/P,($o FOR i:=B TO AA DO (# R&%&tir %ara (a$ a(ar*a$ B 7a$ta (a AA #) (# ((a*a a (a 0,n+ion NMo',(o"A(ar*aN %a$an'o(& -a(or&$ '& (a a(ar*a i #) Mo',(o"A(ar*a ( Entra'a := A(ar*[i]/In1 ?a"D&t&+ := A(ar*[i]/D&t&+1 Bot"R&+ono+&r := Bot"R&+ono+&1 ?a"R&+on := A(ar*[i]/R&+on1 Par%a'&o := P,($o$
Ciclo
(# (a 0,n+ion NMo',(o"A(ar*aN $& &3&+,ta 5 &ntr&)a -a(or&$ #) A(ar*[i]/D&t&+ := Mo',(o"A(ar*a/D&t&+ta'a A(ar*[i]/R&+on := Mo',(o"A(ar*a/R&+ono+i'a A(ar*[i]/O,t := Mo',(o"A(ar*a/!a(i'a A(ar*[i]/L,O := Mo',(o"A(ar*a/L,O END"FOR (# R&%&tir +on (a $i),i&nt& a(ar*a i #)
En la ter!era parte de este progra&a se !opia el resultado de la l#gi!a de alar&as ha!ia las salidas !orrespondientes.
(# LA64 LAB4 LA44 LAB6 LA46 LAB8 LAB: LABF LABE
Rolf Dahl-Skog
E!HRIBIR RE!ULTADO! EN LUHE! DE ALARMA #) := A(ar*[B]/L,O (#D&t&n+ion *an,a(#) := A(ar*[4]/L,O (#*,5 2a3a %r&$ion a+&it&#) := A(ar*[6]/L,O (#2a3a %r&$ion a+&it&#) := A(ar*[8]/L,O (#*,5 a(ta t&*% '&$+ar)a#) := A(ar*[:]/L,O (#a(ta t&*% '&$+ar)a#) := A(ar*[F]/L,O (#2a3a %r&$ion $,++ion#) := A(ar*[E]/L,O (#0a((a &(&+tri+a#) := A(ar*[G]/L,O (#a(ta -i2ra+ion#) := A(ar*[D]/L,O (#a(ta 'i0&r&n+ia( $,++ion '&$+ar)a#)
Enero 2012. Volver al
Indice
Pagina 23
A(ar*[A]/L,O (#2a3a %r&$ion a),a#) := A(ar*[4B]/L,O (#A(ar*a 'i$%oni2(&#) := A(ar*[44]/L,O (#A(ar*a 'i$%oni2(&#) := A(ar*[46]/L,O (#A(ar*a 'i$%oni2(&#) := A(ar*[48]/L,O (#A(ar*a 'i$%oni2(&#) := A(ar*[4:]/L,O (#A(ar*a 'i$%oni2(&#) := A(ar*[4F]/L,O (#A(ar*a 'i$%oni2(&#)
(#""""""""""""""""""""""""""""""""""""""""""""""""""""""""#) (# E!TADO! DE ALARMA! PARA HOMUNIHAHION MODBU! #) PM4BB := A(ar*[B]/O,t (#Mo'2,$ B:B4B4 = A(ar*a D&t&n+ion *an,a(#) PM4B4 := A(ar*[4]/O,t (#Mo'2,$ B:B4B6 = A(ar*a *,5 2a3a %r&$ion a+&it&#) PM4B6 := A(ar*[6]/O,t (#Mo'2,$ B:B4B8 = A(ar*a 2a3a %r&$ion a+&it&#) PM4B8 := A(ar*[8]/O,t (#Mo'2,$ B:B4B: = A(ar*a *,5 a(ta t&*% '&$+ar)a#) PM4B: := A(ar*[:]/O,t (#Mo'2,$ B:B4BF = A(ar*a a(ta t&*% '&$+ar)a#) PM4BF := A(ar*[F]/O,t (#Mo'2,$ B:B4BE = A(ar*a 2a3a %r&$ion $,++ion#) PM4BE := A(ar*[E]/O,t (#Mo'2,$ B:B4BG = A(ar*a 0a((a &(&+tri+a#) PM4BG := A(ar*[G]/O,t (#Mo'2,$ B:B4BD = A(ar*a a(ta -i2ra+ion#) PM4BD := A(ar*[D]/O,t (#Mo'2,$ B:B4BA = A(ar*a a(ta 'i0&r&n+ia( $,++ion '&$+ar)a#) PM4BA := A(ar*[A]/O,t (#Mo'2,$ B:B44B = A(ar*a 2a3a %r&$ion a),a#) PM44B := A(ar*[4B]/O,t (#Mo'2,$ B:B444 = A(ar*a 'i$%oni2(&#) PM444 := A(ar*[44]/O,t (#Mo'2,$ B:B446 = A(ar*a 'i$%oni2(&#) PM446 := A(ar*[46]/O,t (#Mo'2,$ B:B448 = A(ar*a 'i$%oni2(&#) PM448 := A(ar*[48]/O,t (#Mo'2,$ B:B44: = A(ar*a 'i$%oni2(&#) PM44: := A(ar*[4:]/O,t (#Mo'2,$ B:B44F = A(ar*a 'i$%oni2(&#) PM44F := A(ar*[4F]/O,t (#Mo'2,$ B:B44E = A(ar*a 'i$%oni2(&#)
*a fun!i#n @8odulo6AlarmaC !ontiene lo que se &uestra en la i&agen a la dere!ha. Este es la &is&a l#gi!a apli!ada a !ada una de las << alar&as.
El usar un arreglo en !on-unto !on un !i!lo !ondi!ional" per&ite en ve, de es!ri$ir << ve!es la l#gi!a para !ada una de las << alar&as. Es!ri$irla una sola ve, ' usarla << ve!es para las << alar&as.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 24
El progra&a @?lar&asC ta&$iJn lla&a a la funcin 58i6relo*7 para generar el pulso !on que parpadean las lu!es de las alar&as.
6ota que las varia$les x1" x2" x2" /i&er1 ' /i&er2" no apare!en en el listado de varia$les de los de&%s progra&as" por que son varia$les lo!ales (internas+ de esta fun!i#n @=iArelo-C Esta fun!i#n no tiene entradas" solo tiene una salida dis!reta lla&ada @PulsoC
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 2>
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 27
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 28
Este progra&a @?lar&asC lla&a a las siguientes fun!ionesG *a funcin 58i6/elo*7 no tiene entradas" se usa para generar el pulso para las lu!es inter&itentes.
F"N#$%&N'BL&#( Panel'Alarmas )* Entra+as y sali+as +e esta , nci-n *. /A0'%NP"$ )* No se necesitan entra+as*. END'/A0 /A0'&"$P"$ P lso 1 B&&L 2 END'/A0 )* /ariables Locales *. /A0 $imer3 1 $&N2 $imer4 1 $&N2 x35 x45 x6 1 B&&L 2 END'/A0 )* F nction Bloc7 Bo+y *. IF =6 THEN =8:=FAL!E EL!E =8:=TRUE END"IF Ti*&r4(IN:==81PT:=tQ4$) =4 := Ti*&r4/R Ti*&r6(IN:==41PT:=tQ4$) =6 := Ti*&r6/R IF =4 THEN P,($o:=FAL!E END'F"N#$%&N'BL&#( EL!E P,($o:=TRUE END"IF
Equivalente en *adder
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 2<
.on el softEare /ristation (de /ri!onex+ no existe &anera de ha!er un !i!lo repetitivo. Esta li&ita!i#n de /ri!onex es inten!ional" ' de$e ser para i&pedir que por errores de progra&a!i#n" pueda llegar a for&arse" en alguna !ondi!i#n" un !i!lo sin fin. De he!ho los /ri!onex son los Hni!os !ertifi!ados para apli!a!iones en que se requiera S)* 2" ' gestionan auto&%ti!a&ente su propio auto diagnosti!o ' redundan!ia. Por esto" la Hni!a for&a de ha!er la &is&a l#gi!a para las 10 alar&as" es es!ri$ir 10 ve!es la &is&a l#gi!a. Sin e&$argo !o&o esta dentro de una fun!i#n" si ne!esita&os &as alar&as pode&os lla&ar varias ve!es a la &is&a fun!i#n. Por e-e&plo" si ne!esit%ra&os 30 alar&as" podrLa&os dentro del progra&a @?lar&asC poner 3 ve!es la fun!i#n @PanelA?lar&asC.que tiene la l#gi!a de 10 alar&as por !ada ve,. *a fun!i#n @Panel6AlarmasC !ontiene la l#gi!a de las alar&as.
F"N#$%&N'BL&#( Panel'Alarmas )* Entra+as y sali+as +e esta , ncion *. /A0'%NP"$ 0econocer5 $est 1 B&&L2 %n'835 %n'845 %n'865 %n'895 %n'8:5 %n'8;5 %n'8<5 %n'8=5 %n'8>5 %n'38 1B&&L2 P lsos 1B&&L2 END'/A0 /A0'&"$P"$ N eva5 0es men 1 B&&L2 & t'835 & t'845 & t'865 & t'895 & t'8:5 & t'8;5 & t'8<5 & t'8=5 & t'8>5 & t'38 1B&&L2 L ?'835 L ?'845 L ?'865 L ?'895 L ?'8:5 L ?'8;5 L ?'8<5 L ?'8=5 L ?'8>5 L ?'38 1B&&L2 END'/A0 )* /ariables Locales *. /A0 Det'835 Det'845 Det'865 Det'895 Det'8:5 Det'8;5 Det'8<5 Det'8=5 Det'8>5 Det'38 1B&&L2 0ec'835 0ec'845 0ec'865 0ec'895 0ec'8:5 0ec'8;5 0ec'8<5 0ec'8=5 0ec'8>5 0ec'38 1B&&L2 END'/A0
(# IF IF IF IF
ALARMA 4 #) (In"B4 OR D&t"B4) AND NOT(R&+"B4) THEN D&t"B4:=TRUE EL!E D&t"B4:=FAL!E END"IF (In"B4 OR D&t"B4) AND (R&+ono+&r OR R&+"B4) THEN R&+"B4:=TRUE EL!E R&+"B4:=FAL!E END"IF (D&t"B4 OR R&+"B4) THEN O,t"B4:=TRUE EL!E O,t"B4:=FAL!E END"IF (D&t"B4 AND P,($o$) OR R&+"B4 OR T&$t THEN L,O"B4:=TRUE EL!E L,O"B4:=FAL!E END"IF
(# IF IF IF IF
ALARMA 6 #) (In"B6 OR D&t"B6) AND NOT(R&+"B6) THEN D&t"B6:=TRUE EL!E D&t"B6:=FAL!E END"IF (In"B6 OR D&t"B6) AND (R&+ono+&r OR R&+"B6) THEN R&+"B6:=TRUE EL!E R&+"B6:=FAL!E END"IF (D&t"B6 OR R&+"B6) THEN O,t"B6:=TRUE EL!E O,t"B6:=FAL!E END"IF (D&t"B6 AND P,($o$) OR R&+"B6 OR T&$t THEN L,O"B6:=TRUE EL!E L,O"B6:=FAL!E END"IF
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 20
(# IF IF IF IF
ALARMA 8 #) (In"B8 OR D&t"B8) AND NOT(R&+"B8) THEN D&t"B8:=TRUE EL!E D&t"B8:=FAL!E END"IF (In"B8 OR D&t"B8) AND (R&+ono+&r OR R&+"B8) THEN R&+"B8:=TRUE EL!E R&+"B8:=FAL!E END"IF (D&t"B8 OR R&+"B8) THEN O,t"B8:=TRUE EL!E O,t"B8:=FAL!E END"IF (D&t"B8 AND P,($o$) OR R&+"B8 OR T&$t THEN L,O"B8:=TRUE EL!E L,O"B8:=FAL!E END"IF
(# IF IF IF IF
ALARMA : #) (In"B: OR D&t"B:) AND NOT(R&+"B:) THEN D&t"B::=TRUE EL!E D&t"B::=FAL!E END"IF (In"B: OR D&t"B:) AND (R&+ono+&r OR R&+"B:) THEN R&+"B::=TRUE EL!E R&+"B::=FAL!E END"IF (D&t"B: OR R&+"B:) THEN O,t"B::=TRUE EL!E O,t"B::=FAL!E END"IF (D&t"B: AND P,($o$) OR R&+"B: OR T&$t THEN L,O"B::=TRUE EL!E L,O"B::=FAL!E END"IF
(# IF IF IF IF
ALARMA F #) (In"BF OR D&t"BF) AND NOT(R&+"BF) THEN D&t"BF:=TRUE EL!E D&t"BF:=FAL!E END"IF (In"BF OR D&t"BF) AND (R&+ono+&r OR R&+"BF) THEN R&+"BF:=TRUE EL!E R&+"BF:=FAL!E END"IF (D&t"BF OR R&+"BF) THEN O,t"BF:=TRUE EL!E O,t"BF:=FAL!E END"IF (D&t"BF AND P,($o$) OR R&+"BF OR T&$t THEN L,O"BF:=TRUE EL!E L,O"BF:=FAL!E END"IF
(# IF IF IF IF
ALARMA E #) (In"BE OR D&t"BE) AND NOT(R&+"BE) THEN D&t"BE:=TRUE EL!E D&t"BE:=FAL!E END"IF (In"BE OR D&t"BE) AND (R&+ono+&r OR R&+"BE) THEN R&+"BE:=TRUE EL!E R&+"BE:=FAL!E END"IF (D&t"BE OR R&+"BE) THEN O,t"BE:=TRUE EL!E O,t"BE:=FAL!E END"IF (D&t"BE AND P,($o$) OR R&+"BE OR T&$t THEN L,O"BE:=TRUE EL!E L,O"BE:=FAL!E END"IF
(# IF IF IF IF
ALARMA G #) (In"BG OR D&t"BG) AND NOT(R&+"BG) THEN D&t"BG:=TRUE EL!E D&t"BG:=FAL!E END"IF (In"BG OR D&t"BG) AND (R&+ono+&r OR R&+"BG) THEN R&+"BG:=TRUE EL!E R&+"BG:=FAL!E END"IF (D&t"BG OR R&+"BG) THEN O,t"BG:=TRUE EL!E O,t"BG:=FAL!E END"IF (D&t"BG AND P,($o$) OR R&+"BG OR T&$t THEN L,O"BG:=TRUE EL!E L,O"BG:=FAL!E END"IF
(# IF IF IF IF
ALARMA D #) (In"BD OR D&t"BD) AND NOT(R&+"BD) THEN D&t"BD:=TRUE EL!E D&t"BD:=FAL!E END"IF (In"BD OR D&t"BD) AND (R&+ono+&r OR R&+"BD) THEN R&+"BD:=TRUE EL!E R&+"BD:=FAL!E END"IF (D&t"BD OR R&+"BD) THEN O,t"BD:=TRUE EL!E O,t"BD:=FAL!E END"IF (D&t"BD AND P,($o$) OR R&+"BD OR T&$t THEN L,O"BD:=TRUE EL!E L,O"BD:=FAL!E END"IF
(# IF IF IF IF
ALARMA A #) (In"BA OR D&t"BA) AND NOT(R&+"BA) THEN D&t"BA:=TRUE EL!E D&t"BA:=FAL!E END"IF (In"BA OR D&t"BA) AND (R&+ono+&r OR R&+"BA) THEN R&+"BA:=TRUE EL!E R&+"BA:=FAL!E END"IF (D&t"BA OR R&+"BA) THEN O,t"BA:=TRUE EL!E O,t"BA:=FAL!E END"IF (D&t"BA AND P,($o$) OR R&+"BA OR T&$t THEN L,O"BA:=TRUE EL!E L,O"BA:=FAL!E END"IF
EL!E D&t"4B:=FAL!E
END"IF
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 21
IF (In"4B OR D&t"4B) AND (R&+ono+&r OR R&+"4B) THEN R&+"4B:=TRUE EL!E R&+"4B:=FAL!E END"IF IF (D&t"4B OR R&+"4B) THEN O,t"4B:=TRUE EL!E O,t"4B:=FAL!E END"IF IF (D&t"4B AND P,($o$) OR R&+"4B OR T&$t THEN L,O"4B:=TRUE EL!E L,O"4B:=FAL!E END"IF
(# RE!UMEN #) IF D&t"B4 OR D&t"B6 OR D&t"B8 OR D&t"B: OR D&t"BF OR D&t"BE OR D&t"BG OR D&t"BD OR D&t"BA OR D&t"4B THEN N,&-a:=TRUE EL!E N,&-a:=FAL!E
END"IF
IF O,t"B4 OR O,t"B6 OR O,t"B8 OR O,t"B: OR O,t"BF OR O,t"BE OR O,t"BG OR O,t"BD OR O,t"BA OR O,t"4B THEN R&$,*&n:=TRUE EL!E R&$,*&n:=FAL!E END'F"N#$%&N'BL&#(
END"IF
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 22
.ontrol*ogix per&ite varios progra&as ' !ada uno de estos !ontener a su ve, su$ progra&as. Dentro de la !onfigura!i#n de la tarea (/ask+ se define en que orden se e-e!utan los progra&as pertene!ientes a la tarea.
.ada progra&a tiene definido !ual es el Hni!o su$ progra&a ini!ial" el que de$e lla&ar a los otros su$ progra&as" si se quiere que los otros su$ progra&as se e-e!uten. De esta &anera se puede usar un su$ progra&a !o&o si fuera una fun!i#n" lla&%ndolo varias ve!es" pasando le !ada ve, datos distintos" ' le'endo !ada ve, el resultado.
Existen varia$les glo$ales @/ag !ontrollerC dentro de las !uales est%n las entradas ' salidas fLsi!as -unto !on todas las varia$les de diagnosti!o del siste&a. I las varia$les que !rea&os para ser visi$les por todos los progra&as. .ada progra&a tiene sus propias varia$les lo!ales visi$les por todos sus su$ progra&as" pero ina!!esi$les desde otros progra&as. En este e-e&plo los /ag del progra&a .o&presor" ' los /ag del progra&a ?lar&as.
En este e-e&plo se han definido dos tipos de estru!turas de datos" los lla&ados @?nalogA)nC ' los lla&ados @/ipoA?lar&C. En este e-e&plo" se definen las varia$le lo!ales (del progra&a @.o&presorCC+ P/01 ' //02 a&$as del tipo @?nalogAinC. Esto per&ite tener agrupado" el rango" el valor de entrada" el valor de ingenierLa ' es estado del !anal" en una &is&a varia$le. Ver la i&agen siguiente.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 22
En este e-e&plo" se definen la varia$le glo$al @?lar&aC !o&o un arreglo de datos del tipo @/ipoA?lar&C. Ver la i&agen de la dere!ha El arreglo de alar&as es varia$le glo$al" por que aunque toda la logi!a ' pro!esa&iento de alar&as esta dentro del progra&a @?lar&asC" las ?lar&aVxW.Entrada ser%n a!tivadas desde el progra&a @.o&presorC Esto per&ite separar la logi!a de fun!iona&iento del !o&presor" de la logi!a de pro!esa&iento de las alar&as del &is&o" tener una estru!tura &as ordenada" ' no tener que !rear tantas varia$les individuales.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 23
*o pri&ero que se e-e!uta es el programa 5Compresor7 ' el Hni!o su$ progra&a de este que se e-e!uta auto&%ti!a&ente es @=ainA!o&presorC. /odos los de&%s su$ progra&as de$en ser expli!ita &ente lla&ados por la l#gi!a *o pri&ero que ha!e el @=ainA!o&presorC es lla&ar al su$ progra&a @*eerAdis!retasC.
El su$ progra&a @*eerAdis!retasC (i&agen de la dere!ha+ !one!ta los !anales fLsi!os de entrada" definidos en la !onfigura!i#n del hardEare" !on las varia$les dis!retas !orrespondientes. Ver i&agen de la dere!ha.
.uando ter&ina el su$ progra&a @*eerAdis!retasC !ontinua la e-e!u!i#n del @=ainA!o&presorC Define el rango para la entrada an%loga del trans&isor de presi#n ( P/...+" ' luego lla&a al su$ progra&a @*eerAP/01C
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 24
El su$ progra&a @*eerAP/01C .one!ta el !anal fisi!o de entrada !on la varia$le !orrespondiente. El !anal anal#gi!o de entrada esta !onfigurado para leer una se al de 0 a 20 &ilia&peres" !o&o 0 a 4 volt. Si se verifi!a que la se al es &a'or a 0"<4 volt ' es &enor a 4"1 volt" se !onsidera que esta dentro del rango nor&al ' se a!tiva la varia$le P/01.BY
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 2>
.uando ter&ina el su$ progra&a @*eerAP/01C !ontinua la e-e!u!i#n del @=ainA!o&presorC" que !ontinua definiendo el rango para la entrada an%loga del trans&isor de te&peratura ( //...+" ' luego lla&a al su$ progra&a @*eerA//02C
El su$ @*eerA//02C ha!e !on la se al de te&peratura" lo &is&o que hi,o @*eerAP/01C !on la de presi#n. Verifi!a que este dentro de su rango" ' es!alarla al rango de ingenieria. *uego la !o¶ !on los valores predefinidos de alar&a" para a!tivar o apagar las alar&as.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 27
.uando ter&ina el su$ progra&a @*eerA//02C !ontinua la e-e!u!i#n del @=ainA!o&presorC lla&ando al su$ progra&a @PartirApararC
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 28
? !ontinua!i#n" en este &is&o su$ progra&a" est%n !one!tados los estados o !ondi!iones" a las !orrespondientes alar&as que se a!tivaran.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 2<
.uando ter&ina el su$ progra&a @PartirApararC !ontinua la e-e!u!i#n del @=ainA!o&presorC lla&ando al su$ progra&a @Es!ri$irAsalidasC
En @Es!ri$irAsalidasC se !one!tan las varia$les dis!retas !on los !anales fLsi!os de salida !orrespondientes" definidos en la !onfigura!i#n del hardEare.
6ote !e que la &is&a varia$le @PartirMPararC puede !one!tarse a uno" a dos o a tres !anales de salida" si&ult%nea&ente. Esto podrLa usarse para au&entar la seguridad" ante la posi$ilidad de falla del !anal de salida del pl!" por e-e&ploG Si la l#gi!a !one!ta la varia$le de salida a a tres salidas fLsi!as" !ada una !on un rele distinto. I estos tres reles se ala&$ran en una !onexi#n 2 de 2 para a!tivar el &otor. *as tres salidas tendrLan que ser de &#dulos distintos del pl!" por si falla un &odulo !o&pleto. I tendrLa que ha$er tres entradas dis!retas &onitoreando el estado de estos tres reles" para poder darse !uenta" ' alar&ar (falla de redundan!ia en pl!+" si estos no !on!uerdan entre si. *os &is&os !riterios podrian usarse para se ales de entradas redundantes al pl!.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 30
DespuJs del progra&a @.o&presorC se e-e!uta es el programa 5Alarmas7 ' el Hni!o su$ progra&a de este que se e-e!uta auto&%ti!a&ente es @=ainAalar&sC. /odos los de&%s su$ progra&as de$en ser expli!ita &ente lla&ados por la l#gi!a *o pri&ero que ha!e el progra&a @=ainAalar&sC es lla&ar al su$ progra&a @[eneraAParpadeoC !u'a Hni!a fun!i#n es o$tener un pulso para las lu!es de alar&a.
*uego el progra&a @=ainAalar&sC li&pia (pone en falso+ las varia$les que son resu&en de alar&as.
I despuJs lla&a a e-e!utar 100 ve!es el &is&o su$ progra&a" pero !ada ve, !on datos distintos. *a pri&era ve, !on indi!e N 0" despuJs !on indi!e N 1" despuJs !on indi!e N 2" et! Z Kasta indi!e N <<. Esto per&ite e-e!utar la &is&a l#gi!a para la alar&a 0" para la alar&a 1" para la alar&a 2 " et!... DespuJs de e-e!utar esta &is&a l#gi!a por !ada una de las alar&as" verifi!a si alguna de ellas volvi# a a!tivar (poner en verdadero+ las varia$les que son resu&en de alar&as.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 31
En la penHlti&a linea si la alar&a esta a!tiva ' aun no ha sido re!onosida" a!tiva el resu&en de alar&a nueva. I ta&$iJn !opia esta !ondi!i#n al arreglo de $ooleanos @?lar&asA6uevasC. En la Hlti&a linea si la alar&a esta presente" re!ono!ida o no" a!tiva el resu&en de alar&a presente. I ta&$iJn !opia esta !ondi!i#n al arreglo de $ooleanos @?lar&asAD.SC. Este arreglo podrLa ser enviado por !o&uni!a!i#n a un D.S.
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 32
Si has leLdo hasta aquL" gra!ias por tu pa!ien!ia. Si !rees que este do!u&ento le podrLa interesar a alguien &as" reenvLa se lo. .ualquier sugeren!ia &e pueden en!ontrar en rolfds0g&ail.!o&
Rolf Dahl-Skog
Enero 2012.
Volver al
Indice
Pagina 32