Você está na página 1de 7

ECAi06.

1 – Automação de Sistemas Industriais I

Prof. Dr. Luiz Felipe Pugliese


Julho/2022
Universidade Federal de Itajubá - Campus de Itabira

TRABALHO - CONTROLE DE NÍVEL ON/OFF

∗ ∗
André Luiz Macieira Martins Alves,Cláudio Guimarães Matos Júnior,Gabriel Vinicius Vieira
de Oliveira,João Pedro Oliveira Mendes,Rafael de Sousa Tamburri§
† ‡


Universidade Federal de Itajubá - Campus de Itabira
Rua Irmã Ivone Drumond, 200 - Distrito Industrial II - 35903-087
Itabira, Minas Gerais, Brasil

E-mails: dedemartinsalves@unifei.edu.br, claudiogmj@unifei.edu.br,


gabriel.vinicius@unifei.edu.br, joaomendes.unifei@hotmail.com, rafaeltamburri@unifei.edu.br

Abstract— The purpose of this work is to adapt scenes from software Factory IO, communicate with software
CodeSYS and develop programming in a language without being Ladder, and choose the language ST - Structured
Text, for the performance of on/off level control.

Keywords— Factory IO, CodeSYS, Ladder, Structured Text

Resumo— A proposta desse trabalho é adaptar cenas do software Factory IO, comunicar com o software Co-
deSYS e desenvolver programação em uma linguagem sem ser Ladder, sendo escolhida a linguagem ST - Texto
Estruturado, para a realização do controle de nı́vel ON/OFF.

Palavras-chave— Factory IO, CodeSYS, Ladder, Texto Estruturado

1 Introdução 2 Revisão Bibliográfica

O Factory I/O é um software que permite a si-


Um Controlador Lógico Programável (PLC) é ba-
mulação de uma fábrica 3D para tecnologias de auto-
sicamente um computador projetado para uso no con-
mação com fins didáticos. Projetado para ser fácil de
trole de máquinas (Petruzella, 2014). Esse computa-
usar, permite construir rapidamente uma fábrica vir-
dor, apresenta como uma das suas principais vanta-
tual usando uma seleção de peças industriais comuns.
gens em relação aos relés lógicos a flexibilidade.
A fábrica também inclui muitas cenas inspiradas em
Este presente trabalho tem como objetivo a adap- aplicações industriais tı́picas, que vão desde iniciantes
tação de uma cena do software Factory I/O, comuni- até nı́veis avançados de dificuldade.
cando com o software CodeSYS via OPC e desenvol- O cenário mais comum é usar a Factory I/O como
vendo a lógica de programação da linguagem texto plataforma de treinamento para controladores lógicos
estruturado, que por ser uma linguagem textual e de programáveis, uma vez que estes são os controlado-
alto nı́vel, possibilita a solução de problemas mais res mais comuns encontrados em aplicações industri-
complexos, usando comandos básicos da programação ais. No entanto, também pode ser usado com micro-
como laços de repetição e condicionais. controladores, SoftPLC, Modbus, entre muitas outras
Será tratado um um problema a respeito do con- tecnologias.
trole de nı́vel, que embora muito simples em seu con- Já o software CodeSYS é um ambiente de de-
ceito, utiliza-se de técnicas avançadas para suas apli- senvolvimento para controladores programáveis de
cações, em função tanto do custo do processo, como acordo com a norma IEC 61131-3. É a ferramenta
eficiência, sendo amplamente utilizada em inúmeras de programação ideal para aplicações de máquinas e
aplicações industriais. Um controle de nı́vel consiste processos de construção de máquinas e integração de
basicamente na medição do volume de um reservató- sistemas. O software é a ferramenta de programação
rio, com aplicações que vão desde o controle de esto- perfeita para todas as aplicações em que seja necessá-
que de certa substância até a identificação de nı́veis rio um CLP ou HMI-CLP poderoso com várias cone-
seguros de armazenamento. Este problema será abor- xões de barramento de campo. O software combina
dado junto a uma teoria de controle clássico que é recursos técnicos sofisticados e fácil manuseio. Além
baseada em dois estados, ligado e desligado, o con- disso, ele é o sistema de programação preferido de
trole ON/OFF. muitos fabricantes.

