You are on page 1of 20
11. PROGRAMACION DE BLOQUES FUNCIONALES M1. INTRODUCCION Ya se ha comentado en el capitulo anterior la existencia de bloques fun- cionales, més 0 menos complejos, que aumentan la potencia de célculo del au- \mata y simplifican la programacién, al afiadit al lenguaje bisico sentencias preprogramadas que son de uso general en automatizacién (temporizadores, ttansferencias, etc.) Estos bloques, que pueden ser pro- gramados dentro de un diagrama de contactos © como sentencias literales en una lista de instrucciones o lenguaje de alto nivel, se clasifican en dos gru: 0s, atendiendo a su forma de opera- ion y disponibilidad en el programa: Bloques secuenciales baisicas, de uso general ineluso en autématas de gama baja. Son los biestables, temporizadores, contadores y re sistros de desplazamiento. ~ Bloques de expansién (también lla- mados funciones), que aumentan la potencia del lenguaje al permitir ‘manipular variables numéricas. y registros de datos, con instruccio- res aritméticas, de comparacién, transferencias, etc. Los primeros pueden considerarse como parte de los lenguajes basicos de aut6mata, mientras que Ios segundos son extensiones de ellos. Todos estos bloques funcionales son sentencias preprogramadas de aplica- ti6n general, es decir, el usuario debe adaptarlos a sus necesidades indicando las condiciones de trabajo: valores de temporizacidn, direcciones de origen y destino de la transferencia, nombre (di- teeciones internas) de los registros con los que se desea operar, etc En su caso mas general, 1os bloques presentan tres tipos de variables aso- ciadas (figura 11.1) = Condiciones de operacién, que de~ finen Ia habilitacién y control del bloque. = Operandos de funcién, sobre los que actian las sentencias prepro- sgramadas en el bloque funcional. ~ Salidas asociadas, cuyo estado de- pende de la ejecucién de la fun- cidn del bloque. Los operandos de funcién pueden a su vez ser de dos tipos Parimetros iniciales, que una vez {ijados por programa o transferi- dos desde consola permanecen normalmente inalterados, = Datos de operacién, variables 0 constantes contenidas en palabras de 8 0 16 bits que reflejan el es- tado de entradas/salidas, valores internos, resultados, ete. Estos datos, numéricos 0 alfanu- éricos, que aparecen como operandos pueden corresponder a: — mimeros o caracteres ASCII cons- tantes definidos en el programa, — textos preprogramados escritos en alguna unidad de memoria 0 dis- ositivo exterior, Figura HL, Estructura de un blue funcional. variables numéricas (el caso més freeuente), en: — tegistros internos, — temporizadores 0’ contadores (valores actuales), = canales de datos’ de 8 0 16 bits de entrada o salida (por ejemplo, datos binarios re- sultantes de Ia conversion A/D en una entrada analé- ica). Aunque Jos datos internos maneja- dos por el autémata siempre son bi- narios, el usuario puede definirlos en Su programa sobre distintas bases: dé cimal, hexadecimal, BCD, etc., encar- indose el intérprete de su conversion automética al binario para su opera- cin. La programacién més frecuente de tun bloque funcional (sobre todo en los, mis complejos) Io considera como ele- mento de un diagrama de contactos (como muestra la figura 11.1), aunque algunos fabricantes permiten ‘también su empleo literal en lista de instruccio- nes, con reglas de sintaxis més © menos rigidas. Se indican a continuacién las es- tructuras, caracteristicas y aplicaciones BLOQUE FUNCION Operando 2? i Operandoj] ! |} 4 Com: 1 de los bloques de uso mis frecuente sobre autématas programables. 11.2. BLOQUES SECUENCIALES BASICOS Los bloques secuenciales son ele- mentos preprogramados por el fabri- ccante cuyas variables ocupan posicio- nes reservadas en la memoria interna del autémata (reas), por lo que el ni- mero total disponible de ellos dentro de un programa es siempre limitado. Los bloques secuenciales mas fre- ccuentes, incorporados en practicamente todos los lenguajes de autémata, son: = biestables, — temporizadores, — contadores, — registros de desplazamiento, y — secuenciadores paso a paso. Los biestables, registros y secuencia- dores modifican la informacién de sus salidas segiin la secuencia que se pre- sente a sus entradas, mientras que los temporizadores y contadores llevan im- plicitamente asignadas dos informacio- res numéricas distintas — los valores de preseleccién (tiem- po y médulo de cuenta), = Ios valores actuales, contenidos en cada momento del programa, En las operaciones de lectura, estos elementos entregan el valor actual con- tenido, mientras que en las de escritara ‘modifican su preseleccién con el valor recibido, La informacién contenida en los blo- ques secuenciales puede ser reiniiali- zada al valor por defecto tras una pues- ta en marcha o reset, o mantenida en sus valores actuales si se le ordena al autémata mediante sus funciones de parametrizacién (excepto los tempori- zadores, que pierden siempre la tem- porizacion en curso). 11.2.1. Biestables Un biestable es un dispositive capaz de mantener indefinidamente su esta- do a0 0 1 mientras el automata per- ‘manezca en RUN y no se ordene un pulso de mando que lo modifique. Por esta definicién, el biestable es e! elemento secuencial mas sencillo, ca- paz de mantener un mismo estado 16- ico para distintas combinaciones de ssus entradas de mando: como este es- tado depende de la secuencia de valores de entrada, y no de su combinacién actual, se dice que el elemento pose «memoria» y, en efecto, en muchos enguajes de autémata s¢ denomina a esta funcidn célula o relé de memoria («Keep Relay») La permanencia del biestable en un estado automantenido se debe a la pre- sencia de una realimentacion interna, definida por el usuario si construye Ia funcién a partir de elementos combi- nacionales estindar, 0 transparente para 41 si utiliza el bloque funcional pro- puesto por el fabricante. La figura 11.2 muestra una estructura de biestable 0 memoria construida se- ain la primera opcién, con puertas 16- gicas y diagrama de contactos, junto on el listado de programa correspon- diente, Como se observa en Ia figura, cuan- do ambas entradas Set y Reset (puesta a «» y puesta a «®>) permanecen inac- igure 112 1} Diageama Iégico tivas (a cero), el elemento mantiene su valor anterior, mientras que Ia activa- cin de una u otra lo hace cambiar al estado «> 0 «>, La combinacién |, Ordenes simulténeas de Set y Reset, es por de- finicién contradictoria y no'deberia ser utilizada. Sin embargo, tal como su- gieren los esquemas y el propio listado del programa, la ejecucién del mismo en un autémata es secuencial y esto deshace la supuesta contradiccién, puesto que las Grdenes no son simul tineas sino sucesivas y por tanto el re- sultado final es como si se hubiera pro- gramado la ultima (Set 0 Reset Si el usuario prefiere utilizar el blo- que funcional definido por el fabrican: {e, tiene a su disposicidn las sefiales Set y Reset anteriores, bien sobre un blo- que compacto, bien como sentencias separadas dentro del programa, como se ve en Ia figura 11.3. En el primer «aso, la prioridad en las acciones puesta uno y puesta a cero, viene dada por el fabricante (normalmente, Reset prio- ritario), mientras que en el Segundo de- pende del orden de colocacién de las sentencias, yay jt} t#o | : _ | | Oa = = I an ‘ VM b) Diagrama de contactos Loo or AND NOT R out ) Listo de instveciones | a | 2) Sentences inéependientes Lo od) eure 11.3. Bloquesfuncionates bestables EI biestable se utiliza tipicamente como unidad de memoria, capaz de re- cordar el estado de una seffal aunque ésta haya sido de muy corta duracién (puso) El empleo de esta funcién compacta los programas y simplifica la progra- ‘macién, pero el usuario debe recordar ue, una vez. activado, y a diferencia de las salidas simples de asignacién OUT, la tinica forma de desactivar un bies- lable es ordendndolo de forma expli- cita, con un Reset o por reinicializacién total del automata, lo que, en progra- ‘mas complejos de miitiples sentenci entrelazadas, puede dificultar la depu- racién de errores y puesta a punto final 11.22. Temporizadores Un temporizador es un dispositive capaz de retardar una orden de salida (activacion 0 desactivacidn) durante un cierto tiempo, en respuesta a una sefial de mando de entrada. ‘Existen cuatro funciones distintas de ‘temporizacién, cuyas formas de onda en el tiempo se representan en la figura IL4, Estas son las siguientes. — Impulso: La salida se mantiene ac- tiva mientras dure la sefial de mando 0 condicién de marcha, hhasta un cierto tiempo maximo denominado slempo de impulso = Retardo de conexién: La salida se retarda hasta que transcurra el tiempo de retardo. Es la funcién mis frecuente, — Retardo a desconexin: La salida conecta simultineamente con la entrada, y se mantiene hasta un tiempo después de caer aquella, denominado tiempo de descone- = Monoestable, 0 conformador de im- ulsos: Semejante al impulso de conexién, la salida se mantiene activa, una vez activada la sefial de mando, durante un tiempo cons- lante e’ independiente de esta se- lal, el tiempo de impulso (Figura 1B). Estas funciones, o algunas de ellas, estin disponibles como bloques fun= cionales temporizadores dentro del len- suaje de automatas, ara su programacién, los tempori- zadores necesitan definir tres campos: — Nombre de ta funcién, que define €l tipo de temporizacidn a utilizar. — Mimero de elemento, que indica su direccién en variable interna (un elemento dado sélo puede pro- ‘ramarse una vez por programa). — Parimeiros de preseleccién, que ‘oneretan el valor total de la tem- porizacién, a partir de los valores: = Médulo de tiempo, 0 ni ‘mero de unidades a contar. — Base de tiempos, 0 frecuencia de conteo de unidades. Asi, se cumple que Tiempo total = Médulo X Base En muchos autématas la base de tiempos esti predefinida por el fabri- ccante (normalmente, en décimas de se- ‘gundo), por lo que no es necesario in- ddicarla en ta programacién, EI médulo de tiempo puede ser una constante definida en el programa (pre~ 1 Retardo de desconeniin Sola avecta (contacto ero en rps) Sade negoea(eonct rou Figura 14. Panciones de temporcacion seleccién inmediata), 0 un valor Ieido en un registro interno 0 palabra de en- tradas/salidas, codificado en BCD (pre- seleccién indirecta). Los parimetros de preseleccién pue- dden ser modificados durante la puesta @ punto o durante la explotacién, in- cluso con el autémata en RUN, Estas ‘modificaciones son activas mientras el autémata se mantiene bajo tensién, re- cuperando 10s valores por defecto (en el programa) en cada puesta en marcha. Ademés de los campos anteriores, los temporizadores utitizan dentro de lun programa — una variable binaria de control, obtenida por consulta de una en* ‘trada 0 variable interna, © por combinacién entre varias, — adicionalmente, una variable de salida que responda a la funcién temporizada. ee Dhograme temporal Figura 11.5. Bloque funcional temporzador Si el temporizador aparece como bbloque funcional dentro de un diagra- ‘ma de contactos, puede disponer de al- guna otra linea adicional, como mues- (ra la figura 11.5, un temporizador ti- pico del lenguaje de contactos PLT-2 de Telémecanique. En este bloque, la entrada de encla- vamiento E mantiene el valor tempo- rizado mientras esté a nivel alto, inclu- so si la variable de control © mando C se desactiva, mientras que reinicializa el temporizador si se pone a cero. En general, sin embargo, los bloques temporizadores son de construccién més sencilla, como muestra el ejemplo de la figura 11.6, un temporizador con retardo a la conexién programado si- multéneamente como diagrama de contactos y lista de Instrucciones, Es muy frecuente que el lenguaje empleado disponga tnicamente en su configuracién mas simple de la funcién de retardo a la conexién, aunque todas las demés pueden obtenerse a partir de ella. Por ejemplo, la figura 11.7 muestra los programas correspondientes, en dliagrama de contactos, para implemen- tar las funciones de impulso de cone- xin y retardo a la desconexién. Otros autématas (por ejemplo, Sie- mens) disponen de funciones espe ficas de temporizacién, lo que permi ‘obtener listados de programa mas com- | a} Diagrama de contactos, Loo M1 280 or Lop 11 | our ao b) Lista de insteucciones, Figura 1.6. Programacién de wn temporiador ‘om retard ata conection. ppactos, aunque exigen mayor especia- lizacién por parte del usuario. La figura 11.8 muestra un ejemplo de programacién de la funcién monoes- table, indicando ef esquema eléctrico de relés (con temporizador de retardo la conexién), el diagrama de contac- tos resultante, y los listados compara- dos de Ia solucién estindar obtenida nh. = a “aD eo oon del diagrama, y del programa con len- guaje Siemens STEP 5 utilizando la funcién especial SV. Destaca la reduc- cidn de programa resultante al utilizar esta funcién especifica Los valores dei médulo de tempo- rizacién suelen oscilar entre 0 y 9999 (cuatro digitos BCD, 16 bits binarios), que, para la base de tiempos de 0,1 s (muy frecuente), se convierten en tem- porizaciones de 0 2 999.9 segundos. Dada la mayor facilidad con que la CPU detects el valor 0 sobre cualquier otro, los temporizadores resultan ser, en general, descendentes: — Cuando la sefial de mando es ac- tiva, el temporizador se decre- menta desde el valor de preselec- cién (médulo de cuenta). — Cuando se alcanza el tiempo pre- fijado, el temporizador se mantic hne a cero hasta que desaparezca la seal de mando. = Cuando la sefial de mando es cero, el temporizador se carga al valor de preseleccién (excepto si existen otras sefiales de mando; vvéase la figura 11.5), Si la linea o sentencia que contiene al temporizador es saltada durante la ejecucidn, no se detiene el contaje de tiempo, aunque la salida asociada no se wt et a0 oo a) Impuiso de canexién elaine a 7 Le b) Reterde a te desconexion 2) Diagrama de tiempos b) Esquema eléctrico 0 FL o> ji Diograme ee es eee mi? omeauno gon "Potente [Soe Fara 1.8 stints programas de la fancion moncestable activa hasta que el programa pase de nuevo por ella, en el supuesto que se hha alcanzado el tiempo de preseleccién, Por supuesto, el valor de tempori- zacién final puede aumentarse 0 es calarse conectando dos 0 mis tempo- rizadores en serie, de forma que la ha- bilitacién (seal de mando) de cada uno la constituya el alcance de tiempo del anterior. Segiin este principio, Ia figura 11.9 propone una temporizacién de segun- Furs 119. Temporzacién extend de horas, minutos y segundes. —— 9998 7 | 2200 dos, minutos y horas utilizando varios elementos con base de tiempos 100 ms y valor méximo de preseleccién 9999, El célculo de las preselecciones de cada luno, por ejemplo para I hora, 5 mi- rnutos, 25 segundos, es como sigue: Ih 3600 s 5 min 300 Bs 25s ‘3925 s —+ preseleccién 39250 (décimas de segundo) Se necesitan cuatro temporizadores, los tres primeros con preseleccién 9999 (2999.7 s en total), y el cuarto con 9253 (92553 s), dependiendo el primero de la condicién de mando, y los siguientes del aleance del tiempo anterior. En general, los bloques temporiza- dores mis frecuentes, retardos a la co- nexién e impulsos, no son acumulati- vos: si desaparece la sefial de mando, se pierde el tiempo acumulado hasta el momento. Este funcionamiento, que se corresponde con el de los relés elec- tromecinicos 0 electrénicos conecta dos en los cuadros de mando, puede no interesar al usuario, que preferiria mantener el tiempo aun cuando des- aparezea la sefial de control, por ejem= plo, en cronometrajes. La solucién mis eficaz en estos casos consiste en utilizar un reloj propio det autémata (relé interno especial) como base de tiempos, y activar con él un contador cargado con el médulo de- seado: mientras lo permita la seftal de mando, el contador incrementa su cuenta’a la frecuencia del reloj, pero si se interrumpe la habilitacién (0 si ocu- rre una pérdida de tensién) no se pier- de el tiempo transcurrido, que per- ‘manece como valor contado. Una es- tructura de este tipo, que puede con- siderarse como de temporizador acu- ‘mulativo, se presenta en el apartado de descripcién de contadores. ‘Algunas aplicaciones tipicas de tem- porizadores son las siguientes — Generacién de retardos 0 confor- ‘macién de impulsos. — Cronometrajes entre sucesos con- secutivos. — Filtrado de sefiales (retrasando la lectura valida hasta un tiempo después de recibida la seftal) —_____rnisiinicctrrocoemacemamieeamensmmmm = Obtencién de tiempos de parada en maquinaria, para estadistica, mantenimiento, ete. Putson ABOA A A WA 11.23. Contadores eset Un contador es un dispositive capaz de medir (contar) el nimero de cam- j bios de nivel en una sefial de entrada, activando una sefial de salida cuando sala se aleanza un valor prefijado. j Estin definidos dos tipos de conta- 2) Contador inerementet dores: preset | = Comador incremental, que acu- mula el niimero de impulsos re- cibidos por su entrada de pulsos. — Contador bidireccional (UP/ DOWN), que acumula la diferen- cia entre los pulsos recibidos por sus entradas de cuenta ascenden- te y cuenta descendente. solide WZ. : ) Contador bidireccional UP) DOWN } En estos iiltimos existen, a su vez, ] dos versiones: — De entradas de pulsos separadas, UP (cuenta ascendente) y DOWN (cuenta descendente). = De entrada de pulsos comin (PULSE), y sefial adicional de di- reccién de cuenta (U/D) pres 1 _ cues | ANAM --mm La operacién del contador reversible ¢ cicica (.. 9998, 9999, 0,1, ..), mien- ‘tras que el contador incremental se de- tiene una vez alcanzado el médulo de cuenta, La figura 11.10 muestra las formas de onda temporales correspondientes a es- tas tres estructuras de contador deserita. Obsérvese cémo en los contadores bidireccionales la salida se activa cuan- | do el valor contado es cero: no tiene €) Contacor bidireccional pulso/ mace Figura 11.10. Formas de onda temporal de contadores I mucho sentido detectar un valor de — Nombre de funcién, que distingue uno u otto, aunque no 2 ambos preseleccién que puede ser forzado en entre contadores incrementales © simultineamente en un mismo cualquier momento con la orden «Pre- bidireccionales, programa. seb. — Mimero de elemento, que indica su ~ Pardmeiros de preselecciéin, que in- ‘Ademés, para evitar actuaciones pre- direccién en variable interna. dican el valor alcanzar por el maturas del contador, éste no actia (no Puesto que los temporizadores y contador antes de activar la salida | ecoge impulsos y la salida estd en los contadores son conceptual (médulo de cuenta, en 10s con- OFF) hasta que la sefial «Preset re- ‘mente muy semejantes (el valor tadores incrementales), o el valor corre al menos una vez la secuencia de cuenta cambia en cada impulso de carga cuando se activa la seal, ON-OFF, externo, mientras que en los tem- de validacién (preseleccién, en los Los blogues funcionales contadores porizadores avanza segiin un reloj contadores bidireccionales), definidos sobre autématas, disponibles interno), muchos autématas dis- en todos los tipos anteriores, necesitan ponen de un dea comin para ubi- Ademiés, el bloque contador necesita para su programacién de los siguientes carlos, y la direccién o numero de de algunas sefiales binarias asociadas, fl campos: elemento puede ser atribuida a como son las entradas de pulsos para i ——_________samanamnenesmsconnacumennmnsremeoarenmn conteo, y las sefales de habilitacién 0 reset. Estas uiltimas siempre son prio- ritaias sobre las entradas de pulsos, En Ia figura 11.11 aparece la progra- ‘macién, en diagramas de bloques, de los diferentes tipos de contador, con las sefiales asociadas, Si la programacién se hace por lista de instrucciones, el fabricante puede imponer el orden de aparicién de las sentencias, agrupando las sefiales co- rrespondientes a un mismo contador nun orden preestablecido de obligado cumplimiento (opcién més frecuente), dar un nombre propio a las sefiales involucradas, que de esta forma pue- den aparecer en cualquier parte y en cualquier orden dentro del programa, 1La figura 11.12 presenta ambas op- ciones, correspondientes 2 los lengua- El conteo de la sefial de entrada se hace habitualmente por flanco o frente ascendente (si interesa el frente des- ‘cendente, bastaria con complementar la sefial de entrada), de forma que sea ‘cual sea la duracién del impulso, el contador s6lo cuenta la transicién 0 cambio de estado. EI médulo de cuenta o Ia preselec- cién suelen estar limitados, como en los temporizadores, a un valor entre 0 y 9999 (16 digitos binarios, en una pa- labra o registro interno), y pueden ve- nir dados, al igual que en aquéllos, por Figura 1112. Disintes formas de prosramacion ‘de un contador bdirecional jes de programacién (en diagrama de : kd blogues y lista de instrucciones) de los | autématas Izumi y Siemens. ile Fir 1.1. Blogusfunonle comtadore. 7 | putes due 20 3 core one 2} Contador ineremental |__4}

You might also like