Está en la página 1de 43

Introduccin a la Programacin controladores lgicos

(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

.ontroladores *#gi!os Progra&a$les.


Dn .ontrolador *#gi!o Progra&a$le" o P.*... (Progra&&a$le Logi! Controller+ es un !o&putador espe!ial&ente dise ado para auto&ati,a!i#n industrial" para el !ontrol de una &aquina o pro!eso industrial. ? diferen!ia de un !o&putador tradi!ional" un P*. no tiene te!lado" pantalla ni rat#n" ta&po!o tienen dis!o duro ni FindoEs. Pero interna&ente si es un !o&putador" !on su hardEareG pro!esadores" &e&oria" puertos de !o&uni!a!i#n" et!. ' !on su softEareG un siste&a operativo (que le lla&an 5ir&Eare +" ' una progra&a!i#n" espe!ifi!a para la apli!a!i#n o el !aso parti!ular en que se esta usando. *a prin!ipal diferen!ia entre un P. ' un P*." es que el P*. !ontienen &Hltiples !anales para &edir distintas se ales provenientes de sensores instalados en la &aquina o pro!eso que !ontrolan. I ta&$iJn tienen !anales de salida de se al que a!tHan so$re la &aquina o pro!eso que !ontrolan.

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

Siste&a )nstru&entado de Seguridad (S)S+


Dn siste&a instru&entado de seguridad ( Safet' )nstru&ented S'ste& + es un siste&a que reali,a fun!iones espe!Lfi!as para !onseguir &antener el pro!eso dentro de !ondi!iones seguras. Dete!tan !uando las !ondi!iones del pro!eso son ina!epta$les o peligrosas" ' to&an auto&%ti!a&ente a!!iones !orre!tivas. *a finalidad de un Siste&a de seguridad ( Safet' )nstru&ented S'ste& +" es llevar el pro!eso ha!ia una !ondi!i#n segura" !uando su !ontrol se sale de los li&ites de seguridad. *os Siste&a de seguridad" est%n separados ' son independientes de los siste&as de !ontrol nor&al" aunque est%n !o&puestos por ele&entos si&ilares" !o&o sensores" pro!esadores de la l#gi!a" a!tuadores " et!.

Seguridad 5un!iona ( 5un!tional Safet' +


Estas nor&as definen una @5un!i#n de seguridadC ( 5un!tional Safet' + !o&o la dete!!i#n de una !ondi!i#n poten!ial&ente peligrosa" ' la a!tiva!i#n de un dispositivo de prote!!i#n" o &e!anis&o !orre!tivo para evitar las !onse!uen!ias del evento peligroso. *as fun!iones de seguridad tienen el o$-etivo de redu!ir la pro$a$ilidad de eventos peligrosos que pueden !ausar da o. .ada !ondi!i#n poten!ial&ente peligrosa" que tenga el pro!eso (o la &aquina+ sera una fun!i#n de seguridad distinta. ?un que varias fun!iones de seguridad pueden rea!!ionar a!tivando el &is&o dispositivo de prote!!i#n. *a seguridad fun!ional se refiere a los siste&as a!tivos que identifi!an una !ondi!i#n ' rea!!ionan" para proteger de las !onse!uen!ias de esa !ondi!i#n. Se refiere a los siste&as instru&entados de seguridadO no se refieren a los &e!anis&os pasivos (por e-e&plo una v%lvula de so$re presi#n+.

6iveles de seguridad (S)*+


El !orre!to fun!iona&iento de un siste&a de seguridad" requiere un !orre!to dise o para propor!ionar la integridad ' la !onfia$ilidad requerida" por !ada !aso. 6o todas las @fun!iones de seguridadC" requieren el &is&o nivel de seguridad" por que !ada !ondi!i#n poten!ial&ente peligrosa" tiene distintas pro$a$ilidades de o!urren!ia" ' ta&$iJn sus !onse!uen!ias tienen distintas &agnitudes de da o poten!ial. El P6ivel de )ntegra!i#n de SeguridadP o S)* ( Safet' )ntegrit' *evel + es el nivel de redu!!i#n de riesgo que se requiere para !ada P5un!i#n de SeguridadP. Siendo S)*-1 es el nivel &enos seguro" ' S)*-3 es el nivel &as seguro.

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!. +

&.#

Dise o de los algorit&os.

'.#

Progra&a!i#n del !#digo" en los lengua-es de progra&a!i#n.

(.#

Depura!i#n ' verifi!a!i#n del progra&a (prue$as efe!tivas+.

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.

/odo progra&a de !o&putador es un !on-unto de algorit&os.

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

Venta-as de la progra&a!i#n estru!turada


-. *os progra&as son &%s f%!iles de entender" pueden ser leLdos de for&a se!uen!ial para entender la l#gi!a. -. *a estru!tura de los progra&as es !lara" puesto que las instru!!iones est%n &%s ligadas o rela!ionadas entre sL. -. Redu!!i#n del esfuer,o en las prue$as ' depura!i#n. El segui&iento de los errores del progra&a se fa!ilita de$ido a su estru!tura &%s sen!illa ' !o&prensi$le" por lo que los errores se pueden dete!tar ' !orregir &%s f%!il&ente. -. Redu!!i#n de los !ostos de &anteni&iento. ?n%loga&ente a la depura!i#n" durante la fase de &anteni&iento" &odifi!ar o extender los progra&as resulta &%s f%!il. -. *os $loques de !#digo son !asi auto-expli!ativos" lo que redu!e ' fa!ilita la do!u&enta!i#n.

)n!onvenientes de la progra&a!i#n estru!turada


El prin!ipal in!onveniente de la progra&a!i#n estru!turada es que se o$tiene un Hni!o $loque de progra&a" que !uando se ha!e de&asiado grande" puede resultar pro$le&%ti!o para el &ane-o de su !#digo fuente por su gran extensi#n. Esto se resuelve e&pleando" en for&a !on-unta tanto las tJ!ni!as de progra&a!i#n estru!turada !o&o las de programacin modular. En la a!tualidad la !on-un!i#n PProgra&a!i#n estru!turadaP ' Pprogra&a!i#n &odularP es la &%s utili,adas" en la progra&a!i#n de P*." en la que los &#dulos tienen una estructura *er r+uica en la que se pueden definir fun!iones dentro de fun!iones.

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

5un!i#n Square Root

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

E-e&plos de algorit&os usados en pl!


Algoritmo 52irst6Out7
Dna &aquina o pro!eso tiene" ade&as de alar&as que no detienen" varias alar&as que detienen su fun!iona&iento. .uando por alguna de estas se detiene la &aquina" su deten!i#n produ!e altera!iones en el pro!eso" que provo!an a su ve, la a!tiva!i#n de otras alar&as que ta&$iJn podrLan ha$er !ausado la deten!i#n. El resultado es que !uando el operador llega a ver por que se detuvo la &aquina" se en!uentra !on &u!has alar&as a!tivadas" ' no sa$e !ual de ellas fue la pri&era que !auso la deten!i#n.
(# E$ta %art& '&( %ro)ra*a r&)i$tra +,a( &$ &( *oti-o '& (a '&t&n+ion '& (a *a.,ina/ Para .,& &$to 0,n+ion&1 '&2& r&$%&tar$& &$t& or'&n '& &3&+,+ion '& (o$ %ro)ra*a$: 4- E-a(,ar (a$ &ntra'a$ 5 +a(+,(ar +,a(&$ A(ar*a$ &$tan a+ti-a'a$/ 6- D&+i'ir $i *a.,ina +ontin,a 0,n+ionan'o o 7a5 .,& '&t&n&r(a/ 8- D&$%,&$ '& '&+i'ir $&),ir o %arar1 &3&+,tar &$t& a()orit*o 9Fir$t-O,t9 :- Mo$trar (o$ &$ta'o$ &n &( %an&( '& A(ar*$ o HMI/ ENTRADA!: E$t& a()orit*o n&+&$ita r&+i2ir (a$ $i),i&nt&$ $&;a(&$/ E( arr&)(o Tri%A(ar*No<[=] .,& +onti&n& (o$ &$ta'o$ a+t,a(&$ '& to'a$ (a$ +on'i+ion&$ .,& '&ti&n&n/ E( arr&)(o Ana(o)No<[=] .,& +onti&n& (o$ -a(or&$ a+t,a(&$ '& (a$ -aria2(&$ ana(o)a$ +riti+a$ La -aria2(& 9R,n9 &$ $i (a *a.,ina &$ta an'an'o o '&t&ni'a/ !ALIDA!: E$t& a()orit*o '&-o(-&ra (a$ $i),i&nt&$ $&;a(&$/ E( arr&)(o Tri%A(ar*La$t!D[=] .,& +onti&n& (o$ &$ta'o$ .,& t&nian to'a$ (a$ +on'i+ion&$ .,& '&ti&n&n1 ',rant& (a ,(ti*a '&t&n+ion E( arr&)(o Ana(o)La$t!D[=] .,& +onti&n& (o$ -a(or&$ .,& t&nian (a$ -aria2(&$ ana(o)a$ +riti+a$1 ',rant& (a ,(ti*a '&t&n+ion >aria2(&$ (o+a(&$: ?a@ra2a'o '&( ti%o Boo( #) IF NOT(R,n) AND NOT(?a@ra2a'o) THEN FOR =:= 4 TO AA DO
(#!,%oni&n'o .,& AA &$ (a 'i*&n$ion '& (o$ arr&)(o$#)

Tri%A(ar*La$t!D[=] := Tri%A(ar*No<[=] Ana(o)La$t!D[=] := Ana(o)No<[=] END"FOR ?a@ra2a'o:= TRUE END"IF

Rolf Dahl-Skog

Enero 2012.

Volver al

Indice

Pagina 1>

IF R,n THEN ?a@ra2a'o:= FAL!E END"IF

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 ) )

En lengua-e de texto estru!turado esto &is&o es ...


t&*%4 :=>a(orIn FOR =:= 4E TO 4 B? -4 DO t&*%6 := ( 6##(=-4)) (# 6 &(&-a'o a /// #) IF (t&*%4/t&*%6) J 4/B THEN A(ar*a[=]/a := FAL!E EL!E A(ar*a[=] := TRUE t&*%4 := t&*%4 - t&*%6 END"IF END"FOR

Rolf Dahl-Skog

Enero 2012.

Volver al

Indice

Pagina 18

Defini!i#n de un !aso fi!ti!io !o&o e-e&plo


Para poder ver la apli!a!i#n pra!ti!a de los !on!eptos de progra&a!i#n estru!turada ' &odular" usando fun!iones ' arreglos de varia$les lo!ales" se plantea un !aso fi!ti!io" para resolverlo progra&an el &is&o !aso en P*. de distintos fa$ri!antes. .ada fa$ri!ante de P*. ofre!e sus propias herra&ientas de progra&a!i#n (softEare+" ' !ada &odelo tiene sus propias !ara!terLsti!as ' parti!ularidades. En el desarrollo del e-e&plo" no se detalla la !onfigura!i#n del hardEare" ni las alar&as de auto diagnosti!o del &is&o pl!. Ia que la for&a de ha!er esto es distinta en !ada &odelo espe!ifi!o de pl!" ' la l#gi!a que se &uestra aquL es la parte genJri!a" se podrLa apli!ar a toda una linea de pl! del &is&o fa$ri!ante. *a &a'orLa de los pl! entregan varia$les de diagnosti!o de si &is&os" ' es el progra&ador el que puede usar o no esta infor&a!i#n en su progra&a!i#n.

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

Solu!i#n !on Dnit'" de S!hneider


Para P*.s =odi!on =230" Pre&iu& o :ua&tu&

El progra&a se divide en tres su$-progra&asG ?nalogas" Prin!ipal ' ?lar&as.

El pri&er progra&a que se e-e!uta es @?nalogasC" donde se es!alan las entradas anal#gi!as ' se !o&paran !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

LA4G := (#LA// (#LA// (#LA// (#LA// (#LA// (#LA//

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>

Solu!i#n !on /ristation" de /ri!onex


Para P*.s /ri!onex o /rident. El progra&a se divide en tres su$progra&as. Dentro de la !onfigura!ion del P*. se de$e definir el orden de e-e!u!i#n de estosG Pri&ero se e-e!uta el que se lla&a @?nalogasC" donde se es!alan las entradas anal#gi!as ' se !o&paran !on las valores de alar&a. DespuJs se e-e!uta el que se lla&a @Prin!ipalC" donde se de!ide si detener o no el &otor. DespuJs se e-e!uta el que se lla&a @?lar&asC donde se infor&a al operador los estados de las alar&as.

El programa 5Analogas7 tiene lo siguienteG

Rolf Dahl-Skog

Enero 2012.

Volver al

Indice

Pagina 27

*uego el programa 5Principal7 que tiene lo siguienteG

Rolf Dahl-Skog

Enero 2012.

Volver al

Indice

Pagina 28

Por ulti&o el programa 5Alarmas7 que tiene lo siguienteG

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

(# ALARMA 4B #) IF (In"4B OR D&t"4B) AND NOT(R&+"4B) THEN D&t"4B:=TRUE

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

Solu!i#n !on .ontrol*ogix" de Ro!kEell


Para P*.s P*.-4" S*.400 o .ontrol*ogix

.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

Se es!ala la se al al rango de ingenierLa" anterior&ente definido

Se a!tiva la alar&a de $a-a presi#n si su valor es &enor a Z... B si la se al no esta BY

Se apaga la alar&a de $a-a presi#n si su valor es &a'or a Z... I si la se al si esta BY

Rolf Dahl-Skog

Enero 2012.

Volver al

Indice

Pagina 2>

Se a!tiva la alar&a de &u' $a-a presi#n si su valor es &enor a Z...

Se apaga la alar&a de &u' $a-a presi#n si su valor es &a'or a Z...

.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&para !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

En @PartirApararC se de!ide el estado que se enviara ha!ia el &otor del !o&presor.

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

El su$ progra&a @*ogi!aA?lar&aC !ontiene lo siguienteC

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