Você está na página 1de 40

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL

INSTITUTO DE INFORMTICA
CURSO DE ENGENHARIA DE COMPUTAAO

MARCOS ALVES LEITO

Implementao de um Servidor OPC UA


em linguagem C# para comunicao com
dispositivos atravs do protocolo
Modbus/Ethernet em tempo real

Prof. Dr. Fernanda Gusmo Kastensmidt


Orientador

Porto Alegre, Dezembro de 2010

SUMRIO

LISTA DE ABREVIATURAS E SIGLAS . . . . . . . . . . . . . . . . . . . .

LISTA DE FIGURAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

LISTA DE TABELAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

RESUMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ABSTRACT

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1 INTRODUO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1
Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9
10

2 OPC UA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1
Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2
Histrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3
Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4
Modelos Integrados e servios fornecidos . . . . . . . . . . . . . . . . . .
2.4.1
Modelo de Segurana . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.2
Modelo Integrado do Espao de endereamento . . . . . . . . . . . . . .
2.4.3
Servios Integrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.4
Sesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.5
Redundncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5
Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.1
Clientes OPC UA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.2
Servidor OPC UA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6
Mapeamento da tecnologia OPC UA em outros protocolos . . . . . . . .

12
12
13
13
14
15
15
16
16
16
17
17
17
23

3 PROTOCOLO MODBUS . . .
3.1
Introduo . . . . . . . . . .
3.2
Histrico . . . . . . . . . . . .
3.3
Contexto . . . . . . . . . . . .
3.4
Funcionamento . . . . . . . .
3.4.1
Troca de Mensagens . . . . .
3.4.2
Estrutura dos dados . . . . .
3.4.3
Funes . . . . . . . . . . .

24
24
24
25
25
25
26
27

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

. . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .

DESENVOLVIMENTO DO SERVIDOR OPC UA COM COMUNICAO


MODBUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1
Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2
Desenvolvimento da comunicao com Modbus TCP/IP . . . . . . . . .
4.2.1
Operaes de Leitura . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2
Operaes de Escrita . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.3
Operaes de Leitura/Escrita em uma nica operao . . . . . . . . . . .
4.3
Desenvolvimento de Servidor OPC UA . . . . . . . . . . . . . . . . . . .
4.3.1
Criao de um Servidor Bsico . . . . . . . . . . . . . . . . . . . . . . .
4.3.2
Criao de um Espao de Endereamento Prprio . . . . . . . . . . . . .
4.4
Conexo Servidor OPC-ModBus . . . . . . . . . . . . . . . . . . . . . .
4.4.1
Incorporao da classe ModbusChannel . . . . . . . . . . . . . . . . . .
4.5
Conexo do Servidor ModbusToOPCUA com Cliente OPC UA . . . . .
4.5.1
Estrutura de comunicao completa - ModbusToOPCUA . . . . . . . . .
4.5.2
Configurando CLP no Servidor OPC UA: . . . . . . . . . . . . . . . . .

29
29
29
30
31
31
31
32
32
32
32
33
33
33

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

5 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1
Utilizao do Servidor OPC UA com um CLP real . . . . . . . . . . . .
5.2
Anlise de tempo de resposta . . . . . . . . . . . . . . . . . . . . . . . .

37
37
37

CONCLUSES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

REFERNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

LISTA DE ABREVIATURAS E SIGLAS

API

Application Programming Interface

BMS

Sistemas de Automao Industrial

CLP

Controlador Lgico Programvel

COM

Component Object Model

DCOM Distributed Component Object Model


ERP

Enterprise Resource Planning

HDLC

High Level Data Link Control

HMI

Human Machine Interface

HTTP

Hypertext Transfer Protocol

IAS

Sistemas de Automao Industrial

IP

InternetProtocol

MES

Manufacturing Execution system

OLE

Object Linking and Embedding

OPC UA OLE for Process Control Unified Architecture


PLC

Programador Lgico Programvel

RTU

Remote Terminal Unit

SCADA Supervisory Control and Data Acquisition


SDK

Software Development Kit

TCP

Transmission Control Protocol

XML

Extensible Mark Up Language

FDT

Field Device Tool

LISTA DE FIGURAS

Figura 1.1:
Figura 1.2:
Figura 2.1:
Figura 2.2:
Figura 2.3:
Figura 2.4:
Figura 2.5:
Figura 2.6:
Figura 2.7:
Figura 2.8:
Figura 2.9:
Figura 3.1:
Figura 3.2:
Figura 3.3:
Figura 3.4:
Figura 4.1:
Figura 4.2:
Figura 4.3:
Figura 4.4:
Figura 4.5:
Figura 4.6:
Figura 4.7:
Figura 4.8:
Figura 5.1:
Figura 5.2:

Camadas de comunicao entre Servidores e Clientes OPC UA . . . .


Comunicaes Completa entre dispositivos CLP Modbus com conexo
Ethernet utilizando tecnologia OPC UA para acesso de dados . . . .

9
11

Aplicaes OPC . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Arquitetura de Comunicao . . . . . . . . . . . . . . . . . . . . . .
Arquitetura do Cliente OPC UA . . . . . . . . . . . . . . . . . . . .
Arquitetura do Servidor OPC UA . . . . . . . . . . . . . . . . . . .
Exemplo de ns e de referncias entre os ns . . . . . . . . . . . . .
Exemplo de uma organizao Espao de Endereamento de um Modelo de Informao . . . . . . . . . . . . . . . . . . . . . . . . . . .
Subscrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Troca de mensagens entre Cliente e Servidor . . . . . . . . . . . . .
Interaes peer-to-peer entre Servidores . . . . . . . . . . . . . . . .

20
21
22
22

Esquemtico com tipos de protocolos Modbus citados em


camada de aplicao Modbus . . . . . . . . . . . . . . .
Dispositivos conectados utilizando o protocolo Modbus . .
ADU e PDU Modbus . . . . . . . . . . . . . . . . . . . .
Resposta com erro de uma requisiao . . . . . . . . . . .

25
26
26
27

relao a
. . . . . .
. . . . . .
. . . . . .
. . . . . .

Mdulos do Servidor OPC UA . . . . . . . . . . . . . . . . . . . . .


Diagrama de Classes da ModbusIpMaster . . . . . . . . . . . . . . .
Processo de mapeamento do CLP para um espao de endereamento,
usando OPC UA Address Space Model Designer . . . . . . . . . . .
Seleo do tipo de E/S que ser simulada . . . . . . . . . . . . . . .
Teste de conexo com CLP . . . . . . . . . . . . . . . . . . . . . . .
Tela aps a confirmao de conexo, s ento possvel adicionar o
CLP ao Servidor. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tela aps ser adicionado o CLP, ele aparece como um cone e as suas
propriedades podem ser visualizadas . . . . . . . . . . . . . . . . . .
Espao de Endereamento do exemplo, com um CLP chamado de
PLC #1, visto pelo Cliente . . . . . . . . . . . . . . . . . . . . . . .
Resultado da simulao de tempo para 1000 amostras consecutivas
de cada E/S do CLP FBS-25MATJ . . . . . . . . . . . . . . . . . . .
Cdigo utilizado para realizar anlise de tempo da comunicao com
CLP real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14
17
18
19
19

