Você está na página 1de 156

NAPTEC - Núcleo de Aprendizado Profissional e Tecnológico Ltda.

Rua Barão do Rio Branco, 404


Curitiba – Paraná
CEP 80010-180

Telefone: (41) 3093-9898


www.naptec.com.br
contato@naptec.com.br

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.

Este material está sujeito a alterações, conforme atualização das versões.

PROGRAMAÇÃO DE CLPs
MÓDULO AVANÇADO

1
2
3
SINT

Um operando do tipo SINT tem um comprimento de 8 bits e consiste em dois


componentes: um sinal e um valor numérico no complemento de dois.
As estatísticas de sinal de 0 a 6 bits representam o valor do número. O estado do sinal
do bit 7 representa o sinal. O sinal de assumir "0" para o positivo ou "1" para o negativo.
Um operando do tipo SINT ocupa um byte na memória. 8 bits, assinado inteiros de -128
até 127, como no exemplo abaixo: 44.

= 44

= - 44

4
USINT

Um operando do tipo USINT (INT unsigned short) tem um comprimento de 8 bits e


pode conter valores numéricos não assinados, ou seja, sem sinal.
Um operando do tipo USINT ocupa um byte na memória.
8 bits, Inteiros sem sinal de 0 até 255, como no exemplo abaixo: 255.

= 255

5
INT

Um operando do tipo INT tem um comprimento de 16 bits e consiste em dois


componentes: um sinal e um valor numérico no complemento de dois. As estatísticas de
sinal de 0 a 14 bits representam o valor do número. O estado do sinal de 15 bits (o 8º Bit
do primeiro Byte) representa o sinal. O sinal de assumir o valor "0" (positivo) ou "1"
(negativo).
Um operando do tipo INT ocupa dois bytes na memória.
16 bits, inteiros assinados -32768 até 32767, como no exemplo abaixo com o número
492.

= 492

= - 492

6
UINT

Um operando do tipo UINT (INT sem sinal) tem um comprimento de 16 bits e pode
conter valores numéricos não assinados, ou seja, sem sinal.
Um operando do tipo UINT ocupa dois bytes na memória.
16 bits, inteiros sem sinal de 0 até 65535, como no exemplo abaixo: 65535.

= 65535

7
DINT

Um operando do tipo DINT tem um comprimento de 32 bits e consiste em dois


componentes: um sinal e um valor numérico no complemento de dois. As estatísticas de
sinal de 0 a 30 bits representam o valor do número. O estado do sinal de 31 bits (o 8º Bit
do primeiro Byte) representa o sinal, sendo que se o valor for: "0" (positivo) ou "1"
(negativo).
Um operando do tipo DINT ocupa quatro bytes na memória.
32 bits, assinado inteiros de -2147483648 até 2147483647, como por exemplo com o
número: 123567348.

= + 123.567.348

= - 123.567.348

8
UDINT

Um operando do tipo UDINT (INT duplo sem sinal) tem um comprimento de 32 bits e
pode conter valores numéricos não assinados, ou seja, sem sinal.
Um operando do tipo UDINT ocupa quatro bytes na memória.
32 bits, inteiros sem sinal de 0 até 4294967295, como por exemplo com o 4294967295.

= 4294967295

9
REAL

Operandos do tipo REAL dados têm um comprimento de 32 bits e são usados para exibir
números de ponto flutuante. Um operando do tipo de dados real consiste das seguintes
três componentes:
• Sinal: O sinal é determinada pelo estado do sinal do bit 31. O bit 31 assume o valor
"0" (positivo) ou "1" (negativo).
• 8 bits para expoentes base 2: O expoente é aumentada por uma constante (base,
127), para que ele tenha uma faixa de valores de 0 a 255.
• 23-bit mantissa: Somente a parte fração da mantissa é mostrada. A parte inteira da
mantissa é sempre 1 com normalizada números de ponto flutuante e não é
armazenada.

10
LREAL

