Você está na página 1de 128

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
CURSO S7300 – Nivel2

1
2
3
4
Primeiramente preciso criar uma estação de acordo com Hardware

• SIMATIC 400 Station S7400


• SIMATIC 300 Station S7300 e ET200 – CPU
• SIMATIC H Station S7400 H
• SIMATIC PC Station Estação de PC
• SIMATIC HMI Station Estação de IHM

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”

• Na janela acima é possível configurar a rede para comunicação com os


dispositivos de campo.
• Clique em “New...” e no item em destaque configure o IP e a Sub rede

7
8
9
Configuração de Hardware

CPU IM151-8

PME Power module (24VDC)

DI Digital Input (8 DI x 24VDC)

DO Digital Output (8 DO x 24VDC / 0.5A)

AI Analog Input (2 AI x U ST)

10
Configurações da CPU

Profinet I/O Controller para o máximo de 128 I/O Devices.

Pode ser utilizado como I/O Device, como inteligência distribuída.

PROFINET com modo isócrono.

PROFINET IO
PROFINET CBA
Open IE communication (TCP, ISSO-on-TCP e UDP)
Web Server
S7 Communication (via FBs)

Como opcional pode ter um MASTER DP para 32 SLAVES DP.

11
Propriedades CPU

É possível configurar funções como:

• Clock Memory Definir o byte para bits conforme tabela abaixo.

• Retentive Memory Definir quais bytes de memória, temporizadores e


contadores que deverão ser retentivos.
• Protection Definir Senha para Download e/ou Upload

12
Criando uma Conexão com o PLC

Clique no botão iniciar do seu computador e após clique em Painel de


Controle

13
Criando uma Conexão com o PLC

Clique agora em Central de Rede e Compartilhamento

14
Criando uma Conexão com o PLC

Clique em alterar configurações do adaptador.

15
Criando uma Conexão com o PLC

Clique com o botão direito do mouse na sua placa de rede (Atheros


AR8151).

16
Criando uma Conexão com o PLC

Desça a barra de rolagem até encontrar: Protocolo TCP/IP Versão 4


(TCP/IPv4) e faça um duplo clique.

17
Criando uma Conexão com o PLC

Selecione a opção: Usar o seguinte endereço IP:

Atribua as seguintes configurações:

Endereço IP:
Máscara de sub-rede:

18
Escolha o formato de comunicação

Escolha a Opção

S7ONLINE (STEP7) Marvell Yukon 88E8040 Family PCI-E Fast


Ethernet Controller.TCPIP.Auto.1

19
Realizando o 1º Download de Hardware

1) Após selecionar a CPU, clique no IP address na caixa de dialogo “Enter


connection to target station”

No botão “View” é possível visualizar


todos os Hardware na rede.

2) Clique em “OK”

20
Realizando o 1º Download de Hardware

• Informação de download em andamento.

• 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

Function (FC) Blocos de Função

Function Block (FB) Sempre associado a uma DB


Instance, DB faz o gerenciamento de memória.

Data Base (DB) Área de dados, podem ser: Global,


Instance e /ou Multinstance

22
OB100
OB101 Startup
OB102

OB1 Execução Cíclica

OB10...17 Interrupção Hora-do-dia

OB30...38 Interrupção Cíclica

OB20...23 Interrupção por Delay de tempo

OB40...47 Interrupção de Hardware

OB80...87 Erros Assíncronos

OB121,122 Erros Síncronos

23
24
• Clique com o botão direito do mouse. “Insert New Object” “Function”

• Name: Tipo de Bloco e endereço. Ex: FC1

• Symbolic Name: Nome do Bloco. Ex: Controle de Processo1

• Created in Language: Definir o tipo de linguagem. Ex: LAD

***Mesmo procedimento para criar OB e FB***

25
Clique e arraste o bloco “FC1 Controle de Processo1” para dentro do bloco
“OB1 MAIN”

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

***Mesmo procedimento para FB***

26
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

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.

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

29
30
31
PLCSIM

6) Você deve mudar o estado de transição da CPU de STOP para


RUN-P

32
PLCSIM

7) Configure as Janelas de Entradas / Saídas (Digitais e Analógicas) e


o tipo de dado (Bool, INT, DINT...)

8) É possível inserir também: Temporizadores, Contador , Variáveis


Genéricas, Acumuladores, Registradores.

33
34
Monitorando TAGS no PLC

É possível monitorar e modificar TAGS inseridos na “VAT”

Para monitorar:

1) Inserir TAGS pelo endereço simbólico ou absoluto na “VAT_1”


criada pelo usuário.

2) Clique no ícone

3) Na coluna “Modify Value” é possível colocar valores a serem


modificados.

4) Clique no ícone para alterar os valores.

35
36
37
38
39
Bits da STATUS WORD

2¹ 2¹ 2¹³ 2¹² 2¹¹ 2¹ 2

Bits não utilizados pela CPU


FC
2¹ RLO
2² STA
2³ OR
OS
OV
CC0
CC1
BR

40
NOTA

• O valor “1” no primeiro bit 2 indica uma Condição, no exemplo acima


I0.0 e I0.1 na Network1 e I0.2, I0.3 e I0.4 na Network2.

• O valor “0” no primeiro bit 2 indica uma Ação, no exemplo acima Q0.0
na Network1 e Q0.1 na Network2.

As Condições podem ser: um contato NA, um contato NF...

As Ações podem ser: S, R, JUMP, Saídas, O “start” de um temporizador, uma


chamada de bloco...

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

Existe instruções que manipulam o RLO diretamente.

SET Força o RLO para “1”


CLR Força o RLO para “0”
NOT Inverte o valor do RLO

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

A execução de uma lógica Booleanas está associado entre RLO e STA, no


exemplo acima a lógica AND é verdadeira quando I0.0 com RLO e STA igual
a “1” e I0.1 com RLO igual a “1” e STA igual a “0”.

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

Este bit informa que a condição OU já foi realizada em uma linha da


programação.

Para saber qual contato a tornou verdadeira é preciso analisar os bits de


RLO e STA, no exemplo acima a condição OU é verdadeira quando I0.0 com
RLO e STA igual a “1” e com isso OR em “1”.

44
NOTA

• O valor “1” no quinto bit da palavra STATUS (2 ) indica que ouve um


estouro de capacidade (overflow) e ficará armazenado mesmo que seja
executado outra operação matemática.

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.

Para zerar o Bit OS utilizamos funções como:

JOS Salta se OS = 1
BE Final de Bloco
BEC Final de Bloco Condicional
BEU Final de Bloco Incondicional

45
NOTA

• O valor “1” no sexto bit da palavra STATUS (2 ) indica que ouve um


estouro de capacidade (overflow) e ficará armazenado até a próxima
operação matemática.

• É possível ler as informações também através de um bit pelas instruções:


A OS
A OV

• Alguns exemplos de estouro: estouro de capacidade (capacidade do


formato), divisão por zero...

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.

Mas no decorrer da instrução temos uma divisão matemática (200 / 10) e


escrito na MW200 (resultado = 20) e neste caso o bit OS será “0”, mas o Bit
OV continua em “1” pelo estouro ocorrido na linha de cima e só será zerado
através de uma função: JOS, BE, BEC, BEU.

46
NOTA

• Para acessar os bits CC0 e CC1 podem ser testados através das seguintes
instruções:

• Possível utilizar em funções: A, AN, O, ON, X, XN.

**No exemplo acima, depois de comparação**

Possibilidade de utilizar análise dos valores em CC0 e CC1 para: Funções


Matemáticas, Números Reais, Shift e Rotate, Instruções Booleanas com
WORD e DWORD.

Adicionalmente existe funções de JUMP que verificam os códigos.

47
NOTA

• Se o bit BR em “1” o bloco está sendo executado, toda a linha de


programa. Caso contrário não será executado nada posteriormente ao
bloco.

Bit BR

48
49
50
51
AND <Bit>
Verifica se o estado lógico do BIT é “1”.

AND NOT <Bit>


Verifica se o estado lógico do BIT é “0”.

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

No exemplo acima é possível entender o funcionamento de um


Temporizador [S_PULSE –(SP)–].
As funções correlacionadas em LAD e STL.

66
Utilizando os temporizadores IEC

CALL SFB x , DBxy (N° do SFB , N° da DB)


IN:= I 0.0 (Entrada que Habilita o Temporizador)
PT:= T#10s (Tempo a ser utilizado no Temporizador)
Q := Q0.0 (Saída a ser utilizada no Temporizador)
ET:= MD20 (Contagem de Tempo do Temporizador)

67
68
TAGS

I0.0 = START1 Q0.0 = SINALIZAÇÃO


I0.1 = STOP1 Q0.1 = M1
I0.2 = START2 Q0.2 = M2
I0.3 = STOP2 Q0.3 = M3
I0.4 = START3
I0.5 = STOP3

Particularidades:

• Sistema deverá ser programado utilizando Temporizadores


SIMATIC
• Programação em STL
• Partida de Motores [FC 8] (FC Parametrizável)
• Controle de Esteiras [FC 12]

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:

• Sistema deverá ser programado utilizando Temporizadores IEC


• Programação em STL
• Controle de Caixas [FC 28]

70
TAGS

I0.0 = START Q0.0 =


SINALIZAÇÃO.PROCESSO
I0.1 = STOP Q0.1 = SINALIZAÇÃO.PRONTO
I0.2 = S1 Q0.2 = EST01
I0.3 = S2 Q0.3 = RESISTÊNCIA
I0.4 = S3 Q0.4 = VENTILAÇÃO
I0.5 = S4

Particularidades:

• Sistema deverá ser programado utilizando Temporizadores


SIMATIC
• Programação em LAD
• Partida de Motores [FC 8] (FC Parametrizável – Apenas alunos
módulo completo)

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

No exemplo acima é possível entender o funcionamento de um Contador


Ex.[S_CU –(CU)–].
As funções correlacionadas em LAD e STL.

74
Utilizando os Contadores IEC

CALL SFB x , DBxy (N° do SFB , N° da DB)


CU:= I 0.0 (Entrada que Inicia o Contagem)
R := I 0.1 (Zera o Contador)
PV := 12 (Valor do presset de contagem)
Q := Q0.0 (Saída a ser utilizada no Contador)
CV:= MD20 (Valor da Contagem do Contador)

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.

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.

76
Exemplo das funções:

1) == I / == D / == R Comparação se ACCU1 é igual ao ACCU2

2) <> I / <> D / <> R Comparação se ACCU1 é diferente do ACCU2

3) >= I / >= D / >= R Comparação se ACCU1 é maior ou igual ao ACCU2

4) <= I / <= D / <= R Comparação se ACCU1 é menor ou igual ao ACCU2

5) > I / > D / > R Comparação se ACCU1 é maior ACCU2

6) < I / < D / < R Comparação se ACCU1 é menor ACCU2

77
78
TAGS

I0.0 = START Q0.0 = LIGADO


I0.1 = STOP Q0.1 = LIMITE.MAX
I0.2 = S1 Q0.2 = M1
I0.3 = S2 Q0.3 = M2
I0.4 = S3

Particularidades:

• Sistema deverá ser programado utilizando Temporizadores


SIMATIC e Contadores SIMATIC
• Programação em STL
• Sistema de Transporte [FB 30]
• Use áreas de memória TEMP quando necessário

79
TAGS

I0.0 = START Q0.0 = EST01


I0.1 = STOP Q0.1 = C1
I0.2 = S1 Q0.2 = SINALIZAÇÃO.METAL
I0.3 = S2 Q0.3 = SINALIZAÇÃO.NÃO.METAL
I0.4 = S3
I0.5 = S4
I0.6 = S5
I0.7 = S6

Particularidades:

• Sistema deverá ser programado utilizando Contadores SIMATIC


• Programação em STL
• Sistema de Transporte [FB 5]
• Use áreas de memória TEMP e quando necessário

80
81
Outros formatos:

82
No exemplo abaixo vemos uma multiplicação simples entre dois valores
fixos.

Percebemos que o primeiro valor é carregado (LOAD) no ACCU1


(STANDARD) e quando necessitamos carregar (LOAD) o segundo valor o
primeiro valor irá para o ACCU2 e o novo valor será carregado no ACCU1,
assim como o resultado matemático.

83
MOVE

Move o valor carregado (L) e transfere (T).

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

Utilizando a função TAK não é necessário fazer a utilização de uma memória


intermediária.

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

No exemplo abaixo temos o número: 2.623.952.699 e após a função NEGI


temos: 2.623.952.699 +1 = 2.623.952.700.

99
Exemplo de SLW

Exemplo de SLD

100
101
102
103
Funções:

104
105
106
TAGS

X1
X2
Y1
Y2
D

Particularidades:

• Organize o Programa em: CALCULO [FC 12].


• Utilize a linguagem em STL.
• Crie uma VAT_1 para atribuir valores as variáveis.
• Desenvolva o software para cálculo de números reais, com
resultados em REAL e INT.

107
108
Percebemos que, como o SALTO é INCONDICIONAL, nunca será transferido
ZERO para a memória MW20

Temos as seguintes funções de JUMP

JC Salta se o RLO = “1”


JCN Salta se o RLO = “0”
JCB Salta se o RLO = “1” e salva RLO no bit BR
JNB Salta se o RLO = “0” e salva RLO no bit BR
JBI Salta se o bit BR = “1”
JBNI Salta se o bit BR = “0”
JO Salta se o OV = “1”
JOS Salta se o OS = “1”
JZ Salta se o resultado = “0”
JN Salta se o resultado diferente de “0”
JP Salta se o resultado maior que “0”
JM Salta se o resultado menor que “0”
JPZ Salta se o resultado maior ou igual a “0”
JMZ Salta se o resultado menor ou igual a “0”
JUO Salta se o resultado inválido (divisão por “0”)
JL Utiliza uma lista de saltos, que podem conter no máximo
255 instruções de salto.

109
110
111
112
Fluxograma de funcionamento:

113
114
TAGS

I0.0 START
MW0 TOTAL.PEÇAS

Particularidades:

• Desenvolva o software dentro do FC 12 [PEÇAS].

115
TAGS

V1 Q0.0
V2 Q0.1
V3 Q0.2
V4 Q0.4
MW10 VELOCIDADE
MW12 VALOR.VELOCIDADE

Particularidades:

• Desenvolva o software dentro do FC 2 [Controle de Velocidade].


• Utilize a instrução JUMP
• Programa em STL

116
TAGS

I0.0 START
I0.1 STOP
Q0.0 INDICAÇÃO.VELOC.OK
Q0.1 INDICAÇÃO.VELOC.NOK
MW10 VELOCIDADE.DESEJADA

Particularidades:

• Desenvolva o software dentro do FB 28 [Controle de Velocidade].


• Utilize a instrução JUMP / LOOP / MATH
• Programa em STL

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:

• UC Chamada de bloco incondicional, não é possível utilizar em bloco


parametrizável.
• CC Chamada de bloco condicional, não é possível utilizar em bloco
parametrizável.

• CALL Chamada de bloco incondicional, sendo possível realizar chamadas de


blocos que utilizem parâmetros de interface (IN, OUT, INOUT)

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

Para casos de incremento de endereçamento é sempre utilizado a instrução POINTER


em conjunto com a instrução de LOOP.

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

Você também pode gostar