29
30
32
34
34
34
35
36
38
38

LISTA DE TABELAS

Tabela 3.1:
Tabela 3.2:

E/S e Registradores Disponveis no Protocolo Modbus . . . . . . . .


Principais Campos das funes do Protocolo Modbus . . . . . . . . .

27
28

Tabela 5.1:

Tabela com os tempos de resposta em relaao ao nmero de leituras


consecutivas no PLC . . . . . . . . . . . . . . . . . . . . . . . . . .

37

RESUMO

O setor de automao industrial possui nveis de aquisio e integrao de dados que


vo desde os equipamentos de cho de fbrica at os sistemas de gesto empresarial conhecidos como ERP (Entreprise Resource Planning). Para que os diversos sistemas existentes nesses nveis do setor industrial pudessem se comunicar, foram desenvolvidos
diversos protocolos, os quais eram inerentemente dependentes dos fabricantes. A dificuldade de integrao de dados originada por essa heterogeneidade de protocolos resultou
em uma necessidade pelo desenvolvimento de um padro de comunicao, conhecido
como OPC UA (Ole for Process Control - Unified Architecture).
O protocolo OPC UA trata de um mecanismo de comunicao baseado em uma arquitetura orientada a servios, onde clientes enviam requisies a servidores, e estes
disponibilizam os dados atravs de um espao de endereamento bem definido. Alm
disso, esse padro especifica modelos de informao e segurana e perfis aos quais clientes
e servidores podem ter conformidade, trazendo flexibilidade de implementao para os diversos sistemas presentes no setor industrial.
O projeto deste Trabalho de Concluso dedica-se ao desenvolvimento de um Servidor
OPC UA em linguagem C# para comunicao com CLPs atravs do protocolo Modbus/Ethernet em tempo real e disponibilizao dos dados atravs do protocolo OPC UA
na Internet. Nesse contexto, aplicaes cliente podem comunicar-se com o Servidor OPC
UA desenvolvido e visualizar as variaes de valores dos dados dos CLPs. Dessa forma,
possvel utilizar o padro OPC UA em sistemas legados - j em funcionamento na indstria - tornando muito mais acessvel a aceitao desse novo padro.
Embora seja aplicado apenas a dispositivos com comunicao Modbus/Ethernet, esse
projeto pode ser expandido para interfacear com os outros protocolos de cho de fbrica,
como o Profibus e o FDT.

Palavras-chave: OPC UA, Modbus, OPC Server, Driver Modbus, Automaao Industrial.

ABSTRACT

The industrial automation sector has levels of acquisition and data integration ranging
from plant floor devices to the business management systems known as ERP (Enterprise
Resource Planning). In order to allow this systems to communicate with each other, several protocols were developed, which were inherently dependent on manufacturers. The
communication issues from these heterogeneous protocols resulted in the developing of
a communication standard, known as OPC UA (Ole for Process Control - Unified Architecture).
The OPC UA protocol is a communication mechanism based on a service-oriented
architecture, in which clients send requests and servers provide the data through an welldefined address space. Additionally, this standard specifies information and security models and profiles to clients and servers, adding flexibility to implement the many systems
present in the industrial sector.
This project aimed to develop an OPC UA Server with the C# language in order to
communicate PLCs through Modbus/Ethernet in real time and to provide data through
OPC UA protocol on Internet. In this context, client applications may communicate with
this OPC UA Server and visualize data values changes. Additionally, it is possible to use
the OPC UA standard in legacy systems - already working in the industry - making the
transition to this new standard much easier.
Although the server developed in this project is applied only to devices with Modbus/Ethernet communication, it may be expanded to interface with other plant floor protocols, such as Profibus and FDT.

INTRODUO

Na rea de automao industrial existem diversos sistemas componentes como SCADA


(Supervisory Control and Data Acquisition), MES (Manufacturing Execution system) e
HMI (Human Machine Interface). Cada um desses sistemas se comunica com um protocolo diferente e, muitas vezes, proprietrio. Assim, no processo produtivo, h muitas
partes desconexas pelo uso de diferentes protocolos, tornando o processo no to eficiente
quanto poderia ser. Alm disso, esses protocolos de cho de fbrica no disponibilizam
os dados de maneira adequada para os nveis acima, como gerenciamento e gerao de
relatrios.

Figura 1.1: Camadas de comunicao entre Servidores e Clientes OPC UA


O padro OPC UA (OLE for Process Control Unified Architecture) permite a integrao dos dados de toda a empresa, desde o processo fabril, no cho de fbrica, aos

10

ERP (Enterprise Resource Planning) e setores corporativos. uma tecnologia derivada


do OPC COM/DCOM da Microsoft, mas um padro aberto, o OPC unifica a comunicao permitindo a fcil integrao de diversos sistemas, desde instrumentos de campo
at os sistemas de gerenciamento e de Gesto Corporativa.
O OPC UA padronizado pela OPC Foundation, que a responsvel pela criao e
divulgao das suas especificaes aos seus membros. Esse padro pode ser mapeado
sobre uma variedade de protocolos de comunicao e os dados podem ser codificados de
vrias formas para permitir portabilidade e eficincia. Mantm assim a compatibilidade
com os sistemas legados, como o prprio protocolo OPC COM/DCOM e outros protocolos muito utilizados, como o protocolo Modbus, que padroniza a comunicao no modelo
mestre e escravo entre dispositivos em diferentes redes e barramentos, provendo uma comunicao Cliente/Servidor. Esse projeto se insere nesse ponto, criar compatibilidade de
dispositivos apenas comunicao Modbus com esse novo padro utilizando a linguagem
C# e as suas bibliotecas.

1.1

Objetivo

Desenvolvimento de software em linguagem C# de um Servidor OPC UA para comunicao com diversos dispositivos CLP, com protocolo Modbus/Ethernet, em tempo real
e visualizao de variaes dos valores obtidos pelos seus clientes.

11

Figura 1.2: Comunicaes Completa entre dispositivos CLP Modbus com conexo Ethernet utilizando tecnologia OPC UA para acesso de dados

12

OPC UA

2.1

Introduo

