Professional Documents
Culture Documents
Grficas
TEXTUAIS
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.
Estrutura de um chart
Passo (Step) Inicial
Start
Transio
ChaveLiga = 1 Fill ReatorCheio = 1 Stir Timer1.ET = T#1h Drain ChaveLiga = 0 Stop
Condio de Transio
Step
Divergncia OU
Stir
Convergncia OU
Drain
ChaveLiga = 0 Stop
ChaveLiga = 1
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.
Divergncia AND
Monitor
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.
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 Tran1 Vlvula1
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.
Exemplos
de
se
representar
uma
Texto Estruturado Qualquer expresso ST que resulte em um valor booleano pode ser usada para descrever uma condio de transio.
(Temp1>2000) AND (Press >=20) Cool
Heat
Diagrama Ladder Quando um degrau permite a passagem de potncia, a condio de transio se torna verdadeira.
Enable
%IX4
Raise
Sw1
Stop
Diagrama de Blocos de Funo 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 >TransNewBatch > Cool
Usamos um conector de transio para colocar a condio de transio em outra parte do diagrama.
Transio nomeada Uma transio pode receber um nome e ser definida em outra parte do diagrama usando uma das linguagens IEC: ST, FBD, LD ou IL
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.
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.
PrompOperator
ChaveLiga
P N
OpenValves StartPump
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
Pump_Control
%IX30 X10 AL1 Pump1
Os rungs so envoltos em uma caixa retangular com o nome da ao colocada no seu topo.
Pump1
V1 AuxSw1
AuxX1
Pump2
10
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.
1500.0 StirSpeed
GT OverSpeed
Dose1
N Dose.T>T#2m
AddX1
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.
AdjustPh
AddAcid
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 ACTION AddX2: LD 1 SST TankX2.Enable LD 100 ST TankX2.ShotLevel CAL TankX2 S X2_added END_ACTION
Uma varivel modificada por uma instruo IL pode ser usada como a varivel indicadora da ao.
Exemplo
%IX10
Enable
AllShut
ShutDrain
V1
12
Exemplo
ao
em
Diagramas
de
%IX10 Enable
AND
ShutDrain
V1
AllShut
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 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.
DS SL
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.
13
N - Ao no armazenada
StepA T1
Action1
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 T1 S Action1 T1
Action1
StepN TN
Action1
StepN.X
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.
14
L - Ao limitada no tempo
Step1.X T1 Step1 T1 L T#4s Action1 Action1 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.
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.
15
P - Ao pulsada
Step1 T1
Action1
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 T1 Action1 SD T#4s Action1 StepN.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.
16
DS - Ao adiada e armazenada
Step1.X Step1 T1 Action1 DS T#4s Action1 StepN.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 T1 Action1 4s StepN TN R Action1 Step1.X SL T#4s Action1 StepN.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
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:
MotorOn TR1
CountUp
CTU(CU:=CountUp.Q);
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.
18
19
TRUE, todas as aes sero executadas uma vez, antes do estado ser desativado.
Step1
Step1 1 Tr1
2 Tr1 Step2
Tr2 Step3
Tr2 Step3
Step2
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
Turn
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 StartOil Oil = 1 (*Open *) OilPump Pump = 1 (*On *) Filter Filter=0 (*On *) TrCheckOk EndBatch LineReady TrReWork OilPress >= 3.0 Label LB1=1 Glue GL1=1 Check
Loop
permitido um salto para um step anterior, o que configura um loop.
Convergncia Simultnea
Pump1 Pump2 MainGen
TrGo
OnLine
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.
TrB2
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.
22
Step1 Tr1
Step1 Tr1
StepA Start Oil TrA StepB OilP ump TrB1 StepC TrB2 StepD
StepA Start Oil TrA StepB OilP ump TrB1 StepC TrC TrB2 StepD TrC
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).
23
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.
CARREGAMENTO StartOil
APLICA_RAMPA_TEMP OilPump
PRONTO
MANTEM_TEMP
TRATAMENTO
Ao PERFIL_TEMP
24
Transio: Neste caso uma transio simples do estado Start para Fill
25
STEP FILL: OpenValves(P); StartPump(N); END_STEP ACTION StartPump: MainPump := ON; Pump1 := ON; END_ACTION
Ao:
Comandos em ST ou IL
Pump1
Pump2
MainGen
TrGo
OnLine
SelecAuto
A transio TrGo colocada na forma cannica se torna: TRANSITION FROM SelectAuto) := TrGo EQ 1; END_TRANSITION (Pump1, Pump2, MainGen) TO (OnLine,
26
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
27
Init
S N Ready
DoorOpen FloorCall>0 AND (CloseDoor OR DoorOpen.T > T#10s) Shutting N ShutDoor Shut
Shut
MoveLift N R MotorControl ApplyBrake Checks N CheckLimits Fault
Fault
InchFault
S ApplyBrake R PowerOn
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.
29
Relao de entradas/sadas: S0_min S1_min S2_min S1_max S2_max CX1_s1 CX1_s2 EC1 TC1 TC2 TC3 CX1 CX1_dir 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 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
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 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 Temp carcaa Desliga Tempo PT ET OR 0---T IN Q
LIGA Direita
&
Q _ Q
Motor direita
&
Note que:
LIGA Esquerda
Q Motor esquerda _ Q
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.
32