Operandos do tipo de dados LREAL tem um comprimento de 64 bits e são usados para
representar números de ponto flutuante. Um operando do tipo de dados LREAL consiste
das seguintes três componentes:
• Sinal: O sinal é determinada pelo estado do sinal do bit 63. O bit 63 assume o valor
"0" (positivo) ou "1" (negativo).
• 11 bits para expoentes base 2: O expoente é aumentada por uma constante (base,
1023), de modo que ele tem uma faixa de valores de 0 a 2047.
• 52-bit mantissa: Somente a parte fração da mantissa é mostrada. A parte inteira da
mantissa é sempre 1 com normalizada números de ponto flutuante e não é
armazenada.

11
Funções que utilizam dados do tipo: BIT, BYTE, WORD, DWORD e FLOATING POINT
nas suas instruções.

12
CALCUTE Está função permite você criar uma fórmula matemática.
Os valores colocado nas entradas (IN1, IN2, INn...) serão utilizados na fórmula. Na saída
OUT será o resultado da equação.
Os tipos de dados que podem ser utilizados são: INT,
DINT, REAL, LREAL, USINT, UINT, SINT, UDINT, BYTE, WORD, DWORD.

13
ADD Função que permite fazer a adição de valores nas entradas
(IN1, IN2, INn) e escreve o resultado da SOMA na saída OUT.

SUB Função que permite fazer a subtração de valores nas


entradas (IN1, IN2, INn) e escreve o resultado da SUBTRAÇÃO na saída OUT.

MUL Função que permite fazer a multiplicação de valores nas


entradas (IN1, IN2, INn) e escreve o resultado da MULTIPLICAÇÃO na saída OUT.

DIV Função que permite fazer a divisão de valores nas entradas


(IN1, IN2, INn) e escreve o resultado da DIVISÃO na saída OUT.

Os tipos de dados que podem ser utilizados são: INT, DINT, REAL, LREAL, USINT, UINT,
SINT, UDINT.

14
MOD Está é uma função divisão, que é possível ver o resultado
do resto. O Dividendo está na entrada IN1 e o Divisor na entrada IN2 o Resto da Divisão
será exibido na saída OUT.

Os tipos de dados que podem ser utilizados são: INT, DINT, USINT, UINT, SINT, UDINT.

15
NEG Está função permite a criação do complemento do valor
colocado na entrada IN e será escrito na saída OUT.

Os tipos de dados que podem ser utilizados são: INT, DINT, SINT, REAL, LREAL.

16
INC Está função possibilita incrementar a cada pulso no EN do
bloco (deverá ser utilizado entrada com Borda de Subida ou Descida para contar apenas
1 a cada pulso) o valor que está em IN/OUT.

Os tipos de dados que podem ser utilizados são: INT, DINT, USINT, UINT, SINT, UDINT.

17
DEC Está função possibilita decrementar a cada pulso no EN do
bloco (deverá ser utilizado entrada com Borda de Subida ou Descida para contar apenas
1 a cada pulso) o valor que está em IN/OUT.

Os tipos de dados que podem ser utilizados são: INT, DINT, USINT, UINT, SINT, UDINT.

18
ABS Está função quando habilitada transforma em o valor da
entrada IN em seu absoluto e escreve na saída OUT.

Os tipos de dados que podem ser utilizados são: INT, DINT, SINT, REAL, LREAL.

19
MIN Está função escreve na saída OUT o menor valor que esta
na entrada (IN1, IN2, INn).

Os tipos de dados que podem ser utilizados são: INT, DINT, USINT, UINT, SINT, UDINT,
REAL, LREAL.

20
MAX Está função escreve na saída OUT o maior valor que esta
na entrada (IN1, IN2, INn).

Os tipos de dados que podem ser utilizados são: INT, DINT, USINT, UINT, SINT, UDINT,
REAL, LREAL.

21
LIMIT Está função escreve na saída OUT o valor da entrada IN
que deve estar entre os valores de MIN e MX.

Os tipos de dados que podem ser utilizados são: INT, DINT, USINT, UINT, SINT, UDINT,
REAL, LREAL.

