kezia@dsc.ufcg.edu.br, {leandrodee.ufcg.edu.br, perkusicdee.ufcg.edu.br, amnlimadee.ufcg.edu.br, kyller}@dee.ufcg.edu.br



Documentos relacionados
Profª Danielle Casillo

Análise qualitativa do processo de workflow da ouvidoria do IFMG campus Bambuí: um estudo de caso

UTILIZAÇÃO DE DIAGRAMAS DE DECISÃO BINÁRIA ORDENADOS PARA GERAÇÃO DE CASOS DE TESTE EM SISTEMAS INSTRUMENTADOS DE

Modelagem e vericação de programas de CLP para sistemas de instrumentados de segurança na indústria de petróleo e gás

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

1.6. Tratamento de Exceções

Programação Básica em STEP 7 Operações Binárias. SITRAIN Training for Automation and Drives. Página 6-1

TÍTULO: PROGRAMAÇÃO DE CLP PARA UMA MÁQUINA DE SECÇÃO SEGMENTOS ORGÂNICOS

A01 Controle Linguagens: IL e LD

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

IMPLEMENTAÇÃO DE UM SISTEMA DE SELEÇÃO DE PEÇA USANDO CONCEITOS DE PROGRAMAÇÃO DE SISTEMA DE AUTOMAÇÃO. João Alvarez Peixoto*

4 Plano de Recuperação

CONTROLADOR LÓGICO PROGRAMAVEL

Automação Industrial Parte 2

Engenharia de Software

GARANTIA DA QUALIDADE DE SOFTWARE

Gerência de Redes NOC

AULA 5 Sistemas Operacionais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Quadro de consulta (solicitação do mestre)

Técnico/a de Refrigeração e Climatização

MANUAL DE INSTRUÇÕES USUÁRIO

s:

ISO/IEC 12207: Gerência de Configuração

Técnicas de Caixa Preta de Teste de Software

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

FOTOCÉLULA PROGRAMÁVEL. Ederson Ferronatto 1,3, Ivan J. Chueiri 1,2 Caixa Postal Curitiba, PR

CHECK - LIST - ISO 9001:2000

Relatorio do trabalho pratico 2

Especificação Operacional.

Manual de Manutenção PROCEDIMENTOS DE MANUTENÇÃO SIMPREBAL

Casos de teste semânticos. Casos de teste valorados. Determinar resultados esperados. Gerar script de teste automatizado.

Arquitetura de Rede de Computadores

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Manual SAGe Versão 1.2 (a partir da versão )

HCT Compatibilidade Manual do Usuário

4.3. Máquina de estados: São utilizados em sistemas de complexos, é de fácil transformação para ladder desde que não haja muitas ramificações.

3 Arquitetura do Sistema

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

build UNIP Sistemas de Informação Análise Essencial de Sistemas 3 Prof.Marcelo Nogueira A produção de Software é uma atividade build and fix.

Seja uma rede de Petri definida pela tripla (L, T, A), e por sua marcação inicial M 0.

Parte V Linguagem de Programação

c. Técnica de Estrutura de Controle Teste do Caminho Básico

4 O Workflow e a Máquina de Regras

Manual do instalador Box Input Rev Figura 01 Apresentação do Box Input.

Engenharia de Sistemas Computacionais

Engenharia de Software I

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Controladores Lógicos Programáveis 2

Redes de Computadores

Orientação a Objetos

Análise e Projeto de Software

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Software. LMP Wizard. Manual do usuário MAN-PT-DE-LMPWizard-01.01_12

Aula 06 Introdução à Teste de Módulos II e Exercícios. Alessandro Garcia LES/DI/PUC-Rio Março 2014

Resumo das Interpretações Oficiais do TC 176 / ISO

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza

Manual. SPED Fiscal. Treinamento Escrita Fiscal. Material desenvolvido por:

4 Um Exemplo de Implementação

BARRAMENTO DO SISTEMA

Trabalhos Relacionados 79

Prova do Primeiro Bimestre Warm-Ups 1 a 7

Feature-Driven Development

CRONÔMETRO MICROPROCESSADO

Especificação do 3º Trabalho

Circuitos Seqüenciais: Latches e Flip-Flops. Fabrício Noveletto

Módulo I. Desenvolvimento Software CLP - Básico

NOTA FISCAL ELETRÔNICA

Noções de. Microsoft SQL Server. Microsoft SQL Server

