• Nenhum resultado encontrado

Universidade Federal de Minas Gerais Escola de Engenharia

N/A
N/A
Protected

Academic year: 2021

Share "Universidade Federal de Minas Gerais Escola de Engenharia"

Copied!
8
0
0

Texto

(1)

Universidade Federal de Minas Gerais

Escola de Engenharia

Departamento de Engenharia Eletrˆonica Laborat´orio de Inform´atica Industrial

11

a

Aula - Programa¸

ao IEC 61131-3 no ambiente CODESYS

Objetivos: Desenvolver programas em SFC sob o ambiente CODESYS.

Atividades Pr´

evias

Leia atentamente, em casa, o texto desta pr´atica, de forma a agilizar os procedimentos a serem executados no laborat´orio.

Projeto utilizando o CODESYS

CODESYS Development System ´e um aplicativo para a programa¸c˜ao de projetos de controle e automa¸c˜ao no ambiente da norma IEC 61131-3. As etapas para o desenvolvimento de um projeto neste aplicativo s˜ao as seguintes:

1 Cria¸c˜ao de um novo projeto

1.1. Abra o aplicativo CODESYS atrav´es do menu iniciar (3S CODESYS →CODESYS → CO-DESYS V3.5 SP3 Patch5 ) ou do ´ıcone na ´area de trabalho do computador.

1.2. Crie um novo projeto em comp → New Project... CtrlN. Na janela que se abrir, conforme mostra a figura 1, selecione a op¸c˜ao Standard project, defina o nome do projeto (Name), o diret´orio para armazen´a-lo (Location) e selecione OK.

Figura 1: Janela para criar um novo projeto

1.3. Uma nova janela ser´a aberta (fig 2): selecione o dispositivo CODESYS Control Win V3 (este dispositivo permite que o aplicativo execute o projeto em um ambiente virtual, sem a neces-sidade de definir uma configura¸c˜ao real de hardware de CLP), e a linguagem do programa PLC PRG. No nosso caso, ser´a SFC. Por default, o aplicativo cria uma ´arvore hier´arquica (fig. 3) com uma tarefa principal, denominada PLC PRG, que ´e uma POU do tipo Program, cujo nome poder´a ser alterado posteriormente.

(2)

Figura 2: Janela para sele¸c˜ao do dispositivo

Figura 3: ´Arvore hier´arquica inicial da configura¸c˜ao do projeto

seu projeto (no nosso caso seqfull). Para isso basta clicar no nome que se deseja alterar. Lembre-se de mudar nos dois pontos da ´arvore hier´arquica onde o nome PLC PRG aparece. 1.5. Salve seu projeto, e n˜ao se esque¸ca de salv´a-lo ao final de cada uma das pr´oximas etapas.

2 Cria¸c˜ao de POUs

Vocˆe pode criar quantas POUs forem necess´arias para o seu projeto. Para isso, pressione o bot˜ao direito do mouse em Application e utilize o caminho Add Object → POU. Defina o nome da POU, o seu tipo (Program, Function Block ou Function) e a linguagem de implementa¸c˜ao. Lembre-se que se a POU for do tipo Function ´e preciso definir tamb´em o tipo de valor de retorno da fun¸c˜ao.

3 Edi¸c˜ao de POUs