22
SQR Está função elevada a potência 2 o valor que esta na
entrada IN e escreve na saída OUT.

Os tipos de dados que podem ser utilizados são: REAL, LREAL.

23
SQRT Está função calcula a raiz quadrada do valor que esta na
entrada IN e escreve na saída OUT.

Os tipos de dados que podem ser utilizados são: REAL, LREAL.

24
LN Está função calcula o Logaritmo Natural que esta na
entrada IN e escreve na saída OUT.

Os tipos de dados que podem ser utilizados são: REAL, LREAL.

25
EXP Está função calcula a função = eIN e escreve na saída OUT.

Os tipos de dados que podem ser utilizados são: REAL, LREAL.

26
SIN Está função calcula a valor do ângulo (deve estar em
radianos) do seno colocado na entrada IN e escreve seu valor na saída OUT.

COS Está função calcula a valor do ângulo (deve estar em


radianos) do cosseno colocado na entrada IN e escreve seu valor na saída OUT.

TAN Está função calcula a valor do ângulo (deve estar em


radianos) da tangente colocado na entrada IN e escreve seu valor na saída OUT.

O valor do ângulo no exemplo é de 90º (π/2)

Os tipos de dados que podem ser utilizados são: REAL, LREAL.

27
ASIN Está função calcula o valor do arco seno d na entrada IN e
escreve o valor do seu ângulo (em radianos) na saída OUT.

ACOS Está função calcula o valor do arco cosseno d na entrada


IN e escreve o valor do seu ângulo (em radianos) na saída OUT.

ATAN Está função calcula o valor do arco tangente d na entrada


IN e escreve o valor do seu ângulo (em radianos) na saída OUT.

Os tipos de dados que podem ser utilizados são: REAL, LREAL.

28
FRAC Está função separa o valor inteiro da parte fracionada
escrita na entrada IN e escreve na saída OUT

Os tipos de dados que podem ser utilizados são: REAL, LREAL.

29
EXPT Está função elevada a entrada IN1 a potência estabelecida
na entrada IN2 e escreve na saída OUT

Os tipos de dados que podem ser utilizados são: INT, DINT, SINT, USINT, UINT, UDINT,
REAL, LREAL.

30
Funções que utilizam dados do tipo: 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 nas suas instruções.

31
MOVE Move o valor da entrada IN para a saída (OUT1, OUT2,
OUTn).

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

32
SWAP Está função inverte os bytes descritos na entrada IN (pode
ser WORD ou DWORD) e escreve na saída OUT

33
Funções que utilizam dados do tipo: INT, DINT, REAL, BYTE, WORD, DWORD,
USINT, UINT, UDINT, SINT, STRING, CHAR, DATE, TIME, DTL, TIME_OF_DAY, LREAL
nas suas instruções.

34
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.

CMP<> Está função faz a comparação de dois dados o superior com


o inferior se a comparação for diferente então o RLO da instrução será igual a um.

CMP>= Está função faz a comparação de dois dados o superior com


o inferior se a comparação for maior ou igual então o RLO da instrução será igual a um.

CMP<= Está função faz a comparação de dois dados o superior com


o inferior se a comparação for menor ou igual então o RLO da instrução será igual a um.

CMP> Está função faz a comparação de dois dados o superior com


o inferior se a comparação for maior então o RLO da instrução será igual a um.

CMP< Está função faz a comparação de dois dados o superior com


o inferior se a comparação for menor 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.

35
IN_RANGE Está função verifica se o valor na entrada VAL está dentro
dos valores estipulados nas entradas MIN e MAX. Caso for verdadeiro então o RLO da
instrução será igual a um.

Os tipos de dados que podem ser utilizados são: SINT, INT, DINT, USINT, UINT, UDINT,
REAL, LREAL.

36
OUT_RANGE Está função verifica se o valor na entrada VAL está fora do
intervalo dos valores estipulados nas entradas MIN e MAX. Caso for verdadeiro então o
RLO da instrução será igual a um.

Os tipos de dados que podem ser utilizados são: SINT, INT, DINT, USINT, UINT, UDINT,
REAL, LREAL.