1
Para o sistema de controle ON/OFF, o elemento
atuante (no caso as botoeiras) tem somente duas po-
sições fixas, que são, em muitos casos, simplesmente
ligado e desligado. O controle de duas posições ou
ON/OFF é relativamente simples e barato e, por essa
razão, é bastante utilizado em sistemas de controle
domésticos e industriais (Ogata, 2010).

3 Metodologia

3.1 Apresentação da cena

No Factory I/O, a cena configurada é chamada de


Filling Tank (Timers), e consiste em um processo de
controle de enchimento de um tanque através de um
controlador de nı́vel ON/OFF. É importante salientar Figura 2: Painel da cena do controle de nı́vel
que foram realizadas modificações na cena pré-pronta, ON/OFF
de forma que ele possua os seguintes itens:
A lógica de programação implementada na lin-
• Um tanque com válvulas para encher e esvaziar
guagem ”texto estruturado”, foi baseada nos seguintes
o tanque;
critérios para implementação:
• Um botão NA Start para encher o tanque; • O sistema de nı́vel é constituı́do de um potenciô-
metro para ajuste do nı́vel desejado (Set Point -
• Um botão NF Stop para desligar o sistema; SP ) em um tanque, um sensor que realimenta a
informação de nı́vel (Process Variable - PV ) para
• Um potenciômetro para o ajuste do Set Point; o CLP e uma válvula que realiza o enchimento
do tanque (Manipulated Variable - MV );
• Um display responsável por mostrar o valor de
Set Point ajustado; • O acionamento ou não da válvula é feito com
base em valores limites calculados pelo CLP de
• Um display responsável por mostrar o valor de acordo com o Set Point ajustado, sendo o limite
nı́vel medido do tanque. superior e o limite inferior de nı́vel estabelecidos
automaticamente na faixa de 10% em torno do
Na Figura 1, é mostrado a descrição da cena com- ponto de ajuste desejado.
pleta, em que são representados o tanque, seus com-
Neste caso de controle de nı́vel, haverá sempre
ponentes, e o painel.
um valor desejado que o usuário insere no dispositivo,
no caso, o preenchimento de lı́quido de 0 a 300 cm no
tanque para que o sistema de controle atue modifi-
cando a vazão das válvulas. A partir disso, o sistema
do tanque vai atuar para que aquela altura seja atin-
gida.
Então a válvula de enchimento ligará até o valor
determinado. Entretanto, após alcançar esse valor, é
necessário que uma nova decisão seja tomada. Caso
contrário, passará muito do valor definido no setpoint.
Nisso, será utilizado um controlador ON/OFF.
Com a leitura do sensor, o sistema funciona de ma-
neira bastante simples. Caso a altura de enchimento
desejada não tenha sido alcançada, a válvula de enchi-
mento continuará ligada. Se a altura de enchimento
desejada foi alcançada, a válvula de enchimento des-
ligará. E essa leitura é feita diversas vezes dentro
de um intervalo de tempo determinado, assegurando
Figura 1: Caracterização da cena do controle de nı́vel
que essa vazão seja mantida após o sistema atingir a
ON/OFF
referência inserida.
No entanto, estes limites para a atuação das vál-
Na Figura 2, tem-se a representação final do pai- vulas para o ligamento e desligamento foi definido
nel, em que é possı́vel verificar os dois botões, os dois através de uma curva de “histerese”. O valor de ±10%
displays, e o potenciômetro. do setpoint supracitado pode ser definido como uma

2
zona morta, pois quando o valor medido está den- • Tank 1 (Level meter): Varável que indica o nı́vel
tro desta zona, o controlador não faz nada, apenas de água no tanque da planta industrial através
quando o valor se move para fora dessa ação é to- de uma tensão de 0 V a 10 V.
mada.
Na Figura 3, é mostrado um exemplo do controle
Tabela 2: Atuadores da planta no software FactoryIO
ON/OFF que será criado. Nele, foi ajustado 200 cm
de altura de lı́quido (setpoint). A zona morta em Nome da variável Tipo de dado
torno do setpoint é de ±10%. Com isso, a válvula PV real
deve ser ligada quando o nı́vel do lı́quido estiver em
SP real
um valor menor que 180 cm de altura de lı́quido e
Stop light boolean
permanecerá ligada até atingir um valor maior que
Start light boolean
220 cm de altura de lı́quido.
Tank 1 (Fill valve) real
Tank 1 (Discharge valve) real

• PV : Variável responsável pelo valor da variável


de processo indicada no display do painel de con-
trole.

