Professional Documents
Culture Documents
s obvio que la gran diversidad de lenguajes de programacin da lugar a que cada fabricante tenga su propia representacin, originando cierta incomodidad al usuario cuando programa m$s de un PLC.
, , ,
L#n*+!,#$ Gr./ic($ -iagrama Ladder /L-0 -iagrama de .loques de <uncin /<.-0 L#n*+!,#$ T#0%+!"#$ Lista de 1nstrucciones /1L0 >e!to structurado /S>0
"dicionalmente, el est$ndar 1 C 23343,4 incluye una forma de programacin orientada a objetos llamada S#1+#n%i!" 2+nc%i(n C3!r% 4S2C5. S<C es a menudo categori%ado como un lenguaje 1 C 23343,4, pero en algunos te!tos se lo considera como una estructura organi%acional que coordina o se complementa con los cuatro lenguajes de programacin antes indicados.
Para programar un PLC con L"-- :, adem$s de estar familiari%ado con las reglas de los circuitos de conmutacin, es necesario conocer cada uno de los elementos de que consta este lenguaje. n la siguiente tabla podemos observar los smbolos de los elementos b$sicos junto con sus respectivas descripciones. Smbolo )ombre -escripcin
Contacto Se activa cuando #ay un 3 lgico en el elemento que representa, esto es, una entrada /para captar informacin del proceso a )" controlar0, una variable interna o un bit de sistema.
Contacto Su funcin es similar al contacto )" anterior, pero en este caso da continuidad lgica cuando #ay un ? lgico en el elemento que )C representa. Se activa cuando la combinacin que #ay a su entrada /i%quierda0 .obina da un 3 lgico. Su activacin equivale a decir que est$ en 3 lgico. )" Suele representar elementos de salida, aunque a veces puede #acer el papel de variable interna. .obina Se activa cuando la combinacin que #ay a su entrada /i%quierda0 da un ? lgico. Su comportamiento es complementario al de la )C bobina )". .obina (na ve% activa /puesta a 30 no se puede desactivar si no es por su S > correspondiente bobina en : S >. Sirve para memori%ar la salida y es usada junto con la bobina : S >. .obina Permite desactivar /poner a ?0 una bobina S > previamente S > activada.
Pr(*r!)!ci-n
(na ve% conocidos los elementos que L"-- : proporciona para su programacin, resulta importante resaltar cmo se estructura un programa y cu$l es el orden de ejecucin. l siguiente esquema representa la estructura general de la distribucin de todo programa L"-- :, contactos a la i%quierda y bobinas u otros elementos de salida a la derec#a.
Marcha m Aux1 m Motor1 m Marcha m Aux1 m Motor2 m Aux1 m Motor1 m Motor2 m Aux1 m Motor1 m Motor2 m Motor2 m Motor1 m
l orden de ejecucin es generalmente de arriba #acia abajo y de i%quierda a derec#a, primero se e!amina el estado de los elementos de la i%quierda y luego las bobinas, de manera que al llegar a stas, el controlador determina el estado lgico de sus contactos.
Los bloques de funcin en cambio, son b$sicamente algoritmos que pueden almacenar los resultados de su operacin en una localidad de memoria dentro de su estructura de datos y calcular sus salidas usando el persistente estado interno y los argumentos de entrada. Si los valores de las entradas son idnticos, el valor de la salida ser$ distinto en cada ejecucin del bloque de funcin. Por ejemplo, en un contador se contar$ #acia delante el valor en la salida. jemplo de bloque de funcin
Las salidas lgicas no requieren incorporar una bobina de salida, ya que sta es representada por una variable asignada a la salida del bloque. La )orma 1 C 23343,4 incluye una gran cantidad de funciones y bloques de funcin est$ndares para llevar a cabo una gran variedad de aplicaciones de control. "dicionalmente, los fabricantes y usuarios pueden crear sus propios bloques de funcin.
l diagrama de bloques de funcin resulta especialmente cmodo de utili%ar, a tcnicos #abituados a trabajar con circuitos de puertas lgicas, ya que la simbologa usada en ambos casos es equivalente. jemplo de diagrama <.-+
1L es un lenguaje que se denomina orientado al acumulador, es decir, que cada instruccin utili%a o modifica el contenido actual del acumulador /un tipo de memoria intermedia interna0. La 1 C denomina a este acumulador 9:esultado9. Por esta ra%n, una lista de instrucciones debe comen%ar siempre con el operando L- /9Comando de carga en acumulador90.
"ntes de cada instruccin se puede colocar una @;arcaA, que resulta necesaria cuando se programan saltos. -espus de cada instruccin se puede incluir un comentario entre parntesis o corc#etes.
1ncluye estructuras de c$lculo repetitivo y condicional, tales como+ <8:....>8, : P ">....()>1L* BC1L ....-8* 1<....>C ).... LS * C"S D8<D )-EC"S . "dem$s soporta operaciones .ooleanas /")-, 8:, etc.0 y una variedad de tipos de datos para acomodar los valores analgicos y digitales, tiempos, fec#as y otros datos. "l igual que L-, <.- e 1L, el lenguaje de te!to estructurado utili%a la definicin de variables para identificar entradas y salidas de dispositivos de campo y cualquier otra variable creada internamente. l lenguaje S> es una buena opcin para la implementacin de aplicaciones de inteligencia artificial, lgica difusa, toma de decisiones, etc. jemplo de programa en S>+
1< )ivel F /Consigna G 7H0 >C ) .ombaE3 +I ?* "larma +I 3* LS1< nivel J /Consigna ,7H0 >C ) "larma +I ?* .ombaE3 +I Start ")- :eleEtermico* )-1<* <. SE8UENTIAL 2UNCTION C=ART 4S2C5
l lenguaje S<C tiene su origen en el est$ndar francs K:"<C > / GRA2ica de Control de Etapas de Transicin0. S<C es un mtodo de programacin gr$fico, que representa las funciones de un sistema autom$tico secuencial como una secuencia de pasos y transiciones. S<C puede considerarse tambin como un lenguaje organi%acional para estructurar un programa en pasos bien definidos, para formar un algoritmo de control secuencial. n este caso, mientras el S<C define la arquitectura de los mdulos de soft'are y cmo ellos van a ser ejecutados, los otros cuatro lenguajes son utili%ados para codificar la accin lgica que ejercen las salidas, dentro de los mdulos a ser ejecutados en cada paso. l marco de programacin de S<C contiene tres principales elementos que organi%an el programa de control+ Pasos /etapas0, >ransiciones /condiciones0, y "cciones
P!$($
Cada paso del S<C comprende acciones que se ejecutan, dependiendo de si el paso est$ activo o inactivo. (n paso es activo cuando el flujo de control pasa de un paso al siguiente a travs de una transicin condicional. Si la condicin de la transicin se eval5a como @verdaderaA, el control pasa del paso actual, que se vuelve inactivo, al siguiente paso, que se convierte en activo.
Cada paso es un mdulo de control del programa que puede ser programado en el mismo S<C, mediante @"ction LualifiersA, o utili%ando cualquier otro lenguaje de programacin.
P!$( > Acci-n '# c(n%r(" !isten dos tipos de pasos+ l paso inicial y el paso regular. l paso inicial es activado la primera ve% que el programa S<C es ejecutado o como resultado de una operacin de re iniciali%acin. Solamente puede #aber un paso inicial en el programa S<C.
Tr!n$ici(n#$
(na transicin puede ser una simple variable, cuyo valor puede ser puesto por una simple entrada digital. >ambin puede ser un mdulo de programa, editado en cualquier lenguaje 1 C, que finalmente eval5a una variable de transicin. n ambos casos, la variable de transicin debe ser tipo .ooleana. (na ve% que la variable de transicin es evaluada como @verdaderaA, el siguiente paso es activado y aquellos precedentes son desactivados.
Tr!n$ici(n#$ c(n#c%!'!$ ! !$($ #n +n S2C n la figura anterior, inicialmente el paso S3 est$ activo y tambin est$ activa la transicin >3. Cuando la variable de transicin >3 es evaluada como @verdaderaA, inmediatamente se desactiva el paso S3 y se activa el paso S7* a su ve%, >3 se pone inactiva y >7 est$ activa para ser evaluada.
-e esta forma, una funcin de control puede ser representada por un grupo de pasos y transiciones en la forma de un gr$fico, denominado @;apa Secuencial de <uncionesA o S<C.
Acci(n#$
Cada paso de un S<C representa un particular estado de una m$quina o un proceso. Cuando la condicin previa es cumplida, la transicin ocurre y una secuencia de acciones es iniciada para alcan%ar las condiciones del proceso definidas para dic#o paso. n la representacin gr$fica del S<C, sta es mostrada como una caja rectangular dentro de la cual las acciones correspondientes al paso aparecen indicadas. La caja rectangular contiene un clasificador /@qualifierA0 y el nombre de la accin que debe ser 5nico dentro del S<C. Los @qualifiersA definen cuando e!actamente, durante un paso, una accin debe ser iniciada. La lista de clasificadores normalmente usados en S<Cs se muestra en la siguiente tabla+ CLASI2ICADOR ) o )8) S : L SL -S SP DESCRIPCIN jecuta la accin cuando el paso est$ activo /Set0 Pone una accin activa y memori%ada. /:eset0 :einicia /pone en ?0 la accin memori%ada />ime Limited0 1nicia cuando se activa el paso y termina despus del tiempo dado, si el paso contin5a activo /Stored and >ime Limited0 1nicia cuando se activa el paso y termina despus del tiempo dado, aunque el paso se #aya desactivado. />ime Delayed0 1nicia despus de un tiempo dado y finali%a al desactivarse el paso. /Delayed and Stored00 1nicia despus de un tiempo dado /si el paso est$ activo0 y se mantiene a5n despus de desactivarse el paso. /Stored and >ime Delayed0 1nicia despus de un tiempo dado y se mantiene a5n despus de desactivarse el paso. "ccin Pulso, se ejecuta una sola ve% cuando el paso es activado
(na accin puede ser representada dentro del S<C, o si es compleja, en otra p$gina o diagrama. Cuando una accin es representada en otro parte del diagrama, su nombre es utili%ado para identificarla. (na accin puede ser usada en m$s de un paso, si sta requiere ser repetida en diferentes partes de un proceso. " menudo un paso no tiene acciones y simplemente espera para la pr!ima transicin* este caso se usa para llevar a cabo una funcin de retardo. Como en el caso de las transiciones, las acciones tambin pueden ser descritas usando cualquiera de los lenguajes 1 C. " continuacin y mediante diagramas de tiempo, se ilustra la operacin de los diferentes @"ction LualifiersA.
N @ N(n#
TR1 TR1 STEP 1 N ACTION A STEP 1
TR2
ACTION A TR2
S>R
STEP 1 TR2
TR2
STEP N TRn R ACTION A STEP N
TRn
L 4Ti)# Li)i%#'5
STEP 1 STEP 1 L t#5s T#5S ACTION A ACTION A
5s TR2
TR2
D 4Ti)# D#"!A#'5
TR1 STEP 1 D t#5s T#5S ACTION A ACTION A STEP 1
5s TR2
TR2
DS
STEP 1
5s
ACTION A
TR2
TR2
STEP N R T#5S ACTION A
STEP N
P 4P+"$#5
STEP 1 STEP N P T#5S ACTION A ACTION A
10
n una secuencia o cadena simple e!iste un solo camino para el flujo del programa de control. n stas se repite consecutivamente el cambio de paso y transicin como secuencia.
La bifurcacin alternativa ofrece la posibilidad de programar secuencias condicionadas en el flujo de control de la estructura del S<C. n las bifurcaciones alternativas seguir$n a un paso tantas transiciones por debajo de la lnea #ori%ontal como secuencias distintas e!istan. -e estas transiciones slo podr$ conmutar una. l resultado de las condiciones de transicin de aquellas transiciones que sigan a la bifurcacin alternativa determinar$ la ramificacin que se ejecute. Las transiciones de la bifurcacin se procesar$n de i%quierda a derec#a. Si se cumple una condicin de transicin ya no se procesar$n las transiciones restantes. Se activar$ la ramificacin con la transicin cumplida. -e esta forma resulta una prioridad de i%quierda a derec#a para las bifurcaciones. Si no conmuta ninguna de las transiciones, permanecer$ el paso que est$ activo en ese momento.
11
7i/+rc!ci-n !"%#rn!%iB! >odas las ramificaciones alternativas se deben unir en conjunto a travs de Conjunciones "lternativas o Saltos creando de nuevo una 5nica rama. Solamente permanecer$ activa una de estas derivaciones, la correspondiente a la primera condicin en la bifurcacin alternativa.
n bifurcaciones simult$neas, la edicin se puede dividir en dos o m$s secuencias, que posteriormente ser$n procesadas simult$neamente. Slo es posible una transicin conjunta inmediatamente por encima de la lnea de sincroni%acin doble y #ori%ontal. >ras la activacin simultanea, las secuencias se ejecutan de manera independiente.
12
7i/+rc!ci-n $i)+"%!n#! La unin simult$nea une nuevamente dos o m$s derivaciones paralelas en una. Se eval5a la transicin despus de una unin simult$nea, solamente si se #an activado todos los pasos directos /previos0 de la transicin. Slo es posible una transicin conjunta inmediatamente por debajo de la lnea de sincroni%acin doble y #ori%ontal.
l salto posibilita que el programa contin5e en otro lugar. Los saltos en una secuencia simult$nea #acia dentro o #acia fuera de una secuencia simult$nea no son posibles. n el caso de los saltos, se diferencia entre el salto de secuencia y el anillo o ciclo de la cadena. (n salto de la cadena es un caso especial de bifurcacin alternativa, en la que una o varias derivaciones no contienen ning5n paso. (n anillo de la cadena es tambin un caso especial de bifurcacin alternativa, en la que una o varias derivaciones se atribuyen a un paso predecesor.
13
Motor m T#10s
Kt1 m
14
8:,.88L Start m Motor m >8) Motor m T#10s 1) P> L > 1)3 1)7 L Stop m
I2 /Start OR ;otor0 AND Stop AND NOT Nt3 T=EN ;otor +I 3* ELSE ;otor +I ?* ENDFI2G
1nstrucciones lgicas
CAL >8)3 /1) +I ;otor, P> +I tM3?s0* LD >8)3.L ST Nt3 LD Stop AND 4Start OR ;otor 5 ANDN Nt3 ST ;otor
1nstrucciones lgicas
15
INICIO
S%!r%
PASO 2
H%1
IS%(
PASO 3 3
Inici(
M(%(r
P!$( 3
16