Você está na página 1de 32

SUPORTE DE CURSO

IEC 1131-3
Sequential
Charts
Livro Texto:

Programming industrial control systems using IEC 1131-3


R.W. Lewis

UFMG Informtica Industrial


Prof. Constantino Seixas Filho
IEC1131-3 - Sequential Function Charts

IEC 1131-3 Sequential Function


Charts
Structured Text (ST)
Instruction List (IL)
Function Block Diagram (FBD)
Ladder Diagram (LD)
Sequential Function Charts (SFC)

Textuais

Grficas

SFC
ST

IL

TEXTUAIS

LD

FBD
GRFICAS

usada para:
Descrever o comportamento seqencial de um sistema.
Como linguagem de estruturao das aes de um programa segundo um
modelo top-down. Este particionamento do problema traz ganhos de
performance porque apenas o cdigo relativo aos passos ativos executado.
Para descrever o comportamento baixo nvel de um processo seqencial.
Para representar as fases de um processo de batelada.
Para representar um processo de comunicao de dados, etc.

Histrico
Universidades francesas desenvolveram uma linguagem de representao de
processos seqenciais baseada nas Redes de Petri: o Grafcet (Graphe Fonctionnel
de Command Etape Trasition). Grafcet se tornou um padro europeu. Em 1988 foi
publicado o padro IEC 848: Preparation of function charts for control system,
baseado na linguagem Grafcet.
A norma IEC 61131-3 introduziu pequenas modificaes no padro IEC 848
visando acoplar esta quinta linguagem s demais linguagens da suite 1131-3.

IEC1131-3 - Sequential Function Charts

Estrutura de um chart
Passo (Step) Inicial
Start

Transio
ChaveLiga = 1

Condio de Transio

Fill
ReatorCheio = 1
Stir

Step
Timer1.ET = T#1h

Drain
ChaveLiga = 0

Varivel de sada de um
temporizador externo.

Stop

Caminhos convergentes e divergentes


Transies
nomeadas definidas
em outra parte do
SFC

Start
ChaveLiga = 1

Fill
Tran2

Tran3

Divergncia OU
Stir

Filter
Tran4

Tran5

Convergncia OU
Drain

ChaveLiga = 0

ChaveLiga = 1

Stop

Derivao com seta direcional

IEC1131-3 - Sequential Function Charts

Seqncias simultneas
Faz uso da construo divergncia AND para iniciar aes que sero realizadas
em paralelo. e convergncia AND que espera at todas as tarefas estarem
concludas.

Start
ChaveLiga = 1
Fill

Divergncia AND
Tran1

Stir

TempCks
Tran2

Drain

Monitor

Tran3
PressCks

Convergncia AND

Steps
Cada Step deve receber um nome nico e s pode aparecer uma nica vez
em uma SFC. Os nomes dos Steps e transies so locais a uma POU
(bloco de funo ou programa) onde a SFC definida.
Existem dois tipos de Steps:
1. Steps normais: so exibidos em caixas retangulares com o nome do step
no centro.
2. Step inicial: Possui barras verticais nas laterais do retngulo. Todo SFC
deve ter um step inicial. O step inicial deve ser nico.
Cada Step pode ter um bloco de ao associado. O bloco de ao pode ser
definido utilizando-se qualquer uma das outras linguagens IEC: ST, FBD,
LD ou IL.

IEC1131-3 - Sequential Function Charts

Cada estado possui duas variveis associadas:

Flag de estado ativo:


uma varivel booleana que s est ativa quando um step em particular
est ativo.
Sintaxe: <StepName>.X
Exemplo

Na figura anterior podemos definir Tran3 em linguagem ST:


Drain.X = 1
A transio do step TempCks para o step PressCks s ocorrer quando o
estado Drain for ativado.
Esta flag pode ser conectada diretamente a uma sada booleana:
Start
ChaveLiga = 1
Fill

Vlvula1
Tran1

Conexo direta com a


flag .X de estado ativo

Flag de tempo decorrido


Cada estado tem associada uma varivel de tempo decorrido do tipo TIME.
Esta varivel computa quanto tempo o estado est ativo. Ela zerada toda
vez que o estado ativado. Esta varivel retm o seu ltimo valor quando o
estado desativado.
Sintaxe: <StepName>.T
Esta varivel til para se determinar por quanto tempo um determinado
estado est ativo.

