Anda di halaman 1dari 5

1

Universidade Federal de Minas Gerais


Escola de Engenharia
Departamento de Engenharia Eletrônica
Laboratório de Informática Industrial
11a Aula - Programação IEC 61131-3 no ambiente ISaGRAF
Objetivos: Desenvolver programas em SFC sob o ambiente ISaGRAF.

Regras de Execução:
O ISaGRAF é um sistema sı́ncrono. Todas as operações são disparadas por um relógio. A duração básica
do relógio é chamada de tempo de ciclo.

A hierarquia dos programas é dividida em 4 seções ou grupos: Begin, Sequential, End e Functions. As
operações básicas processadas durante um ciclo são:

Figura 1: Ciclo de execução do ISaGRAF

Os programas das seções BEGIN e END descrevem operações cı́clicas. Eles não dependem do tempo.
Os programas da seção SEQUENTIAL descrevem operações seqüenciais, onde a variável tempo aparece
explicitamente para distinguir as operações básicas.

Os programas da seção BEGIN são sistematicamente executados no inı́cio de cada ciclo de execução. Os
programas da seção SEQUENTIAL são executados com base nas regras dinâmicas de SFC ou FC (e ob-
viamente implementados em uma destas linguagens). Os programas da seção END são sistematicamente
executados a cada fim de de ciclo de execução. Programas das seções BEGIN e END não podem ser
escritos nas linguagens SFC e FC.

Laboratório de Informática Industrial - Profs. Carmela M. P. Braga e Luiz T. S. Mendes - DELT/UFMG - 2008
2

Programas da seção FUNCTIONS são sub-programas que podem ser chamados por outro programa no
projeto. Um programa da seção FUNCTION pode chamar outro programa desta seção.

O uso das diferentes seç oes não é obrigatório. Por exemplo, um programa pode ser totalmente executado
apenas na seção BEGIN.

Projeto de Controle em Ambiente ISaGRAF


O ISaGRAF é 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ário, representarem
diferentes módulos de uma mesma aplicação. As etapas de desenvolvimento de uma aplicação de controle
sob o ISaGRAF são as seguintes:

1. Se você estiver num computador com Windows 7, é necessário primeiro executar a máquina vir-
tual do Windows XP: selecione Menu Iniciar → Todos os programas → Windows Virtual PC →
Windows XP Mode. Do contrário, pule para o passo 2.

2. Iniciar o programa ISaGRAF, selecionando Menu Iniciar → Programas→Projects. O ISaGRAF


apresentará sua janela principal, denominada Project Management. (Atenção: no caso do Windows
7, este e todos os demais procedimentos a seguir deverão ser feitos na janela do Windows XP Mode).

3. Selecionar o diretório de trabalho:

• Selecione File→Select Project Group e, na janela apresentada, clique na opção New Group.
• Na nova janela apresentada, clique bo botão de Browse e selecione seu diretório de trabalho
usual. Em seguida, digite EX1 na caixa Name e clique no botão OK.
• Clique no botão Select da janela anteriormente aberta.

4. Criar projeto: no menu da janela de Project Management, selecionar File→New , dando nome ao
projeto na janela que se abrirá. Ajustar a opção IO Configuration para None.

5. Após isto, abrir o projeto com duplo clique no nome, ou selecionando File→Open;

6. Criar a Base de Dados selecionando File→Dictionary, e então declarando as variáveis e seus tipos;

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

8. Editar o(s) programa(s);

9. Verificar erros de sintaxe do programa, selecionando-se Make→Verify, ou clicando no ı́cone corres-


pondente na barra de ferramentas;

10. Executar a conexão de I/O, que é dependente do hardware externo de aquisição. Este passo é 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á, onde os números à esquerda da nova janela indicam os slots
onde é possı́vel inserir cartões de E/S no PC.
• Clicando-se em um destes números, abre-se uma segunda janela com as opções disponı́veis.
Deslize a barra de rolagem desta janela, para visualizar os “cartões” de simulação existentes
(Simulate analog inputs, etc.)
• Selecionar uma das opções de simulação e clicar OK. Uma terceira janela será aberta, mostran-
do à direita os pontos de E/S passı́veis de conexão. Clique em um deles e conecte a variável
desejada da Base de Dados ao mesmo.

11. Compilar o programa, selecionando Make→Make Application ou clicando no ı́cone correspondente


na barra de ferramentas;

Laboratório de Informática Industrial - Profs. Carmela M. P. Braga e Luiz T. S. Mendes - DELT/UFMG - 2008
3

12. Simular o programa, selecionando Debug→Simulate ou clicando no ı́cone correspondente na barra


de ferramentas. Para definir previamente quais programas serão abertos no momento da simulação,
selecionar Debug→Workspace e definir quais programas devem ser abertos.
13. Ao encerrar suas atividades no computador, se você estiver no Windows 7, desligue a máquina
virtual do Windows XP: na barra superior da janela do Windows XP Mode, selecione Ação →
Fechar.

Atividades
Deverá ser desenvolvido um projeto que execute a operação automática de um reservatório 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ário do seu projeto. Na definição das variáveis, deixe o campo Network Address em
branco.

Nome Tipo Modo Descrição


executa seq Boolean Internal Parte a seqüência automática
liga agitador Boolean Output Liga o agitador
valv entrada Boolean Output Abre/fecha válvula de entrada
valv saida Boolean Output Abre/fecha válvula de saı́da
reserv vazio Boolean Output Status de “reservatório vazio”
reserv cheio Boolean Output Status de “reservatório cheio”
nivel Integer Output Nı́vel do reservatório (faixa de 0 a 100)
seqstatus Message Output Tamanho: 40 - Status da seqüência

O projeto deve conter os seguintes programas:


• nivelR - BEGIN (FBD) - Gera os status do reservatório (reserv vazio (nivel = 0) e reserv cheio
(nivel >=100)).
• seqfull - SEQUENTIAL - Implementa uma seqüência automática de chamada de um programa
de enchimento/esvaziamento de um reservatório (programa-pai).
• encheR - SEQUENTIAL - Implementa uma seqüência automática de enchimento/esvaziamento de
um reservatório (programa-filho).
• simul - END (ST) - Implementa uma simulação lógica de nı́vel do reservatório (se valv entrada
aberta, então nivel:=nivel+1; se valv saida aberta então nivel:=nivel-1;).

O programa seqfull deverá implementar a seguinte sequência:


1. Inicialmente o sistema permanece no estado desligado.
2. Verifica se se o operador deu a partida no sistema (ou seja, se executa seq é verdadeiro).
3. Caso a condição 2 seja verdadeira, ativar o programa-filho encheR que irá controlar o enchimento
ou esvaziamento do reservatório, e escrever o status da seqüência na variável seqstatus (’Partindo’ ).
4. Verifica se a seqüência foi desabilitada (desligada) pelo operador (ou seja, se executa seq é falso).
5. Caso a condição 4 seja verdadeira, parar tudo, ou seja, fechar as válvulas, desligar o agitador e
escrever o status da seqüência na variável seqstatus (’Desabilitada’ ).
6. Retornar ao passo 1.

O programa encheR deverá implementar a seguinte sequência:


1. Verifica se o reservatório está vazio (ou seja, se reserv vazio é verdadeiro).
2. Caso esteja, abrir a válvula de entrada para encher o reservatório e escrever o status da seqüência
na variável seqstatus (’Enchendo’ ).

Laboratório de Informática Industrial - Profs. Carmela M. P. Braga e Luiz T. S. Mendes - DELT/UFMG - 2008
4

3. Quando o estado de reserv cheio for verdadeiro, fechar a válvula de entrada e ligar o agitador por
10s, além de escrever o status da seqüência na variável seqstatus (’Agitando’ ).

4. Decorridos os 10s, desligar o agitador, abrir a válvula de saı́da para esvaziar o reservatório e escrever
o status da seqüência na variável seqstatus (’Esvaziando’ ).

5. Verificar se o reservatório está vazio (ou seja, se reserv vazio é verdadeiro). Caso esteja, retornar
ao passo 1.

Teste seu programa minuciosamente. É comum, em automação industrial, ignorarmos (por descuido ou
desconhecimento) algumas situações operacionais importantes durante o projeto, as quais porém podem
ser reveladas mediante um teste cuidadoso.

OBSERVAÇÕES IMPORTANTES SOBRE O ISaGRAF:

• A lógica de cada estado do programa em SFC, quando descrita em ST (texto estruturado), deve
ser encapsulada entre o par de declarações ACTION(qualificador ) e END ACTION, onde qualificador
descreve um qualificador opcional para a ação. Os qualificadores mais freqüentemente usados são o
N, que indica que a ação será executada continuamente enquanto o estado estiver ativo, e o P, que
indica uma ação pulsada (no ISaGRAF, é 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ão podem ser usadas num programa declarado
na linguagem ST.

• Para facilitar a construção da lógica, podem ser usados, se necessário, estados vazios (sem nenhuma
ação definida) e transições vazias (sempre avaliadas como TRUE neste caso).

• A variável interna que acumula o tempo decorrido num dado estado é designada, no ISaGRAF,
por GSn.T onde n corresponde ao número do estado. Quando o estado torna-se desativado, esta
variável passa a ter valor indefinido. Por exemplo, para descrever a transição do estado 2 para o
estado 3 de um programa hipotético em SFC, poder-se-ia empregar a seguinte expressão:

(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ção de estruturas hierárquicas de programas SFC, onde um programa


“pai” pode controlar (disparar, encerrar...) outros programas SFC “filhos”. Para tal, é importante
especificar, na criação dos programas, a hierarquia apropriada. As regras válidas nesta hierarquia
são:

– Programas SFC que não têm um “pai” são chamados programas principais (main SFC pro-
grams).
– Programas-pai são ativados pelo sistema quando a aplicação é iniciada.
– Um programa pode ter vários programas-filhos.
– Um programa-filho não pode ter mais de um programa-pai.
– Um programa-filho só pode ser controlado por seu programa-pai.
– Um programa-pai não pode controlar os filhos de seus próprios programas-filhos.

• A ativação/desativação do programa-filho pode ser feita de duas formas:

1. Fora do bloco de ações ACTION...END ACTION, na forma prog filho(N | S | R). Esta forma
é usualmente a mais simples.

Laboratório de Informática Industrial - Profs. Carmela M. P. Braga e Luiz T. S. Mendes - DELT/UFMG - 2008
5

2. Dentro de um bloco de ações ACTION...END ACTION através das funções GSTART e GKILL
do ISaGRAF.

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
é iniciado quando o passo torna-se ativo, e continua sua execução quando o passo é desativado. O
qualificador R encerra o programa-filho quando o passo é ativado.

Bibliografia
Conteúdos do HELP do ISaGRAF, V. 3.30, 1990-1998, CJ International.

Laboratório de Informática Industrial - Profs. Carmela M. P. Braga e Luiz T. S. Mendes - DELT/UFMG - 2008

Anda mungkin juga menyukai