Descrição do Produto. Altus S. A. 1

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Fundamentos de Automação. Controladores

20/03/2014. A Auditoria de Sistemas em Sistemas Integrados de Informações (ERP s)

Controladores Lógicos Programáveis CLP (parte-3)

CURSO OPERACIONAL TOPOLOGIA SISTEMA SIGMA 485-E

Guia de utilização da notação BPMN

MANUAL DE INSTALAÇÃO DO ODONTO TECHNOLOGY

Universidade Federal de Minas Gerais Escola de Engenharia Departamento de Engenharia Eletrônica Laboratório de Informática Industrial

4 Implementação e Resultados Experimentais

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

O que são sistemas supervisórios?

Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste

Jáder Bezerra Xavier (1) Pedro Paulo Leite Alvarez (2) Alex Murteira Célem (3)

Manual Captura S_Line

Rock In Rio - Lisboa

Ficha da Unidade Curricular

ELIPSE E3 REDUZ AS DESPESAS DA COGERH COM MANUTENÇÃO E CONSUMO DE ÁGUA

Automação Industrial. Prof. Ms. Getúlio Teruo Tateoki.

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Gerenciamento de Problemas

Princípios de Análise e Projeto de Sistemas com UML

4 Segmentação Algoritmo proposto

IEC Ladder SUPORTE DE CURSO. Livro Texto: Programming industrial control systems using IEC R.W. Lewis

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

FANESE Faculdade de Administração e Negócios de Sergipe

Transcrição:

GERAÇÃO AUTOMÁTIA DE TESTES DE ONFORMIDADE PARA PROGRAMAS DE ONTROLADORES LÓGIOS PROGRAMÁVEIS Kézia de Vasconcelos Oliveira, Leandro Dias da Silva, Angelo Perkusich, Antônio Marcus Nogueira Lima, Kyller Gorgônio Universidade Federal de ampina Grande - UFG ampina Grande, Paraíba, Brasil Universidade Federal de Alagoas - UFAL Maceió, Alagoas, Brasil Emails: kezia@dsc.ufcg.edu.br, {leandrodee.ufcg.edu.br, perkusicdee.ufcg.edu.br, amnlimadee.ufcg.edu.br, kyller}@dee.ufcg.edu.br Abstract The goal of this work is to present a method to ensure the safety and dependability in the automation of processes controlled by Programmable Logic ontrollers (PLs). Therefore, automatic generation and execution of conformance testing cases are used to verify the conformance between the PL program and the specification. The method uses the Uppaal tool syntax and semantic to automatically generate timed automata models from ISA 5.2 Binary Logic Diagrams (specification) and Ladder language (implementation). After the models generation, conformance testing is performed using the Uppaal-TRON tool. A case study of Petrobras company is illustrated in this work. Keywords PL, Ladder, ISA 5.2 Diagrams, Timed Automata, onformance Testing. Resumo O objetivo deste trabalho é apresentar um método que aumente a confiança e a segurança na automação de processos controlados por ontroladores Lógicos Programáveis (LPs). Para tanto, geração e execução automática de casos de teste de conformidade são utilizadas para verificar se o programa do LP está em conformidade com a especificação. O método consiste em gerar automaticamente modelos de autômatos temporizados, segundo a sintaxe e semântica da ferramenta Uppaal, a partir de Diagramas de Lógica Binária ISA 5.2 (especificação) e programas escritos na linguagem Ladder (implementação). Após a geração destes modelos, testes de conformidade são realizados usando a ferramenta de teste Uppaal-TRON. Um estudo de caso da empresa Petrobras é ilustrado neste trabalho. Keywords LP, Ladder, Diagramas ISA 5.2, Autômatos Temporizados, Testes de onformidade. 1 Introdução Automatizar processos é fundamental para indústrias. Uma das formas de introduzir automação numa indústria é utilizar, nas suas instalações um dispositivo denominado de ontrolador Lógico Programável (LP) (Parr, 2003). Este equipamento eletrônico-digital, compatível com aplicações industriais, é utilizado para controlar processos produtivos e, possui as seguintes vantagens quando comparados a outros dispositivos de controle industrial: baixo custo, fácil programação e manutenção, flexibilidade, maior confiabilidade e dispositivos de entrada e de saída facilmente substituíveis. om a inclusão de novas tecnologias nas indústrias tornou-se necessário superar os desafios que a automação industrial moderna trouxe consigo, tais como o de garantir a confiança na operação de processos e a segurança tanto de equipamentos e instalações como de funcionários (Neves et al., 2007), além do meio ambiente. om o objetivo de superar os desafios mencionados acima, partes críticas de plantas industriais passaram a ser monitoradas por Sistemas Instrumentados de Segurança (SIS) (Gruhn and heddie, 2006). Um SIS é responsável pela segurança operacional e tem a finalidade de prevenir a ocorrência de situações indesejadas quando da execução de procedimentos realizados automaticamente ou sob a interferência de operadores humanos. As situações indesejadas, por se tratar de um sistema de tempo real, podem ocorrer devido às falhas em sensores, atuadores, ou executores da lógica de segurança ou pode estar relacionada aos erros na lógica em execução. Então, no caso de falhas, um SIS tem que garantir que a planta, ou parte dela, se manterá em um estado operacional seguro, considerando eventuais danos à instalação, aos seres humanos e ao meio ambiente. As operações de controle de SIS são realizadas por LPs. A empresa Petrobras pode ser citada como exemplo de uma indústria que aderiu a utilização de SIS em suas unidades com o intuito de garantir a segurança e a confiança na execução de seus processos. Na Figura 1 é apresentado o processo de desenvolvimento de programas para LPs adotado pela Petrobras. Primeiramente, a partir de dois arquivos, tabela de causa/efeito e de um texto estruturado que possui informações que não estão presentes na tabela, a companhia gera um conjunto de requisitos que constitui a especificação. Uma vez que a especificação está completa, ou seja, está no formato de Diagramas de Lógica Binária ISA 5.2, o software é desenvolvido e tes- 2995

