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