Para editar um POU basta clicar em seu nome que o editor da linguagem selecionada na cria¸c˜ao da POU ser´a aberta. Independente da linguagem selecionada, a janela do editor ´e dividida em duas partes. A parte superior ´e destinada `a declara¸c˜ao das vari´aveis locais, e a parte inferior ao algoritmo da POU, como mostrado na figura 4.

(3)

3a Declara¸c˜ao de vari´aveis locais

A declara¸c˜ao das vari´aveis locais de uma POU pode ser feita editando-se as vari´aveis direta-mente na parte superior do editor ou usando o recurso de auto-declara¸c˜ao. Neste segundo caso, quando o nome de uma vari´avel ainda n˜ao declarada for editada na parte inferior destinada ao algoritmo, uma janela surgir´a, como mostrado na figura 5, para auxiliar na declara¸c˜ao.

Figura 5: Janela para criar uma nova vari´avel

3b Declara¸c˜ao de vari´aveis globais

No caso de vari´aveis globais a serem manipuladas por duas ou mais POUs de um dado projeto, a declara¸c˜ao das mesmas ´e feita clicando-se com o bot˜ao direito do mouse em Application e selecionando-se Add Object → Global Variable List ; ser´a ent˜ao aberta uma nova janela na qual define-se o nome da Lista de vari´aveis globais. Este nome ser´a adicionado `a ´arvore do projeto e, clicando-se no mesmo, ser´aberta uma aba para a declara¸c˜ao das vari´aveis globais desta lista (figura 6)

Figura 6: Janela para sele¸c˜ao do dispositivo

3c Edi¸c˜ao das POUs

A edi¸c˜ao de uma POU nas linguagens textuais (ST e IL) ´e de formato livre, bastando escrever o algoritmo. Para facilitar, o editor oferece recursos interativos que auxiliam na edi¸c˜ao.

A edi¸c˜ao de uma POU nas linguagens gr´aficas (LD, FDB e SFC) ´e realizada por meio do recurso “arrasta e cola” dos elementos de programa¸c˜ao que s˜ao exibidos na janela ToolBox que se abre juntamente com o editor.

Ao utilizar as linguagens LD e FDB, os elementos de programa¸c˜ao vir˜ao associados ao s´ımbolo “???” que deve ser substitu´ıdo por uma vari´avel ou por valores constantes.

(4)

Action ou AddObject → Transition. Na janela que se abrir, defina um nome e a linguagem de implementa¸c˜ao. Depois basta editar o algoritmo na linguagem selecionada.

Al´em disso, as transi¸c˜oes em SFC tamb´em podem ser editadas diretamente substituindo-se o termo TRUE por uma vari´avel booleana ou por uma express˜ao simples que resulte em um valor booleano.

Por fim, para associar um objeto criado como a¸c˜ao ou transi¸c˜ao ao elemento gr´afico do editor, clique no s´ımbolo . Selecione o objeto desejado na janela que se abrir.

4 Configura¸c˜ao das tarefas

As diversas POUs que foram criadas e editadas, podem ser organizadas em diferentes tarefas (tasks) que, por sua vez, podem ser executadas das seguintes formas:

• Cyclic: A tarefa ser´a processada ciclicamente de acordo com a defini¸c˜ao de um tempo de ciclo determinado no campo Interval.

• Event : A tarefa ser´a iniciada assim que a vari´avel do tipo BOOL definida no campo Event perceber uma borda de subida.

• Freewheeling: A tarefa ser´a processada livremente assim que o programa for iniciado e, no final de sua execu¸c˜ao, ser´a reiniciada automaticamente em um loop cont´ınuo.

• Status: A tarefa ser´a iniciada assim que a vari´avel do tipo BOOL definida no campo Event tiver o valor TRUE.

Para organizar as diversas POUs em suas respectivas tarefas, como mostrado na figura 7, fa¸ca:

Figura 7: Tela t´ıpica para configura¸c˜ao de tarefas

4.1. Configure inicialmente a tarefa principal. Para isso dˆe um duplo clique em MainTask. Na janela que se abrir do lado direito do editor, selecione o campo Type de acordo com a forma de execu¸c˜ao definida no seu projeto (no nosso caso, Freewheeling).

4.2. Use o campo Add Call para incluir outras POUs que tiverem o mesmo tipo de execu¸c˜ao. 4.3. Caso necess´ario, crie outras tarefas. Para isso pressione o bot˜ao direito do mouse em Task

Configuraton e utilize o caminho Add Object → Task. Na janela que se abrir, defina o nome para a tarefa. Ap´os criada a nova tarefa, n˜ao se esque¸ca de definir o campo type e incluir as POUs no campo Add Call.