IEC1131-3 - Sequential Function Charts

Exemplo:
ChaveLiga = 1
Fill
Fill.T > T#10m
Stir

O SFC ficar no estado Fill durante 10 minutos.


Uma outra funo desta varivel pode ser a de diagnstico, pois podemos
avaliar por quanto tempo cada estado de uma seqncia ficou ativo.

Transies
Cada transio deve ter uma condio associada. Se a transio deve
ocorrer sempre, ento devemos associar a ela a condio TRUE.

IEC1131-3 - Sequential Function Charts

Exemplos

Diversas
maneiras
transio

de

se

representar

uma

Texto Estruturado
Qualquer expresso ST que
resulte em um valor booleano
pode ser usada para descrever
uma condio de transio.

Heat
(Temp1>2000) AND (Press >=20)
Cool

Diagrama Ladder

Enable

%IX4

Raise

Quando um degrau permite a


passagem de potncia, a condio
de transio se torna verdadeira.

Stop

Sw1

Diagrama de Blocos de Funo

MotorCheck
Mancal1 _
Tanque1 _
Gas1

PreCheck

Vibration
Fuel
Pressure

Go
Power

IEC1131-3 - Sequential Function Charts

Qualquer FBD que produza um


resultado booleano, pode ser
ligado a uma transio. No
exemplo ao lado o bloco
MotroCheck ir fazer GO =1 se
os
valores
de
vibrao,
combustvel e presso estiverem
dentro
de
seus
limites
operacionais.

Conector de transio
Heat

Usamos um conector de transio


para colocar a condio de
transio em outra parte do
diagrama.

>TransNewBatch >
Cool

Ready NewJob Enable


TransNewBatch >

Transio nomeada

Step1

Uma transio pode receber um


nome e ser definida em outra
parte do diagrama usando uma
das linguagens IEC: ST, FBD, LD
ou IL

Trans1
Step2

Transio definida usando ST


A expresso deve retornar um
valor booleano. Note que o
TRANSITION Trans1:
:= AB1 AND CX3 OR CX5 AND smbolo de atribuio :=
necessrio para indicar que o
(TX3 >= 100.2);
valor atribudo para a condio
END_TRANSITION
de transio.

IEC1131-3 - Sequential Function Charts

Transio definida usando FBD


TRANSITION TransGo:
IN1

Uma transio pode ser definida


graficamente usando FBD.

AND
OR

EN1

TransGo
IN2

AND

EN2

END_TRANSITION
Transio definida usando LD
TRANSITION TRANS21:
%IX2 EX10

FDIR21

Trans21

A bobina deve ter o mesmo nome


da transio. Quando a bobina
energizada, a condio de
transio verdadeira.

END_TRANSITION

Transio definida usando IL


TRANSITION Trans21:
LD %IX21
AND EX10
AND FDIR21
END_TRANSITION

O ltimo valor no acumulador


corresponde ao valor a ser
retornado. A operao deve
retornar sempre um valor
booleano. Se o valor for 1 o
resultado ser verdadeiro.

AES
Cada step pode ter uma mais aes associadas. Estas aes que realizaro o
trabalho de modificar o meio ambiente produzindo trabalho.
Cada ao pode ser descrita utilizando-se uma das quatro linguagens IEC 1131:
ST, FBD, LD ou IL.

IEC1131-3 - Sequential Function Charts

Start

PrompOperator

OpenValves

StartPump

ChaveLiga

ChaveLiga = 1
Fill
Tran1

MainPump := ON;
Pump1 := ON;

Cada ao tem um nome que deve ser nico em cada POU.


As aes so representadas num retngulo contendo trs campos.
Qualificador da Ao

Ao

Varivel de Indicao

O primeiro campo esquerda o qualificador da ao. O qualificador determina


quando a ao ser executada.
Uma caixa de ao pode ter opcionalmente uma varivel de indicao. A varivel
de indicao indica o nome de uma varivel que modificada dentro dado corpo
da ao e que indica que a ao foi completada. A ao PrompOperator ir indicar
atravs de StartSwitch que a funo foi completada
Aes complexas podem ser definidas fora do SFC usando-se as linguagens LD,
FBD, IL ou ST:
Ao definida atravs de LD

Os rungs so envoltos em uma


caixa retangular com o nome da
ao colocada no seu topo.

Pump_Control
%IX30

Pump1

X10

AL1