O OPC UA um padro independente de plataforma, pelo qual vrios tipos de sistemas e dispositivos podem se comunicar pela troca de mensagens entre Clientes e Servidores sobre inmeros tipos de redes. Suporta comunicao robusta e segura, que assegura
a identidade dos Clientes e Servidores, resistindo a possveis ataques. O OPC UA define
conjuntos de servios que Servidores podem fornecer e os Servidores individuais especificam o conjunto de servios que suportam para seus Clientes. A informao transmitida
utilizando as definies de tipos de dados do OPC UA e de sistemas proprietrios e os
Servidores definem modelos de objetos que os Clientes podem descobrir dinamicamente.
Os Servidores podem prover acesso a dados atuais e histricos, bem como alarmes e
eventos para notificar Clientes de mudanas importantes (OPC FOUNDATION, 2010).
O OPC UA pode ser mapeado sobre uma variedade de protocolos de comunicao e os
dados podem ser codificados de vrias formas para permitir portabilidade e eficincia.
Algumas vantagens da interface OPC so independncia de fabricantes de hardware e
software, simplicidade na configurao da informao a ser trocada, capacidade de rede,
independncia de protocolos e verses de controladores e ainda permite acesso simultneo aos dados fornecidos pelo Servidor OPC.
O OPC UA define diversos modelos em sua especificao, sendo eles os seguintes:

I) Modelo de Segurana:
Fornece o modelo para interaes seguras entre clientes e servidores.
II) Modelo do Espao de endereamento:
Descreve o contedo e a estrutura do espao de endereamento do Servidor.
III) Servios:
Especifica os servios prestados pelo Servidor.
IV) Modelo de Informao:
Especifica os tipos e seus relacionamentos definidos para os Servidores.
V) Mapeamentos:

13

Especifica o mapeamento de transporte e codificao de dados suportados.


VI) Perfis:
Especifica os perfis que esto disponveis para Clientes e Servidores. Estes
perfis fornecem grupos de servios ou funcionalidades que podem ser utilizados para nveis de conformidade em certificaes. Servidores e Clientes so
testados de acordo com seus perfis.

2.2

Histrico

O protocolo OPC (OLE for Process Control) clssico foi desenvolvido em 1996 para
solucionar problemas de interoperabilidade em sistemas de automao industrial, integrando dados entre os diversos nveis de suas redes. Essa primeira verso ligada a tecnologias proprietrias: OLE, COM e DCOM da Microsoft. Serve de interface para a troca
de dados entre sistemas e foi especialmente desenvolvido para interfacear com mquinas,
equipamentos e dispositivos, diretamente na camada de automao do cho de fbrica
(OPC FOUNDATION, 2010).
A partir da primeira especificao foi desenvolvida a idia de uma arquitetura unificada (Unified Architecture - UA), desvinculando o OPC de tecnologias proprietrias para
que ele pudesse se tornar um padro. Assim, em 2006 foi feito seu desenvolvimento em
Java, .NET e C baseada em arquitetura orientada a servio (SOA) e foram acrescentadas
novas tecnologias como XML (Extensible Mark Up Language) (OPC FOUNDATION,
2010).
A especificao do OPC UA divulgada em partes, e tendem a virar um padro de
fato no meio industrial.

2.3

Contexto

O OPC UA aplicvel no desenvolvimento de softwares em reas de aplicao como


dispositivos de campo, sistemas de controle, sistemas de gesto da produo e sistemas
integrados de gesto. Estes sistemas destinam-se troca de informaes e no comando
e controle de processos industriais. OPC UA no se limita a uma nica hierarquia, assim, um Servidor OPC UA pode apresentar dados de diversas formas, adaptando-se a um
determinado conjunto de Clientes normalmente costuma visualizar os dados. Esta flexibilidade, combinada com o suporte a definio de tipos, torna o OPC UA aplicvel a uma
ampla matriz de problemas de domnio. Como ilustrado abaixo, o OPC UA orientado
para proporcionar maior interoperabilidade entre funes de baixo e alto nvel.
O OPC UA projetado para fornecer robustez dos dados publicados. Uma caracterstica importante de todos os servidores OPC a capacidade de publicarem dados e
notificaes de eventos. OPC UA prev mecanismos para que os Clientes rapidamente
possam detectar e recuperar falhas de comunicao associados a estas transferncias sem
necessidade de esperar por longos timeouts gerados por outros protocolos na rede.

14

Figura 2.1: Aplicaes OPC

OPC UA projetado para suportar um grande nmero de Servidores, desde CLPs do


cho de fbrica at Servidores corporativos. Estes Servidores so caracterizados por ampla capacidade, performance, plataforma de execuo e funcionalidades. Sendo assim,
o OPC UA define um conjunto amplo de recursos e os Servidores podem implementar
um subconjunto destes recursos. Para promover a interoperabilidade o OPC UA define
subconjuntos, designados como perfis, pelos quais os Servidores podem solicitar conformidade. Os Clientes podem ento descobrir os perfis de cada Servidor e adequar suas
interaes com determinado Servidor de acordo com estes perfis.

2.4

Modelos Integrados e servios fornecidos

Os requisitos mostrados a seguir, como Modelo de Segurana, Modelo do Espao de


Endereamento, Modelo de Servios e Sesses e que foram necessrios no projeto, j esto implementados no SDK fornecido pela OPC Foundation. Sendo eles utilizados como
ferramentas para criao do servidor.

15

2.4.1

Modelo de Segurana

A segurana do OPC UA concebida para a autenticao de Clientes e Servidores,


autenticao de usurios, integridade e confidencialidade de suas comunicaes e para a
verificao das alegaes de funcionalidades (OPC FOUNDATION, 2010).
As medidas de segurana podem ser selecionadas e configuradas de acordo com as
necessidades de uma determinada instalao. Este modelo de segurana inclui mecanismos de segurana e parmetros. Em alguns casos, o mecanismo para troca de parmetros
de segurana definido, mas a maneira na qual a aplicao utiliza estes parmetros no.
Este framework define, ainda, um conjunto mnimo de perfis de segurana que todos os
Servidores UA suportam, mesmo que possam no ser utilizados em todas as instalaes.
O Nvel de segurana da aplicao depende de um canal de comunicao seguro que
continua ativo pelo perodo da sesso da aplicao e assegura a integridade de todas as
mensagens que so trocadas. Isto significa que o usurio necessita ser autenticado apenas
uma nica vez, enquanto a sesso da aplicao est ativa. Quando uma sesso estabelecida, a aplicao Cliente e o Servidor negociam um canal de comunicao seguro e
trocam entre si certificados de software que identificam o Cliente e o Servidor e as capacidades que cada um suporta. Autorizaes geradas por certificados de software indicam os
perfis do OPC UA que tais aplicaes implementam e o nvel de certificao de cada perfil.
O Servidor ainda autentica o usurio e autoriza pedidos subseqentes para acessar
objetos no Servidor. Mecanismos de autorizao, como listas de controle de acesso, so
especificos de cada aplicao ou sistema. OPC UA inclui suporte para auditoria de segurana e rastreabilidade entre Clientes e Servidores atravs de logs. Se um problema
relacionado a segurana detectado pelo servidor, o log associado ao Cliente pode ser localizado e examinado. OPC UA fornece ainda a capacidade para Servidores gerarem notificaes de eventos que reportam eventos auditveis para Clientes capazes de process-los
e gerar log destes. O OPC UA define parmetros seguros de auditoria, que podem ser inclusos nos logs e nos eventos de notificao.
OPC UA complementa a infra-estrutura de segurana fornecida pela maioria das plataformas de servios Web. O nvel de segurana de transporte pode ser utilizado para criptografar e assinar mensagens. A criptografia e assinatura protegem as mensagens de divulgao
da informao e a integridade das mensagens. A criptografia fornecida por tecnologias
de comunicao subjacentes utilizadas para troca de mensagens entre aplicaes OPC
UA.

