Novos Blocos
Plataforma DF62
Renato F. Fernandes
13 de outubro de 2005
1
© 2004 Copyright Smar
Tópicos
 Diferenças de blocos DF51 e DF62
 Novos Blocos Enhanced
 Bloco Matemático Flexível
 Bloco Preditor de Smith
 Bloco LCF
2
Diferenças Blocos DF51 para DF62
 DF51 (e Transmissores Linha 302) possuía
blocos baseados em antiga especificação FF
 DF62 (e Transmissores Linha 402) possui
blocos baseados especificação FF atual
 Novos Blocos Standard FF (Mudanças em
14 Blocos) : RES2, ARTH,AALM, CHAR,
INTG, ISEL,LLAG, SPLT, SPG,TIME, MAI,
MAO, MDI, MDO
Blocos que já eram Standard: AI, AO, DI, DO,
PID
3
Diferenças Blocos DF51 para DF62
• Substituição dos seguintes blocos
Blocos DF51 e
DF62 V01
Blocos DF62 V02
1
Splitter
Output Splitter
2
Signal Characterizer
Signal Characterizer
3
Lead Lag
Lead Lag
4
Integrator
Integrator
5
Set Point Generator
Set Point Ramp Generator
6
Input Selector
Input Selector
7
Arithmetic
Arithmetic
8
Timer
Timer
9
Analog Alarm
Analog Alarm
10
Multiple Analog Input
Multiple Analog Input
11
Multiple Analog Output
Multiple Analog Output
12
Multiple Discrete Input
Multiple Discrete Input
13
Multiple Discrete output
Multiple Discrete output
14
Resource Block
Resource Block 2
15
Constant
Constant and Contained RW
4
Diferença Blocos DF51 para DF62
• Inclusão dos seguintes blocos
Nome no DF62 V02
1
ECHAR – Enhanced Signal Characterizer
2
EAALM – Enhanced Analog Alarm
3
ESPG – Enhanced Setpoint Ramp Generator
4
FMATH – Matemático Flexível
5
PRED – Preditor de Smith (*)
6
TF – Transfer Function (*)
7
LCF – Fator de Correção Para Líquidos (*)
(*) – Estes blocos já haviam sido incluídos a partir da versão V3.8.4 do DF51
(dd 07xx)
5
Output Splitter
Mudanças no Algoritmo:
• Mudança no Nome Bloco : Splitter para Output Splitter;
• Mudança nos Parâmetros OUT_1_UNIT e OUT_2_UNIT
para OUT_1_RANGE e OUT_2_RANGE ;
• Inclusão da característica de Histerese (parâmetro
HYSTVAL);
• Funcionalidade LOCKVAL = “SP on CAS Restart” foi
incorporada sem necessidade de setar o parâmetro.
6
Output Splitter
Característica HYSTVAL
• O parâmetro HYSTVAL determina o valor de histerese que
possa ser requerido para o ponto de chaveamento devido ao
fato da saída ser alterada por uma variação repentina da
válvula. O valor de OUT_1 é determinado da seguinte forma:
7
Output Splitter
Inicialização da Cascata
• Funcionalidade LOCKVAL = “SP on CAS Restart” foi incorporada sem
necessidade de setar o parâmetro
8
Output Splitter
Impacto em configurações antigas
• Parâmetro OUT_UNITS perderá a configuração
pois mudou o datatype e tag;
• Funcionalidade LOCKVAL = “SP on CAS Restart”
foi incorporada sem necessidade de setar o
parâmetro.
9
CHAR - Caracterizador de Sinal
Mudanças no Algoritmo
• Mudança nos Parâmetros X_UNIT e Y_UNIT para X_RANGE e
Y_RANGE ;
• Remoção dos parâmetros CONTROL_OPTS e BYPASS;
• Parâmetros CURVE_X e CURVE_Y suportam 21 pontos ao invés de 20;
• Parâmetro SWAP_2 mudou o enumerated:
• No Swap de 0 virou 1.
• Swap de 1 virou 2.
• Característica Cascata de CHAR é suportada somente pelo bloco
ECHAR.
10
CHAR - Caracterizador de Sinal
Impacto em configurações antigas
• Parâmetros X_UNITS e Y_UNITS perderão a configuração, pois mudou o
datatype e tag;
• Parâmetros CURVE_X e CURVE_Y NÃO perderão a configuração, pois
manteve-se o mesmo nome e tipo.
• Parâmetro SWAP_2 deverá ter Problemas, pois a funcionalidade foi
alterada;
• Funcionalidade de Cascata de CHAR foi mudada para bloco ECHAR no
parâmetro CAS_CONTROL.
11
Lead Lag
Mudanças no Algoritmo
• Mudança no Parâmetro OUT_UNITS para OUT_RANGE;
• Mudança do tipo de parâmetro LAG_TIME e LEAD_TIME de
Input para contained.
Impacto em configurações antigas
• Parâmetro OUT_UNITS perderá a configuração pois
mudou o datatype e tag;
• Parâmetro LAG_TIME e LEAD_TIME perderá a
configuração pois mudou-se datatype.
12
Integrador
Mudanças no Algoritmo
• Mudança no Parâmetro OUT_UNITS para OUT_RANGE;
• Mudança no Parâmetro SP para TOTAL_SP;
• Mudança do tipo do Parâmetro N_RESET de output para
contained;
• Mudança no cálculo de TOTAL;
• Mudança no Reset que agora pode ter a opção
RESET_CONFIRM;
• Inclusão dos parâmetros STATUS_OPTS.
13
Integrador
Cálculo de Totalização
• Total (OUT) = o incremento é totalizado todo ciclo não
importando o status.
• Atotal = o valor absoluto do incremento é totalizado todo
ciclo não importando o status.
• Rtotal = o valor absoluto do incremento com status bad é
totalizado todo ciclo
• PCT_INCL = 100 * (1 - RTOTAL / ATOTAL)
Cálculo de Totalização anterior (DF51) :
• TOTAL (OUT) = é totalizado os valores com status bom
• RTOTAL = é totalizado os valores com status ruim
• PCT_INCL = TOTAL / (TOTAL+RTOTAL)
14
Integrador
Característica Confirmação do Reset
• A opção “Confirm Reset” no INTEG_OPTS quando setada previne
de ocorrer outros resets antes do valor TRUE seja escrito para
RESET_CONFIRM.
15
Integrador
Característica STATUS_OPTS
Opção Uncertain if Man Mode
Ajusta o status de saída do bloco para indefinido, se o modo atual do
bloco é Man.
Impacto em configurações antigas
• Parâmetro OUT_UNITS perderá configuração pois mudou o
datatype e tag;
• Parâmetro SP perderá configuração pois mudou o datatype e tag;
• Parâmetro N_RESET perderá configuração (Link) pois mudou o
datatype.
16
SPG - Set Point Ramp Generator
Mudanças no Algoritmo
• Mudança no Parâmetro OUT_SCALE para OUT_RANGE;
• Mudança no Parâmetro DURATION_ para
TIME_DURATION;
• Mudança na Partida do SPG – mudança na Enumeração
do parâmetro OP_CMD_SPG.
17
SPG - Set Point Ramp Generator
Partida do SPG
• A partida poderá ser feita pelo parâmetro OP_CMD_SPG
– RESET
– START
• Ou pelas entradas RESET e START (como era
anteriormente)
Partida Pelo SPG Anterior (DF51)
• O parâmetro OP_CMD_SPG não tinha a Opção START;
• Necessário linkar todas as entradas em um bloco Constante
e fazer o RESET e START pelo bloco Constante.
18
SPG - Set Point Ramp Generator
Inicialização da curva na Partida
No parâmetro START_TYPE é configurado o tipo de inicialização:
• Cascade - A curva inicia como especificado pelo START_VAL e
•
•
TIME_DURATION.
Necessita da realimentação de um bloco de controle.
Use Duration – O temporizador inicia de zero.
O START_VAL para o primeiro segmento é temporariamente igual ao
BKCAL_IN quando ele está conectado.
Caso não esteja sendo usado o BKCAL_IN, o valor inicial será o
START_VAL[1].
Use Rate – A curva inicia no valor de BKCAL_IN (quando ele está conectado)
e usa a taxa especificada pelos dois primeiros valores START_VAL e o primeiro
valor TIME_DURATION.
Caso não esteja sendo usado o BKCAL_IN o valor inicial será o
START_VAL[1].
19
SPG - Set Point Ramp Generator
Impacto em configurações antigas
• Parâmetros OUT_SCALE e DURATION_ perderão a
configuração pois mudou o tag;
• Parâmetro OP_CMD_SPG opções ADVANCE e
REPEAT deverão ser re-configuradas pois mudaram o
número no enumerated.
20
ISEL – Seletor de Entrada
Mudanças no Algoritmo
Mudança no Parâmetro OUT_UNITS para OUT_RANGE.
Impacto em configurações antigas
Parâmetro OUT_UNITS perderá a configuração pois
mudou o datatype e tag.
21
ARTH - Aritmético
Mudanças no Algoritmo
• Mudança no Parâmetro OUT_UNITS para OUT_RANGE;
• Mudança no Parâmetro PV_UNITS para PV_SCALE;
• Entradas não usadas não precisarão ser conectadas
(EQ_TYPE = Tradditional Summer)
Impacto em configurações antigas
Parâmetros OUT_UNITS e PV_UNITS perderão a
configuração, pois mudou o datatype e tag.
22
AALM – Analog Alarm
Mudanças no Algoritmo
• Mudança do Parâmetro OUT_SCALE para OUT_RANGE;
• Mudança do tratamento do Status quando a entrada tem status
BAD. (Bloco permanece em AUTO e o status BAD é propagado);
• Parâmetros OUT_D e INVERT_OPTS do antigo AALM existem
somente no bloco EAALM.
Impacto em configurações antigas
Parâmetro OUT_SCALE perderá a configuração, pois mudou
o tag.
23
CTRW - Constant and Contained RW
Mudanças no Algoritmo
Mudança dos Parâmetros LOC_xxx (estrutura DS-262)
para 3 Parâmetros BLOCK_TAG_xxx,
INDEX_RELATIVE_xxx e SUB_INDEX_xxx
Impacto em configurações antigas
• Se constante anterior era o profile rev 0x0001 – então não
haverá problemas, pois manteve-se compatibilidade com antigo.
• Se constante anterior era o profile rev 0x0101 – então os
parâmetros LOC_xxx perderão a configuração, pois houve
mudança no tag e datatype.
24
Outros Blocos Standard
Os blocos abaixo mudaram para o profile standard mas
não tiveram alteração no algoritmo:
– TIMER
– MAI
– MAO
– MDI
– MDO
25
Blocos Enhanced
ECHAR – Enhanced Signal Characterizer
Inclusão da funcionalidade de Cascata de CHAR.
Configuração através do Parâmetro CAS_CONTROL.
EAALM – Enhanced Analog Alarm
Inclusão das funcionalidades:
– OUT_D – indicativo da entrada estar com status bom ou não
– INVERT_OPTS – inversão das saídas discretas
ESPG – Enhanced SetPoint Ramp Generator
Inclusão da saída OUT_1 representando o valor de
STEP_POS_N.
26
Matemático Flexível
O bloco matemático flexível oferece a flexibilidade e as ferramentas
matemáticas necessárias para implementar as mais diversas soluções.
Flexível Matemático
O bloco matemático flexível possibilita configurar o algoritmo do bloco
através da inserção de expressões matemáticas.
Possui uma vasta biblioteca matemática:
- Potência
- Logaritmo
- Arco Seno
- Raiz
- Operadores Lógicos
- Arco Cosseno
- Seno
- Tangente
- Módulo
-Cosseno
- Exponencial
- Arredondamento
Possibilita a inserção de até 10 expressões matemáticas,
garantindo a flexibilidade necessária para a implementação das mais
diversas soluções.
27
Matemático Flexível
• Possibilidade de execução de expressões matemáticas
“customizadas” pelo usuário. Utilizando de variáveis de entrada,
saída e variáveis auxiliares;
• Edição amigável das equações - linguagem semelhante a do Excel;
• Possibilidade de utilização de condicional e utilização de status das
variáveis;
• Diagnóstico de erro para facilitar na depuração, com indicativo de
linha e coluna;
• Suporta até 10 expressões matemáticas de 100 caracteres cada;
• Possui 10 entradas analógicas, 4 entradas discretas, 2 saídas
analógicas e 2 saídas discretas;
• Permite concatenação de linhas para formar uma expressão
matemática;
• Possibilidade de utilizar o macrocycle nas fórmulas.
28
Matemático Flexível
Biblioteca de funções matemáticas
Operação
Representação
Tipo de Variável
Exemplo
Soma
+
Real
AO1 = AI1 + 10
Subtração
-
Real
AO1 = AI1 – AA1
Multiplicação
*
Real
AO1 = 10 * AA1
Divisão
/
Real
AO1 = 10 / AA1
Potência
^
Real
3 ^ 2 retorna 9
Exponencial
exp(Num)
Real
exp (AI2)
Logaritmo
log(Num;Base)
Real
log (AI1;2)
OR
or(condição;condição)
AND
and(condição;condição)
condição é um
número Real ou
expressão
condicional
or(1;0) retorna 1
and(1,0) retorna 0
29
Matemático Flexível
Operação
Representação
Tipo de Variável
Exemplo
Seno
sin(Num)
Radianos
sin(0) retorna 0
Cosseno
cos(Num)
Radianos
cos(0) retorna 1
Tangente
tan(Num)
Radianos
tan(0) retorna 0
Arco Seno
asin(Num)
[-1;1]
Arco Cosseno
acos(Num)
[-1;1]
Módulo
abs(Num)
Real
abs(-2) retorna 2
Negação
(-Num)
Real
(-1)+2= 1
Arredondamento
para Baixo
floor(Num)
Real
Arredondamento
Para Cima
ceil(Num)
Real
Arredondamento
para o mais
próximo
asin(0.5) retorna 0.523599
acos(0.5) retorna 1.047198
floor(2.343) retorna 2
ceil(2.343) retorna 3
round(2.343) retorna 2
round(Num)
Real
30
Matemático Flexível
Operação
Representação
Tipo de Variável
Exemplo
Status Bad
bad(Status)
Variável de Status
bad(AI1S)
Status Good
good(Status)
Variável de Status
good(DI2S)
Status Uncertain
ou Bad
uob(Status)
Variável de Status
Status Uncertain
ou Good
uog(Status)
Variável de Status
If(condição;valor_s
e_verdadeiro;valor
_se_falso)
Condição – qualquer valor
ou expressão que possa ser
avaliado como Verdadeiro
ou falso
Condicional
uob(AI1S)
uog(AI2S)
if(2=1+1;3;4) retorna 3
31
Representação das Variáveis nas
Expressões Matemáticas
Variável
Representação
Entrada Analógica
AIX
Entrada Discreta
DIX
Status da Entrada Analógica
AIXS
Status da Entrada Discreta
DIXS
Saída Analógica
AOX
Saída Discreta
DOX
Variável Auxiliar Analógica
AAX
Variável Auxiliar Discreta
DAX
Onde X representa o número da variável, por exemplo:
AI1 – Representa a variável de entrada analógica 1
DA7 – Representa a variável auxiliar discreta 7
32
Variáveis Auxiliares
• Suporta até 20 variáveis analógicas (FAUX) e 10
discretas (BAUX);
• Podem ser configuradas como constante ou resultado
de uma expressão (AAx ou DAx);
• Possuem algumas constantes pré-definidas (PI,E).
<FAUX[1]> 35.17
<FAUX[2]> 420.35
<FAUX[2]> Resultado da EXP_1
<BAUX[1]> 1
<EXPR_1> AA3 = AA1 * AI1 + AA2
<EXPR_2> AO1 = AA3 + 10
33
Usando Condicional
If(condição;valor_se_verdadeiro;valor_se_falso)
• Condição – qualquer valor ou expressão que possa ser avaliado como
Verdadeiro ou falso;
• Valor_se_verdadeiro, Valor_se_falso, – qualquer valor ou expressão;
• Suporta if (condicional) encadeados.
Algoritmo:
if (AA1 > 0) AND (AA1 < 500)
if (AA2 >= (AA1 * 10))
AO1 = AA2
else
AO1 = AA1 * 20
else if (AA1 > 500) AND ( AA1 < 1000)
AO1 = AA1
else
AO1 = AA3
Expressão no FMATH:
<EXPR_1> AO1 = if (and(AA1 > 0;AA1<500) ; if (AA2 >= (AA1*10); AA2; AA1 * 20) ; if
(and (AA1 > 500; AA1 < 1000);AA1;AA3) )
34
Usando Status
• Pode ser utilizado o Status das Entradas nas expressões;
• Pode-se determinar o status das saídas;
• Funções de status : good(xxxS),bad(xxxS),uog(xxxS),uob(xxxS);
• Constantes de status: GOOD, BAD.
Exemplo Algoritmo:
SE ((IN_1.STATUS = BAD) OU (IN_2.STATUS = BAD) OU (IN_D1 = Verdadeiro) )
{
SE (IN_3.STATUS = GOOD)
OUT_1 = IN_3
// Valor de Segurança vindo de uma entrada se estiver boa
SENAO
OUT_1 = AA3
// Valor de Segurança caso entrada não estiver boa
}
SENAO
OUT_1 = AA1 //Valor de cálculo normal quando Não estiver em seguranca
A expressão no Matemático Flexível ficaria
<EXPR_1> AO1=if(or(bad(AI1S);AI2S=BAD; DI1=1);if(good(AI3S);AI3;AA3);AA1)
<EXPR_2> AO1S= GOOD
35
Macrocycle
Utilizando o Macrocycle nos cálculos
• A variável MC traz o valor do ciclo de execução do bloco.
Exemplo: Deseja-se totalizar a saída com o valor de IN_1 enquanto o
valor for menor que 1000.
As expressões no Matemático Flexível ficariam:
<EXPR_1>AA1=AI1*MC
<EXPR_2>AA2=AA2+AA1
<EXPR_3>AA2=if(AA2 >=1000;0;AA2)
<EXPR_4>AO1=AA2
36
Concatenação de Linhas
Utiliza-se o símbolo “#” para indicar que a expressão continua na
próxima linha




 IN_1
