Está en la página 1de 6

Simulación de procesos con controladores

lógico-programables (PLC’s)
M. García, M. Llorca, J. Oro, D. Solà y E. Barberà*
IQS School of Engineering, Universitat Ramon Llull
Via Augusta 390, 08017-Barcelona, Spain

Process simulation with Programmable Logic Controllers (PLC’ s)

Simulació de processos amb controladors lògics programables (PLC)

Recibido: 2 de enero de 2014; revisado: 12 de mayo de 2014; aceptado: 13 de mayo de 2014

RESUMEN RESUM

La realización de prácticas en el laboratorio de control de Les pràctiques de control de processos presenten un ele-
procesos presenta como mayor dificultad el coste asocia- vat cost associat amb l’operació del procés, a causa del
do al funcionamiento del proceso, debido al consumo de consum de reactius, energia o per la generació de resi-
reactivos, de energía o a la generación de residuos. Por dus. Per tant, la simulació híbrida pot ser una opció molt
tanto se propone trabajar con un proceso simulado en un atractiva. En aquest treball es proposa la simulació de pro-
controlador lógico- programable o PLC, con lo que se rea- cessos amb controladors lògics programables o PLC com
liza una práctica de bajo coste y más cercana a la realidad pràctica de baix cost i mès propera a la realitat que la pura
que la pura simulación numérica. simulació numèrica.

Palabras clave: Control de procesos, simulación, contro- Paraules clau: Control de processos, simulació, controla-
ladores lógico programables dors lògics programables

SUMMARY

The laboratory of process control can be very expensive,


the high cost is associated to the process operation, re-
agents, energy or waste generation. Therefore, hybrid sim-
ulation can be a very atractive option. In this work, process
simulation with PLC is proposed as a low cost alternative
closer to reality than pure numerical simulation.

Key words: Process control, simulation, PLC

AFINIDAD LXXI, 566, Abril - Junio 2014 95