Tabela ausa/efeito Texto Estruturado A B HS HS A N D A A B Especificação (ISA5.2) Figura 1: LP IE61131-3 Aimplementação estácorreta? LP (ódigo) Processo de desenvolvimento de um XML - <list> - <ontollogic > <coil></coil> <operation>(a and B)</operation> <timers /> </ontollogic > </list> Rede de AT XML - <list> - <ontollogic > <coil></coil> <operation>(a and B)</operation> <timers /> </ontollogic > </list> Rede de AT tado por uma empresa terceirizada. Este software é escrito segundo uma das cinco linguagens definidas no padrão IE 61131-3 (Parr, 2003). Finalmente, o programa é compilado e executado em um LP. O processo de teste utilizado pela empresa terceirizada consiste em testar módulos de programas à medida que são desenvolvidos. Desta forma, erros provocados por interações entre as partes previamente testadas podem não ser detectados. Uma medida utilizada para detecção de erros não encontrados durante o processo de teste, consiste na realização de testes de aceitação no próprio SIS a partir de combinações de entrada e análise do comportamento do mesmo. aso algum erro seja detectado o software é novamente enviado para a equipe de desenvolvimento para que os erros possam ser eliminados. A utilização de testes de aceitação como técnica de validação de programas para LPs é onerosa, pois, para combinações de grande número de variáveis de entrada tal processo pode levar muito tempo para ser executado. Diante deste cenário de desenvolvimento, cuja qualidade do software gerado é assegurada apenas pelos testes de aceitação, uma grande questão é levantada: como é possível aumentar a confiança na execução de processos automatizados e a segurança tanto de equipamentos e instalações como de funcionários numa indústria?. Neste trabalho um método que soluciona tal problema de forma confiável, automática e segura será ilustrado. Pesquisas têm sido desenvolvidas com o intuito de definir formalismos e técnicas de verificação para avaliarem a confiança e a segurança de programas para LPs, como pode ser visto em (Frey and Litz, 2000; Moon, 1994; Mader and Wupper, 1999; Zoubek et al., 2003). Muitas são focadas em verificação automática de modelos. Para trabalhos nessa linha de pesquisa, a técnica de verificação automática de modelos utiliza como instrumento de análise autômatos temporizados (AT) (Alur and Dill, 1994), como podem ser vistos em (Zoubek et al., 2003; Wang et al., 2007; da Silva et al., 2008), redes de Petri, como podem ser evidenciados em (Heiner and Menzel, 1998) Testes de onformidade (Uppaal-TRON) Interpretação doveredicto Figura 2: Método utilizado para validar programas de LPs e, sistemas de transição, como podem ser visualizados em (Rausch and Krogh, 1998; Gourcuff et al., 2006). O restante deste trabalho está organizado da seguinte forma. Na Seção 2 o método de validação é introduzido. Na Seção 3 um estudo de caso desenvolvido em parceria com a Petrobras é apresentado. Na Seção 4 este trabalho é concluído e sugestões para trabalhos futuros são discutidas. 2 Método Na Figura 2, o método utilizado para validar programas de LPs é ilustrado. Primeiro arquivos que representam a especificação (Diagramas ISA 5.2) e a implementação (Ladder) do sistema modelado são transformados em arquivos XML. Para arquivos Ladder ocorre o processamento de cada degrau, onde informações tais como: nome da bobina, lógica de controle que forma o degrau e temporizadores, são extraídas. Para arquivos ISA 5.2 ocorre o processamento de cada bloco que determina uma saída, onde informações tais como: nome da saída, operação lógica que forma uma saída e temporizadores, são extraídas. A partir das informações contidas nestes arquivos XML são gerados autômatos temporizados referentes a especificação e a implementação, segundo a sintaxe e semântica da ferramenta Uppaal. Depois, testes de conformidade são aplicados sobre os modelos de autômatos gerados para determinar se a imple- 2996