2.4.2

Modelo Integrado do Espao de endereamento

O conjunto de objetos e informaes relacionadas que o Servidor OPC UA torna


disponvel aos Clientes referenciada ao seu espao de endereamento. O espao de
endereamento do OPC UA representa seu contedo com um conjunto de ns conectados
por referncias. Caractersticas primitivas dos ns so descritas por atributos do OPC.
Atributos so os nicos elementos de um Servidor que possuem valores de dados (OPC
FOUNDATION, 2010). Tipos de dados que definem um atributo podem ser simples ou
complexos.

16

Ns, no espao de endereamento, so conceituados baseados no princpio de Orientao a Objetos. Classes de ns definem os metadados para o espao de endereamento
do OPC UA. A classes de ns bsica define atributos comuns a todos os ns, permitindo
identificao, classificao, e nomes. Cada classe de ns herda estes atributos e pode
adicionalmente definir seus prprios atributos. Para promover a interoperabilidade de
Clientes e Servidores, o espao de endereamento do OPC UA estruturado hierarquicamente, com os nveis superiores sendo o mesmo para todos os Servidores. Os Servidores
OPC UA podem organizar o espao de endereamento em um subconjunto de visualizaes para simplificar ou limitar o acesso de Clientes.

2.4.3

Servios Integrados

A interface entre Clientes e Servidores OPC UA definida como sendo um conjunto


de servios. Estes servios esto organizados dentro de grupos lgicos chamados de conjuntos de servios. Os servios fornecem duas capacidades aos Clientes, podendo emitir
pedidos para os Servidores e receber a resposta destes. Eles permitem tambm a subscrio de Clientes para os Servidores, para notificaes. As notificaes so utilizadas
pelo Servidor para reportar ocorrncias, como alarmes, mudana de valores de dados,
eventos e resultados da execuo de programas (OPC FOUNDATION, 2010). As mensagens do OPC UA podem ser codificadas em texto XML ou em formato binrio, para
propsitos de eficincia. Elas podem ser transferidas atravs de mltiplos protocolos subjacentes como, por exemplo, o TCP ou os servios Web sobre HTTP.

2.4.4

Sesses

O OPC UA exige um modelo repleto de estados. O estado de uma informao


mantido dentro de uma sesso da aplicao. Exemplos do estado da informao so subscries, credenciais do usurio e pontos de continuao em operaes em que se atende
a mltiplos pedidos (OPC FOUNDATION, 2010).
Sesses so definidas como conexes lgicas entre Servidores e Clientes. Os Servidores podem limitar o nmero de sesses concorrentes, baseado na disponibilidade de
recursos, restries de licenciamento ou outros limitadores. Cada sesso independente
dos protocolos de comunicao subjacentes, falhas nestes protocolos no causam o encerramento imediato da sesso, o fim da sesso baseado em solicitao de Servidor ou
Cliente, ou na inatividade do Cliente. O tempo de timeout definido durante o estabelecimento da sesso.

2.4.5

Redundncia

O design do OPC UA assegura que desenvolvedores possam criar Clientes e Servidores redundantes de uma maneira coerente e robusta. A redundncia pode ser utilizada
para alta disponibilidade, tolerncia a falhas e balanceamento de cargas (OPC FOUNDATION, 2010).

17

2.5

Arquitetura

A arquitetura do sistema OPC UA modela Clientes e Servidores interagindo como


parceiros. Cada sistema pode conter mltiplos Servidores e Clientes. Cada Cliente pode
interagir concorrentemente com um ou mais Servidores e cada Servidor pode interagir
concorrentemente com um ou mais Clientes. Uma aplicao pode combinar componentes
de Servidor e Cliente para permitir a interao com outros Servidores e Clientes. A Figura
2.2 ilustra a arquitetura que inclui uma combinao de Servidores e Clientes (OPC FOUNDATION, 2010).

Figura 2.2: Arquitetura de Comunicao

2.5.1

Clientes OPC UA

A arquitetura do Cliente OPC UA modela o ponto final da interao entre Cliente/Servidor


no lado do Cliente. A figura 2.3 ilustra os elementos principais de um tpico Cliente OPC
UA e como eles relacionam-se uns com os outros.
O aplicativo Cliente o cdigo que implementa a funo de Cliente. Ele utiliza a API
do Cliente OPC UA para enviar e receber requisies e respostas para o Servidor OPC
UA. A API do Cliente OPC UA uma interface interna que isola o cdigo, da aplicao
Cliente, da pilha de comunicao. A pilha de comunicao do OPC UA converte a API
Cliente em mensagens e as envia, atravs da entidade de comunicao subjacente, para o
Servidor na requisio da aplicao Cliente. A pilha de comunicao do OPC UA ainda
recebe respostas e mensagens de notificao da entidade de comunicao subjacente e as
entrega ao Cliente atravs da API Cliente.

2.5.2

Servidor OPC UA

A arquitetura do Servidor OPC UA modela o ponto final da interao entre Cliente/Servidor


no lado do Servidor. A figura 2.4 ilustra os elementos principais de um tpico Servidor
OPC UA e como eles relacionam-se uns com os outros.
Objetos Reais
Objetos reais so objetos fsicos ou objetos de software que so acessveis pela aplicao Servidor ou que este mantm internamente. Exemplos incluem dispositivos

18

Figura 2.3: Arquitetura do Cliente OPC UA