1.- INTRODUCCIÓN Siemens®: CPU compacta 314C-2DP con entradas y sa-
lidas analógicas de 12 bits. Step 7® Professional 2006 (3).
El dominio de las técnicas de control de procesos requiere Schneider Electric®: PLC Modicon Premium TSXPSY2600
la realización de prácticas que permitan al operador ad- (fuente de alimentación), TSXP572634 (CPU), TSXAEY414
quirir la habilidad suficiente. Dado el elevado coste de las (entradas analógicas de 16 bits) y TSXASY410 (salidas
plantas experimentales se tiende a la ejecución de prác- analógicas de 11 bits + signo). UnityPro® v2.2 (3).
ticas por simulación por ordenador, siendo Simulink® de Tanto la entrada (variable manipulada) como la salida (va-
Matlab® uno de los programas más populares. riable controlada) se han considerado diferencias de po-
Aunque las prácticas de control de procesos realizadas tencial (voltios).
por simulación son muy útiles, adolecen del defecto de la
no manipulación de los elementos reales de control ni de
las diferentes señales que intervienen. Tampoco permiten 3.- PLC S-300 SIEMENS®
probar el comportamiento de nuevos controladores.
Estos inconvenientes se pueden resolver mediante la si- 3.1.- Primer orden
mulación del proceso mediante sistemas electrónicos (1 Un proceso de primer orden viene caracterizado por la
Un proceso de primer orden viene caracterizado por la siguiente función de
y 2) construido con amplificadores operacionales, lo que siguiente función de transferencia en s normalizada a ga-
transferencia en s normalizada a ganancia unidad:
permite disponer de procesos con la función de transfe- nancia unidad:
rencia del orden deseado que deben ser conectados al Un proceso de primer orden viene caracterizado por la siguiente función de
transferencia en s normalizada 𝐶𝐶(𝑠𝑠)
a ganancia 1
controlador mediante las señales eléctricas correspon- Un proceso de primer orden viene = unidad: por la siguiente función de
caracterizado
dientes a la variable controlada (salida del proceso) transferencia
y a la 𝑉𝑉𝑉𝑉(𝑠𝑠)
en s normalizada a ganancia unidad: 𝜏𝜏𝜏𝜏 +1
Ecuación 11
𝐶𝐶(𝑠𝑠)
señal reguladora (entrada al proceso). Ecuación 1
Únicamente existe la imposibilidad de construir un pro- 𝐶𝐶(𝑠𝑠) = 𝜏𝜏𝜏𝜏1+ 1
𝑉𝑉𝑉𝑉(𝑠𝑠)
ceso de tiempo muerto mediante elementos electrónicos
donde C(s) ydonde VM(s) son las variables
C(s) y VM(s) son
= 1 controlada
Ecuación
las variables
(salida) y manipulada
𝑉𝑉𝑉𝑉(𝑠𝑠) 𝜏𝜏𝜏𝜏 + 1 controlada (salida) y
analógicos, lo que impide la modelización de muchos pro- (entrada) respectivamente y τ , la constante
manipulada (entrada) respectivamenteEcuación 1 de tiempo.
y τ, la constante de
cesos de control reales. Esta ecuación
donde puede
VM(s) transformarse
C(s) ytiempo. son las variables en la correspondiente
controlada (salida) función
y discreta (en
manipulada
La simulación de un proceso de tiempo muerto mediante z)
dondemediante
(entrada) C(s) el conocido
y VM(s) sony τlas
Esta ecuación
respectivamente procedimiento
, la constante
puede de
variables de
transformarse Tustin,
controladaobteniendo:
tiempo. (salida) y manipulada
en la correspondiente
técnicas digitales no tiene una gran dificultad, basta Estage-
(entrada) ecuación función
puedediscreta
respectivamente y τ(en
, laz)constante
transformarse mediante el
deconocido
en la correspondiente
tiempo.
−1
procedimien-
función discreta (en
nerar una cola de espera en la que la entrada actual z) se
mediante el to de Tustin,
conocido
Esta ecuación puede transformarse 𝐶𝐶(𝑧𝑧)
obteniendo:
procedimiento de 𝑇𝑇 + 𝑇𝑇𝑧𝑧
Tustin, obteniendo:
en la correspondiente función discreta (en
almacena durante un tiempo igual al tiempo muerto. = −1
z) mediante el conocido procedimiento 𝑉𝑉𝑉𝑉(𝑧𝑧) 𝑇𝑇 + 2𝜏𝜏 de+Tustin,
(𝑇𝑇 − 2𝜏𝜏)𝑧𝑧obteniendo:
En el presente trabajo se propone la utilización de un con- 𝐶𝐶(𝑧𝑧) Ecuación 2
𝑇𝑇 + 𝑇𝑇𝑧𝑧 −1
mediante
troladorlas señales eléctricas correspondientes
o PLC para aimplementar
la variable controlada
lógico-programable
(salida del proceso) y a la señal reguladora (entrada al proceso).
la si-
𝐶𝐶(𝑧𝑧) = 𝑇𝑇 + 2𝜏𝜏𝑇𝑇++(𝑇𝑇
𝑉𝑉𝑉𝑉(𝑧𝑧)
−1
𝑇𝑇𝑧𝑧− 2𝜏𝜏)𝑧𝑧 −1
mulación existe
Únicamente del proceso. Éstadeseconstruir
la imposibilidad realizará mediante
un proceso bloques
donde
de tiempo T es el periodo de simulación.
muerto = Ecuación 2
𝑉𝑉𝑉𝑉(𝑧𝑧) 𝑇𝑇 + 2𝜏𝜏 + (𝑇𝑇 − 2𝜏𝜏)𝑧𝑧 −1
mediante
de primer elementos
o deelectrónicos
segundoanalógicos, lo que impide la modelización
orden subamortiguado y uno ode Ecuación 2
muchos procesos de control reales. Ecuación 2
más
La bloques
simulación de un deproceso
tiempo de muerto. La mediante
tiempo muerto simulación seSu
técnicas deberá
implementación
digitales recursiva es:
tiene
donde Tnoes el periodo de simulación.
una gran
ejecutar dificultad, basta generar
periódicamente con una
un cola de espera
tiempo en la que la entrada
de ejecución su- donde T es el periodo de simulación.
actual se almacena durante un tiempo igual al tiempo muerto.
ficientemente pequeño paralaque el comportamiento donde T es el periodo de simulación.
En el presente trabajo se propone utilización de un controlador sea lógico- 𝑇𝑇 · [𝑣𝑣𝑣𝑣(𝑘𝑘) + 𝑣𝑣𝑣𝑣(𝑘𝑘 − 1)] − (𝑇𝑇 − 2𝜏𝜏) · 𝑐𝑐(𝑘𝑘 − 1)
correcto, oaproximándose
programable PLC para implementar suficientemente
la simulación del al
Su Ésta
implementación
funciona-
proceso. se 𝑐𝑐(𝑘𝑘)
Su =recursiva es:recursiva es:
implementación
realizará mediante bloques de primer o de segundo orden subamortiguado Su implementación
y recursiva es: 𝑇𝑇 + 2𝜏𝜏
miento
uno o más delbloques
proceso continuo
de tiempo simulado.
muerto. La simulación se deberá ejecutar Ecuación 3
La señal reguladora,
periódicamente con un tiempoque viene del
de ejecución controlador,
suficientemente se intro-
pequeño para que
𝑇𝑇 · [𝑣𝑣𝑣𝑣(𝑘𝑘) + 𝑣𝑣𝑣𝑣(𝑘𝑘 − 1)] − (𝑇𝑇 − 2𝜏𝜏) · 𝑐𝑐(𝑘𝑘 − 1)
𝑐𝑐(𝑘𝑘) = 𝑇𝑇 · [𝑣𝑣𝑣𝑣(𝑘𝑘) + 𝑣𝑣𝑣𝑣(𝑘𝑘 − 1)] − (𝑇𝑇 − 2𝜏𝜏) · 𝑐𝑐(𝑘𝑘 − 1)
el comportamiento sea correcto, aproximándose suficientemente al
ducirá al PLC simulador mediante una entrada analógica donde k indica el instante actual Ecuación 𝑇𝑇 + 2𝜏𝜏
funcionamiento del proceso continuo simulado. 𝑐𝑐(𝑘𝑘) =
y la
La variable
señal controlada
reguladora, se controlador,
que viene del sacará del se PLC a través
introducirá al PLCde una
simulador 𝑇𝑇 +32𝜏𝜏
mediante una entrada (Figura
analógica1).
y la variable controlada se sacará del PLC a Ecuación 3
salida analógica
través de una salida analógica (Figura 1). El programa, realizado en lenguajeEcuación
donde k indica el instante actual de lista3 de instrucciones (AWL) de Step7®
(3), sekestructura
donde indicadonde en un bloque
el instante actual de función para poder disponer de un bloque de
datos
El asociado
programa, que kpermita
realizado
indica elsu
instante
en lenguajeutilizaciónactualrepetida, para poder simular procesos
de lista de instrucciones (AWL) de Step7®
de
El orden
(3),programa, superior.
se estructura en un en
realizado bloque de función
lenguaje listapara
dedepoder disponer de undebloque
Step7de ®
La tabla de El programa,
variables realizado
asociada a este endelenguaje
bloque de
instrucciones
lista de
función es:
(AWL)
instruccio-
datos
(3), seasociado
estructura nesque
en permita
un bloque
(AWL) su de
de Step7 utilización
® función repetida,
para poder
(3), se estructura enpara poder
bloque simular
disponer
un de procesos
de un bloque de
Figura. 1.- Diagrama de bloques Tipo
de
datos orden identificador
superior.
asociado que permita su utilización Comentario
repetida, para poder simular procesos
función para poder disponer de un bloque de datos aso-
INdeorden
La tabla
igual ode r
variables asociada real entrada, vm(k)
El controlador seráFigura.
exterior al
1.-PLC simuladorde
Diagrama y podrá de
ser otro PLC
bloques superior.ciado que permita asueste bloque
utilización de función
repetida, paraes:
poder si-
diferente modelo y fabricante, un ordenador actuando como controlador y la
Tipo
La tabla de periodo asociada real
identificador
variables a este bloqueperiodo
Comentario
de de simulación,
función es: T en s
interfase adecuada o bien un equipo controlador, ya sea digital o analógico. mular procesos de orden superior.
En
El consecuencia,
controlador ®
el será
objetivo de este trabajo
exterior al PLC es simulador
la programación INun PLC
Tipo
de
y podrá
®
rtauLa tabla de variables
serS- identificador
realasociada
real constante
entrada,
Comentario
a este bloquede tiempo,
de función τ en s
vm(k)
300 de Siemens o de un PLC Premium de Schneider Electric para que se
otro PLC de igual o diferente modelo y fabricante,
comporten como procesos con una función de transferencia compuesta por
OUT
IN
un orde- r c
periodo
es: real
real
real salida,
periodo
entrada, de simulación, T c(k)
en s
vm(k)
nador actuando
unidades como controlador
de primer o segundo y la interfase
orden subamortiguado y de tiempo STAT
adecuada
muerto. cp
tau
periodo real
real
real salida anterior,
periodo
constante de desimulación,
tiempo, Tτc(k-1)
en
en ss
Tipo identificador Comentario
o Materiales
2.- bien un equipo
y métodos controlador, ya sea digital o analógico. OUT crp
tau real
real
real entrada anterior,
constante
salida, de tiempo, vm(k-1)
τ c(k)
en s
En consecuencia, el objetivo de este trabajo es laOUT progra-
STAT ccp r real
real
real salida anterior, vm(k)
salida,
entrada, c(k-1)
c(k)
El hardware y software utilizado es el siguiente:
mación ® de un PLC S-300 de Siemens
®
o
Siemens : CPU compacta 314C-2DP con entradas y salidas analógicas de un FB1
PLC
STAT Pre-
de 12 rp
cp real
real entrada
salida anterior,
anterior, vm(k-1)
c(k-1)
mium Stepde7® Schneider Electric
(3). ® para que se comporten como • segmento rp IN1 periodo real
bits. Professional 2006 real periodo de simulación,
Schneider Electric®: PLC Modicon Premium TSXPSY2600 (fuente de entrada anterior, T en s vm(k-1)
procesos con una función de transferencia compuesta por L #r // entrada del proceso, vm(k)
alimentación), TSXP572634 (CPU), TSXAEY414 (entradas analógicas FB1 de 16
unidades
bits) de primer
y TSXASY410 o segundo
(salidas analógicas de 11orden subamortiguado
bits + signo). yL
UnityPro® v2.2 (3). #rp 1 tau real // entrada
constante anterior,
de tiempo, vm(k-1) τ en s
Tanto la entrada FB1• segmento
(variable manipulada) como la salida (variable controlada) se
de tiempo muerto.
han considerado diferencias de potencial (voltios). L+R
• segmento #rOUT 1 c real// entrada
salida, del proceso, vm(k) c(k)
® LLL #periodo
#rp
#r ////entrada
// T
entrada anterior,
del proceso,vm(k-1)
vm(k)
3.- PLC S-300 Siemens
*R
L+R #rp cp real//// entrada
T[vm(k)+vm(k-1)]
anterior, vm(k-1)c(k-1)
salida anterior,
2.-Primer
3.1.- MATERIALES
orden Y MÉTODOS T #c
L
+R #periodo
STAT // T
L
L*R #tau
#periodo rp real entrada anterior,
//// TT[vm(k)+vm(k-1)] vm(k-1)
El hardware y software utilizado es el siguiente: L #tau
T
*R #c // T[vm(k)+vm(k-1)]
TL+R #c #tau // 2τ
LL #tau
#tau
L+R #tau // 2τ
96 +R AFINIDAD
// 2τ LXXI, 566, Abril - Junio 2014
FB1 El periodo de ejecución del bloque OB35 se ha fijado en
tau :=5.000000e+000
• segmento 1 100c ms, este :=MD18 valor está almacenado como entero sencillo
L #r // entrada del proceso, vm(k) en la variable OB35_EXC_FREQ, las primeras instruccio-
L #rp // entrada anterior, vm(k-1) El periodones de permiten
ejecuciónpasar del bloque este valor OB35 a realse ha en segundos
fijado en 100 (MD10). ms, este valor
+R está almacenado En el programa como entero principal, sencillo OB1,enselasitúan variable OB35_EXC_FREQ, las
las instrucciones
tau :=5.000000e+000
L #periodo // T primeras instrucciones
necesarias permiten
para adquirir pasar este valor
la entrada delaproceso real en segundos a partir de(MD10).
tau c:=5.000000e+000 :=MD18
*R // T[vm(k)+vm(k-1)] En el programa una entradac principal, analógica,
:=MD18 OB1, se que, sitúan
después las instrucciones
de convertidanecesarias a nú- para
adquirir la mero entrada real, del proceso
guardaaen partirmarca de unaMD14 entrada analógica, que, después
T #c El periodo dese ejecución dellabloque OB35 se y emitir
ha fijado la salida,
en 100 ms, este va
de convertida
El periodo marca dea número
MD18, areal,
ejecución del
través se guarda
bloque de OB35 una en selahamarca
salida fijado en
analógica, MD14 yms,
100después emitir
este la salida,
valor
L #tau está almacenado como entero sencillo en la variable OB35_EXC_FREQ, l
marca estáMD18,almacenado a través
taucomo
deentero una sencillo salida analógica, en la variable después de ser convertida
OB35_EXC_FREQ, las
L #tau primeras
de ser instrucciones
convertida :=5.000000e+000 permiten
adecuadamente. pasar este valor a real en segundos (MD10).
adecuadamente.
primeras instrucciones c permiten
:=MD18 pasar este valor a real en segundos (MD10).
+R // 2τ En el Enprograma
el programa principal, principal,
OB1, se OB1, sitúan se las sitúan las instrucciones
instrucciones necesarias necesariaspara pa
L #periodo adquirir
3.2.- la entrada
Segundo del
ordendelproceso asubamortiguado adepartir defijadounaen entrada
100 ms,analógica, que, despu
3.2.-adquirir la entrada
El periodo
Segundo orden del
de ejecución proceso
subamortiguado bloquepartir OB35 una
se ha entrada analógica, que, después
este valor
TAK // intercambio de ACU1 y ACU2 de
de convertida
estáLaconvertida
almacenado
función a número ade número
como real,
entero
transferencia sereal,
guarda
sencillo sede enguarda
enlaun lavariable
marcaen OB35_EXC_FREQ,
proceso laMD14 marca MD14
de ysegundo
emitir ysalida,
la las emitir la salid
marca marca
primeras
MD18, MD18,
instrucciones
a través a través
permiten
de unadepasar unaeste
salida salida
valor aanalógica,
analógica, real en segundos
después después
de (MD10).
ser de ser converti
convertida
-R // (T-2τ) La función En ordendeprograma
el transferencia principal,de
subamortiguado OB1, uncon proceso
se ganancia
sitúan lasde instrucciones
segundo
unidad (Ecuación orden
necesariassubamortiguado
4)
para
adecuadamente.
adecuadamente.
L #cp // salida anterior, c(k-1) con ganancia adquirir
conduce,unidad
la entrada (Ecuación
del proceso
mediante la4) conduce,
aaplicación
partir de unadel mediante
entrada método la de
analógica, aplicación
que, después
Tustin, adel método
de Tustin, de a convertida
su forma a número
discreta real, se guarda 5).
(Ecuación en la marca MD14 y emitir la salida,
*R // (T-2τ)c(k-1) 3.2.-3.2.- su
Segundo
marcaSegundoforma orden
MD18, a través discreta
subamortiguado(Ecuación
ordendesubamortiguado 5).
una salida analógica, después de ser convertida
L #c adecuadamente. 2
La función de transferencia𝐶𝐶(𝑠𝑠) de un proceso 𝜔𝜔 de 𝑜𝑜 segundo orden subamortiguado
TAK La función de transferencia de un proceso
=conduce, delasegundo orden subamortigua
con 3.2.-
ganancia Segundo unidad orden(Ecuación
subamortiguado
𝑉𝑉𝑀𝑀(𝑠𝑠) 4) 2
𝑠𝑠 +4)2𝜉𝜉𝜔𝜔 mediante 2 aplicación del método
-R // T[vm(k)+vm(k-1)]-(T-2τ)c(k-1) con ganancia unidad (Ecuación 𝑜𝑜 𝑠𝑠 + 𝜔𝜔𝑜𝑜 mediante la aplicación del méto
conduce,
de Tustin, a su forma discreta (Ecuación Ecuación 4 5).
T #c de Tustin,dea transferencia
La función su forma discreta de unEcuación (Ecuación
proceso de 4 segundo 5). orden subamortiguado
con ganancia unidad (Ecuación 𝐶𝐶(𝑠𝑠) conduce,𝜔𝜔mediante
4) 2 la aplicación del método
L #tau donde ωde o es la frecuencia
Tustin, a su forma discreta de resonancia (Ecuación
=𝐶𝐶(𝑠𝑠) y ξ, el coeficiente
5).
𝑜𝑜
2 de amortiguamiento.
𝑉𝑉𝑀𝑀(𝑠𝑠) 𝑠𝑠 2 + 2𝜉𝜉𝜔𝜔 𝑠𝑠 + 𝜔𝜔 2𝜔𝜔𝑜𝑜
L #tau donde ωo es la frecuencia de resonancia =42𝑜𝑜2 𝑜𝑜 y ξ, el coeficiente
Ecuación
𝐶𝐶(𝑠𝑠)𝜔𝜔𝑉𝑉𝑀𝑀(𝑠𝑠) 𝜔𝜔𝑜𝑜𝑠𝑠 −1 + 2𝜉𝜉𝜔𝜔 2
+R 𝐶𝐶(𝑧𝑧) de amortiguamiento. 2 2
+ 𝑧𝑧 −2 𝑜𝑜 𝑠𝑠)+ 𝜔𝜔𝑜𝑜
=𝑜𝑜 𝑇𝑇2 (1 + 2𝑧𝑧
= 𝑉𝑉𝑀𝑀(𝑠𝑠) 𝑠𝑠 + Ecuación
2𝜉𝜉𝜔𝜔 𝑠𝑠 + 𝜔𝜔 2 4
L #periodo donde ωo(𝜔𝜔
𝑉𝑉𝑉𝑉(𝑧𝑧) es𝑜𝑜2la 𝑇𝑇 2frecuencia
+ 4𝜉𝜉𝜔𝜔𝑜𝑜 𝑇𝑇 de + 4) + (2𝜔𝜔
resonancia Ecuación
2 2 ξ,
𝑜𝑜 𝑇𝑇y 4
𝑜𝑜
−el8)𝑧𝑧
𝑜𝑜
−1 + (𝜔𝜔 2de
coeficiente 2 − 4𝜉𝜉𝜔𝜔 𝑇𝑇 + 4)𝑧𝑧 −2
𝑜𝑜 𝑇𝑇 amortiguamiento.
𝑜𝑜
+R // (T+2τ) donde Ecuación 5
ω o es la frecuencia de2 resonancia 2 −1 y ξ,
−2 el coeficiente de amortiguamient
L #c donde ωo es la frecuencia de resonancia
𝐶𝐶(𝑧𝑧) 𝜔𝜔𝑜𝑜 𝑇𝑇 (1y+ξ,2𝑧𝑧 el coeficiente
+ 𝑧𝑧 ) de amortiguamiento.
= 2 2
TAK donde T es
𝑉𝑉𝑉𝑉(𝑧𝑧) el periodo
(𝜔𝜔 𝑇𝑇 + de
4𝜉𝜉𝜔𝜔 simulación.
𝑇𝑇 + 4) + (2𝜔𝜔 2 𝑇𝑇 2 − 8)𝑧𝑧 −1 + (𝜔𝜔 2 𝑇𝑇 2 − 4𝜉𝜉𝜔𝜔 𝑇𝑇 + 4)𝑧𝑧 −2
2 −1
𝐶𝐶(𝑧𝑧) 𝑜𝑜
𝐶𝐶(𝑧𝑧) 𝑜𝑜 𝜔𝜔𝑜𝑜2 𝑇𝑇 2𝑜𝑜(1 +
Ecuación 𝑜𝑜5
𝜔𝜔2𝑧𝑧 𝑇𝑇 2 (1 + 𝑧𝑧+ −2 ) −1
2𝑧𝑧 𝑜𝑜 + 𝑧𝑧 −2 ) 𝑜𝑜
== 2 2
/R // [T[vm(k)+vm(k-1)]-(T-2τ)c(k-1)]/(T+2τ) 𝑉𝑉𝑉𝑉(𝑧𝑧)
𝑉𝑉𝑉𝑉(𝑧𝑧) (𝜔𝜔𝑜𝑜(𝜔𝜔
𝑇𝑇 2+𝑇𝑇 4𝜉𝜉𝜔𝜔
2 +𝑜𝑜4𝜉𝜉𝜔𝜔𝑇𝑇 + 4)𝑇𝑇+Ecuación
+ (2𝜔𝜔 4)
2 2
𝑜𝑜 𝑇𝑇+ − (2𝜔𝜔 5 2−1𝑇𝑇+
8)𝑧𝑧 2− (𝜔𝜔𝑜𝑜8)𝑧𝑧
2 𝑇𝑇 2 −
−14𝜉𝜉𝜔𝜔 𝑇𝑇 +
+ 𝑜𝑜(𝜔𝜔 2 −2
2 4)𝑧𝑧 −2
Su implementación en𝑜𝑜forma recursiva 𝑜𝑜 Ecuación es: 5 𝑜𝑜 𝑜𝑜 𝑇𝑇 − 4𝜉𝜉𝜔𝜔𝑜𝑜 𝑇𝑇 + 4)𝑧𝑧
T #c donde T es el periodo de simulación. Ecuación 5
• segmento 2 𝐵𝐵 2donde
donde T es el
· [𝑣𝑣𝑣𝑣(𝑘𝑘) T periodo
es
+ 2el·forma
periodo
de simulación.
𝑣𝑣𝑣𝑣(𝑘𝑘 − 1) de+simulación.
𝑣𝑣𝑣𝑣(𝑘𝑘 − 2)] − 𝐴𝐴1 · 𝑐𝑐(𝑘𝑘 − 1) − 𝐴𝐴2 · 𝑐𝑐(𝑘𝑘 − 2)
L #r // entrada actual, vm(k) Su=implementación
𝑐𝑐(𝑘𝑘) donde T es el en
Su implementación periodo de recursiva formaes:
ensimulación. recursiva es:
Su implementación en forma recursiva es: 𝐴𝐴0
T #rp // guardar entr. actual en entr. previa, vm(k-1) 𝐵𝐵 2 [𝑣𝑣𝑣𝑣(𝑘𝑘)
· + 2 · 𝑣𝑣𝑣𝑣(𝑘𝑘 − 1) Ecuación
+ 𝑣𝑣𝑣𝑣(𝑘𝑘 6 2)] − 𝐴𝐴1 · 𝑐𝑐(𝑘𝑘 − 1) − 𝐴𝐴2 · 𝑐𝑐(𝑘𝑘 − 2)