mentação satisfaz a especificação. Esta tarefa é realizada pela ferramenta de teste Uppaal-TRON. Por fim, a interpretação dos veredictos dos testes é realizada. Aux1 Aux2 Valvula 3 Estudo de aso Para ilustrar o método, foi utilizado um exemplo de um sistema de segurança da Petrobras. O objetivo do sistema de segurança é manter estável o funcionamento de uma determinada zona petrolífera após a detecção de fogo ou gás na mesma. O sistema é composto por dois sensores de fumaça (SF1 e SF2), um tanque, três sensores de gás (SG1, SG2 e SG3), um dispositivo que libera gás O 2 na confirmação de fogo na zona (DispO2), um alarme sonoro que indica presença de fogo (AlaFDZ), um alarme sonoro que indica presença de gás (AlaGDZ) e duas válvulas que bombeiam petróleo para o tanque. Uma destas válvulas é chamada de válvula auxiliar, acionada apenas quando ocorre vazamento de gás na válvula principal que bombeia o gás para o tanque. O objetivo da válvula auxiliar é manter o sistema estável evitando eventuais danos as instalações da zona. O sistema opera da seguinte forma: Se algum dos sensores de fumaça for acionado então, foi detectado presença de fogo na zona; Se o sensor de gás 1 e o sensor de gás 2 ou 3 forem acionados então, foi detectado presença de fogo na zona. Se o sensor de gás 2 e o sensor de gás 3 forem acionados então, foi detectado presença de fogo na zona. Se for detectado fogo na zona, então um alarme sonoro que indica presença de fogo é acionado e após 2 segundos o dispositivo que libera gás O 2 é acionado e a válvula que bombeia petróleo para o tanque é desligada. O gás O 2 liberado tem o objetivo de sanar o fogo na zona. O alarme sonoro será desligado quando não houver mais presença de fogo na zona; Se for detectado gás na zona, então um alarme sonoro que indica presença de gás é acionado e após 4 segundos o sistema que fornece petróleo para o tanque é desligado e a válvula que mantém o sistema estável é aberta. Esta válvula bombeia o petróleo para o tanque para que, desta forma, não haja danificações as instalações e nem desperdício de material. O alarme sonoro será desligado quando não houver mais presença de gás na zona. SF1 SF2 SG2 SG3 SG2 FDZ FDZ GDZ GDZ SG1 SG3 TON IN 2s Q Timer1 TON IN Q 4s Timer2 FDZ GDZ AlaFDZ Aux1 DispO2 AlaGDZ Aux2 ValvulaAuxiliar Figura 3: Sistema de segurança da Petrobras set? numinputread== 1 SF1= 1 reset? numinputread== 1 SF1= 0 Figura 4: Modelagem da variável de entrada SF1 2997

