Documente Academic
Documente Profesional
Documente Cultură
º 355
a selección del lenguaje a uti- fico usado para construir procedi- digo máquina. Es útil para pequeñas
Compatibilidad entre
Conceptos y abreviaciones diferentes marcas
PLC Programmable Logic Controller No es del todo posible ejecutar una
LD Ladder Diagram (Diagrama de Contactos) aplicación que corre perfectamente
FB Function Blocks (Bloques Funcionales) en un tipo de PLC en otro de dife-
IL Instruction List (Lista de Instrucciones) rente proveedor. Existen diferentes
ST Structured Text (Texto Estructurado) problemas que previenen la portabi-
SFC Sequential Function Chart (Diagrama Funcional) lidad directa de software del IEC
IEC International Electrotechnical Committee 61131-3:
POU Program Organization Unit (Unidad Organizacional • Las entradas y salidas de los PLC
de Programas) son, por lo general, direccionadas en
forma diferente.
Octubre 2004 / n.º 355 SOLUCIONES Automática e Instrumentación
ción. Esto ofrece la ventaja de redu- • Basada para la reutilización de taxis parecida a la de Pascal, si bien
cir la probabilidad de errores y con- software. la diferencia reside precisamente en
ferir mayor claridad al programa. En • Lista de entradas y salidas al- que el TE fue creado pensando en
la tabla 2 se comparan dos secuen- macenadas en el proyecto. aplicaciones de control industrial.
cias de programa en los lenguajes LI Resulta además muy apropiado para
y TE con idéntico significado: un bu- POUS cálculos aritméticos complicados. El
cle secuencial para el cálculo de se- • Programación bien estructurada, lenguaje es fácil de leer y de utilizar,
gundas potencias en lenguaje LI lo que facilita la reutilización de có- especialmente cuando se utilizan
y TE. digo identificadores apropiados y sufi-
Como se puede observar, la pro- • Interface bien definida, gracias cientes y buenos comentarios.
gramación en el lenguaje TE del bu- a lo cual otras variables pueden ser
cle secuencial no sólo es más breve, usadas en otros proyectos. Llamada a un bloque
sino también considerablemente más • La reutilización de bloques fun- funcional
fácil de leer, lo que se hace más evi- cionales ahorra tiempo y dinero. Puede ser invocada una instancia de
dente en el caso de bucles secuen- un bloque funcional llamando a la
ciales entrelazados en construcciones SFC instancia del BF con valores de los pa-
de mayor envergadura. La descrip- • Ayuda a dividir programas gran- rámetros de entrada apropiados. En
ción del significado del código se tra- des en pequeños módulos y bien es- el supuesto de que estos valores no
tará mas adelante. tructurados. sean suministrados, se toman en con-
• Desarrollo descendente o as- sideración automáticamente los de la
Texto estructurado cendente, lo que mejora la estructu- ejecución anterior. Si el BF no ha
El texto estructurado es un poderoso ración. sido llamado con anterioridad, cual-
lenguaje con raíces en Ada, Pascal y • Lenguajes diferentes en el pro- quier parámetro de entrada que no
C. Puede ser muy útil en la definición grama. Existe la posibilidad de utili- haya sido asignado puede tomar va-
de complejos algoritmos de bloques zar los cuatro lenguajes del están- lores por defecto de acuerdo a como
76 funcionales, los cuales pueden ade- dar, o incluso es posible utilizar SFC fueron definidos en el BF.
más ser usados por otros lenguajes. para definir algún paso. Una llamada a un bloque funcional
El empleo de un estándar brinda • Facilidad de depuración y loca- en lenguaje TE se realiza escribien-
numerosos beneficios para usuarios lización de errores, debido a la vi- do el nombre de la instancia del blo-
y programadores, entre los cuales se sualización gráfica de cual es el es- que, asignando a continuación, y en-
pueden destacar los siguientes: tado activo y el valor de las variables. tre paréntesis, los valores que se
• Reduce la necesidad de forma- desee a los parámetros. La forma en
ción y actualización de los recursos General la que se realiza la llamada a la fun-
humanos. • Ahorra tiempo de entrenamien- ción se muestra a continuación:
• Se puede lograr que el código to a los programadores.
sea reutilizable en gran medida. • Habilita desarrollo de software BloqueFuncionInstancia
• Reduce malos entendidos y erro- en paralelo por más programadores. (Parametroentrada1:=
res. El texto estructurado o TE puede ValorExpresion1,
• Se trata de técnicas de progra- ser además utilizado para expresar el Parametroentrada2:=
mación ampliamente usadas en con- comportamiento de las funciones, ValorExpresion2, …);
trol industrial. bloques funcionales y programas.
• Permite combinar distintos com- Este lenguaje permite la represen- En el siguiente ejemplo se llama a
ponentes de diferentes programas, tación de los pasos, las acciones y un temporizador con asignaciones
proyectos, lugares compañías y países. las transiciones. para los parámetros IN y PT. A con-
• Presenta una mejor vista gene- El lenguaje de texto estructurado tinuación, se asigna la variable de re-
ral a través de la estructura y la mo- es un lenguaje de alto nivel con sin- sultado Q a la variable A. La variable
dularidad. de resultado se activa, como en el len-
• Permite un ahorro de la inversión guaje LI, con el nombre del bloque
necesaria a través de la estandariza- funcional seguido de un punto y del
ción. nombre de la variable:
imilar al
S primer ar- a) b) c) Texto Estructurado
LDN B4
tículo publica- OR B5
M1:= FALSE;
do en el mes de M2I:= FALSE; NOT
M2D:= FALSE; JMPC else1_0
julio del año en M3:= FALSE; LD FALSE
curso, el ejem- M4S:= FALSE; ST M1
M4B:= TRUE; LD FALSE
plo se desarro- END_IF ST M2I
lla sobre la base IF B1 THEN LD FALSE
IF (NOT B2) THEN ST M2D
funcional de un WHILE (NOT B4) DO LD FALSE
ST M3
elevador fabri- a) posición inicial o de carga del palet; b) movimiento vertical;
c) posición final o de descarga del palet.
M1 := FALSE;
M2I := FALSE; LD FALSE
cado por la fir- M2D:=FALSE; ST M4S
M4S := FALSE; LD TRUE
ma Flexlink. Cuenta con tres cintas transportadoras, de las cuales una M4B := TRUE; ST M4B
de ellas proporciona movimiento vertical. La finalidad de este ejemplo prác- END_WHILE; else1_0:
M2D:= TRUE; end1_0:
tico será, a grandes rasgos, la de construir un bloque funcional utilizando M1 := TRUE; LDN B1
ELSE JMPC else2_0
el lenguaje de texto estructurado y presentar, en forma de tabla compa- M1 := FALSE; LD B2
rativa, el código del bloque funcional del elevador en el lenguaje de lista M2D:= FALSE; JMPC else3_0
M4S := TRUE; while4_0:
de instrucciones. WHILE (NOT B5) DO LD B4
Numerando los transportadores que forman el elevador, considérese la M4S:= TRUE; JMPC endwhile4_0
END_WHILE; LD FALSE
numeración de acuerdo a la trayectoria que recorre el palet. Esto signifi- M2I:= TRUE; ST M1
WHILE (NOT B3) DO LD FALSE
ca que el primer transportador es el de la esquina inferior izquierda. Des- M3:= TRUE; ST M2I
cribiendo a grandes rasgos las principales posiciones del elevador refe- END_WHILE; LD FALSE
M2I:= FALSE; ST M2D
renciadas en la figura superior: M4B:= TRUE; LD FALSE
a. En esta posición inicial es en la que el primer transportador transfie- M3:=FALSE; ST M4S
78 END_IF; LD TRUE
re el palet al segundo, el cual proporcionará un poco más tarde el movi- END_IF; ST M4B
JMP while4_0
miento vertical. endwhile4_0:
b. Una vez finalizado el movimiento vertical, mediante el cual el segun- LD TRUE
ST M2D
do transportador alcanza la posición superior, la siguiente etapa es la des- LD TRUE
carga del palet. ST M1
JMP end3_0
c. Dicha descarga se re- else3_0:
LD FALSE
aliza mediante la transfe- ST M1
rencia del palet del se- LD FALSE
ST M2D
gundo transportador al LD TRUE
tercero. Una vez transfe- ST M4S
while5_0:
rido, el segundo trans- LD B5
JMPC endwhile5_0
portador regresa a la po- LD TRUE
sición inicial para esperar ST M4S
JMP while5_0
el siguiente palet. endwhile5_0:
LD TRUE
ST M2I
Diagrama de flujo while6_0:
LD B3
A continuación es posible JMPC endwhile6_0
seguir el proceso revi- LD TRUE
ST M3
sando el diagrama de flu- JMP while6_0
endwhile6_0:
jo. Dicho diagrama repre- LD FALSE
senta todas las etapas de ST M2I
LD TRUE
funcionamiento normal, ST M4B
esto indica que para sim- LD FALSE
ST M3
plificar, no se incluyen las end3_0:
else2_0:
posibles fallas en las que end2_0:
pudiera incurrir el siste-
Diagrama de flujo del algoritmo de control del eleva- ma.
dor La elaboración de un Tabla comparativa del Bloque Funcional entre TE y LI.
Octubre 2004 / n.º 355 SOLUCIONES Automática e Instrumentación