• SP : Variável responsável pelo valor da variável


de setpoint no display do painel de controle.

• Stop light: Variável responsável por acionar o si-


naleiro da botoeira de stop.
Figura 3: Exemplo de uma curva de histerese • Start light: Variável responsável por acionar o
sinaleiro da botoeira de start.
3.2 Programação implementada em texto estrutu- • Tank 1 (Fill valve): Variável responsável por
rado controlar a abertura da vávula de entrada do tan-
Inicialmente, para que a programação fosse im- que da planta industrial através de uma tensão
plementada, foram identificadas as variáveis da planta de 0 V a 10 V.
após as modificações realizadas. As variáveis podem
ser vistas nas Tabelas 1 e 2. • Tank 1 (Discharge valve): Variável responsável
por controlar a abertura da válvula de descarga
Tabela 1: Sensores da planta no software FactoryIO do tanque da planta industrial através de uma
tensão de 0 V a 10 V. Nesse caso, foi utilizado
Nome da variável Tipo de dado um valor fixo de 5 V para manter a válvula de
Setpoint real descarga parcialmente aberta (50%).
Start boolean
Também, fora utilizadas duas variáveis auxiliares
Stop boolean
na programação, que podem ser observadas na Tabela
Tank 1 (Flow meter) real
3
Tank 1 (Level meter) real
Tabela 3: Variáveis auxiliares utilizadas no software
• Setpoint: Variável que indica a posição do potên- CodeSYS
ciometro de setpoint através de uma tensão de 0
V a 10 V. Nome da variável Tipo de dado
start pressionado boolean
• Start: Botoeira normalmente aberta (NA) res- stop pressionado boolean
ponsável por iniciar o processo da planta indus-
trial. Envia sinal alto ao CLP quando pressio-
nada. • start pressionado: Variável utilizada para indi-
car se a botoeira de start foi pressionada.
• Stop: Botoeira normalmente fechada (NF) res-
ponsável por parar o processo da planta indus- • stop pressionado: Variável utilizada para indicar
trial. se a botoeira de stop foi pressionada.

• Tank 1 (Flow meter): Variável que indica o fluxo A conexão entre os sensores e atuadores do Fac-
de água na válvula de saı́da através de uma ten- tory I/O com as variáveis declaradas no CodeSYS
são de 0 V a 10 V. pode ser observada na Figura 4.

3
curvas u(t) e y(t) representam a ação de controle, e o
nı́vel do tanque em cm, respectivamente.

10
u(t) [V]
8 y(t) [V]

4
Figura 4: Captura de tela demonstrando a conexão
entre as variáveis no software FactoryIO.
2

A lógica de programação implementada funciona 0


da seguinte forma: quando a botoeira de start é pres- 0 20 40 60 80 100
sionada o valor que está definido no potênciometro de t [s]
setpoint é definido como o a entrada para o processo
de controle. Esse valor também é mostrado no diplay Figura 5: Tensão aplicada na válvula de enchimento
SP do painel de controle da planta em cm para que u(t) e resposta do sistema através do nı́vel y(t), ambos
o operador possa definir de maneira mais fácil o nı́vel em V e em função do tempo.
que deseja setar no tanque.
Quando o nı́vel do tanque, nesse caso a variável de Pra maior facilidade de análise o gráfico foi plo-
processo, atinge um valor maior que 10% do setpoint tado novamente porém com a ação de controle em V
a válvula de entrada é fechada (a entrada da válvula multiplicada por 10 para melhor visualização e a res-
é setada em 0 V ) e quando atinge um valor menor posta do sistema em cm, como pode ser observada na
que 10% do setpoint é aberta (a entrada da válvula Figura 6.
é setada em 10 V ). O valor da variável de processo
também é mostrada em cm no diplay PV para que o
operador possa acompanhar o processo de enchimento 200
e esvaziamento do tanque. u(t)*10 [V]
Caso o setpoint seja definido para o valor de y(t) [cm]
300cm (maior nı́vel do tanque) a programação foi 150
construı́da para que a válvula de entrada seja desli-
gada antes que o a variável de processo utrapasse esse 100
limite fı́sico, obedecendo assim apenas a condição de
histerese em que seu valor seja que 10% do setpoint.
A botoeira de stop atua setando o valor da en- 50
trada da válvula de enchimento do tanque para 0V ,
cessando assim o fluxo de entrada até que o start seja
pressionado novamente. 0
0 20 40 60 80 100
No Apêndice A, a lógica de programação com-
pleta implementada em texto estruturado pode ser t [s]
observada. Figura 6: Tensão aplicada na válvula de enchimento
u(t) em V multiplicado por 10 e resposta do sistema
4 Resultados através do nı́vel y(t) em cm em função do tempo.