(5)

5 Compila¸c˜ao do projeto

Compile seu projeto antes de test´a-lo. Para isso siga o caminho Build → Build F11. Analise os erros e as mensagens que forem exibidas, e corrija o projeto caso seja necess´ario.

6 Cria¸c˜ao do aplicativo

Mesmo em ambiente de simula¸c˜ao, ´e preciso criar o aplicativo do projeto e fazer download no dispositivo que foi definido na p´agina 1, item 1.3. Para isso siga os seguintes passos:

6.1. Marque a op¸c˜ao de simula¸c˜ao: Online → Simulation

6.2. Crie a aplica¸c˜ao: Online → Create boot application. Na janela que se abrir salve a aplica¸c˜ao no mesmo diret´orio onde o projeto est´a sendo salvo.

6.3. Fa¸ca o download : Online → Multiple Download ... e confirme OK na janela que se abrir.

7 Simula¸c˜ao e teste do Projeto

Para testar o projeto utilize os recursos de simula¸c˜ao dispon´ıveis, da seguinte forma:

7.1. Abra a janela de declara¸c˜ao das vari´aveis globais e das POUs que se deseja verificar o funcio-namento.

7.2. Fa¸ca o login seguindo o caminho Online → Login

7.3. Ajuste as janelas abertas para visualiza¸c˜ao seguindo o seguinte caminho: Window → New Horizontal Tab Group ou Window → New Vertical Tab Group

7.4. Inicialize a aplica¸c˜ao em Debug → Start.

A partir deste ponto sua aplica¸c˜ao j´a estar´a sendo executada.

Para alterar online o valor de uma var´avel, utilize o campo Prepared value na janela de vari´aveis para editar um novo valor. Ap´os a edi¸c˜ao deste novo valor, fa¸ca a carga utilizando o seguinte caminho: Debug → Write Values.

Se quiser alterar ou corrigir a aplica¸c˜ao, utilize antes o comando Stop seguido de Logout.

Observa¸c˜oes Importantes

