6 Análise para sistema de controlo de forno industrial (Ward e Mellor) Pretende-se substituir um sistema de controlo analógico de um forno de louça por um sistema computorizado. Após várias reuniões entre os projectistas e os quadros técnicos da empresa, obtiveram-se as seguintes especificações: a) Introdução As peças são secas passando-as por um forno. São posicionadas num tapete rolante que as faz passar lentamente através do forno. O forno é aquecido por 3 queimadores a gás, colocados em 3 diferentes secções do forno. A temperatura em cada uma destas áreas é monitorada e controlada separadamente. Uma consola de operador permite ao operador visualizar e controlar a operação de cada área. Este novo sistema de controlo computorizado deverá ser ligado em rede com o computador de gestão central. O esquema básico do sistema está representado na figura seguinte: Queimadores Luz indicadora Luz indicadora Pré-aquecimento Secagem Arrefecimento Peça Guarda Guarda Sensores de Temperatura Fig. 6-1: Esquema básico do forno Guias práticos STR 6-1 b) Entrada/Saída As entradas do sistema estão disponíveis numa interface de instrumentação do processo e provêm também do operador. Haverá necessidade de considerar entradas da interface de comunicação: • Entradas do processo (no sistema de controlo computorizado): i. Existe um sensor de temperatura para cada área. As áreas são denominadas: pré aquecimento, secagem e arrefecimento. As entradas têm uma gama de 0 a 10 volts e estão acessíveis nos pinos 1 a 3 do socket J2 ii. A velocidade do tapete é medida por um contador de pulsos e está disponível no pino 4 do socket J2 iii. Existem 2 guardas de segurança no sistema rolante: guarda de entrada e guarda de saída. Os sinais relacionado com estas guardas estão disponíveis nos pinos 2 e 3 do socket J4, e um valor de 1 indica que as guardas estão colocadas iv. Um sinal de avaria no tapete está disponível no pino 6 do socket J4; um valor de 1 indica funcionamento normal. • Saídas do processo (do sistema de controlo computorizado):: i. Controlo dos queimadores: cada um dos 3 queimadores tem uma unidade de controlo. A actuação fornecida aos queimadores é sob a forma de voltagem, gama de 0 a 10 volts, 0 correspondendo a nenhum aquecimento e 10 ao máximo aquecimento ii. Controlo do tapete: Dois sinais são aplicados ao controlador do tapete rolante: inicia movimento e para movimento. Estes sinais são aplicados aos pinos 3 e 4 do socket J6 iii. Guardas: colocando a 1 o pino 6 do socket J6 arma os guardas e a luz indicadora acende; colocando a 1 o pino 8, desarma os guardas e a luz de funcionamento apaga. Guias práticos STR 6-2 • Entradas do operador: i. O operador envia os seguintes comandos: Começa, Acaba, Reset, Recomeça e Pausa. O operador pode também estipular as referências de temperatura para cada área • Saídas para o display: i. O display deverá conter informação sobre a temperatura das 3 áreas, a velocidade do tapete, e alarmes. • Entradas e saídas para computador de gestão i. Informação ainda não disponível. Há várias ferramentas CASE que suportam estas metodologias. Para a solução deste exercício foi utilizada a Select Yourdon, da Select Company. Guias práticos STR 6-3 Resolução (segundo a metodologia de Ward e Mellor) 6.1 O modelo do ambiente De acordo com as especificações apresentadas, o modelo do ambiente do nosso sistema pode ser representado como: Computador de gestão Sensores de Temperatura Unidades de aquecimento Temperatura forno Sensor de Velocidade Tapete Rolante Aquecer Inicia Movimento Velocidade do Tapete Controlador Tapete Rolante Guarda de entrada Guardas de Segurança Para Movimento Controlador do forno Guarda de saida Desarma Guardas Avaria no tapete Sensor Avaria Tapete Rolante Entradas do processo Arma Guardas Display Armar Guardas Saídas do processo Comandos do operador Consola do operador Entradas do operador / Saídas para o Display Fig. 6-2: Diagrama de contexto Repare-se que o agrupamento das especificações de entrada saída, como apresentadas no enunciado facilita a disposição dos fluxos no diagrama de contexto. Quando estivesse disponível a informação, ter-se-ía de incluír as entradas e saídas para o computador de gestão. Guias práticos STR 6-4 Quanto à lista de acontecimentos, neste caso serão os eventos que podem alterar o funcionamento do forno, e podem ser obtidos a partir das entradas do operador: Começar Recomeçar Acabar Reset Pausa R da temperatura das áreas de: Pré-aquecimento, Secagem e Arrefecimento O comando Recomeçar, na realidade pode ser implementado como Começar após pausa ou Acaba, situação em que o tapete está parado e o aquecimento desligado. Reinicializar sistema (reset), deve colocar o estado deste no estado inicial. É pois semelhante à paragem total do sistema. Um outro aspecto importante no modelo do ambiente é um dicionário contendo todos os elementos necessários tanto para o projectista como para o utilizador. A estrutura exacta depende da ferramenta CASE utilizada, mas normalmente inclui a seguinte informação: Nome: Designação do item; Uso: Onde e como é usado; Descrição do conteúdo: tipo de dados, gama de valores, etc. Neste caso, utilizando a ferramenta Select Yourdon, poder-se-ía ter por exemplo: Name: Temperatura forno Type: Continuous flow Units: (ºC) Range: 0 - 250 Comment: Saída dos sensores de temperatura e entrada do sistema de aquecimento This item is used on the following diagrams: CONTEXT.DAT Controlador do forno CO1.DAT Controlador do forno CO2.DAT Controla Temperatura da Area Repare-se que ainda não estamos no modelo de implementação, logo expressamos a temperatura na sua unidade de medida. É também mais perceptível para o utilizador final do sistema, que deverá validar a analise em conjunto com o engenheiro de software. No modelo de implementação especificar-se-ão características dependente do hardaware: Units: Volts Range. 0-10 Guias práticos STR 6-5 6.2 O modelo do comportamento O modelo do comportamento ilustra como o sistema deve responder a acontecimentos ocorridos no ambiente. Uma estrutura hierárquica é usada para representar este comportamento. O nível superior do esquema de transformação, nível 0, poderá ser: Guarda de entrada Guarda de saida Monitoriza Estados Guardas Estado das guardas Guardas Arma Guardas 1 Guardas Desarma Guardas reset Comandos do operador Para Comeca Processa Comandos do Operador Display Controlo do Forno 3 Termina movimento Referencias Funcionamento Controlo do Tapete Normal D Referencias Inicia Movimento 2 Pausa E Temperatura Normal Erro no Tapete Temperatura forno Para Movimento saturação Referencias Verifica velocidade do Tapete Controla Temperatura da Area 4 Inicia Movimento 6 5 Aquecer Avaria no tapete Velocidade do Tapete Fig. 6-3: Diagrama de nível 0 Repare-se que a transformação de dados (1), monitoriza os sensores dos guardas de modo que só após estas estarem efectivamente armadas (a sinalização de armar é enviada por (2) para fora do ambiente e aplicada aos pinos 1 e 8 do socket J6) é que se pode sinalizar à transformação de controlo (2) que se pode iniciar o funcionamento (Guardas). O controlo do tapete (Inicia movimento e Para movimento – aplicados aos pinos 3 e 4 de J6) é efectuado por (6) que recebe de (5) o erro na posição deste em relação à pretendida. Esta é calculada considerando a velocidade do tapete. Repare-se que as referências de temperatura enviadas pelo operador são guardadas num armazém pela transformação Processa Comandos do Operador (3) de modo que Controla Temperatura da Área (4) possa aceder em qualquer instante aos últimos valores válidos Guias práticos STR 6-6 (terão de ser verificadas referências válidas). Se a temperatura for a normal, isto é a pretendida (4) sinaliza (2) de modo que se possa iniciar o movimento do tapete. Podia-se detalhar mais a transformação (3): Fig. 6-4: Diagrama 3 (nível 1) Poder-se-ía detalhar mais ainda a transformação (3.2), mas possivelmente podia-se especificar já em pseudo-código 31. 3.2 e 3.3. E D Temperatura forno Le Sensor Temperatura 4.1 Temperatura normal Temperatura saturação Area Temperatura Inicial atingida Referencias Limites atingidos Iniciar Controlo Inicial Temperatura 4.3 Dentro limites PID E/D 4.4 Limites Temperatura 4.2 E/D Aquecer Aquecer Aquecer Fig. 6-5: Diagrama 4 (nível 1) Guias práticos STR 6-7 A transformação (4) está detalhada no diagrama anterior. Para cada área é lido o sensor de temperatura (4.1) de modo que a unidade de aquecimento correspondente é actuada pelo sinal de controlo aquecer, produzido por um algoritmo PID de posição elementar (4.4). A temperatura inicial é obtida por (4.3). Isto pode ser utilizado para elevar a temperatura do forno rapidamente a um valor, possivelmente elevado e próximo da referência, sendo depois desligada por (4.2) (ao receber Temperatura inicial atingida), que liga também o PID (4.4), para o controlo contínuo de temperatura. Repare-se que como (4.2) usa fluxos de activação desactivação para (4.4) e (4.3) e tem de ser também uma transformação de controlo, definida pela seguinte máquina de estados: Start off “Iniciar” E: 4.3 iniciar "temperatura inicial atingida" D: 4.3 E: 4.4 "temperatura normal" "limites atingidos" D: 4.4 "saturação" normal Fig. 6-6: Diagrama de transição para Limites Temperatura (4.2) Quando (4.1) recebe o prompt de activação, envia o sinal iniciar à transformação de controlo Limites temperatura (4.2). A transformação (4.4) será ligada ou desligada por (4.2), de modo a evitar a saturação do integral, sempre que a transformação de controlo (4.2) receber o par de sinais limites atingidos / dentro_limites. Nestes casos (4.2) enviará o par de sinais saturação / temperatura normal de modo a indicar a (2) o estado do controlador PID de temperatura. Assim como se poderá observar na figura Fig. 6-7, (2) passa para o estado OFF, parando a produção da fornada. Guias práticos STR 6-8 Possivelmente (2) poderia também enviar alguma informação para o Computador de Gestão, indicando à direcção a existência de uma anomalia que impedia a produção. De qualquer forma a saturação só deveria acontecer numa situação em que o ambiente da sala estiver muito quente ou demasiado frio de modo a impedir que a temperatura de cada área do forno atinja a referência. Poder-se-ía contornar isto também controlando o ambiente da sala. Para a transformação Controlo do Forno (2), poder-se-ia ter um diagrama de transição de estados como o seguinte: Start OFF "Comeca" "Arma Guardas" Fecha as guardas “Reset” "saturação" "Para" D: "Controla Temperatura da Area" "Desarma Guardas" "Termina movimento" "Guardas" E: "Controla Temperatura da Area" Começa Aquecimento "Temperatura Normal" "Inicia Movimento" Tapeta Começa Tapete em "Comeca" "Inicia Movimento"Pausa "Funcionamento Normal" Normal "Pausa" "Termina movimento" Controlo do operador Fig. 6-7: Diagrama de transição para Controlo do Forno Guias práticos STR 6-9 6.3 O modelo de implementação Na fase anterior os terminadores (dispositivos externos) de entrada,. foram considerados como dispositivos virtuais que forneciam os sinais em condições utópicas ao sistema. Temos agora de examinar cada um destes dispositivos e determinar que tipo de sinal fornecem ao modelo de comportamento, e que operações devem ser desenvolvidas por este na interface. Considere-se, por exemplo, o terminador Sensores de Temperatura. Vamos admitir que, externamente ao sistema a implementar, existe um termopar e uma ADC que converte o sinal contínuo para discreto. O sinal contínuo cobre uma gama de 0º a 250ºC, fornecendo o termopar em consequência uma gama de 0 a 10 Volts. Este sinal é amostrado pela ADC, e digitalizado com uma precisão de 12 bits. A gama deste sinal discreto teria de ser subsquentemente convertida para ºC. A informação anterior poderia ser incorporada nos diagramas do seguinte modo: Especificando uma ADC no bloco terminador denominado Sensores de Temperatura. Infelizmente tal não pode ser incorporado no diagrama por limitações da ferramenta CASE utilizada, mas uma maneira de tornear o problema será incluir esta informação no dicionário, relativamente ao fluxo Temperatura do forno: Name: Temperatura forno Type: Continuous flow Units: Volts Range: 0 - 10 Rate: 1 segundo, cíclico Accuracy: 1 em 4096 (12 bits) Comment: Saída dos sensores de temperatura e entrada do sistema de aquecimento e ao terminador Sensores de Temperatura: Name: Sensores de Temperatura Type: Terminator Comment: Temperatura na gama de 0 a 250ªC Incorpora ADC de 12 bits, saída de 0 a 10 Volts Guias práticos STR 6-10 De outra forma, a conversão da voltagem de saída da ADC de uma gama de 0 a 10 para de 0 a 250 poderia ser incorporada no sistema, a um nível de interface. Assim, no nível 0 do esquema de transformação deveria incorporar interfaces de entrada para o terminador Sensor de Temperatura. Guarda de entrada Guarda de saida Monitoriza Estados Guardas Estado das guardas Guardas Arma Guardas 1 Guardas Desarma Guardas reset Comandos do operador Controlo do Forno Para Comeca Processa Comandos do Operador Display Inicia Movimento 2 Pausa 3 Termina movimento Funcionamento Normal Referencias D E Referencias Temperatura Normal T Inicia Movimento 6 saturação Temperatura forno Controlo do Tapete Erro no Tapete Para Movimento Referencias (0-10 v) Temperatura Interface Temperatura do forno Temperatura lida Em Cº Controla Temperatura da Area 7 4 Verifica velocidade do Tapete 5 Avaria no tapete Velocidade do Tapete Aquecer Fig. 6-8: Nível 0 (superior) do esquema de transformação, incorporando o sinal de trigger A transformação de dados Interface Temperatura do forno pode ser mais detalhada como se ilustra na figura seguinte. Como a leitura do sensor de temperatura (amostragem) deve ser iniciada pelo sistema ciclicamente, com por exemplo intervalos de 1 segundo, deve ser incluído no diagrama um sinal de trigger proveniente de um timer, simbolizado por um terminador, de modo a activar a transformação Interface temperatura do forno (7) periódicamente. Repare-se que ao valor do sensor (Temperatura forno), um fluxo de dados contínuo, é aplicado a um ADC (sample em hold), que é lido periodicamente (por 7.2), produzindo um fluxo de dados discreto. Depois (7.1) converte esse valor para graus centígrados. Esta só é activada quando (7.2) produz uma saída. Guias práticos STR 6-11 Timer Temperatura temperatura em ºC lida T Temperatura forno (0-10 v) Converte para ºC temp_digital Temperatura em ºC Le ADC (0-250 Cº) 7.2 basta multiplicar temp_digital em 3 7.1 volts por 25 para obter Cº 2 Fig. 6-9: Detalhe de Lê Sensor Temperatura Este exemplo deve ser estendido a todos os terminadores, de modo a simultaneamente incorporar a tecnologia, e especificar a interface entre o sistema a construir e o sistema a controlar. 6.4 Regras de execução Guarda de entrada Guarda de saida Monitoriza Estados Guardas Estado das guardas Guardas Arma Guardas 1 Guardas Desarma Guardas reset Comandos do operador Controlo do Forno Para Comeca Processa Comandos do Operador Display • Inicia Movimento 2 Pausa 3 Termina movimento Funcionamento Normal Referencias D E Referencias Temperatura Normal T Controlo do Tapete • Inicia Movimento 6 saturação Erro no Tapete Temperatura forno • Referencias Temperatura lida Interface Temperatura do forno Controla Temperatura da Area 4 Para Movimento Verifica velocidade do Tapete 5 Avaria no tapete Velocidade do Tapete Aquecer 7 Fig. 6-10: Nível superior com colocação inicial de tokens Guias práticos STR 6-12 A Fig. 6-10 mostra o sistema com tokens iniciais. As colocações iniciais são baseadas nas regras definidas no capítulo VI dos apontamentos teóricos, e seguindo a convenção de que processos com um par de entradas de activação/desactivação estão inicialmente desactivados. Assumamos que o sistema encontra-se no estado representado na figura, mas que a transformação de controlo (2) tem um token no estado Começa Aquecimento. Quando ocorre o evento Temperatura Normal um token é colocada no fluxo de evento com o mesmo nome. As regras de activação dizem-nos que o resultado é: • Move o token da transformação de controlo de Começa Aquecimento para Tapete Começa, ie. muda o estado de acordo com o diagrama de transição (ou máquina de estados) da Fig. 6-7. • De acordo com o mesmo diagrama é colocado um token no fluxo de eventos Inicia Movimento • Assumindo que o diagrama de transição de Controlo do Tapete (6) é o da figura seguinte, esta irá mudar para o estado Movimento • Será produzido o sinal Inicia Movimento para o Terminador Controlador Tapete rolante (colocação de um token) "Start" "para movimento" Parado "Erro no tapete" "Termina Movimento" "Para Movimento" "Inicia Movimento" "Funcionamento normal" "Inicia Movimento" Movimento Fig. 6-11: Diagrama de transição para Controlo do Tapete (6) Guias práticos STR 6-13 Podia-se descrever também este processo em termos de plano de execução: Passo Tempo Pré- Colocação condições inicial de tokens Selecção Colocação final de tokens de saídas Inicia Interface de Temperatura do forno (7), Verifica l velocidade do tapete (5), Processa Comandos do Operador (3), Controlo do Forno (2) (Start), ... ... ... ... ... ... ... kn Tn ... ... ... Interface de Temperatura do forno (7), Verifica velocidade do tapete (5), Processa Comandos do Operador (3), Controlo do Forno (2) (Começa Aquecimento), ... kn+1 Tn+1 Interface de Temperatura do forno (7), Verifica Temperatura velocidade do tapete (5), Processa Comandos do Normal Operador (3), Controlo do Forno (2) (Começa tapete), Controlo do tapete (6) (muda para outro estado), Inicia Movimento ... ... ... ... ... ... ... Fig. 6-12: Exemplo de Tabela de Execução para o modelo da Fig. 6-8 Guias práticos STR 6-14