37
–[OK] Está função verifica se o tipo de dado e o valor escrito nele
estão corretos. Caso for verdadeiro então o RLO da instrução será igual a um.

Os tipos de dados que podem ser utilizados são: REAL, LREAL.

38
–[NOT_OK] Está função verifica se o tipo de dado e o valor escrito nele
estão errados. Caso for verdadeiro então o RLO da instrução será igual a um.

Os tipos de dados que podem ser utilizados são: REAL, LREAL.

39
Funções que utilizam dados do tipo: INT, DINT, REAL, USINT, UINT, UDINT, SINT, LREAL,
CHAR, BCD16, BCD32 nas suas instruções.

40
CONVERT Está função converte o valor da entrada IN e escreve na
saída OUT.

Os tipos de dados que podem ser utilizados são: INT, DINT, REAL, USINT, UINT, UDINT,
SINT, LREAL, CHAR, BCD16, BCD32.

41
ROUND Está função arredonda o valor da entrada IN e escreve na
saída OUT.

Os tipos de dados que podem ser utilizados são: USINT, UINT, UDINT, SINT, INT, DINT,
REAL, LREAL.

42
CEIL Está função arredonda o valor da entrada IN para cima e
escreve na saída OUT.

Os tipos de dados que podem ser utilizados são: USINT, UINT, UDINT, SINT, INT, DINT,
REAL, LREAL.

43
FLOOR Está função arredonda o valor da entrada IN para baixo e
escreve na saída OUT.

Os tipos de dados que podem ser utilizados são: USINT, UINT, UDINT, SINT, INT, DINT,
REAL, LREAL.

44
TRUNC Está função escreve apenas o valor da parte inteira da
entrada IN e escreve na saída OUT.

Os tipos de dados que podem ser utilizados são: USINT, UINT, UDINT, SINT, INT, DINT,
REAL, LREAL.

45
SCALE_X Está função converte o valor da entrada VALUE dentro da
escala que está nos valores MIN e MAX e escreve na saída OUT.

Função utilizada para entradas analógicas, primeiramente utilizada a função NORM_X e


o valor normalizado é colocado na entrada VALUE e na saída OUT teremos o valor
dentro da escala.

Os tipos de dados que podem ser utilizados são: USINT, UINT, UDINT, SINT, INT, DINT,
REAL, LREAL.

46
NORM_X Está função normaliza o valor da entrada VALUE dentro da
escala que está nos valores MIN e MAX e escreve na saída OUT.

Função utilizada para entradas analógicas, quando a entrada analógica for por exemplo:

• 0...10V => MIN = 0 MAX = 27648


• +/- 10V => MIN = -27648 MAX = 27648
• 4...20mA => MIN = 0 MAX = 27648

Os tipos de dados que podem ser utilizados são: USINT, UINT, UDINT, SINT, INT, DINT,
REAL, LREAL.

47
48
49
50
51
52
TAGS

I0.0 – Aumenta a velocidade


I0.1 – Diminui a velocidade
Q0.0 – Estágio 1 de velocidade
Q0.1 – Estágio 2 de velocidade
Q0.2 – Estágio 3 de velocidade
Q0.3 – Estágio 4 de velocidade
Q0.4 – Estágio 5 de velocidade
Q0.5 – Lâmpada de sinalização

53
TAGS

I0.0 = Habilita Sistema


I0.1 = Desliga Sistema
I0.2 = Pacote Pequeno
I0.3 = Pacote Médio
I0.4 = Pacote Grande
Q0.0 = Sistema Ligado
Q0.1 = Empacotando P
Q0.2 = Empacotando M
Q0.3 = Empacotando G

54
TAGS

I0.0 = Liga
I0.1 = Desliga
Q0.0 = Em processo
Q0.1 = Final do Processo
Q0.2 = Farinha
Q0.3 = Fermento
Q0.4 = Agua
MW0 = Total de pães

55
56
TAGS

I0.0 = Liga
I0.1 = Desliga
I0.2 = Sensor Presença Pedra
Q0.0 = Motor Esteira 01
Q0.1 = Motor Moedor Sentido Horário
Q0.2 = Motor Moedor Sentido Anti-Horário
Q0.3 = Motor Esteira 02
Q0.4 = Falha

57
58
TAGS

I0.0 = Liga
I0.1 = Desliga
I0.2 = Seleção de Produto
I0.3 = FC1
I0.4 = FC2
Q0.0 = Status
Q0.1 = D1
Q0.2 = D2
Q0.3 = Transportador
Q0.4 = Processo Pronto
Q0.5 = Batedor
IW64 = Válvula Dosador 01
IW66 = Válvula Dosador 02

59
60
TAGS

I0.0 = Liga
I0.1 = Desliga
I0.2 = Reset
IW64 = Viscosímetro
Q0.0 = Produto Não-Conforme
Q0.1 = VL01
Q0.2 = VL02
Q0.3 = VL03
Q0.4 = VL04
Q0.5 = VL05

61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
TAGS

I0.0 = Liga
I0.1 = Desliga
I0.2 = Emergência
IW64 = Sensor Nível Tanque

Q0.0 = Status
Q0.1 = Bomba em Manutenção
Q0.2 = Bomba 01
Q0.3 = Bomba 02
Q0.4 = Bomba 03
Q0.5 = Bomba 04

92
93
Programa Linear Todas as declarações estão em um bloco

Programa Subdividido em áreas As instruções para as funções individuais


estão contidos dentro do bloco

Programa Estruturado Blocos reutilizáveis podem ser


chamados por mais de uma vez

94
Possibilidade de criar dois tipos de FC

• FC

• FC Parametrizável

95
• Clique em “ADD new block”

• (1) Selecione a opção “FC”

• (2) Possível personalizar o nome do bloco

• (3) Escolher a linguagem de programação: LAD, SCL ou FBD

• (4) O número deste FC ou manter no automático

• (5) Definir o tipo do bloco: Otimizado ou Standard

96
Programando o FC

• (1) Área de programação do FC

• (2) Programando dentro do FC

97
Clique e arraste o bloco “Block_1 [FC1]” para dentro do bloco “Main [OB1]”

É possível criar condições para acessar este bloco, se necessário.

98
• Clique em “ADD new block”

• (1) Selecione a opção “FC”

• (2) Possível personalizar o nome do bloco, por exemplo “FC_MOTOR”

• (3) Escolher a linguagem de programação: LAD, SCL ou FBD

• (4) O número deste FC ou manter no automático

• (5) Definir o tipo do bloco: Otimizado ou Standard

99
Para iniciar a programação de um FC Parametrizável você precisa criar variáveis e utilizar
a Área Local.

• INPUT Deve conter valores de parâmetros de leitura do bloco.

• OUTPUT Deve conter valores de parâmetros de escrita do bloco.

• INOUT Deve conter valores de parâmetros de leitura/escrita do


bloco.

• TEMP TAGS armazenado temporariamente em um resultado


intermediário somente em um ciclo

• RETURN Valor da função que é retornado quando o bloco é


chamado

100
Para uma partida de motor precisamos de um sistema com os seguintes Parâmetros liga,
desliga e motor.

• INPUT

#LIGA
#DESLIGA

• INOUT

#MOTOR

101
Clique e arraste o bloco “FC_MOTOR [FC1]” para dentro do bloco “Main [OB1]”

102
A Network estará “OK” somente após as entradas LIGA e DESLIGA e a saída MOTOR
forem definidos.

(1) Chamada do “FC_MOTOR [FC1]” FC Parametrizável para o Motor1.

(2) Chamada do “FC_MOTOR [FC1]” FC Parametrizável para o Motor2.

Possível chamar o bloco “FC_MOTOR [FC1]”quantas vezes for necessário, ou seja,


quantas partidas de motores terá no Software todo.

103
104
105
Particularidades:

FC_01: Ensacamento
FC_02: Paletização
FC_03: Filme

106
TAGS

I0.0 = Liga
I0.1 = Libera VL
I0.2 = Libera Saco
I0.3 = Sensor Presença de Saco
I0.4 = Sensor Saco no Magazine
I0.5 = Fim de Curso Saco
I0.6 = Fim de Curso Palet
I0.7 = Auto / Manual
Q0.0 = M0 (Agitador)
Q0.1 = VL (Enchimento)
Q0.2 = M1 (Esteira1)
Q0.3 = Carrega Saco
Q0.4 = M2 (Esteira2)
Q0.5 = Aplica Filme
M0.0 = Robo Montar Palet

107
108
109
FBs Um FB é um bloco de código que pode ser chamado com parâmetros. Os
parâmetros são armazenados num banco de dados local (DB exemplo). Os dados são
retidos no DB exemplo, mesmo após a FB foi encerrado. Você também pode chamar um
FB mais de uma vez. Cada chamada pode receber um DB instância separada, ou você
pode combinar várias instâncias para formar uma instância de multi-instance.

Parâmetros Diferente de um FC os parâmetros de um FB não obrigatório.

110
• Clique em “ADD new block”

• (1) Selecione a opção “FB”

• (2) Possível personalizar o nome do bloco

• (3) Escolher a linguagem de programação: LAD, SCL ou FBD

• (4) O número deste FB ou manter no automático

• (5) Definir o tipo do bloco: Otimizado ou Standard

111
Programando o FB

• (1) Área de programação do FB

• (2) Programando dentro do FB

112
Clique e arraste o bloco “Block_1 [FB1]” para dentro do bloco “Main [OB1]”

É possível criar condições para acessar este bloco, se necessário.

113
• Clique em “ADD new block”

• (1) Selecione a opção “FB”

• (2) Possível personalizar o nome do bloco, neste caso “FB_MOTOR [FB1]”

• (3) Escolher a linguagem de programação: LAD, SCL ou FBD

• (4) O número deste FB ou manter no automático

• (5) Definir o tipo do bloco: Otimizado ou Standard

114
Para iniciar a programação de um FC Parametrizável você precisa criar variáveis e utilizar
a Área Local.

• INPUT Deve conter valores de parâmetros de leitura do bloco.

• OUTPUT Deve conter valores de parâmetros de escrita do bloco.

• INOUT Deve conter valores de parâmetros de leitura/escrita do


bloco.

• STATIC Os dados são armazenados e mantidos e substituídos por


muitos ciclos até serem substituídos.

• TEMP Os dados armazenado serão mantidos temporariamente


em um resultado intermediário somente em um ciclo.

• RETURN Valor da função que é retornado quando o bloco é chamado

115
Para uma partida de motor precisamos de um sistema com os seguintes Parâmetros liga,
desliga e motor.

• INPUT

#Liga
#Desliga

• INOUT

#Motor

116
Clique e arraste o bloco “FB_MOTOR [FC1]” para dentro do bloco “Main [OB1]”

117
FC obrigatório informar os parâmetros no bloco.

FB não é obrigatório informar os parâmetros no bloco.

(Network 1) Chamada do “FB_MOTOR [FB1]” FB Parametrizável para o Motor1.

(Network 2) Chamada do “FB_MOTOR [FB1]” FB Parametrizável para o Motor2.

Possível chamar o bloco “FB_MOTOR [FB1]”quantas vezes for necessário, ou seja,


quantas partidas de motores terá no Software todo, mas para cada chamada de um
novo FB teremos sempre uma nova DB

118
DATA BLOCK

• GLOBAL Área de dados que pode ser acessada por qualquer bloco,
podem ser editado.

• INSTANCE Área de dados utilizada somente pelo FB que ela é


atribuída, não pode ser editada.

• MULTINSTANCE Área de dados que pode ser acessado por vários FBs,
otimiza a utilização de vários FBs e com isso tem apenas uma DB Instanciada, não
pode ser editada.

119
Os dados do tipo global podem ser utilizados em qualquer bloco de software.

Ao chamar o dado é preciso primeiro o nome da DB e após escolher o parâmetro

120
Quando é feito a chamada do bloco “Bloco_FB [FB1]” é obrigatório a criação de uma DB
Instance “DB_Bloco_FB [DB2]”

A cada chamada ou criação de um novo FB é obrigatório a criação de uma DB Instance.

A DB Instance não pode ser alterada.

121
A utilização de DB Multi-instance permitir um bloco de função (FB) seja
chamado para armazenar seus dados no bloco de dados instância do bloco de função
chamada, isto é, teremos apenas uma DB que atenderá a parte instance de cada FB que
será chamado. Com isso você terá uma melhor utilização do número de blocos de
instância de dados disponíveis.

No diagrama acima temos um FB1 chamando dois FBs, um FB de Tempo


(#Timer) e um FB de Contagem (#Counter) e cada um tempo sua parte de DB Instance
dentro de uma DB Multi-instance.

122
• BOOL Dados do tipo booleano deve ter a seguinte sintaxe:
DB(número da DB).DBX(número do byte).(número do bit).
Exemplo: DB10.DBX0.0

• BYTE Dados do tipo byte deve ter a seguinte sintaxe:


DB(número da DB).DBB(número do byte).
Exemplo: DB10.DBB0

• WORD Dados do tipo word deve ter a seguinte sintaxe:


DB(número da DB).DBW(número da word).
Exemplo: DB10.DBW0

• DWORD Dados do tipo dword deve ter a seguinte sintaxe:


DB(número da DB).DBX(número da dword).
Exemplo: DB10.DBD0

123
ARRAY Nos dados do tipo ARRAY, você deve definir o endereço
inicial e o endereço final e qual o tipo de dado.

Array [lo...hi] of type

Exemplo:

Array [0...3] of Bool

124
STRUCT Nos dados do tipo STRUCT, você irá definir uma estrutura
de dados.

Os dados podem ser de vários tipos.

125
126
DTL Dados do tipo DTL usam 12 Bytes de comprimento e
salva informações como: data e hora em uma STRUCT pré-definida.

Os componentes do DTL (ano, mês, dia, dia da semana, hora, minuto, segundo e
nano segundo) podem ser acessados individualmente.

127
128
129
130
131
132
133
134
Significado de STATUS no Hardware

A conexão esta sendo estabelecida


CPU com o enderenço xxx.xxx.x.xxx não está estabelecida
CPU configurada diferente da CPU disponível
Sem falha
Manutenção Necessária
Solicitação de Manutenção
Falha
Desativado (aplicado em Slaves)
Módulo não acessível pela CPU
O diagnóstico não é possível para o módulo
Módulo configurado diferente do módulo disponível
Status do módulo sendo detectado

135
Display de Status

Após conectado o Software com O PLC, você tem as seguintes informações:

• Quando o sistema estive em online a barra do cabeçalho da janela ficará


alaranjada, caso contrário ficará em azul.
• Os objetos que são possíveis realizar o diagnóstico estão na árvore do projeto e ficam
ao lado direito.
• A janela de Diagnóstico é colocada para frente na janela de inspeção.
• Posso fazer diagnóstico de cada item que foi habilitada, por exemplo de canal
analógico.

136
Função

Esta função é um histórico de todos os erros que ocorreram na CPU, com os seguintes
eventos:

• A cada mudança de STATUS da CPU (mudança de STOP para RUN ou RUN para
STOP)
• A CPU do S71200 pode armazenar até 50 linha de informação de diagnóstico, sendo que
quando desligada armazena apenas as ultimas 10. estas informações só podem ser
apagadas quando a CPU for levada aos parâmetros de fábrica. É possível ler as
informações através do online & diagnostics view

Reset CPU

Para a CPU voltar aos parâmetros de fábrica, conecte-se a CPU e faça o seguinte
procedimento:

1) Abra a janela “Online & Diagnostics” da CPU


2) Selecione a opção “Reset to factory settings” e depois “Functions”
3) Selecione “Retain IP address” para manter o endereço IP ou “Delete IP address” para
excluir o endereço IP
4) Clique no botão “Reset”
5) Clique em “OK” para confirmar a operação

