Você está na página 1de 4

1

Universidade Federal de Minas Gerais

Escola de Engenharia

Departamento de Engenharia Eletrˆonica

Laborat´orio de Inform´atica Industrial 11 a Aula - Programa¸c˜ao IEC 61131-3 no ambiente ISaGRAF

Objetivos: Desenvolver programas em SFC sob o ambiente ISaGRAF.

Regras de Execu¸c˜ao:

O ISaGRAF ´e um sistema s´ıncrono. Todas as opera¸c˜oes s˜ao disparadas por um rel´ogio. A dura¸c˜ao b´asica do rel´ogio ´e chamada de tempo de ciclo.

A hierarquia dos programas ´e dividida em 4 se¸c˜oes ou grupos: Begin, Sequential, End e Functions . As opera¸c˜oes b´asicas processadas durante um ciclo s˜ao:

b´asicas processadas durante um ciclo s˜ao: Figura 1: Ciclo de execu¸c˜ao do ISaGRAF Os programas das

Figura 1: Ciclo de execu¸c˜ao do ISaGRAF

Os programas das se¸c˜oes BEGIN e END descrevem opera¸c˜oes c´ıclicas. Eles n˜ao dependem do tempo. Os programas da se¸c˜ao SEQUENTIAL descrevem opera¸c˜oes seq¨uenciais, onde a vari´avel tempo aparece explicitamente para distinguir as opera¸c˜oes b´asicas.

Os programas da se¸c˜ao BEGIN s˜ao sistematicamente executados no in´ıcio de cada ciclo de execu¸c˜ao. Os programas da se¸c˜ao SEQUENTIAL s˜ao executados com base nas regras dinˆamicas de SFC ou FC (e ob- viamente implementados em uma destas linguagens). Os programas da se¸c˜ao END s˜ao sistematicamente executados a cada fim de de ciclo de execu¸c˜ao. Programas das se¸c˜oes BEGIN e END n˜ao podem ser escritos nas linguagens SFC e FC.

Laborat´orio de Inform´atica Industrial - Profs. Carmela M . P. Braga e Luiz T. S. Mendes - DELT/UFMG - 2008

2

Programas da se¸c˜ao FUNCTIONS s˜ao sub-programas que podem ser chamados por outro programa no projeto. Um programa da se¸c˜ao FUNCTION pode chamar outro programa desta se¸c˜ao.

O uso das diferentes se¸c oes n˜ao ´e obrigat´orio. Por exemplo, um programa po de ser totalmente executado

apenas na se¸c˜ao BEGIN.

Projeto de Controle em Ambiente ISaGRAF

O ISaGRAF ´e uma ferramenta orientada a projetos. Isto significa que um dado projeto pode conter um

ou mais programas, os quais podem ser totalmente independentes entre si ou, ao contr´ario, representarem diferentes m´odulos de uma mesma aplica¸c˜ao. As etapas de desenvolvimento de uma apl ica¸c˜ao de controle sob o ISaGRAF s˜ao as seguintes:

1.

Iniciar o programa ISaGRAF, selecionando Menu Iniciar Programas Projects . O ISaGRAF apresentar´a sua janela principal, denominada Project Management .

2.

Selecionar o diret´orio de trabalho:

Selecione File Select Project Group e, na janela apresentada, clique na op¸c˜ao New Group .

Na nova janela apresentada, clique bo bot˜ao de Browse e selecione seu diret´orio de trabalho usual. Em seguida, digite EX1 na caixa Name e clique no bot˜ao OK.

Clique no bot˜ao Select da janela anteriormente aberta.

3.

Criar projeto: no menu da janela de Project Management , selecionar File New , dando nome ao projeto na janela que se abrir´a. Ajustar a op¸c˜ao IO Configuration para None .

4.

Ap´os isto, abrir o projeto com duplo clique no nome, ou selecionando File Open ;

5.

Criar a Base de Dados selecionando File Dictionary, e ent˜ao declarando as vari´aveis e seus tipos;

6.

Criar programa (quantos desejar dentro do projeto), definindo, na cria¸c˜ao do mesmo, a se¸c˜ao de que far´a parte, bem como a linguagem de programa¸c˜ao a ser utilizada no seu desenvolvimento e, no caso de programas em SFC, a hierarquia desejada (op¸c˜ao child of). Para tal, selecionar File New ;

7.

Editar o(s) programa(s);

8.

Verificar erros de sintaxe do programa, selecionando-se Make Verify, ou clicando no ´ıcone corres- pondente na barra de ferramentas;

9.

Executar a conex˜ao de I/O, que ´e dependente do hardware externo de aquisi¸c˜ao. Este passo ´e mais complexo, sendo detalhado a seguir:

Selecionar Project I/O connection, ou clicar no ´ıcone correspondente na segunda linha do menu. Uma nova janela se abrir´a, onde os n´umeros `a esquerda da nova janela indicam os slots onde ´e poss´ıvel inserir cart˜oes de E/S no PC.

Clicando-se em um destes n´umeros, abre-se uma segunda janela com as op¸c˜oes dispon´ıveis . Deslize a barra de rolagem desta janela, para visualizar os “cart˜oes” de simula¸c˜ao existentes (Simulate analog inputs , etc.)

Selecionar uma das op¸c˜oes de simula¸c˜ao e clicar OK. Uma terceira janela ser´a aberta , mostran- do `a direita os pontos de E/S pass´ıveis de conex˜ao. Clique em um deles e conecte a va ri´avel desejada da Base de Dados ao mesmo.

10.

Compilar o programa, selecionando Make Make Application ou clicando no ´ıcone correspondente na barra de ferramentas;

11.

Simular o programa, selecionando Debug Simulate ou clicando no ´ıcone correspondente na barra de ferramentas. Para definir previamente quais programas ser˜ao abertos no momento da simula¸c˜ao, selecionar Debug Workspace e definir quais programas devem ser abertos.

Laborat´orio de Inform´atica Industrial - Profs. Carmela M . P. Braga e Luiz T. S. Mendes - DELT/UFMG - 2008

3

Atividades

Dever´a ser desenvolvido um projeto que execute a opera¸c˜ao autom´atica de um reserva t´orio industrial, dotado de um agitador interno.

Para implementar os programas referentes a este projeto no ambiente ISaGRAF, defina a seguinte Base de Dados no dicion´ario do seu projeto. Na defini¸c˜ao das vari´aveis, deixe o campo Network Address em branco.

Nome

Tipo

Modo

Descri¸c˜ao

executa seq

Boolean

Internal

Parte a seq¨uˆencia autom´atica Liga o agitador Abre/fecha v´alvula de entrada Abre/fecha v´alvula de sa´ıda Status de “reservat´orio vazio” Status de “reservat´orio cheio” N´ıvel do reservat´orio (faixa de 0 a 100) Tamanho: 40 - Status da seq¨uˆencia

liga agitador

Boolean

Output

valv entrada

Boolean

Output

valv saida

Boolean

Output

reserv vazio

Boolean

Output

reserv cheio

Boolean

Output

nivel

Integer

Output

seqstatus

Message

Output

O

projeto deve conter os seguintes programas:

nivelR - BEGIN (FBD) - Gera os status do reservat´orio (reserv vazio (nivel = 0) e reserv cheio (nivel >=100)).

seqfull - SEQUENTIAL - Implementa uma seq¨uˆencia autom´atica de chamada de um programa de enchimento/esvaziamento de um reservat´orio (programa-pai).

encheR - SEQUENTIAL - Implementa uma seq¨uˆencia autom´atica de enchimento/esvaziament o de um reservat´orio (programa-filho).

simul - END (ST) - 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;).

O

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

1. Inicialmente o sistema permanece no estado desligado.

2. Verifica se 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 o programa-filho encheR que ir´a controlar o enchimento ou esvaziamento do reservat´orio, e escrever o status da seq¨uˆencia na vari´avel seqstatus (’Partindo’ ).

4. Verifica se a seq¨uˆ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 seq¨uˆ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 seq¨uˆ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 seq¨uˆ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 seq¨uˆ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.

Laborat´orio de Inform´atica Industrial - Profs. Carmela M . P. Braga e Luiz T. S. Mendes - DELT/UFMG - 2008

4

´

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.

˜

OBSERVAC¸ OES IMPORTANTES SOBRE O ISaGRAF:

A l´ogica de cada estado do programa em SFC, quando descrita em ST (texto estruturado), deve ser encapsulada entre o par de declara¸c˜oes ACTION(qualificador ) e END ACTION, onde qualificador descreve um qualificador opcional para a a¸c˜ao. Os qualificadores mais freq¨uentemente usados s˜ao o N, que indica que a a¸c˜ao ser´a executada continuamente enquanto o estado estiver ativo, e o P, que indica uma a¸c˜ao pulsada (no ISaGRAF, ´e executada apenas uma vez quando o estado for ativado). Exemplo:

ACTION(N):

x:= x+1; desligado := FALSE; END_ACTION;

Observe que as palavras-chave ACTION e END ACTION n˜ao podem ser usadas num programa declarado na linguagem ST.

Para facilitar a constru¸c˜ao da l´ogica, podem ser usados, se necess´ario, est ados vazios (sem nenhuma a¸c˜ao definida) e transi¸c˜oes vazias (sempre avaliadas como TRUE neste caso).

A vari´avel interna que acumula o tempo decorrido num dado estado ´e designada, no ISaGRAF, por GSn.T onde n corresponde ao n´umero do estado. Quando o estado torna-se desativado, esta vari´avel passa a ter valor indefinido. Por exemplo, para descrever a transi¸c˜ao do estado 2 para o estado 3 de um programa hipot´etico em SFC, poder-se-ia empregar a seguinte express˜ao :

(FUN = TRUE) and (GS2.T < T#10s);

Note, no exemplo anterior, o uso do prefixo ‘T#’, que indica as constantes do tipo de dados TIME.

O ISaGRAF permite a constru¸c˜ao de estruturas hier´arquicas de programas SFC, onde um programa

outros programas SFC “filhos”. Para tal, ´e importante

especificar, na cria¸c˜ao dos programas, a hierarquia apropriada. As regras v´alidas nesta hierarquia s˜ao:

Programas SFC que n˜ao tˆem um “pai” s˜ao chamados programas principais (main SFC pro- grams).

Programas-pai s˜ao ativados pelo sistema quando a aplica¸c˜ao ´e iniciada.

Um programa pode ter v´arios programas-filhos.

Um programa-filho n˜ao pode ter mais de um programa-pai.

Um programa-filho s´o pode ser controlado por seu programa-pai.

Um programa-pai n˜ao pode controlar os filhos de seus pr´oprios programas-filhos.

A ativa¸c˜ao/desativa¸c˜ao do programa-filho pode ser feita de duas formas:

ACTION, na forma prog filho(N | S | R). Esta forma

“pai” pode controlar (disparar, encerrar

)

1. Fora do bloco de a¸c˜oes

ACTION

END

´e usualmente a mais simples.

2. Dentro de um bloco de a¸c˜oes do ISaGRAF.

ACTION

END

ACTION atrav´es das fun¸c˜oes GSTART e GKILL

Na primeira forma, o qualificador N indica que o programa-filho inicia-se quando o passo torna-se ativo, e encerra-se quando o passo torna-se inativo. O qualificador S indica que o programa-filho ´e iniciado quando o passo torna-se ativo, e continua sua execu¸c˜ao quando o passo ´e desativado. O qualificador R encerra o programa-filho quando o passo ´e ativado.

Bibliografia

Conte´udos do HELP do ISaGRAF, V. 3.30, 1990-1998, CJ International.

Laborat´orio de Inform´atica Industrial - Profs. Carmela M . P. Braga e Luiz T. S. Mendes - DELT/UFMG - 2008