fsicos e contabilizadores de eventos.
Aplicao Servidor OPC UA
A aplicao Servidor OPC UA o cdigo que implementa a funo de Servidor.
Ele utiliza a API do Servidor OPC UA para enviar e receber mensagens de Clientes
OPC UA. A API do Servidor OPC UA uma interface interna que isola o cdigo,
da aplicao Servidor, da pilha de comunicao OPC UA.
Espao de Endereamento OPC UA
Ns
O espao de endereamento modelado como um conjunto de ns acessveis
pelos Clientes usando os servios do OPC (interfaces e mtodos). Os ns
no espao de endereamento so usados para representar objetos reais, suas
definies e suas referncias uns com os outros. A figura 2.5 mostra como os
ns podem ser relacionados atravs de referncias.
Organizao do Espao de endereamento
As especificaes do OPC UA contm os detalhes do modelo de metadados
para se construir blocos utilizados para criar um espao de endereamento fora
dos ns interconectados de uma maneira consistente. Os Servidores possuem
liberdade para organizar seus ns dentro deste espao de endereamento da
forma que lhes for conveniente. O uso de referncias entre ns permite aos
Servidores organizar os espaos de endereos em hierarquias, uma rede completa de ns, ou outra possibilidade de mixagem. Nas especificaes existem

19

Figura 2.4: Arquitetura do Servidor OPC UA

Figura 2.5: Exemplo de ns e de referncias entre os ns

20

Figura 2.6: Exemplo de uma organizao Espao de Endereamento de um Modelo de


Informao
definies de ns e referncias e suas organizaes esperadas dentro do espao de endereamento.
Visualizaes do espao de endereamento
Uma visualizao um subconjunto do espao de endereamento. As visualizaes so utilizadas para restringir os ns que o Servidor torna visvel ao
Cliente, deste modo, restringindo o tamanho do espao de endereamento para
as solicitaes de servios do Cliente. A visualizao default todo o espao
de endereamento, podendo os Servidores, opcionalmente, definir outras visualizaes. Visualizaes escondem alguns ns ou referncias no espao de
endereamento. As visualizaes so visveis atravs do espao de endereamento e os Clientes esto habilitados a navegar por elas para determinar suas
estruturas. Visualizaes so freqentemente hierarquias, que para os Clientes
so fceis de percorrer e representar como uma rvore.
Suporte a modelos de informao
O espao de endereamento do OPC UA suporta modelos de informao,
sendo estes fornecidos atravs de:
I) Referncias aos ns, que permitem que objetos no espao de endereamento se relacionem uns com os outros.
II) Ns com tipos de objetos, que fornecem informao semntica para objetos reais (definio de tipos).
III) Definies do tipo de dados, mostrados no espao de endereamento para
permitir que tipos de dados industriais especficos possam ser utilizados.

21

IV) Padres complementares do OPC UA, que permitem grupos industriais


especficos definirem como seus prprios modelos de informao devem
ser representados no espao de endereamento dos Servidores OPC UA.

Entidade editores/assinantes

Itens monitorados
Itens monitorados so entidades no Servidor criadas pelo Cliente, que monitoram o espao de endereamento dos ns e suas contrapartes no mundo real.
Quando estes detectam a ocorrncia de uma mudana ou alarme/evento, eles
geram uma notificao que transferida para o cliente por uma subscrio.
Subscries
Uma subscrio o ponto final no Servidor, que publica notificaes para
Clientes. Os Clientes controlam a freqncia destas publicaes pelo envio de
mensagem de solicitao de publicaes.
A figura 2.7 mostra a relao entre itens monitorados com subscries:
Interfaces de servios OPC UA

Servios de solicitao/resposta
Servios de solicitao e resposta so servios chamados pelo Cliente OPC
UA atravs da interface de servios OPC para realizar uma tarefa especfica,
em um ou mais ns no espao de endereamento e que necessitam de uma
resposta.
Servios de notificao

Figura 2.7: Subscrio

22

Figura 2.8: Troca de mensagens entre Cliente e Servidor


Servios de notificao so servios chamados atravs da interface OPC UA
com o propsito de periodicamente enviar notificaes aos Clientes. Notificaes incluem eventos, alarmes, mudanas nos dados e sadas de programas.

Interaes de Servidor para Servidor


Interaes entre Servidores ocorrem quando um Servidor estabelece comunicao
com o Cliente de outro Servidor. Estas interaes permitem o desenvolvimento de
Servidores que:

Figura 2.9: Interaes peer-to-peer entre Servidores

I) MTrocam informaes uns com os outros em uma conexo peer-to-peer, isto


poderia incluir redundncia ou Servidores remotos que so usados para manuteno
ampla do sistema de definio de tipos.
II) So encadeados em uma arquitetura de Servidores por camadas para:
Agregar dados de Servidores de camadas inferiores;
Fornecer construtores para Clientes de camadas superiores;
Fornecer interfaces centrais para Clientes como pontos nicos de acesso
a mltiplos Servidores subjacentes.

23

2.6

Mapeamento da tecnologia OPC UA em outros protocolos

O OPC UA implementado diretamente em dispositivos de cho de fbrica, mas possui,


tambm, a possibilidade de ser mapeado sobre outros protocolos j consolidados na indstria. Isso permite a compatibilidade com sistemas j em funcionamento, que a adoo
ao protocolo OPC UA no cause prejuzo aos sistemas atuais.
Um dos protocolos mais utilizados pela indstria o Modbus, que padroniza a comunicao no modelo mestre e escravo entre dispositivos em diferentes redes e barramentos.
Ele mostrado com detalhes no prximo captulo, pois esse projeto, cria um Servidor
OPC UA, que utiliza a comunicao Modbus para comunicao com os CLPs.

24

3.1

PROTOCOLO MODBUS

Introduo

um protocolo da camada de aplicao - nvel sete do sistema OSI -, que faz a comunicao com dispositivos de diversos barramentos e redes. Todo tipo de dispositivo pode
usar o protocolo Modbus como, por exemplo, CLP (controlador Lgico Programvel),
HMI (Interface Homem-Mquina) e dispositivos de Entrada/Sada. basicamente utilizado em cho de fbrica para comunicar unidades de terminal remoto (RTU) a Sistemas
de Aquisio de Dados e Controle de Superviso (SCADA) (MODBUS APPLICATION
PROTOCOL SPECIFICATION V1.1b, 2006).
Modbus possui uma comunicao baseada na troca de mensagens entre dispositivos
Cliente e Servidor, no guardando nenhum estado a respeito da conexo. Apenas o Cliente
pode iniciar uma comunicao e o Servidor recebe as requisies que lhe foram feitas e
as responde. Ele pode rodar sobre diversos meios fsicos, o mais comum utilizando
interface serial, mas existem extenses para que o protocolo rode sobre redes Ethernet.
O protocolo de fcil implementao, fcil de ser usado e muito confivel, por isso
um dos protocolos de automao mais populares. Suas principais utilizaes ocorrem
nos prprios IAS (Sistemas de Automao Industrial) e tambm em BMS (Sistemas de
Gerenciamento de Edifcios).

3.2

Histrico

Utilizado por milhares de dispositivos, Modbus foi desenvolvido para comunicar controladores da Modicon em 1979. Originalmente criado apenas para comunicao entre
CLPs e dispositivos no cho de fbrica, o protocolo evoluiu e permite hoje comunicao
atravs de uma rede Ethernet, a qual a verso utilizada para o desenvolvimento desse
projeto (MODICON MODBUS PROTOCOL REFERENCE GUIDE, 1996).
Modbus Padro, primeira verso do protocolo, foi desenvolvido para fazer a comunicao mestre e escravo entre os CLPs e os dispositivos de entrada e sada, instrumentos
eletrnicos e atuadores de vlvula, tendo como comunicao fsica, por exemplo, a interface serial RS-232 ou RS-485. Ele foi aprimorado para o Modbus Plus, podendo ser
utilizado para comunicar CLPs no s com dispositivos de entrada e sada, mas tambm
com HMI (interfaces homem mquina). Nesse caso, o meio de comunicao fsica a
serial RS-485 com controle de acesso ao meio por HDLC (High Level Data Link Control), permitindo uma comunicao mais rpida entre distncias maiores. Por outro lado,

25

Figura 3.1: Esquemtico com tipos de protocolos Modbus citados em relao a camada
de aplicao Modbus
o Modbus TCP/IP utilizado para comunicar CLPs aos sistemas de superviso, sendo
esse protocolo encapsulado pelo TCP/IP - transmitido pela interface Ethernet - e tendo
uma porta reservada para sua comunicao: a porta 502.

3.3

Contexto

Todos dispositivos de cho de fbrica podem utilizar o protocolo Modbus - sensores,


HMI, motores e CLPs - para comunicao entre eles e operaes remotas. Alm disso,
como foi observado, tais dispositivos podem utilizar tanto linhas seriais como a rede Ethernet. O protocolo faz a troca de mensagens de maneira rpida e eficiente entre esses
dispositivos, permitindo uma grande integrao e aumentando muito a eficincia da produo. A figura 3.2 mostra um esquemtico de comunicao entre diferentes dispositivos
com diferentes interfaces fsicas, mas todos utilizando o protocolo Modbus para fazer as
suas trocas de mensagens.

3.4

Funcionamento

Baseado na troca de mensagens entre Cliente e Servidor, o protocolo define uma PDU
(Protocol Data Unit), que a formada pelo cdigo da funo e por uma rea de dados,
que vem a ser encapsulada em uma ADU (Application Data Unit).
3.4.1

Troca de Mensagens

O Cliente o iniciador da conversa, sendo ele quem forma a PDU para envi-la ao
servidor. O cdigo da funo indica qual o tipo de ao est sendo solicitada pelo Cliente,
e essa ao pode requisitar algum tipo de dado extra como, por exemplo, o endereo da
bobina a ser lida no CLP (MODBUS MESSAGING ON TCP/IP IMPLEMENTATION
GUIDE V1.0b, 2006). Essa informao complementar, mas necessria, transmitida na
rea de dados da requisio, podendo ser nula, caso a ao no necessite de nenhuma
informao alm do cdigo.
So reservados 8 bits para representar o cdigo, portanto so permitidos nmeros entre

26

Figura 3.2: Dispositivos conectados utilizando o protocolo Modbus

Figura 3.3: ADU e PDU Modbus


1 e 255 no campo de cdigo. Desses, apenas de 1 a 127 so para solicitaes (o bit mais
significativo sempre em 0). O cdigo "0"no permitido e os outros valores so reservados resposta do Servidor para indicao de erro (exception responses), isto , quando o
bit mais significativo est ligado, sinal de que houve algum erro no processamento da
requisio.
A resposta do Servidor, caso no haja nenhum tipo de erro durante o processo, deve
conter o mesmo cdigo da requisio feita pelo Cliente. Caso ocorra algum erro, o Servidor deve retornar o cdigo somado de 128, isto , o mesmo cdigo da requisio, mas
com o bit mais significativo em "1", informado que houve erro. A figura 3.4 mostra um
exemplo, no qual o cliente faz requisio de leitura das entradas (cdigo 2) e ocorre um
erro, sendo assim, o servidor responde com o cdigo 130 (cdigo + 128).

3.4.2

Estrutura dos dados

As operaes bsicas so de escrita e leitura de registradores ou bobinas, portando os


dados so: Bobinas (Coils), Entradas Discretas, Registradores de Entrada e Registradores

27

Figura 3.4: Resposta com erro de uma requisiao


Intermedirios. Seus tipos e representaes so descritos na tabela 3.1:
Dados

Representao

Tipo

Observaes

Entradas Discretas
(Discrete Inputs)

Um bit

Somente-Leitura

Pertencem as entradas e
sadas do sistema

Bobinas
(Coils)

Um bit

Leitura-Escrita

Podem ser alteradas


por programa

Somente-Leitura

Pertencem as entradas e
sadas do sistema

Leitura-Escrita

Podem ser alteradas


por programa

Registradores de Entrada Palavra de 16 bits


(Input Registers)
Registradores de Espera
(Holding Registers)

Palavra de 16 bits

Tabela 3.1: E/S e Registradores Disponveis no Protocolo Modbus


Todos esses dados esto mapeados na memria dos dispositivos e a quantidade mxima enderevel das variveis de 65536, mas cada CLP tem uma quantidade especfica
menor que essa.

3.4.3

Funes

So divididas em trs categorias: pblicas (so funes bem-conhecidas), definidas


pelo usurio (no so definidas pela especificao) e reservadas (para fins de compatibilidade com outras tecnologias) (MODBUS MESSAGING ON TCP/IP IMPLEMENTATION GUIDE V1.0b, 2006).
O protocolo define vrias funes pblicas, sendo vrias delas podendo ser utilizadas
apenas por dispositivos com comunicao serial, no sendo relevantes para esse trabalho,

28

pois a troca de informaes ser feita apenas pela interface Ethernet.


Na rea de dados da PDU da requisio pode ser informado, dependendo da requisio, os seguintes campos:
Campo

Funo

Start Address
Indicar a partir de qual endereo deve ser feita a leitura do bloco.
(Endereo de Inicio)
Quantity
(Quantidade)

Nmero de variveis a serem lidas, no caso do Read Coils,


por exemplo, o nmero de bobinas.

Tabela 3.2: Principais Campos das funes do Protocolo Modbus

29

4 DESENVOLVIMENTO DO SERVIDOR OPC UA COM COMUNICAO MODBUS

4.1

Introduo

O desenvolvimento do Servidor OPC UA com comunicao com dispositivos Modbus


TCP/IP pode ser divido em trs mdulos: de um driver de comunicao com o protocolo
Modbus, a criao do Espao de Endereamento prprio, a comunicao com Clientes
OPC UA, figura 4.1.

Figura 4.1: Mdulos do Servidor OPC UA

4.2

Desenvolvimento da comunicao com Modbus TCP/IP

