{leandrodee.ufcg.edu.br, perkusicdee.ufcg.edu.br, amnlimadee.ufcg.edu.br, - PDF
{leandrodee.ufcg.edu.br, perkusicdee.ufcg.edu.br, amnlimadee.ufcg.edu.br,
Download "kezia@dsc.ufcg.edu.br, {leandrodee.ufcg.edu.br, perkusicdee.ufcg.edu.br, amnlimadee.ufcg.edu.br, kyller}@dee.ufcg.edu.br"
Maria Luiza Caminha Cunha
1 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 s: {leandrodee.ufcg.edu.br, perkusicdee.ufcg.edu.br, amnlimadee.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
2 Tabela ausa/efeito Texto Estruturado A B HS HS A N D A A B Especificação (ISA5.2) Figura 1: LP IE 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 (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
3 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
4 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
5 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
6 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
7 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): 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 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): 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 Wang, R., Song, X. and Gu, M. (2007). Modelling and verification of program logic controllers using timed automata, Software, IET 1(4): 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 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 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
UTILIZAÇÃO DE DIAGRAMAS DE DECISÃO BINÁRIA ORDENADOS PARA GERAÇÃO DE CASOS DE TESTE EM SISTEMAS INSTRUMENTADOS DE
UTILIZÇÃO DE DIGRMS DE DECISÃO BINÁRI ORDENDOS PR GERÇÃO DE CSOS DE TESTE EM SISTEMS INSTRUMENTDOS DE SEGURNÇ Kézia de Vasconcelos Oliveira, Leandro Dias da Silva, ngelo Perkusich, Kyller Costa Gorgônio,
Emails: rodrigopex@gmail.com, perkusic@dee.ufcg.edu.br, leandrodds@gmail.com, amnlima@dee.ufcg.edu.br, kyller@dee.ufcg.edu.br
GUNGNIR - UMA FERRAMENTA PARA GERAÇÃO E EXECUÇÃO DE TESTES DE CONFORMIDADE UTILIZANDO AUTÔMATOS TEMPORIZADOS Rodrigo José Sarmento Peixoto, Angelo Perkusich, Leandro Dias da Silva, Antônio Marcus Nogueira
GERAÇÃO E EXECUÇÃO AUTOMÁTICA DE TESTES PARA PROGRAMAS DE CONTROLADORES LÓGICOS PROGRAMÁVEIS PARA SISTEMAS INSTRUMENTADOS DE SEGURANÇA
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
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Coordenação de Pós-Graduação em Ciência da Computação Validação Visual de Programas Ladder Baseada em Modelos Leonardo
APLICAÇÃO DE VERIFICAÇÃO DE MODELOS A PROGRAMAS DE CLP: EXPLORANDO A TEMPORIZAÇÃO
INSTITUTO MILITAR DE ENGENHARIA ALEXANDRE DE MELLO SILVA APLICAÇÃO DE VERIFICAÇÃO DE MODELOS A PROGRAMAS DE CLP: EXPLORANDO A TEMPORIZAÇÃO Dissertação de Mestrado apresentada ao Curso de Mestrado em Engenharia
UNIVERSIDADE FEDERAL DE CAMPINA GRANDE DISSERTAÇÃO DE MESTRADO
UNIVERSIDADE FEDERAL DE CAMPINA GRANDE CENTRO DE ENGENHARIA ELÉTRICA E INFORMÁTICA COORDENAÇÃO DE PÓS-GRADUAÇÃO EM INFORMÁTICA DISSERTAÇÃO DE MESTRADO GERAÇÃO AUTOMÁTICA DE TESTES DE CONFORMIDADE PARA
Gungnir - Uma Ferramenta para Geração e Execução Automática de Testes de Conformidade Utilizando Autômatos Temporizados
Dissertação de Mestrado Gungnir - Uma Ferramenta para Geração e Execução Automática de Testes de Conformidade Utilizando Autômatos Temporizados Rodrigo José Sarmento Peixoto rodrigopex@gmail.com Orientador: