Aplicacao - Da - Orientacao - A - Objetos - em - Sis 1
Aplicacao - Da - Orientacao - A - Objetos - em - Sis 1
Aplicacao - Da - Orientacao - A - Objetos - em - Sis 1
ÉMERSON BUTZEN
Novo Hamburgo
2014
ÉMERSON BUTZEN
Novo Hamburgo
2014
AGRADECIMENTOS
The development of this work proposes an encounter between conceptions of control systems,
software engineer and software quality. This issue is relevant because it promotes reflections,
whose solutions require cost reduction in industrial processes, by the application of Object-
oriented paradigm to automation. The central objective of this study is to model an application
(software) already developed industrial automation, applying the techniques of Object-
oriented paradigm introduced from IEC 61131, using the Altus MasterTool IEC XE software.
In this sense, the question guiding this study establishes itself: how to reduce the cost of
development and maintenance in industrial automation applications? It is believed that in this
application is feasible to reduce costs in automation projects in about twenty per center (20
%). The theoretical framework consists of elucidations of Capretz (2003), Meyer (2000),
Buyya (2009), Bolshakova (2005) and Guimarães (2005). The main results of this study refer
to the confirmation gains before applying the Object-oriented paradigm to industrial
automation, since the codes generated by this paradigm were more organized, reusable and
allow a faster and proper maintenance.
Key words: Control Systems; Standard IEC 61131; Function Block; Software Engineer;
Object-oriented paradigm.
LISTA DE FIGURAS
BF Bloco Funcional
CLP Controlador Lógico Programavel
EN Enable Input
ENO Enable Output
ERP Enterprise Resource Planning
EUA Estados Unidos da América
FB Function Block
FBD Function Block Diagram
IEC International Electrotechnical Commission
IHM Interface Homem Máquina
IL Instruction List
LD Ladder Diagram
MV Manipulated Variable
OO Orientação a Objetos
OOP Object-Oriented Programming
PID Proporcional Integral Derivativo
PLC Programmable Logic Controller
POO Programação Orientada a Objetos
POU Program Organization Units
PV Process Variable
SCADA Supervisory Control and Data Acquisition
SFC Sequential Function Chart
ST Structured Text
TC Technical Committee
SUMÁRIO
1 INTRODUÇÃO _________________________________________________________ 11
1.1 Considerações iniciais _________________________________________________ 11
1.2 Tema e objetivos _____________________________________________________ 12
1.3 Justificativa _________________________________________________________ 13
1.4 Delimitação do tema, problema e hipótese _________________________________ 14
1.5 Organização _________________________________________________________ 14
2 ENGENHARIA DE AUTOMAÇÃO E CONTROLE __________________________ 15
2.1 Definição da Automação _______________________________________________ 15
2.2 Os componentes básicos _______________________________________________ 17
2.3 Pirâmide da Automação Industrial _______________________________________ 19
2.4 Engenharia de software aplica à automação ________________________________ 20
3 ORIENTAÇÃO A OBJETOS E A NORMA IEC 61131-3 ______________________ 22
3.1 Orientação a Objetos __________________________________________________ 22
3.1.1 Abstração ______________________________________________________ 25
3.1.2 Classes ________________________________________________________ 26
3.1.3 Herança _______________________________________________________ 27
3.1.4 Polimorfismo ___________________________________________________ 28
3.1.5 Ligação dinâmica ________________________________________________ 28
3.1.6 Encapsulamento _________________________________________________ 29
3.1.7 Concorrência ___________________________________________________ 29
3.1.8 Coletor de lixo __________________________________________________ 30
3.1.9 Persistência de objetos ____________________________________________ 30
3.1.10 Generalização __________________________________________________ 30
3.2 Norma IEC 61131-3 __________________________________________________ 31
3.2.1 Origem ________________________________________________________ 31
3.2.2 PLCopen ______________________________________________________ 32
3.2.3 Introdução à IEC 61131-3 _________________________________________ 34
3.2.4 Tipagem de dados _______________________________________________ 35
3.2.5 Variáveis ______________________________________________________ 35
3.2.6 Blocos Funcionais (FB) ___________________________________________ 37
3.2.7 Funções _______________________________________________________ 37
3.2.8 Configuração ___________________________________________________ 37
3.2.9 Caminhos de acesso ______________________________________________ 38
3.2.10 Recursos _______________________________________________________ 39
3.2.11 Tarefas ________________________________________________________ 39
3.2.12 Programas _____________________________________________________ 39
3.2.13 Modelo de software IEC 61131-3 ___________________________________ 39
3.2.14 Fluxo de controle ________________________________________________ 40
3.2.15 Linguagens de programação _______________________________________ 41
3.2.16 Texto Estruturado (ST) ___________________________________________ 42
3.2.17 Lista de Instruções (IL) ___________________________________________ 42
3.2.18 Logic Ladder (LD) _______________________________________________ 43
3.2.19 Diagrama de Blocos Funcionais (FBD) _______________________________ 44
3.2.20 Sequenciamento Gráfico de Funções (SFC) ___________________________ 45
3.2.21 Orientação a Objeto na norma IEC 61131-3 ___________________________ 46
4 APLICANDO A ORIENTAÇÃO A OBJETOS _______________________________ 48
4.1 Aplicação atual ______________________________________________________ 48
4.2 Remodelando a Aplicação com Orientação a Objetos ________________________ 50
4.2.1 Abstração das lógicas ____________________________________________ 50
4.2.2 Construção dos Blocos Funcionais (Classes) __________________________ 51
4.2.3 Utilizando os Blocos Funcionais ____________________________________ 52
4.2.4 Herança em Blocos Funcionais _____________________________________ 56
4.2.5 Resultados _____________________________________________________ 58
CONSIDERAÇÕES FINAIS ________________________________________________ 61
REFERÊNCIAS __________________________________________________________ 62
APÊNDICES _____________________________________________________________ 65
1 INTRODUÇÃO
Ainda conforme Costa (2009), com o passar do tempo, normalmente todo o sistema
desenvolvido cresce e se torna cada vez mais complexo, exibindo muitas entradas e muitas
saídas, além de várias interligações entre seus componentes na sua execução. Assim, a
programação do PLC torna-se de grande complexidade, gerando erros de difícil localização,
que muitas vezes exigem a execução do sistema para tentar descobrir um erro em uma, ou
mais lógicas, das muitas que existem na aplicação Ladder Logic.
validação das aplicações se torna extremamente cara, muitas vezes em milhões de dólares
para fábricas de poucas paradas. Esse tipo de fábrica, quando parada, costuma ter um prejuízo
em torno de 3.000,00 dólares por minuto (AIKEN et al., 2000).
Alguns destes problemas são vistos também na área da Ciência da Computação, onde
há um um número maior de paradigmas de programação. Buyya et al (2009) aponta que cada
linguagem de programação impõe um determinado estilo de programação e assim, influencia
a forma de organizar a informação. Este conjunto é conhecido como paradigma de
programação, que pode ser compartilhado entre diversas outras linguagens, inclusive a
linguagem Ladder Logic. Para Leite e Júnior (2002), um exemplo destes problemas ocorre ao
desenvolver um sistema de pequeno porte. Normalmente, se opta pela rapidez de codificá-lo
com técnicas do paradigma estruturado, utilizado pela linguagem Ladder Logic. Porém sua
manutenção é comprometida na relação custo-tempo, onde a manutenção em um software
codificado com a técnica da programação estruturada é muito mais difícil de ser realizada.
Este paradigma de Orientação a Objeto (OO) também está presente na IEC 61131-3,
permitindo que o usuário codifique sua aplicação utilizando este paradigma. Existem
ferramentas como o CoDeSys que implementam a norma e deixam para o usuário escolher
entre a programação clássica ou orientada a objetos (POO) ou combinar ambos paradigmas de
programação (3S, 2009).
Este trabalho irá abordar dois temas principais: engenharia e qualidade de software.
A engenharia de software é um conjunto de princípios e técnicas que auxiliam desenvolver o
software de maneira científica (BUYYA et al., 2009). Já a qualidade de software é descrita
1
Classe é uma técnica da OO que será explorada no 3.1.10 do Capítulo 3.
13
1.3 Justificativa
O tema explorado por este trabalho visa contribuir para uma mudança na cultura de
codificação de novos ou velhos sistemas de automação dentro das empresas integradoras de
soluções de automação.
1.5 Organização
da criação do PLC é que os avanços teóricos do controle dinâmico dispararam, por ser um
conceito de incalculável poder tecnológico. Este controle utiliza-se das medidas das saídas do
sistema, a fim de melhorar o desempenho operacional num esquema de realimentação. Assim,
é capaz de aperfeiçoar os processos em que é aplicado seja em velocidade, precisão e em
custo (MORAES; CASTRUCCI, 2001).
Desses aspectos, pode-se afirmar que todo o sistema que se apoia em computadores
para substituir o trabalho humano, seja em favor da segurança, da qualidade dos produtos, da
melhora na produção e/ ou da redução de custos, é dito como um sistema de automação
(MORAES; CASTRUCCI apud MARTINS, 2013), que permite o aperfeiçoamento de
objetivos complexos das indústrias e serviços. Para Pinto (2013, p.9), automação é
Nise (2011) cita exemplos destes sistemas que funcionam quase sempre sozinhos: a
usinagem automática de metais e os veículos autoguiados de entrega de material para as
estações de trabalho. Existem ainda sistemas automatizados, com os quais se convive
diariamente e que necessitam da interação com o homem, como as máquinas de café,
refrigerantes ou alimentos, que possuem processo sistematizado desde os aspectos
financeiros, relativos a pagamento e troco, até a seleção e acesso ao produto. A automação
pode também ser percebida na abertura de portões, seja através de sensores ou de controle
remoto.
tipo de controle que permite a manipulação dos equipamentos. Este controle normalmente é
uma lógica executada rotineiramente (em ciclos) no PLC.
Todo sistema de controle precisa de algum tipo de controlador para garantir uma
operação segura e economicamente viável. Isto pode ser visto numa simples planta onde o
objetivo é controlar a temperatura através de um motor elétrico acionando um ventilador, ou
numa planta complexa que utiliza um reator nuclear para produção de energia elétrica. Assim,
todos os sistemas de controle são definidos em três partes: os transdutores, os controladores e
os atuadores (GUIMARÃES, 2005).
Martins (2013) completa afirmando que sistemas automatizados são, algumas vezes,
extremamente complexos, mas ao observar como é composto é possível notar que seus
subsistemas possuem características comuns e de simples entendimento, ou seja, vários
sistemas simples que junto formam um sistema grande e muito complexo. Portanto,
formalmente, um sistema automatizado possui os seguintes componentes básicos:
transdutores;
comparação e controle;
atuadores.
Com base nos estados das entradas, que alimentam as Variáveis de Processo (PV), o
controlador utiliza um algoritmo de controle embutido para calcular as Variáveis Manipuladas
(MV), alimentando os estados das suas saídas. Os sinais elétricos das saídas são convertidos
para o processo através dos atuadores, que geram movimentos como válvulas, motores,
bombas e outros e utilizam a energia potencial pneumática para o acionamento.
2
Sinal de comando ou sinal de controle é o sinal de saída do regulador, é normalmente do tipo elétrico,
pneumático ou hidráulico. É enviado para o atuador através de uma interface de potência (amplificador,
conversor, etc.).
19
supervisão e de controle, permitindo que importantes informações, tais como aquelas que
caracterizam desempenho de produção, possam ser analisadas pela gerência da empresa
(PINTO, 2005).
Como visto, a automação industrial exige a realização de várias funções, como ler,
armazenar, verificar, atuar, etc. Uma forma de representar todas as áreas envolvidas e a tarefa
das mesmas é a pirâmide da automação industrial, conforme a Figura 2.3.
Estas metodologias são aplicadas para resolver todos os requisitos propostos por uma
aplicação, inclusive o principal requisito das aplicações de automação, que é a concorrência
de tarefas (MORAES; CASTRUCCI, 2001). A concorrência é vista em várias metodologias e
linguagens de programação. Em Java está presente através de threading3, sincronização, e
programação (BUYYA et al., 2009).
3
É uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas
concorrentemente.
22
Um dos recursos da informática que tem contribuído para o incremento dos artefatos
de automação industrial é a Orientação a Objetos. Trata-se de um paradigma utilizado na
computação que se tornou essencial em muitas das linguagens de programação amplamente
utilizadas na indústria de software, como C++, Object Pascal, C#, Java, entre outras,
inclusive o Laader Logic. Nessa última, com o Function Block (FB), o padrão descrito na
norma IEC 61131-3 (CHIRON; KOUISS, 2007) que implementa o paradigma de Orientação a
Objeto. Com o objetivo de compreender a contribuição do paradigma OO à norma IEC
61131-3, serão explorados a seguir suas noções centrais.
Meyer (2000), além do que expôs Capretz (2003), afirma que o Simula já
implementava o paradigma de Orientação a Objetos de forma completa, antes do surgimento
da programação estruturada, ou de Parnas4 ter publicado seus artigos sobre ocultamento de
informações, ou ainda, do uso da terminologia "tipo de dados abstratos". Isto aconteceu longe
dos EUA, tradicional polo de desenvolvimento de linguagens de programação. Foi no
Norwegian Computing Center, que alguns desenvolvedores de software já estavam se
beneficiando do poder das classes, herança, polimorfismo, ligação dinâmica e a maioria das
outras vantagens da Orientação a Objetos.
4
David Lorge Parnas é um dos pioneiros da engenharia de software, desenvolveu o conceito de ocultamento de
informações na programação modular que é um elemento da programação orientada a objeto de hoje.
5
São os elementos que definem a estrutura de uma classe e também são conhecidos como variáveis de classe.
6
São sub-rotinas executadas por um objeto ao receber uma mensagem, determinam o comportamento dos
objetos de uma classe e são análogos às funções ou procedimentos da programação estruturada.
24
adequadamente cada um dos elementos base da OO, para sua identificação e associação
posterior a outras linguagens de programação, apresentam-se suas noções centrais.
3.1.1 Abstração
Capretz (2003) aponta que a abstração é uma técnica que ajuda a lidar com a
complexidade. Abstração envolve uma seletiva análise de determinados aspectos de uma
aplicação, cujo objetivo é isolar os aspectos que são importantes para uma compreensão da
aplicação. Além de suprimir os aspectos irrelevantes, as classes e os objetos são a forma das
abstrações de uma aplicação. Devido a essas características, pode ser considerado um dos
princípios mais relevantes do paradigma de OO.
7
Entidade, de acordo com o dicionário de Ferreira (1988), significa aquilo que existe ou imaginamos que existe;
ente, ser.
26
3.1.2 Classes
Segundo Meyer (2000), cada classe deve corresponder a uma abstração de dados
bem definida. Buyya et al. (2009) apresentam, de outra maneira, a mesma definição,
apontando que a estrutura de software que suporta a abstração de dados é conhecida como
classe. Uma classe é um tipo de dados que captura a essência de uma abstração. A classe é um
protótipo ou modelo que define características diferentes. Um recurso pode ser um dado ou
uma operação. Os dados são representados por variáveis de instância ou variáveis de dados de
uma classe. As operações também são conhecidas como comportamentos, métodos ou
funções. A Figura 3.5 sintetiza isso.
27
A Figura 3.5 mostra a entidade do mundo real, sendo abstraída, ou seja, coletando as
principais características e comportamentos da entidade, sendo a origem então para a classe,
que será a representação daquela entidade do mundo real na aplicação.
3.1.3 Herança
3.1.4 Polimorfismo
Tendo por base o exemplo anterior, acerca dos dados de estudantes da subclasse de
clientes em um sistema bancário, um programador poderia definir um método chamado
consultaCliente(). Porém, como este método já existe na classe base (clientes) e a informação
requerida é o CPF, então o programador sobrecarrega o método consultaCliente() e passa a
requisitar a instituição de ensino e numero de matrícula do estudante. No objeto da subclasse
pode-se efetuar a consulta por meio do CPF, ou instituição de ensino e número de matrícula.
caracteres, o que em uma abordagem tradicional incluiria uma declaração para verificar em
tempo de execução do método de impressão correto para o tipo que será impresso na pilha. Na
Orientação a Objetos, o “tipo” terá seu próprio imprimir.
3.1.6 Encapsulamento
3.1.7 Concorrência
3.1.10 Generalização
8
Sistema em tempo de execução: é um componente da linguagem de programação, que complementa o
compilador, fornecendo os mecanismos necessários no momento da execução para apoiar a execução de sistemas
escritos na linguagem (MEYER; 2000).
31
3.2.1 Origem
A norma IEC 61131 é dividia em oito partes, conforme apresenta a Tabela 3.1:
A conjunção das oito partes da norma busca promover a redução de custos com
implantação das aplicações de controle e automação devido às diferentes tecnologias. Pode-se
mencionar alguns aspectos que representam a redução de custos a partir dos ajustes da norma:
treinamentos, depuração, manutenção de software, engenharia e consultoria, permitir foco na
solução do problema e não na construção da aplicação, redução na dependência de
fornecedores de consultorias e hardwares, redução de erros e inconsistências na construção de
lógicas e soluções iguais para áreas iguais em indústrias iguais ou diferentes; uso e mudanças
de parametrizações e não do software todo, e o usos de bibliotecas padrões construídas por
diferentes programadores (ALVES, 2008).
Além da norma IEC 61131, foi constituída a associação PLCopen, foco de estudo do
próximo subcapitulo.
3.2.2 PLCopen
A PLCopen (2014) busca atingir este objetivo através das seguintes ações:
Para dar credibilidade, os produtos aprovados pela PLCopen (2014) recebem um selo
de acordo com o nível da certificação obtida. Atualmente são três as principais certificações
destinadas aos fornecedores de ambientes de programação de PLCs:
Estas certificações trazem para o usuário uma garantia de que os produtos adquiridos
estão de acordo com a norma. Além disso, conforme Alves (2008), a PLCopen possui
internamente diversos grupos de trabalhos ou Comitês Técnicos (TCs), que trabalhem
continuamente, cada um deles responsável pela gestão de processos relacionados à norma, são
eles:
Após esta abordagem geral sobre a norma IEC 61131-3, o próximo subcapitulo
abordará e ampliará as noções referentes a terceira parte da norma IEC 61131, ou seja, suas
características.
9
Top-down e bottom-up são estratégias de processamento de informações e ordenação do conhecimento, usados
em uma variedade de campos, incluindo software, teorias humanísticas e científicas, gestão e organização.
Podem ser vistos como um modelo de pensamento e de ensino.
35
Percebe-se que a norma IEC 61131-3 tem duas vias em sua construção: elementos
comuns e linguagens de programação. As ferramentas de estruturação dentro da norma IEC
61131-3 estão focadas em elementos comuns, embora fique evidente que conectam-se às
linguagens de programação (VAN DER WAL, 1999). A Figura 3.6 ilustra a divisão da norma.
3.2.5 Variáveis
Variáveis globais devem ser declaradas como tal (VAR_GLOBAL). Para cada
parâmetro pode ser atribuído um valor inicial na partida a quente e a frio da aplicação, de
forma a se garantir os valores corretos (VAN DER WAL, 1999).
Guimarães (2005) afirma que as posições de memória do PLC podem ser acessadas
usando variáveis de representação direta do endereço de memória, ou seja, é permitida a
leitura e escrita de dados em posições conhecidas de memória, tais como entradas, saídas e
endereços internos. A notação utilizada é padronizada para permitir a portabilidade, onde
todas começam com o caractere “%”, seguido de uma ou duas letras, onde a memória do PLC
pode ser dividida em três regiões lógicas, conforme pode-se observar nas Tabelas 3.3 e 3.4.
Tabela 3.3 Primeira letra escrita para representar a variável de representação direta
Tabela 3.4 Segunda letra escrita para representar a variável de representação direta
X Bit
B Byte (8 bits)
3.2.7 Funções
3.2.8 Configuração
38
3.2.10 Recursos
3.2.11 Tarefas
3.2.12 Programas
O modelo de software representado na Figura 3.8 apresenta além dos quatro itens
Configuração, Recursos, Tarefas e Programas, os itens que os compõem, como Funções,
Blocos Funcionais (FB) e Caminhos de Acesso, sendo que todos estes elementos estão dentro
de um fluxo de controle.
A norma IEC 61131 não define os mecanismos para controle de execução dos
elementos da aplicação, os quais dependem da implementação. Entretanto, são definidos os
comportamentos na partida (start-up) e parada (shut-dowmn) da aplicação:
Partida:
Parada:
Após a conceituação dos elementos comuns da norma IEC 61131-3, o próximo item
deste estudo refere-se as linguagens de programação.
Trata-se de uma linguagem comumente utilizada por pequenos fabricantes de PLCs devido à
simplicidade em pequenas aplicações, além de ser desnecessário o uso de compiladores como
as demais (ALVES, 2008). O exemplo na Figura 3.11 mostra como é um código desenvolvido
em linguagem de programação IL
Cada função também tem uma saída digital extra, denominada Enable Output
(ENO), que é definida como verdadeira (TRUE), quando a execução da função é efetuada
com sucesso. Assim, é comum encadear a saída ENO de uma função com a entrada Enable
Input (EN) da outra para garantir que a cadeia só produzirá um resultado correto, quando
todas as etapas estiverem corretas (GUIMARÃES, 2005). A Figura 3.13 mostra um exemplo
de uso da linguagem de programação FDB.
45
Alves (2008) aponta que o SFC permite a programação em forma textual e estrutura
as ações em partes a serem usadas de forma hierárquica e com abordagem top-down. Também
promove ganhos de desempenho por executar apenas passos ativos na estrutura do programa e
permitir fácil rastreabilidade de eventos.
Uma sequência em SFC é composta por uma série de passos mostrados como
retângulos, conectados por linhas verticais, onde cada passo representa um estado particular
46
programado em qualquer uma das demais linguagens IEC (ST, FBD, LD e IL). Para melhor
entendimento, propõe-se a Figura 3.14.
Cada linha de conexão possui uma barra horizontal que representa uma transição, a
qual é associada a uma condição que, quando verdadeira, causa a desativação do passo
anterior e a ativação do passo seguinte. Uma transição recebe um nome (T1, T2, T3, etc...) e é
programada nas linguagens ST, FBD, LD e IL. Cada um dos passos pode ter uma ou mais
ações associadas que é representada por um ou mais programas. O fluxo é de cima para baixo
(top-down), mas ramos podem ser usados para retornar para passos anteriores (GUIMARÃES,
2005).
Outra ferramenta que disponibiliza esta opção é o CoDeSys, da empresa alemã 3S,
da qual destacam-se os seguintes pontos:
Kajihara et al. (2004) apontam, que nos últimos anos, o custo de engenharia para
sistemas de controle tende a aumentar rapidamente devido à integração e promoção dos
sistemas de controle sob a demanda de poupar trabalho e espalhar a expansão da TI. Dentro
desta perspectiva, muitos esforços têm sido feitos para popularizar e aumentar a adesão dos
fornecedores e usuários à norma IEC 61131-3, já que apresenta como solução melhorar a
reutilização de software, linguagem de descrição de controle padrão e a Orientação a Objetos
introduzidos no sistema de controle.
Neste capítulo serão utilizados alguns dos conceitos de Orientação a Objetos em uma
aplicação já desenvolvida no ambiente tradicional (MasterTool Programming) de
programação Ladder, utilizando o paradigma sequencial lógico.
A aplicação desde estudo é responsável pelo envio de amostras de aço para análise
via motores tipo turbina da Usiminas. Foi desenvolvida na ferramenta MasterTool
Programming, lançada no ano de 2000 (ALTUS, 2013a). Para melhorar a comparação de
paradigmas, a aplicação foi transcrita MasterTool IEC XE 1.40 (ALTUS, 2013b). Este
software contempla a norma IEC 61131-3, mas permite o usuário desenvolver sistemas
utilizando apenas a lógica sequencial.
continua
49
continuação
No caso da Figura 4.2, existem duas entidades, uma entidade representada pela
lógica 1 e outra entidade representada pela lógica 2.
+
Fonte: Adaptado de Usiminas (2013)
Assim, a entidade da lógica 1 é representada por três entradas, são elas: duas
variáveis de representação direta de endereço de memória (%IX0008.4 e %IX0012.3) e uma
constante de tempo (t#15s); o processamento é representado pelo temporizador TON e por
fim a saída é representada na variável %IX0009.2.
Bloco funcional é uma classe (3S, 2009). Com a abstração das características
essenciais das lógicas 1 e 2, pode-se construir uma classe (FB) para cada lógica. A Figura 4.3
apresenta o bloco funcional L01_Class desenvolvido a partir da abstração da lógica 1.
Ao observar a lógica 1 da Figura 4.2 e a lógica construída da Figura 4.3 nota-se uma
grande semelhança; o que muda em si é o uso das variáveis. Na Figura 4.2 há o uso de
variáveis de representação direta e na construção da classe, usam-se as variáveis simbólicas,
ou seja, pode-se reutilizar este bloco funcional onde a lógica seja igual, pois as variáveis
simbólicas podem receber o valor de qualquer entrada, desde que o tipo de dado seja o
correto. Assim a Entrada02 do bloco funcional, por exemplo, pode receber o %IX0012.3 da
lógica 1 da Figura 4.2, ou o %IX0012.04 da lógica 5 da Figura 4.1. Portanto, torna-se possível
aplicar o bloco funcional nas lógicas 1, 3, 5 e 7 da Figura 4.1, o resultado será apresentado nas
Figuras 4.4 e 4.5.
Figura 4.5 – Aplicação mista: cabeçalho da aplicação com bloco funcional L01_Class
Para concluir esta etapa, a Figura 4.8 mostra o resultado da aplicação de automação e
controle com o uso dos dois blocos funcionais.
Por fim, pode-se afirmar que aplicação mostrada na Figura 4.8 foi desenvolvida sob
o paradigma de Orientação a Objetos. Apesar das lógicas 5, 6, 7 e 8 não passarem pelo
processo de abstração, cabe ressaltar que há casos em que a Orientação a Objetos não traz
ganhos significativos. Nestes casos, a abordagem tradicional continua sendo uma boa solução.
continua
58
continuação
4.2.5 Resultados
A Tabela Tabela 4.1 mostra que em 1989 uma aplicação tinha em média 21.500
linhas de código (lógicas). Sabe-se que o tamanho dos programas atuais só aumenta, pois cada
vez mais, temos mais controle em plantas industriais. Aiken et al. (2000) aponta que o custo
de indústria parada gira em torno de U$ 3.000,00 por minuto. Sendo assim, é possível validar
este estudo tabulando os dados da seguinte forma:
paradigma utilizado;
tempo para alterar uma lógica: baseado na experiência adquirida neste trabalho;
Os dados para o paradigma Sequencial Lógico tem sua fonte na da Figura 4.1, e os
dados do paradigma de Orientação a Objetos nas Figuras 4.3, 4.4 e 4.8. Define-se, assim, a
Tabela 4.2.
CONSIDERAÇÕES FINAIS
3S-Smart Software Solutions Gmb. OOP in an IEC 61131-3 Tool. CoDeSys Object-
Oriented Controller Programming. 2009. Disponível em:
http://ftc.beijer.se/files/C125728B003AF839/B0022B2949098947C1257A6300283F69/CoDe
Sys_OOP_2009_e.pdf>. Acesso em: 23/01/2014.
AIKEN, Alexander; FÄHNDRICH, Manuel; SU, Zhendong. Detecting races inRelay
Ladder Logic programs. International Journal on Software Tools for Technology Transfer,
vol.3, n.1, p93-105, 2000. Disponível em:
<http://www.cs.ucdavis.edu/~su/publications/sttt00.pdf>. Acesso em: 28 nov. 2013.
ALTUS Sistemas de Automação S.A.. Série MASTERTOOL. In: Histórico de Revisões de
Software. São Leopoldo. 2013a. Disponível em:
<http://www.altus.com.br/ftp/Public/Portugues/Revisoes%20de%20Produtos/HistoricoReviso
esSoftwareALTUS.pdf>. Acesso em 21 dez. 2013.
ALTUS Sistemas de Automação S.A.. MasterTool IEC XE. São Leopoldo. 2013c.
Disponível em: <
http://www.altus.com.br/ftp/Public/Portugues/Produtos/Mtool/01%20Software/MT8500%20-
%20MasterTool%20IEC%20XE/Caracteristicas%20Tecnicas/CT103705.pdf>. Acesso em 21
dez. 2013.
ALTUS Sistemas de Automação S.A.. Série MasterTool IEC XE. São Leopoldo. 2013b.
Disponível em: <
http://www.altus.com.br/site_ptbr/index.php?option=com_content&view=article&id=638&Ite
mid=289>. Acesso em 21 dez. 2013.
ALVES, Anísio Chagas Bernardino. A Norma Iec 61131. Sistemas de Controle:
Especificação e Implantação, Curso de Pós-graduação Latu-sensu Especialização em
Instrumentação e Controle de Processos industriais, Universidade Federal do Espírito Santo,
out., 2008. Disponível em:
<http://libertas.pbh.gov.br/~danilo.cesar/outros/concurso_ufmg/Sistemas_de_Controle_-
_NORMA_IEC_61131.pdf>. Acesso em: 20 set. 2013.
BANKER, Rajiv D.; DATAR, Srikant M.; ZWEIG, Dani. Software complexity and
maintainability. Age, v. 11, n. 5.6, p. 3, 1989.
BOLSHAKOVA, Elena. Programming paradigms in computer science education.
International Journal Information Theories and Applications, vol.12, n.3, p285, 2005.
Disponível em: <http://www.foibg.com/ijita/vol12/ijita12-3-p13.pdf>. Acesso em: 20 set.
2013.
BUYYA, Rajkumar; CHU, Xingchen; SELVI, S Thamarai. Object-Oriented Programming
With Java: Essentials and Applications. New Delhi, Tata Mcgraw-Hill Publishing
Company, 2009. 649p.
CAPRETZ, Luiz Fernando. A brief history of the object-oriented approach. ACM
SIGSOFT Software Engineering Notes, vol.28, n.2, p.6, mar., 2003.
CARDELLI, Luca; WEGNER, Peter. On Understanding Types, Data Abstraction, and
Polymorphism. Computing Surveys, vol.17, n.4, p.471-522, 1985. Disponível em: <
http://lucacardelli.name/Papers/OnUnderstanding.A4.pdf>. Acesso em: 20 set. 2013.
CHIRON, Fabien; KOUISS, Khalid,. Design of IEC 61131-3 Function Blocks using
SysML. Mediterranean Conference on Control & Automation, Athens, 2007.
63
APÊNDICES
66
Sds,
Rafael Lima
Project Manager - R&D
——————————
Fone: +55 51 3589 9500
Celular: +55 51 9246 7295
e-mail: [email protected]
www.altus.com.br @altus_sa
Suporte Técnico: 0800 510 9500
Matriz:
Av. Theodomiro Porto da Fonseca, 3101
CEP 93020-080 - Bairro Duque de Caxias
São Leopoldo/RS – Brasil
Colabore com o Programa Ambiental Altus! Antes de imprimir, pense em sua responsabilidade e compromisso com o meio-
ambiente. E lembre-se: a prevenção é a melhor forma de evitar acidentes do trabalho!
- As informações contidas neste e-mail são confidenciais e de utilização exclusiva do(s) destinatário(s), sendo seu sigilo
protegido por lei. Se você recebeu por engano, por favor, apague-o imediatamente sem copiá-lo, armazená-lo ou distribuí-lo.
Em anexo.
Sds,
Jones Clemente Camilo
Especialista de Produtos
——————————
Fone: +55 11 20391950
Celular: +55 11 993480863
e-mail: [email protected]
Skype: jonesccamilo
TV Altus: http://vimeo.com/channels/altus/
www.altus.com.br @altus_sa
Suporte Técnico: 0800 510 9500
Suporte Técnico: 051 35899546
Filial São Paulo
Alameda dos Maracatins, 780 – Conjunto 1501
CEP 04080-001 - Bairro Moema
São Paulo/SP – Brasil
Colabore com o Programa Ambiental Altus! Antes de imprimir, pense em sua responsabilidade e compromisso com o meio-
ambiente. E lembre-se: a prevenção é a melhor forma de evitar acidentes do trabalho!
- As informações contidas neste e-mail são confidenciais e de utilização exclusiva do(s) destinatário(s), sendo seu sigilo
protegido por lei. Se você recebeu por engano, por favor, apague-o imediatamente sem copiá-lo, armazená-lo ou distribuí-lo.
67
Jones, segue.
Aplicação envio de amostras de aço para analise via motores tipo turbina.
Grupo de acesso:
Destinatários deste correio
======================================
Aviso Legal
Esta mensagem e/ou seus anexos podem conter informações privilegiadas, sejam elas confidenciais, restritas ou internas das
empresas do Grupo Usiminas. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem e/ou seus
anexos, você não deve usar, copiar ou divulgar as informações nela contida ou tomar qualquer ação baseada nessas
informações.
Este ambiente está sujeito a monitoramento.
Lawful Warning
This message and / or its attachments may contain privileged information, either confidential, restricted or internal from the
USIMINAS Group’s companies. If you are not the receiver or authorized person to receive this message and /or its attachments,
you must not use, copy or disclose the information contained in it or take any action based on this information.
This environment is subject to monitoring.
68
Aviso Legal
Esta mensagem e/ou seus anexos podem conter informações privilegiadas, sejam elas confidenciais, restritas ou internas das
empresas do Grupo Usiminas. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem e/ou seus
anexos, você não deve usar, copiar ou divulgar as informações nela contida ou tomar qualquer ação baseada nessas
informações.
Este ambiente está sujeito a monitoramento.
Lawful Warning
This message and / or its attachments may contain privileged information, either confidential, restricted or internal from the
USIMINAS Group’s companies. If you are not the receiver or authorized person to receive this message and /or its attachments,
you must not use, copy or disclose the information contained in it or take any action based on this information.
This environment is subject to monitoring.
69
www.usiminas.com
======================================
Classificação:
Público [ ] Uso interno [ ] Restrito [ X ] Confidencial [ ]
Grupo de acesso:
Destinatários deste correio
======================================
Aviso Legal
Esta mensagem e/ou seus anexos podem conter informações privilegiadas, sejam elas confidenciais, restritas ou internas das
empresas do Grupo Usiminas. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem e/ou seus
anexos, você não deve usar, copiar ou divulgar as informações nela contida ou tomar qualquer ação baseada nessas
informações.
Este ambiente está sujeito a monitoramento.
Lawful Warning
This message and / or its attachments may contain privileged information, either confidential, restricted or internal from the
USIMINAS Group’s companies. If you are not the receiver or authorized person to receive this message and /or its attachments,
you must not use, copy or disclose the information contained in it or take any action based on this information.
This environment is subject to monitoring.
70
Tem como mandar alguma aplicação simples e que não contenha detalhes do nosso processo?
Aviso Legal
Esta mensagem e/ou seus anexos podem conter informações privilegiadas, sejam elas confidenciais, restritas ou internas das
empresas do Grupo Usiminas. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem e/ou seus
anexos, você não deve usar, copiar ou divulgar as informações nela contida ou tomar qualquer ação baseada nessas
informações.
Este ambiente está sujeito a monitoramento.
Lawful Warning
This message and / or its attachments may contain privileged information, either confidential, restricted or internal from the
USIMINAS Group’s companies. If you are not the receiver or authorized person to receive this message and /or its attachments,
you must not use, copy or disclose the information contained in it or take any action based on this information.
This environment is subject to monitoring.
71
www.usiminas.com
======================================
Classificação:
Público [ ] Uso interno [ ] Restrito [ X ] Confidencial [ ]
Grupo de acesso:
Destinatários deste correio
======================================
Aviso Legal
Esta mensagem e/ou seus anexos podem conter informações privilegiadas, sejam elas confidenciais, restritas ou internas das
empresas do Grupo Usiminas. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem e/ou seus
anexos, você não deve usar, copiar ou divulgar as informações nela contida ou tomar qualquer ação baseada nessas
informações.
Este ambiente está sujeito a monitoramento.
Lawful Warning
This message and / or its attachments may contain privileged information, either confidential, restricted or internal from the
USIMINAS Group’s companies. If you are not the receiver or authorized person to receive this message and /or its attachments,
you must not use, copy or disclose the information contained in it or take any action based on this information.
This environment is subject to monitoring.
72
Como comentei contigo, a Altus tem parceria com a FEEVALE (que é uma universidade no Rio Grande do Sul). Nesta parceria
foi criado um curso de pós graduação onde projetistas do Nexto ministram cursos e outros colegas que também trabalham do
P&D da Altus são alunos.
Afim de desenvolver monografias mais consistentes, estamos entrando em contato com usuários de Altus que utilizam desde
controladores mais antigos aos mais novos.
Na minha opinião as aplicações feitas na Aciaria são ideais para esse estudo.
Neste projeto da Monografia, os desenvolvedores irão aplicar técnicas avançadas em alguns trechos de códigos de CLPs AL
ou Ponto para testar o comportamento da lógica.
Poderia passar uma copia de algum programa AL que vocês tem na Aciaria. Se possível, também citar as principais
características do processo, exemplo: controle de dosagem, revezamento de bombas, receitas, controle de nível, etc. Não
precisa detalhar o programa.
Friso que é apenas para uso para esse fim, e é de extremo sigilo. Isto é, não iremos publicar todo o conteúdo do programa.
Podemos emitir uma carta de sigilo caso você julgue necessário.
Estou mandando em cópia para as duas pessoas do P&D que estão trabalhando neste projeto.
Sds,
Jones Clemente Camilo
Especialista de Produtos
——————————
Fone: +55 11 20391950
Celular: +55 11 993480863
e-mail: [email protected]
Skype: jonesccamilo
TV Altus: http://vimeo.com/channels/altus/
www.altus.com.br @altus_sa
Suporte Técnico: 0800 510 9500
Suporte Técnico: 051 35899546
Filial São Paulo
Alameda dos Maracatins, 780 – Conjunto 1501
CEP 04080-001 - Bairro Moema
São Paulo/SP – Brasil
Colabore com o Programa Ambiental Altus! Antes de imprimir, pense em sua responsabilidade e compromisso com o meio-
ambiente. E lembre-se: a prevenção é a melhor forma de evitar acidentes do trabalho!
- As informações contidas neste e-mail são confidenciais e de utilização exclusiva do(s) destinatário(s), sendo seu sigilo
protegido por lei. Se você recebeu por engano, por favor, apague-o imediatamente sem copiá-lo, armazená-lo ou distribuí-lo.
- The contents of this e-mail are confidential to the addressee and are intended solely for the recipients use. If you are not the
addressee, you have received this e-mail in error. Any disclosure, copying, distribution or action taken in reliance on it is
prohibited and may be unlawful.