Naptec Basico
Naptec Basico
Naptec Basico
O Naptec tem como objetivo de fornecer os melhores treinamentos, com tecnologia de ponta,
qualidade e por um preço justo. O Naptec é uma empresa do Grupo Acesso/Apogeu.
© Todos os direitos sobre esta obra são reservados ao NAPTEC - Núcleo de Aprendizado
Profissional e Tecnológico Ltda. Nenhuma parte desse material pode ser reproduzida, armazenada
ou transmitida por meios eletrônicos, fotográficos, mecânicos, ou qualquer outro que exista ou
que venha a existir, sem a autorização prévia, expressa e por escrito.
PROGRAMAÇÃO DE CLPs
CURSO S7300 – Nivel2
1
2
3
4
Primeiramente preciso criar uma estação de acordo com Hardware
5
É possível digitar o código dos itens em “Suchen” ou navegando através
da arvore em destaque
6
Configurando o Hardware:
• Digite o código da CPU ou clique em: “Profinet IO” “I/O” “ET200S” “IM
151-8 PN/DP CPU V3.2” (Verifique o código na caixa embaixo em destaque
• Arraste ou dê um clique duplo em “IM 151-8 PN/DP CPU V3.2”
7
8
9
Configuração de Hardware
CPU IM151-8
10
Configurações da CPU
PROFINET IO
PROFINET CBA
Open IE communication (TCP, ISSO-on-TCP e UDP)
Web Server
S7 Communication (via FBs)
11
Propriedades CPU
12
Criando uma Conexão com o PLC
13
Criando uma Conexão com o PLC
14
Criando uma Conexão com o PLC
15
Criando uma Conexão com o PLC
16
Criando uma Conexão com o PLC
17
Criando uma Conexão com o PLC
Endereço IP:
Máscara de sub-rede:
18
Escolha o formato de comunicação
Escolha a Opção
19
Realizando o 1º Download de Hardware
2) Clique em “OK”
20
Realizando o 1º Download de Hardware
• Clique em “Yes” para que a sua CPU seja alterada o modo de STOP para RUN.
21
Organization Block (OB) Blocos de organização
de software
22
OB100
OB101 Startup
OB102
23
24
• Clique com o botão direito do mouse. “Insert New Object” “Function”
25
Clique e arraste o bloco “FC1 Controle de Processo1” para dentro do bloco
“OB1 MAIN”
26
Para iniciar a programação de um FC Parametrizável você precisa criar variáveis e utilizar a Área
Local.
27
Clique e arraste o bloco “FC10 Motor” para por exemplo o bloco “OB1
MAIN”
28
FC obrigatório informar os parâmetros no bloco.
29
30
31
PLCSIM
32
PLCSIM
33
34
Monitorando TAGS no PLC
Para monitorar:
2) Clique no ícone
35
36
37
38
39
Bits da STATUS WORD
40
NOTA
• O valor “0” no primeiro bit 2 indica uma Ação, no exemplo acima Q0.0
na Network1 e Q0.1 na Network2.
41
NOTA
• O valor “1” no segundo bit da palavra STATUS (2¹) indica que o contato
acima I0.0 da Network1 está atuado, isto é, o RLO é “1”.
• O valor “1” no segundo bit da palavra STATUS (2¹) indica que o contato
acima I0.1 da Network1 não está atuado, isto é, o RLO é “1”.
• O valor “1” no segundo bit da palavra STATUS (2¹) indica que a saída
acima Q0.0 da Network1 está atuada, isto é, o RLO é “1”.
42
NOTA
• O valor “1” no terceiro bit da palavra STATUS (2²) indica que o contato
acima I0.0 da Network1 está atuado, isto é, o RLO é “1” e STA é “1”.
• O valor “0” no terceiro bit da palavra STATUS (2²) indica que o contato
acima I0.1 da Network1 não está atuado, isto é, o RLO é “1” e STA é “0”.
• O valor “1” no terceiro bit da palavra STATUS (2²) indica que a saída
acima Q0.0 da Network1 está atuada, isto é, o RLO é “1” e STA é “1”.
43
NOTA
• O valor “1” no quarto bit da palavra STATUS (2³) indica que a lógica OU
descrita acima já foi satisfeita quando, I0.0 da Network1 está atuado, isto
é, o RLO é “1” e STA é “1” e OR em “1”.
44
NOTA
No exemplo acima o número máximo que pode ser escrito dentro de uma
variável do comprimento WORD é 32767 e quando escrevemos 32767 + 1 =
32768 ocorre um Overflow e é indicado através do bit OS.
JOS Salta se OS = 1
BE Final de Bloco
BEC Final de Bloco Condicional
BEU Final de Bloco Incondicional
45
NOTA
No exemplo acima o número máximo que pode ser escrito dentro de uma
variável do comprimento WORD é 32767 e quando escrevemos 32767 + 1 =
32768 ocorre um Overflow e é indicado através do bit OS e OV.
46
NOTA
• Para acessar os bits CC0 e CC1 podem ser testados através das seguintes
instruções:
47
NOTA
Bit BR
48
49
50
51
AND <Bit>
Verifica se o estado lógico do BIT é “1”.
EXEMPLO:
52
OR <Bit>
Verifica se o estado lógico do BIT é “1”.
EXEMPLO:
53
EXEMPLO:
54
S <Bit>
R <Bit>
EXEMPLO:
55
FP <Bit>
FN <Bit>
EXEMPLO:
56
NOT
57
SET
EXEMPLO:
58
CLR
EXEMPLO:
59
SAVE
60
61
62
63
64
S_PULSE –(SP)–
Temporizador de Pulso enquanto a entrada “S” estiver em “1” a saída “Q” é acionada o
tempo descrito em “TV”.
S_PEXT –(SE)–
Temporizador de Pulso Estendido quando a entrada “S” estiver em “1” e após levada a
“0” ou permanecer em “1” a saída “Q” é acionada o tempo descrito em “TV”.
S_ODT –(SD)–
Temporizador Retardo na Energização enquanto a entrada “S” estiver em “1” é contado
o tempo descrito em “TV” então a saída “Q” é acionada.
S_ODTS –(SS)–
Temporizador Retardo na Energização com Armazenamento quando a entrada “S”
estiver em “1” e após levada a “0” ou permanecer em “1” é contado o tempo descrito
em “TV” então a saída “Q” é acionada.
S_OFFDT –(SF)–
Temporizador Retardo na Desenergização quando a entrada “S” estiver em “1” e após
levada a “0” a saída “Q” é acionada o tempo descrito em “TV”.
65
Programação de SIMATIC Timer
66
Utilizando os temporizadores IEC
67
68
TAGS
Particularidades:
69
TAGS
I0.0 = START
I0.1 = STOP Q0.0 = M1
I0.2 = S1 Q0.1 = C1
I0.3 = S2 Q0.2 = C2
I0.4 = S3
I0.5 = S4
Particularidades:
70
TAGS
Particularidades:
71
72
Contagem Crescente
Quando o RLO na entrada “CU” passa de “0” para “1” o valor atual do contador é
incrementado de uma unidade (limite superior = 999).
Contagem Decrescente
Quando o RLO na entrada “CD” passa de “0” para “1” o valor atual do contador é
decrementado de uma unidade (limite inferior = 0).
Set do Contador
Quando o RLO na entrada "S" passa de “0” para “1” o valor do contador passa a ser o
valor especificado na entrada “CV”.
Reset do Contador
Quando o RLO = 1 o valor do contador é levado a zero. Se a condição de reset é
permanente, o contador não pode iniciar a contagem não é possível.
PV
É o valor da contagem em uma constante (C#...)
CV / CV_BCD
O valor do contador pode ser carregado como um número binário ou um número BCD
Q
O estado de sinal do contador pode ser verificado na saída “Q”: Quando = ZERO, Q = 0
se diferente de ZERO a saída Q = 1.
73
Programação de SIMATIC Counter
74
Utilizando os Contadores IEC
75
CMP== Está função faz a comparação de dois dados o superior com o
inferior se a comparação for igual então o RLO da instrução será igual a um.
Os tipos de dados que podem ser utilizados são: INT, DINT, REAL, BYTE, WORD , DWORD, USINT,
UINT, UDINT, SINT, STRING, CHAR, DATE, TIME, DTL, TIME_OF_DAY, LREAL.
76
Exemplo das funções:
77
78
TAGS
Particularidades:
79
TAGS
Particularidades:
80
81
Outros formatos:
82
No exemplo abaixo vemos uma multiplicação simples entre dois valores
fixos.
83
MOVE
Os tipos de dados que podem ser utilizados são: BYTE, CHAR, WORD, INT, DWORD, DINT,
REAL, LREAL, DATE, TIME_OF_DAY, TIME, USINT, UINT, UDINT, SINT, ARRAY, STRUCT, CREF,
NREF, VREF, FBTREF, IEC_COUNTER, IEC_TIMER, BLOCK_UDT, BLOCK_SDT, DTL,
IEC_SCOUNTER, IEC_DCOUNTER, IEC_UCOUNTER, IEC_USCOUNTER, IEC_UDCOUNTER,
ERRORSTRUCT, AOM_IDENT, EVENT_ANY, EVENT_ATT, EVENT_HWINT, HW_ANY, HW_IO,
HW_SUBMODULE, HW_HSC, HW_PWM, HW_PTO, HW_INTERFACE, OB_ANY, OB_DELAY,
OB_TOD, OB_CYCLIC, OB_ATT, , CONN_ANY, CONN_OUC, PORT, OB_PCYCLE, OB_HWINT,
OB_COMM, OB_DIAG, OB_TIMEERROR, OB_STARTUP, HW_IOSYSTEM, HW_DEVICE,
HW_DPSLAVE, CONN_PRG, RTM
84
85
Se fosse necessário fazer a seguinte fórmula matemática:
R = (A - B)
4
Onde:
A = MW20
B = MW22
R = MW24
86
Exemplo de utilização da função:
87
Exemplo de utilização da função:
88
89
90
Exemplo para o S7400
91
92
93
94
95
96
97
INVI
INVD
98
Exemplo de NEGI
99
Exemplo de SLW
Exemplo de SLD
100
101
102
103
Funções:
104
105
106
TAGS
X1
X2
Y1
Y2
D
Particularidades:
107
108
Percebemos que, como o SALTO é INCONDICIONAL, nunca será transferido
ZERO para a memória MW20
109
110
111
112
Fluxograma de funcionamento:
113
114
TAGS
I0.0 START
MW0 TOTAL.PEÇAS
Particularidades:
115
TAGS
V1 Q0.0
V2 Q0.1
V3 Q0.2
V4 Q0.4
MW10 VELOCIDADE
MW12 VALOR.VELOCIDADE
Particularidades:
116
TAGS
I0.0 START
I0.1 STOP
Q0.0 INDICAÇÃO.VELOC.OK
Q0.1 INDICAÇÃO.VELOC.NOK
MW10 VELOCIDADE.DESEJADA
Particularidades:
117
118
As variáveis de endereçamento indireto são chamados de PONTEIROS ou INDEXADORES.
Tipos de Ponteiros
• 16 bits Utilizado em endereçamento de Temporizadores,
Contadores, aberturas de DB, FC e FB.
• 32 bits Utilizado como ponteiro de áreas de memórias internas e
cruzadas. Os registradores (AR1 / AR2) são de 32 bits.
• 48 bits Conhecido como formato POINTER, utilizado para
passagem de parâmetros de blocos (FC / FB), contém área de DB.
• 80 bits Conhecido como formato ANY, utilizado para passagem de
parâmetros de blocos (FC / FB), contém área de DB, tipo de dado e fator de repetição.
119
Para chamadas de blocos podemos utilizar as seguintes funções:
120
121
Neste exemplo de aplicação, o valor que estava na MD4 e carregado na MD10 e o valor
da MD8 é carregado para M14
122
Neste exemplo de aplicação, o valor do ponteiro P#4.0 e carregado no Registrador1 e após é
carregado o valor da MW 14 e transferido para a QW 80.
Para casos de Registradores, temos sempre o valor carregado + offset de endereço a ser somado
com o AR1.
No exemplo 4 + 10 = 14, ou seja, MW 14.
É possível enviar o valor dentro do REGISTRADOR para o ACUMULADOR através da instrução TAR1
ou TAR2
Existe também a possibilidade de inverter os conteúdos do REGISTRADORES através da instrução
CAR
123
O dado deve ser quebrado e carrega primeiramente em formato de 16 bits e depois de 32 bits
totalizando 48 bits.
Exemplo de POINTER (48 bits)
124
O dado deve ser quebrado conforme abaixo.
Exemplo de ANY (80 bits)
125
As funções de STRING se encontram em:
Libraries Standard Library IEC Function Blocks
O software possui as
seguintes FCs para
trabalhar com
STRING:
FC2, FC4, FC10, FC11,
FC13, FC15, FC17,
FC19, FC20, FC21,
FC24, FC26, FC29,
FC31 e FC32.
126
127
TAGS
I0.0 = START Q0.1 = VL.FRUTA Q0.3 = EM.PROCESSO
I0.1 = STOP Q0.2 = VL.AGUA Q0.4 = PRONTO
Q0.0 = VL.AÇUCAR
Particularidades
• Utilize o bloco SUCOS [FB 33] para desenvolver a lógica da fabricação do suco.
• Crie a RECEITAS [DB 11] e defina os valores iniciais de acordo com a tabela.
• Utilize a função STRING para verificar qual a receita a ser produzida, desenvolva
dentro da VALIDAÇÃO.RECEITAS [FC 20] / VAL.IDAÇÃO.DB [DB 3].
• Desenvolva a lógica de temporizadores e booleana em PRODUÇÃO.SUCO [FC 4].
• Utilize a linguagem STL em todo o software.
128