Você está na página 1de 62

Sérgio Queiroz de Medeiros

Especificação e Verificação Formal do Modelo de Comunicação do Projeto Automação de Poços

Natal

2004

Universidade Federal do Rio Grande do Norte Bacharelado em Ciência da Computação

Especificação e Verificação Formal do Modelo de Comunicação do Projeto Automação de Poços

Relatório Submetido à Universidade Federal do Rio Grande do Norte como parte dos requisitos para a obtenção do grau de Bacharel em Ciência da Computação com ênfase em Computação Científica e especialização em Sistemas em Tempo Real para Otimização e Automação no Setor Petróleo & Gás

Trabalho financiado pela Agência Nacional de Petróleo

& Gás Trabalho financiado pela Agência Nacional de Petróleo Sérgio Queiroz de Medeiros Natal, março de

Sérgio Queiroz de Medeiros

Natal, março de 2004.

"Todos estes que aí estão Atravancando o meu caminho, Eles Eu pasarinho" Mário Quintana

Agradecimentos

Ao povo lá de casa, o que inclui meu pai, minha mãe, minhas duas irmãs e até mesmo a gata. Agradeço a Deus, apesar da pouca fé. Aos meus amigos fora do curso, aos meus amigos do curso que me ajudaram muito a suportar este tempo todo dentro da universidade e me ensinaram muito. A todos os meus professores, de agora e de antes, que foram fundamentais no meu aprendizado.

iii

Resumo da Relatório apresentado à UFRN como parte dos requisitos necessários para obtenção do grau de Bacharel em Ciência da Computação.

Especificação e Verificação Formal do Modelo de Comunicação do Projeto Automação de Poços

Sérgio Queiroz de Medeiros

Março/2004

Orientador: David Boris Paul Déharbe Área de Concentração: Métodos Formais Palavras-chave: Métodos Formais, NuSMV, Engenharia de Software

Atualmente se encontra em desenvolvimento na UFRN o projeto Automação de Poços, que visa aperfeiçoar as técnicas de automação de poços que utilizam métodos de elevação. Associado a este projeto, existe um modelo de comunicação que deve funcionar corretamente para o bom andamento do sistema. Uma proposta atual é o uso de métodos formais em componentes críticos de sistemas. Desta forma, o objetivo deste trabalho é avaliar o uso da técnica de especificação formal conhecida como Symbolic Model Checking no contexto do projeto Automação de Poços.

iv

Report presented to UFRN as a partial fulfillment of the requirements for the degree of Bachelor in Computer Science.

Formal Specification and Checking of the Model Communication in the Project Automação de Poços

Sérgio Queiroz de Medeiros

March/2004

Advisor: David Boris Paul Déharbe Area of Concentration: Formal Methods Key words: Formal Methods, NuSMV, Software Engineering

Automação de Poços is a project under development at UFRN that intends to improve oil well automation techniques in wells using elevation methods. Associated with this project, there is a communication model that must be correct. A current approach is to use formal methods in system critical components. So, our work intends to evaluate the benefits of one formal method technique called Symbolic Model Checking in the context of the Automação de Poços project.

v

Sumário

Lista de Figuras

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

ix

Lista de Tabelas

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

x

1 Introdução

 

1

2 Protocolo de Comunicação Modbus

 

4

2.1 Introdução .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4

2.2 Comunicação

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4

2.3 Modos de Transmissão

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

5

2.4 Quadro Framing da Mensagem .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

2.5 Campo Endereço do Escravo

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

2.6 Campo Função Modbus

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

2.7 Campo Dados para o Escravo

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

 

2.7.1 Comandos sem Erro

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

2.7.2 Comandos com Erro

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

7

2.8 Campo Checksum

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

7

2.9 Funções Modbus

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

7

2.10 Temporização

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

7

3 Protocolo de Comunicação Inter-redes

 

9

3.1 Interface de Comunicação

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

9

3.2 Identificação de Requisições

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

10

3.3 Funções PCI

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

10

3.4 O Software de Supervisão

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

11

 

3.4.1 Funcionamento dos Clientes

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

11

3.4.2 Funcionamento do Servidor

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

12

4 NuSMV

 

13

4.1

Lógica Temporal

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

14

4.1.1

CTL .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

14

4.1.2

LTL .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

15

5 Modelagem da Comunicação Mestre/Escravo via Modbus Utilizando NuSMV

 

17

5.1 Módulo main

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

18

5.2 Módulo message

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

18

 

vi

5.3 Módulo channel

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

18

5.4 Módulo application

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

19

5.5 Módulo master

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

19

5.6 Módulo slave

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

21

5.7 Propriedades do Modelo

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

21

6 Modelagem da Comunicação Cliente Servidor Utilizando o PCI

 

23

6.1 Módulo main

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

23

6.2 Módulo message

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

23

6.3 Módulo channel

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

25

6.4 Módulo buffer

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

25

6.5 Módulo application

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

26

6.6 Módulo server

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

26

6.7 Módulo serverReader .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

27

6.8 Módulo serverLocalProcess

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

27

6.9 Módulo serverRemoteProcess

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

28

6.10 Módulo serverWriter

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

28

6.11 Módulo serverInternalProcess

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

28

6.12 Módulo client

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

28

6.13 Módulo clientSender

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

28

6.14 Módulo clientReceiver

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

30

6.15 Módulo clientVerifier

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

30

6.16 Propriedades do Modelo

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

30

7 Conclusão

33

A Implementação da Comunicação Mestre/Escravo

 

34

A Implementação da Comunicação Cliente/Servidor

38

vii

Lista de Figuras

2.1

Exemplo de um Quadro

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

3.1

Exemplo de um Quadro de Requisição

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

10

3.2

Exemplo de um Quadro de Resposta

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

10

3.3

Estados das Requisições

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

11

4.1

Exemplo de Programa na Linguagem NuSMV

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

13

5.1

Modelo Esquemático da Comunicação do Projeto Automação de Poços

.

.

.

.

.

.

.

17

5.2

Representação Hierárquica dos Módulos do Sistema .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

18

5.3

Implementação do Módulo main

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

18

5.4

Implementação do Módulo message

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

19

5.5

Implementação do Módulo channel

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

19

5.6

Implementação do Módulo application

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

20

6.1

Representação Hierárquica dos Módulos do Sistema .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

24

6.2

Representação Hierárquica do Módulo server

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.