set? numinputread< numinputs numinputread++ reset? numinputread< numinputs numinputread++ (a) Sinais de entrada low? high? (b) Sinais de saída Figura 5: Modelagem do processamento dos estados das variáveis do sistema 3.1 Modelagem do sistema de segurança da Petrobras A modelagem do programa Ladder ilustrado na Figura 3 é ilustrada nas Figuras 4, a 8, como uma rede autômatos temporizados, segundo o modelo sintático e semântico da ferramenta Uppaal. Na Figura 4 a modelagem utilizada para variáveis de entrada é ilustrada. ada variável de entrada é modelada como um autômato de um único estado com duas transições, onde os valores booleanos 0 ou 1 podem ser definidos para as variáveis através da utilização dos canais de sincronização reset e set, respectivamente. A variável booleana numinputread, utilizada como guarda, determina qual variável de entrada está sendo atualizada. Quando a última variável de entrada for atualizada o valor de numinputread é inicializado para 1, para que desta forma, no próximo ciclo de varredura, a atualização das variáveis possa ocorrer novamente de forma seqüencial. Um fato importante a ser mencionado é que variáveis de feedback e variáveis que representam uma saída de um degrau e em outro degrau representam uma variável de entrada, não são modeladas como autômatos temporizados. As primeiras são utilizadas para armazenar um valor em um ciclo e lida como uma entrada para a mesma rede no próximo ciclo, e as segundas servem para armazenar valores decorrentes de alguma lógica de controle de um programa. Na Figura 5(a) o autômato que processa os sinais das variáveis de entrada (entrada acionada ou não acionada) é ilustrado. Na Figura 5(b) é apresentado o autômato que processa os sinais das saídas (saída acionada ou não acionada). Na Figura 6 a modelagem do funcionamento de um temporizador timer1 é apresentada. A variável control1 e o canal de sincronização sync1 fazem a sincronização deste autômato com o autômato que representa o ciclo de execução do programa. A função inputtimer() corresponde ao conjunto de operações lógicas que representam a entrada (IN) do temporizador. A variável out Timer1 corresponde ao valor lógico da saída (Q) do temporizador. A variável numiclos = 2000/250 (PT/tempoScan) determina a quantidade de ciclos necessárias para o temporizador executar. O canal end determina o término de cada ciclo de execução do temporizador. Na Figura 7 a modelagem do ciclo de execução do programa como um autômato temporizado é exibida. A idéia utilizada na modelagem consiste em executar degraus sequencialmente através do disparo de transições entre localidades distintas que possuam a mensagem. Esta mensagem é enviada pelo autômato que representa o ciclo de varredura e serve para indicar que a lógica de controle do degrau foi executada. A primeira lógica de controle é executada através da função value Valvula. O rótulo desta função representa um modelo para criação de funções cuja lógica de controle não contém elementos temporizados, ou seja, esta função tem o objetivo de processar o valor da lógica de controle referente ao degrau que ela representa. Assim, a função value Valvula realiza a operação lógica Valvula = ((!Aux1) or (!Aux2)). A variável startexecution é uma variável de controle que tem o objetivo de verificar se todos os degraus do programa Ladder foram executados. Para degraus com temporizadores, como é o caso do quinto degrau, sua execução é realizada através das funções checkexecutiontimer1 que verifica se o modelo que representa o temporizador TON pode ser executado ou não; evaluate- OutputTimer1 utilizada para desincronizar o modelo do temporizador TON e o modelo de execução do programa Ladder, para que o próximo degrau seja executado ou para que o programa Ladder termine sua execução e, a função outtimer1 que atribui um valor lógico a saída do degrau. A função setontrolvariables() restaura o valor de todas as variáveis controlnumtimer para 0, caso existam temporizadores na lógica do programa, atualiza o valor de numrungsprocessed para numoutputs, informando que todos os degraus ou blocos que determinam uma saída foram processados e atualiza o valor de startexecution para 0, informando que a execução do programa foi finalizada. Na Figura 8 é ilustrado o ciclo de varredura de um LP. Sua modelagem obedece a execução das três etapas que compõem o ciclo de varredura: leitura de variáveis, execução do programa e atualização das saídas. O funcionamento deste autômato ocorre da seguinte forma: após as atualizações das variáveis de entrada serem feitas a execução do programa é inicializada, esta etapa de processamento não deve ultrapassar o tempo de varredura (time <= tscan). Quando todos os degraus forem executados e o tempo de varredura for atingindo então os valores das saídas são liberados e a avaliação dos estados das saídas (saída acionada ou não acionada) é realizada. A função 2998

inputtimer() == 0 out_ Timer1= 0, control1 = 0 inputtimer() == 0 inputtimer() == 1 numycles= 2000/250, control1 = 0 inputtimer() == 1 && numycles== 0 out_ Timer1= 1, control1 = 1 L1 L2 L3 inputtimer() == 0 numycles= 0 inputtimer() == 1 end? control1 = 0 L5 inputtimer() == 1 && numycles> 0 numycles- -, control1 = 1 L4 Figura 6: Modelagem do temporizador Timer1 startexecution== 1 value_valvula() updateoutputs() libera as saídas do sistema que ainda não foram liberadas durante a execução do programa. A função checkendscanycle() avalia se todos os temporizadores não estão mais sendo executados e se a execução do programa foi finalizada. update? value_fdz() value_gdz() value_alafdz(), value_aux1() sync1! checkexecutiontimer1() evaluateouputtimer1 () outtimer1() value_alagdz() sync2! checkexecutiontimer2() evaluateouputtimer2 () outtimer2() end! setontrolvariables() 3.2 Testes realizados no sistema de segurança da Petrobras Neste trabalho a ferramenta de teste Uppaal- TRON foi utilizada para gerar e executar casos de teste. Esta ferramenta realiza testes de conformidade de caixa preta em sistemas de tempo real. Na ferramenta TRON os casos de teste são gerados a partir do modelo que representa a especificação (modelo do ambiente) e a execução destes é feita pelo modelo que representa a implementação (IUT - Implementation Under Test). Após a execução dos casos de testes um veredicto é fornecido. Para que o processo de teste seja realizado três arquivos são necessário, o modelo que representa a especificação, o modelo que representa a implementação e um arquivo de configuração que contém as seguintes informações: eventos que são caracterizados como entrada, eventos que são categorizados como saída, tempo de precisão necessário para execução de cada evento e total de unidades de tempo para a execução dos eventos. Para este estudo de caso, a configuração e o particionamento do modelo foram realizados da seguinte forma: Entradas: set(), reset(), start(), end(), sync1(), sync2(), low(), high(); Figura 7: Modelagem do ciclo de execução do programa Ladder Saídas: execute(), update(), evaluation(), out evaluation(); Precisão: 1 unidade de tempo; 2999

L4 endevaluation! numrungsexecuted = 0, numrungsprocessed = 0 startevaluation! indice= 0 L1 start? startexecution = 1 L3 update! checkendscanycle () && time >= tscan&& L2 numrungexecuted== numrungs time = 0, updateoutputs () time <= tscan execute! numrungsexecuted < numtotalrungs numrungsexecuted++ Figura 8: Modelagem do ciclo de varredura de um LP Tempo de teste: 200 unidades de tempo. O primeiro modelo de implementação a ser testado foi um modelo cuja representação é fiel à especificação, ou seja, à rede de autômatos que representa o programa Ladder ilustrado na Figura 3. O veredicto dado pela ferramenta Uppaal-TRON foi : TESTED PASSED: time out for testing. Assim, durante o tempo programado para a execução dos testes, no caso 200 unidades de tempo, nenhuma anormalidade relacionada ao comportamento do modelo da implementação foi detectada. Portanto, a implementação é fiel à especificação. Para ilustrar a validade do método, através da detecção de erros existentes na implementação, os seguintes erros foram inseridos no programa Ladder ilustrado na Figura 3: Erro 1: Trocar um contato normalmente aberto por um contato normalmente fechado, neste caso, para o sexto degrau, a variável GDZ será representada por um contato normalmente fechado; Erro 2: Trocar a ordem de execução dos degraus, ou seja, o quarto degrau é executado primeiro que o segundo degrau; Erro 3: Alterar o valor de PT de Timer1 para 1 segundo. O veredicto dado pela ferramenta Uppaal- TRON para o primeiro erro foi: TESTED FAILED. O traço de execução indicou que a saída low() era esperada mas a saída high() foi encontrada no instante de tempo 52. Em outras palavras, era esperado que o alarme que identifica presença de gás na zona não fosse acionado (AlaGDZ = 0 ), mas isto não ocorreu (AlaGDZ = 1 ). Através da reconstrução do traço de execução pode-se observar que o valor de GDZ era 0, então o valor de AlaGDZ deveria ser 0. Portanto, a possível explicação para a ocorrência deste fato é a troca do contato normalmente aberto pelo contato normalmente fechado representado pela variável de entrada GDZ. O veredicto dado pela ferramenta Uppaal- TRON para o segundo erro foi: TESTED FAILED. O traço de execução indicou que a saída high() era esperada mas a saída low() foi encontrada no instante de tempo 15. Em outras palavras, era esperado que o alarme que indica presença de fogo na zona fosse acionado (AlaFDZ = 1 ), mas isto não ocorreu (AlaFDZ = 0 ). Através da reconstrução do traço de execução pode-se observar que o valor de FDZ era 1, então o valor de AlaFDZ deveria ser 1. Portanto, a inversão dos degraus causou uma alteração no valor da variável AlaFDZ. O veredicto dado pela ferramenta Uppaal- TRON para o terceiro erro foi: TESTED FAILED. O traço de execução indicou que uma saída sync1() foi esperada, mas uma saída execute() foi encontrada no instante de tempo 113. Em outras palavras era esperado que o temporizador Timer 1 continuasse a ser executado, pois a execução de quatro ciclo ainda eram necessárias para que sua saída energizada fosse liberada, mas a saída ativada do temporizador Timer 1 já havia sido liberada. 4 onclusões O trabalho aqui apresentado introduziu um método para aumentar a confiança e a segurança no funcionamento de LPs. Para tanto, autômatos temporizados gerados a partir de Diagramas ISA 5.2 e Diagramas Ladder são confrontados com o objetivo de verificar se a implementação 3000

