Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
LINGUAGENS DE PROGRAMAÇÃO
CONCEITO
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
Textual
Baixo Nível
Pouco Legível
INSTRUÇÃO=OPERADOR(opção modificadores)+OPERANDOS
(constantes, variáveis)
OPERADORES
MODIFICADORES
RESUMO
Operação de Soma
LD 10 (*acumulador = 10*)
ADD 10 (*acumulador = 20*)
Operação Booleana
Execução Adiada
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
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
Totalmente gráfica
Representação Gráfica
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
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
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
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
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
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
RTC
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
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
Totalmente gráfica ;
Mais Difundida
6. LINGUAGENS DE PROGRAMAÇÃO – (LD) 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
lógica AND
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
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
Linguagem Gráfica
Fácil Compreensão
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
1
ETAPA 1 - Ativa
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET
Etapa inicial
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
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
Qualificadores
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET
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
E6 T
E6 L M1 (T=3s)
M1
a
a
E7
E7
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET
E6
E6 D M1 (T=3s) T
a M1
a
E7
E7
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET
C - Ação Condicionada
E6
E6 C M1 (se k=1)
k
a
M1
E7
a
E7
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET
P - Ação Impulso
E6
E6 P M1
M1
a
a
E7
E7
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET
M1
a
E6 SD M1 (T=3s)
En
a
E6
En R M1 T
M1
En
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET
E6
T
M1
a
E6 DS M1 (T=3s)
En
a
E6
En R M1 T
M1
En
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET
E6 T
E6 SL M1 (T=3s) M1
a
a
En
En R M1
E6
T
M1
En
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET
Regra 1: inicialização
Na inicialização do sistema ativa-se a etapa incial
1 1 1
2 2 2
6. LINGUAGENS DE PROGRAMAÇÃO – GRAFCET
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:
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
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
IF <expressão_booleana> THEN
<comandos>
ELSEIF <expressão_booleana>
<comandos>
ELSE
<comandos>
END_IF;
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO
Exemplos:
IF sobrecarga THEN
desliga:= TRUE;
alarme:= TRUE;
END_IF
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO
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
Exemplos:
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
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
WHILE ângulo<130 DO
Giro();
angulo:=angulo+pulso;
END_WHILE
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO
REPEAT
<comandos>
UNTIL <expressão booleana>
6. LINGUAGENS DE PROGRAMAÇÃO – TEXTO ESTRUTURADO
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