V1 AuxSw1

Pump1

AuxX1

Pump2

IEC1131-3 - Sequential Function Charts

10

Ao definida atravs de FBD


Stir_Control
Stir_Loop
PID
1000.0

SP

StirSpeed

PV

OUT

StirDrive

A rede FBD deve ser circundada


por um box retangular tendo o
nome da ao em seu topo.
Se uma ao for definida para ser
executada continuamente, ela
pode conter loops PID ou outro
tipo de loop realimentado de
controle.

GT

1500.0

OverSpeed
StirSpeed

Ao definida atravs de SFC


Dosagem

Dose1

AddX1

Dose.T>T#2m
AdjustPh

AddAcid

pHBal<=0.7
Dose3

AddX2 Rdy

IEC1131-3 - Sequential Function Charts

Usando SFC podemos descrever


aes complexas. Uma das
variveis de indicao de uma
ao em SFC pode tambm ser
usada como varivel de indicao
da ao do nvel mais alto.
Para uma ao ser capaz de
executar o seu prprio SFC, ela
deve ser configurada para
executar continuamente durante
um perodo suficiente para
permitir que seu SFC seja
completado.

11

Ao definida atravs de ST
ACTION OpenValves:
IF BatchType = BO_100" THEN
ValveAB := OPEN;
ELSE
ValveAC := OPEN;
END_IF;
BrainValve := CLOSE;
Vent := OPEN;
END_ACTION

Uma varivel modificada por uma


diretiva ST pode ser usada como
a varivel indicadora da ao.

Ao definida atravs de IL

Uma varivel modificada por uma


instruo IL pode ser usada como
a varivel indicadora da ao.

ACTION AddX2:
LD
1
SST
TankX2.Enable
LD
100
ST
TankX2.ShotLevel
CAL
TankX2
S
X2_added
END_ACTION

Uso de aes em linguagens grficas:


Aes no tm seu uso restrito SFC. Aes tambm podem ser usadas nas
linguagens FBD e LD como no exemplo abaixo:

Exemplo

Usando blocos de ao em diagramas ladder

%IX10

AllShut

Enable

ShutDrain

IEC1131-3 - Sequential Function Charts

V1

12

Exemplo

Usando
blocos
de
Blocos de Funo

%IX10

ao

em

Diagramas

de

AND

ShutDrain

V1

AllShut

Enable

Em FBD, a ao ativada quando sua entrada booleana TRUE.


Em LD a ao ativada quando existe um fluxo de potncia dentro do bloco
de ao.

Qualificadores de aes
Qualificador
Nenhum
N
R
S
L
D
P
SD

DS
SL

Descrio
No armazenado, o mesmo que N
No armazenado, executa enquanto o step associado estiver ativo
Reseta uma ao armazenada
Armazena uma ao ativa isto armazenada. A ao continuar a
ser executada at um qualificador R ser encontrado.
Ao limitada no temo, termina aps um perodo estipulado
Ao adiada no tempo, comea aps um perodo de tempo
Uma ao pulsada qua s executada uma nica vez quando o
step ativado e uma vez quando o step desativado.
Armazenada e com atraso de tempo. A ao ativada aps um
tempo estipulado mesmo que o step associado for desativado antes
do tempo de atraso.
A ao atrasa no tempo e armazenada. Se o step associado
desativado antes do perodo de atraso, a ao no armazenada.
Armazenada e limitada no tempo. A ao iniciada e executada
por um perodo de tempo.

Observao:

Uma ao dita armazenada quando continua aps a desativao do estado,


at que um qualificador R seja encontrado.

Deve-se tomar cuidado com aes armazenadas que comecem muito tempo
aps seus estado terem sido desativados porque isto leva a programas
confusos e de difcil depurao.

IEC1131-3 - Sequential Function Charts

13

N - Ao no armazenada

StepA

Action1

T1

StepA.X

Action1

T1

A ao executa continuamente enquanto o StepA est ativo, isto enquanto a flag


StepA.X = 1. A ao executada uma ltima vez quando o step desativado.

Set e Reset
Step1.X
Step1

Action1
T1

T1

Action1

StepN

Action1

StepN.X

TN
TN

A ao comea a ser executada quando StepA se torna ativo, e continua a ser


executada at que o StepN ativado. A ao associada ao estado StepN deve
possuir o qualificador R e referenciar a mesma ao de nome Action1. A ao
executa ainda uma ltima vez.