O aplicativo CODESYS oferece uma s´erie de recursos de edi¸c˜ao, como, por exemplo, ´ıcones, teclas de shortcuts e janelas popup, para agilizar a edi¸c˜ao e a manipula¸c˜ao de informa¸c˜oes. Neste roteiro, esses recursos praticamente n˜ao foram utilizados, mas vocˆe pode us´a-los `a medida que for conhecendo melhor o aplicativo.

Neste roteiro trabalhamos apenas com simula¸c˜ao. Utilize a referˆencia [1] para que o CODESYS opere como SoftPLC e comunica¸c˜ao via cliente/servidor OPC.

Atividades

Ap´s inicializar o aplicativo do CODESYS e criar o novo projeto, dever˜ao ser implementadas as tarefas e programas que executem a opera¸c˜ao autom´atica de um reservat´orio industrial, dotado de um agitador interno [2].

Para implementar os programas referentes a este projeto no ambiente CODESYS, inicialmente crie uma lista de vari´aveis globais (Application → Add Object → Global Variable list...) e defina a Base de Dados como indicado na Tabela 1.

(6)

Tabela 1: Base de dados do Projeto Nome Tipo Descri¸c˜ao

executa seq Boolean Parte a seq¨uˆencia autom´atica liga agitador Boolean Liga o agitador

valv entrada Boolean Abre/fecha v´alvula de entrada valv saida Boolean Abre/fecha v´alvula de sa´ıda reserv vazio Boolean Status de “reservat´orio vazio” reserv cheio Boolean Status de “reservat´orio cheio”

nivel Integer N´ıvel do reservat´orio (faixa de 0 a 100) seqstatus String Tamanho: 40 - Status da seq¨uˆencia

O projeto deve conter as seguintes POUs:

• seqfull - Program em SFC que implementa uma sequˆencia autom´atica de chamada de um algoritmo que executa o enchimento/esvaziamento de um reservat´orio. Essa POU ser´a a Main Task e deve ser configurada para ser executada livremente.

• nivelR - Program em FBD que deve ser configurado para ser executado livremente e gera os status do reservat´orio (reserv vazio para nivel ≤ 0 e reserv cheio para nivel ≥ 100).

• encheR - A¸c˜ao de seqfull em SFC que deve ter o qualificador N e implementa uma sequˆencia au-tom´atica de enchimento/esvaziamento de um reservat´orio.

• simul - Program em ST que deve ser configurado para ser executado ciclicamente com tempo de 200ms e implementa uma simula¸c˜ao l´ogica de n´ıvel do reservat´orio (se valv entrada aberta, ent˜ao nivel:=nivel+1; se valv saida aberta ent˜ao nivel:=nivel-1; obs: sature os limites m´aximo e m´ınimo).

O programa seqfull dever´a implementar a seguinte sequˆencia:

1. Inicialmente o sistema permanece no estado desligado.

2. Verifica se o operador deu a partida no sistema (ou seja, se executa seq ´e verdadeiro).

3. Caso a condi¸c˜ao 2 seja verdadeira, ativar a a¸c˜ao encheR que ir´a controlar o enchimento ou esvazi-amento do reservat´orio, e escrever o status da sequˆencia na vari´avel seqstatus (‘Partindo’ ).

4. Verifica se a sequˆencia foi desabilitada (desligada) pelo operador (ou seja, se executa seq ´e falso).

5. Caso a condi¸c˜ao 4 seja verdadeira, parar tudo, ou seja, fechar as v´alvulas, desligar o agitador e escrever o status da sequˆencia na vari´avel seqstatus (‘Desabilitada’ ).

6. Retornar ao passo 1.

O programa encheR dever´a implementar a seguinte sequˆencia:

1. Verifica se o reservat´orio est´a vazio (ou seja, se reserv vazio ´e verdadeiro).

2. Caso esteja, abrir a v´alvula de entrada para encher o reservat´orio e escrever o status da sequˆencia na vari´avel seqstatus (‘Enchendo’ ).

3. Quando o estado de reserv cheio for verdadeiro, fechar a v´alvula de entrada e ligar o agitador por 10s, al´em de escrever o status da sequˆencia na vari´avel seqstatus (‘Agitando’ ).

4. Decorridos os 10s, desligar o agitador, abrir a v´alvula de sa´ıda para esvaziar o reservat´orio e escrever o status da sequˆencia na vari´avel seqstatus (‘Esvaziando’ ).

5. Verificar se o reservat´orio est´a vazio (ou seja, se reserv vazio ´e verdadeiro). Caso esteja, retornar ao passo 1.

(7)

Teste seu programa minuciosamente. ´E comum, em automa¸c˜ao industrial, ignorarmos (por descuido ou desconhecimento) algumas situa¸c˜oes operacionais importantes durante o projeto, as quais por´em podem ser reveladas mediante um teste cuidadoso.

Roteiro de a¸

oes

O prop´osito desta se¸c˜ao ´e auxiliar a cria¸c˜ao e desenvolvimento da atividade proposta, atrav´es de re-ferˆencias apropriadas aos t´opicos 1 2 3 3a . . . contidos na se¸c˜ao inicial “Projeto utilizando o CODESYS”.

1. Cria¸c˜ao da estrutura do projeto

1.1. Crie o projeto. 1

1.2. Adicione as POUs seqfull, nivelR e simul `a ´arvore do projeto. 2

1.3. Adicione as vari´aveis globais descritas na tabela 1. 3b

1.4. Configure as tarefas em conformidade com as POUs presentes no projeto. 4

Ao final desta etapa, a ´arvore de seu projeto deve ficar parecida com a figura 8.

Figura 8: ´Arvore do projeto

2. Edi¸c˜ao dos programas 3a 3c

2.1. Na ´arvore do projeto, clique no programa nivelR para abrir o editor de FBD. Selecione os objetos desejados na regi˜ao direita designada como Toolbox e arraste-os para a linha (network ) de edi¸c˜ao, inserindo os mesmos nas regi˜oes permitidas (aquelas real¸cadas com a cor verde).

2.2. Edite em seguida o programa simul empregando a linguagem ST.

2.3. Adicione a a¸c˜ao de nome encheR ao programa seqfull, cuidando para que a linguagem da mesma seja SFC.

2.4. Para editar o programa seqfull e, posteriormente, a a¸c˜ao encheR, observe as seguintes dicas: • N˜ao ´e poss´ıvel editar diretamente os elementos gr´aficos correspondentes `as a¸c˜oes inseridas em

um programa SFC. Vocˆe deve inicialmente criar e editar as a¸c˜oes em separado, e depois inserir o nome das mesmas nos respectivos elementos gr´aficos do programa SFC.

(8)

• Transi¸c˜oes, ao contr´ario, devem ter suas express˜oes booleanas digitadas diretamente no campo edit´avel `a direita das mesmas.

• N˜ao ´e poss´ıvel desenhar diretamente linhas de conex˜ao entre passos e transi¸c˜oes. Estas co-nex˜oes devem ser realizadas inserindo-se elementos gr´aficos de “salto” (jump), especificando, nos mesmos, o identificador do passo de destino.

3. Compila¸c˜ao, gera¸c˜ao do aplicativo e simula¸c˜ao Siga atentamente as instru¸c˜oes contidas em 5 6 7 .

Durante a simula¸c˜ao de seu projeto, vocˆe verificar´a que, no CODESYS, uma a¸c˜ao escrita em SFC (no nosso caso, encheR) sempre se inicia no mesmo passo em que foi abandonada, na execu¸c˜ao anterior. Para contornar esta dificuldade, lembre-se que cada passo em SFC possui uma vari´avel associada <nome_do_passo>.X que indica se o passo est´a ativo (= 1) ou n˜ao (= 0). Esta vari´avel pode ser escrita. Use este recurso para permitir que a a¸c˜ao em SFC sempre recomece em seu passo inicial.

Referˆencias

[1] Abreu, L. F. e Michel, H. C. C.; Procedimento de configura¸c˜ao do OPC-Server usando CodeSys; Universidade Federal de Minas Gerais; Departamento de Engenharia Eletrˆonica, 2014.

[2] Braga, Carmela M. P. e Mendes, Luiz T. S.; 11a Aula - Programa¸ao IEC 61131-3 no ambiente

Referências

Documentos relacionados

Preenchimento, por parte dos professores, do quadro com os índices de aproveitamento (conforme disponibilizado a seguir). Tabulação dos dados obtidos a partir do

O capítulo I apresenta a política implantada pelo Choque de Gestão em Minas Gerais para a gestão do desempenho na Administração Pública estadual, descreve os tipos de

pesquisa dentro das escolas estaduais de Minas Gerais, ainda que por amostragem, os quais sejam capazes de contribuir com o Sistema na redução do número dos

Além desta verificação, via SIAPE, o servidor assina Termo de Responsabilidade e Compromisso (anexo do formulário de requerimento) constando que não é custeado

De acordo com o Consed (2011), o cursista deve ter em mente os pressupostos básicos que sustentam a formulação do Progestão, tanto do ponto de vista do gerenciamento

O presente trabalho elege como temática a adesão das escolas municipais de Belo Horizonte ao Projeto de Correção de Fluxo Entrelaçando, desde a sua implementação no ano

Muito embora, no que diz respeito à visão global da evasão do sistema de ensino superior, o reingresso dos evadidos do BACH em graduações, dentro e fora da

Para Azevedo (2013), o planejamento dos gastos das entidades públicas é de suma importância para que se obtenha a implantação das políticas públicas, mas apenas