está em conformidade com a especificação. Portanto, erros na implementação podem ser detectados e corrigidos antes da execução de testes de aceitação em campo. O principal diferencial deste trabalho para os já conhecidos é que ele se propõe a aumentar a confiança e a segurança no funcionamento de programas para LPs através da geração automática de casos de teste de conformidade. Além disso, para o método mostra-se como modelar elementos temporais, muito utilizado em sistemas reais, junto com a lógica completa do programa. Outro fato imporante a mencionado é que o método possibilita a aplicação do processo de teste de forma paralela ao processo de desenvolvimento minimizando o custo adicional para produção de artefatos específicos para teste. Agradecimentos Os autores gostariam de agradecer o apoio financeiro do onselho Nacional de Pesquisa e Desenvolvimento (NPq) e Petrobras, que tornou possível o desenvolvimento deste trabalho. Referências Alur, R. and Dill, D. L. (1994). A theory of timed automata, Theoretical omputer Science 126(2): 183 235. da Silva, L. D., de Assis Barbosa, L. P., Gorgonio, K., Perkusich, A. and Lima, A. M. N. (2008). On the automatic generation of timed automata models from function block diagrams for safety instrumented systems, 34th Annual onference of the IEEE Industrial Electronics Society (IEON 2008), IEEE Industrial Electronics Society, Orlando, USA, pp. 291 296. Mader, A. and Wupper, H. (1999). Timed automaton models for simple programmable logic controllers, Proceedings of Euromicro onference on Real-Time Systems, York, UK. Moon, I. (1994). Modeling programmable logic controllers for logic verification, IEEE ontrol Systems Magazine 14(2): 53 59. Neves,., Duarte, L., Viana, N. and Ferreira, V. (2007). Os dez maiores desafios da automacão industrial: as perspectivas para o futuro, II ongresso de Pesquisa e Inovacão da Rede Norte Nordeste de Educação Tecnológica, João Pessoa, Paraíba, Brasil. Parr, E. A. (2003). Programmable ontrollers An engineer s guide, 3nd edn, Newnes. Rausch, M. and Krogh, B. (1998). Formal Verification of PL Programs, In Procedures of American ontrol onference, pp. 234 238. Wang, R., Song, X. and Gu, M. (2007). Modelling and verification of program logic controllers using timed automata, Software, IET 1(4): 127 131. Zoubek, B., Roussel, J.-M. and Kwiatowska, M. (2003). Towards automatic verification of ladder logic programs, IMAS Multiconference on omputational Engineering in Systems Applications (ESA). Frey, G. and Litz, L. (2000). Formal Methods in PL Programming, IEEE International onference on Systems, Man, and ybernetics, Vol. 4, pp. 2431 2436 vol.4. Gourcuff, V., Smet, O. D. and Faure, J.-M. (2006). Efficient Representation for Formal Verification of PL Programs, 8th International Workshop on Discrete Event Systems, pp. 182 187. Gruhn, P. and heddie, H. L. (2006). Safety Instrumented Systems: Design, Analysis, and Justification, 2nd edn, ISA. Heiner, M. and Menzel, T. (1998). A petri net semantics for the PL language instruction list, Proc. IEE Workshop on Discrete Event Systems (WODES 98), agliari, Italy, pp. 161 165. 3001