IEC1131-3 - Sequential Function Charts

14

L - Ao limitada no tempo
Step1.X
T1
L
T#4s

Step1

Action1
Action1

T1

4s
Step1.X
T1

Action1
4s

A ao executa durante o tempo estipulado a partir do instante de ativao do


estado. Se o estado desativado antes que o tempo haja expirado, a ao
interrompe sua execuo. A ao executada uma ltima vez quando o step
desativado ou aps o tempo haver expirado.

D - Ao com atraso de tempo


Step1.X
T1
D
T#4s

Step1

Action1
Action1

T1
4s
Step1.X
T1

Action1
4s

A ao executa aps um atraso de tempo estipulado, a partir do instante de


ativao do estado. Se o estado desativado antes que o tempo de atraso haja
expirado, a ao no executada. A ao executada uma ltima vez quando o
step desativado somente se tiver sido executada.

IEC1131-3 - Sequential Function Charts

15

P - Ao pulsada

Step1

Action1

T1

Step1.X
T1

Action1

A ao executada uma nica vez aps o estado ter sido ativado. Pelo padro, a
ao deve ser executada ainda uma segunda vez, entretanto isto ir depender da
implementao.

SD - Ao armazenada e adiada
Step1.X
Step1

SD
T#4s

Action1
StepN.X

T1
Action1

4s
StepN

Action1

TN

Step1.X

StepN.X
Action1

4s

Quando Step1 se torna ativo, a ao armazenada, mas s comea a executar aps


o tempo ter se expirado. Independente da durao do Step1, a ao ser executada
at ser cancelada por uma ao com qualificador R referenciando a mesma ao
(Action1). A ao no ser executada se uma ao com qualificador R for
executada antes do tempo de atraso expirar. A ao executa ainda uma ltima vez.

IEC1131-3 - Sequential Function Charts

16

DS - Ao adiada e armazenada
Step1.X
Step1

DS
T#4s

Action1
StepN.X

T1
Action1

4s
StepN

Action1

TN

Step1.X

StepN.X
Action1

4s

No comeo do Step1 o tempo de atraso comea a ser computado. Aps o tempo


ter expirado, a ao armazenada e comea a ser executada. A continua a ser
executada at ser novamente referenciada por uma ao com o qualificador R. Se
o Step1 for desativado antes do tempo expirar, a ao no ser armazenada e no
ser executada.
SL - Ao armazenada e limitada no tempo
Step1.X
Step1

SL
T#4s

Action1
StepN.X

T1
Action1
4s
StepN

Action1

TN

Step1.X

StepN.X

Action1
4s

Quando o estado Step 1 se torna ativo, a ao armazenada e comea a ser


executada. Ela ser executada at que o tempo T se esgote, independentemente do
estado de Step1 e mais uma vez. Se a ao for desarmada por uma ao com
qualificador R, antes do tempo se expirar, a ao ser interrompida.
IEC1131-3 - Sequential Function Charts

17

O bloco de funes controle de ao


Trata-se de um bloco de funo conceitual definido no standard como meio de
descrever o comportamento da ao. Cada ao controlada por uma instncia
deste bloco. A sada do bloco de controle de ao chamada Q . A ao associada
ao bloco executada, enquanto Q verdadeiro. Todos os comandos da ao ou
rede devem ser executados mais uma vez na borda de descida de Q. Ou seja, as
aes so executadas uma vez extra.
Exemplo:

Suponha uma ao qualificada com o qualificador P e definida em ST:


ACTION CONTING:
COUNT := COUNT + 1;
END_ACTION
Assuma que esta ao est associada a uma step e se chama A1. Logo, toda vez
que A1 ativado, COUNT incrementado de 1. Toda vez que A1 desativado,
COUNT incrementado uma segunda vez !!!
Para executar um bloco uma nica vez, devemos ter acesso ao qualificador da
ao Q:
Exemplo:

Contar o nmero de vezes que um motor acionado:

MotorOn
TR1

CountUp

CTU(CU:=CountUp.Q);

A ao CountUp executada duas vezes. O contador entretanto s incrementado


na subida de CU.

Execuo de um SFC
Redes SFC podem ser usadas para descrever o comportamento de uma POU ou de
aes.
Cada POU est associada a uma task. A task executa periodicamente os elementos
de uma POU. A SFC associada POU ser avaliada toda vez que a POU for
executada. Uma SFC associada a uma ao ser executada toda vez que a ao for
executada.

IEC1131-3 - Sequential Function Charts

18

Regras de avaliao de um SFC:


1. step inicial estar ativo quando a POU executa, aps a inicializao do
sistema. Quaisquer aes associadas com o passo inicial sero executadas.
2. No inico de cada avaliao, o conjunto de steps ativos determinado. Todas
as transies associadas com os steps ativos sero avaliadas.
3. Aes que terminaram sua execuo na ltima avaliao, so executadas mais
uma vez.
4. Todas as aes ativas so executadas.
5. Todos os steps ativos que precedem transies avaliadas como verdadeiras so
desativados e os seus estados sucessivos so ativados.
6. Todas as aes tendo uma condio de habilitao que abcabam de ser
desativadas, so marcadas como inativas, por exemplo, uma ao com o
qualificador de limite de tempo L, quando o perodo de tempo esgotado.

Regras de evoluo de um SFC:


O padro IEC 1131-3 define um nmero de restries na maneira como networks
SFC so projetados e interpretados para que o resultado final seja livre de
ambigidade.
1. Dois steps no podem ser diretamente ligados. Eles devem ser separados por
uma transio.
2. Duas transies nunca podem estar diretamente ligadas, elas devem ser
sempre separadas por um step.
3. Se uma transio a partir de um step leva a dois ou mais steps, ento estes
steps iniciam seqncias simultneas. Seqncias simultneas continuam
independentemente.
4. Quando projetando um SFC o tempo para realizar uma transio, desativar
steps anteriores e ativar steps posteriores, deve ser considerado nulo.
5. Quando mais do que uma condio de transio verdadeira ao mesmo
tempo, o tempo de ativao e desativao dos stps associados deve ser
considerado nulo. O projetista no deve considerar as diferenas de tempo de
transies simultneas (condio de corrida).
6. A condio de transio de um step no avaliada at que todo o
comportamento resultante do step ativo tenha se propagado atravs da POU.
Por exemplo, se um step foi ativado com a sua condio de sada sempre

IEC1131-3 - Sequential Function Charts

19

TRUE, todas as aes sero executadas uma vez, antes do estado ser
desativado.

Evoluo de caminhos divergentes


Quando existem duas ou mais transies a partir do mesmo step, existe
ambigidade sobre qual o caminho a ser seguido. Mesmo que vrias transies
estejam ativas simultaneamente, somente um caminho selecionado. O caminho
selecionado determinado pela precedncia da transio.

Step1

Alterando a ordem
de prioridade

Step1

2
Tr1

Tr1

Tr2

Step2

Step3

Step2

Tr2
Step3

O default seria a avaliao da esquerda para a direita. Se as transies Tr1 e Tr2


forem ambas verdadeiras, a transio ser feita para o Step2. A transio pela
prioridade default indicada no diagrama por uma asterisco colocado sobre o
centro dos ramos divergentes.
Caso desejamos uma outra ordem de precedncia, devemos indicar a ordem
desejada numerando os ramos divergentes e colocando o asterisco na juno.
A melhor maneira de se evitar ambigidades usar expresses mutuamente
exclusivas para assegurar que apenas um dos ramos estar ativado. Esta
alternativa tem como benefcio extra estar conforme o padro IEC 848.

Drill

Job=4 AND RDY

Turn

IEC1131-3 - Sequential Function Charts

NOT(Job=4) AND RDY

Grind

20

Salto de seqncia
Pode-se usar um caminho divergente para saltar uma seo de uma seqncia. O
caminho divergente no conter steps e serve apenas para saltar obre o caminho
alternativo.
LineStart

LineRdy
TrNextPack

OilPres < 3.0

OilPress >= 3.0

StartOil

Label

Oil = 1 (*Open *)

LB1=1

OilPump

Glue

Pump = 1 (*On *)

GL1=1

Filter

Check

Filter=0 (*On *)
TrCheckOk

TrReWork

EndBatch
LineReady

Loop
permitido um salto para um step anterior, o que configura um loop.

Convergncia Simultnea
Pump1

Pump2

MainGen

TrGo

OnLine

IEC1131-3 - Sequential Function Charts

SelecAuto

21

Na verdade serve apenas para sincronizar as sub seqncias. As seqncias devem


