Академический Документы
Профессиональный Документы
Культура Документы
Banca Examinadora:
Primeiramente gostaria de agradecer aos meus pais e meus irmãos que tanto
me incentivaram durante esta jornada. Tenho certeza de que sem o apoio deles
nada disso teria se realizado.
Aos amigos, novos e antigos. Obrigado por tornar esses cinco anos não
apenas um período de aprendizagem técnica, mas uma aprendizagem de vida.
Tenho certeza de que as amizades aqui feitas durarão para sempre.
i
Resumo
ii
Abstract
This work has as purpose the development of a system that makes possible
the remote access to controlled machines with capable equipment in net
communication. The solution proposed was focused in the problems of machines
maintenance of San Martin’s company. The objective was to make diagnostics, to
modify parameters and to guide tests with the minimum aid of the customer’s
companies’ employees.
iii
Sumário
Agradecimentos................................................................................................. i
Resumo ............................................................................................................ ii
Sumário ........................................................................................................... iv
Simbologia........................................................................................................1
2.1.1: Automatização...............................................................................10
3.2.1: Introdução......................................................................................22
iv
3.2.3: Formato dos Dados .......................................................................29
3.5.1: Supervisório...................................................................................45
Bibliografia:.....................................................................................................67
v
Lista de Figuras
vi
Figura 4-16: Arquitetura Simplificada..............................................................43
vii
Simbologia
IP – Internet Protocol
1
Capítulo 1: Introdução
2
Figura 1-1: Máquina de Amaciar
3
1.2: Introdução ao Problema
Devia-se buscar uma solução que minimizasse esse problema. Para isso, foi
proposta a elaboração e implementação de um sistema que permitisse ao pessoal
qualificado acessar os CLPs de forma remota, para que soluções pudessem ser
encontradas no menor tempo possível.
4
Tais problemas levaram ao questionamento de alternativas que pudessem, se
não solucionar, pelo menos minimizar os inconvenientes citados acima.
5
Vantagens: Eles conheceriam melhor as máquinas, podendo inclusive,
prevenir certos problemas. A manutenção seria “instantânea”.
6
Após a avaliação das soluções propostas, escolhemos a última por se tratar
de uma solução de baixíssimo custo. Para sua implementação, foram escolhidas as
tecnologias mais simples e que nos possibilitassem a troca de fornecedores, sem
comprometer o sistema.
7
Capítulo 2: Estudo do Produto
8
de produtos químicos, com a temperatura controlada, para que este possa ser
recurtido e/ou tingido de acordo com as necessidades do processo.
9
Figura 2-3: Vista Posterior do BorealMatic
2.1.1: Automatização
- Controle de temperatura:
11
de programar a máquina. A solução oferecida para este problema foi a ligação das
máquinas em rede, de forma que um software supervisório se encarregasse da
programação.
Protocolo Proprietário
12
que a mesma possa entrar em funcionamento pela primeira vez. Logo em seguida,
solicita-se que uma carga, no caso couro, seja disponibilizada para testes e
regulagens da máquina. Normalmente, pede-se uma carga pequena, pois durante
essa etapa, os operadores ainda não conhecem muito bem o funcionamento da
máquina. O funcionário da San Martin acompanha uma partida inteira, explicando e
demonstrando todo o funcionamento e esclarecendo todas as dúvidas que,
eventualmente, possam aparecer.
Por se tratar de uma máquina que segue uma receita pré-cadastrada, a tarefa
não pára por ai. Depois de ensinar os operadores a trabalharem com a máquina,
tanto em modo manual, quanto em automático, fica faltando, ainda, a parte da
programação. Essa tarefa é realizada junto aos técnicos de couro do curtume, pois
cabe a eles o desenvolvimento das receitas ao qual os couros serão submetidos. É
tarefa do funcionário da empresa mostrar como se programa a máquina com a
receita desenvolvida e não o desenvolvimento da mesma, pois essa normalmente é
um segredo muito bem guardado pelos curtumes. Por fim, um manual de instruções
de manutenção, de operação e de programação é entregue ao cliente, para que
possam ser sanadas todas as futuras dúvidas.
13
O sistema de suporte por telefone, boa parte das vezes, deixa de funcionar
por uma dificuldade de entendimento entre quem relata os problemas e quem tenta
solucioná-los, algumas vezes causado pela diferença de idioma, mas,
principalmente, pela falta de capacitação do pessoal da manutenção.
14
Capítulo 3: Implementação da Solução
15
modelado adequadamente. A análise de um sistema procura identificar a relação
entre os seus componentes, utilizando-se de modelos preconcebidos.
TPDU
attributes
- FData: string;
- FExceptionCode: Byte;
- FFunctionCode: Byte;
operations
+ BuildException(..)
+ BuildResponse(..)
+ IsDataCorrect: Byte;
16
A relação entre as classes é caracterizada pela seguinte frase: classe
derivada É UM(A) classe genérica. A Figura 3-2 mostra uma hierarquia, onde a
classe TPDU é a base e as classes TADURTU e TADUTCP são derivadas.
TPDU
TADUTCP TADURTU
17
TCustom Gatew ay
18
3.1.2: Diagramas UML
19
para modelar e melhorar os processos envolvidos no funcionamento de
empresas.
Cada um destes métodos possui sua própria notação (seus próprios símbolos
para representar modelos orientados a objetos), processos (que atividades são
desenvolvidas em diferentes partes do desenvolvimento), e ferramentas (as
ferramentas CASE que suportam cada uma destas notações e processos).
Diante desta diversidade de conceitos, "os três amigos", Grady Booch, James
Rumbaugh e Ivar Jacobson decidiram criar uma Linguagem de Modelagem
Unificada. Eles disponibilizaram inúmeras versões preliminares da UML para a
comunidade de desenvolvedores e a resposta incrementou muitas novas idéias que
melhoraram ainda mais a linguagem.
20
• Sistemas Distribuídos: Distribuídos em máquinas onde os dados são
transferidos facilmente de uma máquina para outra. Eles requerem
mecanismos de comunicação sincronizados para garantir a integridade dos
dados e, geralmente, são construídos em mecanismos de objetos como
CORBA, COM/DCOM ou Java Beans/RMI.
É importante perceber que a maioria dos sistemas não possui apenas uma
destas características acima relacionadas, mas várias delas ao mesmo tempo.
Sistemas de informações, de hoje, por exemplo, podem ter tanto características
distribuídas como de tempo real. E a UML suporta modelagens de todos estes tipos
de sistemas.
3.1.3: Metodologia
21
Concepção Elaboração Construção Transição
Mesmo com este tipo de processo iterativo, algum trabalho tem que ser
deixado para ser feito no fim, na fase de transição. Este trabalho pode incluir teste
beta, ajuste de performance e treinamento de usuário.
3.2: Modbus
3.2.1: Introdução
22
• Transmissão serial assíncrona sobre uma variedade dos meios (fio: RS232,
RS422, RS485; fibra, rádio, etc..);
23
Figura 3-6: Camadas do Modbus
A ADU é construída pelo cliente que inicia uma transação. A função indica ao
usuário que tipo da ação executar. O protocolo de aplicação Modbus estabelece o
formato de um pedido iniciado por um cliente.
24
O campo Function Code é codificado em um byte. Os códigos válidos estão
no intervalo de 1 a 255 (128 - 255 reservados para respostas de exceção). Quando
uma mensagem é transmitida de um cliente a um dispositivo servidor, o campo
Function Code diz ao servidor que tipo da ação executar. O código "0" é inválido.
25
Para uma resposta de exceção, o servidor retorna um código que seja
equivalente ao código original do pedido com seu bit mais significativo igual a um.
Portanto:
Conseqüentemente:
26
Figura 3-10: ADU sobre TCP/IP
27
A figura abaixo mostra uma comparação das camadas do protocolo Modbus,
em relação ao modelo ISO/OSI.
Modbus baseia seu modelo de dados em uma série de tabelas que têm
características distintas. As quatro tabelas principais são:
Para cada uma das tabelas, o protocolo permite uma seleção individual de
65536 posições de dados, e as operações de leitura ou escrita desses dados são
projetadas para trabalhar com dados consecutivos, até um limite que depende do
código da função.
29
Define também um modelo dos dados composto de 4 blocos que compreende
diversos elementos numerados de 1 a n.
A Figura 3-14 mostra uma transação genérica vista e processada pelo lado do
servidor.
30
Figura 3-14: Fluxograma de uma Transação
Uma vez que a requisição tenha sido processada pelo servidor, uma resposta
tem que ser enviada para o cliente. Dependendo do resultado do processamento,
dois tipos de respostas podem ser construídas:
31
- O campo código da função tem seu bit mais significativo “setado”;
Esta função é usada para ler de 1 a 2000 status contínuos de saídas digitais
de um dispositivo remoto. O PDU do pedido especifica o endereço inicial, isto é o
endereço da primeira saída especificada, e da quantidade desejada.
Requisição:
32
Endereço Inicial 2 Bytes 0x0000 a 0xFFFF
Resposta:
Erro:
Requisição:
Resposta:
33
Função 1 Byte 0x02
Erro:
Requisição:
Resposta:
Erro:
34
Função 1 Byte 0x83
Requisição:
Resposta:
Erro:
35
seguido de outro 0x00 determina que é para desativar a saída. Caso o valor enviado
na requisição seja diferente, o estado da saída permanece inalterado.
Requisição:
Resposta:
Erro:
Requisição:
36
Endereço do Registro 2 Bytes 0x0000 a 0xFFFF
Resposta:
Erro:
Esta função é usada para forçar cada saída em uma seqüência, tanto para
ativar quanto para desativar, em um dispositivo remoto. O PDU da requisição
especifica o endereço inicial e a quantidade de saídas a serem forçadas.
Requisição:
37
Função 1 Byte 0x0F
Quantidade de saídas /
Quantidade de Bytes 1 Byte
8
Valores n Bytes
Resposta:
Erro:
Requisição:
38
Função 1 Byte 0x10
Valores n Bytes
Resposta:
Erro:
3.3.1: Contextualização
Os Web Services são uma tecnologia emergente, sobre a qual muito se tem
especulado. Uns apontam-na como o caminho a seguir no desenvolvimento de
aplicações distribuídas, enquanto outros vêm nelas apenas mais uma evolução de
um conceito antigo [ 11 ], [ 12 ].
39
Estas suas características devem-se, em grande parte, ao fato de se
basearem em normas “Standard”, dentre as quais se destacam: XML, SOAP, WSDL
e UDDI.
Descrição: Processo pelo qual o Web Service expõe a sua API (documento
WSDL); desta maneira a aplicação cliente tem acesso a toda a interface do Web
Service, onde se encontram descritas todas as funcionalidades por ele
40
disponibilizadas, assim como os tipos de mensagens que permitem aceder às ditas
funcionalidades.
Descrição Æ WSDL;
Invocação Æ SOAP.
41
Figura 3-15: Ciclo de Vida de um Web Service
42
Figura 3-16: Arquitetura Simplificada
Visando a utilização deste projeto não apenas para esta aplicação, alteramos
a arquitetura do modelo de forma que a nossa ambição deixou de ser a
implementação de um sistema para a comunicação remota com um CLP e se tornou
a implementação de um sistema para interconexão de redes Modbus.
43
(1)
Cliente
ModBUS TCP (6)
CLP
ModBUS TCP
(2)
Gateway 1:
Servidor ModBUS TCP/
Cliente WebService
(5) CLP
RS232
RS485
Gateway 3:
Servidor ModBUS TCP / CLP
Cliente ModBUS RTU
(3)
(4)
WebService
Seridor
WebServices CLP
Gateway 2:
Servidor WebService /
Cliente ModBUS TCP
44
• Uma aplicação de Web Service (3);
3.5.1: Supervisório
(1)
Cliente
ModBUS TCP
ModBUS TCP
(2)
Gateway 1:
Servidor ModBUS TCP/
Cliente WebService
A interface desse programa deverá permitir uma fácil visualização dos valores
desejados, será priorizada a praticidade de utilização e não diminuir a complexidade
do seu uso, lembrando que esse software será utilizado pelos técnicos que farão o
suporte, ou seja, pessoas com treinamento. Abaixo segue uma tela do software
desenvolvido.
45
Figura 3-19: Software Supervisório
46
redes de comunicação implantadas e em funcionamento, atualmente, foram
construídas com base no modelo OSI, muitas soluções proprietárias e “padrões de
fato” são adotados na forma de redes locais [ 10 ].
47
(2)
Gateway 1:
Servidor ModBUS TCP/
Cliente WebService
ce
WebServi
Internet
(3)
(4)
WebService
Seridor
WebServices
Gateway 2:
Servidor WebService /
Cliente ModBUS TCP
A principal razão para esta arquitetura ter sido escolhida, foi que ela soluciona
o problema do Gateway 1 não saber o endereço do Gateway 2 e vice-versa. Ela
elimina a necessidade dos gateways estarem instalados em máquinas com IP
válidos para a internet. Apenas o servidor possui um IP válido, ele fica instalado em
um servidor convencional de paginas web. Outra razão foi a simplicidade da
instalação do Gateway 2 que ficará instalado na empresa cliente. Aproveitando-se
das vantagens da tecnologia de Web Service, tais como o uso da porta 80 e o
protocolo HTTP, não é necessário alterar as configurações dos firewalls que
protegem essas empresas. Não seria muito útil desenvolver um programa para
auxilio à manutenção de máquinas, se a manutenção desse programa fosse mais
problemática que a das próprias máquinas. Outro fator decisivo para a escolha
dessa tecnologia foi que a empresa San Martin já possuía um contrato com a
empresa provedora de internet Terra e não estava disposta a alterá-lo. O contrato
tratava do uso de um servidor comum, ou seja, apenas com a porta 80 liberada para
alguma aplicação, impossibilitando a implementação de outro protocolo que não
fosse os já previstos pelo servidor.
48
cliente / servidor, em um cliente e outro servidor?” [ 9 ]. A solução foi implementada
no programa do servidor de web service, como mostrado na Figura 3-22.
Responde (msg)
O Gateway 1, por sua vez, assim que receber uma solicitação de leitura ou
escrita pelo protocolo Modbus, faz a conversão e também realiza uma chamada
remota através de web service. No momento em que o servidor recebe a solicitação,
ele verifica se o serviço foi disponibilizado. Caso afirmativo, ele suspende também a
execução da solicitação. Utilizando compartilhamento de memória, os parâmetros da
solicitação são passados para a linha de execução que havia disponibilizado o
serviço, para que sejam retornados ao Gateway 2.
49
termina suas obrigações com esta transação, podendo encerrar sua execução ou
continuar disponível.
3.5.2.1: Gateway 1
Onde,
50
A solução para esse problema foi criar tabelas nos gateways. O supervisório
vai fazer uma requisição convencional, com o endereço TCP/IP e porta do gateway e
utilizará o campo Unit Identifier explicado em 3.2.2.1: Modbus sobre TCP/IP para
identificar o dispositivo que ele deseja acessar. Esse campo será o índice da tabela
onde estará cadastrado o restante dos dados necessários.
Para entender melhor quais os dados são realmente necessários para cada
etapa do processo de roteamento da mensagem, vamos recordar a Figura 3-17.
Vamos supor que o cliente (1) deseje endereçar a mensagem para o CLP instalado
na primeira máquina (6). Para isso acontecer, o supervisório deverá conhecer o
endereço IP e a porta do Gateway 1. Esta mensagem chegará até o Gateway 2 por
meio do parâmetro Nome. Este gateway então, deverá encaminhar a mensagem
para o Gateway 3, para tanto, o endereço IP e a porta deste gateway são
necessários. Para ele decidir qual das máquinas a mensagem deve ser
encaminhada, o parâmetro Unit Identifier será utilizado. Portanto, na tabela do
Gateway 1 deverão constar os seguintes dados referentes ao destino desejado:
O servidor foi desenvolvido para rodar sobre o IIS da Microsoft, pois era o
servidor que já estava contratado. Apenas uma alteração teve que ser feita com
relação ao serviço contratado junto à provedora, a criação de um endereço que
apontasse para um servidor específico.
51
O contrato assinado com a empresa Terra, previa que as páginas web da San
Martin ficassem armazenadas em servidores redundantes, ou seja, quando alguém
tenta acessar as páginas da empresa, os roteadores direcionam para o servidor que
tiver menos tráfego no momento. Porém, para a nossa aplicação isso não pode
acontecer, pois se o Gateway 2 disponibilizar um serviço em um servidor e quando o
Gateway 1 for utilizá-lo “cair” em outro servidor, a aplicação responderá para o
Gateway 1 que o serviço não está disponível. Portanto, foi necessária a criação de
um endereço que apontasse para um único servidor, esse endereço então, é
utilizado tanto pelo Gateway 1 quanto pelo Gateway 2.
3.5.2.3: Gateway 2
Onde,
• Port: Campo que retornará o número da porta pela qual deverá ocorrer
a conexão com o Host, descrito anteriormente. Lembrando que a porta
padrão a ser utilizada pelo protocolo Modbus é a 502, mas por
52
recomendação feita pelo manual do protocolo, deve ser possível se
conectar, através de outra, se necessário.
O uso de uma tabela por parte do Gateway 2 não era imprescindível, ele foi
criado com o intuído de deixar o sistema mais flexível, vejamos um exemplo.
Imagine que o sistema já esteja implantado, ou seja, os três gateways instalados e
configurados e já existe uma máquina cadastrada na tabela do Gateway 1. Caso o
computador onde estivesse instalado o Gateway 3 estragasse, e este tivesse que
ser instalado em outra máquina, sem uma tabela no Gateway 2, o Gateway 1
deveria ser informado desta alteração, para que fossem feitas as correções em sua
tabela. Já com o uso da tabela no Gateway 2, isto não é necessário, o próprio
Gateway 2 se encarregará de reendereçar a mensagem sem o conhecimento de
quem fez a solicitação do serviço.
Onde,
53
Após a implementação do sistema de gateways, alguns testes começaram a
ser realizados, porém os resultados mostraram uma falha na abordagem, uma
“serialização” excessiva das mensagens, havia um “gargalo” no sistema.
Disponibiliza
Req1 Solicita(Req1)
Req2 (Req1)
Solicita(Req2) Req1
Responde(Req1)
(Req1)
(Req1) Disponibiliza
(Req2)
Req2
Responde(Req2)
(Req2) (Req2)
54
: Supervisorio : Gatew ay1 : ServidorWeb : Gatew ay2 : Servidor
Disponibiliza
Req1 Solicita(Req1)
Req2 (Req1)
Solicita(Req2) Req1
Disponibiliza
(Req2)
Req2
(Req1) Responde(Req1)
(Req1)
Responde(Req2)
(Req2)
(Req2)
Podemos notar, agora, que a primeira coisa que o Gateway 2 faz, após
receber uma requisição, é disponibilizar outra. Essa alteração mostrou-se bastante
eficiente para conexões rápidas com a internet, quanto mais rápida a internet e
quanto mais lento o Servidor, mais eficiente se mostra a solução. Ao passo que,
quando o tempo do tráfego da mensagem pela internet for muito maior que o tempo
de resposta do servidor, o desempenho desta solução acaba se tornando igual ao da
anterior.
Disponibiliza Trata
Serviço Requisição
Recebe Responde
Requisição Serviço
Requisição de
Encerramento
55
A figura acima evidencia a forma como são criadas novas threads para cada
requisição de serviço.
(5) (6)
CLP
ModBus TCP
RS232
RS485
(4)
ModBUS RTU
Gateway 3:
Servidor ModBUS TCP /
Cliente ModBUS RTU
CLP
Gateway 2:
Servidor WebService /
Cliente ModBUS TCP
• Ligação multiponto;
56
desnecessários que fossem pagos e os freeware, encontrados na internet, não
sabíamos se poderíamos confiar.
Por fim, a última parte que faltava para completar o sistema era o
desenvolvimento do firmware para a comunicação sobre o protocolo Modbus RTU.
Para isso utilizamos bibliotecas fornecidas pelo fabricante do CLP, nesse projeto foi
utilizado o CLP da marca Siemens, da série SIMATIC S7200, modelo 226XM [ 8 ].
57
Figura 3-28: Interface do Software – Cliente
58
Nas figuras acima podemos ver todos os parâmetros que podem ser
configurados. Preferimos não torná-los editáveis, através da interface do programa,
eles estão presentes apenas para a visualização. Para editá-los, é necessário alterar
um arquivo de configuração, que se encontra no formato XML. Esta escolha foi
tomada para prevenir que usuários possam alterar as configurações acidentalmente,
lembrando que este programa deverá estar instalado na empresa cliente. Na Figura
3-30 podemos visualizar as tabelas de endereçamento presentes, tanto no Gateway
1, quanto no Gateway 2, descritas anteriormente.
TCPClient RTUMaster
TCustom Gatew ay
attributes
- XMLConfigFile: TXMLDocument;
TGatew ayServer
TGatew ayClient
attributes
attributes
- TCPServer: TModbusTCPServer;
- WSServer: TWSServer;
- WSClient: TWSClient;
59
A Figura 3-31 não representa exatamente o diagrama de classes, utilizado na
implementação do gateway, serve apenas como uma ilustração das diferenças entre
o Gateway Server e o Gateway Client. O primeiro tem a capacidade de receber
solicitações Modbus TCP, através do uso do componente TCPServer, e realizar
solicitações remotas, com a utilização do WSClient. Já o segundo tem a capacidade
de disponibilizar serviços, através de web services, WSServer. O CustomGateway,
classe ancestral dos Gateways Server e Client, oferece o comportamento padrão
descrito anteriormente. Isto possibilita a implementação de arquiteturas como as
mostradas abaixo.
Supervisório /
Gateway
CLP
ice
WebServ
ModBUS RTU
Internet
CLP
RS232
WebService RS485
Seridor
WebServices
Gateway
CLP
60
Figura 3-33: Arquitetura de Acesso Local
• Configuração Remota:
61
porta serial até o nome do serviço a ser disponibilizado. Este comando
deve ser executado com muito cuidado, pois algum erro na configuração
do Gateway 2 pode tirar o serviço do ar, impossibilitando novas
configurações remotas até que alguma configuração correta seja feita
novamente.
• Logs Remoto:
62
Capítulo 4: Resultados
63
horas consecutivas, no final, fazíamos a contagem do número de transações e do
número de erros.
64
Capítulo 5: Conclusões e Perspectivas
65
Mas, por trás de tantos pontos positivos, tantas vantagens, estão os esforços
para sua execução. A elaboração de um sistema como esse não é uma tarefa
simples. Envolve bastante esforço em pesquisas e exige muito conhecimento prévio,
conhecimentos esses que o curso de Engenharia de Controle e Automação
Industrial forneceu uma ótima base.
66
Bibliografia:
67
[ 13 ] COAD, P.; YOURDON, E., “Análise Baseada em Objetos” 2ª ed., Rio de
Janeiro: Campus, 1991.
68