137
Significado Símbolos STATUS

Projeto contém objetos online e offline diferentes

Versões online e offline são diferentes

Objeto só existe offline

Objeto só existe online

Arvore do projeto está diferente online do offline

Módulo ou dispositivo está inacessível através da CPU.

RUN

STOP

Parado

Defeito

138
Função: Compare offline/online

Possibilita comparar um bloco existente na CPU com um bloco de programação.

• Comparison editor

Você recebe uma visão geral de comparação de todos os blocos e suas diferenças.

• Detailed comparison

As versões online e offline de um determinado bloco são comparadas e você


pode analisar as diferenças.

139
Comparando dois blocos

Você pode abrir as janelas lado a lado e comparar todos os detalhes dos blocos e fazer a
correção ou alteração.

O comparador mostra exatamente o local em que os blocos são diferentes.

140
FORCE

Com o FORCE é possível força um sinal na CPU e este permanecer até que o mesmo seja
retirado ou a CPU volte as suas configurações de fábrica.

A utilização do FORCE é utilizada para testar funções programadas

Antes de utilizar o FORCE veja as precauções de segurança para este procedimento

141
Cross-references

Você pode ter várias maneiras de referência cruzada, pode ser no Software (TIA
Portal) ou no Projeto.

Na visão do Software você pode exibir referências cruzadas para a CPU inteira.

No projeto você pode ter:

• PLC
• Blocos
• Blocos Individuais
• PLC Tags
• Tags Individuais
• Conexões

142
Call Structure

Faz a chamada da hierarquia das chamadas dos blocos dentro de um programa


S7

A chamada sempre se inicia por um bloco de função (OB)

143
Assignment list

Está função mostra se um endereço foi atribuído corretamente dentro de um


programa S7.
É possível ter uma visão gera do bits nos bytes das seguintes áreas:

• Input (I)
• Output (Q)
• Memory (M)

É possível fazer uma referência cruzada dos endereços.

144
Resources

Mostra o uso de memória de hardware da CPU configurada para:

• Divisão das áreas de memória dentro da CPU

• Quais objetos de programação que estão disponíveis na CPU (por exemplo, OB, FC, FB,
DB, TAGS PLC e tipos definidos pelo usuário de dados)

• As áreas de memória disponíveis na CPU (memória de trabalho, memória de carga,


memória retentiva), seu tamanho máximo e sua atribuição aos objetos mencionados
acima de programação utilizadas

145
Add device

Para adicionar uma HMI você pode:

• Clique em "Add new device" na árvore do projeto.

• Selecione a HMI KTP 600PN Color

• Retire a marcação do WIZARD

146
Configurando o Endereço IP

Clique em “connection” a CPU ficará azul clique na CPU arraste até a HMI.

Pronto a comunicação e o endereçamento IP já estão realizados.

Você pode também fazer um clique no Device > propriedades > então é possível atribuir
o endereço manualmente

147
Configurando IP na HMI

 No painel inicial clique em “Control Panel”

 Clique em “Transfer”

 Na janela “Transfer Settings” clique em “Advanced”

 Na janela “Profinet Settings” coloque o mesmo endereço IP atribuído no


Software

148
(1) Project Tree

Árvore do projeto, informações de Telas, Senhas, Diagnósticos...

(2) Details View

Detalhes do item pré-selecionado na árvore do projeto.

(3) Inspector Window

Janela com: informações, diagnósticos e propriedades para todo o projeto

(4) Editing area

Área de projeto

(5) Tools

Ferramentas para programação

149
Button

O botão fará a ativação do sistema através da HMI

O tipo do Evento deve ser definido pelo usuário

O botão pode ter associado a ele uma Tag de PLC ao Tag da HMI, ou ter um Tag
interno.

150
I/O Field

Valores do campo podem serem lidos e/ou escritos em TAGS de campo.

Os Tags de PLC serão associados aos Tags de HMI.

151
152
153
154
155
156

Você também pode gostar