se encontrar na convergncia AND. Quando TrGo disparado, as duas seqncias
de sada so ativadas.

Projeto seguro e Inseguro

Step1
Step1
Tr1

StartOil
Step2

StartOil
StepA

Tr2

TrA

OilPump
Step3

OilPump
StepB

Tr3
TrB2

TrB1
Step4
StepC

StepD

TrX
StepX
TrD
TrY

O diagrama acima inseguro. Se o caminho por Step4 for tomado, poder


haver um retorno para o estado 1 com o a subseqncia Step2..Step4 ainda
ativa. Se o SFC continua a ser executado, mais de um estado de uma mesma
subseqncia a pode estar ativo ao mesmo tempo, o que conduz a um
resultado imprevisvel.

IEC1131-3 - Sequential Function Charts

22

Step1

Step1
Tr1

Tr1

Step2
Start
Oil
Tr2

StepA
Start
Oil

Step3
OilP
ump

StepB
OilP
ump

TrA

Tr3

TrB1

Step4

StepC

TrB2
StepD

Step2
Start
Oil
Tr2

StepA
Start
Oil

Step3
OilP
ump

StepB
OilP
ump

TrA

Tr3

TrB1

Step4

StepC
TrC

TrB2
StepD
TrC

TrX
StepE
StepX

TrX
StepX

O SFC da esquerda tem um estado (StepX) que nunca ser alcanado


porque Steps C e D so mutualmente exclusivos, logo nunca os dois ramos
sero percorridos simultaneamente.
O SFC da direita corrige esta situao introduzindo um estado intermedirio
(StepE).

Projeto Top down


Geralmente SFCs so utilizados para estabelecer a arquitetura de um
sistema complexo. Primeiro os estados do sistema so identificados. Depois
os cada estado do sistema modelado atravs de um step do SFC principal.
Por exemplo, se estivermos modelando um forno de reaquecimento de
lingotes em uma siderrgica, cada estado de funcionamento do forno
modelado como um Step do SFC:

IEC1131-3 - Sequential Function Charts

23

Estados do Forno
OCIOSO
VAZIO
AQUECENDO
PRONTO
TRATAMENTO
TERMINADO
RESFRIANDO

O forno est frio e no est em uso


O forno no contm lingotes
O forno est seno aquecido para a temperatura de
operao
O forno contm pelo menos um lingote e est com a
porta fechada.
O forno est carregado e na temperatura de operao
O processo de tratamento do processo est completo e
os lingotes podem ser descarregados.
O forno est esfriando da sua temperatura de trabalho.

Cada estado poderia ser sub dividido novamente em sub estados. Por
exemplo o estado TRATAMENTO poderia ser dividido em
APLICA_RAMPA_TEMP, MANTEM_TEMP, etc. Esta nova seqncia
pode estar contida dentro de outro SFC, por sua vez contido numa caixa de
ao ou o SFC pode ser encapsulado em um bloco de funo.
Depois de definidos os estados deve-se identificar quando as transies
entre estados deve acontecer. Transies esto ligadas a eventos de
operao (intervenes do operador) ou de processo.
SFC permite um enfoque top down, em que o comportamento do sistema
refinado sistematicamente, gerando SFC cada vez mais detalhados do
comportamento do sistema.

APLICA_RAMPA_TEMP
OilPump

CARREGAMENTO
StartOil

MANTEM_TEMP

PRONTO

TRATAMENTO

Ao PERFIL_TEMP

IEC1131-3 - Sequential Function Charts

24

Bom Estilo de Programao


1. Use nomes significativos para steps, transies e aes sempre que
possvel.
2. Tente manter cada SFC pequeno e focado no principal comportamento
sendo considerado no nvel hierrquico sendo analisado. Todo
comportamento detalhado deve estar contido dentro dos blocos de ao
e cobertos por SFCs de nveis inferiores.
3. Tente reduzir as interaes entre seqncias simultneas ao mnimo
possvel.
4. Evite que aes associadas aos steps de duas seqncias diferentes e
simultneas manipulem as mesmas variveis, por exemplo parmetros
de entrada para blocos de funo.
5. Cuidado deve ser tomado quando uma ao contm uma subseqncia
eu pode ser paralisada em um estado intermedirio por uma seqncia
de nvel superior. A seqncia de alto nvel deve assegurar que todas as
operaes incompletas sejam limpas convenientemente.

Escopo de nomes dentro de redes SFC


Todos os nomes de estados, transies, conectores de transio e aes
devem ser nicos dentro de uma POU, por exemplo bloco de funo, que
contm a rede SFC.
O escopo de um nome usado em um SFC dentro de um bloco de funo o
bloco de funo.
Elementos de SFC dentro de um bloco de ao pertencem ao mesmo escopo
que as variveis externas do SFC.

SFC em modo texto


SFCs podem ser definidos em modo texto. A utilidade seria ter uma notao
cannica para transportar programas entre PLCs.
INITIAL_STEP Start:
Prompt_Operator(N, StartSwitch);
END_STEP
TRANSITION FROM Start TO Fill:
StartSwitch = 1;
END_TRANSITION

IEC1131-3 - Sequential Function Charts

Step inicial

Transio:
Neste caso uma
transio simples do
estado Start para Fill

25

Aes associadas
ao step

STEP FILL:
OpenValves(P);
StartPump(N);
END_STEP
ACTION StartPump:
MainPump := ON;
Pump1 := ON;
END_ACTION

Comandos em ST ou IL

Ao:

ActionName(Qualifier, Timed _qualifier, indicator variable);


Exemplos:

Action_StartUp(L, T#2m, Ready);


Action_Stop(P, Stopped);

Pump1

Pump2

MainGen

TrGo

OnLine

SelecAuto

A transio TrGo colocada na forma cannica se torna:


TRANSITION FROM
SelectAuto)
:= TrGo EQ 1;
END_TRANSITION

(Pump1,

IEC1131-3 - Sequential Function Charts

Pump2,

MainGen)

TO

(OnLine,

26

Exemplo: Controle de um elevador de carga

Freio
Elevador

O elevador puxado
por um guincho e pode
ser requisitado para
parar
em
qualquer
andar especificado.
Switch do andar
Existem 3 chaves de
Sensores de proximidade proximidade: um na
posio de parada do
andar, outro acima e
outro abaixo. A porta s
se abre se a chave do
andar estiver ativada.
Porta
O
elevador
deve
desacelerar quando a
primeira
chave

acionada
Motor

IEC1131-3 - Sequential Function Charts

27

Init

PowerOn

ResetLift

Ready

Ready

DoorOpen
FloorCall>0 AND (CloseDoor OR
DoorOpen.T > T#10s)
Shutting

ShutDoor

Shut

Shut
MoveLift

MotorControl

ApplyBrake

Checks

ChkFault

L
MotorInching
T#5s

Fault

Fault

Floor(FloorCall)=1 AND NOT Fault


Stopping

CheckLimits Fault

Fault OR EmergStop

Proximity(FloorCall) = 1 OR Fault
Inching

ApplyBrake

InchFault

Stopping.T > T#2s


Opening

OpenDoor Open

Open
1
Halted

Alarm

S ApplyBrake
R PowerOn

IEC1131-3 - Sequential Function Charts

28

Leitura Complementar:
q Bonfatti, Monari, Sampieri, IEC1131-3 Programming Methodology, CJ
International, 1997.

q Paul Barracos, Grafcet Step by Step - A tutorial and reference guide to the
Grafcet automation Language - Famic, Canad.

Exerccios:
1. Voc quer definir expresses divergentes para evitar ambigidade na
avaliao de uma derivao OU. Qual das expresses abaixo so disjuntas
(no intersecantes) com a expresso: T = A BC + AD + C D ?
a)
b)
c)
d)

(
(
(
(

)
)
)
)

T 1 = AC + CD
T 1 = AC + CD
T 2 = AB C + CAD
T3 = C

2. Desenhe SFC para calcular o tempo mdio de scan de um CLP avaliado a cada
1 segundo. O SFC deve tambm avaliar o tempo mximo e mnimo de scan j
obtidos.
3. Carregamento automtico de silos
Deve-se automatizar o carregamento dos silos S1 e S2.

A eclusa EC1 do silo S0 despeja material na linha formada pelos


