Anda di halaman 1dari 6

1

Universidade Federal de Minas Gerais


Escola de Engenharia
Departamento de Engenharia Eletrnica
Laboratrio de Informtica Industrial
10 AULA - PROGRAMAO SOB A NORMA IEC 61131-3 (III): LINGUAGEM SFC
Objetivos: Desenvolvimento de aplicaes na linguagem SFC (Structured Function Chart) para o CLP
CompactLogix da Roclwell Automation.

Atividades Prvias
1. Leia atenciosamente, em casa, o texto desta prtica.
2. Desenvolva previamente, ainda em casa, o programa na linguagem SFC descrito no item
Atividades de Projeto e Programao desta prtica.
3. Ao chegar ao laboratrio, discuta sua soluo com seus colegas de grupo e decidam, em conjunto,
qual programa ser o adotado nesta prtica.

Introduo
Em aplicaes de automao industrial, freqentemente um projeto quebrado em partes menores de
forma a facilitar seu desenvolvimento e tambm permitir que diferentes equipes possam trabalhar em
paralelo. Neste sentido, a linguagem SFC (Sequential Function Chart) muito til pois permite que um
projeto de software seja desenvolvido na tcnica top-down, na qual parte-se de uma idia genrica, sem
muitos detalhes, que vai sendo sucessivamente quebrada em blocos menores com graus de
detalhamento crescentes, at chegar-se ao grau de refinamento desejado que possibilite o
desenvolvimento dos programas.
Desta forma, com a linguagem SFC podemos ter um programa composto de poucos estados mas onde
as aes de cada estado, por sua vez, so expressas na forma de outro diagrama SFC, e assim
sucessivamente at alcanar-se o grau de refinamento desejado.

Criao de novas tarefas no RSLogix 5000


A atividade prtica a ser executada nesta aula requer a criao de novas tarefas (tasks) a serem
executadas pelo CLP CompactLogix. Tarefas correspondem a aplicaes independentes ou colaborativas
entre si que so executadas concorrentemente pelo sistema operacional multitarefa do CLP
CompactLogix. No modelo 1769-L32E do CompactLogix podem ser configuradas at 6 tarefas, sendo
apenas uma contnua e as demais peridicas ou por eventos. A tarefa contnua (se existente) sempre
executada em background (ou seja, com menor prioridade que as demais). Tarefas peridicas executam
em intervalos regulares de tempo definidos pelo programador, e podem ter diferentes nveis de
prioridade entre si.
Como j mencionado no guia de aula anterior que introduz a programao na norma IEC 61131, ao
criar-se um projeto com o RSLogix 5000 so automaticamente definidos uma tarefa (MainTask), um
programa (MainProgram) e uma rotina (MainRoutine). A tarefa MainTask definida inicialmente como
uma tarefa de execuo contnua, podendo contudo ser alterada para uma tarefa peridica ou por
eventos se assim o desejarmos. Para adicionar novas tarefas, execute os seguintes passos:
1. Clique com o boto direito do mouse no item Tasks, no organizador de programas, e selecione New
Task (Fig. 1).

Laboratrio de Informtica Industrial Profs. Carmela M. P. Braga / Luiz T. S. Mendes / Michelle M. Santos DELT/EE-UFMG - 2012

Figura 1: Criao de uma nova tarefa.

2. Na nova janela que ser aberta, defina o nome da nova tarefa, uma descrio para a mesma, o seu
tipo (caso j exista uma tarefa continua, os tipos possveis sero apenas Periodic ou Event) e, no caso
de tarefas peridicas, o intervalo de execuo, como exemplificado na Fig. 2.

Figura 2: Definies sobre uma nova tarefa criada.

3. Criada uma nova tarefa, clique com o boto direito do mouse sobre a mesma, no organizador de
programas, e defina um novo programa para a mesma como exemplificado nas Figs. 3 e 4 a seguir:

Figura 3: Criao de um programa para uma determinada tarefa.

Laboratrio de Informtica Industrial Profs. Carmela M. P. Braga / Luiz T. S. Mendes / Michelle M. Santos DELT/EE-UFMG - 2012

Figura 4: Definies sobre um novo programa criado.

4. Finalmente, clique com o boto direito do mouse sobre o novo programa criado e selecione New
Routine para criar uma nova rotina para o mesmo, como exemplificado na Fig. 5. Se forem criadas
duas ou mais rotinas, uma delas deve necessariamente ser definida como a principal. Este passo j
foi coberto nas aulas anteriores e no ser detalhado aqui.

Figura 5: Criao de uma rotina para um programa de uma dada tarefa.

Atividades de Projeto e Programao


Uma indstria de produtos tensoativos (detergentes, desinfetantes, saponceos, etc.) fabrica uma
batelada de determinado produto adicionando um componente-base a um reservatrio, agitando o
mesmo durante 10 segundos e depois escoando completamente o reservatrio. Quando este se esvazia,
nova batelada tem incio. Desenvolva uma aplicao que execute o controle automtico deste sistema,
composta das seguintes tarefas:
MainTask Tarefa contnua que executar o controle automtico do reservatrio. Esta tarefa
corresponde a um programa composto por duas rotinas:
o seqfull rotina principal, a ser desenvolvida na linguagem SFC
o encheR rotina secundria, tambm em SFC, que ser chamada pela rotina principal.
simul_sensores Tarefa peridica responsvel pela simulao dos sensores de nvel baixo e de
nvel alto do reservatrio. Deve conter a rotina nivelR, a ser desenvolvida na linguagem FBD.
simul_nivel Tarefa peridica que simular o enchimento e esvaziamento do reservatrio. Deve
conter a rotina simul, a ser desenvolvida na linguagem ST (texto estruturado).
A seguir so apresentados os requisitos de operao das rotinas correspondentes a estas trs tarefas.

Laboratrio de Informtica Industrial Profs. Carmela M. P. Braga / Luiz T. S. Mendes / Michelle M. Santos DELT/EE-UFMG - 2012

4
Rotina seqfull
A rotina principal seqfull dever implementar a seguinte seqncia:
1. Inicialmente o sistema permanece no estado desligado.
2. Verifica se o operador deu a partida no sistema.
3. Caso a condio 2 seja verdadeira, executar a rotina encheR que ir controlar o enchimento ou
esvaziamento do reservatrio.
4. Verifica se a seqncia foi desabilitada (desligada) pelo operador.
5. Caso a condio 4 seja verdadeira, parar tudo, ou seja, fechar as vlvulas e desligar o agitador.
6. Retornar ao passo 2.
Rotina encheR
A rotina secundria encheR dever implementar a seguinte seqncia:
1. Verifica se o reservatrio est vazio.
2. Caso esteja, abrir a vlvula de entrada para encher o reservatrio.
3. Quando o estado da varivel reserv_cheio for verdadeiro, fechar a vlvula de entrada e ligar o
agitador por 10s.
4. Decorridos os 10s, desligar o agitador e abrir a vlvula de sada para esvaziar o reservatrio.
5. Verificar se o reservatrio est vazio atravs da varivel reserv_vazio. Caso esteja, retornar para
o passo 1.
Rotina nivelR
A rotina peridica nivelR deve atribuir os valores 0 ou 1 s variveis globais reserv_cheio e
reserv_vazio de acordo com o valor da varivel nivel, cuja faixa de valores 0 a 100%.
Rotina simul
A rotina peridica simul ir simular o enchimento e esvaziamento do reservatrio, incrementando ou
decrementando a varivel nivel de acordo com o estado das vlvulas de entrada e sada. Para que a
simulao do enchimento ou esvaziamento do silo ocorra em um tempo aceitvel, defina o perodo de
execuo da tarefa simul_nivel como 50ms.
Ao final do processo de criao destas tarefas e respectivos programas e rotinas, seu organizador de
programas deve apresentar uma aparncia semelhante seguinte:

O smbolo de uma
seta circular indica
uma tarefa contnua.
O smbolo de um
relgio indica uma
tarefa peridica.
O smbolo 1 designa
a rotina principal de
cada tarefa.

Figura 6: Tarefas, programas e rotinas definidas para esta prtica.


Laboratrio de Informtica Industrial Profs. Carmela M. P. Braga / Luiz T. S. Mendes / Michelle M. Santos DELT/EE-UFMG - 2012

5
A tabela a seguir apresenta as variveis de entrada e sada a serem utilizadas.
Tabela 1: Variveis de entrada e sada
Nome
executa_seq
liga_agitador
valv_entrada
valv_saida
reserv_cheio
reserv_vazio
nivel

Descrio
Liga/Desliga Sequncia Automtica
Liga agitador
Aciona vlvula de entrada
Aciona vlvula de sada
Status de reservatrio cheio
Status de reservatrio vazio
Nvel do reservatrio

Tipo
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
DINT

Modo
Input
Output
Output
Output
Base
Base
Base

Endereo
Local:1:I.Data.0
Local:3:0:Data.0
Local:3:0:Data.1
Local:3:0:Data.2
----------------------------------------------------------

Mdulo MICA
Liga/Desliga do Contator C1
Servo-motor
Lmpada Vermelha
Lmpada Verde
----------------------------------------------------------------------------------------------------------

Observaes Importantes:
1. Em todas as tarefas criadas, no se esquea de definir a rotina que agir como a principal. Isto
necessrio mesmo para as tarefas que possuem apenas uma rotina.
2. Ao criar os tags referentes s variveis internas e de E/S, no se esquea de defini-los como tags
globais, de forma que sejam visveis a todas as rotinas do programa. Para tal, declare-os no escopo
do controlador (ou seja, no escopo do projeto associado ao controlador) e no no escopo de cada
programa ou rotina (figura 7).

Figura 7: Escopo de declarao de variveis (tags)

Se voc errar neste passo, ser obrigado a cancelar os tags e declar-los novamente!
3. Para que a rotina principal seqfull chame, no passo adequado, a rotina secundria encheR, use o
comando Jump to Subroutine (JSR):
JSR(nome_da_rotina);
Este comando ir provocar o desvio da execuo da rotina principal para a rotina referenciada.
Observe, contudo, que quando o passo que chama a rotina secundria desativado, na prxima
ativao deste passo a rotina chamada reiniciar do ponto onde teve sua execuo interrompida. Se
desejarmos que a rotina chamada reinicie a partir de seu passo inicial, devemos adicionar a instruo
SFC Reset (SFR), especificando a rotina a ser reinicializada e o passo inicial:
SFR(nome_da_rotina, passo_inicial);

Laboratrio de Informtica Industrial Profs. Carmela M. P. Braga / Luiz T. S. Mendes / Michelle M. Santos DELT/EE-UFMG - 2012

6
A instruo SFR pode ser executada antes da instruo JSR, com o qualificador P1, ou depois da
instruo JSR, com o qualificador P0. A figura abaixo exemplifica o emprego destas instrues:

Figura 8: Passo de um diagrama SFC com as instrues JSR e SFR.

4. Observe que as diferentes tarefas colaboram entre si atravs das variveis globais. O resultado
coletivo das tarefas executadas que resulta na ao de controle desejada.
5. Teste seu programa minuciosamente. comum, em automao industrial, ignorarmos (por
descuido ou desconhecimento) algumas situaes operacionais importantes durante o projeto, as
quais, porm, podem ser reveladas mediante um teste cuidadoso. Em particular, a lgica descrita
para a aplicao desta prtica omite um detalhe de funcionamento importante, que voc poder
identificar facilmente testando-a de forma cuidadosa.
Instrues de montagem no MICA
Nesta prtica, caber a voc identificar as interligaes necessrias entre os sensores e atuadores do
MICA e os cartes de E/S do CLP, bem como realizar as respectivas conexes necessrias. Lembre-se
porm dos seguintes cuidados:
1. Com o MICA energizado, certifique-se que o boto de emergncia esteja pressionado durante
qualquer operao de montagem;
2. Confira com ateno a sua montagem antes de rearmar o boto de emergncia.
Crditos
Esta nota de aula foi realizada com a colaborao do aluno Danilo Ribeiro, aluno do curso de
Engenharia de Controle e Automao, e bolsista de monitoria do Laboratrio de Automao.
Referncias
Rockwell Automation, SFC programming, 1756-pm006
Rockwell Automation, SFC and ST programming, 1756-pm003

Laboratrio de Informtica Industrial Profs. Carmela M. P. Braga / Luiz T. S. Mendes / Michelle M. Santos DELT/EE-UFMG - 2012

Anda mungkin juga menyukai