-2 *IN _ 3 23
• OUT _1 2  2 * SEN
 Log2 10 2 * IN_2-2 *IN _ 3 23 * 2 2  14
  2 * IN_2
 R 
Tem-se a seguinte configuração no FMATH:
<Expr_1> AO1 = 2+2*sin(AA1/) + AA4 + #
<Expr_2> log(10;2) + AA4 * 2 #
<Expr_3>^2 – 14
<Expr_4> AA4 = 2*IN_2^(((-2)*IN_3)+23)
37
Estados de Edição e Execução
Possibilita a edição das expressões matemáticas em modo on-line.
•
•
Estado de Edição: Permite a edição das
expressões, enquanto o conjunto de
expressões anteriores é executado.
– Salvar (Save) – Salva as expressões
editadas. Verifica a sintaxe das
expressões e executa as expressões
editadas.
– Descartar (Discard) – Quando não se
deseja efetivar as expressões editadas,
mantendo as expressões que estão
sendo executadas.
Estado de Execução: não é possível
editar as expressões matemáticas.
Somente visualizar as expressões que
estão sendo executadas
38
Diagnóstico de Erros
•
•
•
Erros de sintaxe - são identificados no momento em que é feita a edição
das expressões matemáticas
Erros de execução - podem acontecer no tempo de execução, (por
exemplo, divisão por zero, logaritmo de um número negativo e a raiz
quadrada de um número negativo)
Visualização dos erros – através dos parâmetros :
– Error_Line – Linha da expressão que ocorreu o erro
– Error_Col – Argumento (token) da expressão que ocorreu o erro
(“AO1”,”=“,”Log”, “(“,”10”,”;”,”5”,”)”, são exemplos de tokens.
– Error_Code – código do erro. Os tipos de erros são:
Código
Erro
1
Nome de Variável Inválido
2
Nome de Função Inválido
3
Divisão por Zero
4
Uso Incorreto do Logaritmo
5
Raiz Quadrada de um Número
Negativo
6
Arco Inexistente
7
Erro Não Identificado
39
Preditor de Smith
O bloco Preditor de Smith possibilita ao usuário desenvolver
uma estratégia de controle utilizando o PID para controlar
sistemas com tempos de atrasos consideráveis.
Utilização:
- Sistema Lineares com Pequenos tempo de atraso - controlador
PID (principalmente do termo derivativo, que representa uma
predição linear);
- Sistemas Lineares com Grandes tempo de atraso - necessário um
outro tipo de controle ou um com compensação de atraso (Preditor
de Smith)
40
Preditor de Smith
Preditor de Smith
41
Transfer Function
Estimativa da Planta sem Atraso
As2  Bs  C
G( s) 
Ds 2  Es  F
42
Preditor de Smith
•
•
•
•
Recebe Sistema Real e Estimado e baseado no Atraso, entrega para o
Controlador o Sistema Real sem Atraso;
PRED_SELECTOR seleciona o tipo de função: Bypass, Delay, Preditor;
O tempo de amostragem é determinado em PRED_SAMPLE_TIME;
O Filtro é usado para eliminar erros em alta freqüência entre o modelo e
processo real.
43
Controle com Preditor de Smith
Utiliza bloco Transfer Function e Preditor de Smith na Estratégia de
controle:
44
Exemplo Aplicação Preditor de Smith
No processo, a água que é enviada para o primeiro tanque é aquecida por
resistências elétricas e transferida para o segundo tanque (tanque de mistura).
O tanque de mistura recebe também uma vazão de água fria. As vazões de
água fria (Qcold) e de água quente (Qhot) são mantidas constantes.
Deseja-se controlar a temperatura do tanque de mistura atuando-se na
potência das resistências.
Através de ensaios experimentais foi identificado um grande atraso de
transporte entre atuação e a medição do sistema. O atraso ocorre devido à
distância percorrida pela água de um tanque ao outro.
45
Exemplo Aplicação Preditor de Smith
• Modelamento do Processo (função de transferência):
0.89
G( s) 
* e 10 s
s  0.89
• Estratégia de compensação de atraso utilizada :
46
LCF – Fatores de Correção para Líquido
Este bloco realiza os cálculos dos fatores de correção (CTL, CPL e
BSW na temperatura de operação) para medição de líquido.
47
LCF – Fatores de Correção para Líquido
Funções Principais:
• Calcular Fator de correção para Petróleo e Derivados;
• Calcular o BSW nas condições Flowing;
• Utilização no Cálculo de Medição por Apropriação
•Emulsão Oleo Cru + Água
•Emulsão GLP/NGL + Água
• Utilização no Cálculo de Medição Fiscal:
• Crude Oil (table Suffix A)
• Generalized Products (table Suffix B)
• Light Hydrocarbon (NGL & LPG)
• Lubricating Oils (table Suffix D)
• MTBE (table Suffix C)
48
LCF – Fatores de Correção para Líquido
Exemplo aplicação para medição fiscal:
TT-AI
PT-AI
DT-AI
IV
FMATH
GSV= IV * CCF
Q_flow
NSV= GSV (1-BSW)
49