transportadores TC1 e TC2,at que o detetor de nvel alto do silo sendo
carregado atue e a desligue. Ela ser ligada quando o detetor de nvel
baixo de um dos silos atuar.
O desviador de fluxo acionado toda vez que um dos silos estiver vazio.
Caso ambos os silos estejam vazios (situao inicial), o silo S1 ter a
preferncia no enchimento. Os transportadores devem ser ligados na
ordem correta a fim de alimentar os silos. O tempo de estabilizao de
rotao de 15 segundos.
Existe uma chave de emergncia que se acionada paralisa todos os
equipamentos. Uma sirene deve ser disparada por 2 minutos. Uma nova
partida s ser autorizada se for pressionado o boto de rearme.
O nmero total de partidas comandadas, e o tempo de funcionamento das
seqncias (S1 enchendo e S2 enchendo) devem ser computados e
armazenados nas variveis n_partidas e S1_func e S2_func
respectivamente.

IEC1131-3 - Sequential Function Charts

29

Relao de entradas/sadas:
S0_min
S1_min
S2_min
S1_max
S2_max
CX1_s1
CX1_s2

detetor de nvel mnimo do silo S0


detetor de nvel mnimo do silo S1
detetor de nvel mnimo do silo S2
detetor de nvel mximo do silo S1
detetor de nvel mximo do silo S2
fim de curso do desviador CX1
fim de curso do desviador CX1

EC1
TC1
TC2
TC3
CX1
CX1_dir

Comando do motor da eclusa de descarregamento do silo S0


Comando do motor do transportador 1
Comando do motor do transportador 2
Comando do motor do transportador 3
Comando do Motor do desviador
Direo do motor CX1: 0 = para silo S1

S0
S0_min
EC1

*
TC1
TC2
CX1_S2

CX1_S1
CX1

TC3
S1

S1_max
S1_min

S2

S2_max
S2_min

4. Uma tela tem 5 campos editveis. Voc deve editar os campos na ordem: 0, 3,
2, 1, 4. Voc no pode sair da tela sem terminar a edio de todos os campos.
Escreva o esqueleto de um programa que v para o campo 1 e depois da
edio de cada campo j dirija o cursor para o prximo campo a ser editado.
Use autmatos de estados finitos como modelo de programao. A posio

IEC1131-3 - Sequential Function Charts

30

X/Y de cada campo est no array PosicaoCampo. Para ir para o incio de um


novo campo use a instruo GotoXY(coluna, linha);
typedef struct {
int
X;
int Y;
} Coord;
Coord PosicaoCampo[5]= {{0, 10}, {200, 10}, {50, 100}, {0, 100}, {0,
100}};
0

1
2

3
4
5. Motor reversvel [Extrado de Automao Industrial - Ferdinando Natale Nobel - Siemens series]
Um motor eltrico pode ser acionado nos dois sentidos com reverso manual
no sentido de rotao. O motor no deve entrar em funcionamento e deve ser
desligado se qualquer uma das condies estiver presente:
Se a chave de emergncia for acionada.
Se a presso de leo nos mancais for igual a zero.
Se a temperatura da carcaa do motor for superior a 70C.
O diagrama lgico do sistema para ligar e desligar o motor mostrado
abaixo:
Emergncia
Presso do leo

0---T
OR

IN

PT

ET

Temp carcaa
Desliga
Tempo

LIGA Direita

&

&
Note que:

_
Q

_
Q

LIGA Esquerda

IEC1131-3 - Sequential Function Charts

Motor direita

Motor esquerda

31

O temporizador com retardo no desligamento garante que sua sada ficar


energizada durante o tempo em que a entrada se encontra energizada, e
ainda durante um retardo de tempo T.
O ligamento / desligamento do motor se d via memrias biestveis.
Parar evitar que o motor que se encontra em um sentido de rotao seja
ligado em sentido contrrio, foi colocado um intertravamento no circuito.
O desligamento deve ser nico.

Construa a soluo correspondente em SFC.


6. Descreva para que coisas voc utilizaria cada uma das seguintes linguagens
IEC61131-3:
a) Ladder (LD)
b) Lista de instrues (IL)
c) Texto Estruturado (ST)
d) Diagrama de blocos de funes (FBD)
e) Sequential Function Charts (SFC)
f) Fluxograma (ainda no padronizada).
Algumas idias:
Intertravamento/ programao de batelada/ Motion Control/ Lgica de
controle em indstria petroqumica/ lgica de proteo/ funes DCS /
codificar blocos lgicos de alto desempenho /
rotina fuzzy / algoritmos de otimizao/ algoritmos genticos/ partida de rotas
de equipamentos, etc.

IEC1131-3 - Sequential Function Charts

32

Você também pode gostar