Para comprovação do funcionamento da automa- Em seguida, através do software MATLAB, foi


ção implementada foram realizados ensaios para três obtido o valor máximo de 171, 22 cm e o valor mı́-
setpoints: 150 cm, 200 cm e 300 cm. Os dados de en- nimo de 129, 80 cm para o nı́vel do tanque durante o
trada e saı́da foram obtidos do CodeSYS adicionando ensaio, sendo esperado que a válvula de enchimento
um trace, as variáveis foram monitoradas e os gráficos fosse acionada no valor abaixo de 135 cm e desligada
foram plotados com auxı́lio do software MATLAB. em um valor acima de 165 cm.

4.1 Ensaio com setpoint de 150 cm 4.2 Ensaio com setpoint de 200 cm
Para o primeiro ensaio o setpoint foi definido em Para o segundo ensaio o setpoint foi definido em
150 cm e a botoeira de start foi pressionada. A res- 200 cm e a botoeira de start foi pressionada. A res-
posta do sistema pode ser observada na Figura 5. As posta do sistema pode ser observada na Figura 7. As

4
curvas u(t) e y(t) representam a ação de controle, e o a ação de controle, e o nı́vel do tanque em cm, res-
nı́vel do tanque em cm, respectivamente. pectivamente.

10
10
u(t) [V] u(t) [V]
8 y(t) [V]
8 y(t) [V]

6
6

4
4

2
2

0
0 50 100 0
0 50 100 150
t [s]
t [s]
Figura 7: Tensão aplicada na válvula de enchimento
Figura 9: Tensão aplicada na válvula de enchimento
u(t) e resposta do sistema através do nı́vel y(t), ambos
u(t) e resposta do sistema através do nı́vel y(t), ambos
em V e em função do tempo.
em V e em função do tempo.

Novamente, para facilitar a visualização da res-


posta do sistema o gráfico foi plotado novamente com Novamente, para facilitar a visualização da res-
a ação de controle em V multiplicada por 10 e a res- posta do sistema o gráfico foi plotado novamente com
posta do sistema em cm, como pode ser observada na a ação de controle em V multiplicada por 10 e a res-
Figura 8. posta do sistema em cm, como pode ser observada na
Figura 10.
250

200 300
u(t)*10 [V]
y(t) [cm]
150 u(t)*10 [V]
y(t) [cm] 200
100

50 100

0
0 50 100 150
t [s] 0
0 50 100 150
Figura 8: Tensão aplicada na válvula de enchimento t [s]
u(t) em V multiplicado por 10 e resposta do sistema
através do nı́vel y(t) em cm em função do tempo. Figura 10: Tensão aplicada na válvula de enchimento
u(t) em V multiplicado por 10 e resposta do sistema
através do nı́vel y(t) em cm em função do tempo.
Foi obtido como valor máximo 224, 82 cm e o va-
lor mı́nimo de 173, 72 cm para o nı́vel do tanque du-
rante o ensaio, sendo esperado que a válvula de enchi-
mento fosse acionada em um valor abaixo de 180 cm Foi obtido como valor máximo 300 cm, pois o
e desligada em um valor acima de 220 cm. tanque atingiu seu valor máximo e o valor mı́nimo de
261, 99 cm para o nı́vel do tanque durante o ensaio,
sendo esperado que a válvula de enchimento fosse aci-
4.3 Ensaio com setpoint de 300 cm onada em um valor abaixo de 270 cm e desligada em
Para o terceiro ensaio o setpoint foi definido em um valor acima de 300 cm.
300 cm e a botoeira de start foi pressionada. A ação Um vı́deo dos ensaios realizados para obten-
de controle e a resposta do sistema pode ser obser- ção dos dados pode ser visto no seguinte link:
vada na Figura 9. As curvas u(t) e y(t) representam https://youtu.be/jn1bxk8i1jo.

5
5 Conclusões

Por meio da realização do trabalho, foi possı́-


vel compreender detalhadamente o funcionamento da
cena utilizando a linguagem de texto estruturado, es-
colhida para a implementação da lógica de funciona-
mento. Além disso, foi praticável a aplicação de ferra-
mentas e funções de programação adquiridos ao longo
dos ensinamentos teóricos. Também foi possı́vel per-
ceber que para um controle de nı́vel mais simples é
possı́vel implementar um controle de nı́vel ON/OFF
com histerese, que é menos complexo, por exemplo,
que um controlador Proporcional Integral Derivativo
(PID), exigindo menos recursos para ser implemen-
tado. Com isso, habilidades de projeto e noções de
detecção na resolução de problemas foram trabalha-
dos com êxito.
Em suma, o seguinte trabalho apresentou resul-
tados satisfatórios agregando conhecimentos e auxi-
liando no desenvolvimento de todos os contribuintes
em sua realização.

Referências

[1] COMO FUNCIONA o Controlador


ON/OFF?. [S. l.], 2019. Disponı́vel em:
https://edu.ieee.org/br-ufcgras/como-funciona-
o-controlador-on-off/. Acesso em: 15 jul. 2022.

[2] ELECTRICAL4U. On Off Control Controller:


What is it? (Working Principle): What is an
On Off Controller?. [S. l.], 25 out. 2020. Dis-
ponı́vel em: https://www.electrical4u.com/on-
off-control-theory-controller/. Acesso em: 15 jul.
2022.

[3] FRANCHI, C. M.; CAMARGO, V. L. A. de.


Controladores Lógicos Programáveis: Sistemas
Discretos. 2. ed. São Paulo: Érica, 2009.
[4] GEORGINI, M. Automação Aplicada: Descrição
e Implementação de Sistemas Sequenciais com
PLCs. São Paulo: Érica, 2000.
[5] GROOVER, M.P. Automação Industrial e Sis-
temas de Manufatura. 3a Ed. Editora Pearson.
2011.

[6] OGATA, K., Engenharia de Controle Moderno,


Editora Prentice Hall, 5a Edição, 2010, ISBN:
9788576058106
[7] PETRUZELLA, Frank D. Controladores Lógicos
Programáveis. Bookman. 4ª Ed. 2014.

6
A Apêndice Programação implementada no software CodeSYS

1 PROGRAM PLC PRG


2 VAR
3 // S e n s o r e s
4 s e t p o i n t :REAL;
5 l e v e l m e t e r :REAL;
6 s t a r t :BOOL;
7 s t o p :BOOL;
8

9 // Atuadores
10 PV:REAL;
11 SP :REAL;
12 f i l l v a l v e :REAL;
13 d i s c h a r g e v a l v e :REAL: = 5 . 0 ;
14 s t a r t l i g h t :BOOL;
15 s t o p l i g h t :BOOL;
16

17 // A u x i l i a r e s
18 s t a r t p r e s s i o n a d o :BOOL:=FALSE ;
19 s t o p p r e s s i o n a d o :BOOL:=TRUE;
20 END VAR
21

22 PV := l e v e l m e t e r ∗ ( 3 0 0 / 1 0 ) ; // Conversao de V para cm
23 SP := s e t p o i n t ∗ ( 3 0 0 / 1 0 ) ; // Conversao de V para cm
24

25 IF ( s t a r t = TRUE AND s t o p = TRUE) THEN


26 s t a r t p r e s s i o n a d o :=TRUE;
27 s t o p p r e s s i o n a d o :=FALSE ;
28 END IF
29

30 IF ( s t o p = FALSE AND s t a r t = FALSE) THEN


31 s t a r t p r e s s i o n a d o :=FALSE ;
32 s t o p p r e s s i o n a d o :=TRUE;
33 END IF
34

35 IF ( s t a r t p r e s s i o n a d o = TRUE) THEN
36 s t a r t l i g h t :=TRUE;
37 s t o p l i g h t :=FALSE ;
38

39 IF (PV < SP ∗ 0 . 9 ) THEN


40 f i l l v a l v e :=10.0;
41 END IF
42

43 IF (PV > SP ∗ 1 . 1 OR PV = 3 0 0 ) THEN


44 f i l l v a l v e :=0.0;
45 END IF
46

47 END IF
48

49 IF ( s t o p p r e s s i o n a d o = TRUE) THEN
50 s t a r t l i g h t := FALSE ;
51 s t o p l i g h t := TRUE;
52

53 f i l l v a l v e := 0 . 0 ;
54 END IF

Você também pode gostar