Anda di halaman 1dari 89

6.

LINGUAGENS DE PROGRAMAÇÃO

„ CONCEITO

„ Um programa é formado por uma série de instruções que o


usuário desenvolve para fazer com que o CLP comande as
ações de saída em função das variáveis de entrada

„ A NORMA IEC 61131-3 padroniza diversos aspectos


relativos à programação de CLP´s, como os tipos de dados
e as linguagens de programação.
6. LINGUAGENS DE PROGRAMAÇÃO

„ TIPOS DE DADOS
INTEIROS
Tipo IEC Descrição Bits Faixa
SINT Short integer 8 -127 a +127
INT Integer 16 -32768 a 32767
31 31
DINT Double integer 32 -2 a 2 -1
63 63
LINT Long Integer 64 -2 a 2 -1
USINT Unsigned short Integer 8 0 a 256
UINT Unsigned integer 16 0 a 65535
32
UDINT Unsigned double integer 32 0 a 2 –1
64
ULINT Unsigned long integer 64 0 a 2 –1

PONTO FLUTUANTE
Tipo IEC Descrição Bits Faixa
38
REAL Real 32 ± 10±
308
LREAL Long Real 64 ± 10±

DURAÇÃO/TEMPO
Tipo IEC Descrição Bits Uso
Dependente de Armazenar a duração do tempo
TIME Duração do Tempo
implementação após evento
6. LINGUAGENS DE PROGRAMAÇÃO

„ TIPOS DE DADOS
DATA E HORA
Tipo IEC Descrição Bits Uso
Depende de
DATE Data Absoluta Armazenar datas de calendário
implementação
Depende de
TIME_OF_DAY Time of Day Armazenar relógio de tempo real
implementação
Depende de
DATE_AND_TIME Data e time of day Armazenar datas e time of day
implementação

STRING
Tipo IEC Descrição Bits Uso
Depende de
STRING String de caracteres Armazenar texto
Implementação

CADEIA DE BITS
Tipo IEC Descrição Bits Uso
BOOL Bit string de 1 bit 1 Estados lógicos
BYTE Bit string de 8 bit 8 Informação biária
WORD Bit string de 16 bit 16 Informação biária
DWIRD Bit string de 32 bit 32 Informação biária
LWORD Bit string de 64 bit 64 Informação biária
6. LINGUAGENS DE PROGRAMAÇÃO – (IL) LISTA DE INSTRUÇÕES

„ LISTA DE INSTRUÇÕES (IL)

„ Textual
„ Baixo Nível
„ Pouco Legível

INSTRUÇÃO=OPERADOR(opção modificadores)+OPERANDOS
(constantes, variáveis)

O operando é o dado a ser manipulado pelo operador. As


operações são feitas utilizando o acumulador, sendo que o
resultado de cada operação é armazenado no próprio
acumulador.
6. LINGUAGENS DE PROGRAMAÇÃO – (IL) LISTA DE INSTRUÇÕES

„ OPERADORES

„ LD (*carrega operando para o acumulador*)


„ ST (*carrega o acumulador para o operando*)
„ ADD (*soma operando ao acumulador*)

„ MODIFICADORES

„ “N” – Negação do operador