Su= implementación
𝑐𝑐(𝑘𝑘) en forma recursiva es:
L #c // salida actual, c(k) 𝐵𝐵 2 · [𝑣𝑣𝑣𝑣(𝑘𝑘) + 2 · 𝑣𝑣𝑣𝑣(𝑘𝑘 − 1) + 𝑣𝑣𝑣𝑣(𝑘𝑘 − 2)] − 𝐴𝐴1 · 𝑐𝑐(𝑘𝑘 − 1) − 𝐴𝐴2 · 𝑐𝑐(𝑘𝑘 − 2)
𝐴𝐴0
𝑐𝑐(𝑘𝑘) =
T #cp // guardar sal. actual en sal. previa, c(k-1) donde: k = instante actual Ecuación 06 𝐴𝐴
𝐵𝐵 2 · [𝑣𝑣𝑣𝑣(𝑘𝑘)
𝐵𝐵 = 𝜔𝜔0 𝑇𝑇+ 2 · 𝑣𝑣𝑣𝑣(𝑘𝑘 − 1)6+ 𝑣𝑣𝑣𝑣(𝑘𝑘 − 2)] − 𝐴𝐴1 · 𝑐𝑐(𝑘𝑘 − 1) − 𝐴𝐴2 · 𝑐𝑐(𝑘𝑘 − 2
Ecuación
𝑐𝑐(𝑘𝑘) = Ecuación 6
donde: donde: 𝐴𝐴 k == instante
(𝜔𝜔
0 k = instante
2 2 actual
𝑇𝑇 + actual𝑜𝑜 𝑇𝑇 + 4)
4𝜉𝜉𝜔𝜔 𝐴𝐴0
Se ha utilizado la propia variable de salida, c, para ir alma- 𝑜𝑜
Ecuación 6
𝐴𝐴1𝐵𝐵== 𝜔𝜔0𝜔𝜔𝑇𝑇02𝑇𝑇𝑇𝑇 2 − 8)
𝐵𝐵 (2𝜔𝜔
= 𝑜𝑜
cenando los resultados intermedios. donde: 𝐴𝐴0𝐴𝐴= =(𝜔𝜔 (𝜔𝜔
2 2 22
𝑜𝑜 𝑇𝑇 ++4𝜉𝜉𝜔𝜔
4𝜉𝜉𝜔𝜔𝑜𝑜𝑜𝑜 𝑇𝑇 + 4)
𝐴𝐴2 = 0(𝜔𝜔 2
𝑇𝑇𝑜𝑜22𝑇𝑇2− 4𝜉𝜉𝜔𝜔 𝑇𝑇
𝑇𝑇 ++4)4)
Como la ejecución ha de ser de forma periódica con un donde: 𝐴𝐴1𝐴𝐴=1 = k𝑜𝑜(2𝜔𝜔
(2𝜔𝜔 =𝑜𝑜 𝑇𝑇
𝑜𝑜instante
𝑇𝑇22−−8) 8) 𝑜𝑜 actual
2 2 𝑇𝑇2 2 − 4𝜉𝜉𝜔𝜔 𝑇𝑇 + 4)
control ajustado del tiempo, es preferible utilizar un bloque 𝐴𝐴2𝐴𝐴=2 = 𝐵𝐵(𝜔𝜔
(𝜔𝜔 𝑜𝑜= 𝑜𝑜 𝜔𝜔
𝑇𝑇 −0 𝑇𝑇
4𝜉𝜉𝜔𝜔𝑜𝑜𝑜𝑜 𝑇𝑇 + 4)
La tabla de variables del bloque
2 2 de función desarrollado para su
de organización de ejecución periódica como el OB35,implementación
fi- 𝐴𝐴 0 del (𝜔𝜔
= 𝑜𝑜 𝑇𝑇 + de 4𝜉𝜉𝜔𝜔función
𝑜𝑜 𝑇𝑇 + 4)desarrollado para su
La tabla dees:variables 𝐴𝐴del
La tabla de variables
= (2𝜔𝜔
bloque
bloque 2
𝑇𝑇 2
− de 8) función desarrollado para su
jando su periodo de ejecución con un valor igual al periodo implementación
Tipoimplementación identificador es: 1 𝑜𝑜
Comentario
es:
Tipo identificador 𝐴𝐴2 = (𝜔𝜔𝑜𝑜2 𝑇𝑇 2 −Comentario 4𝜉𝜉𝜔𝜔 𝑜𝑜 𝑇𝑇 + 4)
de simulación. IN TipoIN r identificador r realreal entrada,
Comentario
entrada, vm(k) vm(k)
Como ejemplo de aplicación se ha considerado la simu- IN La r periodo
periodo
tabla de variables real
real deldelbloque
real entrada,
periodo
periodo de
dedefunción simulación,
simulación, desarrollado T envm(k)
s T en spara
La tabla periodo de variables real bloque
periodo de
dedesimulación, función desarrollado
T0 en
en srad/s
lación de un proceso de segundo orden con amortigua- frec_res
para
implementación su frec_res
implementación realreal es: frecuencia frecuencia de resonancia,
resonancia, ω0 en rad/s ω
coef_am coef_ames:
frec_res real
realreal frecuencia
coeficiente
coeficiente de deamortiguamiento,
de resonancia,
amortiguamiento, ω0 enξrad/s ξ
miento crítico asociando dos bloques de primer orden a Tipo
OUTTipocoef_am c identificadorreal
identificador Comentario
Comentario
real coeficiente
salida, de amortiguamiento, c(k) ξ
dos bloques de datos, DB1 y DB4, en éstos se almacenan OUT IN cIN r r real real entrada, salida, entrada,
realsalida, vm(k) c(k) vm(k
OUT c real c(k)
los parámetros y datos de entrada y de salida actuales y periodo real
periodo periodo real de simulación, periodo de simulación, T en s T en
previos. frec_res real
frec_res real de resonancia,
frecuencia frecuencia ω0de resonancia, ω0 en rad/
en rad/s
El bloque de organización OB35 queda: coef_am real
coef_am real
coeficiente coeficiente de amortiguamiento,
de amortiguamiento, ξ
OUTOUT c c real real
salida, salida, c(k) c(k)
L #OB35_EXC_FREQ STAT cp1 real salida anterior, c(k-1)
ITD // paso a entero doble cp2 real salida anterior, c(k-2)
DTR // paso a real rp1 real entrada anterior, vm(k-1)
L 1000.0 rp2 real entrada anterior, vm(k-2)
/R // paso a segundos TEMP B real ω0T
T MD 10 A0 real ω02T2+4ξω0T+4
CALL FB 1,DB1 A1 real 2ω02T2-8
r :=MD14 A2 real ω0 T -4ξω0T+4
2 2

periodo:=MD10 El bloque simulador del proceso es el siguiente:


tau :=5.000000e+000
c :=MD22 FB2
CALL FB 1,DB4 • cálculo de los coeficientes
r :=MD22 L #frec_res //ω0
periodo:=MD10 L #periodo //T
tau :=5.000000e+000 *R
c :=MD18

AFINIDAD LXXI, 566, Abril - Junio 2014 97


T #B //ω0T L #c
L 4.000000e+000 T #cp1 //c(k-1)
L #coef_am //ξ
*R Este bloque, igual que en el caso anterior, se llama desde
L #B el bloque de organización OB35.
+R
L #B L #OB35_EXC_FREQ
*R ITD
L 4.000000e+000 DTR
+R L 1000.0
T #A0 //A0 = (4*ξ+B)*B+4 /R
L #B T MD 10
L #B CALL FB 2,DB2
*R r :=MD14
L 2.000000e+000 periodo :=MD10
*R frec_res :=1.000000e-001
L -8.000000e+000 coef_amort:=3.000000e-001
+R c :=MD18
T A1 //A1 = B*B*2-8
L -4.000000e+000 El periodo de ejecución del bloque OB35 se ha fijado en
L #coef_am 100 ms, en coherencia con el dato de periodo.
*R Igual que en el caso anterior, la señal de entrada se debe
L #B guardar en la marca MD14 y la señal de salida queda al-
+R macenada en la marca MD18.
L #B El periodo de ejecución del bloque OB35 se ha fijado en 100 ms, en coherencia
*R con el dato de3.3.-
periodo.
Tiempo muerto
L #4.000000e+000 Igual que en elParacaso anterior,
simular un tiempola señalmuerto de basta
entrada se debe
almacenar guardar en la marca
la entrada
+R MD14 y la señal de salida
durante queda
un tiempo almacenada
igual al tiempo muerto.en la Lamarca MD18.
solución más
T #A2 //A2 = (-4*ξ+B)*B+4 simple es establecer un vector en que la primera posición
• cálculo de la respuesta 3.3.- Tiempo muerto
acoge la entrada más reciente y la última posición contie-
L #rp1 ne el valor más antiguo que constituirá la salida, después
L 2.000000e+000 Para simular un de tiempo
cada salidamuerto basta almacenar
se desplazan la entrada
todos los valores. Este durante
des- un tiempo
*R igual al tiempoplazamiento
muerto. Lapuede solución consumir
másuna gran es
simple cantidad de tiempo
establecer un vector en que
L #rp2 de ejecución
la primera posición acoge la si la dimensión
entrada másdel vector, yque
reciente es igual
la última al
posición contiene
+R el valor más cociente
antiguo entre que elconstituirá
tiempo muerto, θ, y el periodo
la salida, después de de
simu-cada salida se
L #r desplazan todos lación,
losT,valores.
es grande. Este desplazamiento puede consumir una gran
+R Para incrementar
cantidad de tiempo de ejecución la eficiencia de la ejecución
si la dimensión se puede
del vector, que es igual al
L #B cociente entreimplementar
el tiempo muerto,un vector θ, circular
y el periodoen el que en lugar de des-
de simulación, T, es grande.
*R Para incrementarplazar la los valores se
eficiencia deutiliza un puntero.
la ejecución seÉste
puede indica el lugar
implementar un vector
L #B donde se encuentra el valor a extraer y donde
circular en el que en lugar de desplazar los valores se utiliza un puntero. Éste se introduci-
*R indica el lugarrádonde
la nueva seentrada,
encuentra luegoelelvalor
puntero se incrementa
a extraer y donde en una
se introducirá la
T #c //[r(k-1)*2+r(k-2)+r(k)]*B*B nueva entrada, unidad.
luegoSólo hay que tener
el puntero en cuenta que
se incrementa enaluna sobrepasar
unidad.la Sólo hay que
L #cp1 dimensión del vector se debe reiniciar.
tener en cuenta que al sobrepasar la dimensión del vector se debe reiniciar.
L #A1
*R El equivalente discreto del tiempo muerto θ, es:
El equivalente discreto del tiempo muerto θ, es:
L #c
TAK
𝐶𝐶(𝑧𝑧)
-R = 𝑧𝑧 −𝑁𝑁
T #c //[r(k-1)*2+r(k-2)+r(k)]*B*B-c(k-1)*A1 𝑉𝑉𝑉𝑉(𝑧𝑧)
Ecuación 7
L #cp2 Ecuación 7
L #A2
*R donde N = θ/T.donde N = θ/T.
L #c
TAK El bloque de datos
El bloquecorrespondiente a la funcióna desarrollada
de datos correspondiente la función desarro- es:
-R llada es:
L #A0
Tipo identificador Comentario
/R IN r real entrada
Tipo identificador Comentario
T #c //salida, c(k) dead_time int tiempo muerto (N)
OUT c r real real salida entrada
• actualización de las variables IN
L #rp1 STAT pos dead_time int int posición tiempopuntero
muerto (N)

T #rp2 //vm(k-2) OUT c real salida


L #r En este caso noSTAT hay cálculo pos de la int salida sinoposición que sólo
puntero se ha de gestionar el
T #rp1 //vm(k-1) almacén de datos. Primero se calcula la posición del valor que debe salir y se
L #cp1 reinicializa si se
En supera
este caso lano dimensión
hay cálculo deldealmacén.
la salida sinoEl valor
que sólocontenido
se en dicha
T #cp2 //c(k-2) posición es el ha
que dedevuelve
gestionar la función de
el almacén y será sustituido
datos. Primero se por la entrada
calcula la actual.

FB3

98 • nueva posición AFINIDAD LXXI, 566, Abril - Junio 2014


L #dead_time
posición del valor que debe salir y se reinicializa si se su- 4.1.- Primer orden
pera la dimensión del almacén. El valor contenido en dicha
posición es el que devuelve la función y será sustituido por La función LAG_FILTER se encuentra en la librería CONT_
la entrada actual. CTL/Conditioning de UnityPro, su representación en len-
guaje ST (texto estructurado) es:
FB3
LAG_FILTER_Instance(IN:=InputValue, GAIN:=GainFactor,
• nueva posición LAG:=LagTimeConstant, TR_I:=InicializationInput,
L #dead_time TR_S:=InitializationType, OUT:=>Output)
L #pos
==I Descripción de los parámetros de entrada:
SPBN _000
L 0 IN REAL Valor de entrada, vm(k)
_000: INC 1 GAIN REAL Ganancia
T #pos LAG TIME Constante de tiempo, τ
• puntero TR_I REAL Entrada de inicialización
L 4 TR_S BOOL Tipo de inicialización
*I “1” = Tracking
SLD 3 “0” = Automático
L P#8.0 Descripción del parámetro de salida:
+D
LAR1 OUT REAL Salida
• salida y almacenamiento de la entrada
L DID [AR1,P#0.0] Las variables y constantes hacen referencia a la ecuación
T #c 1.
L #r
T DID [AR1,P#0.0] En Automático, TR_S = 0, el módulo de función se pro-
cesará produciendo la respuesta esperada. En Tracking,
Se ha fijado el periodo de ejecución del bloque OB35 a TR_S = 1, la salida mantiene el valor de inicialización, TR_I.
100 ms, igual que en los casos anteriores, en este bloque Si se desea simular un proceso de ganancia unidad y
de organización se debe incluir: constante de tiempo de 5 segundos la llamada a introducir
en la tarea MAST es:
CALL FB 3,DB3
r :=MD14 LAG_FILTER_Instance(IN:=entrada,
dead_time:=20 GAIN:=1.0,
c :=MD18 LAG:=t#5s,
TR_I:=0.0,
Igual que en los casos anteriores, la variable de entrada TR_S:=0,
debe situarse en la marca MD14 y la de salida queda en OUT:=>salida)
la marca MD18.
En este ejemplo se ha considerado un tiempo muerto de Así como en Step 7 se ha considerado la ganancia del pro-
2 segundos, por lo que, siendo el periodo de simulación ceso igual a la unidad, en este caso, la rutina de UnityPro
de 100 ms, el número de posiciones correspondiente es contempla la introducción del valor.
N = 20. Tal como se ha mencionado en el apartado Materiales y
En el caso de necesitar simular un tiempo muerto mayor métodos, se han considerado las señales en voltios, por
bastará aumentar el valor de N, incrementando las po- lo que la variable de salida se deberá multiplicar por 1000
siciones de memoria disponibles en el correspondiente y pasar a entero antes de enviarla a la salida analógica
bloque de datos o concatenar las llamadas al bloque de seleccionada, dado que la salida se debe hacer como en-
función que sean necesarias asociando cada llamada a un tero en mV. De la misma forma la señal de entrada que
bloque de datos (DB) diferente. el convertidor analógico/digital da como entero en mV, se
deberá pasar a real en V.

4.- PLC SCHNEIDER ELECTRIC MODICON 4.2.- Segundo orden subamortiguado


PREMIUM® Se ha programado una función FB derivada denominada
SECOND_ORDER utilizando lenguaje ST y partiendo de la
En este caso la tarea es más sencilla dado que el progra- ecuación 6.
ma UnityPro® ya contiene algunos bloques de función en
la librería, concretamente se pueden utilizar los bloques: Descripción de las entradas y salida:
LAG_FILTER y QDTIME, que se comportan como un pro-
ceso de primer orden y de tiempo muerto, respectivamen- IN REAL entrada, vm(k)
te. Únicamente será necesario programar una función que RES_FR REAL frecuencia de resonancia en rad/s, ω0
se comporte como un proceso de segundo orden suba- COEF_AM REAL coeficiente de amortiguamiento, ξ
mortiguado. SIM_TIME REAL periodo de simulación en segundos, T
OUT REAL salida, c(k)

AFINIDAD LXXI, 566, Abril - Junio 2014 99


Las variables internas son: Para los PLC’s Premium de Schneider® no ha sido nece-
sario programar los procesos de primer orden y de tiempo
OUT1 REAL salida, c(k-1) muerto porque ya existen funciones disponibles en la li-
OUT2 REAL salida, c(k-2) brería, por lo que únicamente se ha tenido que programar
IN1 REAL entrada, vm(k-1) el proceso de segundo orden subamortiguado.
IN2 REAL entrada, vm(k-2) Se ha comprobado el correcto funcionamiento de las fun-
ciones programadas y de las existentes en la librería, re-
Listado: cogiendo las respuestas sobre registro de papel, lo que ha
permitido comprobar que las respuestas corresponden a
B:=RES_FR*SIM_TIME; los procesos simulados.
A0:=B*(B+4.0*COEF_AM)+4.0;
A1:=2.0*B*B-8.0;
A2:=B*(B-4.0*COEF_AM)+4.0; REFERENCIAS
OUT:=(B*B*(IN+2.0*IN1+IN2)-A1*OUT1-A2*OUT2)/A0;
OUT2:=OUT1; 1 Barberà, E.; Nevado, I.; Molins, J.J.: “El microorde-
OUT1:=OUT; nador personal y sus aplicaciones al control de pro-
IN1=IN; cesos: III Simulación híbrida de sistemas de control”,
Afinidad, 42, 587-92, Noviembre-Diciembre 1985
Para su ejecución se programa la tarea MAST como pe-
riódica con un periodo de ejecución igual al periodo de 2 Barberà, E.: “Hybrid simulation: a cheap alternative
simulación, por ejemplo: in process control laboratory” (oral communication),
11th Mediterranean Congress of Chemical Engine-
SEC_OR_IN1 (IN:=entrada, ering, Barcelona, 21-24 october 2008
RES_FR:=0.1,
COEF_AM:=0.3, 3 Molins, J.J.; Barberà, E.: “Autómatas programables:
SIM_TIME:=0.1, Step7® y UnityPro®”, IQS, 2012
OUT=>salida);

en donde SEC_OR_IN1 es una instancia de la función de- AGRADECIMIENTO


rivada desarrollada.
Se agradecen especialmente las sugerencias del revisor
4.3.- Tiempo muerto que han contribuido de forma importante a la mejora de la
En la misma librería mencionada se encuentra la función redacción del presente artículo.
QDTIME, su representación en ST es:

QDTIME_Instance (IN:=InputValue, T_DELAY:=DeadTime,


TR_I:InitializationInput, TR_S:=InitializationType,
OUT:=>Output, READY:=>InternalBufferFlag)

Descripción de los parámetros de entrada:

IN REAL Valor de entrada


T_DELAY TIME Tiempo muerto
TR_I REAL Entrada de inicialización
TR_S BOOL Tipo de inicialización
“1” = Tracking
“0” = Automático
Parámetros de salida:

OUT REAL Salida


READY BOOL Estado del búfer
“1” = lleno
“0” = no lleno

Este bloque dispone de un búfer de 128 elementos, por


lo que el tiempo muerto debe ser como máximo de 128
veces el periodo de simulación.

5.- CONCLUSIONES

Se han programado diversos bloques de función para


simular procesos de primer y segundo orden subamorti-
guado y de tiempo muerto para PLC’s Simatic S-300 de
Siemens®.

100 AFINIDAD LXXI, 566, Abril - Junio 2014

También podría gustarte