Para realizar a comunicao com o protocolo Modbus, foi utilizada a biblioteca NModbus, em C#. Ela fornece classes que fazem a conexo com dispositivos em uma porta
definida pelo usurio, alm dos mtodos de leitura e escrita, definidos pelo protocolo.
Um diagrama de classes mostra os principais mtodos e propriedades utilizados da Classe
ModbusIPMaster, Figura 4.2.

30

Figura 4.2: Diagrama de Classes da ModbusIpMaster


Dessa forma foi necessria uma adaptao para o projeto, alguns mtodos que no
seriam utilizados, figura 4.2, sendo, ento, criada a classe ModbusChannel. Essa classe
criada responsvel pela criao de um canal de comunicao com um dispositivo CLP
atravs do protocolo Modbus. Ela permite a realizao de leituras e escritas em um CLP.
Os mtodos criados na classe possuem como parmetros bsicos o endereo de incio
de leitura e o nmero de variveis a serem lidas, conforme especificado no protocolo
Modbus.

4.2.1

Operaes de Leitura

ReadCoils (startAddress, numCoils) Faz a leitura dos valores de um bloco bobinas


(Coils), o bloco definido pelo endereo de incio de leitura, startAddress, e o
nmero de bobinas a serem lidas, numCoils.
ReadDiscreteInputs (startAddress, numInputs) Faz a leitura de um bloco de entradas
do CLP, o bloco definido pelo endereo de incio de leitura, startAddress, e o
nmero de inputs a serem lidos, numInputs.
ReadHoldingRegisters (startAddress, numberOfPoints) Faz a leitura de um bloco Holding Registers, o bloco definido pelo endereo de incio de leitura, startAddress, e
o nmero de Holding Registers a serem lidos, numberOfPoints.
ReadInputRegisters (startAddress, numberOfPoints) Faz a leitura de um bloco de registradores, o bloco definido pelo endereo de incio de leitura, startAddress, e o
nmero de registradores a serem lidos, numberOfPoints.

31

4.2.2

Operaes de Escrita

