GERAÇÃO E EXECUÇÃO AUTOMÁTICA DE TESTES PARA PROGRAMAS DE CONTROLADORES LÓGICOS PROGRAMÁVEIS PARA SISTEMAS INSTRUMENTADOS DE SEGURANÇA



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

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

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

Controladores Lógicos Programáveis 2

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

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

28/9/2010. Unidade de Controle Funcionamento e Implementação

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

ENGENHARIA DE SOFTWARE

Arquiteturas RISC. (Reduced Instructions Set Computers)

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

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

TECNOLOGIA EM MECATRÔNICA INDUSTRIAL CONTROLADORES LÓGICOS PROGRAMÁVEIS

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS Os Programas de Avaliação

Fundamentos de Automação. Controladores

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

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

Engenharia de Software III

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Instituto de Computação, Universidade Federal do Amazonas (UFAM) Manaus-AM, Brasil

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

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

{leandrodee.ufcg.edu.br, perkusicdee.ufcg.edu.br, amnlimadee.ufcg.edu.br,

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

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

O sistema que completa sua empresa Roteiro de Instalação (rev ) Página 1

PLANOS DE CONTINGÊNCIAS

5 Entrada e Saída de Dados:

Engenharia de Requisitos Estudo de Caso

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

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

Redes de Computadores I - Projeto Final

Sistemas Operacionais

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP

Controladores Lógicos Programáveis. Automação e Controlo Industrial. Escola Superior de Tecnologia. Ricardo Antunes, António Afonso

1. Conceitos de sistemas. Conceitos da Teoria de Sistemas. Conceitos de sistemas extraídos do dicionário Aurélio:

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

Modelo de Planejamento de Projeto orientado pelo Escopo

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

Engenharia de Sistemas Computacionais

Automação Industrial Parte 2

Funções de Posicionamento para Controle de Eixos

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Aula 8 Circuitos Integrados

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Requisitos de Software

Orientação a Objetos

Gestão da Qualidade por Processos

Notas de Aula 04: Casos de uso de um sistema

Arquitecturas Tolerantes a faltas em Sistemas Distribuídos

Procedimento de anexação de peças e envio

Arquitetura de Rede de Computadores

Desenvolvimento de Interfaces Prototipação

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

Metodologia para Planejamento, Execução e Controle de Teste de Software. Roteiro

Manual de instalação, configuração e utilização do Enviador XML

Profª Danielle Casillo

Juciara Nepomuceno de Souza Rafael Garcia Miani. Teste de Software

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Um Driver NDIS Para Interceptação de Datagramas IP

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

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software

Técnicas de Teste de Software

Sistemas Supervisórios

Engenharia de Domínio baseada na Reengenharia de Sistemas Legados

P HC XL - Nem calcula o produto que temos para si...

4 Plano de Recuperação

Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas

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

Industrial SOLUÇÕES EM AUTOMAÇÃO

1. Apresentação Objetivos

HCT Compatibilidade Manual do Usuário

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Escolhendo o pessoal

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Gerência de Redes NOC

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

A idéia hardware sugerida é colocar a placa entre o PC e o microcontrolador, conforme mostrado no esquema abaixo.

Critérios para Apoiar a Decisão Sobre o Momento de Parada dos Testes de Software

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

OPERADORES E ESTRUTURAS DE CONTROLE

Organização de Computadores 1

Se observarmos nos diferentes livros. Planejamento de Testes a partir de Casos de Uso

Desenvolvimento de uma Etapa

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Tabela de roteamento

Pesquisa em Memória Primária. Prof. Jonas Potros

Relatorio do trabalho pratico 2

Rodrigo B. Souza*, Adelardo A. D. Medeiros*

Módulo 1 Configuração de Cursos. Robson Santos da Silva Ms.

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Documento de Análise e Projeto VideoSystem

Transcrição:

GEÇÃ E EXECUÇÃ UTMÁTIC E TESTES P PGMS E CTLES LÓGICS PGMÁVEIS P SISTEMS ISTUMETS E SEGUÇ Kézia de Vasconcelos liveira antas, ugusto Bezerra de liveira, Leandro ias da Silva, ngelo Perkusich, Kyller Costa Gorgônio Universidade Estadual da Paraíba - UEPB Patos, Paraíba, Brasil Universidade Federal de lagoas - UFL Maceió, lagoas, Brasil Universidade Federal de Campina Grande - UFCG Campina Grande, Paraíba, Brasil Emails: {kezia.vasconcelos, augusto.b24}@gmail.com, {leandro, perkusic, kyller}@dee.ufcg.edu.br bstract The goal of this work is to present a method to increase reliability and safety in PLC programs for SIS. utomatic generation and execution of test cases, which include the the system outputs and properties states, are used to evaluate whether the SIS program is in conformance to its specification. The Hardware in the loop (HIL) architecture, which supports the dynamic verification of PLC programs for SIS, is used here. Furthermore, timed automata networks together with B are used to generate non-redundant test cases. ne case study proved by Petrobras company is used to evaluate the proposed method. Keywords Safety Instrumented Systems, Programmable Logic Controller, IS 5.2 iagrams, Timed utomata etwork, educed rdered Binary ecision iagram, Hardware in the Loop. esumo objetivo neste trabalho é apresentar um método que aumente a confiança e a segurança em programas de CLP para SIS. Para tanto, geração e execução automática de casos de teste, que contemplam os estados das saídas e propriedades temporizadas do sistema, são utilizadas para avaliar se o programa do SIS está em conformidade com sua especificação. Para este propósito, faremos uso de uma arquitetura com suporte à verificação dinâmica de programas de CLP para SIS, arquitetura Hardware in the loop (HIL). lém disso, o formalismo de redes de autômatos temporizados em conjunto com B são utilizados para gerar casos de teste não redundantes. Um estudo de caso provido pela Petrobras será utilizado para avaliar o método proposto. Keywords Sistemas Instrumentados de Segurança, Controlador Lógico Programável, iagramas IS 5.2, ede de utômatos Temporizados, iagramas de ecisão Binária rdenados e eduzidos, Hardware in the Loop. Inrodução Sistemas Instrumentados de Segurança (SIS) são desenvolvidos para garantir a segurança operacional de sistemas industriais prevenindo a ocorrência de situações indesejadas quando da execução de procedimentos realizados automaticamente ou sob a interferência de operadores humanos. o caso de falhas, a atuação do SIS deve garantir que a planta, ou parte dela, manter-se-á em um estado operacional seguro. o contexto de SIS é fundamental garantir a confiança e a segurança no funcionamento pois, defeitos no hardware, no software ou erros humanos podem ocasionar danos às instalações, aos seres humanos e ao meio ambiente. esta forma, torna-se necessária a utilização de técnicas de verificação durante o processo de desenvolvimento de um programa de CLP para SIS. Existem diversas técnicas para verificar programas de CLP para SIS, desde técnicas estáticas a dinâmicas. Técnicas de verificação estática são aquelas que não requerem a execução ou mesmo a existência de um programa para serem conduzidas (Sommerville, 27). Verificação de modelos é um exemplo de técnica de verificação estática (Tschannen et al., 2) bastante utilizada para verificar programas de CLP. Porém, o uso da mesma é inadequado para sistemas complexos devido ao problema conhecido como explosão do espaço de estados. Técnicas de verificação dinâmica são aquelas que se baseiam na execução de um programa com a finalidade de detectar erros (Sommerville, 27). Testes e avaliação de asserções no código são exemplos de técnicas de verificação dinâmica. Teste funcional ou de caixa preta é uma técnica de verificação dinâmica bastante utilizada para avaliar programas para CLPs (Chaaban et al., 2). ealizar teste de caixa preta completo num sistema requer a aplicação de todas as possíveis combinações de valores das entradas, o que torna impraticável o teste completo do sistema (Schiffmann and Steinbach, 22). esta forma, critérios para reduzir a quantidade de casos de teste gerados são empregados na elaboração dos casos de teste (idhra and ondeti, 22). lguns exemplos destes critérios são: tabela de decisão (Schiffmann and Steinbach, 22); análise de valor limite (Chaaban et al., 2); particionamento em classes de equivalência (liveira et al., 23) e diagrama de decisão binária (B) (Miremadi et al., 22; Mari et al., 22). iante do exposto, o objetivo neste trabalho é apresentar um método que aumente a confiança e a segurança em programas CLP para SIS. Para tanto, geração e execução automática de casos de teste, que contemplam os estados das saídas e propriedades temporizadas do sistema, são utilizadas para avaliar se o programa do SIS está em conformidade com sua especificação. Para este propósito, faremos uso de uma arquitetura com suporte a verificação dinâmica de programas

de CLP para SIS, arquitetura Hardware in the loop (HIL). lém disso, o formalismo de redes de autômatos temporizados em conjunto com diagramas de decisão binária ordenados e reduzidos (B) foram utilizados para gerar casos de teste não redundantes. restante deste trabalho está organizado da seguinte forma. a Seção 2 o método utilizado para verificar programas de CLP para SIS é introduzido. a Seção 3 um estudo de caso desenvolvido em parceria com a Petrobras é apresentado. a Seção 4 este trabalho é concluído e sugestões para trabalhos futuros são discutidas. 2 Método para Verificar Programas de CLP para SIS esta trabalho propomos uma arquitetura HIL de forma que a conformidade entre a especificação e a implementação do sistema executado na unidade de controle possa ser verificada. este trabalho, a unidade de controle é representada por um CLP e o programa executado nesta unidade é denominado de programa de CLP para SIS. arquitetura HIL proposta é constituída de dois módulos: unidade de controle e uma interface homem-máquina (IHM). o módulo IHM utilizamos aplicações para modelar a especificação do sistema, gerar e executar os casos de teste de conformidade e controlar processos de tempo real. s componentes do módulo IHM (aplicações e servidor PC) devem ser utilizados no mesmo computador pessoal (PC). a Figura é apresentado o fluxograma para o processo de envio e recebimento de dados entre os módulos IHM e unidade de controle. Este processo é composto pelos seguintes passos: () Leitura da especificação do sistema, dada na forma de diagramas IS 5.2. este trabalho consideramos apenas diagramas IS com variáveis do tipo Booleana, além disso, a lógica do sistema deve ser composta apenas por temporizadores e operações Booleanas, ou uma combinação destas. (2) Geração automática da rede de autômatos temporizados a partir da especificação do sistema. rede é gerada segundo a sintaxe e semântica da ferramenta Uppaal. (3) Geração automática dos casos de teste a partir da rede de autômatos temporizados. Com os casos de teste gerados é possível verificar os estados das saídas e propriedades temporizadas do sistema. Cada caso de teste é composto por um conjunto de valores Booleanos definidos para as entradas, um conjunto de valores Booleanos definidos para as saídas e tempo de execução do caso de teste. (4) Envio dos valores das entradas dos casos de teste gerados para o servidor PC. (5) Envio dos valores das entradas dos casos de teste gerados para o CLP. (6) ecebimento dos valores das saídas processadas pelo programa do CLP para SIS a partir dos valores das entradas dos casos de teste. Estes dados são enviados do CLP para o servidor PC. T teste é tempo de execução de cada caso de teste. Este valor é definido quando o caso de teste é gerado. (7) Comparação entre os valores das saídas geradas a partir da rede de autômatos temporizados (saídas dos casos de teste) e as saídas geradas pelo programa do CLP. (8) Impressão do veredito de teste. Existem dois possíveis vereditos: conforme, as saídas esperadas foram realmente as geradas e não conforme caso contrário. as subseções seguintes serão apresentados detalhes sobre a geração da rede de autômatos temporizados a partir de diagramas IS 5.2 e o processo de geração e execução dos casos de teste. Figura : Fluxograma para processo de envio e recebimento de dados na arquitetura HIL proposta. 2. utômatos para iagramas IS 5.2 esta seção são apresentados os modelos de autômatos temporizados extraídos a partir da especificação do sistema. Estes modelos são gerados conforme a sintaxe e a semântica da ferramenta Uppaal. rede gerada é composta por dois tipos de templates de autômatos temporizados: autômato que representa o comportamento de elementos temporizados e autômato que representa o ciclo de varredura do CLP. 2.. utômatos para Temporizadores esta subseção são apresentados os modelos de autômatos temporizados para temporizadores. Para tanto, três templates de autômatos são considerados: autômato que representa temporizadores do tipo I (elay Initiation of output), autômato que representa temporizadores do tipo T (elay Termination of output) e autômato que representa temporizadores do tipo P (Pulse utput). Cada temporizador da especificação do SIS é modelado como um autômato temporizado. a Figura 2 é ilustrada a representação do autômato temporizado para um temporizador I. Em um temporizador I a saída (B) é energizada depois de um período de tempo (t) quando a entrada é verdadeira ( = verdadeiro). Quando a entrada for falsa ( = falso) a saída será desativada (B = falso). Este autômato é executado da seguinte forma: quando o autômato que representa o ciclo de varredura do CLP for sincronizado com e a entrada do temporizador I for verdadeira (), então, o arco com origem na localidade L e destino na localidade é ativado, o relógio time é inicializado e as variáveis específicas para cada temporizador (acc ntimer e control ntimer) são inicializadas. Estas variáveis são utilizadas para identificar qual temporizador está sendo executado num determinado ciclo de varredura. partir deste ponto pode ocorrer duas situações. primeira ocorre quando a

entrada do temporizador for falsa (!), assim, o arco com origem na localidade e destino na localidade L é ativado e o temporizador é restaurado (acc ntimer =, control ntimer = ). segunda situação ocorre quando o tempo de simulação decorrido for igual ou superior ao valor de t e a entrada do temporizador for verdadeira ( && time t), desta forma, a saída do temporizador será verdadeira. a localidade L3, quando a entrada do temporizador for falsa o arco com origem na localidade L3 e destino na localidade L é ativado e o temporizador é desativado (B = false). e forma similar foram gerados templates de autômatos para temporizadores do tipo T e P, conforme, respectivamente, as Figuras 3 e 4. enable B = false, time =, acc_ntimer = t, control_ntimer = L! B = false, acc_ntimer =! B = false, acc_ntimer =, control_ntimer = L3 done timing && time >= t B = true, acc_ntimer = Figura 2: utômato para um temporizador I. enable L! && acc_ntimer == && time >= t B = false, control_ntimer = B = true, control_ntimer = acc_ntimer = L3 done timing! time =, acc_ntimer = t Figura 3: utômato para um temporizador T. enable L && control_ntimer == B = true, acc_ntimer = t, time = time >= t && acc_ntimer == B = false, control_ntimer = timing Figura 4: utômato para um temporizador P. 2..2 utômato para o Ciclo de Varredura a Figura 5 é ilustrado o autômato temporizado que representa o ciclo de varredura de um CLP. Este autômato é executado da seguinte forma: após serem definidos os valores das variáveis de entrada na função readinputs() a execução da lógica do sistema é inicializada, esta etapa de processamento não deve ultrapassar o tempo de varredura (c tscan). função checkexecutiontimers() é utilizada para verificar se algum temporizador deve ser executado. pós a execução da lógica do sistema, as saídas são liberadas, função updateutputs(), e o valor de c é restaurado. função evaluate() é utilizada para verificar se os temporizadores foram executados. a Figura 6 o esquema utilizado para definir os valores para as variáveis de entrada do sistema, função readinputs(), é apresentado. processo é composto por quatro passos: () Geração do B para cada bloco do diagrama IS que determina uma saída do sistema. tamanho dos Bs gerados pode variar de linear (n) a exponencial (2 n ) dependendo da ordem das variáveis. Encontrar a melhor ordem das variáveis não está no escopo deste trabalho.(2) Extração de todos os caminhos do B. Em cada caminho são definidos os valores para as variáveis de entrada (arestas de cada nó intermediário), e o valor da saída, valor do nó folha. (3) Geração de uma tabela na qual cada variável de entrada compõe uma coluna da tabela e os valores definidos para cada variável correspondem a uma linha da tabela. (4) Cada linha da tabela é utilizada para testar o sistema. forma como cada linha da tabela é utilizada depende do tipo de função que a gerou. este trabalho dois tipos de função são consideradas: as com temporização, função composta por temporizadores, e funções sem temporização. update! c >= tscan && evaluate() updatevariables(), updateutputs(), c = c <= tscan C L start! c =, readinputs() synchro! checkexecutiontimers() Figura 5: utômato para o ciclo de varredura. seguir, o algoritmo utilizado para definir os valores para as variáveis de entradas é apresentado. Para o algoritmo, considere um diagrama IS como sendo uma tupla (T,E, S), onde T é o conjunto de temporizadores, E = {e,...,e n } é o conjunto de entradas e S é o conjunto de saídas do diagrama IS. Cada saída s S é composta por um conjunto de variáveis de entrada Y e uma função booleana f (lógica do bloco). entrada para o algoritmo é um diagrama IS e a saída é um conjunto de valores {B,...,B m }, onde B i = (b,...,b n ) é uma atribuição de variáveis e i m. Este algoritmo é utilizado para gerar a função readinputs() na qual cada conjunto B i é executado para cada ciclo de varredura do CLP. Para funções que não possuem elementos temporizados todas as atribuições devem ser consideradas. o caso de funções com temporização, as atribuições serão selecionadas de acordo com cada elemento temporizado que compõe a lógica de cada saída. Se o temporizador for do tipo I ou T serão necessárias quatro atribuições para testar o comportamento do temporizador. esta forma, as seguintes atribuições serão utilizadas: uma atribuição em que f(b,...,b n ) = (a entrada do temporizador será verdadeira e a aresta será ativada); uma atribuição em que f(b,...,b n ) = (a entrada do temporizador será falsa e a aresta 2 será ativada); uma atribuição em que f(b,...,b n ) = (a entrada do temporizador será verdadeira e as arestas e 3 serão ativadas) e uma atribuição em que f(b,...,b n ) = (a entrada do temporizador será falsa e a aresta 4 será ativada). Se o temporizador for do tipo P serão necessárias duas atribuições para testar o comportamento do temporizador: uma atribuição em que f(b,...,b n ) = (a entrada do temporizador será verdadeira e a aresta será ativada) e uma atribuição em que f(b,...,b n ) = ou uma atribuição em que f(b,...,b n ) = (a aresta 2 será ativada). escolha

IS B CMIHS TBEL ETS B C B 2 3 C B B 2 3 * 4 B 2 3 Figura 6: Esquema para definir valores para as entradas do sistema. desta última atribuição é feita de forma randômica visto que a aresta 2 do autômato é ativada independente do valor da entrada do temporizador. urante a seleção das atribuições é avaliado se a saída ativada de um temporizador irá afetar a execução dos testes. esta forma, no algoritmo é avaliado se alguma atribuição deve ser executada após a saída do temporizador ser ativada. Para lógicas com dependência de temporizadores, a seleção das atribuições dependentes é realizada sempre com a saída do temporizador não subordinado ativada. esta forma, a entrada do temporizador não dependente deve ser mantida ativada até todas as atribuições subordinadas serem executadas. 2 E E CMIHS TIME TBEL TIME E2 CMIHS TIME2 E2 2 3 * - (*atribuição depende ) TBEL TIME2 E E2 escrição tiva aresta do temporizador Timer 2 tiva aresta 2 do temporizador Timer 3 tiva as arestas e 3 do temporizador Timer 4 tiva aresta temporizador Timer2 (atribuição dependente) 5 tiva aresta 4 temporizador Timer 6 tiva aresta 2 do temporizador Timer2 7 tiva as arestas e 3 do temporizador Timer2 8 tiva aresta 4 do temporizador Timer2 ETS P TIME E TIME2 Figura 8: tribuições utilizadas para avaliar o comportamento de Timer e Timer2. a Figura 7 apresenta-se um diagrama IS com dependência de temporizadores. bserve que o comportamento do temporizador Timer2 é dependente do comportamento do temporizador Timer pois, a entrada do temporizador Timer2 é definida em função da saída do temporizador Timer. esta forma, de acordo com o lgoritmo, a entrada do temporizador Timer (temporizador não dependente) deve se manter ativada até que todas as atribuições para o temporizador Timer2 (atribuições subordinadas) que dependam da saída ativada de Timer sejam executadas. a Figura 8 são apresentadas as atribuições definidas para avaliar o comportamento dos temporizadores Timer e Timer2. variável representa a saída do temporizador Timer. Para o exemplo, primeiro são definidas as atribuições para o temporizador Timer e, logo após a saída do Timer ser ativada as atribuições dependentes são executadas, no caso a terceira atribuição para avaliar o comportamento do temporizador Timer2. E E2 I Timer I Saida Timer2 Figura 7: Exemplo de um diagrama IS com dependência de temporizadores. C 2.2 Geração e Execução dos Casos de Teste ideia utilizada para gerar os casos de teste consiste em construir conjuntos de teste para cada ciclo de varredura do CLP. esta forma, os casos de teste gerados são compostos por tuplas da forma C = (E, S, T, t), tal que: E é o conjunto de valores Booleanos gerados para as entradas do modelo da especificação do sistema; S é conjunto de valores Booleanos correspondentes ás saídas processadas do modelo da especificação a partir do conjunto E; T é o traço de execução, ou seja, as sequencias de ações (eventos de sincronização) utilizadas para gerar as saídas do modelo da especificação; t é o tempo de execução do caso de teste. conjunto E é obtido a partir da função read- Inputs(), definida na subseção anterior. esta forma, o conjunto será composto por todas as atribuições utilizadas para testar o comportamento de elementos temporizados e saídas do sistema. conjunto S é obtido a partir dos valores gerados para as saídas do sistema, execução da função updateutputs(). conjunto T é obtido a partir da sequencia de ações da execução da rede de autômatos utilizadas para gerar as saídas. elemento t da tupla é definido de acordo com a tempo presente do temporizador, no caso de funções com temporização, ou pelo tempo de varredura, no caso de funções sem temporização. Uma vez gerados os casos de teste, os valores definidos para as entradas (conjunto E) são enviados para o CLP, via protocolo PC, no qual está

presente a implementação do sistema a ser verificada. seguir, em lgoritmo 2, é apresentado o procedimento utilizado para enviar e recuperar dados do servidor PC. o algoritmo, itens referentes ás variáveis de entrada são enviados para o servidor PC e, ao final do tempo estabelecido (elemento t da tupla do caso de teste), itens referentes ás variáveis de saída são recuperados do servidor PC. Finalmente, os valores das saídas geradas pelo CLP são comparados com os valores das saídas obtidas a partir da rede de autômatos temporizados (conjunto S) e um veredito de teste é fornecido. leitura e a escrita dos dados no servidor PC é feita de forma assíncrona pois, são mais eficientes para grandes quantidades de dados pelo fato de não utilizar muitos recursos de rede. que não possuem elementos temporizados, como é o caso da função para a saída S, e as que possuem elementos temporizados, como é o caso da função para a saída out Timer. Para funções que não possuem elementos temporizados todas as atribuições devem ser consideradas. o caso de funções com temporização, as atribuições serão selecionadas de acordo com cada elemento temporizado que compõe a lógica de cada saída, conforme lgoritmo. a Tabela são apresentados alguns caminhos obtidos a partir dos B- s gerados para cada função boooleana que determina uma saída para o sistema. Fazendo uso da Tabela, a seguir serão apresentadas algumas atribuições para as variáveis de entrada selecionadas para gerar os casos de teste: ivel_muito_baixo I Timer esliga utomatico T Timer2 esliga C ivel_baixo I Timer3 ivel_muito_lto Liga I Timer4 P Timer5 Liga C bre utomatico2 T Timer6 S Saída C Fecha T Timer7 Figura 9: iagrama IS 5.2 do SIS. 3 Estudo de Caso Para apresentar o método, foi utilizado um exemplo de um sistema de controle do nível de um tanque provido pela empresa Petrobras, cujo diagrama IS 5.2 é apresentado na Figura 9. objetivo com este estudo de caso é avaliar o método para especificações com dependência de elementos temporizados. a Figura é apresentado o modelo de autômato temporizado pra o temporizador Timer. Para este autômato temos que a entrada do temporizador () será representada pela variável ivel Muito Baixo, a variável t (valor presente do temporizador) será inicializada com a constante 5 e a saída do temporizador (B) será representada pela variável out Timer, uma vez que a mesma será utilizada para gerar a saída esliga. e forma análoga, os modelos de autômatos para os demais temporizadores podem ser gerados. pós definidos os autômatos para os temporizadores, o modelo de autômato que representa o ciclo de varredura do CLP é gerado. Para tanto, a função readinputs() deve ser definida. esta função são definidas as atribuições para as variáveis de entrada que serão utilizadas para testar o sistema. Estas atribuições são definidas de acordo com a função f de cada saída do diagrama IS. bserve que temos dois tipos de funções: as ivel_muito_baixo out_timer = false, time =, acc_ = 5, control_ = L!(ivel_Muito_Baixo) out_timer = false, acc_ =!(ivel_muito_baixo) out_timer = false, acc_ =, control_ = L3 (ivel_muito_baixo) && time >= 5 out_timer = true, acc_ = Figura : utômato temporizado para Timer. tribuições para testar o comportamento do temporizador Timer : Linha da tabela - tiva a aresta do temporizador Timer ; Linha 2 da tabela - tiva a aresta 2 do temporizador Timer ; Linha da tabela - tiva as aresta e 3 do temporizador Timer ; Linha 2 da tabela - tiva a aresta 4 do temporizador Timer ; tribuições para testar o comportamento do temporizador Timer5 e a saída Liga: de acordo com o lgoritmo, as atribuições utilizadas para testar este temporizador devem ser selecionadas após a saída do temporizador Timer4 ser liberada com valor lógico. Veja: Linha 9 da tabela - tiva a aresta do temporizador Timer5. e acordo com o lgoritmo, o valor da variável M deve ser, para garantir que a saída do temporizador Timer4 continuará ativada; Linha

da tabela - tiva a aresta 2 do temporizador Timer5 ; linha da tabela já foi selecionada para outro caso de teste, portanto será desconsiderada; Linha 2 da tabela; Tabela : Tabela para as variáveis de entrada do sistema de controle de nível de um tanque. tribuição para MB B M L b 2 F 2 3 4 6 7 - In_Timer 2 - In_Timer... 9 - In_Timer5 - In_Timer5 - In_Timer5 2 - In_Timer5... 26-27 - 28-29 - 3-3 - 32-33 - 34 - a Tabela 2 são apresentas algumas atribuições para as variáveis de entrada utilizadas para testar o sistema. ote que, de acordo com a Tabela, 34 atribuições de variáveis foram definidas para testar o comportamento do sistema, mas 36 foram utilizadas. Isto acontece porque, para avaliar o comportamento de cada temporizador do tipo I ou T é necessário utilizar 4 atribuições. Como foram definidas apenas duas atribuições para avaliar o comportamento dos temporizadores I e T, as mesmas terão que ser reutilizadas para avaliar o comportamento completo dos temporizadores. esta forma, para testar o comportamento dos temporizadores Timer, Timer2,Timer3, Timer4, Timer6 e Timer7 é necessário utilizar 24 atribuições e não apenas 2, como definido na Tabela. Portanto, o número total de atribuições definidas são 46 (34 + 2). Tabela 2: tribuições para as variáveis do SIS. tribuições para: MB B M L b 2 F Timer Timer Timer Timer... Timer4 Timer5 Timer5 Timer5 4 Conclusões trabalho aqui apresentado introduziu um método para aumentar a confiança e a segurança em programas de CLP para SIS através da abordagem HIL em conjunto com Bs. Para tanto, casos de testes, que contemplam os estados das saídas bem como propriedades temporizadas do sistema são gerados automaticamente a partir da especificação do sistema no formato de diagramas IS 5.2. pós gerados, os valores das entradas dos casos de teste são enviados para o CLP. Por fim, é fornecido um veredito informando a conformidade entre as saídas esperadas (saídas obtidas a partir da rede de autômatos temporizados) e as saídas geradas no CLP. próxima etapa deste trabalho consiste na aplicação de técnicas para determinar a melhor ordem das variáveis com o objetivo de minimizar ainda mais o número de casos teste gerado. lém disso, devemos modelar e avaliar blocos de funções e instruções de contagem, pois estas são muito comuns em programas de CLP para SIS. gradecimentos s autores gostariam de agradecer o apoio financeiro da Coordenação de perfeiçoamento de Pessoal de ível Superior (CPES). eferências Chaaban, W., Schwarz., M., Batchuluun, B., Sheng, H. and Borcsok, J. (2). Partially utomated HiL Test Environment for Model-Based evelopment Using Simulink and PC Technology, XXIII International Symposium on Information, Communication and utomation Technologies, pp. 6. Mari, F., Melatti, I., Salvo, I. and Tronci, E. (22). Synthesizing Control Software from Boolean elations, International Journal on dvances in Software, Vol. 5. Miremadi, S., Lennartson, B. and kesson, K. (22). B-Based pproach for Modeling Plant and Supervisor by Extended Finite utomata, IEEE Transactions on Control Systems Technology 2(6): 42 435. idhra, J. and ondeti, S. (22). Black Box and White Box Testing Techiniques - Literature eview, International Journal of Embedded Systems and pplications 2(6): 29 5. liveira, K. d. V., Perkusich,., Gorgonio, K. C., ias da Silva, L. and Martins,. F. (23). Using Equivalence Classes for Testing Programs for Safety Instrumented Systems, IEEE 8th Conference on Emerging Technologies Factory utomation, pp. 7. Schiffmann, J. and Steinbach, B. (22). Utilization of Bs for Test-Case-Specifications of GUI-pplications, Proceedings of the th International Workshops on Boolean Problems, Freiberg University of Mining and Technology, Freiberg,Germany, pp. 4 48. Sommerville, I. (27). Engenharia de Software, 8 edn, ddison Wesley. Tschannen, J., Furia, C.., ordio, M. and Meyer, B. (2). Usable Verification of bject-riented Programs by Combining Static and ynamic Techniques, Proceedings of the 9th International Conference on Software Engineering and Formal Methods, Springer-Verlag, pp. 382 398.