170

Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

UMA METODOLOGIA PARA SINCRONIZAÇÃO ONLINE DE

CONTROLADORES MODULARES A EVENTOS DISCRETOS

Pedro Moura Soares de Almeida

Projeto de Graduação apresentado ao Curso

de Engenharia Elétrica da Escola Politécnica,

Universidade Federal do Rio de Janeiro, como

parte dos requisitos necessários à obtenção do

título de Engenheiro Eletricista.

Orientadores: Lilian Kawakami Carvalho

Gustavo da Silva Viana

Rio de Janeiro

Setembro de 2018

Page 2: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES
Page 3: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Moura Soares de Almeida, Pedro

Uma metodologia para sincronização online de

controladores modulares a eventos discretos/Pedro Moura

Soares de Almeida. � Rio de Janeiro: UFRJ/ Escola

Politécnica, 2018.

XII, 158 p.: il.; 29, 7cm.Orientadores: Lilian Kawakami Carvalho

Gustavo da Silva Viana

Projeto de Graduação � UFRJ/ Escola Politécnica/

Curso de Engenharia Elétrica, 2018.

Referências Bibliográ�cas: p. 125 � 125.

1. Eventos discretos. 2. Redes de Petri. 3. Diagramas

Ladder. 4. Sincronização. 5. Comunicação em rede. I.

Kawakami Carvalho, Lilian et al. II. Universidade Federal

do Rio de Janeiro, Escola Politécnica, Curso de Engenharia

Elétrica. III. Uma metodologia para sincronização online

de controladores modulares a eventos discretos.

iii

Page 4: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Resumo do Projeto de Graduação apresentado à Escola Politécnica/ UFRJ como

parte dos requisitos necessários para a obtenção do grau de Engenheiro Eletricista.

UMA METODOLOGIA PARA SINCRONIZAÇÃO ONLINE DE

CONTROLADORES MODULARES A EVENTOS DISCRETOS

Pedro Moura Soares de Almeida

Setembro/2018

Orientadores: Lilian Kawakami Carvalho

Gustavo da Silva Viana

Curso: Engenharia Elétrica

Neste trabalho é formalizada uma metodologia para sincronização de sistemas a

eventos discretos. Os algoritmos propostos estendem o método modular que con-

verte redes de Petri interpretadas para controle em diagramas Ladder, descrevendo

os procedimentos de construção de um módulo de sincronização em Ladder para

casos gerais, permitindo a criação de eventos virtuais e considerando propriedades

das redes de Petri não abordadas em trabalhos anteriores. Além disso, também

são propostos algoritmos para sincronização em rede, descrevendo, nesse caso, as

etapas de construção dos módulos de comunicação em Ladder para cada contro-

lador lógico programável do sistema. Ambas as abordagens são utilizadas em um

sistema de montagem e estocagem de cubos, como exemplo de aplicação especí�ca

da metodologia.

iv

Page 5: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Abstract of Undergraduate Project presented to POLI/UFRJ as a partial ful�llment

of the requirements for the degree of Engineer.

A METHOD FOR THE ON-LINE SYNCHRONIZATION OF MODULAR

DISCRETE-EVENT CONTROLLERS

Pedro Moura Soares de Almeida

September/2018

Advisors: Lilian Kawakami Carvalho

Gustavo da Silva Viana

Course: Electrical Engineering

In this work, a method for the online synchronization of discrete event systems is

formalized. The proposed algorithms extend the modular approach for the method

that converts control interpreted Petri nets in Ladder diagrams, previously adressed

in literature, by describing the procedures required to build a synchronization mod-

ule in Ladder, for general cases. The method not only takes into account issues

of Petri nets not adressed in previous works, but also provides the user with full

virtual events customization. In addition, algorithms for networked synchronization

are also proposed, describing the construction stages of communcation modules in

Ladder diagrams, for each programmable logic controller used in the system. Both

approaches proposed are then applied to a storage system, as an example of speci�c

application for the general method.

v

Page 6: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Sumário

Lista de Figuras viii

Lista de Tabelas xi

1 Introdução 1

2 Fundamentos Teóricos 4

2.1 Sistemas a Eventos Discretos . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 Redes de Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2.1 Marcação de uma rede de Petri . . . . . . . . . . . . . . . . . 7

2.2.2 Dinâmica de uma Rede de Petri . . . . . . . . . . . . . . . . . 8

2.2.3 Rede de Petri Estendida . . . . . . . . . . . . . . . . . . . . . 9

2.2.4 Redes de Petri Interpretadas para Controle . . . . . . . . . . . 10

2.3 Diagramas Ladder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3.1 Contatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3.2 Bobinas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.3 Blocos matemáticos e temporizadores . . . . . . . . . . . . . . 13

2.4 Método de conversão de RPIC para diagrama Ladder . . . . . . . . . 14

2.4.1 Módulo dos Eventos Externos . . . . . . . . . . . . . . . . . . 15

2.4.2 Módulo das Condições de Disparo das Transições . . . . . . . 16

2.4.3 Módulo da Dinâmica . . . . . . . . . . . . . . . . . . . . . . . 18

2.4.4 Módulo de Inicialização . . . . . . . . . . . . . . . . . . . . . 19

2.4.5 Módulo das Ações . . . . . . . . . . . . . . . . . . . . . . . . 19

2.5 Redes de comunicação . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.5.1 Protocolo Ethernet . . . . . . . . . . . . . . . . . . . . . . . . 22

2.5.2 PROFINET . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.5.3 Comunicação em rede PROFINET . . . . . . . . . . . . . . . 24

3 Metodologia para sincronização de Sistemas a Eventos Discretos

utilizando Ladder 28

3.1 Revisão bibliográ�ca . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.2 Sincronização de sistemas a eventos discretos . . . . . . . . . . . . . . 30

vi

Page 7: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

3.2.1 Formalização do módulo de sincronização . . . . . . . . . . . . 31

3.2.2 Alteração do módulo das condições de disparo . . . . . . . . . 54

3.3 Sincronização de sistemas a eventos discretos em rede . . . . . . . . . 61

3.3.1 Formalização do módulo de comunicação . . . . . . . . . . . . 62

3.3.2 Alteração do módulo das condições de disparo para sincroni-

zação em rede . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

4 Aplicação do método 78

4.1 Descrição do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

4.1.1 Subsistema S1 (Calibração) . . . . . . . . . . . . . . . . . . . 81

4.1.2 Subsistema S2 (Seleção peça metálica) . . . . . . . . . . . . . 81

4.1.3 Subsistema S3 (Seleção peça plástica preta) . . . . . . . . . . 82

4.1.4 Subsistema S4 (Prensa) . . . . . . . . . . . . . . . . . . . . . . 86

4.1.5 Subsistema S5 (Braço mecânico) . . . . . . . . . . . . . . . . . 86

4.1.6 Subsistema S6 (Armazenamento) . . . . . . . . . . . . . . . . 89

4.1.7 Subsistema S7 (Quit) . . . . . . . . . . . . . . . . . . . . . . . 91

4.2 Sincronização do sistema . . . . . . . . . . . . . . . . . . . . . . . . . 93

4.2.1 Módulo de Sincronização . . . . . . . . . . . . . . . . . . . . . 99

4.2.2 Módulo das condições de disparo das transições . . . . . . . . 106

4.3 Sincronização do sistema em rede . . . . . . . . . . . . . . . . . . . . 110

4.3.1 Módulos de Comunicação . . . . . . . . . . . . . . . . . . . . 111

4.3.2 Módulos das condições de disparo das transições para sincro-

nização em rede . . . . . . . . . . . . . . . . . . . . . . . . . . 121

5 Conclusão 124

Referências Bibliográ�cas 125

A Código VBA de criação do Módulo de Sincronização em Ladder 126

vii

Page 8: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Lista de Figuras

2.1 Diagrama de transição de estados do Exemplo 2.1 . . . . . . . . . . . 6

2.2 Grafo de rede de Petri do Exemplo 2.2. . . . . . . . . . . . . . . . . . 7

2.3 Rede de Petri do Exemplo 2.3. . . . . . . . . . . . . . . . . . . . . . . 9

2.4 Nova marcação após t1 disparar. . . . . . . . . . . . . . . . . . . . . . 9

2.5 RPIC do Exemplo 2.4. . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.6 (a) Contato NA (b) Contato NF . . . . . . . . . . . . . . . . . . . . . 12

2.7 (a) Contato tipo P, (b) Contato tipo N, (c) Operação contato tipo P,

(d) Operação contato tipo N . . . . . . . . . . . . . . . . . . . . . . . 12

2.8 Contato comparador. . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.9 (a) Bobina simples (b) Bobina SET (c) Bobina RESET . . . . . . . . 13

2.10 (a) Bloco Add (b) Bloco Sub (c) Bobina Move . . . . . . . . . . . . . 14

2.11 Bloco temporizador. . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.12 Sistema de acionamento de portão eletrônico - RPIC. . . . . . . . . . 15

2.13 Módulo dos eventos para a RPIC do exemplo 2.5. . . . . . . . . . . . 16

2.14 Módulo das condições de disparo para a RPIC do exemplo 2.5. . . . . 18

2.15 Módulo da dinâmica para a RPIC do exemplo 2.5. . . . . . . . . . . . 20

2.16 Módulo de inicialização para a RPIC do exemplo 2.5. . . . . . . . . . 21

2.17 Módulo das ações para a RPIC do exemplo 2.5. . . . . . . . . . . . . 21

2.18 Composição do frame. . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.19 Bloco GET no programa TIA Portal. . . . . . . . . . . . . . . . . . . 24

2.20 (a) Bloco GET (b) Bloco PUT. . . . . . . . . . . . . . . . . . . . . . 25

2.21 Módulo de comunicação de S1 do exemplo 2.6. . . . . . . . . . . . . . 26

2.22 Módulo de comunicação de S2 do exemplo 2.6. . . . . . . . . . . . . . 27

3.1 (a) Sistema centralizado (b) Sistema distribuído . . . . . . . . . . . . 28

3.2 Sincronização entre k subsistemas. . . . . . . . . . . . . . . . . . . . . 31

3.3 Sincronização completa - exemplo 3.1. . . . . . . . . . . . . . . . . . . 34

3.4 Metodologia para construção do módulo de sincronização em Ladder. 40

3.5 Resumo da lógica de varredura para construção do módulo de sincro-

nização. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.6 Módulo de sincronização do exemplo 3.1 (Sincronização Completa). . 43

viii

Page 9: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

3.7 Sincronização seletiva - exemplo 3.2. . . . . . . . . . . . . . . . . . . 44

3.8 Módulo de sincronização do exemplo 3.2 (Sincronização Seletiva). . . 48

3.9 Sincronização de eventos por agrupamento. . . . . . . . . . . . . . . . 49

3.10 Módulo de sincronização do exemplo 3.3 (Sincronização por Agrupa-

mento). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

3.11 Novo módulo das condições de disparo para S1 do exemplo 3.1 (Sin-

cronização Completa). . . . . . . . . . . . . . . . . . . . . . . . . . . 56

3.12 Novo módulo das condições de disparo para S2 do exemplo 3.1 (Sin-

cronização Completa). . . . . . . . . . . . . . . . . . . . . . . . . . . 56

3.13 Novo módulo das condições de disparo para S3 do exemplo 3.1 (Sin-

cronização Completa). . . . . . . . . . . . . . . . . . . . . . . . . . . 57

3.14 Novo módulo das condições de disparo para S1 do exemplo 3.2 (Sin-

cronização Seletiva). . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

3.15 Novo módulo das condições de disparo para S2 do exemplo 3.2 (Sin-

cronização Seletiva). . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

3.16 Novo módulo das condições de disparo para S3 do exemplo 3.2 (Sin-

cronização Seletiva). . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

3.17 Novo módulo das condições de disparo para S1 do exemplo 3.3 (Sin-

cronização por Agrupamento). . . . . . . . . . . . . . . . . . . . . . . 60

3.18 Novo módulo das condições de disparo para S2 do exemplo 3.3 (Sin-

cronização por agrupamento). . . . . . . . . . . . . . . . . . . . . . . 60

3.19 Novo módulo das condições de disparo para S3 do exemplo 3.3 (Sin-

cronização por Agrupamento). . . . . . . . . . . . . . . . . . . . . . . 61

3.20 Sincronização em rede entre k subsistemas. . . . . . . . . . . . . . . . 61

3.21 Metodologia para construção do módulo de comunicação do Subsis-

tema i em Ladder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3.22 Sincronização de eventos em rede, por agrupamento. . . . . . . . . . . 66

3.23 Módulo de comunicação de S1 do exemplo 3.4 (Sincronização em rede,

por agrupamento). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

3.24 Módulo de comunicação de S2 do exemplo 3.4 (Sincronização em rede,

por agrupamento). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

3.25 Módulo de comunicação de S3 do exemplo 3.4 (Sincronização em rede,

por agrupamento). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3.26 Novo módulo das condições de disparo para S1 do exemplo 3.4 (Sin-

cronização em rede, por agrupamento). . . . . . . . . . . . . . . . . . 75

3.27 Novo módulo das condições de disparo para S2 do exemplo 3.4 (Sin-

cronização em rede, por agrupamento). . . . . . . . . . . . . . . . . . 75

3.28 Novo módulo das condições de disparo para S3 do exemplo 3.4 (Sin-

cronização em rede, por agrupamento). . . . . . . . . . . . . . . . . . 76

ix

Page 10: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

4.1 Planta mecatrônica. [1] . . . . . . . . . . . . . . . . . . . . . . . . . . 79

4.2 Subsistema S1 projetado por GAPANOWICZ [1] (Calibração). . . . . 83

4.3 Subsistema S2 projetado por GAPANOWICZ [1] (Seleção peça me-

tálica). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

4.4 Subsistema S3 projetado por GAPANOWICZ [1] (Seleção peça plás-

tica preta). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

4.5 Subsistema S4 projetado por GAPANOWICZ [1] (Prensa). . . . . . . 87

4.6 Subsistema S5 projetado por GAPANOWICZ [1] (Braço mecânico). . 88

4.7 Subsistema S6 projetado por GAPANOWICZ [1] (Armazenamento). . 90

4.8 Subsistema S7 projetado por GAPANOWICZ [1] (Quit). . . . . . . . 91

4.9 Módulo de Sincronização do sistema de estocagem, obitido pelo algo-

ritmo 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

4.10 Módulo de Sincronização original do sistema de estocagem implemen-

tado por GAPANOWICZ [1]. . . . . . . . . . . . . . . . . . . . . . . 105

4.11 Linhas do módulo de condições de disparo do sistema de estocagem

alteradas pelo algoritmo 2. . . . . . . . . . . . . . . . . . . . . . . . . 108

4.12 Linhas do módulo de condições de disparo do sistema de estocagem

alteradas por GAPANOWICZ [1]. . . . . . . . . . . . . . . . . . . . . 109

4.13 Módulo de comunicação de S2 do sistema de estocagem [1] con�gurado

em rede. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

4.14 Módulo de comunicação de S3 do sistema de estocagem [1] con�gurado

em rede. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

4.15 Módulo de comunicação de S4 do sistema de estocagem [1] con�gurado

em rede. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

4.16 Módulo de comunicação de S5 do sistema de estocagem [1] con�gurado

em rede. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

4.17 Módulo de comunicação de S6 do sistema de estocagem [1] con�gurado

em rede. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

4.18 Linhas alteradas pelo algoritmo 4 nos módulos de condições de disparo

do sistema de estocagem [1] con�gurado em rede. . . . . . . . . . . . 123

x

Page 11: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Lista de Tabelas

3.1 Conjuntos de entrada do exemplo 3.1 (Sincronização Completa). . . . 35

3.2 Passo 2.1 do exemplo 3.1 (Sincronização Completa). . . . . . . . . . . 36

3.3 Rotulação dos eventos do exemplo 3.1 (Sincronização Completa). . . . 38

3.4 Construção do módulo de sincronização do exemplo 3.1 (Sincroniza-

ção Completa). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.5 Conjuntos de entrada do exemplo 3.2 (Sincronização Seletiva). . . . . 45

3.6 Passo 2.1 do exemplo 3.2 (Sincronização Seletiva). . . . . . . . . . . . 45

3.7 Rotulação dos eventos do exemplo 3.2 (Sincronização Seletiva). . . . . 46

3.8 Construção do módulo de sincronização do exemplo 3.2 (Sincroniza-

ção Seletiva). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.9 Conjuntos de entrada do exemplo 3.3 (Sincronização por Agrupamento). 50

3.10 Passo 2.1 do exemplo 3.3 (Sincronização por Agrupamento). . . . . . 50

3.11 Rotulação dos eventos do exemplo 3.3 (Sincronização por Agrupa-

mento). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.12 Construção do módulo de sincronização do exemplo 3.3 (Sincroniza-

ção por Agrupamento). . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.13 Alteração do módulo de condições de disparo do exemplo 3.1 (Sincro-

nização Completa). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

3.14 Alteração do módulo de condições de disparo do exemplo 3.2 (Sincro-

nização Seletiva). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

3.15 Alteração do módulo de condições de disparo do exemplo 3.3 (Sincro-

nização por Agrupamento). . . . . . . . . . . . . . . . . . . . . . . . 59

3.16 Conjuntos de entrada do exemplo 3.4 (Sincronização em rede, por

agrupamento). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

3.17 Passo 2.1 do exemplo 3.4 (Sincronização em rede, por agrupamento). 67

3.18 Rotulação dos eventos do exemplo 3.4 (Sincronização em rede, por

agrupamento). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

3.19 Construção dos módulos de comunicação do exemplo 3.4 (Sincroni-

zação em rede, por agrupamento). . . . . . . . . . . . . . . . . . . . . 69

xi

Page 12: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

3.20 Alteração do módulo de condições de disparo do exemplo 3.4 (Sincro-

nização em rede, por agrupamento). . . . . . . . . . . . . . . . . . . . 74

4.1 Descrição dos eventos externos do sistema de estocagem [1]. . . . . . 80

4.2 Descrição das sincronizações do sistema de estocagem. . . . . . . . . 92

4.3 Conjuntos de entrada para sincronização do sistema de estocagem. . . 93

4.4 Conjuntos de eventos do sistema de estocagem. . . . . . . . . . . . . 94

4.5 Passo 1 para o sistema de estocagem - Ec. . . . . . . . . . . . . . . . 94

4.6 Passo 2.1 para o sistema de estocagem - Lσ. . . . . . . . . . . . . . . 95

4.7 Passo 2.3 para o sistema de estocagem - M iσ. . . . . . . . . . . . . . . 96

4.8 Grupos possíveis de sincronização em cada evento - MPσ . . . . . . . . 96

4.9 Passo 2.4 para o sistema de estocagem - Mσ. . . . . . . . . . . . . . . 97

4.10 Rotulação dos eventos para o sistema de estocagem. . . . . . . . . . . 98

4.11 Construção do módulo de sincronização do sistema de estocagem. . . 100

4.12 Alteração do módulo de condições de disparo do sistema de estocagem.107

4.13 Construção dos módulos de comunicação do sistema de estocagem [1]

con�gurado em rede. . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

4.14 Construção dos módulos de comunicação do sistema de estocagem [1]

con�gurado em rede - continuação. . . . . . . . . . . . . . . . . . . . 113

xii

Page 13: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Capítulo 1

Introdução

Os sistemas de automação têm despertado grande interesse na comunidade cientí-

�ca nos últimos anos. Muito presentes em áreas como a indústria automobilística,

química, petroquímica, farmacêutica, dentre outros setores industriais, representam

uma oportunidade de maximização de produção, aumento de e�ciência e con�abili-

dade nos processos, maior qualidade do produto, além de redução de custos.

Em geral, os sistemas de automação podem ser classi�cados de acordo com a

natureza de suas variáveis de estado e com a dinâmica de alteração das mesmas. Os

sistemas dinâmicos de variável contínua, amplamente documentados na literatura,

são constituídos por grandezas contínuas, como temperatura, pressão e velocidade,

e apresentam uma dinâmica regida pelo tempo. A modelagem e análise de tais

sistemas são então baseadas em modelos matemáticos clássicos que contemplam

equações diferenciais, ou a diferenças. Os sistemas a eventos discretos, por outro

lado, são caracterizados por variáveis de estado discretas, como o número de pe-

ças em determinado processo, o estado ligado/desligado de um motor, etc. Além

disso, a dinâmica de transição dos estados pode ser regida não pelo tempo, mas

pela ocorrência de eventos instantâneos em intervalos de tempo irregulares, como a

ativação de um botão, o acionamento de um sensor, ou ainda a identi�cação do �m

de um processo. Diante de tal comportamento descontínuo, as soluções tradicionais

por equações diferenciais e a diferenças não são válidas para descrever o sistema.

Tem-se, então, a necessidade de se adotar outros métodos matemáticos capazes de

modelar um sistema a eventos discretos.

Entre os métodos mais adotados na literatura para modelagem de SEDs

destacam-se: os autômatos e as redes de Petri, CASSANDRAS e LAFORTUNE

[2]. Neste trabalho serão utilizadas redes de Petri especí�cas, denominadas redes

de Petri interpretadas para controle (RPICs), cujas propriedades englobam fatores

importantes para aplicações práticas, conforme será evidenciado ao longo do texto.

A implementação de um controlador a eventos discretos é realizada por meio

de dispositivos denominados controladores lógicos programáveis (CLPs). Dentre

1

Page 14: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

as diversas linguagens de programação de�nidas para os CLPs, a mais utilizada

industrialmente consiste na linguagem Ladder, devido, entre outros fatores, à sua

representação grá�ca de rápida compreensão, cuja simbologia muito se assemelha

aos esquemas de acionamentos elétricos. Entretanto, o projeto de um controlador

a eventos discretos diretamente em linguagem Ladder não é indicada devido à di�-

culdade de se analisar fatores essenciais de projeto, como a dinâmica do sistema, ou

composições de sincronização, paralelismo e compartilhamento de recursos.

A �m de estabelecer uma conexão entre o projeto de um controlador a eventos

discretos e a implementação em um CLP, MOREIRA e BASILIO [3] propuseram

um método de conversão de uma RPIC em linguagem Ladder. Nessa proposta, o

diagrama Ladder é dividido em cinco módulos, seguindo uma ordem especí�ca, de

modo a evitar comportamentos indesejados durante a compilação do código no CLP,

como será detalhado ao longo do trabalho.

O método proposto em [3] considera um sistema centralizado, ou seja, todo o

comportamento desejado é modelado por apenas uma rede de Petri. Entretanto, um

sistema a eventos discretos complexo, em geral, possui uma con�guração distribuída,

sendo composto por diversos subsistemas mais simples. Nesse caso, o comporta-

mento completo é obtido a partir do comportamento desejado de cada componente

individualmente. Logo, torna-se necessária uma operação de composição entre as

RPICs dos componentes, como a composição paralela, antes de se aplicar as regras

de conversão para Ladder. Tal operação, no entanto, pode resultar em um aumento

de complexidade de análise e implementação do sistema.

Com base nas regras de conversão [3], e objetivando uma abordagem modular,

ou seja, adotando-se um sistema distribuído, VIANA [4] implementou uma célula de

manufatura industrial composta por cinco subsistemas: duas esteiras, duas máqui-

nas e um braço robótico. Cada subsistema foi modelado por sua respectiva RPIC,

resultando, após a conversão, em cinco diagramas Ladder. O comportamento do

sistema completo nesse caso foi garantido através de soluções especí�cas de im-

plementação para as particularidades dos componentes, sem a proposta de uma

metodologia de conversão geral para sistemas distribuídos.

Como extensão do método de conversão [3], VIANA et al. [5] apresentaram uma

forma de sincronizar o comportamento de todos os componentes de um sistema

por meio de novas regras de conversão de RPIC para diagramas Ladder. Nessa

abordagem, a proposta original de conversão [3] foi alterada com a inserção de um

módulo exclusivo para sincronização e da modi�cação de um dos módulos existentes,

de modo a considerar as novas informações de sincronização obtidas. Com isso,

as operações de composição entre as RPICs não são necessárias, proporcionando

ao diagrama Ladder a capacidade de executar uma operação síncrona entre cada

subsistema, diante da observação de um evento comum entre eles. Entretanto, tal

2

Page 15: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

proposta não considera importantes aspectos práticos relacionados à sincronização

de eventos em sistemas a eventos discretos.

Em sistemas reais, a simples observação de um evento pode não proporcionar

informações su�cientes para a sincronização, sendo necessário observar também o

estado no qual o sistema se encontrava no momento da ocorrência do evento. Con-

siderando tal cenário, GAPANOWICZ [1] utilizou uma adaptação do método esten-

dido [5] para implementar um sistema de montagem e estocagem de cubos. Nessa

abordagem, foi criado o conceito de evento virtual, cuja �nalidade é associar um

evento a determinadas transições de estados especi�cadas para sincronização. Com

isso, os subsistemas foram sincronizados no diagrama Ladder apenas nas transições

desejadas, de modo a garantir o comportamento desejado do sistema global. Entre-

tanto, assim como em [5], o método de sincronização nos diagramas Ladder não foi

formalizado para casos gerais.

A proposta deste trabalho consiste na formalização de uma metodologia para sin-

cronização online de sistemas a eventos discretos. O método desenvolvido sincroniza

eventos de diferentes subsistemas associados a um mesmo sensor, que sozinho não

descreve satisfatoriamente o evento, tornando necessária uma diferenciação. Além

disso, o método especi�ca o processo de conversão de RPIC em diagrama Ladder,

estendendo os conceitos apresentados por MOREIRA e BASILIO [3], VIANA et al.

[5] e GAPANOWICZ [1] para casos gerais de sistemas distribuídos. A formalização

do método de sincronização será apresentada em dois cenários. Inicialmente, todos

os subsistemas que compõem o sistema global serão implementados em um único

CLP. Posteriormente, cada subsistema será implementado em seu respectivo CLP,

sendo necessário, portanto, estabelecer uma rede de comunicação entre os CLPs

para a sincronização desejada.

Este trabalho está organizado em cinco capítulos. No capítulo 2, serão descritos

os fundamentos teóricos de sistemas a eventos discretos, redes de Petri, RPICs,

diagramas Ladder, o método de conversão de RPICs para Ladder e uma breve

revisão de redes de comunicação. No capítulo 3 será formalizada a metodologia

de sincronização de sistemas a eventos discretos utilizando diagramas Ladder. No

capítulo 4 o método proposto será aplicado ao sistema implementado em [1] como

um caso particular. Por �m, no capítulo 5 serão apresentadas as conclusões do

trabalho, além de sugestões para trabalhos futuros.

3

Page 16: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Capítulo 2

Fundamentos Teóricos

Neste capítulo serão apresentadas as fundamentações teóricas necessárias para o

desenvolvimento deste trabalho. Na seção 2.1 é apresentada a de�nição de sistemas

a eventos discretos. Na seção 2.2 são de�nidas as redes de Petri e seus principais

fundamentos, incluindo as redes de Petri interpretadas para controle. Na seção 2.3

é descrita a linguagem Ladder com seus principais componentes para o propósito

deste trabalho. Posteriormente, a seção 2.4 descreve o método de conversão de uma

rede de Petri interpretada para controle para um diagrama Ladder. Por �m, na

seção 2.5 é realizada uma breve revisão do conceito de redes de comunicação.

2.1 Sistemas a Eventos Discretos

Os sistemas contínuos tradicionais de controle, amplamente descritos na literatura,

caracterizam-se por estados representados por variáveis que podem assumir in�nitos

valores, como temperatura e pressão. Além disso, a dinâmica desses sistemas é,

em geral, de�nida pelo tempo, sendo possível modelar o comportamento através de

equações diferenciais ou a diferenças.

Já nos sistemas a eventos discretos (SEDs), considerados neste trabalho, as va-

riáveis de estado são discretas e a dinâmica é regida pela ocorrência de eventos. Os

eventos podem ser de�nidos como estímulos internos, como o início de um processo

e o término de um temporizador, ou externos ao sistema, como a atuação de um

sensor de presença, que ao serem identi�cados, podem proporcionar uma alteração

instantânea no estado do sistema.

Desse modo, os SEDs con�guram-se como sistemas assíncronos, nos quais se

de�ne um estado inicial e, a partir da ocorrência de uma sequência de eventos

discretos em intervalos de tempo irregulares e possivelmente desconhecidos, pode-

se descrever a evolução dos estados. Diante dessa natureza assíncrona, soluções

baseadas em equações diferenciais ou a diferenças não se aplicam na modelagem de

um SED. Com a evolução dinâmica ditada por eventos físicos, há de se adotar outros

4

Page 17: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

formalismos que consideram a ocorrência de eventos.

A teoria de Linguagem é um desses formalismos. Por de�nição, todos os SEDs

são associados a um conjunto de eventos Σ, que pode ser comparado a um "alfabeto".

Uma sequência ordenada de eventos presentes em tal conjunto pode ser vista como

uma "palavra". Logo, um conjunto de sequências �nitas dos eventos de Σ consiste

em uma Linguagem, representando as possíveis transições de estados em um SED.

Apesar de descrever formalmente o comportamento de um SED, especi�cando

suas sequências de eventos admissíveis, o uso de linguagem nem sempre resulta em

uma representação simples de ser trabalhada. A �m de se facilitar a construção,

manipulação e análise de linguagens complexas, necessita-se de um conjunto de

estruturas que representem linguagens por operações bem de�nidas.

Um dos formalismos utilizados para a modelagem e análise do comporta-

mento dinâmico de um SED consiste nos autômatos determinísticos, (CASSAN-

DRAS e LAFORTUNE [2]). Um autômato determinístico G é de�nido por G =

(X,Σ, f, x0, Xm), onde X representa o conjunto de estados, Σ representa o conjunto

�nito de eventos, f : X × E → X é a função de transição de estados, x0 representa

o estado inicial e Xm ⊆ X é o conjunto de estados marcados.

Além da de�nição matemática, os autômatos também podem ser representados

por um diagrama de transição de estados. Em tal diagrama, o comportamento

descrito pela sêxtupla é obtido através de uma representação grá�ca, na qual os

estados são indicados por círculos, a função de transição de estados é denotada por

arcos ligando o estado de partida ao estado destino e os eventos são identi�cados

como os rótulos associados aos arcos. Além disso, o estado inicial do sistema é

indicado por uma seta sem evento associado, nem estado de origem, e os estados

marcados, aos quais se atribui um signi�cado especial referente ao funcionamento

do sistema em questão, são indicados por círculos duplos. O exemplo 2.1 ilustra a

representação de um SED por autômato.

Exemplo 2.1 Seja o autômato G representado pelo conjunto de eventos Σ =

{a, b, c, d}, o conjunto de estados X = {0, 1, 2}, o estado inicial x0 = 0, o con-

junto de estados marcados Xm = {1} e a função de transição de estados f tal que:

f(0, a) = 1 f(0, b) = 2

f(1, c) = 1 f(2, c) = f(2, d) = 1

Logo, o diagrama de estados de G está retratado na Figura 2.1

Apesar de modelar satisfatoriamente os SEDs em diversas aplicações, para ca-

racterísticas como sincronização seletiva de transições de estados e facilidade de

5

Page 18: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 2.1: Diagrama de transição de estados do Exemplo 2.1

implementação, fatores fundamentais deste trabalho, os autômatos não se con�gu-

ram como o melhor tipo de ferramenta. Neste trabalho será adotado então outro

tipo de formalismo de modelagem de SEDs: as redes de Petri.

2.2 Redes de Petri

As redes de Petri, assim como os autômatos, são um formalismo composto por

regras bem de�nidas para a representação de SEDs. A estrutura de uma rede de

Petri é de�nida por nós (lugares ou transições) que são interconectados por arcos

com pesos atribuídos, relacionando os componentes de forma ponderada. Nesse

formalismo, as barras denotam as transições que promovem a dinâmica do sistema

e estão associadas à ocorrência de eventos, enquanto os círculos indicam os lugares

que se associam aos estados e às condições de disparo das transições.

Os SEDs são descritos por uma rede de Petri através da de�nição a seguir.

De�nição 2.1 (Grafo de rede de Petri). Um grafo de uma rede de Petri é um grafo

bipartido ponderado [2]:

(P, T, Pre, Post)

em que

P é o conjunto �nito de lugares

T é o conjunto �nito de transições

Pre : (P × T )→ N é a função que de�ne o peso dos arcos que ligam os lugares

às transições

Post : (T×P )→ N é a função que de�ne o peso dos arcos que ligam as transições

aos lugares

Exemplo 2.2 Dado o grafo de rede de Petri da Figura 2.2:

os componentes do sistema são descritos por:

6

Page 19: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 2.2: Grafo de rede de Petri do Exemplo 2.2.

P = {p1, p2, p3} T = {t1}Pre(p1, t1) = 2 Post(t1, p1) = 0

Pre(p2, t1) = 0 Post(t1, p2) = 1

Pre(p3, t1) = 0 Post(t1, p3) = 1

As relações entre lugares e transições também podem ser parcialmente descritas

por meio do conjunto de elementos de entrada e saída. O conjunto de lugares de

entrada de uma transição tj é representado por I(tj), enquanto o conjunto de lugares

de saída de tj, por O(tj). Logo, tem-se:

I(tj) = {p ∈ P : Pre(p, tj) > 0} (2.1)

O(tj) = {p ∈ P : Post(p, tj) > 0} (2.2)

O mesmo pode ser aplicado em relação aos conjuntos de transições de entrada e

saída de cada lugar da rede de Petri:

I(pi) = {t ∈ T : Post(t, pi) > 0} (2.3)

O(pi) = {t ∈ T : Pre(pi, t) > 0} (2.4)

2.2.1 Marcação de uma rede de Petri

O conjunto de lugares de um grafo de rede de Petri, da forma como foi descrito

anteriormente, não apresenta informações su�cientes para determinar quais são os

estados inicial e atual do sistema, impossibilitando a análise das condições para o

disparo das transições. O mecanismo que permite tal análise é a marcação da rede

através das �chas. As �chas são representadas gra�camente por um ponto alocado

no interior dos lugares.

O número de �chas atribuídas a um lugar pi, i = 1, 2, ..., n, é representado

7

Page 20: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

como x(pi). Portanto, a marcação da rede é realizada pelo vetor coluna x =

[x(p1) x(p2) . . . x(pn)]T , possibilitando a de�nição de rede de Petri marcada. [2]

De�nição 2.2 (Rede de Petri marcada). Uma rede de Petri marcada é uma quín-

tupla (P, T, Pre, Post, x), na qual (P, T, Pre, Post) é o grafo da rede de Petri e x é

a marcação inicial do conjunto de lugares.

2.2.2 Dinâmica de uma Rede de Petri

A dinâmica de uma rede de Petri ocorre através da alteração da marcação dos

lugares da rede, que é proporcionada pelo disparo das transições. Entretanto, para

que haja movimentação das �chas, é necessário que a transição a ser disparada esteja

habilitada.

De�nição 2.3 (Condição de habilitação de uma transição). Uma transição tj ∈ Té dita habilitada se:

x(pi) ≥ Pre(pi, tj),∀pi ∈ I(tj)

ou seja, se o todos os lugares de entrada da transição tj tiverem número de �chas

maior ou igual aos pesos dos arcos que os ligam a tj.

Satisfeita a condição de habilitação, o disparo de uma transição tj altera a mar-

cação da rede retirando dos lugares de entrada o número de �chas equivalente ao

peso dos arcos que os ligam a tj, e adicionando aos lugares de saída um número de

�chas igual ao peso dos arcos que se conectam aos mesmos a partir de tj. Dessa

forma, a nova marcação x′(pi) da rede será dada por:

x′(pi) = x(pi)− Pre(pi, tj) + Post(tj, pi), i = 1, 2, 3, . . . , n. (2.5)

Exemplo 2.3 Especi�cando-se a marcação inicial de x0 = [2 0 0]T para o grafo do

Exemplo 2.2, tem-se a rede de Petri da Figura 2.3, cuja transição t1 encontra-se

habilitada de acordo com a De�nição 2.3.

Logo, considerando a Equação (2.5), o disparo de t1 resultará na seguinte dinâ-

mica, cuja nova marcação está ilustrada na rede de Petri da Figura 2.4.

x′(p1) = x(p1)− Pre(p1, t1) + Post(t1, p1) = 2− 2 + 0 = 0

x′(p2) = x(p2)− Pre(p2, t1) + Post(t1, p2) = 0− 0 + 1 = 1

x′(p3) = x(p3)− Pre(p3, t1) + Post(t1, p3) = 0− 0 + 1 = 1

x′ = [0 1 1]T

8

Page 21: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 2.3: Rede de Petri do Exemplo 2.3.

Figura 2.4: Nova marcação após t1 disparar.

2.2.3 Rede de Petri Estendida

As redes de Petri são ditas estendidas quando, além das estruturas de�nidas an-

teriormente, apresentam arcos inibidores. Os arcos inibidores, representados por

arcos com pontas circulares, ligam lugares a transições, porém, de forma inversa em

relação aos arcos tradicionais, tornando uma transição habilitada apenas quando o

número de �chas do lugar de entrada for menor que o peso do arco inibidor conec-

tado à respectiva transição. Além disso, quando uma transição associada a um arco

inibidor dispara, o número de �chas de seu lugar de entrada relacionado a tal arco

inibidor não é alterado.

De�nição 2.4 (Rede de Petri Estendida). Uma rede Petri estendida é uma sêxtu-

pla (P, T, Pre, Post, x, In), na qual (P, T, Pre, Post, x) de�nem uma rede de Petri

marcada (De�nição 2.2) e In : (P × T ) → N é a função dos arcos inibidores.

Uma transição tj associada a arcos inibidores será habilitada se, além de respeitar

a De�nição 2.3, satis�zer:

x(pi) < In(pi, tj),∀pi ∈ P : In(pi, tj) > 0

9

Page 22: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

2.2.4 Redes de Petri Interpretadas para Controle

As redes de Petri estendidas de�nidas previamente, apesar de descreverem satisfa-

toriamente o comportamento desejado de um SED, não apresentam estruturas que

possibilitem modelar o comportamento de um controlador a eventos discretos. As

redes de Petri interpretadas para controle (RPICs) são formalismos que permitem

tal modelagem, acrescentando à de�nição de rede de Petri propriedades capazes de

representar sensores e atuadores. Dessa forma, os sinais de sensores, que indicam a

ocorrência de eventos, podem ser associados às transições, assim como as ações de

comando, aos lugares. Além disso, também são de�nidas as transições temporiza-

das, cujo disparo ocorre com um atraso D após sua habilitação. Se a transição for

desabilitada antes do disparo, a contagem é zerada. Assim, o conjunto de transições

pode ser descrito como T = T0∪̇TD, em que T0 indica o conjunto de transições sem

atraso e TD o conjunto de transições associadas a um tempo de atraso (PENTAGNA

[6]).

De�nição 2.5 (Rede de Petri Interpretada para Controle). Uma

rede Petri interpretada para controle é de�nida por NC =

(P, T, Pre, Post, x, In, C, E, l,D, lD, AI , AN , lA), na qual (P, T, Pre, Post, x, In)

é uma rede de Petri estendida, C e E são os conjuntos de condições e eventos

externos associados às transições tj ∈ T0, l : T0 → (E×C) é a função que associa a

cada tj ∈ T0 um evento e uma condição para o disparo da transição, D é o conjunto

de atrasos de disparo associados à transições td ∈ TD, lD : TD → D é a função que

associa a cada td ∈ TD um atraso do conjunto D, AI e AN representam os conjuntos

de ações impulsionais e contínuas, respectivamente, e lA : P → 2(AI∪AN ) é a função

que associa aos lugares da rede uma ação pertencente ao conjunto AI ∪ AN .

Vale ressaltar que se um lugar da rede possui no máximo uma �cha para todos

os estados alcançáveis do sistema, então o lugar é dito seguro. Uma rede de Petri

em que todos os lugares são seguros é classi�cada como uma rede segura.

Além disso, se o evento externo de entrada de tj ∈ T0 não for especi�cado, a

transição tj será associada a um evento sempre ocorrente λ, indicando que tj deve

disparar assim que habilitada. De forma análoga, caso a condição associada a tjnão seja especi�cada, a transição é associada à condição lógica verdadeira, ou seja,

condição igual a um.

Já em relação aos lugares da rede, há possibilidade de associação de dois tipos

de ações: impulsionais e contínuas. As ações impulsionais são executadas assim que

há adição de uma �cha ao seu lugar associado, e permanecem válidas mesmo que

o lugar perca a �cha. Para a �nalização da ação, é necessário que um outro lugar,

associado ao término da ação, receba uma �cha. As ações contínuas, por outro lado,

10

Page 23: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

ocorrem apenas durante o intervalo em que o lugar associado contém �cha, sendo

encerradas assim que o respectivo lugar perder a �cha.

Exemplo 2.4 Considere o sistema representado pela RPIC da Figura 2.5:

Figura 2.5: RPIC do Exemplo 2.4.

Nesse sistema, a ação associada ao lugar p1 é do tipo contínua. Enquanto hou-

ver �cha em p1, a esteira permanece ligada. Quando o sistema identi�ca a borda de

subida de um sensor de presença SP e, além disso, uma condição x = 0 é satisfeita,

a transição t1 dispara, desligando a esteira e executando a ação impulsional, cuja

representação inclui o símbolo ”∗”, de estender o atuador em p2. Posteriormente,

quando a borda de subida do sensor de �m de curso SFC é identi�cada, a transi-

ção t2 dispara e a ação impulsional é desfeita em p3. Em seguida, a transição t3

é atrasada em 0, 5s, para então disparar e ligar a esteira por uma ação contínua

novamente.

2.3 Diagramas Ladder

Os diagramas Ladder representam uma linguagem de programação muito utilizada

industrialmente em controladores lógicos programáveis (CLP). Similares a um sis-

tema elétrico, tais diagramas são compostos por contatos e bobinas dispostos entre

duas barras verticais, que con�guram a alimentação do circuito. Os contatos são

responsáveis por energizar, ou não, as bobinas que, por sua vez, estão associadas à

ações externas ou a outros contatos.

2.3.1 Contatos

Os contatos são responsáveis por estabelecer as condições sob as quais as bobinas são

energizadas. Através de uma alteração da variável de entrada, seus estados alteram

de aberto para fechado, ou vice-versa, alterando a passagem de corrente �ctícia pela

linha do diagrama Ladder. Os principais tipos de contatos são normalmente aberto

(NA), normalmente fechado (NF), de borda de subida (tipo P), de borda de descida

(tipo N) e comparador.

11

Page 24: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Os contatos NA e NF são contínuos e funcionam de forma complementar. O

primeiro permanece aberto enquanto sua variável de entrada tiver valor lógico 0, e

�ca fechado enquanto a mesma tiver valor lógico 1. Já o contato NF, mantém-se

fechado para uma entrada lógica 0 e conserva-se aberto enquanto a variável for 1.

As representações constam na Figura 2.6.

(a) (b)

Figura 2.6: (a) Contato NA (b) Contato NF

Já os contados do tipo P e tipo N se con�guram como impulsionais e também

são complementares. O do tipo P, ou borda de subida, mantém-se aberto até que

sua entrada tenha o valor lógico alterado de 0 para 1. O contato permanece fechado

apenas durante um ciclo de varredura do CLP, sendo novamente aberto no ciclo

seguinte, independente do valor da variável de entrada. Já o contato do tipo N, ou

borda de descida, sustenta-se aberto até que sua variável associada tenha o valor

lógico alterado de 1 para 0. Da mesma forma, o contato �ca fechado somente por um

ciclo de varredura, sendo aberto novamente no ciclo subsequente. O acionamento e

representação desses contatos estão ilustrados na Figura 2.7.

(a) (b)

(c) (d)

Figura 2.7: (a) Contato tipo P, (b) Contato tipo N, (c) Operação contato tipo P,(d) Operação contato tipo N

O contato comparador mantém-se aberto enquanto a informação lógica con�gu-

rada nele for falsa. As instruções podem ser do tipo; maior que (>), maior igual

(≥), menor que (<), menor igual (≤), igual, ou diferente. A Figura 2.8 ilustra o

contato comparador.

Figura 2.8: Contato comparador.

12

Page 25: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

2.3.2 Bobinas

Bobinas são componentes relacionados às variáveis de memória interna, como ou-

tros contatos do diagrama, ou às variáveis de saída de um CLP, como sinais para

atuadores de uma planta. De acordo com as con�gurações dos contatos presentes

na mesma linha do diagrama, as bobinas são energizadas ou não, alterando o valor

lógico da variável associada às mesmas. Os tipos de bobinas do diagrama Ladder

são: simples, bobina SET e bobina RESET.

As bobinas simples são do modo contínuo, apresentando variáveis associadas com

valor lógico 1 quando estão energizadas, e valor lógico 0 quando não energizadas. Já

as bobinas SET e RESET atuam de forma impulsional. No tipo SET, as bobinas se

associam a variáveis que assumem o valor lógico 1 assim que são energizadas e per-

manecem com esse valor mesmo com posterior desenergização. No tipo RESET, por

outro lado, as variáveis das bobinas assumem o valor lógico 0 quando energizadas e

assim são mantidas ainda que as bobinas sejam desenergizadas. Dessa forma, as bo-

binas SET e RESET são complementares, de tal forma que, caso uma ação de saída

esteja associada à variável de uma bobina SET, é necessário associar tal variável

também a uma bobina RESET a �m de se interromper a ação. As representações

grá�cas das bobinas estão retratadas na Figura 2.9.

(a) (b) (c)

Figura 2.9: (a) Bobina simples (b) Bobina SET (c) Bobina RESET

2.3.3 Blocos matemáticos e temporizadores

Além de contatos e bobinas, o diagrama Ladder também se utiliza de blocos com

instruções matemáticas para a modelagem do comportamento de um SED. Os blocos

principais denominam-se Add, Sub e Move.

Os blocos Add, assim que energizados, realizam uma operação de adição em

suas variáveis associadas, enquanto os blocos Sub, de subtração. Ambos podem

se associar a variáveis de entrada, de memória ou a valores inteiros de�nidos pelo

usuário. Já o tipo Move, caracteriza-se por atribuir um novo valor a uma dada

variável, assim que energizado. As representações constam na �gura 2.10.

Os temporizadores são blocos que, a partir da energização, iniciam uma contagem

de tempo e se fecham quando essa atinge um valor especi�cado. Quando energizados

novamente, a contagem se reinicia a partir de zero. Tal comportamento permite a

implementação de transições temporizadas. A representação desse tipo de bloco

pode ser vista na �gura 2.11.

13

Page 26: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

(a) (b) (c)

Figura 2.10: (a) Bloco Add (b) Bloco Sub (c) Bobina Move

Figura 2.11: Bloco temporizador.

2.4 Método de conversão de RPIC para diagrama

Ladder

Conforme descrito anteriormente, as Redes de Petri interpretadas para controle são

uma modelagem do comportamento de um controlador a eventos discretos, enquanto

os diagramas ladder consistem em uma linguagem de programação utilizada em

CLPs. Portanto, a �m de se implementar um SED em um CLP, um método de con-

versão precisa ser utilizado. Uma metodologia de conversão de RPIC em diagrama

ladder foi, então, apresentada por MOREIRA e BASILIO [3]. Nessa proposta, a

construção do diagrama é dividida em cinco módulos ordenados: módulo dos even-

tos externos, módulo das condições de disparo, módulo da dinâmica, módulo de

inicialização e o módulo das ações. Além de possibilitar a implementação de forma

simples, a construção dos módulos, na ordem relatada, também evita o fenômeno

de efeito avalanche, que ocorre quando há o disparo de duas ou mais transições su-

cessivamente no mesmo ciclo de varredura, levando o sistema a um comportamento

não desejado.

Nessa seção, o processo sistemático de construção de cada módulo do diagrama

será detalhado, aplicando-se os conceitos à RPIC do exemplo 2.5.

Exemplo 2.5 O sistema representado pela rede de Petri da �gura 2.12 consiste na

abertura e fechamento de um portão eletrônico por meio de um controle remoto com

apenas um botão. O sistema é composto por três eventos externos: um botão de

acionamento b e dois sensores de �m de curso fc1 e fc2. Inicialmente o portão

encontra-se fechado, com uma �cha no lugar p1. Ao identi�car o acionamento do

botão b, a transição t1 dispara iniciando a abertura do portão através da ação do

tipo contínua do lugar p2. A partir do acionamento de abertura do portão, enquanto

há uma �cha no lugar p2, dois eventos externos podem ocorrer: a borda de subida do

sensor de �m de curso e outro comando do botão b. O primeiro indica que o portão

foi aberto completamente, interrompendo o comando ao atuador de abertura e colo-

cando uma �cha em p3. Já o segundo, indica o comando do usuário para interromper

14

Page 27: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

a abertura do portão antes do mesmo alcançar o �m de curso, acrescentando uma

�cha em p5, cuja descrição informa que o portão iniciou sua abertura, sem concluí-

la. Caso o portão tenha sido completamente aberto, uma nova ocorrência do evento

b aciona o atuador para o seu fechamento através do disparo da transição t3. De

forma similar, um acionamento do botão b enquanto o portão encontra-se parcial-

mente aberto também inicia seu processo de fechamento. Assim como no caso de

sua abertura, enquanto o portão está se fechando podem ser identi�cados tanto a

borda de subida do sensor fc2, indicando o fechamento completo do portão, quanto

um novo acionamento do botão b, indicando o comando para o portão interromper

seu movimento antes de fechar completamente.

"Portão fechado"

p1 ↑ b

t1 Abrir portão

p2 ↑ f c1

t2 "Portão aberto"

p3 ↑ b

t3 Fechar portão

p4 ↑ f c2

t4

↑ b

t5 "Portão parcialmenteaberto"

p5 ↑ b

t6

↑ b

t8

p6 ↑ b

t7"Portão parcialmente

fechado"

Figura 2.12: Sistema de acionamento de portão eletrônico - RPIC.

2.4.1 Módulo dos Eventos Externos

O módulo dos eventos externos tem como função detectar bordas de subida e de

descida pelo CLP. Cada evento externo do sistema é associado a um contato NA, e

conectado em série com um contato tipo P, que implementa um sinal de borda de

subida, ou tipo N, que implementa um sinal de borda de descida. Esses contatos P/N

são normalmente abertos, sendo fechados apenas durante um ciclo de varredura do

CLP, quando a condição booleana na respectiva linha Ladder altera seu valor de zero

para um (tipo P), ou de um para zero (tipo N). Em série com os referidos contatos,

conecta-se, então, uma bobina simples que representa a ocorrência do evento. Dessa

forma, as variáveis associadas às bobinas terão valor lógico 1 apenas durante um

ciclo de varredura. Como o módulo é construído para todos os eventos externos, o

número de linhas será igual ao número de eventos externos do sistema.

15

Page 28: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Vale ressaltar que, quando o CLP possui contatos tipo P/N que identi�cam dire-

tamente a ocorrência da borda de subida, ou descida, de um evento, a implementação

do módulo das condições de disparo não é necessária.

Para ilustrar a construção do módulo de eventos externos, considere o exemplo

2.5. Tal sistema é composto por três eventos externos: o botão de acionamento b e

os sensores de �m de curso fc1 e fc2 para identi�cação da abertura e fechamento do

portão, respectivamente. Portanto, o módulo dos eventos externos desse sistema será

composto por três linhas, cada uma associada a um evento diferente. Como o sistema

em questão utiliza a borda de subida dos sensores para identi�car a ocorrência de

eventos externos, os eventos b, fc1 e fc2 serão associados a contatos NA e conectados

em série com contatos do tipo P e com bobinas simples, conforme ilustrado na �gura

2.13. Nessa con�guração, cada bobina representará a ocorrência de seu respectivo

evento ao assumir o valor lógico 1 durante apenas um ciclo de varredura.

Figura 2.13: Módulo dos eventos para a RPIC do exemplo 2.5.

2.4.2 Módulo das Condições de Disparo das Transições

No módulo das condições de disparo são veri�cadas as condições de habilitação de

cada transição tj ∈ T do sistema. Com isso, o número de linhas do módulo é

igual ao número de transições do sistema. Os contatos comparadores são utilizados

de forma a garantir que as bobinas relacionadas a cada transição tj apenas sejam

energizadas quando o número de �chas de todos os lugares de entrada da transição

em questão garantirem a habilitação. Desse modo, para cada lugar de entrada de

tj será utilizado um bloco comparador, cuja função será comparar o número de

�chas do respectivo lugar, com o peso do arco que o conecta à respectiva transição,

16

Page 29: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

sejam arcos dos tipos simples e habilitadores (de�nição 2.3), sejam arcos inibidores

(de�nição 2.4). Todos os contatos comparadores serão, então, associados em série.

Além disso, para as transições to ∈ T0, os contatos comparadores são conectados

em série a outros dois componentes: um contato do tipo NA ou NF, relacionado à

respectiva condição associada co, e um contato NA, que representa a borda de subida,

ou descida, do evento eo rotulado à transição to. Já para as transições td ∈ TD, oscontatos comparadores são associados em série com blocos temporizadores para,

então, energizar a bobina relacionada ao disparo da transição.

Vale ressaltar que os contatos comparadores podem ser substituídos por contatos

NA para redes de Petri seguras, nas quais todos os lugares são limitados a apenas

uma �cha, independentemente da sequência de disparo das transições.

Em relação ao sistema do exemplo 2.5, como há um total de oito transições,

o módulo das condições de disparo apresentará oito linhas, sendo cada linha cons-

truída de modo a energizar uma bobina simples que representa o disparo de sua

transição associada. Portanto, as condições de habilitação de determinada transi-

ção tj da RPIC do sistema são representadas no diagrama ladder pela associação

dos componentes que condicionam a energização da bobina relacionada à tj na sua

respectiva linha. Os componentes a serem inseridos na linha podem ser divididos

em três grupos: os contatos comparadores associados aos lugares de entrada, um

contato NA ou NF relacionado à condição cj ∈ C e um contato NA condicionado

ao evento que dispara a transição. O módulo de condições de disparo de transições

do sistema do exemplo 2.5 está retratado na �gura 2.14.

Como cada transição da RPIC do exemplo 2.5 possui apenas um lugar de entrada,

apenas um contato comparador será associado a cada linha. Além disso, como não

há arcos inibidores, a comparação do referido contato seguirá a de�nição 2.3. Por

exemplo, a transição t1, representada pela bobina simples da primeira linha do

diagrama da �gura 2.14, cujo conjunto de lugar de entrada é de�nido por I(t1) =

{p1} e o peso do arco que conecta o lugar à transição é Pre(p1, t1) = 1. Logo,

para habilitar t1, o contato comparador deve energizar sua saída quando veri�car a

condição X1 ≥ 1.

Após a inserção dos contatos comparadores, o contato relacionado à condição

cj e o associado ao evento rotulado de cada transição devem ser acrescentados.

Observando a RPIC do exemplo 2.5, nota-se que nenhuma transição possui uma

condição rotulada para o disparo. Logo, cj = 1,∀tj ∈ T0, não sendo necessária a

inserção de nenhum contato relacionado a condições de transições.

Por �m, o contato NA deve ser associado em série aos contatos comparadores em

cada linha, levando a informação da ocorrência do evento que dispara a transição

para o diagrama ladder. No caso da transição t1, por exemplo, o evento associado

é o botão de acionamento do portão b. Com isso, um contato NA, cujo valor lógico

17

Page 30: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

provém da bobina do evento b do módulo de eventos, é conectado em série ao contato

comparador X1 ≥ 1, para energizar a bobina t1, como ilustrado na �gura 2.14.

Figura 2.14: Módulo das condições de disparo para a RPIC do exemplo 2.5.

2.4.3 Módulo da Dinâmica

O módulo da dinâmica é implementado para representar a evolução de estados do

sistema, ou seja, a alteração da marcação da rede diante do disparo de uma transi-

ção. Cada transição tj ∈ T proporcionará uma evolução e, dessa forma, o módulo

terá tantas linhas quanto o número de transições. Para representar o disparo de cada

transição, são utilizados contatos NA cuja variável está associada à bobina relacio-

nada à respectiva transição no módulo de condições. Dessa forma, apenas disparam

as transições que estão habilitadas no ciclo de varredura atual, evitando-se o efeito

avalanche. A dinâmica das �chas é, então, representada pelos blocos ADD e SUB,

respeitando o peso dos arcos que ligam os lugares de entrada e de saída de cada

18

Page 31: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

transição. Nos casos em que a RPIC em questão é classi�cada como segura, ou

seja, quando todos os lugares possuem no máximo uma �cha para todos os estados

alcançáveis a partir do estado inicial, os blocos ADD e SUB podem ser substituídos

pelas bobinas SET e RESET, respectivamente, já que nesse caso o número de �cha

é representado por uma variável booleana.

Assim como o módulo de condição de disparo, o módulo da dinâmica do sistema

exemplo 2.5 será composto por oito linhas, devido ao total de oito transições. Cada

linha será relativa a uma transição e sua composição se dará por um contato NA

associado à bobina do módulo de condição de disparo que representa a respectiva

transição. Como exemplo, na primeira linha um contato NA é inserido com a variável

t1, cujo valor lógico é dado pela bobina t1 do módulo de condição de disparo. Além

disso, blocos de subtração SUB e adição ADD são inseridos em série com o contato

NA para representar o número de �chas que a transição da linha retira dos lugares

de entrada e coloca nos lugares de saída, respectivamente. Logo, no caso do disparo

da transição t1, uma �cha é retirada do lugar p1 e uma �cha é colocada em p2,

resultando nos blocos SUB (X1 = X1 − 1) e ADD (X2 = X2 + 1). O módulo da

dinâmica para a RPIC do exemplo 2.5 pode ser visto na �gura 2.15.

2.4.4 Módulo de Inicialização

O módulo de inicialização possui apenas uma linha e sua função consiste em esta-

belecer a marcação inicial do sistema. Para tal, um contato NF associado a uma

variável interna é utilizado para energizar blocos MOVE relacionados às variáveis

que representam o número de �chas inicial, não nulo, de cada lugar. A energiza-

ção ocorre apenas no primeiro ciclo, já que uma bobina do tipo SET se associa ao

contato NF, abrindo-o após o primeiro ciclo.

Além disso, vale ressaltar que para redes de Petri seguras, os blocos MOVE

podem ser substituídos por bobinas do tipo SET, já que os lugares da rede possuem,

nesse caso, no máximo uma �cha.

Desse modo, como o estado inicial do sistema do exemplo 2.5 foi de�nido como

"portão fechado", p1 con�gura-se como o único lugar da RPIC que possui �cha

inicialmente, apresentando precisamente uma �cha. O módulo de inicialização do

sistema será então composto por apenas um bloco MOVE atribuindo uma �cha ao

lugar p1, ou seja, X1 = 1, conforme visto na �gura 2.16.

2.4.5 Módulo das Ações

No módulo das ações, por �m, são de�nidas as ações a serem executadas quando

os lugares do sistema recebem �chas. O número de linhas do módulo é equivalente

ao número de ações de�nidas na RPIC. Contatos comparadores são utilizados para

19

Page 32: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 2.15: Módulo da dinâmica para a RPIC do exemplo 2.5.

veri�car se os lugares que executam uma ação possuem �chas. Tais contatos são,

então, associados em série a diferentes tipos de bobinas, a depender do tipo de ação.

Para ações impulsionais, faz-se uso de bobinas SET e RESET, ou ainda contatos do

tipo P em série com bobinas simples. Já para ações contínuas, são utilizadas apenas

bobinas simples.

É importante ressaltar ainda que, quando mais de um lugar se relaciona a uma

20

Page 33: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 2.16: Módulo de inicialização para a RPIC do exemplo 2.5.

mesma ação, tais lugares devem ser conectados em paralelo na linha da respectiva

ação. Além disso, destaca-se também que cada ação está relacionada a uma única

bobina, a �m de evitar possíveis con�itos na execução do código.

Observando-se a RPIC do exemplo 2.5, é possível constatar que apenas duas

ações são realizadas: abrir e fechar o portão. A primeira é executada pelo lugar p2,

enquanto a segunda, por p4, sendo ambas ações do tipo contínua. Os demais lugares

possuem apenas descrições do estado em que o sistema se encontra ao receberem

�cha. Logo, o módulo das ações da RPIC do exemplo 2.5 será composto por duas

linhas, uma com a bobina para abrir o portão, associada a um contato comparador

para uma �cha em p2, e outra com a bobina para fechar o portão, condicionada a

existência de uma �cha no lugar p4. Tal con�guração está ilustrada na �gura 2.17.

Figura 2.17: Módulo das ações para a RPIC do exemplo 2.5.

21

Page 34: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

2.5 Redes de comunicação

Os sistemas industriais modernos têm englobado processos cada vez mais complexos,

com avanços tecnológicos proporcionando maior agilidade, padronização e precisão

de produção. Devido ao grande número de atividades simultâneas em linhas de

produção de dimensões cada vez mais extensas, é comum um sistema de automação

ser composto por diversos subsistemas interdependentes e distantes �sicamente entre

si. Desse modo, a �m de se garantir o comportamento global desejado, torna-se

necessária uma integração entre os componentes. Tal integração é obtida através de

um sistema de comunicação con�ável e e�ciente entre os computadores industriais

de cada processo, proporcionando maior con�abilidade de processos, menor custo

com processamento de dados, além de maior e�ciência e sincronismo de produção.

Uma rede de comunicação é composta por cinco componentes REYNDERS e

WRIGHT [7]: uma fonte de informação, um canal de comunicação, um transmissor

que converte a informação em dados compatíveis com o canal de comunicação, um

receptor que converte os dados do canal de comunicação em informação novamente,

e um destinatário que recebe a informação �nal. A comunicação em uma rede é

realizada através da transmissão de Frames, ou quadros, cuja formação deve conter

o endereço da fonte, do destinatário, além de outras informações com formatação

especí�ca. O conjunto de regras que controlam tal formatação da transmissão de

dados e a correção de erros é denominado como Protocolo. Dessa forma, para que

dois dispositivos se comuniquem com sucesso, ambos precisam entender o mesmo

protocolo.

2.5.1 Protocolo Ethernet

O protocolo Ethernet (IEEE 802.3 CSMA/CD) [7] é o protocolo de comunicação

mais utilizado em redes LAN (Local Area Network), que se caracterizam por uma

transmissão de alta velocidade, para distância entre dispositivos relativamente curta,

com limite de poucas centenas de metros.

Nessa especi�cação, os frames são formados por oito campos, sendo dois deles

referentes ao endereço dos dispositivos de origem e de destino. O endereçamento

de rede é realizado através de um número de seis bytes, único para cada placa de

rede de cada dispositivo, denominado endereço MAC (Media Access Control). Os

três primeiros bytes do endereço MAC identi�cam o fabricante da placa de rede e

os três seguintes representam a designação do fabricante para a placa de rede em

questão. Cada byte é representado por dois algarismos hexadecimais, totalizando os

12 algarismos que compõem o endereço físico associado à interface de comunicação.

22

Page 35: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Os oito campos que compõem o frame, conforme explicitado na �gura 2.18, são:

• Preâmbulo: Contém uma sequencia binária de 7 bytes utilizada pelo receptor

para sincronizar o clock com o transmissor.

• Delimitador de início de frame (SoF): Possui 1 byte que permite o recep-

tor reconhecer o início dos campos de endereço.

• Endereço de destino: Endereço MAC do dispositivo de destino

• Endereço da fonte: Endereço MAC do dispositivo fonte

• Comprimento: Contém 2 bytes com o tamanho do campo de dados.

• Dados: Campo de dados a serem enviados às demais camadas do receptor.

• Preenchimento: Campo que insere bytes aos dados, casos esses não possuam

o tamanho mínimo de 64 bytes.

• CRC: Cyclic Redundancy Check é o campo de veri�cação de redundância. Um

valor é criado no transmissor e recalculado no receptor para veri�car possíveis

danos no frame após a transmissão.

Preâmbulo SoF MACdestino

MACfonte Comprimento Dados Preenchimento CRC

Figura 2.18: Composição do frame.

2.5.2 PROFINET

O protocolo de comunicação Ethernet foi, durante anos, o padrão adotado em siste-

mas com CLPs e interfaces homem máquina (IHM) na indústria. Entretanto, diante

da crescente complexidade e demanda do ambiente industrial, a Pro�bus Internatio-

nal (PI), associação internacional de empresas de automação industrial, desenvolveu

um padrão de comunicação otimizado para a indústria: o PROFINET.

O PROFINET (Process Field Network) é um padrão de comunicação baseado

em características do protocolo Ethernet, mantendo por exemplo o modo de ende-

reçamento, além do tamanho e formato do frame. Como diferencial, o protocolo

proporciona um ambiente industrial mais robusto e seguro, com o uso de padrões

TCP/IP para diagnóstico de rede e transmissão de dados, integração total com ou-

tros sistemas, capacidade de comunicação em tempo real, dentre outros parâmetros

de aplicações industriais OLIVEIRA [8].

23

Page 36: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

2.5.3 Comunicação em rede PROFINET

A comunicação entre dois dispositivos conectados em uma rede PROFINET pode ser

estabelecida, de acordo com as especi�cações da Siemens, de três formas diferentes:

através de comandos TSEND e TRCV, por meio da função I-Device, ou fazendo-se

uso dos blocos GET e PUT.

Neste trabalho será adotada a metodologia de comunicação por blocos GET

e PUT especi�cada para os CLPs da Siemens. Nessa abordagem, cada bloco

GET/PUT é formado por um cabeçalho, um conjunto de parâmetros e um bloco de

dados (Data Block). A estrutura data block consiste em segmentos de memória dos

dispositivos que são reservados para o armazenamento de variáveis utilizadas por

diversos tipos de funções, nesse caso os blocos GET/PUT.

O princípio de funcionamento desse método de comunicação considera como

parâmetros um data block do dispositivo de origem, um tipo de dado e um endereço

de início do dado, para então realizar funções de leitura (GET) ou escrita (PUT)

dessas informações no banco de dados dos dispositivos parceiros.

A �gura 2.19 ilustra um bloco GET na interface do programa Totally Integrated

Automation Portal (TIA Portal), desenvolvido pela Siemens. Esse bloco, assim

como os contatos e as bobinas, deve ser adicionado ao diagrama Ladder dos CLPs.

Figura 2.19: Bloco GET no programa TIA Portal.

A comunicação entre dois CLPs é estabelecida na prática, conforme detalhado

por OLIVEIRA [8], seguindo etapas bem de�nidas. Inicialmente, o usuário deve

criar um data block para cada CLP, adicionando em ambos o nome da variável a

24

Page 37: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

ser transmitida e seu tipo (int, booleana, etc). Em seguida, nas con�gurações do

bloco GET do CLP receptor, seleciona-se o CLP que enviará o dado, resultando no

preenchimento automático do parâmetro ID do bloco GET ilustrado na �gura 2.19,

fato que indica o estabelecimento da conexão.

Posteriormente, os demais parâmetros do bloco GET (REQ, ADDR e RD) devem

ser preenchidos. A entrada REQ consiste no sinal de chamada do bloco GET, ou

seja, trata-se do parâmetro que inicia o trabalho de comunicação quando não há

outro trabalho em andamento. Em geral, à essa entrada se atribui uma variável de

clock.

O parâmetro ADDR pode ser visto como uma área de leitura no CLP de envio

do dado, sendo composto por três campos: start, que indica o endereço do primeiro

bit da variável a ser lida; lenght, que indica o tamanho de tal variável; e outro campo

designado ao tipo de variável.

Já o argumento RD representa uma área de armazenamento no CLP receptor.

Apesar de apresentar os mesmos campos que ADDR para preenchimento, nesse

argumento as informações são relativas à identi�cação do endereço da variável que

irá armazenar o valor lido.

Conforme representado pela �gura 2.19, a estrutura dos blocos GET apresenta

mais de um par de argumentos ADDR/RD, possibilitando a leitura de múltiplas

variáveis em apenas um bloco.

Os blocos PUT possuem a mesma estrutura dos blocos GET. A parametrização

difere somente pelo preenchimento de ADDR e RD de modo inverso, ou seja, as

con�gurações de área de leitura e área de armazenamento para ADDR e RD nos

blocos GET passam a ser área de escrita e área de envio nos blocos PUT.

Vale constatar que, diante do objetivo deste trabalho, os demais parâmetros dos

blocos GET/PUT não serão necessários, omitindo-se portanto a descrição dos mes-

mos. Além disso, a representação adotada para tais blocos será, por conveniência,

simpli�cada apenas à identi�cação da variável transmitida, como ilustrado na �gura

2.20 para o caso da variável x.

(a) (b)

Figura 2.20: (a) Bloco GET (b) Bloco PUT.

O exemplo 2.6 ilustra como a comunicação entre dois CLPs é implementada em

diagramas Ladder.

25

Page 38: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Exemplo 2.6 Considere um sistema composto por dois subsistemas S1 e S2, im-

plementados em CLPs diferentes, sendo S1 o sistema de acionamento de portão

eletrônico retratado na �gura 2.12 do exemplo 2.5, e S2 um determinado processo

sem conexões físicas com S1. Considere ainda que o processo de S2 seja dependente

de S1, de tal modo a apenas evoluir caso o portão de S1 esteja em movimento, seja

abrindo ou fechando. Enquanto o portão de S1 estiver parado, S2 deve permanecer

desabilitado.

A �m de se obter o comportamento completo desejado, é preciso implementar um

sistema de comunicação entre os subsistemas, permitindo o envio da informação do

estado do portão eletrônico de S1 para S2. Para tal, são utilizados blocos GET e

PUT nos diagramas Ladder de S2 e S1, respectivamente.

Observando-se a �gura 2.12, nota-se que o portão do subsistema S1 se abre en-

quanto houver uma �cha no lugar p2 e se fecha durante o intervalo em que p4 possui

uma �cha. Portanto, o subsistema S2 será habilitado enquanto um desses lugares

de S1 contiver uma �cha. A comunicação nesse caso é estabelecida pela inserção de

um módulo de comunicação ao diagrama Ladder de S1, após o módulo das ações re-

tratado na �gura 2.17. Esse novo módulo é formado por duas linhas, como ilustrado

na �gura 2.21. Na primeira, dois contatos comparadores, um relativo a p2 e outro

a p4, são conectados em paralelo entre si e em série com uma bobina associada à

variável de comunicação modS1. Na segunda linha, tal variável é correlacionada a

um bloco PUT, para ser enviada ao subsistema S2.

Figura 2.21: Módulo de comunicação de S1 do exemplo 2.6.

Para o subsistema S2 receber o sinal com a variável ”modS1” e identi�car se

o portão de S1 está em movimento, um módulo de comunicação também deve ser

adicionado ao seu diagrama Ladder. Nesse módulo, a primeira linha é composta por

26

Page 39: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

um bloco GET associado a ”modS1”, enquanto a segunda linha é formada por um

contato NA, relacionado à mesma variável, em série com uma bobina representativa

do processo S2. Com isso, se garante que a bobina S2 seja energizada, habilitando o

funcionamento do subsistema S2, apenas enquanto o portão do subsistema S1 estiver

se movimentando.

Figura 2.22: Módulo de comunicação de S2 do exemplo 2.6.

27

Page 40: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Capítulo 3

Metodologia para sincronização de

Sistemas a Eventos Discretos

utilizando Ladder

Em geral, um sistema a eventos discretos complexo é composto por vários subsiste-

mas, ou módulos, de menor complexidade. A �m de se modelar o sistema, adota-se

então, por simplicidade, a estratégia de descrever o comportamento de cada sub-

sistema individualmente, modelando uma rede de Petri especí�ca para cada um.

Entretanto, o método de elaboração de diagramas Ladder apresentado na seção 2.4

considera que o sistema seja centralizado, como ilustrado na �gura 3.1(a) ou seja,

uma única rede de Petri é responsável por toda a modelagem. Nesse cenário, para

se obter um único modelo, deve-se calcular a composição paralela entre todas as re-

des de Petri, resultando em um aumento signi�cativo do número de transições. Ao

contrário da abordagem do capítulo anterior, os sistemas a eventos discretos ana-

lisados nesta seção são distribuídos, ou seja, constituídos por diversos subsistemas

individuais, cujas modelagens são retratadas por suas respectivas RPICs.

(a) (b)

Figura 3.1: (a) Sistema centralizado (b) Sistema distribuído

Considerando o cenário da �gura 3.1(b), a descrição do comportamento global só

é possível diante da sincronização dos módulos individuais. Objetivando tal mode-

lagem, neste capítulo será proposta uma formalização de sincronização de sistemas

28

Page 41: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

a eventos discretos através de diagramas ladder. Primeiramente, na seção 3.1 será

apresentada uma revisão bibliográ�ca do módulo de sincronização. Posteriormente,

o método geral será proposto em dois cenários: na seção 3.2 todos os subsistemas

que compõem o sistema global serão implementados no mesmo CLP, enquanto na

seção 3.3 cada subsistema será considerado em um CLP diferente, sendo necessária

uma comunicação em rede.

3.1 Revisão bibliográ�ca

Baseando-se na metodologia de conversão de RPIC em diagrama ladder apresen-

tada na seção 2.4, VIANA et al. [5] descreveram uma forma de sincronizar sistemas

modelados por RPICs em um exemplo particular sem a necessidade de se realizar

composições paralelas previamente. Nessa abordagem, a sincronização é realizada

por duas etapas: primeiro um novo módulo é inserido no diagrama ladder, deno-

minado de módulo de sincronização, e posteriormente, o módulo das condições de

disparo das transições é atualizado de forma a considerar a informação obtida no

módulo de sincronização.

O módulo de sincronização tem como função assegurar a sincronização de duas

ou mais RPICs através de eventos externos em comum. Com tal artifício, cada

RPIC tem sua dinâmica independente inalterada até a iminência do disparo de uma

transição regida por um evento comum. Nesse momento, a referida transição apenas

será habilitada, caso todas as outras RPICs se encontrem em estados nos quais o

disparo de ao menos uma transição com o mesmo evento comum seja possível. Esse

objetivo é alcançado através da veri�cação de habilitação das transições associadas

aos eventos comuns em cada sistema, de modo a se obter um sinal habilitador global.

Além disso, após a criação do módulo de sincronização, o módulo das condições

de disparo das transições deve ser alterado de modo a condicionar a energização das

linhas associadas aos eventos comuns aos sinais de sincronização de cada módulo.

Embora tenham apresentado uma metodologia que permite a sincronização de

diferentes RPICs, VIANA et al. [5] não abordaram problemas práticos decorrentes

do método, como o caso em que se deseja uma sincronização seletiva, de apenas

parte do conjunto de transições associadas a eventos externos comuns. Além disso,

o método foi apresentado através de um exemplo especí�co, com duas RPICs sim-

ples e sincronização de apenas um evento, sem a elaboração de uma formalização

do método de construção do diagrama ladder sincronizante, de modo a estender a

aplicação para casos gerais.

O método de sincronização de sistemas a eventos discretos por meio de eventos

externos, apesar de simples modelagem, se for aplicado para todas as transições

associadas aos eventos comuns em cada subsistema, na prática, pode não resultar

29

Page 42: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

na dinâmica desejada para o sistema. Tal comportamento decorre do fato de que

nem sempre a simples ocorrência de um evento externo é su�ciente para determinar

o estado atual do sistema, já que os eventos apenas possuem como função obter um

dado de entrada para o processamento de controle, independentemente da lógica

implementada. Por exemplo, o caso de um módulo de seleção de peças composto

por uma esteira, diversos sensores que identi�cam as características da peça que

está sendo transportada, e um sensor de �m de curso. Considere ainda que todas

as peças percorrem a esteira completamente, sendo rejeitadas ou aceitas apenas ao

alcançarem o sensor de �m de curso. Nesse caso, o �m de curso apenas identi�ca o

local onde a peça deve parar a �m de, baseado na identi�cação da lógica implemen-

tada, prosseguir no sistema, ou ser rejeitada. Apenas a borda de subida do referido

sensor não identi�ca se a peça cumpre todos os requisitos de projeto para ser aceita.

Logo, uma sincronização do sensor de �m de curso entre esse módulo e um outro

módulo adjacente, que desempenha alguma ação sobre a peça, por exemplo, não re-

sultaria em uma dinâmica desejada, permitindo a passagem de todas as peças para

a etapa posterior, sem considerar os critérios de aprovação das mesmas fornecidos

pelos demais sensores da esteira.

Tendo em vista o fato supracitado, GAPANOWICZ [1] propôs a criação dos cha-

mados eventos virtuais. Nessa metodologia, considera-se não apenas a ocorrência

do evento, como também à qual transição o evento está associado para de�nir a

sincronização. Com isso, a operação síncrona é obtida apenas através das transições

cujas habilitações indiquem que o módulo se encontra em um estado desejado para

sincronização. Entretanto, a sincronização entre módulos independentes foi imple-

mentada para um prolema especí�co, sem a apresentação de uma formalização para

casos gerais. Nas seções 3.2 e 3.3 serão formalizadas, respectivamente, as metodolo-

gias de sincronização de SEDs e sincronização de SEDs em rede, como generalização

dos métodos aplicados por VIANA et al. [5] e GAPANOWICZ [1].

3.2 Sincronização de sistemas a eventos discretos

A metodologia de sincronização proposta nesta seção considera um sistema a even-

tos discretos composto por k subsistemas, com implementação em um único CLP,

como abordado em [5] e [1] e ilustrado na �gura 3.2. Nessa con�guração, o diagrama

Ladder do sistema global é obtido por três etapas: construção do Ladder de cada

componente, conforme as regras de conversão [3]; criação do módulo de sincroniza-

ção, entre o módulo dos eventos e o módulo das condições de disparo; e atualização

do módulo das condições de disparo das transições de cada subsistema.

As etapas de construção do módulo de sincronização e atualização dos módulos

das condições serão formalizadas por algoritmos que, diante das de�nições do usuá-

30

Page 43: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

rio, podem proporcionar três tipos de sincronização em função de um evento externo

σ:

• Sincronização Completa: Em todos os subsistemas, todas as transições

associadas a σ são sincronizadas. Não há transição disparada por σ com

dinâmica independente em nenhum subsistema.

• Sincronização Seletiva: Em ao menos um subsistema, apenas um subcon-

junto das transições associadas a σ é sincronizado. Existe pelo menos uma

transição disparada por σ, em algum subsistema, com dinâmica independente.

Sincronização modelada por eventos virtuais.

• Sincronização por Agrupamento: Em cada subsistema, as transições sín-

cronas associadas a σ são atribuídas a um grupo n, particionando a sincro-

nização em diversos grupos. Cada grupo pode sincronizar o evento σ entre

quaisquer subsistemas. Note que a sincronização seletiva pode ser obtida por

meio da atribuição de um grupo único às transições selecionadas para sincro-

nizar σ, e a completa por um grupo único, para todas as transições associadas

a σ. Sincronização modelada por eventos virtuais.

Os aspectos práticos das classi�cações acima serão explicitados ao longo da des-

crição do algoritmo de sincronização.

SUB k 

 Eventos

Condições*

Dinâmica

Inicialização

Ações

CLP

SUB 1 

 Eventos

Condições*

Dinâmica

Inicialização

Ações

SUB 2 

 Eventos

Condições*

Dinâmica

Inicialização

Ações

Módulo 

de 

SincronizaçãoSinc σ

RPI , RPI , ..., RPIC1 C2 Ck

Sinc σ

Sinc σ Sinc σ

Algoritmo

Figura 3.2: Sincronização entre k subsistemas.

3.2.1 Formalização do módulo de sincronização

O algoritmo 1 proposto nesta seção possui como objetivo criar um módulo de sin-

cronização para um sistema global composto por k subsistemas independentes. Para

31

Page 44: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

cada evento σ que seja comum entre pelo menos um par de subsistemas, cria-se um

sinal lógico Sincσ, responsável por veri�car se as transições que são associadas ao

evento σ podem disparar na ocorrência do mesmo, em cada subsistema individual-

mente. Um sinal lógico unitário indica que todos os subsistemas se encontram em

um estado que permite o disparo de ao menos uma transição pela ocorrência do

evento em questão, permitindo a sincronização entre os componentes. Já um sinal

lógico zero retrata que, em pelo menos um dos subsistemas, o estado atual não per-

mite o disparo de nenhuma transição com a ocorrência do evento, impossibilitando

assim o disparo das transições dos demais componentes.

Para a de�nição dos sinais de saída, o algoritmo recebe, para cada subsistema

i = {1, 2, ..., k}, três informações de entrada. A primeira, N∗i , é composta por

elementos da de�nição de RPIC 2.5. São eles: o conjunto de lugares Pi, o conjunto de

transições não temporizadas T0i , a função do peso dos arcos que conectam lugares às

transições Prei, a função dos arcos inibidores Ini, os conjuntos de condições Ci e de

eventos Ei, além da função de rotulação das transições não temporizadas li. Note que

os demais parâmetros da de�nição de RPIC (TDi , Posti, xi, Di, lDi , Ai = AIi ∪ANi ,e lAi) não são necessários para a sincronização, já que tal procedimento leva em

consideração apenas a estrutura da rede relacionada à habilitação das transições.

A segunda entrada do algoritmo consiste no conjunto de transições de sincroni-

zação T Si , composto pelas transições não temporizadas do subsistema i que são sele-

cionadas pelo usuário para dispararem de forma síncrona entre subsistemas. Caso o

usuário de�na T Si = T0i , o algoritmo irá sincronizar todas as transições não tempori-

zadas de i que são associadas a um evento comum entre subsistemas. Já no caso de

uma de�nição dada por T Si = ∅, o algoritmo não irá sincronizar nenhuma transição

de i, independentemente de sua associação com um evento comum. A informação

contida em T Si é, portanto, essencial para a sincronização seletiva de RPICs, com

a aplicação do conceito de eventos virtuais, como �cará evidenciado ao longo deste

capítulo.

Por �m, a terceira entrada do algoritmo, também de�nida pelo usuário, é com-

posta pela função lmi : T Si → m ∈ N, que associa à cada transição de sincronização

contida em T Si um número natural indicativo do grupo em que a mesma será sin-

cronizada. Com tal artifício, torna-se possível implementar uma sincronização por

agrupamento

A partir das entradas descritas, o algoritmo retorna o conjunto de eventos comuns

Ec, o conjunto dos grupos síncronos de cada evento Mσ, além do conjunto das

transições síncronas Tσn , e do sinal global de sincronização Sinc Rn de cada grupo.

Cada passo do algoritmo 1 será detalhado nos exemplos a seguir, para sincroni-

zação completa, seletiva e por agrupamento.

32

Page 45: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Algoritmo 1: Módulo de Sincronização.

Entradas: N∗i = (Pi, T0i , P rei, Ini, Ci, Ei, li), ∀i = {1, 2, ...k};T Si , ∀i = {1, 2, ...k};lmi : T Si → m ∈ N, ∀i = {1, 2, ...k}, sendo k o número de subsistemas

Saída: (Ec) ; (Mσ, ∀σ ∈ Ec) ; (Tσn e Sinc Rn(σ),∀n ∈Mσ)1 Início2 1) Calcule Ec =

⋃i 6=j E

ij, onde Eij = Ei ∩Ej, ∀(i, j) ∈ {1, 2, ..., k}, i 6= j

3 2) para cada σ ∈ Ec :4 2.1) Crie Lσ = {i ∈ {1, 2, ..., k} : (∃t ∈ T Si )[li(t) = (σ, c), c ∈ C]}5 2.2) Se |Lσ| ≤ 1 então: vá para o próximo σ e volte ao passo 2.16 2.3) Crie para cada i ∈ Lσ :7 M i

σ = {m ∈ N : (∃t ∈ T Si )[(lmi(t) = m) ∧ (li(t) = (σ, c), c ∈ C)]}8 2.4) Faça MP

σ =⋃i∈Lσ M

iσ e crie Mσ = ∅. Para cada mp ∈MP

σ :9 se ∃(x, y) ∈ Lσ, x 6= y | mp ∈Mx

σ ∩Myσ então

10 Faça Mσ ←Mσ ∪ {mp}11 2.5) para cada n ∈Mσ :12 2.5.1) De�na Tσn = ∅ e crie:

Lσn = {i ∈ Lσ : (∃t ∈ T Si )[(lmi(t) = n) ∧ (li(t) = (σ, c), c ∈ C)]13 1) A string sub = concatenação dos elementos de Lσn14 2) A string grupo = concatenação de "V"com o grupo n15 3) T Iσ = {(t, i) ∈ T0i ×Lσn : (t /∈ T Si )∧ (li(t) = (σ, c), c ∈ C)}16 2.5.2) De�na a variável de rotulação de eventos Rn(σ) como:17

Rn(σ) =

σsub, se (|Mσ| = 1) ∧ (T Iσ = ∅)σsubV , se (|Mσ| = 1) ∧ (T Iσ 6= ∅)σsubgrupo, se |Mσ| > 1

18 2.5.3) para cada i ∈ Lσn :19 crie uma linha Ladder e conecte em série20 1) Um contato NA associado a σ21 2) para cada t ∈ T Si : (lmi(t) = n) ∧ (li(t) = σ) :22 Faça Tσn ← Tσn ∪ {t} e conecte em série:23 a) Um contato NA associado à condição c | li : t→ c24 b) |I(t)| blocos COMP em série de�nidos por:25 x(p) ≥ Pre(p, t), ∀p ∈ I(t)26 c) Blocos COMP em série, um para cada arco inibidor

conectado a t, de�nidos por:27 x(p) < In(p, t), ∀In(p, t) > 028 e associe a-b-c em paralelo com t anterior

29 3) Uma bobina denominada modi Rn(σ)

30 2.5.4) Crie uma linha Ladder com |Lσn| contatos NA em sérieassociados às bobinas do passo 2.5.3-3.

31 2.5.5) Crie uma bobina �nal de sincronização em σ, denominadaSinc Rn(σ) e a conecte em série aos contatos do passo 2.5.4.

32 Fim

33

Page 46: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Exemplo 3.1 (Sincronização Completa) Considere um sistema S composto por

três subsistemas S1, S2, e S3, conforme representado na �gura 3.3. Suponha que o

comportamento desejado de S seja alcançado por meio da sincronização do evento

”a” entre os três subsistemas, do evento ”b” entre os subsistemas S2 e S3, e do evento

”c” entre S1 e S2. Todos os eventos de sincronização são externos e associados a

borda de subida de sensores. Obtenha o módulo de sincronização que satisfaça tais

condições.

t11 t12

p13

t13

p12

p11

t15t14 t16

p14

t17 t18

p15

p16

t19

t110

p17

t111

ab

a

b ba

a

c

c. [y = 0]

5s

d

p21

t21

p22

t22p24p23

t24t23

p25

t26

p26

t27

p27

t25

t28

c

a

ba

a

b. [x = 1]

b

e

p31

t31

3

p34

3

p33p32

t32 t33

p36p35

t35t34

p37 p38

t36 t37

p39

t38

3

3

c

a

b

a

λ

b

a

b

(a) Subsistema S1 (b) Subsistema S2 (c) Subsistema S3

Figura 3.3: Sincronização completa - exemplo 3.1.

O primeiro passo para a execução do algoritmo consiste na de�nição do usuário

para dois argumentos de entrada: o conjunto de transições de sincronização T Si e

a função de atribuição do grupo de sincronização lmi , para i = {1, 2, 3}. Como o

exemplo aborda a operação síncrona baseada apenas nos eventos, sem especi�car

em quais transições, a sincronização será do tipo completa para os três eventos

a, b e c. O subsistema S1 está envolvido na sincronização dos eventos a e c, e

por isso, o conjunto T S1 deve ser formado por todas as transições de S1 que são

associadas a um desses eventos. De forma análoga, os conjuntos T S2 e T S3 serão

compostos por todas as transições de S2 associadas ao eventos a, b ou c e todas

as transições de S3 relacionadas aos eventos a ou b, respectivamente. Além disso,

como a sincronização não foi especi�cada por grupos para nenhum evento, todas as

transições dos conjuntos T Si devem ser associadas ao grupo 1.

A composição dos conjuntos de entrada pode ser vista na tabela 3.1.

34

Page 47: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Tabela 3.1: Conjuntos de entrada do exemplo 3.1 (Sincronização Completa).

T S1 lm1T S2 lm2

T S3 lm3

t12 1 t21 1 t32 1

t13 1 t22 1 t34 1

t15 1 t23 1 t35 1

t17 1 t24 1 t36 1

t18 1 t25 1 t37 1

t19 1 t26 1 t38 1

t27 1

De�nidas as entradas, o primeiro passo do algoritmo é o cálculo do conjunto de

eventos comuns admissíveis de sincronização Ec. Para tal, é realizada a operação

de intersecção do conjunto de eventos para cada par de subsistemas, seguida da

operação de união do resultado de todos os pares. Com isso, o conjunto Ec será

composto apenas por eventos presentes em no mínimo dois subsistemas, eliminando-

se os eventos particulares de cada um. No caso do exemplo 3.1, tem-se:

• Exemplo 3.1 - Passo 1) E1 = {a, b, c, d}, E2 = {a, b, c, e}, E3 = {a, b, c}

E12 = E1 ∩ E2 = {a, b, c}

E13 = E1 ∩ E3 = {a, b, c}

E23 = E2 ∩ E3 = {a, b, c}

Ec = E12 ∪ E13 ∪ E23

Ec = {a, b, c}

A etapa seguinte consiste em uma rotina de repetição para cada evento admissível

de sincronização de Ec. Dentro dessa estrutura, os passos 2.1, 2.2, 2.3 e 2.4 possuem

o objetivo de analisar os dados de entrada, identi�cando possíveis incoerências,

enquanto o passo 2.5 inicia os processos de identi�cação do tipo de sincronização, e

de construção do módulo de sincronização.

No passo 2.1, é criado o conjunto dos subsistemas que sincronizam o evento atual

Lσ. Esse conjunto é formado pelo índice i de todos os subsistemas que possuem pelo

menos uma transição de sincronização (t ∈ T Si ) rotulada com o evento atual σ.

35

Page 48: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

• Exemplo 3.1 - Passo 2.1) Observando-se a tabela 3.1 de transições de

sincronização, os conjuntos Lσ para o exemplo 3.1 estão retratados na tabela

3.2.

Tabela 3.2: Passo 2.1 do exemplo 3.1 (Sincronização Completa).

La Lb Lc1 2 1

2 3 2

3

A tabela 3.2 indica que o evento a será sincronizado entre S1, S2 e S3, o evento

b entre S2 e S3 e o evento c entre S1 e S2, conforme especi�cado no enunciado do

exemplo 3.1.

A seguir, o passo 2.2 veri�ca se para algum evento de Ec há menos de dois

subsistemas com transições de sincronização. Caso positivo, a sincronização de tal

evento não será possível, passando o cálculo para o próximo evento de Ec e voltando

ao passo 2.1. Como no exemplo 3.1 tem-se |Lσ| ≥ 2 para os três eventos de Ec, esse

passo não será executado.

Posteriormente, no passo 2.3 são detectados, no conjunto M iσ, todos os grupos

nos quais o evento atual σ será sincronizado em cada um dos subsistemas. Para tal,

são identi�cadas todas as transições pertencentes à T Si que disparam pelo evento

atual σ, em cada subsistema i, inserindo-se o grupo atribuído à cada transição ao

conjunto M iσ.

• Exemplo 3.1 - Passo 2.3) Como no exemplo 3.1 todas as transições de

sincronização para todos os eventos estão associadas ao grupo 1, tem-se:

M1a = M2

a = M3a = {1}

M2b = M3

b = {1}

M1c = M2

c = {1}

Concluído o passo 2.3, na etapa 2.4 é realizada a operação de união dos conjuntos

de grupos obtidos em 2.3 para o mesmo evento σ, de�nindo o conjunto MPσ , que

representa os grupos de sincronização possíveis para o evento em questão. A seguir,

cada elemento do conjunto de grupos possíveisMPσ será veri�cado a �m de identi�car

se é admissível para sincronização. Se o grupo em questão estiver presente em pelo

menos dois subsistemas diferentes, a sincronização do evento atual σ por esse grupo

será admissível e o referido grupo é adicionado ao conjunto de grupos admissíveis

36

Page 49: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

para o evento σ, Mσ. Caso algum grupo, por incoerência dos dados de entrada T Sie lmi , seja atribuído à transições de sincronização de apenas um subsistema, será

ignorado pelo algoritmo.

• Exemplo 3.1 - Passo 2.4) Seguindo os dados calculados no passo 2.3 para

o exemplo 3.1, tem-se:

MPa = M1

a ∪M2a ∪M3

a = {1}

MPb = M2

b ∪M3b = {1}

MPc = M1

c ∪M2c = {1}

Como o grupo 1 ∈MPσ está presente em ao menos dois subsistemas para cada

evento σ ∈ {a, b, c}, tem-se os seguintes conjuntos de grupos admissíveis:

Ma = {1}

Mb = {1}

Mc = {1}

Finalizados os passos de análise dos dados de entrada, o algoritmo segue para

as etapas de sincronização. O passo 2.5 inicia um loop em cada grupo n admissível

para o evento σ, ou seja, cada elemento do conjunto Mσ.

Em 2.5.1 é de�nido o conjunto Lσn composto pelos índices dos subsistemas que

sincronizam o evento atual σ através do grupo atual n. Em sequencia, são realizadas

três tarefas. Na tarefa 1, é criada a string sub, formada pela concatenação dos

elementos do conjunto recém criado Lσn . A tarefa 2 consiste na criação de outra

string denomindada grupo, de�nida pela concatenação da letra ”V ”, indicativa de

evento virtual, com o índice n do grupo atual. Já a tarefa 3 consiste em uma

etapa para identi�cação do tipo de sincronização, entre completa e seletiva, através

da criação do conjunto T Iσ . Tal conjunto é formado por todas as transições dos

subsistemas envolvidos na operação síncrona de σ que disparam pela ocorrência

desse evento, mas não foram selecionadas para sincronização pelo usuário, ou seja,

não pertencem aos conjuntos T Si de seus respectivos subsistemas.

Após o passo descrito acima, a etapa 2.5.2 de�ne a função Rn de rotulação para

o grupo atual n do evento em questão σ, identi�cando o tipo de sincronização.

Se houver apenas um grupo admissível para σ (|Mσ| = 1) e não existir nenhuma

transição disparada por tal evento de modo independente em nenhum subsistema

(T Iσ = ∅), a sincronização será completa e a função de rotulação adicionará ao

evento apenas a string sub, identi�cando quais são os subsistemas envolvidos na

sincronização (Rn(σ) = σsub).

37

Page 50: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Por outro lado, caso haja apenas um grupo admissível (|Mσ| = 1), mas exista al-

guma transição associada à σ operando de forma independente em algum subsistema

(T Iσ 6= ∅), a sincronização será seletiva e σ será transformado em um evento virtual

com a função de rotulação atribuindo ao mesmo, além da string sub, o subíndice

”V ” indicando o caráter virtual (Rn(σ) = σsubV ).

Por �m, caso seja veri�cado mais de um grupo admissível para o evento atual

(|Mσ|>1), a sincronização será por agrupamento, com a função de rotulação adici-

onando ao evento as strings sub e grupo de�nidas na etapa 2.5.1, sendo a última

indicativa de dois fatores: a criação de um evento virtual e o grupo pelo qual haverá

a sincronização (Rn(σ) = σsubgrupo).

• Exemplo 3.1 - Rotulação de eventos) Como no exemplo 3.1 há apenas um

grupo admissível por evento e não há transições independentes que disparam

por cada evento sincronizado, a função de rotulação será da forma Rn(σ) =

σsub. A tabela 3.3 resume a rotulação dos eventos de sincronização para o

exemplo 3.1, expondo os resultados dos passos 2.5.1 e 2.5.2.

Tabela 3.3: Rotulação dos eventos do exemplo 3.1 (Sincronização Completa).

Passo 1 Ec {a, b, c}Passo 2 ∀σ ∈ Ec a b c

Passo 2.1 Lσ {1, 2, 3} {2, 3} {1, 2}Passo 2.4 Mσ {1} {1} {1}Passo 2.5 ∀n ∈Mσ 1 1 1

Passo 2.5.1

Lσn {1, 2, 3} {2, 3} {1, 2}sub "123" "23" "12"

grupo "V1" "V1" "V1"

T Iσ ∅ ∅ ∅Passo 2.5.2 Rn(σ) a123 b23 c12

De�nida a etapa de rotulação dos eventos, o algoritmo inicia, no passo 2.5.3,

a construção do módulo de sincronização em Ladder. Para cada subsistema i que

sincroniza o evento atual σ pelo grupo atual n, é criada uma nova linha no diagrama

Ladder, cujos componentes são inseridos através de três etapas. Primeiramente, no

item 1, cria-se um contato NA associado ao evento em questão σ.

No item 2, mais uma estrutura de repetição é necessária, de modo a identi�car

todas as transições do subsistema atual i que serão sincronizadas com a ocorrência

de σ pelo grupo n. Para cada uma dessas transições, são inseridos em série: um

contato NA com sua condição c associada, sendo omitido se c = 1; tantos blocos

38

Page 51: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

COMP quanto for o número de seus lugares de entrada, cada um com a condição

de energização regida pela de�nição de habilitação 2.3; e um bloco COMP para

cada arco inibidor conectado, com a condição de energização associada à de�nição

de habilitação com arcos inibidores 2.4. Conectado o conjunto de elementos relativo

à primeira transição do loop, os demais conjuntos relacionados às outras transições

devem ser ligados em paralelo ao primeiro, de modo a energizar a linha do diagrama

Ladder caso qualquer uma das transições do subsistema i �que habilitada.

O terceiro e último elemento a ser inserido em série com os supracitados na linha

criada no diagrama Ladder, consiste em uma bobina simples associada à variável

de�nida pela string ”modi & Rn(σ)”. Desse modo, tal bobina se caracteriza por

identi�car se no subsistema i alguma transição que sincronize σ pelo grupo n pode

disparar.

Finalizado o passo 2.5.3, os sinais de sincronização de todos os subsistemas de-

vem ser associados de modo a possibilitar a criação de um sinal de sincronização

global. Cria-se então, no passo 2.5.4, uma nova linha Ladder com contatos NA em

série energizados pelas bobinas criadas no passo 2.5.3. E, por �m, no passo 2.5.5

é criada uma bobina de sincronização global, em série com os contatos de 2.5.4,

associada a uma variável com a string ”Sinc” & Rn(σ). Com isso, a bobina global

será energizada apenas quando todos os subsistemas envolvidos na sincronização

indicarem a possibilidade do disparo de ao menos uma transição pelo grupo n do

evento σ.

A �gura 3.4 representa a forma sistemática de construção do módulo de sincro-

nização em Ladder de�nida pelo algoritmo 1. O passo 2.5.3 é retratado pela linha

tracejada externa, englobando para cada subsistema i ∈ Lσn uma linha Ladder com-

posta pelos componentes descritos nos itens 1, 2(2a, 2b e 2c) e 3. Ao �nal do módulo

estão representados os passos 2.5.4, com os contatos NA associados às bobinas de

cada subsistema, e 2.5.5, com a bobina �nal. Como descrito no algoritmo 1, o pro-

cedimento apresentado na �gura 3.4 deve ser aplicado à cada grupo admissível de

cada evento de sincronização.

Diante da possibilidade de diferentes tipos de sincronização por eventos externos,

o número total de linhas do módulo de sincronização em Ladder, Nsinc, pode ser

determinado em função dos grupos admissíveis Mσ de cada evento de sincronização

σ. Como cada subsistema que sincroniza σ por n adiciona uma linha ao Ladder

e, ao �nal, mais uma linha é adicionada para a bobina global, pode-se utilizar os

conjuntos Lσn criados no passo 2.5.1 para a seguinte equação:

Nsinc =∑σ∈Ec

∑n∈Mσ

(|Lσn |+ 1) (3.1)

39

Page 52: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

σ

Item 2

c ∣ : t → cliCOMP

1

COMP

2

COMP

|I(t)|

(σ)modi Rn

COMP

1

COMP

2

COMP

n(In(p, t) > 0)

x(p) ≥ Pre(p, t), ∀p ∈ I(t)

contatos COMP em série|I(t)|

x(p) < In(p, t), ∀ In(p, t) > 0

COMP

1

COMP

2

COMP

|I(t)|

COMP

1

COMP

2

COMP

n(In(p, t) > 0)

Diagrama Ladder - Módulo de Sincronização

Item 1Item 3

Item 2.a Item 2.b Item 2.c

∀t ∈ ∣ ( : t → n) ∧ ( : t → σ)TS

ilmi

li

x(p) ≥ Pre(p, t), ∀p ∈ I(t)

contatos COMP em série|I(t)|c ∣ : t → cli

contatos COMP emsérie

n(In(p, t) > 0)

(nº de arcos inibidores conectados a )t

x(p) < In(p, t), ∀ In(p, t) > 0

Item 2.a Item 2.b Item 2.c

σ

Item 2

c ∣ : t → cliCOMP

1

COMP

2

COMP

|I(t)|

(σ)modi Rn

COMP

1

COMP

2

COMP

n(In(p, t) > 0)

x(p) ≥ Pre(p, t), ∀p ∈ I(t)

contatos COMP em série|I(t)|

x(p) < In(p, t), ∀ In(p, t) > 0

contatos COMP emsérie

n(In(p, t) > 0)

(nº de arcos inibidores conectados a )t

COMP

1

COMP

2

COMP

|I(t)|

COMP

1

COMP

2

COMP

n(In(p, t) > 0)

Item 3Item 2.a Item 2.b Item 2.c

∀t ∈ ∣ ( : t → n) ∧ ( : t → σ)TS

ilmi

li

x(p) ≥ Pre(p, t), ∀p ∈ I(t)

contatos COMP em série|I(t)|c ∣ : t → cli

contatos COMP emsérie

n(In(p, t) > 0)

(nº de arcos inibidores conectados a )t

x(p) < In(p, t), ∀ In(p, t) > 0

Item 2.a Item 2.b Item 2.c

Item 1

 contatos NA em série∣∣Lσn∣∣

Sinc (σ)Rn

∀ i ∈ Lσn

Passo 2.5.3

Passo 2.5.4(σ), ∀ i ∈modi Rn L

σn

Passo 2.5.5

(Repetir o procedimento para cada grupo admissível de cada evento de sincronização )  

n σ

∀n ∈ ;   ∀σ ∈Mσ

Ec

contatos COMP emsérie

n(In(p, t) > 0)

(nº de arcos inibidores conectados a )t

Figura 3.4: Metodologia para construção do módulo de sincronização em Ladder.

40

Page 53: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

O processo de construção do Ladder sincronizante proposto pelo algoritmo 1 e

ilustrado na �gura 3.4 pode ser resumido em quatro estruturas de repetição prin-

cipais, como retratado na �gura 3.5. A varredura se inicia em função dos eventos

comuns σ entre subsistemas. A seguir, cada grupo admissível n em que tal evento

será sincronizado é identi�cado. No terceiro loop, analisa-se cada subsistema i que

sincroniza o respectivo evento por seus grupos admissíveis, etapa que de�ne o nú-

mero de linhas do diagrama Ladder (equação 3.1). Por �m, são identi�cadas todas

as transições síncronas t do subsistema i para o grupo n do evento σ, já que suas

condições de habilitação devem ser adicionadas no diagrama Ladder.

Figura 3.5: Resumo da lógica de varredura para construção do módulo de sincroni-zação.

41

Page 54: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

• Exemplo 3.1 - Construção do módulo de sincronização

Após a identi�cação das funções de rotulação na tabela 3.3, o diagrama Ladder

sincronizante do exemplo 3.1 é construído como indicado na tabela 3.4.

O processo começa para o evento comum a, que apresenta um único grupo

admissível. Nesse caso, a função de rotulação é R1(a) = a123, indicando uma

sincronização completa de a entre os subsistemas 1, 2 e 3. Logo, são criadas

três novas linhas, uma para cada subsistema. Na primeira, é inserido o contato

NA com o evento a, em série com as condições de habilitação das transições

síncronas do subsistema S1 (t12, t13, t15 e t17), e em série com uma bobina

mod1 a123. De modo análogo, as linhas 2 e 3 são compostas pelo contato

NA, as condições de habilitação das transições síncronas de S2 e S3, e as

bobinas mod2 a123 e mod3 123, respectivamente. Concluídas as linhas para os

subsistemas, cria-se a quarta linha com contatos NA associados às bobinas das

linhas 1, 2 e 3 e a bobina global Sinc a123. O mesmo raciocínio é aplicado aos

eventos b e c, concluindo a construção do módulo. O número total de linhas

do módulo será, de acordo com a equação 3.1:

Nsinc = (|La1 |+ 1) + (|Lb1|+ 1) + (|Lc1|+ 1) = (3 + 1) + (2 + 1) + (2 + 1) = 10

Tabela 3.4: Construção do módulo de sincronização do exemplo 3.1 (SincronizaçãoCompleta).

O módulo de sincronização em Ladder do exemplo 3.1 pode ser visto na �gura

3.6.

42

Page 55: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

↑a mod1 (↑a)123

L1 COMPx(p11) >= 1

t12 - mod 1 (↑a)

COMPx(p13) >= 1

t13 - mod 1 (↑a)

COMPx(p12) >= 1

t15 - mod 1 (↑a)

COMPx(p14) >= 1

t17 - mod 1 (↑a)↑a mod2 (↑a)123

L2 COMPx(p22) >= 1

t22 - mod 2 (↑a)

COMP COMPx(p24) >= 1 x(p23) < 1

t23 - mod 2 (↑a) t23 - mod 2 (↑a)

COMPx(p25) >= 1

t26 - mod 2 (↑a)↑a mod3 (↑a)123

L3 COMP COMPx(p32) >= 1 x(p33) < 3

t32 - mod 3 (↑a) t32 - mod 3 (↑a)

COMPx(p37) >= 1

t36 - mod 3 (↑a)

COMPx(p38) >= 1

t37 - mod 3 (↑a)

mod1 (↑a)123 mod2 (↑a)123 mod3 (↑a)123 SINC (↑a)123

L4

↑b mod2 (↑b)23

L5 COMP COMPx(p23) >= 1 x(p24) >= 1

t24 - mod 2 (↑b) t24 - mod 2 (↑b)x=1

COMPx(p25) >= 1

t25 - mod 2 (↑b)

COMPx(p26) >= 1

t27 - mod 2 (↑b)↑b mod3 (↑b)23

L6 COMPx(p35) >= 1

t34 - mod 3 (↑b)

COMP COMPx(p33) >= 3 x(p36) >= 1

t35 - mod 3 (↑b) t35 - mod 3 (↑b)

COMPx(p39) >= 1

t38 - mod 3 (↑b)

mod2 (↑b)23 mod3 (↑b)23 SINC (↑b)23

L7

↑c y=0 mod1 (↑c)12

L8 COMPx(p14) >= 1

t18 - mod 1 (↑c)

COMPx(p15) >= 1

t19 - mod 1 (↑c)↑c mod2 (↑c)12

L9 COMPx(p21) >= 1

t21 - mod 2 (↑c)

mod1 (↑c)12 mod2 (↑c)12 SINC (↑c)12

L10

Figura 3.6: Módulo de sincronização do exemplo 3.1 (Sincronização Completa).

43

Page 56: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

O módulo de sincronização exposto na �gura 3.6 foi obtido através da imple-

mentação do algoritmo 1 na linguagem Visual Basic for Applications (VBA) da

Microsoft. Por conveniência da interface do programa utilizado, a representação

grá�ca das bobinas foi adotada por contatos hachurados. O código desenvolvido em

VBA para sincronização de sistemas a eventos discretos, incluindo a representação

grá�ca em Ladder, está exposto no Apêndice A.

Exemplo 3.2 (Sincronização Seletiva) Considere o mesmo sistema do exemplo

3.1, composto por S1, S2 e S2. Suponha agora que o objetivo global seja alcançado

por meio da sincronização dos eventos a, b e c de acordo com a representação grá�ca

da �gura 3.7, na qual as marcações arredondadas identi�cam transições síncronas

em a, as marcações retangulares destacam transições síncronas em b, e as marcações

hexagonais retratam as transições de sincronização em c. Considerando as transições

síncronas selecionadas, obtenha o módulo de sincronização.

t11 t12

p13

t13

p12

p11

t15t14 t16

p14

t17 t18

p15

p16

t19

t110

p17

t111

ab

a

b ba

a

c

c. [y = 0]

5s

d

p21

t21

p22

t22p24p23

t24t23

p25

t26

p26

t27

p27

t25

t28

c

a

ba

a

b. [x = 1]

b

e

p31

t31

3

p34

3

p33p32

t32 t33

p36p35

t35t34

p37 p38

t36 t37

p39

t38

3

3

c

a

b

a

λ

b

a

b

Figura 3.7: Sincronização seletiva - exemplo 3.2.

Os conjuntos de entrada T Si e lmi para cada subsistema do exemplo 3.2 são

descritos pela tabela 3.5. Assim como no exemplo 3.1, a sincronização de cada

evento externo será realizada através de um único grupo, caracterizando lmi = {1}para todos os subsistemas i.

44

Page 57: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Tabela 3.5: Conjuntos de entrada do exemplo 3.2 (Sincronização Seletiva).

T S1 lm1T S2 lm2

T S3 lm3

t12 1 t21 1 t32 1

t17 1 t22 1 t34 1

t18 1 t23 1 t35 1

t24 1 t36 1

t25 1 t37 1

t26 1

Os resultados da aplicação dos passos 1, 2.1, 2.3 e 2.4 ao exemplo 3.2 são exibidos

a seguir.

• Exemplo 3.2 - Passo 1) Como os conjuntos de eventos E1, E2 e E3 não

foram alterados, tem-se o mesmo resultado do exemplo 3.1.

Ec = {a, b, c}

• Exemplo 3.2 - Passo 2.1) De acordo com as transições selecionadas para

sincronização na tabela 3.5, nota-se uma operação síncrona de a em S1, S2 e

S3; de b em S2 e S3; e de c em S1 e S2. Logo, os conjuntos Lσ são:

Tabela 3.6: Passo 2.1 do exemplo 3.2 (Sincronização Seletiva).

La Lb Lc1 2 1

2 3 2

3

• Exemplo 3.2 - Passo 2.3) Assim como o exemplo 3.1, todas as transições

selecionadas para sincronização estão associadas ao grupo 1. Logo:

M1a = M2

a = M3a = {1}

M2b = M3

b = {1}

M1c = M2

c = {1}

45

Page 58: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

• Exemplo 3.2 - Passo 2.4) Como cada evento apresenta apenas um grupo

de sincronização, sendo esse associado a mais de um subsistema, tem-se:

MPa = Ma = {1}

MPb = Mb = {1}

MPc = Mc = {1}

Executados os passos de veri�cação dos dados, iniciam-se os processos de

rotulação de eventos e da construção do diagrama Ladder sincronizante.

• Exemplo 3.2 - Rotulação de eventos) Ao contrário do exemplo 3.1, o

passo 2.5.1 nesse caso identi�ca transições de cada evento síncrono que não

foram selecionadas para a sincronização. Com isso, o passo 2.5.2 cria os eventos

virtuais σv, característicos de uma sincronização seletiva, atribuindo-os a todas

as transições selecionadas, enquanto as não selecionadas (T Iσ ) permanecem

associadas ao evento original σ.

Tabela 3.7: Rotulação dos eventos do exemplo 3.2 (Sincronização Seletiva).

Passo 1 Ec {a, b, c}Passo 2 ∀σ ∈ Ec a b c

Passo 2.1 Lσ {1, 2, 3} {2, 3} {1, 2}Passo 2.4 Mσ {1} {1} {1}Passo 2.5 ∀n ∈Mσ 1 1 1

Passo 2.5.1

Lσn {1, 2, 3} {2, 3} {1, 2}sub "123" "23" "12"

grupo "V1" "V1" "V1"

T Iσ {t13, t15} {t27, t38} {t19}Passo 2.5.2 Rn(σ) a123V b23V c12V

• Exemplo 3.2 - Construção do módulo de sincronização

Após a identi�cação das funções de rotulação na tabela 3.7, o processo de

construção do módulo de sincronização em Ladder é descrito pela tabela 3.8,

com o número total de linhas de�nido pela equação 3.1:

Nsinc = (|La1|+ 1) + (|Lb1|+ 1) + (|Lc1|+ 1) = (3 + 1) + (2 + 1) + (2 + 1) = 10

46

Page 59: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Tabela 3.8: Construção do módulo de sincronização do exemplo 3.2 (SincronizaçãoSeletiva).

O código desenvolvido em VBA, Apêndice A, foi novamente utilizado, inserindo-

se os dados de entrada da tabela 3.5. O módulo de sincronização em Ladder resul-

tante para o exemplo 3.2 pode ser observado na �gura 3.8.

Nota-se uma estrutura bastante semelhante em relação ao diagrama Ladder do

exemplo 3.1, no qual foi realizada uma sincronização completa. Tal similaridade

decorre da con�guração de sincronização do exemplo 3.2. Nesse caso, as transições

foram selecionadas de forma a manter a sincronização do evento a entre os subsis-

temas S1, S2, e S3, do evento b entre S2 e S3 e do evento c entre S1 e S2, sendo as

três sincronizações regidas por apenas um grupo. Com isso, o passo 2.5.1 proporci-

onou os mesmos resultados do exemplo anterior para os conjuntos Lσn - de�nindo

La1 = {1, 2, 3}, Lb1 = {2, 3} e Lc1 = {1, 2} - mantendo assim não apenas o número

total de linhas do diagrama, como o signi�cado de cada linha, do ponto de vista dos

sinais de habilitação dos subsistemas para cada evento.

A diferença entre os dois diagramas Ladder é observada, então, apenas nos ramos

em paralelo indicativos das condições de habilitação de cada transição de sincroni-

zação. Enquanto na sincronização completa do exemplo 3.1 todas as transições são

retratadas no diagrama, na sincronização seletiva do exemplo 3.2, os ramos relativos

às transições dos conjuntos T Ia = {t13, t15}, T Ib = {t27, t38} e T Ic = {t19} são excluí-

dos. Com isso, a linha 1 passa de 4 à 2 ramos paralelos (t12, t17), as linhas 5 e 6

passam de 3 à 2 ramos paralelos, (t24, t25) e (t34, t35) respectivamente, e a linha 8

passa de 2 ramos paralelos à apenas 1 (t18).

47

Page 60: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

↑a mod1 (↑a)123V

L1 COMPx(p11) >= 1

t12 - mod 1 (↑a)

COMPx(p14) >= 1

t17 - mod 1 (↑a)↑a mod2 (↑a)123

VL2 COMP

x(p22) >= 1t22 - mod 2 (↑a)

COMP COMPx(p24) >= 1 x(p23) < 1

t23 - mod 2 (↑a) t23 - mod 2 (↑a)

COMPx(p25) >= 1

t26 - mod 2 (↑a)↑a mod3 (↑a)123

VL3 COMP COMP

x(p32) >= 1 x(p33) < 3t32 - mod 3 (↑a) t32 - mod 3 (↑a)

COMPx(p37) >= 1

t36 - mod 3 (↑a)

COMPx(p38) >= 1

t37 - mod 3 (↑a)

mod1 (↑a)123V mod2 (↑a)123

V mod3 (↑a)123V SINC (↑a)123

VL4

↑b mod2 (↑b)23V

L5 COMP COMPx(p23) >= 1 x(p24) >= 1

t24 - mod 2 (↑b) t24 - mod 2 (↑b)x=1

COMPx(p25) >= 1

t25 - mod 2 (↑b)↑b mod3 (↑b)23

VL6 COMP

x(p35) >= 1t34 - mod 3 (↑b)

COMP COMPx(p33) >= 3 x(p36) >= 1

t35 - mod 3 (↑b) t35 - mod 3 (↑b)

mod2 (↑b)23V mod3 (↑b)23

V SINC (↑b)23V

L7

↑c y=0 mod1 (↑c)12V

L8 COMPx(p14) >= 1

t18 - mod 1 (↑c)↑c mod2 (↑c)12

VL9 COMP

x(p21) >= 1t21 - mod 2 (↑c)

mod1 (↑c)12V mod2 (↑c)12

V SINC (↑c)12V

L10

Figura 3.8: Módulo de sincronização do exemplo 3.2 (Sincronização Seletiva).

48

Page 61: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Exemplo 3.3 (Sincronização por Agrupamento) Considerando novamente o

sistema do exemplo 3.1, suponha dessa vez que o comportamento desejado global seja

obtido através de uma sincronização por diferentes grupos de transições. Os eventos

a e b devem ser sincronizados, respectivamente, por 3 e por 2 grupos de transições,

de acordo com a representação grá�ca da �gura 3.9. Nessa representação, as marca-

ções arredondadas identi�cam transições síncronas em a, as marcações retangulares

destacam transições síncronas em b, e as marcações hexagonais retratam as transi-

ções de sincronização em c. Além disso, as marcações de cor vermelha ilustram o

grupo 1, as de cor azul o grupo 2, e as de cor verde o grupo 3. Para essas condições,

obtenha o módulo de sincronização.

t11 t12

p13

t13

p12

p11

t15t14 t16

p14

t17 t18

p15

p16

t19

t110

p17

t111

ab

a

b ba

a

c

c. [y = 0]

5s

d

p21

t21

p22

t22p24p23

t24t23

p25

t26

p26

t27

p27

t25

t28

c

a

ba

a

b. [x = 1]

b

e

p31

t31

3

p34

3

p33p32

t32 t33

p36p35

t35t34

p37 p38

t36 t37

p39

t38

3

3

c

a

b

a

λ

b

a

b

Figura 3.9: Sincronização de eventos por agrupamento.

Conforme especi�cado na �gura 3.9, o evento a deve ser sincronizado por três

grupos de transições. Um grupo, representado por marcações arredondadas em

vermelho, é formado pelas transições t12, t22, t26 e t32. Um outro grupo, indicado

por marcações arredondadas em azul, é composto pelas transições t13, t15 e t36.

E o grupo restante, retratado por marcações arredondadas em verde, engloba as

transições t17, t23 e t37. Por convenção, os grupos descritos acima serão identi�cados

como 1, 2 e 3, respectivamente.

De forma análoga, a sincronização em b será realizada em dois grupos. O grupo

1, retratado por marcações retangulares em vermelho, é identi�cado pelas transições

49

Page 62: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

t11 e t24. Já o grupo 2, representado por marcações retangulares em azul, compõe-se

das transições t25, t34 e t35.

A atribuição dos grupos à cada transição pode ser vista nos dados de entrada

ilustrados na tabela 3.9.

Tabela 3.9: Conjuntos de entrada do exemplo 3.3 (Sincronização por Agrupamento).

T S1 lm1T S2 lm2

T S3 lm3

t11 1 t22 1 t32 1

t12 1 t23 3 t34 2

t13 2 t24 1 t35 2

t15 2 t25 2 t36 2

t17 3 t26 1 t37 3

Com as entradas de�nidas, os passos 1, 2.1, 2.3 e 2.4 podem ser executados.

• Exemplo 3.3 - Passo 1) Nesse caso, tem-se o mesmo conjunto de eventos

comuns dos exemplos anteriores:

Ec = {a, b, c}

• Exemplo 3.3 - Passo 2.1) As especi�cações de sincronização da �gura 3.9

revelam que os três subsistemas, S1, S2 e S3, possuem transições síncronas

para os eventos a e b. Já em relação ao evento c, nenhum subsistema apresenta

transições de sincronização. Logo, os conjuntos Lσ são:

Tabela 3.10: Passo 2.1 do exemplo 3.3 (Sincronização por Agrupamento).

La Lb Lc1 1 -

2 2 -

3 3 -

Como o conjunto Lc é vazio, o passo 2.2 não permitirá a execução dos demais

passos para o evento c.

• Exemplo 3.3 - Passo 2.3) Analisando a �gura 3.9 e os dados de entrada

da tabela 3.9, nota-se que o subsistema S1 apresenta transições síncronas em

a para os grupos {1, 2, 3} e transições síncronas em b apenas para o grupo 1.

Já o subsistema S2, possui transições de sincronização em a nos grupos {1,3}

e em b nos grupos {1, 2}. Por �m, S3 apresenta transições síncronas em a nos

grupos {1,2,3} e em b apenas no grupo 2. Logo, tem-se os seguintes conjuntos:

50

Page 63: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

M1a = {1, 2, 3} M2

a = {1, 3} M3a = {1, 2, 3}

M1b = {1} M2

b = {1, 2} M3b = {2}

• Exemplo 3.3 - Passo 2.4) Com os dados calculados no passo 2.3, os con-

juntos de grupos possíveis de sincronização em a e em b são:

MPa = M1

a ∪M2a ∪M3

a = {1, 2, 3} ∪ {1, 3} ∪ {1, 2, 3} = {1, 2, 3}

MPb = M1

b ∪M2b ∪M3

b = {1} ∪ {1, 2} ∪ {2} = {1, 2}

O algoritmo testa então validade de cada grupo possível de MPa e MP

b . Se o

grupo está presente em ao menos dois subsistemas diferentes, a sincronização

pode ser realizada, adicionando-se tal grupo ao conjunto de grupos admissíveis

para o evento. Caso negativo, o grupo não é admitido. Como todos os grupos

de MPa e MP

b satisfazem a condição que possibilita uma sincronização, os

conjuntos de grupos admissíveis Ma e Mb são:

Ma = {1, 2, 3}

Mb = {1, 2}

• Exemplo 3.3 - Rotulação de eventos) As funções de rotulação para cada

grupo admissível dos eventos a e b estão retratadas na tabela 3.11.

Tabela 3.11: Rotulação dos eventos do exemplo 3.3 (Sincronização por Agrupa-mento).

Passo 1 Ec {a, b, c}Passo 2 ∀σ ∈ Ec a b

Passo 2.1 Lσ {1, 2, 3} {1, 2, 3}Passo 2.4 Mσ {1, 2, 3} {1, 2}Passo 2.5 ∀n ∈Mσ 1 2 3 1 2

Passo 2.5.1

Lσn {1, 2, 3} {1, 3} {1, 2, 3} {1, 2} {2, 3}sub "123" "13" "123" "12" "23"

grupo "V1" "V2" "V3" "V1" "V2"

T Iσ ∅ {t14, t16, t27, t38}Passo 2.5.2 Rn(σ) a123V 1 a13V 2 a123V 3 b12V 1 b23V 2

51

Page 64: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

• Exemplo 3.3 - Construção do módulo de sincronização

De�nidas as cinco funções de rotulação na tabela 3.11, o procedimento de

construção módulo de sincronização em Ladder do exemplo 3.3 está ilustrado

na tabela 3.12. Nesse caso, o número total de linhas do diagrama será, de

acordo com a equação 3.1:

Nsinc = (|La1|+ 1) + (|La2 |+ 1) + (|La3 |+ 1) + (|Lb1|+ 1) + (|Lb2|+ 1)

Nsinc = (3 + 1) + (2 + 1) + (3 + 1) + (2 + 1) + (2 + 1) = 17

Tabela 3.12: Construção do módulo de sincronização do exemplo 3.3 (Sincronizaçãopor Agrupamento).

Os dados de entrada da tabela 3.9 foram então inseridos ao código do Apêndice

A, que retornou o módulo de sincronização em Ladder da �gura 3.10.

Vale ressaltar que uma sincronização por agrupamento de um evento σ permite

atribuir mais de uma operação síncrona entre os mesmos subsistemas. Como ilus-

tração desse fato, no exemplo 3.3 o evento a é sincronizado entre S1, S2 e S3 em 2

grupos de transições diferentes, gerando duas bobinas globais: Sinc a123V 1 e Sinc a123V 3 .

52

Page 65: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

↑a mod1 (↑a)123V1

L1 COMPx(p11) >= 1

t12 - mod 1 (↑a)↑a mod2 (↑a)123

V1L2 COMP

x(p22) >= 1t22 - mod 2 (↑a)

COMPx(p25) >= 1

t26 - mod 2 (↑a)↑a mod3 (↑a)123

V1L3 COMP COMP

x(p32) >= 1 x(p33) < 3t32 - mod 3 (↑a) t32 - mod 3 (↑a)

mod1 (↑a)123V1 mod2 (↑a)123

V1 mod3 (↑a)123V1 SINC (↑a)123

V1L4

↑a mod1 (↑a)13V2

L5 COMPx(p13) >= 1

t13 - mod 1 (↑a)

COMPx(p12) >= 1

t15 - mod 1 (↑a)↑a mod3 (↑a)13

V2L6 COMP

x(p37) >= 1t36 - mod 3 (↑a)

mod1 (↑a)13V2 mod3 (↑a)13

V2 SINC (↑a)13V2

L7

↑a mod1 (↑a)123V3

L8 COMPx(p14) >= 1

t17 - mod 1 (↑a)↑a mod2 (↑a)123

V3L9 COMP COMP

x(p24) >= 1 x(p23) < 1t23 - mod 2 (↑a) t23 - mod 2 (↑a)

↑a mod3 (↑a)123V3

L10 COMPx(p38) >= 1

t37 - mod 3 (↑a)

mod1 (↑a)123V3 mod2 (↑a)123

V3 mod3 (↑a)123V3 SINC (↑a)123

V3L11

↑b mod1 (↑b)12V1

L12 COMPx(p11) >= 1

t11 - mod 1 (↑b)↑b mod2 (↑b)12

V1L13 COMP COMP

x(p23) >= 1 x(p24) >= 1t24 - mod 2 (↑b) t24 - mod 2 (↑b)

mod1 (↑b)12V1 mod2 (↑b)12

V1 SINC (↑b)12V1

L14

↑b x=1 mod2 (↑b)23V2

L15 COMPx(p25) >= 1

t25 - mod 2 (↑b)↑b mod3 (↑b)23

V2L16 COMP

x(p35) >= 1t34 - mod 3 (↑b)

COMP COMPx(p33) >= 3 x(p36) >= 1

t35 - mod 3 (↑b) t35 - mod 3 (↑b)

mod2 (↑b)23V2 mod3 (↑b)23

V2 SINC (↑b)23V2

L17

Figura 3.10: Módulo de sincronização do exemplo 3.3 (Sincronização por Agrupa-mento).

53

Page 66: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

3.2.2 Alteração do módulo das condições de disparo

Após a construção do módulo de sincronização em Ladder, a segunda etapa neces-

sária para garantir a operação síncrona entre os subsistemas consiste na alteração

do módulo das condições de disparo das transições. Como descrito na seção 3.1 e

ilustrado na �gura 3.2, cada subsistema deve receber, em seu módulo de condição

de disparo, as informações das bobinas de sincronização globais Sinc Rn(σ), ge-

radas pelo módulo de sincronização. A partir dessa informação, torna-se possível

condicionar o disparo de cada transição síncrona ao seu respectivo sinal global.

O algoritmo 2 descreve o processo de alteração proposto sobre o módulo das

condições original, criado inicialmente conforme as regras de conversão de RPICs

para diagramas Ladder explicadas na seção 2.4.2.

Algoritmo 2: Novo módulo de condições de disparo de transi-

ções - Sincronização Local.

Entradas:

→ Módulo das condições de disparo original de Si, ∀i = {1, 2, ...k}, sendo ko número de subsistemas;

→ Ec

→Mσ, ∀σ ∈ Ec→ Tσn e Sinc Rn(σ),∀n ∈Mσ

Saída: Módulo das condições de disparo atualizado para sincronização.

1 Início

2 1) para cada σ ∈ Ec :3 para cada n ∈Mσ :

4 para cada t ∈ Tσn :5 1.1) Identi�que a linha Ladder do módulo de condições

original que contém a bobina associada à t.

6 1.2) Elimine o contato NA associado ao evento σ nessa linha.

7 1.3) Crie, no lugar do contato eliminado, um contato NA

associado à bobina Sinc Rn(σ) criada no módulo de

sincronização.8 Fim

O algoritmo 2 utiliza como entrada os dados calculados pelo algoritmo 1 de

construção do módulo de sincronização. São eles: o conjunto de eventos comuns

Ec, o conjunto de grupos admissíveis de cada evento comum Mσ, o conjunto de

transições síncronas Tσn e a bobina global de sincronização Sinc Rn(σ) de cada

grupo admissível para cada evento comum.

O processo veri�ca todas as transições de sincronização t ∈ Tσn . Primeiramente,

54

Page 67: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

identi�ca-se a linha do diagrama Ladder do módulo de condições de disparo original

que é relacionada a cada transição síncrona t. A seguir, elimina-se o contato NA

associado ao evento σ que dispara t, substituindo-o por um contato NA operado

pela bobina global de sincronização Sinc Rn(σ). Dessa forma, garante-se que to-

das as transições sincronizadas entre os subsistemas disparem apenas quando cada

subsistema envolvido na operação autorizar.

A seguir, como demonstração do algoritmo 2, serão construídos os novos módulos

das condições de disparo de transições para os exemplos de sincronização completa

3.1, seletiva 3.2 e por agrupamento 3.3 estudados anteriormente.

• Exemplo 3.1 - Alteração do módulo de condições de disparo

Para a sincronização completa do exemplo 3.1, as alterações realizadas pelo

algoritmo 2 estão representadas na tabela 3.13.

Tabela 3.13: Alteração do módulo de condições de disparo do exemplo 3.1 (Sincro-nização Completa).

Nesse exemplo, as linhas do diagrama Ladder do módulo das condições de

disparo referentes às transições pertencentes aos conjuntos Ta1 , Tb1 e Tc1 serão

alteradas, eliminando-se os contatos NA em a, b e c e inserindo-se contatos

NA em Sinc a123, Sinc b23 e Sinc c12, respectivamente. Já as linhas relativas

às demais transições, não sofrem modi�cações.

Os novos módulos das condições de disparo dos subsistemas S1, S2 e S3 do

exemplo 3.1 podem ser vistos nas �guras 3.11, 3.12 e 3.13, respectivamente.

55

Page 68: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 3.11: Novo módulo das condições de disparo para S1 do exemplo 3.1 (Sin-cronização Completa).

Figura 3.12: Novo módulo das condições de disparo para S2 do exemplo 3.1 (Sin-cronização Completa).

56

Page 69: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 3.13: Novo módulo das condições de disparo para S3 do exemplo 3.1 (Sin-cronização Completa).

• Exemplo 3.2 - Alteração do módulo de condições de disparo

Para a sincronização seletiva do exemplo 3.2, o algoritmo 2 executará as mo-

di�cações expostas na tabela 3.14.

Tabela 3.14: Alteração do módulo de condições de disparo do exemplo 3.2 (Sincro-nização Seletiva).

Os módulos das condições de disparo dos subsistemas S1, S2 e S3 devidamente

57

Page 70: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

modi�cados para a sincronização do exemplo 3.2 podem ser vistos nas �guras

3.14, 3.15 e 3.16, respectivamente.

Figura 3.14: Novo módulo das condições de disparo para S1 do exemplo 3.2 (Sin-cronização Seletiva).

Figura 3.15: Novo módulo das condições de disparo para S2 do exemplo 3.2 (Sin-cronização Seletiva).

58

Page 71: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 3.16: Novo módulo das condições de disparo para S3 do exemplo 3.2 (Sin-cronização Seletiva).

• Exemplo 3.3 - Alteração do módulo de condições de disparo

Por �m, para a sincronização por agrupamento do exemplo 3.3, o algoritmo 2

promoverá as alterações indicadas na tabela 3.15.

Tabela 3.15: Alteração do módulo de condições de disparo do exemplo 3.3 (Sincro-nização por Agrupamento).

Os novos módulos das condições de disparo dos subsistemas S1, S2 e S3 para

a sincronização por agrupamento do exemplo 3.3 podem ser vistos nas �guras

3.17, 3.18 e 3.19, respectivamente.

59

Page 72: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 3.17: Novo módulo das condições de disparo para S1 do exemplo 3.3 (Sin-cronização por Agrupamento).

Figura 3.18: Novo módulo das condições de disparo para S2 do exemplo 3.3 (Sin-cronização por agrupamento).

60

Page 73: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 3.19: Novo módulo das condições de disparo para S3 do exemplo 3.3 (Sin-cronização por Agrupamento).

3.3 Sincronização de sistemas a eventos discretos

em rede

Nessa seção, será proposta uma metodologia de sincronização em rede entre k sub-

sistemas, implementados em seus respectivos CLPs, como ilustrado na �gura 3.20.

SUB 1 

 Eventos

Condições*

Dinâmica

Inicialização

Ações

Módulo 

de 

Comunicação

RPI , RPI , ..., RPIC1 C2 Ck

  SINC1 σ

Algoritmocomunicação

SINC1 σ

CLP 1

PUT

GET

SUB 2 

 Eventos

Condições*

Dinâmica

Inicialização

Ações

Módulo 

de 

Comunicação

RPI , RPI , ..., RPIC1 C2 Ck

  SINC2 σ

Algoritmocomunicação

SINC2 σ

CLP 2

PUT

GET

SUB k 

 Eventos

Condições*

Dinâmica

Inicialização

Ações

Módulo 

de 

Comunicação

RPI , RPI , ..., RPIC1 C2 Ck

  SINCk σ

Algoritmocomunicação

SINCk σ

CLP k

PUT

GET

Rede PROFINET

Figura 3.20: Sincronização em rede entre k subsistemas.

61

Page 74: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Como descrito na seção 3.2, a sincronização de SEDs é implementada em um

único CLP, por meio da construção do módulo de sincronização. Na abordagem em

rede, por outro lado, a sincronização é obtida apor meio da construção de módulos

de comunicação em cada subsistema, de modo a considerar não apenas as condições

da própria RPIC, como as dos demais componentes que formam o sistema global.

Nessa con�guração, o comportamento do sistema global é obtido através de três

etapas: conversão, segundo as regras de MOREIRA e BASILIO [3], das RPICs em

diagramas Ladder, criação dos módulos de comunicação, e atualização dos módulos

das condições de disparo das transições de cada subsistema. O processo de constru-

ção dos módulos de comunicação será formalizado por um algoritmo que, assim como

o algoritmo 1 referente à obtenção dos módulos de sincronização, pode proporcionar

três tipos de sincronização: completa, seletiva e por agrupamento.

3.3.1 Formalização do módulo de comunicação

O algoritmo proposto nessa seção possui como objetivo criar um módulo de comu-

nicação em Ladder para cada subsistema que compõe o sistema global. O processo

de construção de tais módulos é similar ao proposto pelo algoritmo 1, para a criação

dos módulos de sincronização. Sinais lógicos associados aos eventos comuns são cri-

ados em cada subsistema, indicando se os demais se encontram em um estado que

permite o disparo de pelo menos uma transição, diante da ocorrência dos respectivos

eventos, possibilitando a operação síncrona entre os componentes.

As entradas do algoritmo de comunicação são idênticas às da seção 3.2. A pri-

meira refere-se à estrutura das RPICs de cada subsistema i ∈ {1, 2, ..., k}, de�nidapor N∗i = (Pi, T0i , P rei, Ini, Ci, Ei, li). A segunda é composta pelo conjunto de tran-

sições de sincronização selecionadas pelo usuário T Si . E a terceira, também de�nida

pelo usuário, consiste na função de atribuição do grupo de sincronização para as

transições de T Si , denominada lmi : T Si → m ∈ N.O algoritmo 3 descreve as etapas propostas para a criação dos módulos de co-

municação. Os passos iniciais de identi�cação de possíveis inconsistências dos dados

de entrada, de 1 à 2.3, são idênticos aos do algoritmo 1. Na etapa 1, é calculado

o conjunto de eventos comuns entre subsistemas Ec, eliminando-se os eventos par-

ticulares de cada um. O passo 2 inicia uma varredura nos eventos de Ec. Em 2.1,

cria-se o conjunto Lσ, composto pelo índice de todos os subsistemas que possuem

transição de sincronização para o evento atual σ. Em 2.2, é veri�cado se há ao menos

dois subsistemas para a sincronização do evento σ. Em 2.3, são criados, para cada

subsistema, os conjuntos M iσ, compostos pelos grupos de sincronização no evento σ

atribuídos pelo usuário ao subsistema i. O passo 2.4 veri�ca a validade dos grupos

do passo 2.3, formando o conjuntos de grupos admissíveis Mσ.

62

Page 75: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Algoritmo 3: Módulo de Comunicação.

Entradas: N∗i = (Pi, T0i , P rei, Ini, Ci, Ei, li), ∀i = {1, 2, ...k};T Si , ∀i = {1, 2, ...k};lmi : T Si → m ∈ N, ∀i = {1, 2, ...k}, sendo k o número de subsistemas

Saída: (Ec); (Mσ,∀σ ∈ Ec); (Lσn ,∀n ∈Mσ); (T xσn e SincxRn(σ),∀x ∈ Lσn)1 Início2 1) Calcule Ec =

⋃i 6=j E

ij, onde Eij = Ei ∩Ej, ∀(i, j) ∈ {1, 2, ..., k}, i 6= j

3 2) para cada σ ∈ Ec :4 2.1) Crie Lσ = {i ∈ {1, 2, ..., k} : (∃t ∈ T Si )[li(t) = (σ, c), c ∈ C]}5 2.2) Se |Lσ| ≤ 1 então: vá para o próximo σ e volte ao passo 2.16 2.3) Crie para cada i ∈ Lσ :7 M i

σ = {m ∈ N : (∃t ∈ T Si )[(lmi(t) = m) ∧ (li(t) = (σ, c), c ∈ C)]}8 2.4) Faça MP

σ =⋃i∈Lσ M

iσ e crie Mσ = ∅. Para cada mp ∈MP

σ :9 se ∃(x, y) ∈ Lσ, x 6= y | mp ∈Mx

σ ∩Myσ então

10 Faça Mσ ←Mσ ∪ {mp}11 senão12 Faça M j

σ ←M jσ \ {mp}, j ∈ Lσ | mp ∈M j

σ

13 2.5) para cada n ∈Mσ :14 2.5.1) Crie:

Lσn = {i ∈ Lσ : (∃t ∈ T Si )[(lmi(t) = n) ∧ (li(t) = (σ, c), c ∈ C)]15 1) A string sub = concatenação dos elementos de Lσn16 2) A string grupo = concatenação de "V"com o grupo n17 3) T Iσ = {(t, i) ∈ T0i ×Lσn : (t /∈ T Si )∧ (li(t) = (σ, c), c ∈ C)}18 2.5.2) De�na a função de rotulação de eventos Rn(σ) como:

19 Rn(σ) =

σsub, se (|Mσ| = 1) ∧ (T Iσ = ∅)σsubV , se (|Mσ| = 1) ∧ (T Iσ 6= ∅)σsubgrupo, se |Mσ| > 1

20 2.5.3) para cada i ∈ Lσn :21 De�na T iσn = ∅ e modi�que o Ladder do Subsistema i:22 A) Crie uma linha Ladder e conecte em série:23 1) Um contato NA associado a σ.24 2) para cada t ∈ T Si : (lmi(t) = n) ∧ (li(t) = σ) :25 Faça T iσn ← T iσn ∪ {t} e conecte em série:26 a) Um contato NA associado à condição c | li : t→ c27 b) |I(t)| blocos COMP em série de�nidos por:28 x(p) ≥ Pre(p, t), ∀p ∈ I(t)29 c) Blocos COMP em série, um para cada arco inibidor

conectado a t, de�nidos por:30 x(p) < In(p, t), ∀In(p, t) > 031 e associe a-b-c em paralelo com t anterior.32 3) Uma bobina denominada modi Rn(σ).33 B) Crie uma linha Ladder com um bloco PUT associado à

variável da bobina modi Rn(σ) do item A3.34 C) Crie uma linha Ladder com um bloco GET associado às

variáveis modj Rn(σ),∀j ∈ Lσn , j 6= i.35 D) Crie uma linha Ladder com |Lσn| contatos NA em série

associados à bobina modi Rn(σ) e às variáveis modj Rn(σ).36 E) Crie uma bobina �nal de sincronização, Sinci Rn(σ), e a

conecte em série com os contatos do item D.37 Fim 63

Page 76: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Caso, ainda em 2.4, algum grupo veri�cado em MPσ não seja admissível, ele é

excluído do conjunto M jσ do seu respectivo subsistema j.

Além dos passos de análise dos dados de entrada, a identi�cação do tipo de

sincronização e as de�nições das funções de rotulação também são idênticas às reali-

zadas na seção 3.2. No passo 2.5.1 é criado o conjunto Lσn , formado pelo índice dos

subsistemas que sincronizam o evento σ pelo grupo n, além das strings sub, grupo e

o conjunto T Iσ , composto pelas transições de todos os subsistemas que disparam por

σ, mas não foram selecionadas para sincronização pelo usuário. Em 2.5.2, de�ne-se

a função de rotulação de acordo com o tipo de sincronização do evento atual σ, entre

completa, seletiva ou por agrupamento.

A partir do passo 2.5.3, o algoritmo 3 inicia a construção dos diagramas Ladder

dos módulos de comunicação. Para cada subsistema i que sincroniza o evento atual

σ pelo grupo atual n, é criado o conjunto de transições síncronas T iσn = ∅, e são

realizadas modi�cações no respectivo diagrama Ladder através de cinco itens, identi-

�cados de A à E. No item A é criada uma nova linha Ladder com três componentes

de�nidos pelos subitens A1, A2 e A3, conectados em série. Em A1 adiciona-se um

contato NA associado ao evento em questão σ. Em A2 são inseridas as condições de

habilitação de cada transição de sincronização do subsistema i para o grupo n do

evento σ, incluindo as subetapas A2.a com um contato NA referente à condição c

associada à transição, A2.b com os blocos COMP para os lugares de entrada e A2.c

com os blocos COMP para os arcos inibidores conectados à transição. Além disso,

cada transição identi�cada em A2 é adicionada ao seu respectivo conjunto T iσn , uti-

lizado para a alteração dos módulos das condições de disparo, proposta na seção a

seguir 3.3.2. Por �m, no subitem A3 é inserida a bobina modi Rn(σ), que identi�ca

se no subsistema i alguma transição síncrona em σ pelo grupo n pode disparar.

Como cada subsistema é implementado em um CLP diferente, a informação da

possibilidade de disparo de uma transição de sincronização em um deles deve ser

enviada aos demais envolvidos na operação síncrona através da rede de comunicação.

Com isso, no item B é criada uma nova linha Ladder composta apenas por um bloco

PUT associado à variável da bobina criada no item A3. Já no item C, adiciona-se

uma nova linha Ladder, dessa vez com um bloco GET associado às variáveis das

bobinas modj Rn(σ), de todos os outros subsistemas j designados a operar de modo

síncrono pelo grupo n do evento σ (∀j ∈ Lσn , j 6= i).

Identi�cados os sinais de sincronização de todos os subsistemas, no item D cria-

se mais uma linha Ladder, com contatos NA em série associados à cada sinal; tanto

o local, da bobina criada em A3, quanto os remotos obtidos pelos blocos GET em C.

Por �m, no item E é adicionada a bobina �nal de sincronização para o subsistema i,

Sinci Rn(σ), em série com os contatos do itemD. A forma sistemática de construção

do módulo de comunicação de cada subsistema está representada na �gura 3.21.

64

Page 77: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

σ

Item A2

c ∣ : t → cliCOMP

1

COMP

2

COMP

|I(t)|

(σ)modi Rn

COMP

1

COMP

2

COMP

n(In(p, t) > 0)

x(p) ≥ Pre(p, t), ∀p ∈ I(t)

contatos COMP em série|I(t)|

x(p) < In(p, t), ∀ In(p, t) > 0

COMP

1

COMP

2

COMP

|I(t)|

COMP

1

COMP

2

COMP

n(In(p, t) > 0)

Diagrama Ladder - Módulo de Comunicação do Subsistema i

Item A1Item A3

Item A2 - a Item A2 - b Item A2 - c

∀t ∈ ∣ ( : t → n) ∧ ( : t → σ)TS

ilmi

li

x(p) ≥ Pre(p, t), ∀p ∈ I(t)

contatos COMP em série|I(t)|c ∣ : t → cli

contatos COMP emsérie

n(In(p, t) > 0)

(nº de arcos inibidores conectados a )t

x(p) < In(p, t), ∀ In(p, t) > 0

Item B

 contatos NA em série∣∣Lσn∣∣

SIN   (σ)Ci Rn

Item A

Item D(σ),  ∀ j ∈ ,  j ≠ imodj Rn Lσn

Item E

(Repetir o procedimento para cada grupo admissível de cada evento de sincronização )  

n σ

∀n ∈ ;   ∀σ ∈Mσ

Ec

contatos COMP emsérie

n(In(p, t) > 0)

(nº de arcos inibidores conectados a )t

(σ)modi Rn

PUT

(σ)modi Rn

Item CGET

(σ)modj Rn

∀j ∈ ,  j ≠ iLσn

Item A2 - a Item A2 - b Item A2 - c

Passo 2.5.3  -  i ∈ Lσn

Figura 3.21: Metodologia para construção do módulo de comunicação do Subsistemai em Ladder.

65

Page 78: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

De acordo com o passo 2.5.3 do algoritmo 3 e com a �gura 3.21, nota-se que o

módulo de comunicação de cada subsistema é construído com a adição de quatro

linhas, para cada grupo admissível de cada evento comum em que tal subsistema

opera de modo síncrono. Desse modo, os conjuntos M iσ podem ser utilizados para

determinar o número total de linhas do módulo de comunicação em Ladder, N icom,

para cada subsistema i:

N icom = 4 .

∑σ∈Ec

|M iσ| (3.2)

O exemplo 3.4 ilustra o processo de construção dos módulos de comunicação

em Ladder, incluindo uma con�guração inconsistente dos dados de entrada para a

sincronização.

Exemplo 3.4 (Sincronização em rede por Agrupamento) Considere o sis-

tema do exemplo 3.3. Suponha que, além das seleções de sincronização por agru-

pamento para os eventos a e b, o usuário acidentalmente selecione a transição t19

para sincronizar o evento c pelo grupo 1, e a transição t21 para a sincronização de c

pelo grupo 2, conforme ilustrado na �gura 3.22. Suponha ainda que cada subsistema

seja implementado em seu respectivo CLP. Obtenha os módulos de comunicação que

garantem a sincronização desejada.

t11 t12

p13

t13

p12

p11

t15t14 t16

p14

t17 t18

p15

p16

t19

t110

p17

t111

ab

a

b ba

a

c

c. [y = 0]

5s

d

p21

t21

p22

t22p24p23

t24t23

p25

t26

p26

t27

p27

t25

t28

c

a

ba

a

b. [x = 1]

b

e

p31

t31

3

p34

3

p33p32

t32 t33

p36p35

t35t34

p37 p38

t36 t37

p39

t38

3

3

c

a

b

a

λ

b

a

b

Figura 3.22: Sincronização de eventos em rede, por agrupamento.

Os conjuntos de entrada do exemplo 3.4 estão retratados na tabela 3.16.

66

Page 79: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Tabela 3.16: Conjuntos de entrada do exemplo 3.4 (Sincronização em rede, poragrupamento).

T S1 lm1T S2 lm2

T S3 lm3

t11 1 t21 2 t32 1

t12 1 t22 1 t34 2

t13 2 t23 3 t35 2

t15 2 t24 1 t36 2

t17 3 t25 2 t37 3

t19 1 t26 1

O resultado da aplicação dos passos do algoritmo 3 são:

• Exemplo 3.4 - Passo 1) Conjunto de eventos comuns: Ec = {a, b, c}

• Exemplo 3.4 - Passo 2.1) Conjuntos de subsistemas que sincronizam cada

evento comum:

Tabela 3.17: Passo 2.1 do exemplo 3.4 (Sincronização em rede, por agrupamento).

La Lb Lc1 1 1

2 2 2

3 3 -

• Exemplo 3.4 - Passo 2.3) Conjunto de grupos de sincronização de cada

subsistema, para cada evento comum, sendo ND indicativo de não de�nido:

M1a = {1, 2, 3} M2

a = {1, 3} M3a = {1, 2, 3}

M1b = {1} M2

b = {1, 2} M3b = {2}

M1c = {1} M2

c = {2} M3c = ND

• Exemplo 3.4 - Passo 2.4) Conjuntos de grupos possíveis de sincronização

em a, b e c:

MPa = M1

a ∪M2a ∪M3

a = {1, 2, 3} ∪ {1, 3} ∪ {1, 2, 3} = {1, 2, 3}

MPb = M1

b ∪M2b ∪M3

b = {1} ∪ {1, 2} ∪ {2} = {1, 2}

MPc = M1

c ∪M2c = {1} ∪ {2} = {1, 2}

67

Page 80: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Para o evento a, os grupos 1, 2 e 3 estão presentes em ao menos um par de

subsistemas. Para o evento b, os grupos 1 e 2 também pertencem ao menos

a uma dupla de subsistemas. Já para o evento c, os grupos 1 e 2 estão pre-

sentes apenas nos subsistemas S1 e S2, respectivamente. Com isso, tem-se os

conjuntos de grupos admissíveis:

Ma = {1, 2, 3} Mb = {1, 2} Mc = ∅

Dessa forma, a sincronização do evento c não é admitida pelo algoritmo. Além

disso, os conjuntos dos grupos de sincronização de cada subsistema para o

evento c serão alterados para:

M1c = ∅ M2

c = ∅

• Exemplo 3.4 - Rotulação de eventos) Eliminando-se a inconsistência de

sincronização do evento c, as funções de rotulação para cada grupo admissí-

vel dos eventos a e b serão idênticas às do exemplo 3.3 de sincronização por

agrupamento:

Tabela 3.18: Rotulação dos eventos do exemplo 3.4 (Sincronização em rede, poragrupamento).

Passo 1 Ec {a, b, c}Passo 2 ∀σ ∈ Ec a bPasso 2.1 Lσ {1, 2, 3} {1, 2, 3}Passo 2.4 Mσ {1, 2, 3} {1, 2}Passo 2.5 ∀n ∈Mσ 1 2 3 1 2

Passo 2.5.1

Lσn {1, 2, 3} {1, 3} {1, 2, 3} {1, 2} {2, 3}sub "123" "13" "123" "12" "23"grupo "V1" "V2" "V3" "V1" "V2"T Iσ ∅ {t14, t16, t27, t38}

Passo 2.5.2 Rn(σ) a123V 1 a13V 2 a123V 3 b12V 1 b23V 2

• Exemplo 3.4 - Construção do módulo de sincronização

Com base nas funções de rotulação na tabela 3.18, o procedimento de constru-

ção dos módulos de comunicação em Ladder do exemplo 3.4 está retratado na

tabela 3.19. O número total de linhas do diagrama de cada subsistema será,

de acordo com a equação 3.2:

N1com = 4 ∗ (|M1

a |+ |M1b |+ |M1

c |) = 4 ∗ (3 + 1 + 0) = 16

N2com = 4 ∗ (|M2

a |+ |M2b |+ |M2

c |) = 4 ∗ (2 + 2 + 0) = 16

N3com = 4 ∗ (|M3

a |+ |M3b |+ |M3

c |) = 4 ∗ (3 + 1 + 0) = 16

Os módulos de comunicação dos subsistemas S1, S2 e S3 resultantes do algoritmo

3 podem ser vistos nas �guras 3.23, 3.24 e 3.25, respectivamente.

68

Page 81: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Tabela 3.19: Construção dos módulos de comunicação do exemplo 3.4 (Sincronizaçãoem rede, por agrupamento).

𝑷𝒂𝒔𝒔𝒐 𝟐

𝑷𝒂𝒔𝒔𝒐 𝟐. 𝟓

𝑷𝒂𝒔𝒔𝒐 𝟐. 𝟓. 𝟐

𝑷𝒂𝒔𝒔𝒐 𝟐. 𝟓. 𝟑

𝑴ó𝒅𝒖𝒍𝒐 𝑪𝒐𝒎𝒖𝒏𝒊𝒄𝒂çã𝒐 − 𝑺𝒖𝒃𝟏 𝑴ó𝒅𝒖𝒍𝒐 𝑪𝒐𝒎𝒖𝒏𝒊𝒄𝒂çã𝒐 − 𝑺𝒖𝒃𝟐 𝑴ó𝒅𝒖𝒍𝒐 𝑪𝒐𝒎𝒖𝒏𝒊𝒄𝒂çã𝒐 − 𝑺𝒖𝒃𝟑

𝝈 ∈ 𝑬𝒄 𝒏 ∈ 𝑴𝝈 𝑹𝒏(𝝈) 𝒊 ∈ 𝑳𝝈𝒏

𝑳𝒊𝒏𝒉𝒂 𝑳𝒂𝒅𝒅𝒆𝒓 𝑪𝒐𝒎𝒑𝒐𝒏𝒆𝒏𝒕𝒆𝒔

𝑳𝒊𝒏𝒉𝒂 𝑳𝒂𝒅𝒅𝒆𝒓 𝑪𝒐𝒎𝒑𝒐𝒏𝒆𝒏𝒕𝒆𝒔

𝑳𝒊𝒏𝒉𝒂 𝑳𝒂𝒅𝒅𝒆𝒓 𝑪𝒐𝒎𝒑𝒐𝒏𝒆𝒏𝒕𝒆𝒔

𝒂

𝟏 𝑎𝑉1123

1

2

3

1 𝑎

𝐻𝑎𝑏𝑖𝑙𝑖𝑡𝑎çã𝑜

{𝑡12}

𝑚𝑜𝑑1 𝑎𝑉1123

1

𝑎

𝐻𝑎𝑏𝑖𝑙𝑖𝑡𝑎çã𝑜

{𝑡22,𝑡26}

𝑚𝑜𝑑2 𝑎𝑉1123

1

𝑎

𝐻𝑎𝑏𝑖𝑙𝑖𝑡𝑎çã𝑜

{𝑡32}

𝑚𝑜𝑑3 𝑎𝑉1123

2 𝑷𝑼𝑻

𝑚𝑜𝑑1 𝑎𝑉1123 2

𝑷𝑼𝑻

𝑚𝑜𝑑2 𝑎𝑉1123 2

𝑷𝑼𝑻

𝑚𝑜𝑑3 𝑎𝑉1123

3 𝑮𝑬𝑻

𝑚𝑜𝑑2 𝑎𝑉1123 ; 𝑚𝑜𝑑3 𝑎𝑉1

123 3 𝑮𝑬𝑻

𝑚𝑜𝑑1 𝑎𝑉1123 ; 𝑚𝑜𝑑3 𝑎𝑉1

123 3 𝑮𝑬𝑻

𝑚𝑜𝑑1 𝑎𝑉1123 ; 𝑚𝑜𝑑2 𝑎𝑉1

123

4 𝑚𝑜𝑑(1−2−3) 𝑎𝑉1

123

𝑺𝒊𝒏𝒄𝟏 𝒂𝑽𝟏𝟏𝟐𝟑

4

𝑚𝑜𝑑(1−2−3) 𝑎𝑉1123

𝑺𝒊𝒏𝒄𝟐 𝒂𝑽𝟏𝟏𝟐𝟑

4

𝑚𝑜𝑑(1−2−3) 𝑎𝑉1123

𝑺𝒊𝒏𝒄𝟑 𝒂𝑽𝟏𝟏𝟐𝟑

𝟐 𝑎𝑉213

1

3

5 𝑎

𝐻𝑎𝑏𝑖𝑙𝑖𝑡𝑎çã𝑜

{𝑡13, 𝑡15} 𝑚𝑜𝑑1 𝑎𝑉2

13

5

𝑎

𝐻𝑎𝑏𝑖𝑙𝑖𝑡𝑎çã𝑜

{𝑡36}

𝑚𝑜𝑑3 𝑎𝑉213

6 𝑷𝑼𝑻

𝑚𝑜𝑑1 𝑎𝑉213 6

𝑷𝑼𝑻

𝑚𝑜𝑑3 𝑎𝑉213

7 𝑮𝑬𝑻

𝑚𝑜𝑑3 𝑎𝑉213 7

𝑮𝑬𝑻

𝑚𝑜𝑑1 𝑎𝑉213

8 𝑚𝑜𝑑(1−3) 𝑎𝑉2

13

𝑺𝒊𝒏𝒄𝟏 𝒂𝑽𝟐𝟏𝟑

8

𝑚𝑜𝑑(1−3) 𝑎𝑉213

𝑺𝒊𝒏𝒄𝟑 𝒂𝑽𝟐𝟏𝟑

𝟑 𝑎𝑉3123

1

2

3

9 𝑎

𝐻𝑎𝑏𝑖𝑙𝑖𝑡𝑎çã𝑜

{𝑡17} 𝑚𝑜𝑑1 𝑎𝑉3

123

5

𝑎

𝐻𝑎𝑏𝑖𝑙𝑖𝑡𝑎çã𝑜

{𝑡23}

𝑚𝑜𝑑2 𝑎𝑉3123

9

𝑎

𝐻𝑎𝑏𝑖𝑙𝑖𝑡𝑎çã𝑜

{𝑡37}

𝑚𝑜𝑑3 𝑎𝑉3123

10 𝑷𝑼𝑻

𝑚𝑜𝑑1 𝑎𝑉3123 6

𝑷𝑼𝑻

𝑚𝑜𝑑2 𝑎𝑉3123 10

𝑷𝑼𝑻

𝑚𝑜𝑑3 𝑎𝑉3123

11 𝑮𝑬𝑻

𝑚𝑜𝑑2 𝑎𝑉3123 ; 𝑚𝑜𝑑3 𝑎𝑉3

123 7 𝑮𝑬𝑻

𝑚𝑜𝑑1 𝑎𝑉3123 ; 𝑚𝑜𝑑3 𝑎𝑉3

123 11 𝑮𝑬𝑻

𝑚𝑜𝑑1 𝑎𝑉3123 ; 𝑚𝑜𝑑2 𝑎𝑉3

123

12 𝑚𝑜𝑑(1−2−3) 𝑎𝑉3

123

𝑺𝒊𝒏𝒄𝟏 𝒂𝑽𝟑𝟏𝟐𝟑

8

𝑚𝑜𝑑(1−2−3) 𝑎𝑉3123

𝑺𝒊𝒏𝒄𝟐 𝒂𝑽𝟑𝟏𝟐𝟑

12

𝑚𝑜𝑑(1−2−3) 𝑎𝑉3123

𝑺𝒊𝒏𝒄𝟑 𝒂𝑽𝟑𝟏𝟐𝟑

𝒃

𝟏 𝑏𝑉112

1

2

13 𝑏

𝐻𝑎𝑏𝑖𝑙𝑖𝑡𝑎çã𝑜

{𝑡11}

𝑚𝑜𝑑1 𝑏𝑉112

9

𝑏

𝐻𝑎𝑏𝑖𝑙𝑖𝑡𝑎çã𝑜

{𝑡24}

𝑚𝑜𝑑2 𝑏𝑉112

14 𝑷𝑼𝑻

𝑚𝑜𝑑1 𝑏𝑉112 10

𝑷𝑼𝑻

𝑚𝑜𝑑2 𝑏𝑉112

15 𝑮𝑬𝑻

𝑚𝑜𝑑2 𝑏𝑉112 11

𝑮𝑬𝑻

𝑚𝑜𝑑1 𝑏𝑉112

16 𝑚𝑜𝑑(1−2) 𝑏𝑉1

12

𝑺𝒊𝒏𝒄𝟏 𝒃𝑽𝟏𝟏𝟐

12

𝑚𝑜𝑑(1−2) 𝑏𝑉112

𝑺𝒊𝒏𝒄𝟐 𝒃𝑽𝟏𝟏𝟐

𝟐 𝑏𝑉223

2

3

13 𝑏

𝐻𝑎𝑏𝑖𝑙𝑖𝑡𝑎çã𝑜

{𝑡25}

𝑚𝑜𝑑2 𝑏𝑉223

13

𝑏

𝐻𝑎𝑏𝑖𝑙𝑖𝑡𝑎çã𝑜

{𝑡34, 𝑡35}

𝑚𝑜𝑑3 𝑏𝑉223

14 𝑷𝑼𝑻

𝑚𝑜𝑑2 𝑏𝑉223 14

𝑷𝑼𝑻

𝑚𝑜𝑑3 𝑏𝑉223

15 𝑮𝑬𝑻

𝑚𝑜𝑑3 𝑏𝑉223 15

𝑮𝑬𝑻

𝑚𝑜𝑑2 𝑏𝑉223

16 𝑚𝑜𝑑(2−3) 𝑏𝑉2

23

𝑺𝒊𝒏𝒄𝟐 𝒃𝑽𝟐𝟐𝟑

16

𝑚𝑜𝑑(2−3) 𝑏𝑉223

𝑺𝒊𝒏𝒄𝟑 𝒃𝑽𝟐𝟐𝟑

69

Page 82: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

↑a mod1 (↑a)123V1

L1 COMPx(p11) >= 1

t12 - mod 1 (↑a)

L2 PUT

mod1 (↑a)123V1

L3 GET

mod2 (↑a)123V1

mod3 (↑a)123V1

mod1 (↑a)123V1 mod2 (↑a)123

V1 mod3 (↑a)123V1 SINC1 (↑a)123

V1

L4

↑a mod1 (↑a)13V2

L5 COMPx(p13) >= 1

t13 - mod 1 (↑a)

COMPx(p12) >= 1

t15 - mod 1 (↑a)

L6 PUT

mod1 (↑a)13V2

L7 GET

mod3 (↑a)13V2

mod1 (↑a)13V2 mod3 (↑a)13

V2 SINC1 (↑a)13V2

L8

↑a mod1 (↑a)123V3

L9 COMPx(p14) >= 1

t17 - mod 1 (↑a)

L10 PUT

mod1 (↑a)123V3

L11 GET

mod2 (↑a)123V3

mod3 (↑a)123V3

mod1 (↑a)123V3 mod2 (↑a)123

V3 mod3 (↑a)123V3 SINC1 (↑a)123

V3

L12

↑b mod1 (↑b)12V1

L13 COMPx(p11) >= 1

t11 - mod 1 (↑b)

L14 PUT

mod1 (↑b)12V1

L15 GET

mod2 (↑b)12V1

mod1 (↑b)12V1 mod2 (↑b)12

V1 SINC1 (↑b)12V1

L16

Figura 3.23: Módulo de comunicação de S1 do exemplo 3.4 (Sincronização em rede,por agrupamento). 70

Page 83: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

↑a mod2 (↑a)123V1

L1 COMPx(p22) >= 1

t22 - mod 2 (↑a)

COMPx(p25) >= 1

t26 - mod 2 (↑a)

L2 PUT

mod2 (↑a)123V1

L3 GET

mod1 (↑a)123V1

mod3 (↑a)123V1

mod1 (↑a)123V1 mod2 (↑a)123

V1 mod3 (↑a)123V1 SINC2 (↑a)123

V1

L4

↑a mod2 (↑a)123V3

COMP COMPL5

x(p24) >= 1 x(p23) < 1t23 - mod 2 (↑a) t23 - mod 2 (↑a)

L6 PUT

mod2 (↑a)123V3

L7 GET

mod1 (↑a)123V3

mod3 (↑a)123V3

mod1 (↑a)123V3 mod2 (↑a)123

V3 mod3 (↑a)123V3 SINC2 (↑a)123

V3

L8

↑b mod2 (↑b)12V1

L9 COMP COMPx(p23) >= 1 x(p24) >= 1

t24 - mod 2 (↑b) t24 - mod 2 (↑b)

L10 PUT

mod2 (↑b)12V1

L11 GET

mod1 (↑b)12V1

mod1 (↑b)12V1 mod2 (↑b)12

V1 SINC2 (↑b)12V1

L12

↑b x=1 mod2 (↑b)23V2

L13 COMPx(p25) >= 1

t25 - mod 2 (↑b)

L14 PUT

mod2 (↑b)23V2

L15 GET

mod3 (↑b)23V2

mod2 (↑b)23V2 mod3 (↑b)23

V2 SINC2 (↑b)23V2

L16

Figura 3.24: Módulo de comunicação de S2 do exemplo 3.4 (Sincronização em rede,por agrupamento). 71

Page 84: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

↑a mod3 (↑a)123V1

L1 COMP COMPx(p32) >= 1 x(p33) < 3

t32 - mod 3 (↑a) t32 - mod 3 (↑a)

L2 PUT

mod3 (↑a)123V1

L3 GET

mod1 (↑a)123V1

mod2 (↑a)123V1

mod1 (↑a)123V1 mod2 (↑a)123

V1 mod3 (↑a)123V1 SINC3 (↑a)123

V1

L4

↑a mod3 (↑a)13V2

L5 COMPx(p37) >= 1

t36 - mod 3 (↑a)

L6 PUT

mod3 (↑a)13V2

L7 GET

mod1 (↑a)13V2

mod1 (↑a)13V2 mod3 (↑a)13

V2 SINC3 (↑a)13V2

L8

↑a mod3 (↑a)123V3

L9 COMPx(p38) >= 1

t37 - mod 3 (↑a)

L10 PUT

mod3 (↑a)123V3

L11 GET

mod1 (↑a)123V3

mod2 (↑a)123V3

mod1 (↑a)123V3 mod2 (↑a)123

V3 mod3 (↑a)123V3 SINC3 (↑a)123

V3

L12

↑b mod3 (↑b)23V2

L13 COMPx(p35) >= 1

t34 - mod 3 (↑b)

COMP COMPx(p33) >= 3 x(p36) >= 1

t35 - mod 3 (↑b) t35 - mod 3 (↑b)

L14 PUT

mod3 (↑b)23V2

L15 GET

mod2 (↑b)23V2

mod2 (↑b)23V2 mod3 (↑b)23

V2 SINC3 (↑b)23V2

L16

Figura 3.25: Módulo de comunicação de S3 do exemplo 3.4 (Sincronização em rede,por agrupamento). 72

Page 85: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

3.3.2 Alteração do módulo das condições de disparo para sin-

cronização em rede

Concluído o processo de construção dos módulos de comunicação, o passo seguinte

para garantir a sincronização de sistemas a eventos discretos em rede consiste na

alteração dos módulos das condições de disparo das transições. O método assemelha-

se ao apresentado na seção 3.2.2, referente à sincronização de SEDs. Entretanto,

enquanto naquela proposta cada grupo admissível n de cada evento comum σ propor-

ciona um sinal habilitador global único Sinc Rn(σ), em uma sincronização em rede,

cada subsistema i envolvido na sincronização possui seu respectivo sinal habilitador

Sinci Rn(σ), como ilustrado na �gura 3.20.

O algoritmo 4 relata o procedimento de alteração sobre o módulo das condições

de disparo das transições de cada subsistema, originalmente implementado de acordo

com as regras de conversão de RPIC para diagramas Ladder apresentadas na seção

2.4.2.

Algoritmo 4: Novo módulo de condições de disparo de transi-

ções - Sincronização em Rede.

Entradas:→ Módulo das condições de disparo original de Si, ∀i = {1, 2, ...k}, sendo ko número de subsistemas;→ Ec→Mσ, ∀σ ∈ Ec→ Lσn , ∀n ∈Mσ

→ T jσn e Sincj Rn(σ), ∀j ∈ LσnSaída: Módulo das condições de disparo atualizado para sincronização.

1 Início2 1) para cada σ ∈ Ec :3 para cada n ∈Mσ :4 para cada j ∈ Lσn :5 para cada t ∈ T jσn :6 1.1) Identi�que a linha Ladder do módulo de condições de

disparo original do subsistema j que contém a bobinaassociada à t.

7 1.2) Elimine o contato NA associado ao evento σ nessalinha.

8 1.3) Crie, no lugar do contato eliminado, um contato NAassociado à bobina Sincj Rn(σ) criada no módulo decomunicação do subsistema j.

9 Fim

As entradas admitidas pelo algoritmo 4 são: o conjunto de eventos comuns Ec,

os conjuntos dos grupos admissíveis de cada evento comum Mσ, os conjuntos dos

subsistemas que sincronizam cada evento comum em cada grupo admissível Lσn ,

73

Page 86: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

além dos conjuntos de transições síncronas T jσn e da bobina �nal de sincronização

Sincj Rn(σ) de cada subsistema j pertencente aos conjuntos Lσn .

O procedimento veri�ca todas as transições de sincronização t ∈ T jσn de cada

subsistema j ∈ Lσn . Assim como na sincronização da seção 3.2.2, o passo 1.1

identi�ca a linha do diagrama Ladder do módulo de condições original que contém

a bobina associada à transição t. Em seguida, o passo 1.2 elimina dessa linha o

contato NA relacionado ao evento σ que dispara t. Por �m, o passo 1.3 insere,

no lugar do contato NA eliminado, outro contato NA operado pela bobina �nal de

sincronização do subsistema em questão Sincj Rn(σ). Com isso, uma determinada

transição de sincronização de um subsistema será disparada por seu evento externo,

somente se os demais subsistemas permitirem um disparo simultâneo de ao menos

uma de suas transições síncronas através do mesmo evento.

Como demonstração do algoritmo 4, os módulos de condição de disparo do exem-

plo 3.4 serão obtidos a seguir.

• Exemplo 3.4 - Alteração do módulo de condições de disparo

Tabela 3.20: Alteração do módulo de condições de disparo do exemplo 3.4 (Sincro-nização em rede, por agrupamento).

Os novos diagramas Ladder dos módulos das condições de disparo dos sub-

sistemas S1, S2 e S3 para a sincronização em rede do exemplo 3.4 podem ser

vistos nas �guras 3.26, 3.27 e 3.28, respectivamente.

74

Page 87: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 3.26: Novo módulo das condições de disparo para S1 do exemplo 3.4 (Sin-cronização em rede, por agrupamento).

Figura 3.27: Novo módulo das condições de disparo para S2 do exemplo 3.4 (Sin-cronização em rede, por agrupamento).

75

Page 88: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 3.28: Novo módulo das condições de disparo para S3 do exemplo 3.4 (Sin-cronização em rede, por agrupamento).

Comparando as alterações dos módulos de condições propostas na tabela 3.15

com as da tabela 3.20, de comunicação em rede, nota-se a transformação das bobinas

globais de sincronização Sinc Rn(σ), em bobinas �nais Sincj Rn(σ), para cada

subsistema j envolvido na operação síncrona.

No primeiro caso, havia cinco bobinas globais: Sinc a123V 1 - relativo às transições

{t12, t22, t26, t32}; Sinc a13V 2- referente às transições {t13, t15, t36}; Sinc a123V 3 - associado

às transições {t17, t23, t37}; Sinc b12V 1 - relacionado às transições {t11, t24}; e Sinc b23V 2

- atribuído às transições {t25, t34, t35}.Ao se con�gurar uma comunicação em rede, a sincronização proporcionada pelas

cinco bobinas citadas passou a ser garantida por doze bobinas, quatro para cada

um dos três subsistemas. A função da bobina Sinc a123V 1 foi realizada pelos sinais:

Sinc1 a123V 1 - para {t12}; Sinc2 a123V 1 - para {t22, t26}; e Sinc3 a123V 1 - para {t32}. A

bobina Sinc a13V 2 foi substituída por: Sinc1 a13V 2 - para {t13, t15}; e Sinc3 a13V 2 - para

{t36}. De modo análogo, Sinc a123V 3 passou a ser representada por: Sinc1 a123V 3 - para

{t17}; Sinc2 a123V 3 - para {t23}; e Sinc3 a123V 3 - para {t37}. O sinal Sinc b12V 1 foi alterado

para: Sinc1 b12V 1 - para {t11}; e Sinc2 b12V 1 - para {t24}. E, �nalmente, Sinc b23V 2 teve

sua função substituída por: Sinc2 b23V 2 - para {t25}; e Sinc3 b23V 2 - para {t34, t35}.

76

Page 89: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Por �m, é importante ressaltar que a metodologia de sincronização de SEDs em

rede proposta neste trabalho possui como objetivo sincronizar o disparo de tran-

sições, diante da observação da ocorrência de eventos externos e da comunicação

entre os CLPs de cada subsistema. Nessa abordagem, considera-se que todos os

CLPs identi�cam a ocorrência de um evento externo em comum simultaneamente.

Portanto, a con�guração, ou topologia, da rede que envia a cada CLP independente

a borda de subida, ou descida, dos sensores que identi�cam os eventos externos

não foi abordada, pois não representa fator fundamental para o objetivo �nal deste

trabalho.

77

Page 90: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Capítulo 4

Aplicação do método

Neste capítulo, a metodologia de sincronização de sistemas a eventos discretos pro-

posta no capítulo 3 para casos gerais será aplicada ao sistema de estocagem de cubos

automatizado implementado por GAPANOWICZ [1].

Primeiramente, o sistema completo será descrito, detalhando-se as RPICs de

cada subsistema e as sincronizações desejadas para obtenção do comportamento

global. Em seguida, a metodologia proposta será aplicada ao sistema, a �m de se

obter o módulo de sincronização e as alterações do módulo de condições de dis-

paro. Os resultados dessa etapa serão comparados aos obtidos na implementação

de GAPANOWICZ [1], evidenciando o caso particular do método em que a sin-

cronização em questão se enquadra. Por �m, a análise do sistema será estendida,

considerando-se uma con�guração hipotética de sincronização em rede. Nessa abor-

dagem, a metodologia de sincronização em rede proposta será aplicada, visando a

obtenção dos módulos de comunicação e das alterações dos módulos de condições

de disparo de cada subsistema.

4.1 Descrição do sistema

O sistema estudado nesta seção foi implementado em [1] utilizando-se a planta me-

catrônica Cube Assembly, produzida pela empresa Christiani-Technical Institute for

Vocation Trainning, localizada no Laboratório de Controle e Automação (LCA-

COPPE/UFRJ) no Centro de Tecnologia. A planta é constituída por três módulos,

como ilustrado na �gura 4.1.

O primeiro consiste no processo de seleção de peças. Nesse sistema, há três

tipos de peças: metálica, plástica de cor preta e plástica de cor branca; todas ca-

racterizadas por uma concavidade, podendo ser inseridas no processo direcionadas

para cima ou para baixo. O armazenamento é feito em duas colunas verticais, cada

uma com seu respectivo pistão horizontal, capaz de inserir a peça de posição mais

baixa na esteira. As colunas ainda apresentam sensores que identi�cam se o pistão

78

Page 91: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 4.1: Planta mecatrônica. [1]

está recuado ou estendido e um sensor que informa quando há apenas uma peça

armazenada. Uma vez colocada na esteira, a peça passa sequencialmente por cinco

sensores, �nalizando a etapa de seleção. O primeiro sensor é do tipo capacitivo, que

apenas identi�ca a presença de uma peça na esteira. O segundo é um sensor de

profundidade, que informa a posição da peça, sendo acionado quando a concavidade

está voltada para baixo. A seguir, tem-se o sensor óptico, que reconhece a cor da

peça, sendo acionado apenas por peças metálicas, ou plásticas de cor branca. Mais

adiante, a peça passa pelo sensor indutivo, capaz de reconhecer o seu material, sendo

acionado apenas por peças metálicas. E, por �m, há o sensor de �m de curso, cuja

atuação indica que a peça chegou ao �nal da esteira.

Após o processo de seleção, o módulo 2 transporta a peça até uma unidade de

montagem e, ao �m dessa atividade, a envia para o módulo 3. Os componentes

presentes nesse módulo são: um braço mecânico e uma prensa pneumática. O braço

realiza o transporte através de movimentos verticais, horizontais e de rotação em

360◦. Quatro sensores identi�cam o estado recuado e estendido dos eixos vertical e

horizontal, e um sensor indutivo indica quando o braço está em sua posição zero.

As peças são presas ao braço por meio do acionamento de uma bomba de vácuo.

Já a prensa, possui a função de unir duas peças fornecidas pelo braço, formando

um cubo. Em sua estrutura há três pistões: um na horizontal, responsável por

posicionar o cubo; um na vertical, para a prensa das peças; e um para abrir e fechar

a porta do compartimento interno da prensa. Cada pistão apresenta dois sensores

que identi�cam seu estado recuado ou estendido.

Finalizado o procedimento de prensa, a peça chega ao módulo 3, cuja função

é o armazenamento �nal. Esse módulo é composto por um elevador e um estoque

de quatro andares e capacidade de sete peças por andar. O elevador se movimenta

através de trilhos tanto na vertical, alternando andares, quanto na horizontal, alter-

79

Page 92: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

nando posições no andar. Há dois sensores de �m de curso que identi�cam a posição

�nal de cada um desses movimentos. Já a identi�cação de uma posição interme-

diária é obtida por encoders que reconhecem marcações de�nidas nos trilhos. Além

disso, há também um atuador pneumático com a função de receber as peças do

braço e colocá-las no estoque de forma precisa. Os estados de tal atuador, recuado

ou estendido, são obtidos por dois sensores.

Além dos três módulos, a planta também possui um painel de controle com

botões comandados pelo usuário, para funções como inicialização e interrupção do

sistema.

Apresentados os componentes da planta, a tabela 4.1 identi�ca e descreve os

eventos externos utilizados na modelagem do sistema.

Tabela 4.1: Descrição dos eventos externos do sistema de estocagem [1].

O sistema desenvolvido por GAPANOWICZ [1] consiste na armazenagem de

cubos formados por peças metálicas com concavidade para cima e peças plásticas

pretas com concavidade para baixo, selecionadas nessa ordem. Para isso, a modela-

80

Page 93: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

gem foi feita através de sete subsistemas: calibração (S1), seleção de peças metálicas

(S2), seleção de peças plásticas pretas (S3), prensa (S4), braço mecânico (S5), ar-

mazenamento (S6) e interrupção pelo botão Quit (S7).

4.1.1 Subsistema S1 (Calibração)

O subsistema S1 de calibração possui como objetivo alterar o estado de todos os

atuadores e elementos do sistema para suas respectivas posições iniciais. Tal pro-

cedimento permite a correta inicialização e garante a segurança da operação do

sistema. A RPIC de S1 projetada em [1] está ilustrada na �gura 4.2, com o índice

c associado aos lugares e transições.

O sistema permanece em repouso até que o usuário aperte o botão Start. Nesse

momento, a esteira é ligada para trás durante 12s para remover qualquer peça pre-

sente, os pistões das colunas de armazenamento são recolhidos e o atuador de pro-

fundidade da esteira é recuado. O estado da prensa também é alterado, recuando-se

o atuador vertical, abrindo-se a porta do compartimento e estendendo-se o atuador

horizontal. Além disso, o elevador é movimentado para baixo e recuado horizon-

talmente, e o braço é girado até se alinhar com a esteira. Quando todos esses

procedimentos são concluídos, o sistema global é, en�m, iniciado.

4.1.2 Subsistema S2 (Seleção peça metálica)

O subsistema S2 controla o comportamento do módulo 1 de modo a aceitar apenas

as peças metálicas com concavidade para cima. A RPIC desenvolvida em [1] é

mostrada na �gura 4.3. Seus lugares e transições são identi�cados com o índice a.

Após a calibração, se os sensores de ambas as colunas identi�cam ao menos duas

peças, o subsistema é iniciado. O atuador da coluna 1 é estendido para colocar

a peça na esteira e, então, recuado novamente. A esteira é acionada para frente,

transportando a peça em direção aos seus sensores. Após a identi�cação da presença

de uma peça pelo sensor capacitivo, a esteira é desligada e o atuador de profundidade

é estendido. Se o sensor de profundidade for acionado, indicando concavidade para

cima, a peça segue no processo. Caso contrário ela é rejeitada, ligando-se a esteira

no sentido contrário.

Orientada corretamente, a peça segue seu percurso na esteira até o acionamento

do sensor óptico, ou do sensor de �m de curso. Se o primeiro for acionado, a peça

é identi�cada como metálica, ou plástica de cor branca, prosseguindo no processo.

Já no caso do segundo ser acionado diretamente, sem atuação dos sensores óptico e

indutivo, pode-se a�rmar se tratar de uma peça plástica de cor preta. Nesse caso, o

processo de rejeição é iniciado.

81

Page 94: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Prosseguindo a evolução do subsistema, se há ativação do sensor indutivo, trata-

se de uma peça metálica, sendo a mesma aceita pelo processo. Caso o sensor de �m

de curso seja acionado diretamente, a peça é plástica de cor branca, sendo rejeitada.

Finalizada a identi�cação, a peça chega ao �m da esteira e inicia-se a primeira

sincronização do sistema. Quando o sensor de �m de curso da esteira ↑ SF identi-

�ca a chegada da peça metálica aceita, a transição ta19 é sincronizada com td1 do

braço mecânico, fazendo com que esse inicie seu movimento para transportar a peça

selecionada.

Assim que o braço retirar a peça da esteira, a identi�cação da borda de descida

do sensor de �m de curso da esteira ↓ SF sincroniza a transição ta21 com tb1 da

seleção de peças plásticas pretas, permitindo o início desse processo enquanto o

braço transporta a peça metálica.

Após liberar a seleção de peças plásticas, o subsistema S2 permanece em espera

até que o braço mecânico deposite o cubo já prensado no sistema de armazenamento

�nal e recue totalmente seu atuador horizontal ↑ SB1, sincronizando as transições

ta22 e td28.

4.1.3 Subsistema S3 (Seleção peça plástica preta)

Analogamente ao apresentado para o subsistemas de seleção de peças metálicas, o

subsistema S3 foi desenvolvido em [1] para selecionar as peças plásticas de cor preta.

Sua RPIC está ilustrada na �gura 4.4, com o índice b de identi�cação de transições

e lugares.

A dinâmica de S3 é essencialmente similar à de S2. Assim que a peça metálica

é retirada da esteira pelo braço, com o evento ↓ SF , a evolução de S3 é iniciada. A

peça da coluna 2 é colocada na esteira, sendo transportada pelo sistema passando

pelos seus sensores. Ao passar pelo sensor capacitivo, a esteira para e o atuador de

profundidade é estendido. Se a peça estiver com a concavidade para baixo, é aceita.

Caso contrário, é descartada com o movimento oposto da esteira. Em seguida, se o

sensor óptico for ativado, a peça não é preta, sendo também descartada.

Finalizada a seleção, quando a peça plástica preta desejada chega ao �nal da

esteira, ativando o sensor de �m de curso ↑ SF , a transição tb15 é sincronizada

com td13 do braço mecânico, permitindo que o braço inicie seu movimento para

transportar a peça. O disparo de ambas as transições só ocorre depois que o braço

coloca uma peça metálica na prensa e recua seu atuador horizontal.

82

Page 95: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura4.2:

SubsistemaS1projetadoporGAPANOWICZ[1](C

alibração).

83

Page 96: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

S↑ ⏐⏐

F25

V1

SB

↑ ⏐⏐125

V1

S⏐ ↓

F23

Figura4.3:

SubsistemaS2projetadoporGAPANOWICZ[1](Seleção

peça

metálica).

84

Page 97: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

S↑ ⏐⏐

F35

V2

S⏐ ↓

F23

Figura4.4:

SubsistemaS3projetadoporGAPANOWICZ[1](Seleção

peça

plástica

preta).

85

Page 98: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

4.1.4 Subsistema S4 (Prensa)

O subsistema S4 modela o comportamento da prensa do sistema. A RPIC está

retratada na �gura 4.5, com o índice de identi�cação de transições e lugares p. [1]

A prensa permanece em repouso, até receber do braço, nessa ordem, uma peça

metálica e uma peça plástica de cor preta. Assim que o braço deposita a segunda

peça e recua totalmente seu atuador horizontal ↑ SB1, o processo da prensa é

iniciado e o braço �ca em espera, através da sincronização das transições tp1 e td16. O

atuador horizontal da prensa é recuado, a porta é fechada e o atuador vertical realiza

a prensa em si, estendendo-se e recuando-se em seguida. Posteriormente, a porta é

aberta e o atuador horizontal é estendido completamente, diante do evento ↑ SP4,

terminando o processo da prensa. Nesse momento, a transição tp7 é sincronizada

com td17 do braço, permitindo que o mesmo pegue o cubo �nalizado. O subsistema

S4 volta, então, para seu estado inicial, esperando receber novas peças para um novo

processamento.

4.1.5 Subsistema S5 (Braço mecânico)

O subsistema S5 modela o funcionamento do braço mecânico para transporte das

peças do sistema. Seu índice de identi�cação é d e sua RPIC pode ser vista na �gura

4.6. [1]

Quando o sensor de �m de curso da esteira ↑ SF sincroniza o subsistema de

seleção de peças metálicas S2 com o braço, indicando que há uma peça metálica

pronta para ser transportada, os movimentos horizontais e verticais do braço são

iniciados a �m de posicioná-lo corretamente para pegar a peça. Após pegar a peça

com o acionamento da bomba de vácuo, o braço realiza movimento rotativo, ho-

rizontal e vertical, para se alinhar com a prensa. Uma vez alinhado, a bomba de

vácuo é desligada e o braço deposita a peça metálica no compartimento da prensa.

Em seguida, o braço repete o procedimento descrito para colocar uma peça plástica

de cor preta na prensa.

Após depositar as duas peças no compartimento da prensa, o braço recua comple-

tamente seu atuador horizontal, fato identi�cado pelo evento ↑ SB1, sincronizando

sua transição td16 com tp1 da prensa, permitindo que essa inicie seu processo, como

explicado na seção 4.1.4. Durante toda a atividade da prensa, o braço permanece

em espera. Quando a prensa estende totalmente seu atuador horizontal ↑ SP4, uma

nova sincronização entre os subsistemas é feita para as transições td17 e tp7, e o

braço pega o cubo já montado.

86

Page 99: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

SB

↑ ⏐⏐145

V2

SP

↑ ⏐445

Figura4.5:

SubsistemaS4projetadoporGAPANOWICZ[1](Prensa).

87

Page 100: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

S↑ ⏐⏐

F25

V1

B↑ ⏐

1056

CFC

↑ ⏐⏐156

vSB

↑ ⏐⏐125

V1

SB

↑ ⏐⏐145

V2

SB

↑ ⏐⏐256

vSB

↑ ⏐⏐456

v

SB

↑ ⏐556

S↑ ⏐⏐

F35

V2

SP

↑ ⏐445

Figura4.6:

SubsistemaS5projetadoporGAPANOWICZ[1](B

raço

mecânico).

88

Page 101: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Terminada a etapa da prensa, o braço realiza novamente movimentos na ho-

rizontal, vertical e de rotação para transportar o cubo até o elevador do módulo

do estoque. Após girar em direção ao estoque e estender seu atuador horizontal

completamente ↑ SB2, o braço sincroniza sua transição td23 com te1 do subsistema

de armazenamento. Nesse momento, o elevador inicia seu movimento para pegar o

cubo e o braço �ca em espera.

Ao ser identi�cada a borda de subida do encoder horizontal do elevador ↑ B10,

indicando que o mesmo chegou na posição de recebimento do cubo, outra sincroni-

zação entre o braço e o armazenamento é feita, entre td24 e te3, permitindo que o

braço deposite o cubo no elevador.

Após o braço entregar o cubo ao elevador e estender totalmente seu atuador

vertical ↑ SB4, uma sincronização entre td27 e te4 autoriza o elevador a iniciar seu

movimento de recuo. Enquanto isso, o braço recua seu atuador horizontal totalmente

↑ SB1, sincronizando o disparo de td28 com ta22 do subsistema de seleção de peças

metálicas, permitindo a reinicialização desse processo para uma nova peça. Em

seguida, o braço �ca aguardando o recuo total do elevador, identi�cado pela chave

de �m de curso horizontal do mesmo ↑ CFC1. Nesse momento, as transições td29e te5 são sincronizadas, permitindo o braço começar seu giro para voltar à posição

inicial. Quando o sensor indutivo do braço ↑ SB5 indica que o braço está em sua

posição zero, as transições td30 e te6 são sincronizadas, autorizando o braço a realizar

um giro para se alinhar à esteira novamente, e liberando o elevador para iniciar seu

movimento vertical.

4.1.6 Subsistema S6 (Armazenamento)

O subsistema S6 descreve o processo de armazenamento dos cubos no estoque. A

RPIC está representada na �gura 4.7, com a identi�cação de lugares e transições

pelo índice e.

O subsistema de armazenamento possui cinco sincronizações diferentes, todas

em relação ao subsistema S5 do braço mecânico. Como descrito na seção 4.1.5, o

elevador do estoque �ca em sua posição inicial de calibração até o braço estender

seu atuador horizontal ↑ SB2, indicando estar pronto para entregar o cubo. Nesse

momento, o elevador se movimenta no trilho horizontal até encontrar a posição de

recebimento, indicada por ↑ B10, autorizando o braço a entregar o cubo. Após

receber o cubo, o elevador aguarda o atuador vertical do braço se estender com-

pletamente ↑ SB4, e inicia se movimento de recuo até a chave de �m de curso

horizontal ↑ CFC1. Após completar o recuo, o elevador aguarda o braço rotacionar

até a posição zero, identi�cada por ↑ B10, e inicia seu movimento vertical de subida

para armazenar o cubo.

89

Page 102: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

B↑ ⏐

1056

CFC

↑ ⏐⏐156

vSB

↑ ⏐⏐256

vSB

↑ ⏐⏐456

vSB

↑ ⏐556

Figura4.7:

SubsistemaS6projetadoporGAPANOWICZ[1](A

rmazenam

ento).

90

Page 103: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

O elevador sobe até identi�car o andar do próximo espaço de armazenamento

livre, condição veri�cada pela variável interna y, de valor inicial 0. Realizado o

movimento vertical, o elevador veri�ca a posição horizontal disponível para colocar

o cubo, obtida pela variável interna x, também de valor inicial nulo.

Identi�cada a posição correta, o elevador armazena o cubo estendendo seu atu-

ador e realizando um movimento vertical para baixo por 0,25s. Em seguida, o

atuador é recuado e o elevador retorna à posição inicial vertical e horizontal. Em

seguida, o subsistema S6 atualiza os valores das variáveis x e y, seguindo uma ló-

gica de implementação especí�ca para as características do estoque, possibilitando

o armazenamento dos cubos subsequentes.

4.1.7 Subsistema S7 (Quit)

O subsistema S7 modela o procedimento de parada do sistema. Sua RPIC pode

ser vista na �gura 4.8, com o índice s associado aos lugares e transições. Durante

qualquer etapa realizada pelos subsistemas apresentados anteriormente, sempre que

o usuário apertar a botoeira Quit no painel de controle, o subsistema S7 irá inter-

romper os processos inicializados, deixando o sistema global inoperante.

Interrompida a evolução do sistema, o usuário tem duas opções para reiniciali-

zação: a botoeira Start, ou a botoeira S6. A primeira reinicia o sistema realizando

o processo de calibração e zerando as variáveis auxiliares do estoque, de modo a

armazenar os cubos a partir da posição inicial, ignorando posições já preenchidas.

Já a segunda, recomeça o sistema considerando as variáveis do estoque, de forma a

armazenar o cubo seguinte no local imediatamente após o último armazenado.

Figura 4.8: Subsistema S7 projetado por GAPANOWICZ [1] (Quit).

91

Page 104: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Todas as sincronizações especi�cadas anteriormente estão detalhadas na tabela

4.2, com a descrição do evento, os subsistemas envolvidos, a situação de cada um

no momento da sincronização e suas transições síncronas envolvidas.

Tabela 4.2: Descrição das sincronizações do sistema de estocagem.

𝐄𝐯𝐞𝐧𝐭𝐨 𝐃𝐞𝐬𝐜𝐫𝐢çã𝐨 𝐝𝐨 𝐞𝐯𝐞𝐧𝐭𝐨 𝐒𝐮𝐛𝐬𝐢𝐬𝐭𝐞𝐦𝐚𝐬 𝐒𝐢𝐭𝐮𝐚çã𝐨 𝐓𝐫𝐚𝐧𝐬𝐢çõ𝐞𝐬

↑ SF Sensor de presença

fim da esteira

S2 − Seleção peça metálica

x S5 − Braço Mecânico

Peça metálica chegando

x Braço em posição inicial

ta19

x td1

↓ SF Sensor de presença

fim da esteira

S2 − Seleção peça metálica x

S3 − Seleção peça plástica

Peça metálica sendo retirada x

Início da seleção peça plástica

ta21 x

tb1

↑ SF Sensor de presença

fim da esteira

S3 − Seleção peça plástica x

S5 − Braço Mecânico

Peça plástica chegando x

Braço posicionado pós envio de peça metálica à prensa

tb15 x

td13

↑ SB1 Sensor atuador

horizontal braço recuado

S4 − Prensa x

S5 − Braço Mecânico

Prensa em espera na posição inicial x

Braço se posicionando após envio de ambas as peças à prensa

tp1 x

td16

↑ SP4 Sensor atuador

horizontal prensa estendido

S4 − Prensa x

S5 − Braço Mecânico

Prensa se posicionando após montagem do cubo

x Braço em espera

do processo da prensa

tp7 x

td17

↑ SB2

Sensor atuador horizontal

braço estendido

S5 − Braço Mecânico

x S6 − Armazenamento

Braço se posicionando para entregar cubo ao elevador

x Elevador em espera

na posição inicial

td23

x te1

↑ B10 Encoder

horizontal elevador

S5 − Braço Mecânico x

S6 − Armazenamento

Braço em espera

para entregar cubo ao elevador x

Elevador se posicionando para receber o cubo do braço

td24 x

te3

↑ SB4

Sensor atuador vertical

braço estendido

S5 − Braço Mecânico

x S6 − Armazenamento

Braço se posicionando para recuo seguro do elevador

x Elevador com peça em espera

para iniciar recuo

td27

x te4

↑ SB1 Sensor atuador

horizontal braço recuado

S2 − Seleção peça metálica x

S5 − Braço Mecânico

Sistema peça metálica em espera para reinicialização

x Braço se posicionando após

envio do cubo para o estoque

ta22 x

td28

↑ CFC1

Chave de fim de curso

horizontal elevador

S5 − Braço Mecânico

x S6 − Armazenamento

Braço em espera para iniciar rotação de volta

x Elevador recuando

td29

x te5

↑ SB5 Sensor indutivo

braço

S5 − Braço Mecânico

x S6 − Armazenamento

Braço se aproximando de sua posição zero

x Elevador em espera

para iniciar movimento vertical

td30

x te6

92

Page 105: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

4.2 Sincronização do sistema

Nesta seção, as especi�cações desenvolvidas na seção anterior serão aplicadas aos

algoritmos propostos para sincronização de SEDs, visando obter o módulo de sin-

cronização e as alterações necessárias no módulo de condições de disparo das tran-

sições.

Os dados da tabela 4.2 evidenciam onze sincronizações diferentes, sendo todas

entre dois subsistemas, com apenas uma transição de cada um envolvida. Nota-se

que os subsistemas S1, de calibração, e S7, de interrupção pelo botão Quit, não

estão envolvidos em nenhuma operação síncrona. Logo, os conjuntos de entrada

associados a ambos os subsistemas T S1 ; lm1 e TS7 ; lm7 serão nulos.

Além disso, os eventos ↑ SF e ↑ SB1 se associam a duas operações síncronas

distintas, sendo portanto sincronizados por agrupamento. A convenção adotada

para ↑ SF consiste na associação da sincronização entre as transições ta19 e td1 ao

grupo 1, e das transições tb15 e td13 ao grupo 2. Já em relação ao evento ↑ SB1,

adota-se o grupo 1 para a sincronização entre as transições ta22 e td28, e o grupo 2

para aquela entre tp1 e td16.

As demais transições síncronas são associadas ao grupo 1. Dessa forma, os

conjuntos de entrada do algoritmo de sincronização podem ser vistos na tabela 4.3.

Tabela 4.3: Conjuntos de entrada para sincronização do sistema de estocagem.

T S1 lm1T S2 lm2

T S3 lm3T S4 lm4

T S5 lm5T S6 lm6

T S7 lm7

- - ta19 1 tb1 1 tp1 2 td1 1 te1 1 - -

- - ta21 1 tb15 2 tp7 1 td13 2 te3 1 - -

- - ta22 1 td16 2 te4 1 - -

- - td17 1 te5 1 - -

- - td23 1 te6 1 - -

- - td24 1 - -

- - td27 1 - -

- - td28 1 - -

- - td29 1 - -

- - td30 1 - -

De�nidas as entradas a serem aplicadas ao algoritmo de sincronização 1, os passos

1, 2.1, 2.2, 2.3 e 2.4, de veri�cação dos dados, e os passos 2.5.1 e 2.5.2, de rotulação

dos eventos, podem ser executados.

93

Page 106: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Passo 1: Conjunto de eventos comuns Ec

A tabela 4.4 destaca o conjunto de eventos de cada subsistema que compõe o

sistema global de estocagem de cubos [1].

Tabela 4.4: Conjuntos de eventos do sistema de estocagem.

O algoritmo então calcula a intersecção dos conjuntos de eventos para cada par

de subsistemas e, em seguida, realiza a união de todos os resultados. Desse modo,

os eventos particulares de cada subsistema foram eliminados, obtendo-se o conjunto

de eventos comuns Ec da tabela 4.5:

Tabela 4.5: Passo 1 para o sistema de estocagem - Ec.

94

Page 107: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Passo 2.1: Conjunto de subsistemas de sincronização Lσ

Nessa etapa, são identi�cados os subsistemas com pelo menos uma transição de

sincronização para cada evento comum σ ∈ Ec, formando-se os conjuntos da tabela

4.6.

Tabela 4.6: Passo 2.1 para o sistema de estocagem - Lσ.

L↑B10 L↑CFC1 L↑SB1 L↑SB2 L↑SB4 L↑SB5 L↑SF L↑SP4 L↓SF5 5 2 5 5 5 2 4 2

6 6 4 6 6 6 3 5 3

5 5

Os conjuntos Lσ para os demais eventos comuns que não estão presentes na

tabela 4.6 são vazios. Logo, tem-se:

L↑CFC2 = ∅L↑Sensor Mag1 recuado = ∅

L↑ Sensor Mag2 = ∅L↑Sensor Mag2 recuado = ∅

L↑SC = ∅L↑SO = ∅L↑SP1 = ∅L↑SPF = ∅

Como os eventos relacionados imediatamente acima não serão sincronizados, o

passo 2.2 não permite a execução dos passos seguintes para nenhum deles.

Passo 2.3: Conjunto dos grupos de sincronização de cada subsistema M iσ

Nessa etapa, para cada evento σ representado na tabela 4.6, o algoritmo identi�ca

os grupos de sincronização presentes nos subsistemas do conjunto Lσ. A tabela 4.7

retrata os resultados obtidos nesse passo.

95

Page 108: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Tabela 4.7: Passo 2.3 para o sistema de estocagem - M iσ.

σ ∈ Ec M iσ

↑ B10 M5↑B10 = {1} M6

↑B10 = {1}

↑ CFC1 M5↑CFC1 = {1} M6

↑CFC1 = {1}

↑ SB1 M2↑SB1 = {1} M4

↑SB1 = {2} M5↑SB1 = {1, 2}

↑ SB2 M5↑SB2 = {1} M6

↑SB2 = {1}

↑ SB4 M5↑SB4 = {1} M6

↑SB4 = {1}

↑ SB5 M5↑SB5 = {1} M6

↑SB5 = {1}

↑ SF M2↑SF = {1} M3

↑SF = {2} M5↑SF = {1, 2}

↑ SP4 M4↑SP4 = {1} M5

↑SP4 = {1}

↓ SF M2↓SF = {1} M3

↓SF = {1}

Passo 2.4: Conjunto dos grupos admissíveis de cada evento Mσ

O objetivo dessa etapa é criar o conjunto dos grupos admissíveis de sincronização

para cada evento Mσ. Para isso, primeiramente é criado o conjunto de grupos

possíveis MPσ , através da união de todos os resultados do passo anterior para o

mesmo evento. A tabela 4.8 detalha todos os grupos possíveis.

Tabela 4.8: Grupos possíveis de sincronização em cada evento - MPσ .

σ ∈ Ec MPσ

↑ B10 MP↑B10 = {1}

↑ CFC1 MP↑CFC1 = {1}

↑ SB1 MP↑SB1 = {1, 2}

↑ SB2 MP↑SB2 = {1}

↑ SB4 MP↑SB4 = {1}

↑ SB5 MP↑SB5 = {1}

↑ SF MP↑SF = {1, 2}

↑ SP4 MP↑SP4 = {1}

↓ SF MP↓SF = {1}

96

Page 109: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Obtido o conjunto de grupos possíveis, o algoritmo veri�ca se cada grupo está

presente em ao menos dois subsistemas. Em caso positivo, tal grupo é adicionado

ao conjunto de grupos admissíveis do respectivo evento.

Como todos grupos de todos os eventos da tabela 4.8 estão associados a exata-

mente dois subsistemas diferentes, o conjunto de grupos admissíveis será igual ao

conjunto de grupos possíveis, não existindo nenhuma sincronização inconsistente. A

tabela 4.9 consolida o resultado do passo 2.4.

Tabela 4.9: Passo 2.4 para o sistema de estocagem - Mσ.

σ ∈ Ec Mσ

↑ B10 M↑B10 = {1}

↑ CFC1 M↑CFC1 = {1}

↑ SB1 M↑SB1 = {1, 2}

↑ SB2 M↑SB2 = {1}

↑ SB4 M↑SB4 = {1}

↑ SB5 M↑SB5 = {1}

↑ SF M↑SF = {1, 2}

↑ SP4 M↑SP4 = {1}

↓ SF M↓SF = {1}

Passos 2.5.1/2.5.2: Rotulação de eventos

Finalizados os passos de veri�cação de possíveis inconsistências nos dados de

entrada do usuário, o algoritmo inicia, no passo 2.5, a etapa de rotulação de eventos,

cujos resultados estão expostos na tabela 4.10.

No passo 2.5.1, os subsistemas que sincronizam cada evento em seus respectivos

grupos admissíveis são identi�cados e adicionados ao conjunto Lσn . As strings sub e

grupo são então criadas e as transições independentes, em cada caso de sincronização,

são incluídas nos conjuntos T Iσ .

Observando-se os resultados da tabela 4.10, nota-se a existência dos três tipos

de sincronização de�nidos pelo algoritmo: completa, seletiva e por agrupamento.

Como citado no início da presente seção, os eventos ↑ SB1 e ↑ SF são sincro-

nizados por agrupamento. Diante da con�guração imposta nos dados de entrada, o

primeiro grupo de ↑ SB1 é sincronizado entre os subsistemas S2 e S5, enquanto o

segundo entre S4 e S5. Com isso, tal evento será rotulado como dois eventos virtuais

diferentes: ↑ SB125V 1 e ↑ SB145

V 2. Vale ressaltar que as transições independentes,

td6, td12 e td21, permanecem associadas ao evento original ↑ SB1.

97

Page 110: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Tabela4.10:Rotulação

doseventospara

osistem

ade

estocagem.

Passo1

Ec

{↑B10,↑CFC1,↑SB1,↑SB2,↑SB4,↑SB5,↑SF,↑SP4,↓SF}

Passo2

∀σ∈Ec↑B10

↑CFC1

↑SB1

↑SB2

↑SB4

↑SB5

↑SF

↑SP4

↓SF

Passo2.1

{5,6}

{5,6}

{2,4,5}

{5,6}

{5,6}

{5,6}

{2,3,5}

{4,5}

{2,3}

Passo2.4

{1}

{1}

{1,2}

{1}

{1}

{1}

{1,2}

{1}

{1}

Passo2.5

∀n∈Mσ

11

12

11

11

21

1

Passo2.5.1

Lσn

{5,6}

{5,6}

{2,5}

{4,5}

{5,6}

{5,6}

{5,6}

{2,5}{3,5}

{4,5}

{2,3}

sub

"56"

"56"

"25"

"45"

"56"

"56"

"56"

"25"

"35"

"45"

"23"

gru

po

"V1"

"V1"

"V1"

"V2"

"V1"

"V1"

"V1"

"V1"

"V2"

"V1"

"V1"

TI σ

∅{te 1

4}

{td6,td12,td21}

{td3,td8,td18}{td2,td5,td10,td20}

∅{ta14,ta15}

∅∅

Passo2.5.2

Rn(σ)↑B10

56↑CFC156V↑SB12

5V1↑SB14

5V2

↑SB256V

↑SB45

6V

↑SB556↑SF

25

V1↑SF

35

V2↑SP44

5↓SF

23

98

Page 111: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Analogamente, o evento ↑ SF será rotulado também como dois eventos virtuais

distintos, ↑ SF 25V 1 e ↑ SF 35

V 2, e as transições independentes, ta14 e ta15, continuam

disparando pela ocorrência de ↑ SF .Já os eventos ↑ CFC1, ↑ SB2 e ↑ SB4 são caracterizados por sincronizações

seletivas. Isso decorre do fato de cada um deles estar associado a apenas um grupo

de sincronização, com a existência de ao menos uma transição independente em

um dos subsistemas envolvidos. Para o evento ↑ CFC1, por exemplo, a transição

te14 não foi selecionada para disparar de forma síncrona, permanecendo portanto

relacionada ao evento original. Dessa forma, apenas as transições selecionadas serão

sincronizadas, sendo associadas aos novos eventos virtuais criados pelas respectivas

funções de rotulação. No caso de ↑ CFC1, a rotulação é dada por ↑ CFC156V .

Por �m, os eventos ↑ B10, ↑ SB5, ↑ SP4 e ↓ SF são envolvidos em sincronizações

completas. Tal classi�cação é decorrente da associação desses eventos a apenas

um grupo de sincronização, porém, ao contrário do caso explicitado imediatamente

acima, sem que haja nenhuma transição independente nos subsistemas participantes.

Com isso, todas as transições que disparam por tais eventos serão sincronizadas entre

os subsistemas especi�cados, de modo a de�nir as funções de rotulação apenas com

o índice superior de identi�cação das RPICs participantes, como ↑ B1056 para o

evento ↑ B10, por exemplo.

A �m de facilitar a identi�cação visual das onze sincronizações diferentes para

o sistema de estocagem desenvolvido por GAPANOWICZ [1], todas as transições

síncronas foram marcadas nas RPICs dos subsistemas S2, S3, S4, S5 e S6, ilustradas

respectivamete nas �guras 4.3, 4.4, 4.5, 4.6 e 4.7, por cores e formas geométricas

diferentes. As cores simplesmente diferem os eventos, enquanto os formatos identi�-

cam os grupos de sincronização do evento em questão. As transições marcadas por

formas arredondadas estão associadas ao grupo 1, e aquelas destacadas por formas

retangulares, ao grupo 2. Além disso, os resultados das funções de rotulação obtidos

pelo passo 2.5.2 da tabela 4.10 também estão representados nas �guras das RPICs.

4.2.1 Módulo de Sincronização

Concluídas as etapas apresentadas, o módulo de sincronização do sistema de es-

tocagem é construído pelo passo 2.5.3 do algoritmo 1, considerando as funções de

rotulação de�nidas na tabela 4.10. A descrição do processo, linha a linha, está re-

tratada na tabela 4.11. De acordo com a equação 3.1, o número total de linhas do

diagrama Ladder do módulo é dado por:

Nsinc = (|L↑B101|+ 1) + (|L↑CFC11|+ 1) + (|L↑SB11 |+ 1) + (|L↑SB12|+ 1) +

(|L↑SB21|+ 1) + (|L↑SB41 |+ 1) + (|L↑SB51|+ 1) + (|L↑SF1|+ 1) + (|L↑SF2|+ 1) +

(|L↑SP41 |+ 1) + (|L↓SF1|+ 1) = 11 ∗ (2 + 1) = 33

99

Page 112: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Tabela 4.11: Construção do módulo de sincronização do sistema de estocagem.

𝑷𝒂𝒔𝒔𝒐 𝟐 𝑷𝒂𝒔𝒔𝒐 𝟐. 𝟓 𝑷𝒂𝒔𝒔𝒐 𝟐. 𝟓. 𝟐 𝑷𝒂𝒔𝒔𝒐 𝟐. 𝟓. 𝟑

𝒊 ∈ 𝑳𝝈𝒏 𝑳𝒊𝒏𝒉𝒂

𝑳𝒂𝒅𝒅𝒆𝒓

𝑰𝒕𝒆𝒎 𝟏 𝑰𝒕𝒆𝒎 𝟐 𝑰𝒕𝒆𝒎 𝟑

𝝈 ∈ 𝑬𝒄 𝒏 ∈ 𝑴𝝈 𝑹𝒏(𝝈) 𝑪𝒐𝒏𝒕𝒂𝒕𝒐 𝑵𝑨

𝑪𝒐𝒏𝒅𝒊çõ𝒆𝒔 𝒅𝒆 𝑯𝒂𝒃𝒊𝒍𝒊𝒕𝒂çã𝒐 𝑩𝒐𝒃𝒊𝒏𝒂 𝒎𝒐𝒅𝒊 𝑹𝒏(𝝈)

↑ 𝑩𝟏𝟎 1 ↑ 𝐵10

5 1 ↑ 𝐵10 {𝑡𝑑 } 𝑚𝑜𝑑 ↑ 𝐵10 6 2 ↑ 𝐵10 {𝑡𝑒 } 𝑚𝑜𝑑 ↑ 𝐵10

(𝑃𝑎𝑠𝑠𝑜 2.5.4 − 2 𝐶𝑜𝑛𝑡𝑎𝑡𝑜𝑠 𝑁𝐴)

𝑚𝑜𝑑 ↑ 𝐵10 ; 𝑚𝑜𝑑 ↑ 𝐵10 3

(𝑃𝑎𝑠𝑠𝑜 2.5.5 − 𝐵𝑜𝑏𝑖𝑛𝑎 𝐺𝑙𝑜𝑏𝑎𝑙)

𝑺𝒊𝒏𝒄 ↑ 𝑩𝟏𝟎𝟓𝟔

↑ 𝑪𝑭𝑪𝟏 1 ↑ 𝐶𝐹𝐶1

5 4 ↑ 𝐶𝐹𝐶1 {𝑡𝑑 } 𝑚𝑜𝑑 ↑ 𝐶𝐹𝐶1 6 5 ↑ 𝐶𝐹𝐶1 {𝑡𝑒 } 𝑚𝑜𝑑 ↑ 𝐶𝐹𝐶1

(𝑃𝑎𝑠𝑠𝑜 2.5.4 − 2 𝐶𝑜𝑛𝑡𝑎𝑡𝑜𝑠 𝑁𝐴)

𝑚𝑜𝑑 ↑ 𝐶𝐹𝐶1 ; 𝑚𝑜𝑑 ↑ 𝐶𝐹𝐶1 6

(𝑃𝑎𝑠𝑠𝑜 2.5.5 − 𝐵𝑜𝑏𝑖𝑛𝑎 𝐺𝑙𝑜𝑏𝑎𝑙)

𝑺𝒊𝒏𝒄 ↑ 𝑪𝑭𝑪𝟏𝑽𝟓𝟔

↑ 𝑺𝑩𝟏

1 ↑ 𝑆𝐵1 2 7 ↑ 𝑆𝐵1 {𝑡𝑎 } 𝑚𝑜𝑑 ↑ 𝑆𝐵1

5 8 ↑ 𝑆𝐵1 {𝑡𝑑 } 𝑚𝑜𝑑 ↑ 𝑆𝐵1 (𝑃𝑎𝑠𝑠𝑜 2.5.4 − 2 𝐶𝑜𝑛𝑡𝑎𝑡𝑜𝑠 𝑁𝐴)

𝑚𝑜𝑑 ↑ 𝑆𝐵1 ; 𝑚𝑜𝑑 ↑ 𝑆𝐵1 9

(𝑃𝑎𝑠𝑠𝑜 2.5.5 − 𝐵𝑜𝑏𝑖𝑛𝑎 𝐺𝑙𝑜𝑏𝑎𝑙)

𝑺𝒊𝒏𝒄 ↑ 𝑺𝑩𝟏𝑽𝟏𝟐𝟓

2 ↑ 𝑆𝐵1 4 10 ↑ 𝑆𝐵1 {𝑡𝑝 } 𝑚𝑜𝑑 ↑ 𝑆𝐵1

5 11 ↑ 𝑆𝐵1 {𝑡𝑑 } 𝑚𝑜𝑑 ↑ 𝑆𝐵1

(𝑃𝑎𝑠𝑠𝑜 2.5.4 − 2 𝐶𝑜𝑛𝑡𝑎𝑡𝑜𝑠 𝑁𝐴)

𝑚𝑜𝑑 ↑ 𝑆𝐵1 ; 𝑚𝑜𝑑 ↑ 𝑆𝐵1 12

(𝑃𝑎𝑠𝑠𝑜 2.5.5 − 𝐵𝑜𝑏𝑖𝑛𝑎 𝐺𝑙𝑜𝑏𝑎𝑙)

𝑺𝒊𝒏𝒄 ↑ 𝑺𝑩𝟏𝑽𝟐𝟒𝟓

↑ 𝑺𝑩𝟐 1 ↑ 𝑆𝐵2

5 13 ↑ 𝑆𝐵2 {𝑡𝑑 } 𝑚𝑜𝑑 ↑ 𝑆𝐵2 6 14 ↑ 𝑆𝐵2 {𝑡𝑒 } 𝑚𝑜𝑑 ↑ 𝑆𝐵2

(𝑃𝑎𝑠𝑠𝑜 2.5.4 − 2 𝐶𝑜𝑛𝑡𝑎𝑡𝑜𝑠 𝑁𝐴)

𝑚𝑜𝑑 ↑ 𝑆𝐵2 ; 𝑚𝑜𝑑 ↑ 𝑆𝐵2 15

(𝑃𝑎𝑠𝑠𝑜 2.5.5 − 𝐵𝑜𝑏𝑖𝑛𝑎 𝐺𝑙𝑜𝑏𝑎𝑙)

𝑺𝒊𝒏𝒄 ↑ 𝑺𝑩𝟐𝑽𝟓𝟔

↑ 𝑺𝑩𝟒 1 ↑ 𝑆𝐵4

5 16 ↑ 𝑆𝐵4 {𝑡𝑑 } 𝑚𝑜𝑑 ↑ 𝑆𝐵4 6 17 ↑ 𝑆𝐵4 {𝑡𝑒 } 𝑚𝑜𝑑 ↑ 𝑆𝐵4

(𝑃𝑎𝑠𝑠𝑜 2.5.4 − 2 𝐶𝑜𝑛𝑡𝑎𝑡𝑜𝑠 𝑁𝐴)

𝑚𝑜𝑑 ↑ 𝑆𝐵4 ; 𝑚𝑜𝑑 ↑ 𝑆𝐵4 18

(𝑃𝑎𝑠𝑠𝑜 2.5.5 − 𝐵𝑜𝑏𝑖𝑛𝑎 𝐺𝑙𝑜𝑏𝑎𝑙)

𝑺𝒊𝒏𝒄 ↑ 𝑺𝑩𝟒𝑽𝟓𝟔

↑ 𝑺𝑩𝟓 1 ↑ 𝑆𝐵5

5 19 ↑ 𝑆𝐵5 {𝑡𝑑 } 𝑚𝑜𝑑 ↑ 𝑆𝐵5 6 20 ↑ 𝑆𝐵5 {𝑡𝑒 } 𝑚𝑜𝑑 ↑ 𝑆𝐵5

(𝑃𝑎𝑠𝑠𝑜 2.5.4 − 2 𝐶𝑜𝑛𝑡𝑎𝑡𝑜𝑠 𝑁𝐴)

𝑚𝑜𝑑 ↑ 𝑆𝐵5 ; 𝑚𝑜𝑑 ↑ 𝑆𝐵5 21

(𝑃𝑎𝑠𝑠𝑜 2.5.5 − 𝐵𝑜𝑏𝑖𝑛𝑎 𝐺𝑙𝑜𝑏𝑎𝑙)

𝑺𝒊𝒏𝒄 ↑ 𝑺𝑩𝟓𝟓𝟔

↑ 𝑺𝑭

1 ↑ 𝑆𝐹

2 22 ↑ 𝑆𝐹 {𝑡𝑎 } 𝑚𝑜𝑑 ↑ 𝑆𝐹 5 23 ↑ 𝑆𝐹 {𝑡𝑑 } 𝑚𝑜𝑑 ↑ 𝑆𝐹

(𝑃𝑎𝑠𝑠𝑜 2.5.4 − 2 𝐶𝑜𝑛𝑡𝑎𝑡𝑜𝑠 𝑁𝐴)

𝑚𝑜𝑑 ↑ 𝑆𝐹 ; 𝑚𝑜𝑑 ↑ 𝑆𝐹 24

(𝑃𝑎𝑠𝑠𝑜 2.5.5 − 𝐵𝑜𝑏𝑖𝑛𝑎 𝐺𝑙𝑜𝑏𝑎𝑙)

𝑺𝒊𝒏𝒄 ↑ 𝑺𝑭𝑽𝟏𝟐𝟓

2 ↑ 𝑆𝐹

3 25 ↑ 𝑆𝐹 {𝑡𝑏 } 𝑚𝑜𝑑 ↑ 𝑆𝐹 5 26 ↑ 𝑆𝐹 {𝑡𝑑 } 𝑚𝑜𝑑 ↑ 𝑆𝐹

(𝑃𝑎𝑠𝑠𝑜 2.5.4 − 2 𝐶𝑜𝑛𝑡𝑎𝑡𝑜𝑠 𝑁𝐴)

𝑚𝑜𝑑 ↑ 𝑆𝐹 ; 𝑚𝑜𝑑 ↑ 𝑆𝐹 27

(𝑃𝑎𝑠𝑠𝑜 2.5.5 − 𝐵𝑜𝑏𝑖𝑛𝑎 𝐺𝑙𝑜𝑏𝑎𝑙)

𝑺𝒊𝒏𝒄 ↑ 𝑺𝑭𝑽𝟐𝟑𝟓

↑ 𝑺𝑷𝟒 1 ↑ 𝑆𝑃4

4 28 ↑ 𝑆𝑃4 {𝑡𝑝 } 𝑚𝑜𝑑 ↑ 𝑆𝑃4 5 29 ↑ 𝑆𝑃4 {𝑡𝑑 } 𝑚𝑜𝑑 ↑ 𝑆𝑃4

(𝑃𝑎𝑠𝑠𝑜 2.5.4 − 2 𝐶𝑜𝑛𝑡𝑎𝑡𝑜𝑠 𝑁𝐴)

𝑚𝑜𝑑 ↑ 𝑆𝑃4 ; 𝑚𝑜𝑑 ↑ 𝑆𝑃4 30

(𝑃𝑎𝑠𝑠𝑜 2.5.5 − 𝐵𝑜𝑏𝑖𝑛𝑎 𝐺𝑙𝑜𝑏𝑎𝑙)

𝑺𝒊𝒏𝒄 ↑ 𝑺𝑷𝟒𝟒𝟓

↓ 𝑺𝑭 1 ↓ 𝑆𝐹

2 31 ↓ 𝑆𝐹 {𝑡𝑎 } 𝑚𝑜𝑑 ↓ 𝑆𝐹 3 32 ↓ 𝑆𝐹 {𝑡𝑏 } 𝑚𝑜𝑑 ↓ 𝑆𝐹

(𝑃𝑎𝑠𝑠𝑜 2.5.4 − 2 𝐶𝑜𝑛𝑡𝑎𝑡𝑜𝑠 𝑁𝐴)

𝑚𝑜𝑑 ↓ 𝑆𝐹 ; 𝑚𝑜𝑑 ↓ 𝑆𝐹 33

(𝑃𝑎𝑠𝑠𝑜 2.5.5 − 𝐵𝑜𝑏𝑖𝑛𝑎 𝐺𝑙𝑜𝑏𝑎𝑙)

𝑺𝒊𝒏𝒄 ↓ 𝑺𝑭𝟐𝟑

100

Page 113: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

O código desenvolvido, exposto no Apêndice A, foi utilizado para o sistema de

estocagem, considerando os dados de entrada da tabela 4.3. O resultado obtido para

o módulo de sincronização está representado na �gura 4.9.

As especi�cações de sincronização do sistema estudado o caracterizam como um

caso particular do método geral proposto. Dentre as particularidades do referido

sistema, pode-se destacar:

1. Todas as sincronizações envolvem apenas dois subsistemas. Com isso, a estru-

tura do módulo de sincronização será a mesma para cada operação síncrona,

sendo formada por três linhas Ladder: duas para as bobinas individuais dos

subsistemas e uma para a bobina global de sincronização.

2. Todas as sincronizações contemplam somente uma transição de cada subsis-

tema envolvido na operação. Logo, em todas as linhas associadas às bobinas

individuais dos subsistemas, serão implementadas as condições de habilitação

de uma única transição, sem a existência de nenhum ramo em paralelo.

3. Todas as transições de sincronização são associadas à condição unitária de

disparo c = 1. Desse modo, o contato NA vinculado à condição c será omitido

nas condições de habilitação de cada transição síncrona.

4. Nenhuma transição de sincronização possui arcos inibidores condicionando seu

disparo. Por consequência, não haverá nenhum contato comparador regido

pela lógica ”menor que” nas condições de habilitação das transições síncronas.

Apenas aqueles com a lógica ”maior ou igual” serão inseridos.

5. Nenhuma transição de sincronização se conecta a um lugar de entrada por

arcos ordinários com peso maior do que um. Dessa forma, todos os contatos

comparadores inseridos nas condições de habilitação das transições síncronas

serão regidos pela lógica ”maior ou igual a 1”.

6. Todas as transições de sincronização possuem apenas um lugar de entrada.

Diante disso, as condições de habilitação de cada transição síncrona serão

compostas apenas por um contato comparador regido pela lógica ”x(p) ≥ 1”,

para o único lugar de entrada p da respectiva transição.

7. As sincronizações por agrupamento existentes não envolvem o mesmo conjunto

de subsistemas. O sensor de presença da esteira ↑ SF , por exemplo, sincroniza

a aceitação de uma peça metálica (S2), e posteriormente de uma peça plástica

(S3), com o movimento do braço mecânico (S5), pelos eventos virtuais ↑ SF 25V 1

e ↑ SF 35V 2. O método geral permitiria uma outra sincronização entre S2 e S5,

por meio, por exemplo, de uma participação hipotética do braço no processo

de descarte das peças rejeitadas, com a criação de outro evento virtual ↑ SF 25V 3.

101

Page 114: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

↑B10 mod5 (↑B10)56

L1 COMPx(pd23) >= 1

td24 - mod 5 (↑B10)↑B10 mod6 (↑B10)56

L2 COMPx(pe3) >= 1

te3 - mod 6 (↑B10)mod5 (↑B10)56 mod6 (↑B10)56 SINC (↑B10)56

L3

↑CFC1 mod5 (↑CFC1)56V

L4 COMPx(pd28) >= 1

td29 - mod 5 (↑CFC1)↑CFC1 mod6 (↑CFC1)56

VL5 COMP

x(pe5) >= 1te5 - mod 6 (↑CFC1)

mod5 (↑CFC1)56V mod6 (↑CFC1)56

V SINC (↑CFC1)56V

L6

↑SB1 mod2 (↑SB1)25V1

L7 COMPx(pa20) >= 1

ta22 - mod 2 (↑SB1)↑SB1 mod5 (↑SB1)25

V1L8 COMP

x(pd27) >= 1td28 - mod 5 (↑SB1)

mod2 (↑SB1)25V1 mod5 (↑SB1)25

V1 SINC (↑SB1)25V1

L9

↑SB1 mod4 (↑SB1)45V2

L10 COMPx(pp1) >= 1

tp1 - mod 4 (↑SB1)↑SB1 mod5 (↑SB1)45

V2L11 COMP

x(pd15) >= 1td16 - mod 5 (↑SB1)

mod4 (↑SB1)45V2 mod5 (↑SB1)45

V2 SINC (↑SB1)45V2

L12

↑SB2 mod5 (↑SB2)56V

L13 COMPx(pd22) >= 1

td23 - mod 5 (↑SB2)↑SB2 mod6 (↑SB2)56

VL14 COMP

x(pe1) >= 1te1 - mod 6 (↑SB2)

mod5 (↑SB2)56V mod6 (↑SB2)56

V SINC (↑SB2)56V

L15

↑SB4 mod5 (↑SB4)56V

L16 COMPx(pd26) >= 1

td27 - mod 5 (↑SB4)↑SB4 mod6 (↑SB4)56

VL17 COMP

x(pe4) >= 1te4 - mod 6 (↑SB4)

mod5 (↑SB4)56V mod6 (↑SB4)56

V SINC (↑SB4)56V

L18

102

Page 115: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

↑SB5 mod5 (↑SB5)56

L19 COMPx(pd29) >= 1

td30 - mod 5 (↑SB5)↑SB5 mod6 (↑SB5)56

L20 COMPx(pe6) >= 1

te6 - mod 6 (↑SB5)mod5 (↑SB5)56 mod6 (↑SB5)56 SINC (↑SB5)56

L21

↑SF mod2 (↑SF)25V1

L22 COMPx(pa14) >= 1

ta19 - mod 2 (↑SF)↑SF mod5 (↑SF)25

V1L23 COMP

x(pd1) >= 1td1 - mod 5 (↑SF)

mod2 (↑SF)25V1 mod5 (↑SF)25

V1 SINC (↑SF)25V1

L24

↑SF mod3 (↑SF)35V2

L25 COMPx(pb12) >= 1

tb15 - mod 3 (↑SF)↑SF mod5 (↑SF)35

V2L26 COMP

x(pd13) >= 1td13 - mod 5 (↑SF)

mod3 (↑SF)35V2 mod5 (↑SF)35

V2 SINC (↑SF)35V2

L27

↑SP4 mod4 (↑SP4)45

L28 COMPx(pp7) >= 1

tp7 - mod 4 (↑SP4)↑SP4 mod5 (↑SP4)45

L29 COMPx(pd16) >= 1

td17 - mod 5 (↑SP4)mod4 (↑SP4)45 mod5 (↑SP4)45 SINC (↑SP4)45

L30

↓SF mod2 (↓SF)23

L31 COMPx(pa16) >= 1

ta21 - mod 2 (↓SF)↓SF mod3 (↓SF)23

L32 COMPx(pb1) >= 1

tb1 - mod 3 (↓SF)mod2 (↓SF)23 mod3 (↓SF)23 SINC (↓SF)23

L33

Figura 4.9: Módulo de Sincronização do sistema de estocagem, obitido pelo algo-ritmo 1.

103

Page 116: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

A �m de comparar o resultado do algoritmo 1 com o implementado na prática,

o módulo de sincronização original criado por GAPANOWICZ [1] está retratado na

�gura 4.10. O primeiro aspecto a ser destacado reside no fato de que o módulo

implementado é constituído apenas pelas linhas de energização das bobinas indivi-

duais dos subsistemas. Não há, portanto, a abordagem com uma bobina global de

sincronização adotada pelo método geral.

Além disso, devido às particularidades explicitadas anteriormente nos itens 4, 5 e

6, os contatos comparadores, utilizados pelo método geral para de�nir as condições

de habilitação das transições, foram substituídos no diagrama implementado em [1]

por contatos NA.

Vale ressaltar, ainda, que os contatos NA adotados pelo algoritmo para cada

evento foram substituídos na implementação por contatos tipo P , ou N , já que

os dispositivos utilizados na prática reconheciam bordas de subida e descida, não

havendo necessidade, portanto, da elaboração do módulo dos eventos externos.

Apesar das diferenças citadas, nota-se que ambos os diagramas Ladder possuem

a mesma dinâmica. O evento ↑ B10 do algoritmo foi representado na prática pela

variável "Estoque-Encoder horizontal(B10)", sendo a primeira linha energizada por

uma �cha no lugar pd23 e a segunda em pe3. Para ↑ CFC1 foi adotada a variável

"Estoque-CFC frente(S13)", com uma linha energizada por pd28 e a outra por pe5.

Em seguida, ↑ SB1 foi retratado como "Braço-atuador horizontal recuado", sendo

as linhas do primeiro grupo acionadas pelos lugares pa20 e pd27, e as do segundo

grupo por pp1 e pd15. O evento ↑ SB2 foi simbolizado por "Braço-atuador hori-

zontal estendido", com as linhas energizadas pelos lugares pd22 e pe1. Logo abaixo

no diagrama, ↑ SB4 teve sua representação na prática por "Braço-atuador vertical

estendido", energizando suas linhas por pd26 e pe4. Na sequência, o evento ↑ SB5

foi ilustrado por "Braço-sensor indutivo", tendo suas duas linhas regidas pelos lu-

gares pd29 e pe6. Mais abaixo, ↑ SF foi representado por "Esteira-Sensor optico de

presença", com as linhas do primeiro grupo regidas por pa14 e pd1, e as do segundo

grupo por pb12 e pd13. O evento seguinte ↑ SP4, retratado como "Prensa-atuador

horizontal estendido", teve suas linhas acionadas por pp7 e pd16. E por �m, o evento

↓ SF teve suas linhas energizadas pelos lugares pa16 e pb1.

A �m de possibilitar uma sincronização por dois grupos diferentes, GAPA-

NOWICZ [1] identi�cou as bobinas de cada grupo utilizando apenas os índices das

RPICs dos subsistemas envolvidos. Para o evento ↑ SF , por exemplo, as bobinas

do grupo 1 foram especi�cadas como "Mod1ad" e "Mod2ad" e as do grupo 2 como

"Mod1bd" e "Mod2bd", sendo o índice a para S2, b para S3 e d para S5. Tal notação,

no entanto, não permitiria a sincronização desse evento por um terceiro grupo entre

uma dupla de subsistemas já sincronizados, como S2 e S5. Fato esse contemplado

pelo algoritmo do método geral, conforme especi�cado no item 7.

104

Page 117: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 4.10: Módulo de Sincronização original do sistema de estocagem implemen-tado por GAPANOWICZ [1]. 105

Page 118: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

4.2.2 Módulo das condições de disparo das transições

Concluída a construção do módulo de sincronização, torna-se necessária a atuali-

zação do módulo das condições de disparo, originalmente construído conforme as

regras de conversão de RPICs para diagramas Ladder descritas na seção 2.4.2. Tal

alteração é realizada para considerar as informações obtidas no recém criado mó-

dulo de sincronização, de modo a condicionar a operação das transições síncronas

conforme as especi�cações do sistema.

O algoritmo 2 foi então utilizado. A lógica de alteração do diagrama Ladder

do módulo das condições para o sistema de estocagem está ilustrada na tabela

4.12. Cada transição síncrona do grupo 1 do evento ↑ B10, ou seja, do conjunto

T(↑B10)1 = {td24, te3}, terá sua linha alterada, eliminando-se o contato NA original

em ↑ B10 e inserindo-se um novo contato NA com a variável da bobina global de

sincronização Sinc ↑ B1056. O mesmo procedimento será adotado para as demais

transições.

Aquelas do conjunto T(↑CFC1)1 = {td29, te5} terão seus contatos NA em ↑ CFC1

substituídos por novos em Sinc ↑ CFC156V . As pertencentes a T(↑SB1)1 = {ta22, td28}

sofrerão alteração em suas linhas inserindo-se o contato NA em Sinc ↑ SB125V 1 no

lugar de ↑ SB1. As transições de T(↑SB1)2 = {tp1, td16}, substituirão o contato em

↑ SB1 por outro em Sinc ↑ SB145V 2. As do conjunto T(↑SB2)1 = {td23, te1} terão seus

contatos em ↑ SB2 excluídos para adição de novos contatos em Sinc ↑ SB256V . Para

T(↑SB4)1 = {td27, te4}, será realizada a eliminação do contato em ↑ SB4 para adição

de outro em Sinc ↑ SB456V . Em relação à T(↑SB5)1 = {td30, te6}, haverá a substituição

do contato em ↑ SB5 por outro em Sinc ↑ SB556. As linhas das transições do

conjunto T(↑SF )1 = {ta19, td1} serão alteradas eliminando-se o componente em ↑ SFpara inserção de outro em Sinc ↑ SF 25

V 1. Da mesma forma, aquelas presentes em

T(↑SF )2 = {tb15, td13} terão os contatos em ↑ SF excluídos para adição de novos

contatos em Sinc ↑ SF 35V 2. Em seguida, serão eliminados os contatos em ↑ SP4

das transições de T(↑SP4)1 = {tp7, td17}, e inseridos novos em Sinc ↑ SP445. Por

�m, as transições pertencentes ao conjunto T(↓SF )1 = {ta21, tb1} terão suas linhas

alteradas através da eliminação dos contatos NA em ↓ SF para inserção dos mesmos

componentes em Sinc ↓ SF 23.

Diante do elevado número de transições do sistema de estocagem, por questão de

conveniência, o módulo das condições de disparo não será exibido em sua totalidade

neste trabalho. A �gura 4.11 retrata, então, apenas as linhas que sofreram alterações

pelo algoritmo 2 proposto.

Já a �gura 4.12 ilustra as linhas do módulo das condições de disparo que foram

alteradas originalmente por GAPANOWICZ [1] na implementação do sistema de

estocagem.

106

Page 119: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Tabela4.12:Alteração

domódulode

cond

içõesde

disparodo

sistem

ade

estocagem.

107

Page 120: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 4.11: Linhas do módulo de condições de disparo do sistema de estocagemalteradas pelo algoritmo 2.

108

Page 121: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 4.12: Linhas do módulo de condições de disparo do sistema de estocagemalteradas por GAPANOWICZ [1].

109

Page 122: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Analisando as �guras 4.11 e 4.12, constata-se que ambos os diagramas Ladder

possuem o mesmo comportamento dinâmico, de modo a garantir as especi�cações de

sincronização do sistema. Nas duas abordagens são alteradas as 22 linhas do módulo

das condições de disparo que energizam a bobina associada à cada transição síncrona

do sistema. A diferença, como detalhado anteriormente na construção do módulo de

sincronização, consiste no fato de que o algoritmo adota contatos comparativos para

a habilitação das transições, além de utilizar apenas um contato NA, regido pela

bobina global de sincronização, para garantir a operação síncrona em cada linha. Já

na implementação, adotam-se contatos NA para as habilitações das transições, e a

operação síncrona de cada linha é garantida pela associação em série de contatos NA

regidos pelas bobinas individuais de sincronização de cada subsistema envolvido.

Diante dos resultados apresentados, é notório o caráter geral da metodologia

de sincronização de SEDs proposta. Os algoritmos 1 e 2 permitem que o usuário

personalize operações síncronas para um evento comum entre quaisquer subsistemas,

independentemente das particularidades das RPICs envolvidas, como a presença de

arcos ordinários com peso maior do que um, e de arcos inibidores.

4.3 Sincronização do sistema em rede

Nesta seção, será abordada uma sincronização em rede do sistema de estocagem

de cubos. No cenário suposto, cada um dos sete subsistemas será tratado como

um componente individual a ser implementado em seu próprio CLP. Entretanto, é

importante ressaltar que os subsistemas S2 e S3 poderiam ter sido considerados no

mesmo CLP nesse exemplo especí�co, uma vez que controlam o mesmo módulo físico.

Será considerado, ainda, que cada CLP observa a ocorrência de todos os eventos de

seu respectivo subsistema. As especi�cações das sincronizações a serem realizadas

são as mesmas da seção anterior, descritas pela tabela 4.2. Os algoritmos 3 e 4 serão

então utilizados para a obtenção, respectivamente, dos módulos de comunicação e

das alterações necessárias dos módulos das condições de disparo.

Conforme descrito na seção 3.3.1, as etapas iniciais de tratamento dos dados e

rotulação de eventos do algoritmo 3, de criação dos módulos de comunicação, são

essencialmente idênticas àquelas realizadas pelo algoritmo 1, de criação do módulo

de sincronização. Com isso, os conjuntos de entrada a serem aplicadas para a sin-

cronização em rede são vistos na tabela 4.3, com os resultados dos passos 1, 2.1, 2.3

e 2.4 retratados, respectivamente, pelas tabelas 4.5, 4.6, 4.7 e 4.9, e as funções de

rotulação de eventos, pela tabela 4.10.

110

Page 123: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

4.3.1 Módulos de Comunicação

Com base nas tabelas supracitadas, o procedimento de construção do módulo de

comunicação de cada subsistema está ilustrado na tabelas 4.13 e 4.14. O algoritmo

veri�ca, no passo 2.5.3, os subsistemas envolvidos em cada grupo admissível, de

cada evento de sincronização, adicionando quatro linhas Ladder aos seus módulos

de sincronização, conforme ilustrado na �gura 3.21. O subsistema S2, de seleção

de peças metálicas, opera de modo síncrono apenas para o grupo 1 dos eventos

↑ SB1, ↑ SF e ↓ SF , como evidenciado pelos resultados do passo 2.3, mostrados na

tabela 4.7. Logo, de acordo com a equação 3.2, o número de linhas do módulo de

comunicação de S2, N2com, é dado por:

N2com = 4 ∗ (|M2

↑SB1|+ |M2↑SF |+ |M2

↓SF |) = 4 ∗ (1 + 1 + 1) = 12

As primeiras quatro linhas do módulo referem-se à sincronização de ↑ SB1. A

primeira linha será composta por um contato NA no referido evento, em série com

as condições de habilitação da única transição síncrona especi�cada, ta22, e a bobina

individual do subsistema S2 para essa sincronização, "mod2 ↑ SB125V 1". A segunda

linha exporta o sinal dessa bobina para os outros subsistemas que sincronizam ↑SB1 pelo grupo 1, no caso apenas S5, associando sua variável a um bloco PUT.

Já a terceira linha, recebe por um bloco GET o sinal da bobina individual do

subsistema parceiro S5, para a mesma sincronização. As informações criadas nas

linhas anteriores são então adicionadas à linha 4, com a criação de dois contatos NA:

um energizado pela bobina local da linha 1, e o outro pela bobina do subsistema

parceiro S5, obtida pelo bloco GET. Por �m, a bobina �nal de sincronização para o

subsistema S2, "Sinc2 ↑ SB125V 1", é adicionada em série aos contatos da linha 4.

De modo análogo, as linhas 5 a 8 do módulo de comunicação de S2 serão criadas

para a sincronização do evento ↑ SF pelo grupo 1. Na linha 5 adicionam-se o contato

NA em ↑ SF , as condições de habilitação de ta19, e a bobina local "mod2 ↑ SF 25V 1".

Na linha 6, o sinal da bobina recém criada é enviado ao subsistema parceiro S5

pelo bloco PUT. A linha 7 é responsável por obter o sinal da bobina do subsistema

S5 pelo bloco GET. E, en�m, na linha 8 são conectados dois contatos NA para as

variáveis das bobinas local e remota, em série com a bobina �nal "Sinc2 ↑ SF 25V 1".

Finalizando o módulo de comunicação de S2, as linhas 9 a 12 são referentes à

sincronização do evento ↓ SF pelo grupo 1. Na linha 9, são criados o contato NA

no evento em questão, as habilitações de ta21 e a bobina "mod2 ↓ SF 23". A linha

10 envia o sinal da referida bobina para o subsistema parceiro S3 através de um

bloco PUT, enquanto a linha 11 recebe o sinal da bobina de S3, por um bloco GET.

Ambos os sinais são associados em série na linha 12, energizando a bobina �nal

"Sinc2 ↓ SF 23". O módulo de comunicação completo de S2, obtido pelo algoritmo

3, é mostrado na �gura 4.13.

111

Page 124: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Tabela4.13:Construçãodosmódulos

decomun

icação

dosistem

ade

estocagem

[1]con�

gurado

emrede.

𝑷𝒂

𝒔𝒔

𝒐

𝟐

𝑷𝒂

𝒔𝒔𝒐

𝟐

.𝟓

𝑷𝒂

𝒔𝒔𝒐

𝟐

.𝟓.𝟐

𝑷

𝒂𝒔𝒔

𝒐

𝟐.𝟓

.𝟑

𝑺𝟐

−𝑺

𝒆𝒍𝒆

çã𝒐

𝑷𝒆

ç𝒂 𝑴

𝒆𝒕á

𝒍𝒊𝒄𝒂

𝑺

𝟑−

𝑺𝒆

𝒍𝒆çã

𝒐 𝑷

𝒆ç𝒂

𝑷𝒍á

𝒔𝒕𝒊

𝒄𝒂

𝑺𝟒

−𝑷

𝒓𝒆

𝒏𝒔

𝒂

𝑺𝟓

−𝑩

𝒓𝒂

ç𝒐 𝑴

𝒆𝒄

â𝒏𝒊𝒄

𝒐

𝑺𝟔

−𝑨

𝒓𝒎

𝒂𝒛

𝒆𝒏

𝒂𝒎

𝒆𝒏

𝒕𝒐

𝝈∈

𝑬𝒄

𝒏∈

𝑴𝝈

𝑹

𝒏(𝝈

) 𝒊

∈𝑳

𝝈𝒏

𝑳

𝑪𝒐

𝒎𝒑

𝒐𝒏

𝒆𝒏

𝒕𝒆𝒔

𝑳

𝑪𝒐

𝒎𝒑

𝒐𝒏

𝒆𝒏

𝒕𝒆𝒔

𝑳

𝑪𝒐

𝒎𝒑

𝒐𝒏

𝒆𝒏

𝒕𝒆𝒔

𝑳

𝑪𝒐

𝒎𝒑

𝒐𝒏

𝒆𝒏

𝒕𝒆𝒔

𝑳

𝑪𝒐

𝒎𝒑

𝒐𝒏

𝒆𝒏

𝒕𝒆𝒔

↑𝑩

𝟏𝟎

𝟏

𝐵1

05

6

5 6

𝟏

↑𝑩

𝟏𝟎

𝐻

𝑎𝑏

. {𝑡

𝑑2

4}

𝑚𝑜

𝑑5

𝐵1

05

6

𝟏

𝑩𝟏

𝟎

𝐻𝑎

𝑏.

{𝑡𝑒 3

} 𝑚

𝑜𝑑

6 𝐵

10

56

𝟐

𝑷𝑼

𝑻

𝑚𝑜

𝑑5 𝐵

10

56

𝟐

𝑷𝑼

𝑻

𝑚𝑜

𝑑6

𝐵1

05

6

𝟑

𝑮𝑬

𝑻

𝑚𝑜

𝑑6 𝐵

10

56

𝟑

𝑮𝑬

𝑻

𝑚𝑜

𝑑5

𝐵1

05

6

𝟒

𝑚𝑜

𝑑( 5

−6

) 𝐵

10

56

𝑺𝒊𝒏

𝒄 𝟓 𝑩

𝟏𝟎

𝟓𝟔

𝟒

𝑚

𝑜𝑑

( 5−

6)

𝐵1

05

6

𝑺𝒊𝒏

𝒄𝟔

𝑩𝟏

𝟎𝟓

𝟔

↑𝑪

𝑭𝑪

𝟏

𝟏

↑𝐶

𝐹𝐶

1𝑉5

6

5 6

𝟓

↑𝑪

𝑭𝑪

𝟏

𝐻

𝑎𝑏

. {𝑡

𝑑2

9}

𝑚𝑜

𝑑5

𝐶𝐹

𝐶1

𝑉56

𝟓

𝑪𝑭

𝑪𝟏

𝐻

𝑎𝑏

. {𝑡

𝑒 5}

𝑚𝑜

𝑑6

𝐶𝐹

𝐶1

𝑉56

𝟔

𝑷𝑼

𝑻

𝑚𝑜

𝑑5

𝐶𝐹

𝐶1

𝑉56

𝟔

𝑷𝑼

𝑻

𝑚𝑜

𝑑6

𝐶𝐹

𝐶1

𝑉56

𝟕

𝑮𝑬

𝑻

𝑚𝑜

𝑑6

𝐶𝐹

𝐶1

𝑉56

𝟕

𝑮𝑬

𝑻

𝑚𝑜

𝑑5

𝐶𝐹

𝐶1

𝑉56

𝟖

𝑚𝑜

𝑑( 5

−6

) 𝐶

𝐹𝐶

1𝑉5

6

𝑺𝒊𝒏

𝒄𝟓

𝑪𝑭

𝑪𝟏

𝑽𝟓𝟔

𝟖

𝑚

𝑜𝑑

( 5−

6)

𝐶𝐹

𝐶1

𝑉56

𝑺𝒊𝒏

𝒄𝟔

𝑪𝑭

𝑪𝟏

𝑽𝟓𝟔

↑𝑺

𝑩𝟏

𝟏

↑𝑆

𝐵1

𝑉1

25

2 5

𝟏

↑𝑺

𝑩𝟏

𝐻

𝑎𝑏

. {𝑡

𝑎2

2}

𝑚𝑜

𝑑2

𝑆𝐵

1𝑉

12

5

𝟗

𝑺𝑩

𝟏

𝐻𝑎

𝑏.

{𝑡𝑑

28

}

𝑚𝑜

𝑑5

𝑆𝐵

1𝑉

12

5

𝟐

𝑷𝑼

𝑻

𝑚𝑜

𝑑2

𝑆𝐵

1𝑉

12

5

𝟏𝟎

𝑷

𝑼𝑻

𝑚

𝑜𝑑

5 𝑆

𝐵1

𝑉1

25

𝟑

𝑮𝑬

𝑻

𝑚𝑜

𝑑5

𝑆𝐵

1𝑉

12

5

𝟏𝟏

𝑮

𝑬𝑻

𝑚

𝑜𝑑

2 𝑆

𝐵1

𝑉1

25

𝟒

𝑚𝑜

𝑑( 2

−5

) 𝑆

𝐵1

𝑉1

25

𝑺𝒊𝒏

𝒄𝟐

𝑺𝑩

𝟏𝑽

𝟏𝟐

𝟓

𝟏

𝟐

𝑚𝑜

𝑑( 2

−5

) 𝑆

𝐵1

𝑉1

25

𝑺𝒊𝒏

𝒄𝟓

𝑺𝑩

𝟏𝑽

𝟏𝟐

𝟓

𝟐

↑𝑆

𝐵1

𝑉2

45

4 5

𝟏

↑𝑺

𝑩𝟏

𝐻

𝑎𝑏

. {𝑡

𝑝1

}

𝑚𝑜

𝑑4

𝑆𝐵

1𝑉

24

5

𝟏

𝟑

↑𝑺

𝑩𝟏

𝐻

𝑎𝑏

. {𝑡

𝑑1

6}

𝑚𝑜

𝑑5

𝑆𝐵

1𝑉

24

5

𝟐

𝑷𝑼

𝑻

𝑚𝑜

𝑑4

𝑆𝐵

1𝑉

24

5

𝟏𝟒

𝑷

𝑼𝑻

𝑚

𝑜𝑑

5 𝑆

𝐵1

𝑉2

45

𝟑

𝑮𝑬

𝑻

𝑚𝑜

𝑑5

𝑆𝐵

1𝑉

24

5

𝟏𝟓

𝑮

𝑬𝑻

𝑚

𝑜𝑑

4 𝑆

𝐵1

𝑉2

45

𝟒

𝑚𝑜

𝑑( 4

−5

) 𝑆

𝐵1

𝑉2

45

𝑺𝒊𝒏

𝒄𝟒

𝑺𝑩

𝟏𝑽

𝟐𝟒

𝟓

𝟏

𝟔

𝑚𝑜

𝑑( 4

−5

) 𝑆

𝐵1

𝑉2

45

𝑺𝒊𝒏

𝒄𝟓

𝑺𝑩

𝟏𝑽

𝟐𝟒

𝟓

↑𝑺

𝑩𝟐

𝟏

𝑆𝐵

2𝑉5

6

5 6

𝟏𝟕

𝑺𝑩

𝟐

𝐻𝑎

𝑏.

{𝑡𝑑

23

}

𝑚𝑜

𝑑5

𝑆𝐵

2𝑉5

6

𝟗

𝑺𝑩

𝟐

𝐻𝑎

𝑏.

{𝑡𝑒 1

}

𝑚𝑜

𝑑6

𝑆𝐵

2𝑉5

6

𝟏𝟖

𝑷

𝑼𝑻

𝑚

𝑜𝑑

5 𝑆

𝐵2

𝑉56

𝟏𝟎

𝑷

𝑼𝑻

𝑚

𝑜𝑑

6 𝑆

𝐵2

𝑉56

𝟏𝟗

𝑮

𝑬𝑻

𝑚

𝑜𝑑

6 𝑆

𝐵2

𝑉56

𝟏𝟏

𝑮

𝑬𝑻

𝑚

𝑜𝑑

5 𝑆

𝐵2

𝑉56

𝟐𝟎

𝑚

𝑜𝑑

( 5−

6)

𝑆𝐵

2𝑉5

6

𝑺𝒊𝒏

𝒄𝟓

𝑺𝑩

𝟐𝑽𝟓

𝟔

𝟏

𝟐

𝑚𝑜

𝑑( 5

−6

) 𝑆

𝐵2

𝑉56

𝑺𝒊𝒏

𝒄𝟔

𝑺𝑩

𝟐𝑽𝟓

𝟔

112

Page 125: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Tabela4.14:Construçãodosmódulos

decomun

icação

dosistem

ade

estocagem

[1]con�

gurado

emrede

-continuação.

𝑷𝒂

𝒔𝒔𝒐

𝟐

𝑷

𝒂𝒔

𝒔𝒐

𝟐

.𝟓

𝑷𝒂

𝒔𝒔𝒐

𝟐

.𝟓.𝟐

𝑷

𝒂𝒔𝒔

𝒐

𝟐.𝟓

.𝟑

𝑺𝟐

−𝑺

𝒆𝒍𝒆

çã𝒐

𝑷𝒆

ç𝒂 𝑴

𝒆𝒕á

𝒍𝒊𝒄

𝒂

𝑺𝟑

−𝑺

𝒆𝒍𝒆

çã𝒐

𝑷𝒆

ç𝒂 𝑷

𝒍á𝒔𝒕

𝒊𝒄𝒂

𝑺

𝟒−

𝑷𝒓

𝒆𝒏

𝒔𝒂

𝑺𝟓

−𝑩

𝒓𝒂

ç𝒐 𝑴

𝒆𝒄

â𝒏𝒊𝒄

𝒐

𝑺𝟔

−𝑨

𝒓𝒎

𝒂𝒛

𝒆𝒏

𝒂𝒎

𝒆𝒏

𝒕𝒐

𝝈∈

𝑬𝒄

𝒏∈

𝑴𝝈

𝑹

𝒏(𝝈

) 𝒊

∈𝑳

𝝈𝒏

𝑳

𝑪𝒐

𝒎𝒑

𝒐𝒏

𝒆𝒏

𝒕𝒆𝒔

𝑳

𝑪

𝒐𝒎

𝒑𝒐

𝒏𝒆

𝒏𝒕𝒆

𝒔

𝑳

𝑪𝒐

𝒎𝒑

𝒐𝒏

𝒆𝒏

𝒕𝒆𝒔

𝑳

𝑪

𝒐𝒎

𝒑𝒐

𝒏𝒆

𝒏𝒕𝒆

𝒔

𝑳

𝑪𝒐

𝒎𝒑

𝒐𝒏

𝒆𝒏

𝒕𝒆𝒔

↑𝑺

𝑩𝟒

𝟏

𝑆𝐵

4𝑉5

6

5 6

𝟐𝟏

𝑺𝑩

𝟒

𝐻𝑎

𝑏.

{𝑡𝑑

27}

𝑚𝑜

𝑑5

𝑆𝐵

4𝑉5

6

𝟏

𝟑

↑𝑺

𝑩𝟒

𝐻𝑎

𝑏.

{𝑡𝑒 4

}

𝑚𝑜

𝑑6

𝑆𝐵

4𝑉5

6

𝟐𝟐

𝑷

𝑼𝑻

𝑚

𝑜𝑑

5 𝑆

𝐵4

𝑉56

𝟏

𝟒

𝑷𝑼

𝑻

𝑚𝑜

𝑑6

𝑆𝐵

4𝑉5

6

𝟐𝟑

𝑮

𝑬𝑻

𝑚

𝑜𝑑

6 𝑆

𝐵4

𝑉56

𝟏

𝟓

𝑮𝑬

𝑻

𝑚𝑜

𝑑5

𝑆𝐵

4𝑉5

6

𝟐𝟒

𝑚

𝑜𝑑

( 5−

6)

𝑆𝐵

4𝑉5

6

𝑺𝒊𝒏

𝒄𝟓

𝑺𝑩

𝟒𝑽𝟓

𝟔

𝟏

𝟔

𝑚𝑜

𝑑( 5

−6

) 𝑆

𝐵4

𝑉56

𝑺𝒊𝒏

𝒄𝟔

𝑺𝑩

𝟒𝑽𝟓

𝟔

↑𝑺

𝑩𝟓

𝟏

𝑆𝐵

55

6

5 6

𝟐𝟓

𝑺𝑩

𝟓

𝐻𝑎

𝑏.

{𝑡𝑑

30

}

𝑚𝑜

𝑑5

𝑆𝐵

55

6

𝟏

𝟕

↑𝑺

𝑩𝟓

𝐻

𝑎𝑏

. {𝑡

𝑒 6}

𝑚𝑜

𝑑6

𝑆𝐵

55

6

𝟐𝟔

𝑷

𝑼𝑻

𝑚

𝑜𝑑

5 𝑆

𝐵5

56

𝟏

𝟖

𝑷𝑼

𝑻

𝑚𝑜

𝑑6

𝑆𝐵

55

6

𝟐𝟕

𝑮

𝑬𝑻

𝑚

𝑜𝑑

6 𝑆

𝐵5

56

𝟏

𝟗

𝑮𝑬

𝑻

𝑚𝑜

𝑑5

𝑆𝐵

55

6

𝟐𝟖

𝑚

𝑜𝑑

( 5−

6)

𝑆𝐵

55

6

𝑺𝒊𝒏

𝒄𝟓

𝑺𝑩

𝟓𝟓

𝟔

𝟐

𝟎

𝑚𝑜

𝑑( 5

−6

) 𝑆

𝐵5

56

𝑺𝒊𝒏

𝒄𝟔

𝑺𝑩

𝟓𝟓

𝟔

↑𝑺

𝑭

𝟏

↑𝑆

𝐹𝑉

125

2 5

𝟓

↑𝑺

𝑭

𝐻𝑎

𝑏.

{𝑡𝑎

19

}

𝑚𝑜

𝑑2

𝑆𝐹 𝑉

125

𝟐

𝟗

↑𝑺

𝑭

𝐻𝑎

𝑏.

{𝑡𝑑

1}

𝑚𝑜

𝑑5

𝑆𝐹 𝑉

125

𝟔

𝑷𝑼

𝑻

𝑚𝑜

𝑑2

𝑆𝐹 𝑉

125

𝟑

𝟎

𝑷𝑼

𝑻

𝑚𝑜

𝑑5

𝑆𝐹 𝑉

125

𝟕

𝑮𝑬

𝑻

𝑚𝑜

𝑑5

𝑆𝐹 𝑉

125

𝟑

𝟏

𝑮𝑬

𝑻

𝑚𝑜

𝑑2

𝑆𝐹 𝑉

125

𝟖

𝑚𝑜

𝑑( 2

−5

) 𝑆

𝐹 𝑉125

𝑺𝒊𝒏

𝒄𝟐

𝑺𝑭

𝑽𝟏

𝟐𝟓

𝟑

𝟐

𝑚𝑜

𝑑( 2

−5

) 𝑆

𝐹 𝑉125

𝑺𝒊𝒏

𝒄𝟓

𝑺𝑭

𝑽𝟏

𝟐𝟓

𝟐

↑𝑆

𝐹𝑉

235

3 5

𝟏

↑𝑺

𝑭

𝐻𝑎

𝑏.

{𝑡𝑏 1

5}

𝑚𝑜

𝑑3

𝑆𝐹 𝑉

235

𝟑

𝟑

↑𝑺

𝑭

𝐻𝑎

𝑏.

{𝑡𝑑

13

}

𝑚𝑜

𝑑5

𝑆𝐹 𝑉

235

𝟐

𝑷𝑼

𝑻

𝑚𝑜

𝑑3

𝑆𝐹 𝑉

235

𝟑

𝟒

𝑷𝑼

𝑻

𝑚𝑜

𝑑5

𝑆𝐹 𝑉

235

𝟑

𝑮𝑬

𝑻

𝑚𝑜

𝑑5

𝑆𝐹 𝑉

235

𝟑

𝟓

𝑮𝑬

𝑻

𝑚𝑜

𝑑3

𝑆𝐹 𝑉

235

𝟒

𝑚𝑜

𝑑( 3

−5

) 𝑆

𝐹 𝑉235

𝑺𝒊𝒏

𝒄𝟑

𝑺𝑭

𝑽𝟐

𝟑𝟓

𝟑

𝟔

𝑚𝑜

𝑑( 3

−5

) 𝑆

𝐹 𝑉235

𝑺𝒊𝒏

𝒄𝟓

𝑺𝑭

𝑽𝟐

𝟑𝟓

↑𝑺

𝑷𝟒

𝟏

𝑆𝑃

44

5

4 5

𝟓

↑𝑺

𝑷𝟒

𝐻

𝑎𝑏

. {𝑡

𝑝7

}

𝑚𝑜

𝑑4

𝑆𝑃

44

5

𝟑

𝟕

↑𝑺

𝑷𝟒

𝐻

𝑎𝑏

. {𝑡

𝑑1

7}

𝑚𝑜

𝑑5

𝑆𝑃

44

5

𝟔

𝑷𝑼

𝑻

𝑚𝑜

𝑑4

𝑆𝑃

44

5

𝟑𝟖

𝑷

𝑼𝑻

𝑚

𝑜𝑑

5 𝑆

𝑃4

45

𝟕

𝑮𝑬

𝑻

𝑚𝑜

𝑑5

𝑆𝑃

44

5

𝟑𝟗

𝑮

𝑬𝑻

𝑚

𝑜𝑑

4 𝑆

𝑃4

45

𝟖

𝑚𝑜

𝑑( 4

−5

) 𝑆

𝑃4

45

𝑺𝒊𝒏

𝒄𝟒

𝑺𝑷

𝟒𝟒

𝟓

𝟒

𝟎

𝑚𝑜

𝑑( 4

−5

) 𝑆

𝑃4

45

𝑺𝒊𝒏

𝒄𝟓

𝑺𝑷

𝟒𝟒

𝟓

↓𝑺

𝑭

𝟏

↓𝑆

𝐹2

3

2 3

𝟗

↓𝑺

𝑭

𝐻𝑎

𝑏.

{𝑡𝑎

21

}

𝑚𝑜

𝑑2

↓𝑆

𝐹2

3

𝟓

𝑺𝑭

𝐻

𝑎𝑏

. {𝑡

𝑏 1}

𝑚𝑜

𝑑3

↓𝑆

𝐹2

3

𝟏𝟎

𝑷

𝑼𝑻

𝑚

𝑜𝑑

2 ↓

𝑆𝐹

23

𝟔

𝑷

𝑼𝑻

𝑚

𝑜𝑑

3 ↓

𝑆𝐹

23

𝟏𝟏

𝑮

𝑬𝑻

𝑚

𝑜𝑑

3 ↓

𝑆𝐹

23

𝟕

𝑮

𝑬𝑻

𝑚

𝑜𝑑

2 ↓

𝑆𝐹

23

𝟏𝟐

𝑚

𝑜𝑑

( 2−

3)

↓𝑆

𝐹2

3

𝑺𝒊𝒏

𝒄𝟐

↓𝑺

𝑭𝟐

𝟑

𝟖

𝑚

𝑜𝑑

( 2−

3)

↓𝑆

𝐹2

3

𝑺𝒊𝒏

𝒄𝟑

↓𝑺

𝑭𝟐

𝟑

113

Page 126: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

3

↑SB1 mod2 (↑SB1)25V1

L1 COMPx(pa20) >= 1

ta22 - mod 2 (↑SB1)

L2 PUT

mod2 (↑SB1)25V1

L3 GET

mod5 (↑SB1)25V1

mod2 (↑SB1)25V1 mod5 (↑SB1)25

V1 SINC2 (↑SB1)25V1

L4

↑SF mod2 (↑SF)25V1

L5 COMPx(pa14) >= 1

ta19 - mod 2 (↑SF)

L6 PUT

mod2 (↑SF)25V1

L7 GET

mod5 (↑SF)25V1

mod2 (↑SF)25V1 mod5 (↑SF)25

V1 SINC2 (↑SF)25V1

L8

↓SF mod2 (↓SF)23

L9 COMPx(pa16) >= 1

ta21 - mod 2 (↓SF)

L10 PUT

mod2 (↓SF)23

L11 GET

mod3 (↓SF)23

mod2 (↓SF)23 mod3 (↓SF)23 SINC2 (↓SF)23

L12

Figura 4.13: Módulo de comunicação de S2 do sistema de estocagem [1] con�guradoem rede.

114

Page 127: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Prosseguindo com o procedimento, o subsistema de seleção de peças plásticas de

cor preta, S3, sincroniza o evento ↑ SF pelo grupo 2 e o evento ↓ SF pelo grupo 1.

Portanto, o número de linhas de seu diagrama será:

N3com = 4 ∗ (|M3

↑SF |+ |M3↓SF |) = 4 ∗ (1 + 1) = 8

Na primeira linha do diagrama de S3, serão adicionados um contato NA associ-

ado à ↑ SF , as condições de habilitação de tb15 e a bobina local "mod3 ↑ SF 35V 2".

A seguir, na linha 2 tal bobina tem sua variável enviada ao subsistema parceiro

na sincronização S5, enquanto a linha 3 obtém do parceiro a informação da bobina

"mod5 ↑ SF 35V 2". Posteriormente, a linha 4 reúne os sinais das duas bobinas associ-

ando suas variáveis a dois contatos NA em série com a bobina �nal "Sinc3 ↑ SF 35V 2".

Em seguida, na linha 5 adicionam-se um contato NA em ↓ SF , as condições dedisparo de tb1 e a bobina local "mod3 ↓ SF 23". Nas linhas 6 e 7, são utilizados,

respectivamente, um bloco PUT associado à variável da bobina local, e um bloco

GET vinculado à bobina do subsistema parceiro S2. Finalizando o diagrama, a linha

8 inclui os dois contatos NA energizados pelas variáveis das bobinas, em série com

a bobina �nal de sincronização "Sinc3 ↓ SF 23".

Assim como S3, o subsistema S4, de processamento da prensa, também está

envolvido em apenas duas sincronizações: do evento ↑ SB1 pelo grupo 2 e de ↑ SP4

pelo grupo 1. Com isso, o número de linhas de seu módulo de comunicação será:

N4com = 4 ∗ (|M4

↑SB1|+ |M4↑SP4|) = 4 ∗ (1 + 1) = 8

A primeira linha do módulo de S4 será formada pelo contato NA em ↑ SB1,

pelas condições de habilitação da transição tp1 e pela bobina local de sincronização

"mod4 ↑ SB145V 2". Em seguida, a linha 2 inclui um bloco PUT, para envio da

variável da bobina local para o subsistema S5, e a linha 3 é composta por um bloco

GET, a �m de obter o sinal da bobina local de S5. Completando a sincronização

desse evento, na linha 4 adicionam-se dois contatos NA acionados pelas variáveis

das bobinas local e remota, em série com a bobina �nal "Sinc4 ↑ SB145V 2".

A partir da linha 5, a sincronização de ↑ SP4 é implementada para o subsistema

S4. Nessa linha, são incluídos o contato NA regido pelo referido evento, além das

condições de disparo de tp7 e da bobina local "mod4 ↑ SP445". Na linha 6, é

adicionado um bloco PUT associado à bobina da linha anterior. A seguir, a linha

7 é composta por um bloco GET para obtenção da bobina do subsistema parceiro

"mod5 ↑ SP445". Por �m, a linha 8 agrupa os sinais das bobinas da linha 1 e do bloco

GET através de dois contatos NA, que energizam a bobina �nal de sincronização

"Sinc4 ↑ SP445".

Os módulos de comunicação de S3 e S4, obtidos pelo algoritmo 3, podem ser

vistos nas �guras 4.14 e 4.15, respectivamente.

115

Page 128: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 4.14: Módulo de comunicação de S3 do sistema de estocagem [1] con�guradoem rede.

Figura 4.15: Módulo de comunicação de S4 do sistema de estocagem [1] con�guradoem rede.

116

Page 129: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

O subsistema S5, que modela o comportamento do braço mecânico, é aquele com

maior número de sincronizações no sistema. No total, esse subsistema participa de

10 sincronizações, como observado na tabela 4.2. Os eventos ↑ SB1 e ↑ SF são

sincronizados pelos grupos 1 e 2, enquanto os eventos ↑ B10, ↑ CFC1, ↑ SB2,

↑ SB4, ↑ SB5 e ↑ SP4 sincronizam apenas pelo grupo 1. Desse modo, o número de

linhas do módulo de comunicação de S5 será dado por:

N5com = 4 ∗ (|M5

↑B10|+ |M5↑CFC1|+ |M5

↑SB1|+ |M5↑SB2|+ |M5

↑SB4|+ |M5↑SB5|+

|M5↑SF |+ |M5

↑SP4|) = 4 ∗ (1 + 1 + 2 + 1 + 1 + 1 + 2 + 1) = 40

O módulo de comunicação completo de S5 está representado na �gura 4.16.

As primeiras 4 linhas do diagrama referem-se à sincronização de ↑ B10. Na

primeira, energiza-se a bobina local "mod5 ↑ B1056"através de um contato NA para

o evento original em série com a habilitação de td24. A segunda é responsável por

enviar o sinal da bobina local ao subsistema S6. Na terceira, obtém-se o sinal da

bobina do subsistema parceiro pelo bloco GET. E, en�m, a linha 4 consolida a

bobina �nal de sincronização "Sinc5 ↑ B1056".

Em seguida, a sincronização de ↑ CFC1 é garantida. Na linha 5 implementam-se

as condições para energização da bobina local "mod5 ↑ CFC156V ". As linhas 6 e 7

são responsáveis por enviar o sinal da bobina local e receber o sinal da bobina do

CLP parceiro, respectivamente. Enquanto a linha 8 utiliza contatos NA acionados

pelas duas bobinas citadas para energizar o componente �nal "Sinc5 ↑ CFC156V ".

As linhas 9 a 12 são destinadas à sincronização do grupo 1 do evento ↑ SB1.

Primeiramente, na linha 9 são implementadas as condições de disparo de td28 que,

em série com um contato NA em ↑ SB1, acionam a bobina local "mod5 ↑ SB125V 1".

Logo a seguir, na linha 10, o sinal dessa bobina é enviado para S2, cuja bobina

"mod2 ↑ SB125V 1"é obtida na linha 11. A linha 12, então, considera tais sinais, de

modo a energizar a bobina �nal "Sinc5 ↑ SB125V 1".

O segundo grupo síncrono do evento ↑ SB1 é implementado entre as linhas 13 e

16. Na linha 13, a bobina local "mod5 ↑ SB145V 2"é acionada pelo contato referente ao

evento original e pelas condições de habilitação de td16. Logo em seguida, as linhas

14 e 15 são responsáveis pela comunicação entre S5 e o parceiro S4, garantindo

respectivamente o envio da variável da bobina local de S5 para S4 e o recebimento

da variável da bobina de S4 por parte de S5. Concluindo a sincronização, a linha 16

condiciona a energização da bobina �nal "Sinc5 ↑ SB145V 2".

A mesma lógica é adotada para o evento ↑ SB2, com a linha 17 acionando a

bobina local "mod5 ↑ SB256V ", mediante as condições de disparo de td23, a linha 18

enviando o sinal local recém criado para S6, a linha 19 recebendo o sinal da bobina

do parceiro S6 e, por �m, a linha 20 consolidando a operação síncrona através da

bobina �nal "Sinc5 ↑ SB256V ".

117

Page 130: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Figura 4.16: Módulo de comunicação de S5 do sistema de estocagem [1] con�guradoem rede.

118

Page 131: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Após garantir a sincronização de ↑ SB2, o algoritmo prossegue com a operação

para o subsistema S5, dessa vez em função do evento ↑ SB4. A linha 21 considera

a habilitação de td27 para acionar a bobina local "mod5 ↑ SB456V ". A linha 22 tem

a função de enviar para S6 o sinal da bobina citada. Já a linha 23, é responsável

por receber de S6 o sinal da bobina desse subsistema. E, en�m, a linha 24 �naliza

a sincronização com a bobina "Sinc5 ↑ SB456V ".

Imediatamente após os elementos citados, inicia-se a operação síncrona de ↑ SB5.

Na linha 25, o acionamento de "mod5 ↑ SB556"é condicionado à transição td30. Na

linha seguinte, tal sinal é destinado ao CLP parceiro S6 pelo bloco PUT. A linha

27, então, recebe do parceiro o sinal de sua respectiva bobina local, possibilitando a

ativação da bobina �nal "Sinc5 ↑ SB556"na linha 28.

Para o penúltimo evento, ↑ SF , são garantidas as sincronizações pelos grupos 1

e 2. O primeiro é implementado entre as linhas 29 e 32. A bobina local "mod5 ↑SF 25

V 1"é energizada na linha 29, diante das condições de disparo da transição td1.

Na linha seguinte, o sinal da referida bobina é endereçado ao subsistema parceiro

S2. Já na linha 31, o subsistema S5 recebe de S2 o sinal da bobina do parceiro. Com

isso, torna-se possível, na linha 32, a energização da bobina �nal "Sinc5 ↑ SF 25V 1".

Já para o grupo 2 do evento ↑ SF , as condições de habilitação de td13 são

implementadas para acionar a bobina local "mod5 ↑ SF 35V 2", na linha 33. A variável

da bobina criada é enviada para S3 por meio de um bloco PUT, na linha 34. Em

seguida, utiliza-se um bloco GET para o recebimento da variável associada à bobina

do CLP parceiro S3. O processo é então �nalizado na linha 36, condicionando-se a

bobina �nal "Sinc5 ↑ SF 35V 2".

Por �m, o último evento síncrono de S5 é adicionado ao diagrama Ladder. Na

linha 37, a bobina local "mod5 ↑ SP445"é ativada pelas condições de disparo de

td17. Imediatamente abaixo, um bloco PUT envia a informação dessa bobina ao

subsistema parceiro S4. Logo em seguida, na linha 39, o sinal da bobina do parceiro

é obtido pelo bloco GET. E, �nalmente, a bobina "Sinc5 ↑ SP445"é energizada.

Após a conclusão do módulo de comunicação para S5, repete-se os procedimen-

tos para o último subsistema de sincronização, S6, responsável pela modelagem do

armazenamento dos cubos.

No total, o subsistema S6 participa de 5 sincronizações, de�nidas apenas pelo

grupo 1 dos eventos ↑ B10, ↑ CFC1, ↑ SB2, ↑ SB4 e ↑ SB5. Dessa forma, o total

de linhas do módulo de comunicação de S6 será dado por:

N6com = 4 ∗ (|M6

↑B10|+ |M6↑CFC1|+ |M6

↑SB2|+ |M6↑SB4|+ |M6

↑SB5|) =

4 ∗ (1 + 1 + 1 + 1 + 1) = 20

O módulo de comunicação de S6, obtido pelo algoritmo 3, está representado na

�gura 4.17.

119

Page 132: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

↑B10 mod6 (↑B10)56

L1 COMPx(pe3) >= 1

te3 - mod 6 (↑B10)

L2 PUT

mod6 (↑B10)56

L3 GET

mod5(↑B10)56

mod5 (↑B10)56 mod6 (↑B10)56 SINC6 (↑B10)56

L4

↑CFC1 mod6 (↑CFC1)56V

L5 COMPx(pe5) >= 1

te5 - mod 6 (↑CFC1)

L6 PUT

mod6 (↑CFC1)56V

L7 GET

mod5 (↑CFC1)56V

mod5 (↑CFC1)56V mod6 (↑CFC1)56

V SINC6 (↑CFC1)56V

L8

↑SB2 mod6 (↑SB2)56V

L9 COMPx(pe1) >= 1

te1 - mod 6 (↑SB2)

L10 PUT

mod6 (↑SB2)56V

L11 GET

mod5 (↑SB2)56V

mod5 (↑SB2)56V mod6 (↑SB2)56

V SINC6 (↑SB2)56V

L12

↑SB4 mod6 (↑SB4)56V

L13 COMPx(pe4) >= 1

te4 - mod 6 (↑SB4)

L14 PUT

mod6 (↑SB4)56V

L15 GET

mod5 (↑SB4)56V

mod5(↑SB4)56V mod6 (↑SB4)56

V SINC6 (↑SB4)56V

L16

↑SB5 mod6 (↑SB5)56

L17 COMPx(pe6) >= 1

te6 - mod 6 (↑SB5)

L18 PUT

mod6 (↑SB5)56

L19 GET

mod5 (↑SB5)56

mod5 (↑SB5)56 mod6 (↑SB5)56 SINC6 (↑SB5)56

L20

Figura 4.17: Módulo de comunicação de S6 do sistema de estocagem [1] con�guradoem rede.

120

Page 133: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Na primeira linha do diagrama Ladder do módulo de comunicação de S6, as

condições de disparo da transição te3 são inseridas, de modo a condicionar o aci-

onamento da bobina local "mod6 ↑ B1056". A segunda linha, então, envia o sinal

dessa bobina ao subsistema S5, enquanto a terceira linha é responsável por obter

de S5 o seu respectivo sinal local. Em seguida, a quarta linha ativa a bobina �nal

"Sinc6 ↑ B1056".

O evento seguinte a ser sincronizado é ↑ CFC1. Para esse evento, é inserida,

na linha 5, uma bobina local "mod6 ↑ CFC156V ", energizada pelas condições de

habilitação de te5. Na linha seguinte, um bloco PUT envia a variável da bobina

citada ao subsistema S5. A sétima linha obtém de S5 a variável de sua bobina local.

E, en�m, a linha 8 consolida o sinal de sincronização �nal "Sinc6 ↑ CFC156".

Posteriormente, na linha 9, são inseridas as condições de disparo de te1, em série

com a bobina local para o evento ↑ SB2, denominada "mod6 ↑ SB256V ". O sinal

dessa bobina é enviado ao subsistema S5 por meio de um bloco PUT na linha 10,

enquanto a linha 11 é responsável por receber a informação da bobina de S5. Logo

a seguir, a bobina �nal "Sinc6 ↑ SB256V "é energizada.

Entre as linhas 13 e 16 é garantida a operação síncrona do evento ↑ SB4. A

bobina local "mod6 ↑ SB456V "é criada na linha 13, sendo acionada pela habilitação

da transição te4. Na linha 14, envia-se o sinal da referida bobina ao subsistema

parceiro S5. Logo em seguida, o sinal de sincronização do parceiro é recebido pela

linha 15. E a linha 16 garante a operação através da energização da bobina �nal

"Sinc6 ↑ SB456V ".

Concluindo o módulo de comunicação do subsistema S6, na linha 17 inicia-se a

sincronização de ↑ SB5. As condições de disparo de te6 são implementadas de modo

a energizar a bobina local desse evento, denominada "mod6 ↑ SB556". Tal bobina

tem sua variável endereçada ao subsistema S5 na linha seguinte, enquanto a linha

19 obtém a variável da bobina de S5. A última etapa consiste no acionamento da

bobina �nal "Sinc6 ↑ SB556"na linha 20.

Finalizados os módulos de comunicação de todos os subsistemas, os módulos

das condições de disparo das transições devem ser atualizados, a �m de garantir a

sincronização do sistema.

4.3.2 Módulos das condições de disparo das transições para

sincronização em rede

O procedimento de alteração dos módulos das condições de disparo das transições

para o caso de sincronização em rede, de�nido pelo algoritmo 4, foi aplicado ao

sistema de estocagem.

121

Page 134: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Assim como na sincronização con�gurada anteriormente, o método objetiva alte-

rar todas as linhas do digrama Ladder associadas a transições síncronas. No entanto,

enquanto na operação anterior as linhas são modi�cadas visando incluir a variável

da bobina global de sincronização, na operação em rede, as modi�cações devem in-

serir a variável da bobina �nal especí�ca do subsistema ao qual pertence a transição

síncrona.

Com isso, cada conjunto Tσn criado na tabela 4.12 será decomposto em sub-

conjuntos T jσn , para cada subsistema j envolvido na dinâmica síncrona, quando

adota-se a abordagem em rede. Tome a sincronização do evento ↑ B10 pelo grupo

1, por exemplo, garantida na seção 4.2.2 pelo disparo das transições do conjunto

T(↑B10)1 = {td24, te3}. Como as transições td24 e te3 pertencem, respectivamente, aos

subsistemas S5 e S6, serão criados os conjuntos T 5(↑B10)1

= {td24} e T 6(↑B10)1

= {te3}.Logo em seguida, a linha do módulo das condições do subsistema S5 relacionada

à td24 será modi�cada, excluindo-se o contato NA energizado pelo evento original

↑ B10 e inserindo-se, em seu lugar, um contato NA acionado pela bobina local de

S5, "Sinc5 ↑ B1056". Analogamente, o subsistema S6 terá seu módulo das condições

modi�cado, substituindo o contato NA em ↑ B10 da linha referente à transição te3,

por outro acionado pela bobina local de S6, "Sinc6 ↑ B1056".

A lógica é então repetida para todos os grupos admissíveis de todos os eventos

síncronos. As linhas alteradas no módulo das condições de disparo de cada subsis-

tema estão representadas na �gura 4.18.

Diante dos resultados expostos na presente seção, constata-se que os algorit-

mos 3 e 4 ampliam o caráter geral do método de sincronização dos algoritmos 1 e

2, possibilitando o mesmo grau de personalização por parte do usuário, para apli-

cações síncronas entre subsistemas implementados em diferentes CLPs, através da

comunicação em rede.

122

Page 135: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

(a) Subsistema S2

(b) Subsistema S3

(d) Subsistema S5

(c) Subsistema S4

(e) Subsistema S6

Figura 4.18: Linhas alteradas pelo algoritmo 4 nos módulos de condições de disparodo sistema de estocagem [1] con�gurado em rede.

123

Page 136: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Capítulo 5

Conclusão

O objetivo deste trabalho foi formalizar um método geral de sincronização de siste-

mas a eventos discretos modelados por RPICs diretamente no diagrama Ladder.

A metodologia proposta baseia-se em algoritmos para criação do módulo de sin-

cronização e para a alteração do módulo das condições de disparo das transições,

de modo a garantir a operação síncrona independentemente das características das

redes de Petri. Propriedades não analisadas em [1] e [5], como a presença de arcos

ordinários e habilitadores com peso superior a um, arcos inibidores e condições inter-

nas associadas ao disparo de transições, são portanto consideradas pelos algoritmos

desenvolvidos. O método ainda proporciona ao usuário a capacidade de persona-

lizar diversas operações síncronas em função de um evento comum entre RPICs,

expandindo o conceito de sincronização por eventos virtuais.

Os algoritmos introduzidos foram implementados em um código VBA progra-

mado para criar a representação grá�ca em Ladder do módulo de sincronização. Tal

código foi então utilizado para ilustrar os resultados dos procedimentos propostos,

através de exemplos teóricos e, em seguida, da aplicação para o sistema de estocagem

de cubos [1]. Durante esse processo, o caráter geral do formalismo foi evidenciado.

Além disso, a proposta deste trabalho também inclui algoritmos para sincroniza-

ção em rede. Nessa abordagem, considera-se que cada RPIC é implementada em um

CLP diferente, sendo esse capaz de observar o conjunto de eventos externos de sua

rede de Petri. A forma sistemática de construção dos módulos de comunicação e de

alteração dos módulos das condições de disparo, para cada CLP, foi formalizada com

um exemplo teórico, e posteriormente aplicada ao sistema de estocagem de cubos

[1], considerando-se uma con�guração hipotética de implementação para o mesmo.

Como trabalhos futuros, o método proposto para sincronização em rede pode ser

aplicado na implementação de um sistema real de modo a considerar aspectos prá-

ticos como atrasos na comunicação. Além disso, pode-se considerar a sincronização

como parte intermediária na obtenção de uma RPIC a partir de uma rede de Petri

teórica, por meio da adição de novas condições à RPIC.

124

Page 137: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Referências Bibliográ�cas

[1] GAPANOWICZ, V. P. Implementação de um sistema de automação modular

em uma planta mecatrônica utilizando sincronização online. Projeto de

Graduação, Universidade Federal do Rio de Janeiro - UFRJ, 2016.

[2] CASSANDRAS, C. G., LAFORTUNE, S. Introduction to discrete event systems.

2nd ed. New York, Springer Science & Business Media, 2008.

[3] MOREIRA, M. V., BASILIO, J. C. �Bridging the gap between design and

implementation of discrete-event controllers�, IEEE Transactions on Au-

tomation Science and Engineering, v. 11, n. 1, pp. 48�65, 2013.

[4] VIANA, G. S. Controle supervisório modular de uma célula de manufatura uti-

liznado redes de Petri interpretadas para controle. Projeto de Graduação,

Universidade Federal do Rio de Janeiro - UFRJ, 2012.

[5] VIANA, G. S., MOREIRA, M. V., BASILIO, J. C. �Implementação de contro-

ladores a eventos discretos usando diagrama ladder com módulo sincro-

nizante�, Simpósio Brasileiro de Automação Inteligente, XI SBAI, Forta-

leza, Brasil, 2013.

[6] PENTAGNA, R. S. Implementação em Ladder de sistemas de automação descri-

tos por redes de petri interpretadas para controle. Projeto de Graduação,

Universidade Federal do Rio de Janeiro - UFRJ, 2010.

[7] REYNDERS, D., WRIGHT, E. Practical TCP/IP and Ethernet Networking. 1

ed. Oxford, Elsevier, 2003.

[8] OLIVEIRA, V. S. L. Protocolo de comunicação Pro�net para redes de automação.

Projeto de Graduação, Universidade Federal do Rio de Janeiro - UFRJ,

2016.

125

Page 138: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Apêndice A

Código VBA de criação do Módulo

de Sincronização em Ladder

126

Page 139: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Sub sincronizar_modulos()

Application.ScreenUpdating = False

Dim w As Worksheet

Dim fim As Range

Set w = Sheets("Início")

k = w.Range("B1").Value

'--------------------------------------------------------------------------------------- 'obtendo o número TOTAL de transições para verificação se Tsinc está completo Dim n_To_total As Integer

n_To_total = 0

'Verificação da existência de todas as planilhas de todos os módulos e desbloqueio For modi = 1 To k

Dim teste As Worksheet

On Error GoTo modulos_incompletos

Set teste = Sheets("mod" & modi)

Set teste = Sheets("Pre" & modi)

Set teste = Sheets("In" & modi)

On Error GoTo 0

Dim modul As Worksheet

Set modul = Sheets("mod" & modi)

'número TOTAL de transições n_To_total = n_To_total + WorksheetFunction.CountA(modul.[To])

Sheets("mod" & modi).Unprotect Password:="ladder"

Sheets("In" & modi).Unprotect Password:="ladder"

Next

On Error GoTo modulos_incompletos

Set Tsinc = Sheets("T_sinc")

On Error GoTo 0

Dim T_sinc, vetor_sinc As Range

Tsinc.Select

Sheets("T_sinc").Unprotect Password:="tsinc"

For Each obj In Tsinc.ListObjects

obj.AutoFilter.ShowAllData

Next

'Tabela T_sinc Set T_sinc = Tsinc.[T_sinc]

'Vetor T_sinc (0,1) Set vetor_sinc = Tsinc.[T_sinc_vetor]

'------------- 'verificando se T_sinc está completo If WorksheetFunction.Count(vetor_sinc) < n_To_total Then

Tsinc.Select

Tsinc.Range("F1").End(xlDown).Offset(1, 0).Select

MsgBox "Complete as informações de sincronização para as transições na aba T_sinc!", vbExclamation, "Atenção!"

127

Page 140: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Exit Sub

End If

'--------------------------------------------------------------------------------------- 'após verificação da existência de todos os dados de entrada, elimina-se o resultado anterior deletar_resultados Application.ScreenUpdating = False

If sair = 1 Then

Exit Sub

End If

disable_selection = True

ActiveWorkbook.Unprotect ("sinc")

'1) -------------PASSO 1-----------------------------------------------------------------

Sheets.Add

ActiveWindow.DisplayGridlines = False

Set passo1 = ActiveSheet

passo1.Name = "Passo 1"

passo1.Range("a1").Value = "Ec"

passo1.Range("a1").Select

Selection.Font.Bold = True

Selection.Interior.Color = RGB(0, 255, 0)

passo1.Tab.Color = 12058623

passo1.Range("A1").Select

'add '----Criando o vetor EVENTO COMUM--------------------

passo1.Names.Add Name:="Ec", RefersTo:="=OFFSET(R2C1,0,0,COUNTA(C1)-1,1)"

'--------colagem auxiliar dos eventos comuns em pares de módulos

'coluna do par de módulos col_par = 3

'primeiro módulo For submod_aux = 1 To k - 1

'segundo módulo For submod_aux_2 = submod_aux + 1 To k

'identificação do par atual passo1.Cells(1, col_par).Value = "E" & submod_aux & submod_aux_2

'n de eventos do primeiro módulo do par nE_submod = WorksheetFunction.CountA(Sheets("mod" & submod_aux).[E])

'n de eventos do segundo módulo do par nE_submod_2 = WorksheetFunction.CountA(Sheets("mod" & submod_aux_2).[E])

Dim mod_pri, mod_sec, Einter As Range

Set mod_pri = passo1.Range(passo1.Cells(2, col_par + 1), passo1.Cells(2 + nE_submod - 1, col_par + 1))

Set mod_sec = passo1.Range(passo1.Cells(2, col_par + 2), passo1.Cells(2 + nE_submod_2 - 1, col_par + 2))

'---------------Colagens auxiliares

128

Page 141: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

'Eventos do primeiro módulo do par mod_pri.Value = Sheets("mod" & submod_aux).[E].Value

'Eventos do segundo módulo do par mod_sec.Value = Sheets("mod" & submod_aux_2).[E].Value

'----------------------------------

'identificando o menor conjunto de eventos entre o par de módulos If nE_submod <= nE_submod_2 Then

menorE = nE_submod

'calculando a intersecção dos conjuntos Set Einter = passo1.Range(passo1.Cells(2, col_par), passo1.Cells(2 + menorE - 1, col_par))

'Einter.Select Einter.FormulaArray = _

"=IFERROR(VLOOKUP(R2C" & col_par + 1 & ":R" & 2 + nE_submod - 1 & "C" & col_par + 1 & ",R2C" & col_par + 2 &

":R" & 2 + nE_submod_2 - 1 & "C" & col_par + 2 & ",1,FALSE),""-"")"

Else

menorE = nE_submod_2

'calculando a intersecção dos conjuntos Set Einter = passo1.Range(passo1.Cells(2, col_par), passo1.Cells(2 + menorE - 1, col_par))

Einter.Select

Einter.FormulaArray = _

"=IFERROR(VLOOKUP(R2C" & col_par + 2 & ":R" & 2 + nE_submod_2 - 1 & "C" & col_par + 2 & ",R2C" & col_par + 1 &

":R" & 2 + nE_submod - 1 & "C" & col_par + 1 & ",1,FALSE),""-"")"

End If

'copiando valores Einter.Value = Einter.Value

'limpando dados auxiliares mod_pri.Value = ""

mod_sec.Value = ""

'-----------eliminando cell vazias da intercecção entre o par de módulos Einter.Select

'n de cell vazias nVazias = WorksheetFunction.CountIf(Selection, "-")

If nVazias > 0 Then

'substituir "-" por vazias Cells.Replace What:="-", Replacement:="", LookAt:=xlPart, SearchOrder:= _

xlByColumns, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

'eliminando vazias Selection.SpecialCells(xlCellTypeBlanks).Select

Selection.Delete Shift:=xlUp

End If

'-----------

'n de eventos da intersecção do par nE_par = menorE - nVazias

129

Page 142: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

'eventos da intersecção do par Dim Einter_result As Range

If nE_par = 1 Then

Set Einter_result = passo1.Cells(2, col_par)

ElseIf nE_par > 1 Then

Set Einter_result = passo1.Range(passo1.Cells(2, col_par), passo1.Cells(2, col_par).End(xlDown))

Einter_result.Select

'ordenando eventos ActiveSheet.Sort.SortFields.Clear

ActiveSheet.Sort.SortFields.Add Key:=Selection, SortOn _

:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

With ActiveSheet.Sort

.SetRange Selection

.Header = xlNo

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

End If

'------------inserindo a intersecção não vazia do par no conjunto de eventos Ec

'se a intersecção entre o par não for vazia, insere-se os eventos no conjunto Ec If nE_par > 0 Then

'primeiro par If passo1.Cells(2, 1).Value = "" Then

passo1.Range(passo1.Cells(2, 1), passo1.Cells(2 + nE_par - 1, 1)) _

.Value = Einter_result.Value

'segundo par para |Ec|=1 ElseIf passo1.Cells(2, 1).Value <> "" And WorksheetFunction.CountA(passo1.[Ec]) = 1 Then

passo1.Range(passo1.Cells(3, 1), passo1.Cells(3 + nE_par - 1, 1)) _

.Value = Einter_result.Value

'demais pares Else

Dim cel_i, cel_f As Range

Set cel_i = passo1.Cells(2, 1).End(xlDown).Offset(1, 0)

Set cel_f = cel_i.Offset(nE_par - 1, 0)

passo1.Range(passo1.Cells(cel_i.Row, 1), passo1.Cells(cel_f.Row, 1)) _

.Value = Einter_result.Value

End If

End If

'---------------------------------------------

'atualização da coluna do próximo par de módulos col_par = col_par + 1

'próximo segundo módulo do par Next

130

Page 143: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

'próximo primeiro módulo do par Next

'--------

'eliminando duplicados de Ec passo1.Range(passo1.Cells(2, 1), passo1.Cells(2, 1).End(xlDown)).Select

passo1.Range(passo1.Cells(2, 1), passo1.Cells(2, 1).End(xlDown)).RemoveDuplicates Columns:=1, Header:=xlNo

'n de eventos comuns entre pares de módulos possíveis para sincronização n_Ec = WorksheetFunction.CountA(passo1.[Ec])

'verificação se há evento comum If n_Ec = 0 Then

MsgBox "Não há nenhum evento comum entre nenhum dos módulos descritos.", vbExclamation, "Atenção"

Exit Sub

End If

'formatação e ordenação de Ec passo1.Range(passo1.Cells(1, 1), passo1.Cells(n_Ec + 1, 1)).Select

formata_contorno_lista

Selection.ColumnWidth = 15

passo1.Range(passo1.Cells(2, 1), passo1.Cells(n_Ec + 1, 1)).Select

ordenar_A2

'----------------------------------------------------------------------------- 'colagem dos eventos comuns em T_sinc para verificação auxiliar 'F9 Sheets("T_sinc").Select

Sheets("T_sinc").Unprotect Password:="tsinc"

For Each obj In Sheets("T_sinc").ListObjects

obj.AutoFilter.ShowAllData

Next

Sheets("T_sinc").Columns("O:O").EntireColumn.Hidden = False

Sheets("T_sinc").Columns("O:O").Value = ""

'Sheets("T_sinc").Range(Sheets("T_sinc").Cells(2, 14), Sheets("T_sinc").Cells(1 + WorksheetFunction.CountA(passo1.[Ec]), 14)).Select Sheets("T_sinc").Range(Sheets("T_sinc").Cells(2, 15), Sheets("T_sinc").Cells(1 + WorksheetFunction.CountA(passo1.[Ec]),

15)).Value = passo1.[Ec].Value

Sheets("T_sinc").Columns("O:O").EntireColumn.Hidden = True

passo1.Select

'-----------------------------------------------------------------------------

'2) -------------PASSO 2-----------------------------------------------------------------

Sheets.Add

ActiveWindow.DisplayGridlines = False

Set passo2e3 = ActiveSheet

passo2e3.Name = "Passos 2-3"

passo2e3.Tab.Color = 12058623

'buscando o vetor de eventos comuns n_Ec = WorksheetFunction.CountA(passo1.[Ec])

131

Page 144: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

'coluna inicial para criação dos vetores L_sigma, M_i\sigma e M_\sigma col_ini = 1

Dim ladder As Worksheet

Set ladder = Sheets("Ladder")

'linha e coluna da aba ladder para a transição atual linha_ladder = 5

coluna_ladder = 9

'linha do diagrama Ladder linha_diagramaLadder = 1

'última coluna global do diagragama Ladder ult_col_GLOBAL = 0

'identificação do primeiro evento no LADDER para auxílio de formatação priEv = 1

'contagem de eventos presentes no ladder num_evento = 0

'2) 'para cada sigma \in Ec For Each celula In passo1.[Ec]

'F9 sigma = celula.Value

'colando o evento passo2e3.Select

passo2e3.Cells(1, col_ini).Value = sigma

'número de caracteres do evento para criação de sub índices len_evento_comum = Len(sigma)

'2.1) '-------------PASSO 2.1-------------------------- '-------------------------Calculando Ls_sigma--------------------------------------------- 'n de linhas de T_sinc linhas_tsinc = WorksheetFunction.CountA(Tsinc.[T_sinc_modulos])

'passo2e3.Cells(3, col_ini).Select passo2e3.Cells(2, col_ini).Select

Selection.FormulaArray = "=IF(AND(Tabela1[@[Evento associado]]=""" & sigma & """,Tabela1[@[Evento

Comum?]]=""SIM"",Tabela1[@Sincronização]=1),Tabela1[@Módulos],""erro"")"

Selection.AutoFill Destination:=passo2e3.Range(passo2e3.Cells(2, col_ini), passo2e3.Cells(linhas_tsinc + 1, col_ini)),

Type:=xlFillDefault

'substituindo valores não desejados por brancas Selection.SpecialCells(xlCellTypeFormulas, 2).Select

Selection.ClearContents

'colando valores passo2e3.Range(passo2e3.Cells(2, col_ini), passo2e3.Cells(linhas_tsinc + 2, col_ini)).Select

Selection.Copy

132

Page 145: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

passo2e3.Cells(3, col_ini).Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

'eliminando brancas Selection.SpecialCells(xlCellTypeBlanks).Select

Selection.Delete Shift:=xlUp

passo2e3.Cells(2, col_ini).Value = "pendente"

'eliminando módulos repetidos If WorksheetFunction.CountA(passo2e3.Columns(col_ini)) - 2 > 1 Then

passo2e3.Range(passo2e3.Cells(3, col_ini), passo2e3.Cells(3, col_ini).End(xlDown)).Select

passo2e3.Range(passo2e3.Cells(3, col_ini), passo2e3.Cells(3, col_ini).End(xlDown)).RemoveDuplicates Columns:=1,

Header:=xlNo

End If

'Criando o vetor Ls_sigma Dim l As Range

If WorksheetFunction.CountA(passo2e3.Columns(col_ini)) - 2 > 1 Then

Set l = passo2e3.Range(passo2e3.Cells(3, col_ini), passo2e3.Cells(3, col_ini).End(xlDown))

Else

Set l = passo2e3.Cells(3, col_ini)

End If

l.Select

'2.1) 'ADD '-----------------------Ls_sigma 'F9 passo2e3.Names.Add Name:="L_" & sigma, RefersTo:=l

'-------------------------------------------------------------------------------------------

'Lsigma 'posicionamento do vetor Ls_sigma passo2e3.Cells(2, col_ini).Value = "L" & sigma

passo2e3.Cells(2, col_ini).Font.Bold = True

passo2e3.Cells(2, col_ini).Characters(2, len_evento_comum).Font.Subscript = True

Dim Ls As Range

Set Ls = passo2e3.Range("L_" & sigma)

'coluna final para o evento - Somar partições ativas conforme forem calculadas col_fim = col_ini + 3

'------------------IDENTIFICANDO SE O EVENTO É VIRTUAL Dim virtual2 As Integer

'se L_sigma<=1, próximo sigma n_Lsigma = Application.CountA(Ls)

'2.2) '-------------PASSO 2.1------------------------

If n_Lsigma > 1 Then

'validando o sigma atual para o ladder num_evento = num_evento + 1

133

Page 146: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

'2.3/2.4) '-------------PASSOS 2.3 E 2.4------------------------ '-------------------------Calculando M^p_\sigma--------------------------------------------- 'F9 passo2e3.Cells(2, col_ini + 1).Select

Selection.FormulaArray = "=IF(AND(Tabela1[@[Evento associado]]=""" & sigma & """,Tabela1[@[Evento

Comum?]]=""SIM"",Tabela1[@Sincronização]=1),Tabela1[@Partição],""erro"")"

Selection.AutoFill Destination:=passo2e3.Range(passo2e3.Cells(2, col_ini + 1), passo2e3.Cells(linhas_tsinc + 1, col_ini +

1)), Type:=xlFillDefault

'substituindo valores não desejados por brancas Selection.SpecialCells(xlCellTypeFormulas, 2).Select

Selection.ClearContents

'colando valores passo2e3.Range(passo2e3.Cells(2, col_ini + 1), passo2e3.Cells(linhas_tsinc + 2, col_ini + 1)).Select

Selection.Copy

passo2e3.Cells(3, col_ini + 1).Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

'eliminando brancas Selection.SpecialCells(xlCellTypeBlanks).Select

Selection.Delete Shift:=xlUp

passo2e3.Cells(2, col_ini + 1).Value = ""

'eliminando módulos repetidos If WorksheetFunction.CountA(passo2e3.Columns(col_ini + 1)) > 1 Then

passo2e3.Range(passo2e3.Cells(3, col_ini + 1), passo2e3.Cells(3, col_ini + 1).End(xlDown)).Select

passo2e3.Range(passo2e3.Cells(3, col_ini + 1), passo2e3.Cells(3, col_ini + 1).End(xlDown)).RemoveDuplicates

Columns:=1, Header:=xlNo

End If

'Criando o vetor M_p\sigma Dim mp_aux As Range

n_Mp = WorksheetFunction.CountA(passo2e3.Columns(col_ini + 1))

If n_Mp > 1 Then

Set mp_aux = passo2e3.Range(passo2e3.Cells(3, col_ini + 1), passo2e3.Cells(3, col_ini + 1).End(xlDown))

Else

Set mp_aux = passo2e3.Cells(3, col_ini + 1)

End If

mp_aux.Select

'2.4) 'ADD '-----------------------M^p_\sigma 'F9 passo2e3.Names.Add Name:="Mp_" & sigma, RefersTo:=mp_aux

'-------------------------------------------------------------------------------------------

134

Page 147: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Dim Mp As Range

Set Mp = passo2e3.Range("Mp_" & sigma)

'Mp_sigma 'posicionamento dos vetores Mp_sigma With passo2e3.Cells(2, col_ini + 1)

.Value = "Mp" & sigma

.Characters(2, 1).Font.Superscript = True

.Font.Bold = True

.Characters(3, len_evento_comum).Font.Subscript = True

'F9 End With

'-------------------------M^p_\sigma

'-------------------------Calculando M\sigma--------------------------------------------- 'F9 'contador de módulos para sincronização na partição atual cont_part = 0

'2.4) 'para cada m in M_*\sigma For Each m_sigma In Mp

m = m_sigma.Value

For Each mi In Ls

If WorksheetFunction.CountIfs(Tsinc.[T_sinc_E_associado], sigma, _

Tsinc.[T_sinc_vetor], 1, _

Tsinc.[T_sinc_particao], m, _

Tsinc.[T_sinc_modulos], mi) > 0 Then

cont_part = cont_part + 1

'posicionamento dos vetores Part_m (conjunto de módulos que sincronizam sigma pela partição m With passo2e3.Cells(2, col_ini + 3 + WorksheetFunction.Match(m, Mp, 0))

.Value = "Part" & m

.Font.Bold = True

.Characters(5, Len(m)).Font.Subscript = True

End With

'F9 passo2e3.Cells(100, col_ini + 3 + WorksheetFunction.Match(m, Mp, 0)).End(xlUp).Offset(1, 0).Value = mi

End If

Next

'----------se existem ao menos dois módulos sincronizando sigma na partição m atual If cont_part >= 2 Then

'---------incluir "m" no vetor M\sigma indicando que essa partição será ativa na sincronização 'se M\sigma tiver mais de um elemento If WorksheetFunction.CountA(passo2e3.Columns(col_ini + 2)) > 1 Then

passo2e3.Cells(3, col_ini + 2).End(xlDown).Offset(1, 0).Value = m

'se M\sigma tiver apenas um elemento ElseIf WorksheetFunction.CountA(passo2e3.Columns(col_ini + 2)) = 1 Then

passo2e3.Cells(4, col_ini + 2).Value = m

'se M\sigma estiver vazio Else

passo2e3.Cells(3, col_ini + 2).Value = m

End If

135

Page 148: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

'--------- End If

'---------- Next

'Criando o vetor Msigma Dim Msigma As Range

n_m = WorksheetFunction.CountA(passo2e3.Columns(col_ini + 2))

If n_m > 1 Then

Set Msigma = passo2e3.Range(passo2e3.Cells(3, col_ini + 2), passo2e3.Cells(3, col_ini + 2).End(xlDown))

Else

Set Msigma = passo2e3.Cells(3, col_ini + 2)

End If

'2.4) 'ADD '-----------------------M_sigma----------------------------------------------------------

passo2e3.Names.Add Name:="M_" & sigma, RefersTo:=Msigma

'-------------------------------------------------------------------------------------------

'M\sigma 'posicionamento dos vetores M_\sigma With passo2e3.Cells(2, col_ini + 2)

.Value = "M" & sigma

.Font.Bold = True

.Characters(2, len_evento_comum).Font.Subscript = True

End With

'---------------------------------------------------------------------------------------- 'formatação do evento no título da tabela passo2e3.Range(passo2e3.Cells(1, col_ini), passo2e3.Cells(1, col_ini + 3 + n_m)).Select

Selection.Merge

Selection.Font.Bold = True

passo2e3.Cells(1, col_ini).Select

With Selection

.HorizontalAlignment = xlCenter

.Font.Size = 15

.Interior.Color = RGB(200, 200, 200)

End With

'formatar conjunto de dados do evento Dim tab_sigma As Range

ultima_linha_sigma = WorksheetFunction.Max(n_Lsigma + 2, n_Mp + 2, n_m + 2)

Set tab_sigma = passo2e3.Range(passo2e3.Cells(2, col_ini), passo2e3.Cells(ultima_linha_sigma, col_ini + 3 + n_m))

'incluindo R(sigma) nos dados de sigma passo2e3.Cells(2, col_ini + 3).Value = "R(" & sigma & ")"

passo2e3.Cells(2, col_ini + 3).Font.Bold = True

tab_sigma.Select

Módulo4.formata_contorno_lista

'2.5) '-------------PASSO 2.5----------------------------------------- '----------------------------------------------------------------------------------------- '-------------------PARA CADA GRUPO ADMISSÍVEL DE M\SIGMA----------------------------------- For Each ms In Msigma

passo2e3.Select

136

Page 149: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

ms.Select

'F9 m = ms.Value

'----------------------------nomeando o conjunto Part_m 'número de módulos que sincronizam sigma pela partição m n_partM = WorksheetFunction.CountA(passo2e3.Columns(col_ini + 3 + WorksheetFunction.Match(m, Msigma, 0))) -

1

Dim partM As Range

Set partM = passo2e3.Range(passo2e3.Cells(3, col_ini + 3 + WorksheetFunction.Match(m, Msigma, 0)), _

passo2e3.Cells(3 + n_partM - 1, col_ini + 3 + WorksheetFunction.Match(m, Msigma, 0)))

partM.Select

'------------------------------------------------------------------- '2.5.1) '-------------PASSO 2.5.1 - L_\sigma------------------------ Dim l_sigma As String

l_sigma = ""

For Each elemento In partM

If Application.Match(elemento.Value, partM, 0) = 1 Then

l_sigma = elemento.Value

Else

l_sigma = l_sigma & elemento.Value

End If

Next

'------------------------------------ 'Formatação do LADDER - conjunto auxiliar contendo apenas os eventos comuns presentes no LADDER

'F9 Sheets("T_sinc").Select

Sheets("T_sinc").Unprotect Password:="tsinc"

'retirando filtros For Each obj In Sheets("T_sinc").ListObjects

obj.AutoFilter.ShowAllData

Next

Sheets("T_sinc").Columns("O:O").EntireColumn.Hidden = False

priEv = priEv + 1

ActiveSheet.[T_sinc].AutoFilter Field:=4, Criteria1:="Sim"

passo2e3.Select

'---------------FORMATANDO EVENTOS VIRTUAIS---------------------------

'variável auxiliar para identificação de eventos virtuais e partição Dim ev, Part As Integer

ev = 2

Part = 2

'função de rotulação R R = ""

'2.5.2) '-------------PASSO 2.5.2 ------------------------------------

137

Page 150: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

'---------------FUNÇÃO DE ROTULAÇÃO--------------------------- '-----------se o grupó é único If n_m = 1 Then

'------------------IDENTIFICANDO SE O EVENTO É VIRTUAL SIMPLES Dim e_virtual As Integer

e_virtual = 0

For Each modulo_de_sinc In Ls

'se para algum módulo que sincroniza sigma pela partição m houver alguma transição que não será sincronizada, sigma é virtual e_virtual = e_virtual + WorksheetFunction.CountIfs(Tsinc.[T_sinc_E_associado], sigma, _

Tsinc.[T_sinc_particao], m, _

Tsinc.[T_sinc_vetor], 0, _

Tsinc.[T_sinc_modulos], modulo_de_sinc.Value)

Next

'se evento é virtual simples If e_virtual > 0 Then

ev = 1

Part = 0

passo2e3.Select

'rotulação para evento virtual simples 'R = "(" & sigma & ")" & l_sigma R = "(" & sigma & ")" & l_sigma & "V"

ms.Offset(0, 1).Select

ms.Offset(0, 1).Value = R

'formatando o evento rotulado With ms.Offset(0, 1)

.Characters(len_evento_comum + 3, Len(l_sigma)).Font.Superscript = True

.Font.Bold = True

.Characters(len_evento_comum + Len(l_sigma) + 3, 1).Font.Subscript = True

.ColumnWidth = 15

End With

'se evento não é virtual (sincronização completa) Else

ev = 0

Part = 0

passo2e3.Select

'rotulação para sincronização completa R = "(" & sigma & ")" & l_sigma

'R = "(" & sigma & ")" & l_sigma & "v"

ms.Offset(0, 1).Select

ms.Offset(0, 1).Value = R

'formatando o evento rotulado With ms.Offset(0, 1)

.Characters(len_evento_comum + 3, Len(l_sigma)).Font.Superscript = True

.Font.Bold = True

'.Characters(len_evento_comum + Len(l_sigma) + 3, 1).Font.Subscript = True

138

Page 151: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

.ColumnWidth = 15

End With

'se evento é virtual simples ou não virtual End If

'-----------mais de um grupo Else

ev = 1

Part = 1

passo2e3.Select

'rotulação para evento virtual da partição m R = "(" & sigma & ")" & l_sigma & "V" & m

ms.Offset(0, 1).Select

ms.Offset(0, 1).Value = R

'formatando o evento rotulado With ms.Offset(0, 1)

.Characters(len_evento_comum + 3, Len(l_sigma)).Font.Superscript = True

.Font.Bold = True

.Characters(len_evento_comum + Len(l_sigma) + 3, Len(m) + 1).Font.Subscript = True

'.Characters(len_evento_comum + Len(l_sigma) + 3, Len(m) + 3).Font.Subscript = True

.ColumnWidth = 15

End With

End If

'------------------------------------------------------------ '---------------FUNÇÃO DE ROTULAÇÃO--------------------------- '2.5.3) '-------------PASSO 2.5.3 ------------------------------------ '-------------LADDER------------------------------------ '----------PARA CADA MODULO i DO GRUPO ADMISSÍVEL ATUAL------------------------------------ passo2e3.Select

'para cada modulo i do grupo admissível atual m For Each celula_i In partM

passo2e3.Select

'F9 i = celula_i.Value

'---------------------------------------------------------------- 'criando o contato NA (sigma) ladder.Select

ladder.Range(ladder.Cells(linha_ladder - 1, 3), ladder.Cells(linha_ladder + 1, 3)).Select

'2.5.3 - ITEM 1)

'F9 'inserindo contato NA - sigma (ChrW(&H2191)) ladder.Cells(linha_ladder - 2, 3).Value = sigma

'FONTE

139

Page 152: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

ladder.Cells(linha_ladder - 2, 3).Font.Size = 20

ladder.Cells(linha_ladder - 2, 3).Font.Bold = True

'inserindo o rótulo da linha do diagrama LADDER ladder.Cells(linha_ladder - 1, 1).Value = "L" & linha_diagramaLadder

ladder.Cells(linha_ladder - 1, 1).Font.Size = 18

'--------------------------- 'identificações de auxilio para criação das BOBINAS ao fim do código 'ladder.Cells(linha_ladder - 1, 2).Value = "mod " & i & sigma

'indicação da função de rotulação R ladder.Cells(linha_ladder - 1, 2).Value = "mod" & i & " " & R

'indicação de evento virtual ladder.Cells(linha_ladder - 2, 2).Value = ev

'indicação de múltiplas partições ativas ladder.Cells(linha_ladder - 2, 4).Value = Part

'indicação do módulo ladder.Cells(linha_ladder - 1, 4).Value = i

'indicação do evento sigma ladder.Cells(linha_ladder + 1, 4).Value = sigma

'indicação do rótulo l_sigma ladder.Cells(linha_ladder + 2, 4).Value = l_sigma

'indicação da partição ladder.Cells(linha_ladder + 2, 3).Value = m

linha_diagramaLadder = linha_diagramaLadder + 1

'-----Bordas Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous

Selection.Borders(xlEdgeLeft).Weight = xlMedium

Selection.Borders(xlEdgeRight).LineStyle = xlContinuous

Selection.Borders(xlEdgeRight).Weight = xlMedium

Selection.Merge

'Selection.Value = "P" Selection.Font.Size = 21

'inserindo linha de energização ladder.Cells(linha_ladder, 2).Interior.Color = RGB(0, 0, 0)

ladder.Range(ladder.Cells(linha_ladder, 4), ladder.Cells(linha_ladder, 6)).Interior.Color = RGB(0, 0, 0)

'F9 'linha de início para fechamento dos ramos à esquerda em paralelo do módulo ramo_inicio = linha_ladder

'----------------------------------------------------------------

'---------------ALTERAÇÃO DO CONJUNTO DE EVENTOS Ei DO MODULO i----------------------------

Dim abamod As Worksheet

Set abamod = Sheets("mod" & i)

abamod.Select

140

Page 153: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

abamod.Unprotect Password:="ladder"

'cópia do conjunto original If abamod.Range("B1").Value = "" Then

abamod.Columns("B:B").ColumnWidth = 15

abamod.Range("B1").Value = "Novo E" & i

abamod.Range("B1").Font.Bold = True

abamod.Range("B1").Interior.Color = RGB(255, 255, 0)

abamod.Range(abamod.Cells(2, 2), abamod.Cells(Application.CountA(abamod.[E]) + 1, 2)).Value =

abamod.[E].Value

abamod.Range(abamod.Cells(2, 2), abamod.Cells(Application.CountA(abamod.[E]) + 1, 2)).Font.Bold = True

abamod.Range(abamod.Cells(2, 2), abamod.Cells(Application.CountA(abamod.[E]) + 1, 2)).Interior.Color =

RGB(255, 255, 220)

End If

'F9 '-se evento é virtual If ev = 1 Then

'---se é virtual e o módulo atual i apresenta transições em sigma que não serão sincronizadas If WorksheetFunction.CountIfs(Tsinc.[T_sinc_E_associado], sigma, Tsinc.[T_sinc_modulos], i, _

Tsinc.[T_sinc_vetor], 0) > 0 Then

'Ei <- Ei U R(sigma) With abamod.Cells(2, 2).End(xlDown).Offset(1, 0)

.Value = R

.Font.Bold = True

.Interior.Color = RGB(255, 255, 220)

'.Columns.AutoFit '.Select

'----------verificando se há mais de uma partição ativa If Part = 1 Then

'(a)^{lsigma}_{Pm} <- (a)^{lsigma}_{Pm-v} .Characters(len_evento_comum + 3, Len(l_sigma)).Font.Superscript = True

.Characters(len_evento_comum + Len(l_sigma) + 3, Len(m) + 1).Font.Subscript = True

'se há apenas uma partição ativa Else

'(a)^{lsigma}_{v} <- (a)^{lsigma} .Characters(len_evento_comum + 3, Len(l_sigma)).Font.Superscript = True

.Characters(len_evento_comum + Len(l_sigma) + 3, 1).Font.Subscript = True

End If

End With

'---se é virtual e no módulo atual i todas as transições em sigma serão sincronizadas Else

'VERIFICAR SE NA PARTIÇÃO ANTERIOR JÁ FOI REALIZADA A OPERAÇÃO DE EXCLUSÃO DE sigma 'se sigma ainda não foi excluído, operação Ei <- Ei\{sigma} U R(sigma) é possível

Dim novoE_b As Range

Set novoE_b = abamod.Range(abamod.Cells(2, 2), abamod.Cells(2, 2).End(xlDown))

If WorksheetFunction.CountIf(novoE_b, sigma) > 0 Then

'Ei <- Ei\{sigma} U R(sigma)

141

Page 154: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

With abamod.Cells(WorksheetFunction.Match(sigma, novoE_b, 0) + 1, 2)

.Value = R

'----------verificando se há mais de uma partição ativa If Part = 1 Then

'(a)^{lsigma}_{Pm} <- (a)^{lsigma}_{Pm-v} .Characters(len_evento_comum + 3, Len(l_sigma)).Font.Superscript = True

.Characters(len_evento_comum + Len(l_sigma) + 3, Len(m) + 1).Font.Subscript = True

'se há apenas uma partição ativa Else

'(a)^{lsigma} <- (a)^{lsigma}_{v} .Characters(len_evento_comum + 3, Len(l_sigma)).Font.Superscript = True

.Characters(len_evento_comum + Len(l_sigma) + 3, 1).Font.Subscript = True

End If

End With

'countif - se sigma já foi excluído Else

'Ei <- Ei U R(sigma) With abamod.Cells(2, 2).End(xlDown).Offset(1, 0)

.Value = R

.Font.Bold = True

.Interior.Color = RGB(255, 255, 220)

'----------verificando se há mais de uma partição ativa If Part = 1 Then

'(a)^{lsigma}_{Pm} <- (a)^{lsigma}_{Pm-v} .Characters(len_evento_comum + 3, Len(l_sigma)).Font.Superscript = True

.Characters(len_evento_comum + Len(l_sigma) + 3, Len(m) + 1).Font.Subscript = True

'se há apenas uma partição ativa Else

'(a)^{lsigma} <- (a)^{lsigma}_{v} .Characters(len_evento_comum + 3, Len(l_sigma)).Font.Superscript = True

'.Characters(len_evento_comum + Len(l_sigma) + 3, 1).Font.Subscript = True

End If

'---------- '.Select End With

'is numeric End If

'evento virtual End If

'-se evento não é virtual (ev=0) -> part = 0 Else

'VERIFICAR SE NA PARTIÇÃO ANTERIOR JÁ FOI REALIZADA A OPERAÇÃO DE EXCLUSÃO DE sigma 'se sigma ainda não foi excluído, operação Ei <- Ei\{sigma} U R(sigma) é possível

Dim novoE_c As Range

Set novoE_c = abamod.Range(abamod.Cells(2, 2), abamod.Cells(2, 2).End(xlDown))

If WorksheetFunction.CountIf(novoE_c, sigma) Then

142

Page 155: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

'Ei <- Ei\{sigma} U R(sigma) With abamod.Cells(WorksheetFunction.Match(sigma, novoE_c, 0) + 1, 2)

.Value = R

.Characters(len_evento_comum + 3, Len(l_sigma)).Font.Superscript = True

End With

'is numeric - se sigma já foi excluído Else

'Ei <- Ei U R(sigma) With abamod.Cells(2, 2).End(xlDown).Offset(1, 0)

.Value = R

.Font.Bold = True

.Interior.Color = RGB(255, 255, 220)

'----------verificando se há mais de uma partição ativa If Part = 1 Then

'(a)^{lsigma}_{Pm} .Characters(len_evento_comum + 3, Len(l_sigma)).Font.Superscript = True

.Characters(len_evento_comum + Len(l_sigma) + 3, Len(m) + 1).Font.Subscript = True

Else

'(a)^{lsigma} .Characters(len_evento_comum + 3, Len(l_sigma)).Font.Superscript = True

End If

End With

'is numeric End If

'F9 End If

'---------------ALTERAÇÃO DO CONJUNTO DE EVENTOS Ei DO MODULO i - FIM - ---------------------------

'2.5.3 - ITEM 2) '----------PARA CADA TRANSIÇÃO EM sigma DO MODULO i ATUAL DO GRUPO ADMISSÍVEL m ATUAL--------- 'obtendo o conjunto de transições de "i" para o grupo "m" atual passo2e3.Select

'F9 passo2e3.Cells(2, col_ini + 3 + n_m + 1).Select

passo2e3.Cells(2, col_ini + 3 + n_m + 1).FormulaR1C1 = "=IF(AND(Tabela1[@[Evento associado]]=""" & sigma & _

""",Tabela1[@[Evento Comum?]]=""SIM"",Tabela1[@Sincronização]=1,Tabela1[@Módulos]=" & i & _

",Tabela1[@[Partição]]=" & m & "),Tabela1[@Transições],1)"

Selection.AutoFill Destination:=passo2e3.Range(passo2e3.Cells(2, col_ini + 3 + n_m + 1), passo2e3.Cells(linhas_tsinc

+ 1, col_ini + 3 + n_m + 1)), Type:=xlFillDefault

'substituindo valores não desejados (números) por brancas Selection.SpecialCells(xlCellTypeFormulas, 1).Select

Selection.ClearContents

'colando valores

143

Page 156: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

passo2e3.Range(passo2e3.Cells(2, col_ini + 3 + n_m + 1), passo2e3.Cells(linhas_tsinc + 1, col_ini + 3 + n_m +

1)).Select

Selection.Copy

passo2e3.Cells(2, col_ini + 3 + n_m + 1).Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

'eliminando brancas Selection.SpecialCells(xlCellTypeBlanks).Select

Selection.Delete Shift:=xlUp

'nomando conjunto de transições Dim tsigma_im As Range

'-----------------------------para cada transição 'n de transições do modulo "i" para a partição "m" xi_fim = Application.CountA(passo2e3.Columns(col_ini + 3 + n_m + 1))

'para cada transição tz do módulo "i" e ddo grupo "m" que sincronizam sigma For xi = 1 To xi_fim

passo2e3.Select

'linha e coluna da transição atual linha_tz = xi + 1

col_tz = col_ini + 3 + n_m + 1

passo2e3.Cells(linha_tz, col_tz).Select

'F9 'transição tz do modulo "i" para partição "m" do evento sigma tz_isigma = passo2e3.Cells(linha_tz, col_tz).Value

'---------------ALTERAÇÃO DO CONJUNTO DE EVENTOS ASSOCIADOS A tz---------------------------- 'cópia da função de rotulação original abamod.Select

abamod.Cells(1, abamod.Range("tab_rotulo").Columns(1).Column).Offset(0, 4).Select

coluna_novoEvAs = Selection.Column

If Selection.Value = "" Then

Selection.Value = "Novo Evento associado"

Selection.EntireColumn.AutoFit

Selection.Font.Bold = True

Selection.Interior.Color = RGB(255, 255, 0)

abamod.Range(abamod.Cells(2, coluna_novoEvAs), abamod.Cells(Application.CountA(abamod.[To]) + 1,

coluna_novoEvAs)).Select

Selection.Value = abamod.[tab_rotulo].Columns(4).Value

Selection.Font.Bold = True

Selection.Interior.Color = RGB(255, 255, 220)

formata_contorno_lista

'ADD 'F9 '-----------nova função de rotulação li abamod.Names.Add Name:="L_nova", RefersTo:=Selection

'----------------------------------------

End If

'-------redefinindo a função de rotulação

indice_ev = Application.Match(tz_isigma, abamod.[To], 0)

144

Page 157: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

'redefinição e formatação do novo evento associado a tz '-se evento é virtual If ev = 1 Then

With abamod.[L_nova].Rows(indice_ev)

.Value = R

.Font.Bold = True

'----------formatação 'verificando se há mais de uma partição ativa If Part = 1 Then

'(a)^{lsigma}_{Pm-v} .Characters(len_evento_comum + 3, Len(l_sigma)).Font.Superscript = True

.Characters(len_evento_comum + Len(l_sigma) + 3, Len(m) + 3).Font.Subscript = True

'se há apenas uma partição ativa Else

'(a)^{lsigma}_{v} .Characters(len_evento_comum + 3, Len(l_sigma)).Font.Superscript = True

.Characters(len_evento_comum + Len(l_sigma) + 3, 1).Font.Subscript = True

End If

End With

'-se evento não é virtual (ev=0 and part = 0) Else

With abamod.[L_nova].Rows(indice_ev)

.Value = R

.Font.Bold = True

.Characters(len_evento_comum + 3, Len(l_sigma)).Font.Superscript = True

End With

End If

'---------------ALTERAÇÃO DO CONJUNTO DE EVENTOS ASSOCIADOS A tz - FIM - --------------------------- '2.5.3 - ITEM 2-a) 'condição c tal que li: tz ->c 'F9 C = Application.VLookup(tz_isigma, abamod.[tab_rotulo], 2, 0)

Dim blocos_pre, blocos_in As Integer

Dim pre_i, in_i As Worksheet

Dim range_pre As Range

Dim range_in As Range

Set pre_i = Sheets("Pre" & i)

Set in_i = Sheets("In" & i)

'selecionando o conjunto I(t) pre_i.Select

'linha e coluna do conjunto col_pre = Application.Match(tz_isigma, pre_i.[To_aux], 0) + 1

145

Page 158: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

'--------marcação de azul para a transição síncrona nas abas Pre, In e mod pre_i.Cells(1, col_pre).Interior.Color = RGB(160, 240, 255)

in_i.Select

in_i.Unprotect Password:="ladder"

in_i.Cells(2, col_pre + 1).Interior.Color = RGB(160, 240, 255)

abamod.Select

abamod.Cells(col_pre, abamod.[To].Column).Interior.Color = RGB(160, 240, 255)

'--------- 'F9 pre_i.Select

nP = Application.CountA(pre_i.[P]) + 1

Set range_pre = pre_i.Range(pre_i.Cells(2, col_pre), pre_i.Cells(nP, col_pre))

'número de blocos Pre blocos_pre = Application.CountIf(range_pre, ">0")

col_ini_pre = 9

col_fim_pre = (blocos_pre - 1) * 3 + 9

'---------------------------------------------------------------- 'inserindo contato NA - Condição c da transição atual ladder.Select

'se condição é sempre ocorrente (c=1), não há contato NA If C = 1 Then

'inserindo linha de energização ladder.Cells(linha_ladder, 7).Interior.Color = RGB(0, 0, 0)

Else

'FONTE ladder.Cells(linha_ladder - 2, 7).Value = C

ladder.Cells(linha_ladder - 2, 7).Font.Size = 118

ladder.Cells(linha_ladder - 2, 7).Font.Bold = True

ladder.Range(ladder.Cells(linha_ladder - 1, 7), ladder.Cells(linha_ladder + 1, 7)).Select

'-----Bordas Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous

Selection.Borders(xlEdgeLeft).Weight = xlMedium

Selection.Borders(xlEdgeRight).LineStyle = xlContinuous

Selection.Borders(xlEdgeRight).Weight = xlMedium '------------ End If

'F9 'inserindo linha de energização ladder.Cells(linha_ladder, 8).Interior.Color = RGB(0, 0, 0)

ladder.Cells(linha_ladder, 6).Interior.Color = RGB(0, 0, 0)

'2.5.3 - ITEM 2-b) 'verificação dos Pre>0 (I(t)) For Each cell_pre In range_pre

pre_i.Select

pre_pt = cell_pre.Value

If pre_pt > 0 Then

P = pre_i.Cells(cell_pre.Row, 1)

146

Page 159: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

label_pre = "x(" & P & ") >= " & pre_pt

ladder.Select

ladder.Cells(linha_ladder + 1, coluna_ladder).Select

ladder.Cells(linha_ladder + 1, coluna_ladder).Value = label_pre

ladder.Cells(linha_ladder, coluna_ladder).Offset(-1, 0).Value = "COMP"

'FONTE ladder.Cells(linha_ladder, coluna_ladder).Offset(-1, 0).Font.Size = 20

'idetificação da transição e de "mod_i\sigma" ladder.Cells(linha_ladder, coluna_ladder).Offset(2, 0).Value = tz_isigma & " - mod " & i & " (" & sigma & ")"

ladder.Cells(linha_ladder, coluna_ladder).Offset(2, 0).Font.Size = 17

'formatação alternada do fundo no LADDER para cada sigma If num_evento Mod 2 <> 0 Then

ladder.Range(ActiveCell.Offset(-2, 0), ActiveCell).Select

Selection.Font.Bold = True

'FONTE Selection.Font.Size = 20

Selection.Interior.Color = RGB(255, 255, 200)

'-----Bordas Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous

Selection.Borders(xlEdgeLeft).Weight = xlMedium

Selection.Borders(xlEdgeTop).LineStyle = xlContinuous

Selection.Borders(xlEdgeTop).Weight = xlMedium

Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous

Selection.Borders(xlEdgeBottom).Weight = xlMedium

Selection.Borders(xlEdgeRight).LineStyle = xlContinuous

Selection.Borders(xlEdgeRight).Weight = xlMedium

'--------------------------- 'identificação de auxilio para criação das BOBINAS ao fim do código ladder.Cells(linha_ladder + 1, 2).Value = "a"

'--------------------------- Else

ladder.Range(ActiveCell.Offset(-2, 0), ActiveCell).Select

Selection.Font.Bold = True

'FONTE Selection.Font.Size = 20

Selection.Interior.Color = RGB(220, 255, 220)

'-----Bordas Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous

Selection.Borders(xlEdgeLeft).Weight = xlMedium

Selection.Borders(xlEdgeTop).LineStyle = xlContinuous

Selection.Borders(xlEdgeTop).Weight = xlMedium

Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous

Selection.Borders(xlEdgeBottom).Weight = xlMedium

Selection.Borders(xlEdgeRight).LineStyle = xlContinuous

147

Page 160: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Selection.Borders(xlEdgeRight).Weight = xlMedium

'----------- '--------------------------- 'identificação de auxilio para criação das BOBINAS ao fim do código ladder.Cells(linha_ladder + 1, 2).Value = "v"

'---------------------------

End If

'inserindo linha de energização ladder.Range(ladder.Cells(linha_ladder, coluna_ladder + 1), ladder.Cells(linha_ladder, coluna_ladder +

2)).Interior.Color = RGB(0, 0, 0)

'F9 'próximo bloco COMP da mesma transição coluna_ladder = coluna_ladder + 3

End If

'verificação dos Pre>0 (I(t)) Next

'------------------------------------------------------------

'2.5.3 - ITEM 2-c) 'verificação dos arcos inibidores

'selecionando o conjunto In(p,t)>0 in_i.Select

Set range_in = in_i.Range(in_i.Cells(3, col_pre + 1), in_i.Cells(nP + 1, col_pre + 1))

'número de blocos In blocos_in = Application.CountIf(range_in, ">0")

'se não houver arco inibidor para a transição atual, passar direto If blocos_in > 0 Then

'verificação dos In(p,t)>0 For Each cell_in In range_in

in_i.Select

'cell_in.Select 'valor do Pre(p,t) atual in_pt = cell_in.Value

If in_pt > 0 Then

pin = in_i.Cells(cell_in.Row, 2)

label_in = "x(" & pin & ") < " & in_pt

ladder.Select

ladder.Cells(linha_ladder + 1, coluna_ladder).Select

ladder.Cells(linha_ladder + 1, coluna_ladder).Value = label_in

ladder.Cells(linha_ladder - 1, coluna_ladder).Value = "COMP"

'FONTE ladder.Cells(linha_ladder - 1, coluna_ladder).Font.Size = 20

148

Page 161: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

'idetificação da transição e de "mod_i\sigma" ladder.Cells(linha_ladder + 2, coluna_ladder).Value = tz_isigma & " - mod " & i & sigma

ladder.Cells(linha_ladder + 2, coluna_ladder).Font.Size = 17

'formatação alternada do fundo no LADDER para cada sigma If num_evento Mod 2 <> 0 Then

ladder.Range(ActiveCell.Offset(-2, 0), ActiveCell).Select

Selection.Font.Bold = True

'FONTE Selection.Font.Size = 20

Selection.Interior.Color = RGB(230, 230, 130)

'-----Bordas Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous

Selection.Borders(xlEdgeLeft).Weight = xlMedium

Selection.Borders(xlEdgeTop).LineStyle = xlContinuous

Selection.Borders(xlEdgeTop).Weight = xlMedium

Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous

Selection.Borders(xlEdgeBottom).Weight = xlMedium

Selection.Borders(xlEdgeRight).LineStyle = xlContinuous

Selection.Borders(xlEdgeRight).Weight = xlMedium

'-----------

Else

ladder.Range(ActiveCell.Offset(-2, 0), ActiveCell).Select

Selection.Font.Bold = True

'FONTE Selection.Font.Size = 20

Selection.Interior.Color = RGB(150, 220, 150)

'-----Bordas Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous

Selection.Borders(xlEdgeLeft).Weight = xlMedium

Selection.Borders(xlEdgeTop).LineStyle = xlContinuous

Selection.Borders(xlEdgeTop).Weight = xlMedium

Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous

Selection.Borders(xlEdgeBottom).Weight = xlMedium

Selection.Borders(xlEdgeRight).LineStyle = xlContinuous

Selection.Borders(xlEdgeRight).Weight = xlMedium

'-----------

End If

'inserindo linha de energização ladder.Range(ladder.Cells(linha_ladder, coluna_ladder + 1), ladder.Cells(linha_ladder, coluna_ladder +

2)).Interior.Color = RGB(0, 0, 0)

'F9 'próximo bloco COMP da mesma transição coluna_ladder = coluna_ladder + 3

149

Page 162: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

End If

'verificação dos In(p,t)>0 Next

'se não houver arco inibidor para a transição atual, passar direto End If

ladder.Select

'------------------------------------------------------------ 'ao término do ramo da transição

'verificar e atualizar última coluna GLOBAL para inserção das BOBINAS If (coluna_ladder - 1) > ult_col_GLOBAL Then

ult_col_GLOBAL = coluna_ladder - 1

End If

'--------------------------- 'identificação de auxilio para fechamento dos ramos paralelos à direita ao fim do código ladder.Cells(linha_ladder + 2, 2).Value = coluna_ladder - 1

'---------------------------

'próxima linha para próxima transição linha_ladder = linha_ladder + 5

'voltando à coluna inicial coluna_ladder = 9

'F9 'para cada transição tz do módulo "i" e do grupo "m" que sincronizam sigma Next

'inserindo linha de fechamento dos ramos em paralelo do módulo ramo_fim = linha_ladder - 5

ladder.Select

ladder.Range(ladder.Cells(ramo_inicio, 5), ladder.Cells(ramo_fim, 5)).Interior.Color = RGB(0, 0, 0)

'F9 'para cada modulo i do grupo admissível atual m Next

'----------PARA CADA MODULO i DO GRUPO ADMISSÍVEL ATUAL - FIM - ------------------------------------

'------------------------------------------------------------------ '2.5.4) '-------------PASSO 2.5.4 ------------------------------------ 'após conclusão de todas as linhas associadas aos modulos para esse grupo, inserir contatos NA com mod_i\sigma em série

passo2e3.Select

'inserir rótulo da linha do LADDER ladder.Select

ladder.Cells(linha_ladder - 1, 1).Value = "L" & linha_diagramaLadder

'FONTE ladder.Cells(linha_ladder - 1, 1).Font.Size = 18

linha_diagramaLadder = linha_diagramaLadder + 1

'inserindo linha de energização

150

Page 163: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

ladder.Range(ladder.Cells(linha_ladder, 2), ladder.Cells(linha_ladder, 9)).Interior.Color = RGB(0, 0, 0)

'inserindo contatos NA com mod_i\sigma For Each contato_NA In partM

passo2e3.Select

moduloNA = contato_NA.Value

'-------FORMATAÇÃO DA NOMENCLATURA DO CONTATO DA BOBINA DO MODULO ATUAL PARA O GRUPO ADMISSÍVEL ATUAL

contatoNA = "mod" & moduloNA & " " & R

ladder.Select

ladder.Range(ladder.Cells(linha_ladder - 1, coluna_ladder + 1), ladder.Cells(linha_ladder + 1, coluna_ladder +

1)).Select

With ladder.Cells(linha_ladder - 2, coluna_ladder + 1)

.Value = contatoNA

.Font.Bold = True

'FONTE .Font.Size = 20

'-se evento é virtual If ev = 1 Then

'----------formatação 'verificando se há mais de uma partição ativa If Part = 1 Then

'modi (a)^{lsigma}_{Pm-v} .Characters(3 + Len(moduloNA) + 2 + len_evento_comum + 2, Len(l_sigma)).Font.Superscript = True

.Characters(3 + Len(moduloNA) + 2 + len_evento_comum + 2 + Len(l_sigma), Len(m) + 3).Font.Subscript =

True

'se há apenas uma partição ativa Else

'modi (a)^{lsigma}_{v} .Characters(3 + Len(moduloNA) + 2 + len_evento_comum + 2, Len(l_sigma)).Font.Superscript = True

.Characters(3 + Len(moduloNA) + 2 + len_evento_comum + 2 + Len(l_sigma), 1).Font.Subscript = True

End If

'----------

'-se evento não é virtual Else

.Characters(3 + Len(moduloNA) + 2 + len_evento_comum + 2, Len(l_sigma)).Font.Superscript = True

End If

'F9 End With

'----- FIM --FORMATAÇÃO DA NOMENCLATURA DO CONTATO DA BOBINA DO MODULO ATUAL PARA O GRUPO ADMISSÍVEL ATUAL

'-----Bordas e fundo Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous

Selection.Borders(xlEdgeLeft).Weight = xlMedium

Selection.Borders(xlEdgeRight).LineStyle = xlContinuous

Selection.Borders(xlEdgeRight).Weight = xlMedium

'inserindo linha de energização

151

Page 164: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

ladder.Range(ladder.Cells(linha_ladder, coluna_ladder + 2), ladder.Cells(linha_ladder, coluna_ladder +

3)).Interior.Color = RGB(0, 0, 0)

coluna_ladder = coluna_ladder + 3

'F9 'próximo mod_i\sigma Next

'------------------------------------------------------------------------- 'após contatos NA em série, inserir contato NA FINAL para sigma - SINC_sigma ladder.Range(ladder.Cells(linha_ladder - 1, coluna_ladder + 1), ladder.Cells(linha_ladder + 1, coluna_ladder + 1)).Select

'------------------------------------------------------

'2.5.5) '-------------PASSO 2.5.5 ------------------------------------ '---------------------CONTATO FINAL - BOBINA sinc_sigma '-----------FORMATAÇÃO NA NOMENCLATURA DA BOBINA FINAL SINC_SIGMA With ladder.Cells(linha_ladder - 2, coluna_ladder + 1)

.Value = "SINC " & R

'FONTE .Font.Size = 22

.Font.Bold = True

'-se evento é virtual If ev = 1 Then

'----------formatação 'verificando se há mais de uma partição ativa If Part = 1 Then

'Sinc (a)^{lsigma}_{Pm-v} .Characters(8 + len_evento_comum, Len(l_sigma)).Font.Superscript = True

.Characters(8 + len_evento_comum + Len(l_sigma), Len(m) + 3).Font.Subscript = True

'se há apenas uma partição ativa Else

'Sinc (a)^{lsigma}_{v} .Characters(8 + len_evento_comum, Len(l_sigma)).Font.Superscript = True

.Characters(8 + len_evento_comum + Len(l_sigma), 1).Font.Subscript = True

End If

'----------

'-se evento não é virtual Else

'----------formatação .Characters(8 + len_evento_comum, Len(l_sigma)).Font.Superscript = True

End If

'F9 End With

'----- FIM ------FORMATAÇÃO NA NOMENCLATURA DA BOBINA FINAL SINC_SIGMA

'-----Bordas e fundo Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous

Selection.Borders(xlEdgeLeft).Weight = xlMedium

152

Page 165: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Selection.Borders(xlEdgeRight).LineStyle = xlContinuous

Selection.Borders(xlEdgeRight).Weight = xlMedium

'formatando fundo listrado da BOBINA Sinc \sigma With Selection.Interior

.Pattern = xlHorizontal

.PatternColor = 255

.ColorIndex = xlAutomatic

.TintAndShade = 0

.PatternTintAndShade = 0

'F9 End With

'Selection.Interior.Color = RGB(255, 0, 0)

'verificar e atualizar última coluna GLOBAL para inserção das BOBINAS If (coluna_ladder + 5) > ult_col_GLOBAL Then

ult_col_GLOBAL = coluna_ladder + 5

End If

'----------------- 'auxílio para fechamento da linha de energização ao final do código

ladder.Cells(linha_ladder + 1, 2).Value = coluna_ladder + 1

'-----------------

'próxima linha para próximo sigma linha_ladder = linha_ladder + 5

'restaurando coluna inicial coluna_ladder = 9

'F9 'para cada grupo admissível de M\sigma Next

'-------------------PARA CADA GRUPO ADMISSÍVEL DE M\SIGMA - FIM - ----------------------------------- '------------------------------------------------------------------------------------------------------------

'limpando o vetor com todas as transições do modulo "i" do grupo "m" que sincroniza sigma passo2e3.Select

passo2e3.Columns(col_ini + 3 + n_m + 1).Value = ""

'atualização da coluna inicial para o próximo evento em passo 2 col_ini = col_ini + 3 + n_m + 1 + 2

'se L_sigma<=1, próximo sigma Else

passo2e3.Names("L_" & sigma).Delete

'se o último sigma não for sincronizado, deletar as informações provisórias de passo 2 If WorksheetFunction.Match(sigma, passo1.[Ec]) = WorksheetFunction.CountA(passo1.[Ec]) Then

passo2e3.Cells(1, col_ini).Value = ""

passo2e3.Cells(2, col_ini).Value = ""

'F9 End If

End If

153

Page 166: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

'F9 'para cada sigma \in Ec Next

'FIM DOS COMPONENTES '------------------------------------------------------------------------- '------------------------------------------------------------------------- '-------------------------------------------------------------------------

ladder.Select

'última linha global do diagragama Ladder ult_lin_GLOBAL = linha_ladder

'-------------------------------------------------------------------- 'criar barra esquerda de energização ladder.Range(ladder.Cells(3, 2), ladder.Cells(linha_ladder, 2)).Select

Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous

Selection.Borders(xlEdgeLeft).Weight = xlMedium

'--------------------------------------------------------------------

'criar coluna da barra direita de fechamento de ramo ladder.Columns(ult_col_GLOBAL + 1).Select

Selection.ColumnWidth = 0.25

'coluna de espaçamento da bobina à esquerda ladder.Columns(ult_col_GLOBAL + 2).Select

Selection.ColumnWidth = 10

'coluna das BOBINAS col_bobina = ult_col_GLOBAL + 3

ladder.Columns(col_bobina).Select

Selection.ColumnWidth = 5

'coluna de espaçamento da bobina à direita ladder.Columns(col_bobina + 1).Select

Selection.ColumnWidth = 12

'coluna externa ao diagrama à direita ladder.Columns(col_bobina + 2).Select

Selection.ColumnWidth = 3.86

'-------------------------------------------------------------------- 'criar barra direita de energização ladder.Range(ladder.Cells(3, col_bobina + 1), ladder.Cells(linha_ladder, col_bobina + 1)).Select

Selection.Borders(xlEdgeRight).LineStyle = xlContinuous

Selection.Borders(xlEdgeRight).Weight = xlMedium

'--------------------------------------------------------------------

'área de impressão - diagrama completo ladder.Select

Dim diagrama_completo As Range

Set diagrama_completo = ladder.Range(ladder.Cells(3, 1), ladder.Cells(linha_ladder, col_bobina + 2))

diagrama_completo.Select

'ADD

154

Page 167: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

'LADDER ActiveWorkbook.Names.Add Name:="Ladder", RefersTo:=Selection

ActiveSheet.PageSetup.PrintArea = "Ladder"

'------------------------------------------------------------------------- '------------------------------------------------------------------------- '-------------------------------------------------------------------------

'varredura para criação das BOBINAS e fechamento da bobina SINC_sigma ladder.Select

ladder.Range("A1").Select

Selection.End(xlDown).Select

Dim celula_ativa As Range

Do While ActiveCell.Row < ult_lin_GLOBAL

Set celula_ativa = ActiveCell

'linha das BOBINAS '------------------------------------------------------ If celula_ativa.Offset(0, 1).Value <> "" Then

linha_bobina = celula_ativa.Offset(1, 0).Row

'cor da bobina cor_bobina = celula_ativa.Offset(2, 1).Value

'-------FORMATAÇÃO DA NOMENCLATURA DA BOBINA DO MODULO ATUAL PARA O GRUPO ADMISSÍVEL ATUAL

ladder.Range(ladder.Cells(linha_bobina - 1, col_bobina), ladder.Cells(linha_bobina + 1, col_bobina)).Select

'obtendo dados para a formatação 'F9 'nome da bobina nome_bobina = celula_ativa.Offset(0, 1).Value

'ev ev_aux = celula_ativa.Offset(-1, 1).Value

'Part Part_aux = celula_ativa.Offset(-1, 3).Value

'i i_aux = celula_ativa.Offset(0, 3).Value

'sigma sigma_aux = celula_ativa.Offset(2, 3).Value

'l_sigma l_sigma_aux = celula_ativa.Offset(3, 3).Value

'partição m m_aux = celula_ativa.Offset(3, 2).Value

'2.5.3 - ITEM 3)

'inserindo BOBINA mod_i \sigma With ladder.Cells(linha_bobina - 2, col_bobina)

.Value = nome_bobina

.Font.Bold = True

'FONTE .Font.Size = 20

'-se evento é virtual If ev_aux = 1 Then

'----------formatação

155

Page 168: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

'verificando se há mais de uma partição ativa If Part_aux = 1 Then

'modi (a)^{lsigma}_{Pm-v} .Characters(3 + Len(i_aux) + 2 + Len(sigma_aux) + 2, Len(l_sigma_aux)).Font.Superscript = True

.Characters(3 + Len(i_aux) + 2 + Len(sigma_aux) + 2 + Len(l_sigma_aux), Len(m_aux) + 3).Font.Subscript = True

'se há apenas uma partição ativa Else

'modi (a)^{lsigma}_{v} .Characters(3 + Len(i_aux) + 2 + Len(sigma_aux) + 2, Len(l_sigma_aux)).Font.Superscript = True

.Characters(3 + Len(i_aux) + 2 + Len(sigma_aux) + 2 + Len(l_sigma_aux), 1).Font.Subscript = True

End If

'----------

'-se evento não é virtual Else

'----------formatação 'verificando se há mais de uma partição ativa If Part_aux = 1 Then

'modi (a)^{lsigma}_{Pm} .Characters(3 + Len(i_aux) + 2 + Len(sigma_aux) + 2, Len(l_sigma_aux)).Font.Superscript = True

.Characters(3 + Len(i_aux) + 2 + Len(sigma_aux) + 2 + Len(l_sigma_aux), Len(m_aux) + 1).Font.Subscript = True

Else

'modi (a)^{lsigma} .Characters(3 + Len(i_aux) + 2 + Len(sigma_aux) + 2, Len(l_sigma_aux)).Font.Superscript = True

End If

'----------

End If

'F9 End With

'--- FIM ----FORMATAÇÃO DA NOMENCLATURA DA BOBINA DO MODULO ATUAL PARA O GRUPO ADMISSÍVEL ATUAL

'-----zerando valores auxiliares

'nome da bobina celula_ativa.Offset(0, 1).Value = ""

'cor da bobina celula_ativa.Offset(2, 1).Value = ""

'ev celula_ativa.Offset(-1, 1).Value = ""

'Part celula_ativa.Offset(-1, 3).Value = ""

'i celula_ativa.Offset(0, 3).Value = ""

'sigma celula_ativa.Offset(2, 3).Value = ""

'l_sigma celula_ativa.Offset(3, 3).Value = ""

'partição m celula_ativa.Offset(3, 2).Value = ""

'-----Bordas

156

Page 169: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous

Selection.Borders(xlEdgeLeft).Weight = xlMedium

Selection.Borders(xlEdgeRight).LineStyle = xlContinuous

Selection.Borders(xlEdgeRight).Weight = xlMedium

'fechando linhas de energização ladder.Cells(linha_bobina, col_bobina + 1).Interior.Color = RGB(0, 0, 0)

ladder.Cells(linha_bobina, col_bobina - 1).Interior.Color = RGB(0, 0, 0)

'formatando fundo listrado da BOBINA mod With Selection.Interior

.Pattern = xlUp

.PatternThemeColor = xlThemeColorDark1

.ThemeColor = xlThemeColorDark1

.TintAndShade = 0

.PatternTintAndShade = -0.349986266670736

End With

'linha dos contatos SINC_sigma '------------------------------------------------------ Else

linha_bobina = celula_ativa.Offset(1, 0).Row

col_energ_ini = celula_ativa.Offset(2, 1).Value

'fechando linha de energização ladder.Range(ladder.Cells(linha_bobina, col_energ_ini + 1), ladder.Cells(linha_bobina, col_bobina + 1)).Interior.Color =

RGB(0, 0, 0)

'F9

'zerando valores auxiliares celula_ativa.Offset(2, 1).Value = ""

End If

'atualização do loop celula_ativa.End(xlDown).Select

Loop

'-----------------------------------------------------------------------------

'varredura para fechamento dos ramos paralelos ladder.Range("B1").Select

col_principal_final = ult_col_GLOBAL + 1

Selection.End(xlDown).Select

Dim cel_ativa As Range

Do While ActiveCell.Row < ult_lin_GLOBAL

Set cel_ativa = ActiveCell

'linha principal da BOBINA If IsNumeric(cel_ativa.Value) Then

linha_principal = cel_ativa.Offset(-2, 0).Row

col_principal_inicial = cel_ativa.Value + 1

'completando linha horizontal de energização de cada ramo até a última coluna ladder.Range(ladder.Cells(linha_principal, col_principal_inicial), ladder.Cells(linha_principal,

col_principal_final)).Interior.Color = RGB(0, 0, 0)

'ramos paralelos da BOBINA Else

linha_auxiliar = cel_ativa.Offset(-1, 0).Row

157

Page 170: Uma metodologia para sincronização online de controladores ...monografias.poli.ufrj.br/monografias/monopoli10026646.pdf · UMA METODOLOGIA ARAP SINCRONIZAÇÃO ONLINE DE CONTROLADORES

'completando ramos paralelos à direita ladder.Range(ladder.Cells(linha_auxiliar, col_principal_final), ladder.Cells(linha_principal,

col_principal_final)).Interior.Color = RGB(0, 0, 0)

'F9 End If

'eliminando variável auxiliar cel_ativa.Value = ""

cel_ativa.End(xlDown).Select

Loop

'----------------------------------------------------------------------------- '----------------------------------------------------------------------------- '-----------------------------------------------------------------------------

'Ordenação das planilhas Módulo4.ordena_planilhas

Sheets("Início").Move before:=Sheets(1)

Sheets("T_sinc").Move after:=Sheets(1)

Sheets("Ladder").Move after:=Sheets(2)

Sheets("Passo 1").Move after:=Sheets(3)

Sheets("Passos 2-3").Move after:=Sheets(4)

For pos = 1 To k

Sheets("In" & pos).Move after:=Sheets(ThisWorkbook.Sheets.Count)

Sheets("In" & pos).Protect Password:="ladder", DrawingObjects:=True, Contents:=True, Scenarios:=True

Sheets("mod" & pos).Protect Password:="ladder", DrawingObjects:=True, Contents:=True, Scenarios:=True

Next

Sheets("T_sinc").Protect Password:="tsinc", DrawingObjects:=False, Contents:=True, Scenarios:=True, AllowFiltering:=True

ladder.Select

ladder.Range("A1").Select

MsgBox "Cálculos concluídos com sucesso!", vbInformation, "Processo concluído!"

ActiveWorkbook.Protect Password:="sinc", structure:=True, Windows:=True

Application.ScreenUpdating = True

Exit Sub

'erro por falta de uma planilha de um dos módulos modulos_incompletos:

MsgBox "Módulos incompletos! Crie os módulos e tente novamente.", vbExclamation, "Módulos incompletos."

ActiveWorkbook.Protect Password:="sinc", structure:=True, Windows:=True

Application.ScreenUpdating = True

'Application.EnableEvents = True disable_selection = False

End Sub

158