WriteSingleCoil (coilAddress, value) Escreve valor em uma nica bobina (Coil), o endereo da bobina definido pelo coilAddress e o valor a ser escrito, pelo value.
WriteSingleRegister (registerAddress, value) Escreve o valor em um nico Holding
Register, o endereo da bobina definido pelo registerAddress e o valor a ser escrito, pelo value.
WriteMultipleCoil (coilAddress, data) Escreve valores em um bloco de bobinas, o
bloco definido pelo endereo de incio de leitura, coilAddress, e os valores a
serem escritos no data.
WriteMultipleRegisters (registerAddress, data Escreve valores em um bloco contnuo
de registradores, o bloco definido pelo endereo de incio de leitura, coilAddress,
e os valores a serem escritos no data.

4.2.3

Operaes de Leitura/Escrita em uma nica operao

ReadWriteMultipleRegisters Combinao de leitura e escrita em uma nica operao


Modbus, a funo de escrita feita antes da funo de leitura, o bloco de leitura
definido pelo endereo de incio de leitura, numberOfPointsToRead, e a quantidade
de registradores a serem lidos pelo numberOfPointsToRead, o startWriteAddress,
define incio do bloco de escrita e os dados a serem escritos no writeData.

4.3

Desenvolvimento de Servidor OPC UA

O Servidor OPC UA formado por trs mdulos bsicos: o Espao de Endereamento, a comunicao com Clientes OPC UA e a comunicao com dispositivos Modbus.
Para criar um Servidor OPC UA bsico foi utilizada uma ferramenta da OPC Foundation,
a qual disponibiliza aos seus membros um SDK para auxiliar o desenvolvimento de produtos com tecnologia OPC UA. Esse kit fornece bibliotecas em C#, juntamente com alguns
exemplos de funcionalidades bsicas para conexo entre Clientes e Servidores em formato
executvel, permitindo assim o teste do que for produzido, alm de exemplos para acesso
a dados histrico, eventos e alarmes - funcionalidades no incorporadas a esse projeto.
Essas bibliotecas permitem comunicao tanto com softwares trabalhando com a antiga
arquitetura COM/DCOM quanto com a nova, OPC UA.
O primeiro objetivo aqui criar um Servidor OPC UA bsico utilizando as ferramentas
e exemplos fornecidos pelo SDK e acoplar os mdulos citados acima. Alm disso, a OPC
Foundation indica uma ferramenta, a "OPC UA Address Space Model Designer"para criao de um Espao de Endereamento prprio. Esta uma ferramenta visual que gera
automaticamente as classes para serem adicionadas ao projeto, bastando ser referenciada.
Assim, com o SDK e a ferramenta de modelagem de Espao de Endereamento, foi criado um Servidor OPC UA bsico apenas para comunicao com outro Cliente OPC UA,
ainda sem a comunicao com dispositivos Modbus TCP/IP.

32

4.3.1

Criao de um Servidor Bsico

Foi criado um Servidor sem informaes, apenas com a estrutura e as funcionalidades


bsicas de conexo OPC UA, necessrias para que fosse possvel comunicao de um
Cliente com o Servidor utilizando o protocolo OPC UA.

4.3.2

Criao de um Espao de Endereamento Prprio

Para que os dados de um CLP sejam lidos corretamente no servidor, necessrio que
as suas estruturas de Entrada e Sada sejam mapeadas no Espao de Endereamento do
servidor, figura 4.3. Assim, foi criado - utilizando a ferramenta "OPC UA Address Space
Model Designer- um Espao de Endereamento prprio com os dados relativos a um CLP:
Bobinas (Coils), Entradas Discretas (Digital Inputs) e Registradores de Espera (Holding
Registers), isto , a criao de um tipo CLP genrico, com todas as variveis de um CLP
real.

Figura 4.3: Processo de mapeamento do CLP para um espao de endereamento, usando


OPC UA Address Space Model Designer

4.4
4.4.1

Conexo Servidor OPC-ModBus


Incorporao da classe ModbusChannel

Com a estrutura de um servidor OPC UA pronta e tendo comunicao com clientes


OPC UA, necessrio conect-lo diretamente a um dispositivo CLP Modbus TCP/IP.
Para isso, feita a incorporao da classe ModbusChannel, mostrada anteriormente no
servidor OPC UA bsico.

33

Foi criada uma classe com a estrutura de um CLP, PLCItem, com as suas caractersticas, como: Nome, IP, Porta e Intervalo de Amostragem.Como a quantidade de dispositivos Modbus conectados ao servidor pode ser varivel, foi criada uma estrutura de
dicionrio (Dictionary) para os CLPs.

4.5
4.5.1

Conexo do Servidor ModbusToOPCUA com Cliente OPC UA


Estrutura de comunicao completa - ModbusToOPCUA
Projeto
Para os primeiros testes foi utilizado um simulador Modbus TCP/IP.
Cliente OPC UA
Para fazer a comunicao com o servidor criado, foi utilizado um servidor para
testes, fornecido pela OPC Foundation.
Utilizao de Simulador
Foi utilizado um simulador Modbus TCP/IP para os primeiros testes, figura 4.4,
nele possvel configurar a porta que ele ir trabalhar e o IP igual ao da mquina
que ele est rodando. Tambm possvel alterar valores individuais de cada bobina
ou registrador.
Todos os tipos de E/S podem ser manipulados no simulador, alm disso, h opo
de uma variao constante dos valores de entrada e sada, para uma verificao em
tempo real do funcionamento do servidor.

4.5.2

Configurando CLP no Servidor OPC UA:

Servidor em funcionamento
A tela inicial do servidor possui duas abas, figura 4.7: a de configurao e a
de gerenciamento de dispositivos. Na de configuraes existem opes para
adicionar e remover CLPs do servidor.
Caso seja selecionada a opo para adicionar um CLP, necessrio fornecer
as configuraes, figura 4.5, dele como: intervalo de consulta dos valores de
E/S (taxa de amostragem), nmero de bobinas, de entradas analgicas e de
registradores. Alm disso, necessrio colocar as informaes de conexo
com o CLP, como o seu endereo IP, a porta de comunicao em que ele envia
e recebe os dados e o nome que ele receber no Servidor. Feito isso, deve ser
feita o teste da conexo com o aparelho, figura 4.6.

34

Figura 4.4: Seleo do tipo de E/S que ser simulada

Figura 4.5: Teste de conexo com CLP

Figura 4.6: Tela aps a confirmao de conexo, s ento possvel adicionar o CLP ao
Servidor.

35

Figura 4.7: Tela aps ser adicionado o CLP, ele aparece como um cone e as suas propriedades podem ser visualizadas

36

Visualizao do espao de endereamento criado


parte final da comunicao;
Com a comunicao entre dispositivo Modbus TCP/IP e o servidor sendo
completa, foi utilizado o Cliente OPC UA fornecido pelo SDK, para visualizar o Espao de Endereamento do CLP criado no servidor;

Figura 4.8: Espao de Endereamento do exemplo, com um CLP chamado de PLC #1,
visto pelo Cliente

37

5.1

RESULTADOS

Utilizao do Servidor OPC UA com um CLP real

Com a implementao do Servidor OPC UA finalizada, foram feitos testes com simulador Modbus TCP/IP. Aps, foi utilizado um CLP FBS- 24MATJ, fabricado pela empresa
chinesa Fatek Corp. e distribudo pela Altus Sistemas de Informtica. O CLP possui 10
bobinas e 14 entradas discretas.
Com os testes, foi possvel tanto escrever as bobinas quanto ler as bobinas e as entradas. Sendo assim, constatado o correto funcionamento do projeto do servidor, que
quando ligado a um CLP com comunicao Modbus TCP/IP, disponibilizou os dados no
formato OPC UA para clientes atravs da internet em tempo real. Foi feita ainda uma
anlise de tempo de resposta, apresentada na seo abaixo.

5.2

Anlise de tempo de resposta

Para realizar uma anlise temporal, foi criado um cdigo em C#, figura 5.2, testando a
comunicao com o CLP atravs da rede. Esse cdigo faz uma seqncia de amostragens
e mostra o tempo gasto para realizar tais operaes, figura 5.1.
Os testes foram realizados com seqncias de 1000 amostras consecutivas. Embora
outros fatores possam influenciar o tempo de resposta do sistema, como tempo de processamento e o gargalo da comunicao com prprio CLP, os resultados mostrados foram
relativamente bons.
Nmero de leituras consecutivas Tempo de resposta (segundos)
1
00.0690039
10
00.6430368
100
06.5913770
1000
66.2167873
Tabela 5.1: Tabela com os tempos de resposta em relaao ao nmero de leituras consecutivas no PLC

38

Figura 5.1: Resultado da simulao de tempo para 1000 amostras consecutivas de cada
E/S do CLP FBS-25MATJ

Figura 5.2: Cdigo utilizado para realizar anlise de tempo da comunicao com CLP
real

39

CONCLUSES

Este trabalho apresentou o processo de desenvolvimento de um software Servidor


OPC UA em linguagem C# com comunicao com o protocolo Modbus TCP/IP. Para tal,
foi especificada a tecnologia OPC UA e seu histrico, assim como a estrutura do protocolo
Modbus- como foco na comunicao via Ethernet TCP/IP-, os passos para sua criao e
um exemplo ilustrativo.
Com o projeto finalizado, foi possvel ter uma integrao completa dos dados de CLPs
com Clientes OPC UA pela internet. Isso possibilitou, no apenas a visualizao dos dados, mas tambm o envio de informaes para esses CLPs. Isto , como as informaes
esto sendo disponibilizadas no formato OPC UA, podem-se conectar vrios clientes, e
esses tm a possibilidade de fazer controle de acesso histrico, gerao de relatrios, controle de alarmes de qualquer dispositivo com comunicao Modbus Ethernet.
Esse projeto ainda pode ser expandido para servidores OPC UA com comunicao
com outros tipos de protocolo de cho de fbrica e os seus dados, podendo ser disponibilizadas em todos os nveis de produo.

40

REFERNCIAS

OPC FOUNDATION. OPC UA SPECIFICATION PART 1 to 11. Disponvel em:


<http://www.opcfoundation.org/>. Acesso em: Setembro 2010.
OPC
FOUNDATION.
OPC
UA
SDK
1.01.
<http://www.opcfoundation.org/>. Acesso em: Setembro 2010.

Disponvel

em:

MODBUS.ORG MODBUS APPLICATION PROTOCOL SPECIFICATION.


Disponvel em: <http://www.modbus.org/docs/Modbus Application Protocol V1
1b.pdf/>. Acesso em: Setembro 2010.
MODBUS.ORG MODICON MODBUS PROTOCOL REFERENCE GUIDE.
Disponvel em: <http://www.modbus.org/docs/PI MBUS 300.pdf>. Acesso em: Setembro 2010.
NMODBUS.COM LIBRARY NMODBUS IN
<http://nmodbus.com/>. Acesso em: Setembro 2010.

.NET

C#.

Disponvel

em:

MODBUS.ORG MODBUS MESSAGING ON TCP/IP IMPLEMENTATION


GUIDE. Disponvel em: <http://www.modbus.org/docs/Modbus Messaging Implementation Guide V1 0b.pdf>. Acesso em: Setembro 2010.
ALTUS.COM.BR INFORMAOES CLP FBS-24MATJ.
<http://altus.com.br>. Acesso em: Novembro 2010.

Disponvel

em: