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.
Laboratrio de Informtica Industrial Profs. Carmela M. P. Braga / Luiz T. S. Mendes / Michelle M. Santos DELT/EE-UFMG - 2012
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.
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:
Laboratrio de Informtica Industrial Profs. Carmela M. P. Braga / Luiz T. S. Mendes / Michelle M. Santos DELT/EE-UFMG - 2012
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.
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.
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).
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:
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