„ “C” – Condicional do operador
„ “(“ – Adiamento de operação
6. LINGUAGENS DE PROGRAMAÇÃO – (IL) LISTA DE INSTRUÇÕES

„ RESUMO

Operador Modificador Operando Comentários


LD N Qualquer Variável Acumulador = Operando
ST N Qualquer Variável Operando = Acumulador
S Variável Booleana Operando = TRUE
R N,( Variável Booleana Opernado = FALSE
AND N,( Variável Booleana “E” Booleano
OR N,( Variável Booleana “OU” Booleano
XOR N,( Variável Booleana “OU EXCLUSIVO” Booleano
ADD ( Qualquer Variável Adição
SUB ( Qualquer Variável Subtração
MUL ( Qualquer Variável Multiplicação
DIV ( Qualquer Variável Divisão
GT ( Qualquer Variável Comparação Maior que
GE ( Qualquer Variável Comparação Maior ou Igual
EQ ( Qualquer Variável Comparação Igual
NE ( Qualquer Variável Comparação Diferente
LE ( Qualquer Variável Comparação Menor ou Igual
LT ( Qualquer Variável Comparação Menor que
JMP C,N Label Salto para Label
CAL C,N Função Chama Função
RET C,N Retorno da Função
) Executa o último operador adiado
6. LINGUAGENS DE PROGRAMAÇÃO – (IL) LISTA DE INSTRUÇÕES

Operação de Soma
LD 10 (*acumulador = 10*)
ADD 10 (*acumulador = 20*)

Operação Booleana

LD %I0.0 (*acumulador = estado da entrada 0*)


AND %I0.1 (*acumulador = entrada 0 AND entrada1*)
ST %Q0.1 (*saída 0 = acumulador*)
6. LINGUAGENS DE PROGRAMAÇÃO – (IL) LISTA DE INSTRUÇÕES

Execução Adiada

Algumas instruções permitem o uso do modificador parêntesis


“(“ para adiar reultador intermediários sem alterar o acumulador:

LD A (*acumulador = A*)
ADD B (*acumulador = A+B*)
MUL( A (*Adia a multiplicação, acumulador = A*)
SUB B (*acumulador = A-B*)
) (*multiplica o resultado por A+B*)

Resultado = (A+B)*(A-B)
6. LINGUAGENS DE PROGRAMAÇÃO – (IL) LISTA DE INSTRUÇÕES
Var

Exemplo Prático X1, X2, Y1, Y2, temp


: REAL;
resultado = SQRT((X2-X1)* (X2-X1)+ (Y2-Y1)* (Y2-Y1)) : REAL;
End_Var

LD Y2 (*acumul=Y2*)
SUB Y1 (*acumul=Y2-Y1*)
ST temp (*temp=acumul*)
Y2 P2
MUL temp (*acumul= temp^2*)
ADD( X2 (*adia a soma, acumul=X2*)
SUB X1 (*acumul=X2-X1*)
ST temp (*temp=acumul*)
MUL temp (*acumul= temp^2*)
Y1
P1 ) (*executa a soma adiada dos quadrados*)
ST temp (*temp=acumul*)
X1 X2 CAL SQRT(temp) (*chama função raiz quadrada*)
ST resultado (*resultado=acumul*)
GT 10 (*testa se resultado>10*)
JMPC DESLOCA (*chama subrotina se verdadeiro*)
S alarme (*alarme = TRUE*)
RET (*retorna ao programa sem alarme*)
DESLOCA:
RET (*retorna sem alarme*)
6. LINGUAGENS DE PROGRAMAÇÃO – (IL) LISTA DE INSTRUÇÕES

Exercício:
Programar uma partida e parada de um motor, sendo:
-Uma botoeira com contato NA para partida do motor
-Uma botoeira com contato NF para parada do motor
-Um contato NF de falha do Relé Térmico
-Um contator para acionamento do motor
6. LINGUAGENS DE PROGRAMAÇÃO – (IL) LISTA DE INSTRUÇÕES

Solução Exercício:
1. Definir as Entradas
2. Definir as Saídas
3. Endereçar as Entradas
4. Endereçar as Saídas
5. Escrever Programa
6. Testar
6. LINGUAGENS DE PROGRAMAÇÃO – (FBD) BLOCOS

„ DIAGRAMA DE BLOCOS (FBD – Function Block Diagram )

„ Totalmente gráfica

„ Aplicações mistas de lógica combinacional, temporização,


contagem e, em menor importância, o sequenciamento de
operações.

„ Baseada em função de fluxo de sinais entre a interligação


dos elementos da linguagem, que são os blocos funcionais.
6. LINGUAGENS DE PROGRAMAÇÃO – (FBD) BLOCOS

„ Representação Gráfica

„ O Bloco Funcional é representado graficamente por um


retângulo com “pinos” de entrada do lado esquerdo e
“pinos” de saída do lado direito. A função do bloco é
indicada na parte superior interna ao retângulo. Os
parâmetros são descritos ao lado de cada “pino” no interior
do bloco.

FUNÇÃO

PARÂMETROS
DE PARÂMETROS
ENTRADA DE SAÍDA
6. LINGUAGENS DE PROGRAMAÇÃO – (FBD) BLOCOS

0 0 1 1
A AND A

S
0 1 0 1
B B

0 0 0 1
S

“E” Lógico
MAPA DE SINAIS

0 0 1 1
A
A OR

S
0 1 0 1
B B

0 1 1 1
S
“OU” Lógico
MAPA DE SINAIS
6. LINGUAGENS DE PROGRAMAÇÃO – (FBD) BLOCOS

0 1
NOT A
A
S

1 0
S

“OU” Lógico MAPA DE SINAIS

0 0 1 1
A
A XOR

S
0 1 0 1
B B

0 1 1 0
S
“OU EXCLUSIVO” Lógico

MAPA DE SINAIS
6. LINGUAGENS DE PROGRAMAÇÃO – (FBD) BLOCOS

Exemplo: S = ((A+B)*C)*D

D AND

C AND S

A OR

B
6. LINGUAGENS DE PROGRAMAÇÃO – (FBD) BLOCOS

blocos de temporização – RETARDO NA ENERGIZAÇÃO

RETARDO NA ENERGIZAÇÃO
IN

TON
Q
BOOL IN Q BOOL PT

IN
TIME PT ET TIME

ET
6. LINGUAGENS DE PROGRAMAÇÃO – (FBD) BLOCOS

blocos de temporização – RETARDO NA DESENERGIZAÇÃO

RETARDO NA DESENERGIZAÇÃO

IN

TOF

BOOL IN Q BOOL
Q
PT PT

TIME PT ET TIME

ET
6. LINGUAGENS DE PROGRAMAÇÃO – (FBD) BLOCOS

blocos de contagem – CONTADOR CRESCENTE

CONTADOR UP

CTU

BOOL CU Q BOOL
CU: ENTRADA PULSOS
R : RESET
R
PV: VALOR REFERÊNCIA
BOOL
Q : SAÍDA
CV : VALOR DA CONTAGEM
INT PV CV INT
6. LINGUAGENS DE PROGRAMAÇÃO – (FBD) BLOCOS

blocos de contagem – CONTADOR DECRESCENTE

CONTADOR DOWN

CTD

BOOL CD Q BOOL
CD: ENTRADA PULSOS
LD : LOAD (CV:=PV)
LD PV: VALOR REFERÊNCIA
BOOL
Q : SAÍDA
CV : VALOR DA CONTAGEM
INT PV CV INT
6. LINGUAGENS DE PROGRAMAÇÃO – (FBD) BLOCOS

blocos especiais – RELÓGIO DE TEMPO REAL

RELÓGIO DE TEMPO REAL

RTC

BOOL RUN Q BOOL

DATE_AND_TIME PDT CDT DATE_AND_TIME

RUN : ATIVAR=1
PDT : HORA ATUAL
Q : SAÍDA
CDT : HORA DE REFERÊNCIA
6. LINGUAGENS DE PROGRAMAÇÃO – (FBD) BLOCOS

„ Composição de Blocos

PÁTIO
CORREIA 1

CORREIA 2
SIST_ALIM_SILOS
CORREIA 3
PROCESS_START
NÍVEL-MÁX
PROCESS_STOP Motor_1 START
SILO

Motor 1 STD_BY Motor_2 START NÍVEL-MIN

Motor 2 STD_BY Motor_2 START

Motor 3 STD_BY Motor_1 STOP

EMERG_STOP Motor_2 STOP

SILO_CHEIO Motor_2 STOP

SILO_VAZIO
6. LINGUAGENS DE PROGRAMAÇÃO – (FBD) BLOCOS

Exercício:
Programar uma partida e parada de um motor, sendo:
-Uma botoeira com contato NA para partida do motor
-Uma botoeira com contato NF para parada do motor
-Um contato NF de falha do Relé Térmico
-Um contator para acionamento do motor
6. LINGUAGENS DE PROGRAMAÇÃO – (LD) LADDER

„ DIAGRAMA LADDER (LD – LADDER Diagram )

„ Totalmente gráfica ;

„ Evoluíram dos diagramas de contatos elétricos;

„ Baseada em função de fluxo de sinais entre a interligação


dos elementos da linguagem;

„ Mais Difundida
6. LINGUAGENS DE PROGRAMAÇÃO – (LD) LADDER

„ Analogia com diagrama de contatos

Fonte da Figura: Schneider-Electric, Twido Software Manual


6. LINGUAGENS DE PROGRAMAÇÃO – (LD) LADDER

„ Analogia com diagrama de contatos


„ Utiliza símbolos equivalentes aos elétricos representando as
mesmas funções. A figura abaixo mostra a equivalência dos
principais símbolos.

SÍMBOLO ELÉTRICO SÍMBOLO LADDER

CONTATO NORMALMENTE
FECHADO - NF

CONTATO NORMALMENTE
ABERTO - NA

DISPOSITIVO DE SAÍDA
BOBINA
6. LINGUAGENS DE PROGRAMAÇÃO – (LD) LADDER

„ Representação Gráfica
6. LINGUAGENS DE PROGRAMAÇÃO – (LD) LADDER
6. LINGUAGENS DE PROGRAMAÇÃO – (LD) LADDER

„ Representação Gráfica

varredura

contatos bobinas

blocos
funcionais

“barramento energizado” “barramento de terra”


6. LINGUAGENS DE PROGRAMAÇÃO – (LD) LADDER

lógica AND

Fonte da Figuras: Schneider-Electric, Twido Software Manual


6. LINGUAGENS DE PROGRAMAÇÃO – (LD) LADDER

lógica OR
6. LINGUAGENS DE PROGRAMAÇÃO – (LD) LADDER

lógica XOR
6. LINGUAGENS DE PROGRAMAÇÃO – (LD) LADDER

bloco de função
de temporizador
6. LINGUAGENS DE PROGRAMAÇÃO – (LD) LADDER

bloco de função de
contador Up/Down
6. LINGUAGENS DE PROGRAMAÇÃO – (LD) LADDER

bloco de função
de comparação
6. LINGUAGENS DE PROGRAMAÇÃO – (LD) LADDER

bloco de função
aritmética
6. LINGUAGENS DE PROGRAMAÇÃO – (LD) LADDER

BD = Botoeira desliga (contato NF) – Entrada (input)


BL = Botoeira liga (contato NA) – Elemento de entrada (input)
K1 = Bobina do contator - Saída (output)
K1.x = Contato de Selo – Auxiliar (variável interna)
6. LINGUAGENS DE PROGRAMAÇÃO – (LD) LADDER

Exercício:
Programar uma partida e parada de um motor, sendo:
-Uma botoeira com contato NA para partida do motor
-Uma botoeira com contato NF para parada do motor
-Um contato NF de falha do Relé Térmico
-Um contator para acionamento do motor
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ GRAFCET

„ Gráfico Funcional de Comando Etapa-Transição

„ Linguagem Gráfica

„ Fácil Compreensão

„ Indicada para Processos Seqüenciais


6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Elementos Gráficos

ETAPA inicial

ETAPA 0 0
„ ETAPAS Ações na etapa 0

„ TRANSIÇÕES
„ LIGAÇÕES ORIENTADAS 1° Transição Ligação orientada

„ AÇÕES
1 Ações na etapa 1
ETAPA 1

Retorno à ETAPA 0

2° Transição

2 Ações na etapa 2
ETAPA 2

3° Transição
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Etapas

„ Correspondem aos estados do sistema. Podem estar ativas


ou inativas. A elas estão associadas as ações a serem
realizadas naquele estado.

„ As etapas são representadas por um quadrado numerado no


seu interior, indicando o numero da etapa. As etapas ativas
são representadas com um ponto em baixo no número no
interior do quadrado.

1
ETAPA 1 - Ativa
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Etapa inicial

„ A etapa inicial é sempre representada por um quadrado


duplo;

„ São ativadas incondicionalmente sempre que o programa é


colocado para funcionar;

„ Geralmente não possuem ações associadas;

„ Podem situar-se em qualquer ponto do Grafcet;


6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Etapa inicial

„ Uma vez iniciadas têm o mesmo tratamento que as outras


etapas;

„ Sempre deve existir uma etapa inicial;

ETAPA inicial

0
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Transições
„ As transições são as condicionantes para as passagens
entre uma etapa ativa anterior para um etapa inativa na
seqüência. A condição de uma transição é chamada de
receptividade.
„ Representa-se a transição com um pequeno traço horizontal
sobre a linha que liga as etapas:

Transição

2
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Transições
„ As receptividades correspondem à condições que têm que
ser satisfeitas para a transição se torne verdadeira ou válida.
Em geral são associadas à condições lógicas booleanas,
temporizadores, etc.

(Nível_baixo*Motor_parado)

2
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Ligações Orientadas

„ As ligações orientadas representam os caminhos de


evolução entre as etapas. São desenhadas na vertical e na
horizontal. A evolução natural é de cima pra baixo sendo
obrigatório representar com uma seta quando o sentido for
diferente.

„ Deve-se evitar o cruzamento de ligações para que o


diagrama final seja o mais compreensível possível.
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Ligações Orientadas

M0 R C0

/I0.0 I0.1

M1 Q0.1

Q0.2
I0.0
Q0.3

C0.V=10

M2 Q0.2

I0.0

C0.V=20

M3 Q0.3

I0.0+(C0.V=30)
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Ações
„ As ações estão ligadas às etapas.
„ São representadas por um retângulo com duas divisões
internas ligado à Etapa. A primeira divisão contém o
qualificador da ação e a segunda divisão contém a descrição
textual da ação.

1 x y

„ x : é o qualificador da ação – define como a ação será


executada
„ y : é a descrição textual da ação a ser executada
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Qualificadores
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ N - Ação Não Memorizada

„ Ações que são executadas somente enquanto a Etapa


estiver ativa.

E6

E6 N M1
M1
a
a
E7 N M2
E7

M2
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ S - Ação Memorizadas
„ Tipo de ação que se mantém ativa mesmo depois da duração
em que a Etapa permanece ativa. Para desativar uma ação
memorizada deve-se usa o qualificador “R” (reset).

E6 S M1
E6
a
a

E7 E7
b
b
E8
E8 R M1
M1
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ L - Ação Limitada no Tempo


„ A ação é executada durante um tempo preestabelecido pelo
programa a partir da ativação da Etapa. Se a Etapa for
desativada antes da finalização do tempo programado a
ação interrompe sua execução.

E6 T

E6 L M1 (T=3s)
M1
a

a
E7

E7
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ D - Ação com Atraso no Tempo

„ A ação é executada aos um atraso de tempo preestabelecido


pelo programa, a partir do instante da ativação da Etapa. Se
a Etapa for desativada antes da finalização do tempo
programado a ação interrompe sua execução.

E6
E6 D M1 (T=3s) T

a M1

a
E7

E7
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ C - Ação Condicionada

„ Este tipo de ação é associado a uma condição lógica. A ação


só será executada enquanto a Etapa estiver ativa e a
condição lógica verdadeira.

E6

E6 C M1 (se k=1)
k

a
M1

E7
a

E7
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ P - Ação Impulso

„ A ação é executada após a Etapa ser ativada com uma


duração muito pequena mas com tempo suficiente para ser
reconhecida pelo programa.

E6

E6 P M1
M1

a
a

E7
E7
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ SD – Ação Memorizada e Atrasada no Tempo

„ Quando a Etapa se torna ativa a ação é memorizada mas só


começa a ser executada após o tempo preestabelecido pelo
programa. Independe da duração da atividade da Etapa.

„ Para desativar a ação deve-se usar o qualificador R (reset)


para esta ação.
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ SD – Ação Memorizada e Atrasada no Tempo


E6
T

M1

a
E6 SD M1 (T=3s)
En
a

E6
En R M1 T

M1

En
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ DS – Ação Atrasada no Tempo e Memorizada

„ Quando a Etapa se torna ativa a ação é memorizada mas só


começa a ser executada após o tempo preestabelecido pelo
programa. Depende da duração da atividade da Etapa.

„ Para desativar a ação deve-se usar o qualificador R (reset)


para esta ação.
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ DS – Ação Atrasada no Tempo e Memorizada

E6
T

M1

a
E6 DS M1 (T=3s)
En
a

E6
En R M1 T
M1

En
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ SL – Ação Memorizada e Limitada no Tempo

„ Quando a Etapa se torna ativa a ação é memorizada é


começa a ser executada durante o tempo preestabelecido
pelo programa, Independe da duração da atividade da Etapa.
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ SL – Ação Memorizada e Limitada no Tempo

E6 T

E6 SL M1 (T=3s) M1

a
a

En
En R M1
E6
T

M1

En
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Regras de Evolução do Grafcet

„Regra 1: inicialização
„Na inicialização do sistema ativa-se a etapa incial

„Regra 2: transposição de uma etapa


„Uma etapa só é transposta quando a mesma está ativa e
a transição imediatamente seguinte tem sua
receptividade verdadeira.

„Regra 3: transposição de uma transição


„A transposição de uma transição provoca a ativação
da(s) etapa(s) imediatamente seguintes e a desativação
da(s) etapa(s) imediatamente precedentes.
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Regras de Evolução do Grafcet

Não há Transposição Não há Transposição Ocorre Transposição

1 1 1

a=0 ou a=1 a=0 a=1

2 2 2
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Tipos de Ligações entra Etapas


„ Seqüência Única:

Antes Depois Depois


1 1 1

a=1 a=0 a=0

2 2 2

b=1 b=0
b=0

3 3
3
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Seqüências Alternativas:
„ Divergência OU:

Depois
Antes 1
1

a b
a=0 b=1

2 3 2 3
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Seqüências Alternativas:
„ Convergência OU

Antes

Depois

7 3
7 3

a=0 b=1
a b

9 9
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Seqüência Simultâneas:
„ Divergência E

Antes
Depois
3 3

a=1 a

4 6 4 6
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Seqüência Simultâneas:
„ Convergencia E

Antes Depois

7 3
7 3

a
a=1

9 9
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Salto de Etapas:

/a a

d
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

„ Repetição de Etapas:

/c 3

d
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET

Exercício:
Programar uma partida e parada de um motor, sendo:
-Uma botoeira com contato NA para partida do motor
-Uma botoeira com contato NF para parada do motor
-Um contato NF de falha do Relé Térmico
-Um contator para acionamento do motor
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ TEXTO ESTRUTURADO:

É a linguagem de mais alto nível que tem sua sintaxe mais


semelhante às linguagens de microprogramação como Pascal,
C++, etc, preferida pelos desenvolvedores de softwares em
geral.

Por ser estruturada é de fácil legibilidade é a mais indicada


para aplicações que envolvem cálculos aritméticos
complexos.
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ TEXTO ESTRUTURADO:

„ Comandos:
„ IF / THEN / ELSE / ELSIF / END_IF
„ CASE / ELSE / END_CASE
„ FOR ... DO
„ WHILE ... DO
„ REPEAT ... UNTIL

„ Atribuições:
„ Usado para alterar o valor armazenado em uma variável
„ A:=B

„ Operadores:
„ São usados para operações aritméticas e booleanas.
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ Operadores:
„ São usados para operações aritméticas e booleanas.
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ Expressões
„ São usados para operações aritméticas e booleanas.
„ São usadas para gerar valores de outras variáveis e
constantes

„ Preço:= produto1*custo1 + produto2*custo2


6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ Comandos Condicionais: IF - THEN - ELSE

„ São utilizados para executar comandos quando a condição da


expressão booleana é verdadeira:

IF <expressão_booleana> THEN
<comandos>
END_IF;

IF <expressão_booleana> THEN
<comandos>
ELSE
<comandos>
END_IF;
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ Comandos Condicionais: IF - THEN - ELSE

IF <expressão_booleana> THEN
<comandos>
ELSEIF <expressão_booleana>
<comandos>
ELSE
<comandos>
END_IF;
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ Comandos Condicionais: IF - THEN - ELSE

„ Exemplos:

IF sobrecarga THEN
desliga:= TRUE;
alarme:= TRUE;
END_IF
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ Comandos Condicionais: IF - THEN - ELSE

„ Exemplos:

IF nível_mínimo<10 THEN
Liga_bomba:=TRUE;
Sinaleiro_ligado:=TRUE;
Sinaleiro_deslig:= FALSE;
ELSE
Liga_bomba:= FALSE;
Sinaleiro_ligado:= FALSE;
Sinaleiro_deslig:= TRUE;
END_IF
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ Comandos Condicionais: IF - THEN - ELSE

„ Exemplos:

IF nivel < nivel_min THEN


alarme_nivel_min:=TRUE;
ELSIF sobrecarga=FALSE THEN
liga_motor:=TRUE;
ELSE
alame_sobrecarga:=TRUE;
liga_motor:=FALSE;
END_IF
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ Comandos Condicionais: CASE

São utilizados para executar comandos em função do valor


inteiro da expressão:

CASE <expressão_inteiro> OF
< valor 1> : <comandos>
< valor 2> : <comandos>
< valor 3> : <comandos>
ELSE
<comandos>
END_CASE;
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ Comandos Condicionais: CASE

Exemplo: posicionamento de elevador hidráulico

CASE elevação OF
1: altura :=5;
2: altura :=10;
3: altura :=15;
4: altura :=20;
5: altura :=25;
ELSE
Altura :=0;
END_CASE
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ Comandos de Repetição: FOR...DO

São usados para comandos repetitivos em função de uma


condição. Quando se programa laços de repetição deve-se atentar
para garantir que em algum momento a condição de saída seja
satisfeita senão o programa irá entrar num loop infinito.

FOR <inicia a variável>


TO <valor final da variável>
BY <valor incremental> (opcional. Se
omitido o valor incremental será = 1)
DO <comandos>
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ Comandos de Repetição: FOR...DO

Exemplo: reset de variáveis indexadas

FOR x:=0 to 120 DO


Motor1[x]:=0
END_FOR
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ Comandos de Repetição: WHILE ... DO

Estes laços se utilizam quando queremos repetir um número


indefinido de vezes a execução de uns comandos, sempre que se
cumpra uma condição.

A condição da expressão booleana é testada antes da entrada no


laço, de modo que se a condição é falsa os comandos não são
executados.

WHILE <expressão booleana> DO


<comandos>
END_WHILE
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ Comandos de Repetição: WHILE ... DO

Exemplo: controle do giro de uma máquina

WHILE ângulo<130 DO
Giro();
angulo:=angulo+pulso;
END_WHILE
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ Comandos de Repetição: REPEAT...UNTIL

São laços também utilizados para repetição de comandos enquanto


uma condição for verdadeira.

A diferença aqui é que os comandos são executados pelo menos uma


vez porque a condição é testada ao final da execução dos comandos.
O laço é encerrado quando a condição se torna falsa.

REPEAT
<comandos>
UNTIL <expressão booleana>
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

„ Comandos de Repetição: REPEAT...UNTIL

Exemplo: controle do giro de uma máquina

REPEAT
Giro();
angulo:=angulo+pulso;
UNTIL ângulo<130
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO

Exercício:
Programar uma partida e parada de um motor, sendo:
-Uma botoeira com contato NA para partida do motor
-Uma botoeira com contato NF para parada do motor
-Um contato NF de falha do Relé Térmico
-Um contator para acionamento do motor

Anda mungkin juga menyukai