Você está na página 1de 160

TIA PORTAL – INDICE

1. OPERAÇÕES DE SALTOS
2.
2. FUNÇÕES COM ACUMULADORES

3. NÚMEROS REAIS
4.
4. ENDEREÇAMENTOS

5. RELÓGIO

6. OBs DE ERROS

7. TEMPORIZADORES IEC – MULTI INSTANCE

8. OVERVIEW LINGUAGEM SCL

9. OVERVIEW S7-GRAPH

10. WEB SERVER

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500
TIA PORTAL – INDICE

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500
TIA PORTAL – SALTOS

1. OPERAÇÕES DE SALTOS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 1
TIA PORTAL – SALTOS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 2
TIA PORTAL – SALTOS

Sumário

MEMÓRIAS DE UMA CPU S7-1500 ................................................................................................. 5


REGISTRADORES ........................................................................................................................ 5
ÁREAS DE MEMÓRIAS ................................................................................................................ 6
STATUS WORD (PALAVRA DE STATUS) ........................................................................................... 7
FUNÇÕES DE SALTOS ..................................................................................................................... 8
Label (Marca) ............................................................................................................................. 8
SALTO INCONDICIONAL (JU) ........................................................................................................... 9
SALTOS CONDICIONAIS (JC) ............................................................................................................ 9
JC/JCN ...................................................................................................................................... 10
JCB/JNB.................................................................................................................................... 10
JBI/JNBI .................................................................................................................................... 11
JO/JOS ..................................................................................................................................... 11
JZ ............................................................................................................................................. 12
JN ............................................................................................................................................ 12
JP/JM ....................................................................................................................................... 13
JPZ/JMZ ................................................................................................................................... 13
JUO .......................................................................................................................................... 14
INSTRUÇÕES QUE ALTERAM O RLO (RESULTADO LÓGICO OPERACIONAL) .................................... 15
INSTRUÇÕES DE FIM DE BLOCO.................................................................................................... 16
INSTRUÇÕES DE SALTO DISTRIBUIDO ........................................................................................... 18
INSTRUÇÃO DE LOOP (REPETIÇÃO) .............................................................................................. 20

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 3
TIA PORTAL – SALTOS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 4
TIA PORTAL – SALTOS

MEMÓRIAS DE UMA CPU S7-1500

Áreas de Memórias
Load Memory Work Memory Periferia de I/O Memórias Gerais

Memory Code Memory Code Periferia de • Imagem de I/O


• Bit Memory
OB, FC, FB OB, FC, FB Entrada PI • Temporizadores
• Contadores
Memory Data Memory Data Periferia de • Pilha de Dados
Locais
DB, DI DB, DI Saída PQ • Pilha de Interrupção
• Pilha de Blocos

L LAR1 OPN DB A, O, FP

T TAR2 =, S, R

Acumuladores Registradores de Registradores de Status Word


Endereço Data Blocks
ACCU1 – 32Bits swAberto
AR1 – 32 Bits N° DB - 16Bits Bits de Status
ACCU2 – 32Bits
AR2 – 32Bits N° DI – 16Bits

Registradores

REGISTRADORES

Os registradores são memórias usadas pela CPU na execução de suas tarefas. Através de
instruções do tipo L (Load), T (Transfer), A (AND), O (OR), entre outras, são realizadas as trocas
de valores entre os registradores e as demais Áreas de Memórias:

Acumuladores
São registradores de 32 bits usados pela CPU para funções aritméticas,
comparações, movimentações de valores etc. As CPU´s possuem dois
acumuladores (ACCU1 e ACCU2).

Registradores de Endereço
Existem dois registradores de 32 bits utilizados pela CPU (AR1 e AR2) para
endereçamento indireto de memórias no programa.

Registradores de Data Blocks


Os registradores de blocos de dados armazenam os números dos Db´s abertos.
São duas memórias de 16 bits, onde uma armazena o nº do DB aberto e outra
o número do DB instância aberto.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 5
TIA PORTAL – SALTOS

ÁREAS DE MEMÓRIAS

Existem quatro áreas de memórias nas CPU´s.

Memória de Carga (Load Memory)


É a memória onde fica armazenado o programa do usuário. Para as CPUs S7-
1200 e S7-1500, os comentários e símbolos também são baixados para essa
memória no CLP. Dependendo do modelo da CPU, a memória de carga pode
ser RAM ou FLASH EPROM.

Memória de Trabalho (Work Memory)


Representa a porção relevante do programa necessária para a execução da
lógica do CLP. Essa é a memória que deve ser analisada quando se deseja
realizar uma ampliação no programa do CLP. Precisa-se observar que ela está
dividida em duas partes, sendo um referente ao Código (OB, FC e FB) e outra
aos Dados (DB e DI).

Periferia de IO
Quando a CPU se comunica com os módulos do seu barramento, ela usa as
Periferias de Entrada e Saída para armazenar os valores dessa comunicação.
Dessa forma, quando se quer ler os dados um módulo de entradas digitais, por
exemplo, lê-se a Periferia de Entrada reservada para o mesmo. Por outro lado,
para escrever um valor em um módulo de saída analógica, basta transferir um
valor para a Periferia de Saída destinada ao mesmo. A periferia compreende
tanto os módulos conectados ao barramento da CPU, quanto os módulos
conectados a uma remota Profibus-DP ou Profinet IO.

Memórias Gerais
As Imagens das Entradas (I0.0) e Saídas digitais (Q0.0), Bit Memory (MW200) ,
Variáveis Locais(LB0), Temporizadores (T0) e Contadores(C0) são armazenadas
na memória RAM do Sistema e, por “natureza”, não retêm seus valores quando
a CPU é desligada. Existe nas propriedades da tabela de TAGs uma opção de
tornar uma parte dos Bits Memory, Temporizadores e Contadores em
memórias retentivas.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 6
TIA PORTAL – SALTOS

STATUS WORD (PALAVRA DE STATUS)

Os Bits da Status Word (Palavra de Status) são registradores que a CPU usa na execução de suas
lógicas binárias. Quando se trabalha com uma linguagem gráfica, como LADDER ou FBD, não se
percebe a existência desses Bits, pois eles estão representados de forma gráfica (animações de
linhas e contados). Todavia, quando se trabalha em STL o conhecimento desses bits é
fundamental.

STATUS WORD

bit 15-9 8 7 6 5 4 3 2 1 0

status 0 BR CC 1 CC 0 OV OS 0 0 0 0

OS – Overflow retentivo
Quando o Bit OV torna-se verdadeiro, indicando que ouve um overflow, o Bit OS
também é setado para "1". A diferença entre eles é que o Bit OV volta a ser Falso caso
a próxima operação aritmética não gere Overflow, enquanto que o Bit OS não se altera
guardando a informação de erro para posterior uso. Dessa forma, em uma sequência
de contas, pode-se esperar para checar se houve algum tipo de erro ao final das
operações, não sendo preciso checar a cada uma. Esse Bit somente é resetado após as
seguintes instruções: JOS (salta se OS = 1); chamadas de blocos e instruções de fim de
Bloco (BE, BEC e BEU). Pode-se checar esse bit diretamente através da Instrução “A
OS”.

OV – Overflow
Quando se efetua uma operação matemática ou de comparação de Números Reais, se
houver um erro como divisão por zero e/ou estouro de aérea de memória, entre outros,
o sexto Bit da Status Word, o OV, torna-se verdadeiro. Com isso, quando se tem uma
sequência de operações matemáticas, pode-se ao final de cada uma checar se essa
gerou um estouro de contagem para que o restante das operações não seja executado.

CC 0 e CC 1 (condition code bits)


Os bits de status CC 0 e CC 1 fornecem informações sobre os resultados das seguintes
instruções:
• Instruções de comparação
• Funções matemáticas
• Operações de lógicas com Word
• Instruções SHIFT e ROTATE

BR (binary result)
O Bit BR é um registrador que pode ser usado para salvar um valor de RLO para uso
posterior antes que uma nova instrução o altere. Através da instrução SAVE, o valor do
Bit RLO é copiado para o Bit BR. outra forma de escrever um valor no Bit BR é através
dos saltos JCB e JNB.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 7
TIA PORTAL – SALTOS

FUNÇÕES DE SALTOS

As funções de salto permitem que se interrompa a execução linear do programa, saltando para
outra posição identificada por um Label (Marca).

As instruções no Step 7 que manipulam os acumuladores, registradores de endereço e de Data


Block são executadas pela CPU mesmo que o estado do RLO naquele instante seja FALSO
(RLO=0). Exemplos dessas instruções são: Load, Transfer, operações booleanas com
Word/Dword, operações matemáticas, comparações etc. Para esses casos, quando não se
deseja executar uma ou mais linhas de código, tem-se que saltar o programa para outra posição,
que será identificada por um Label (Marca).

Os saltos podem ser para frente ou para trás no programa contanto que seja para o mesmo
bloco.

Label (Marca)

É o identificador de uma posição no programa que é o destino de uma


instrução de salto. Um Label não pode iniciar com números e eles só têm
validade no bloco em que estão inseridos.

Deve-se prestar atenção no caso de se saltar para trás no programa, para evitar
que a CPU entre em um loop infinito.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 8
TIA PORTAL – SALTOS

SALTO INCONDICIONAL (JU)

A instrução de Salto JU é sempre executada, independentemente do estado do RLO ou dos


outros bits da palavra de Status. Dessa forma, sempre que a execução do programa encontrar
uma instrução JU, o programa salta para o Label especificado, não alterando os bits da Palavra
de Status.

Linhas não executadas

SALTOS CONDICIONAIS (JC)

Existem 15 tipos diferentes de Saltos condicionais no Step 7. Eles avaliam o RLO para realizar o
salto para o Label especificado. Segue abaixo um resumo com todos os saltos condicionais e a
seguir o detalhamento de cada um deles.

Saltos Condicionais
JC Label Salta de o bit "RLO" =1
JCN Label Salta se o bit "RLO" = 0
JCB Label Salta se o bit "RLO" = 1 e salva RLO no Bit BR
JNB Label Salta se o bit "RLO" = 0 e salva RLO no Bit BR
JBI Label Salta se o bit "BR" = 1
JBNI Label Salta se o bit "BR" = 0
JO Label Salta se o bit "OV" na palavra de status =1
JOS Label Salta se o bit "OS" na palavra de status =1
JZ Label Salta se resultado igual a zero
JN Label Salta se resultado diferente de zero
JP Label Salta se resultado maior que zero
JM Label Salta se resultado menor que zero
JPZ Label Salta se resultado maior ou igual a zero
JMZ Label Salta se resultado menor ou igual a zero
JUO Label Salta se: “desordem” - número real inválido ou divisão por zero

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 9
TIA PORTAL – SALTOS

JC/JCN
As funções JC e JCN executam o salto em função do estado do RLO, onde JC salta se o
RLO for verdadeiro e JCN se for falso. Independentemente se foi executado o salto ou
não, essas funções setam os bits RLO e STA e resetam os Bits OR e FC da Palavra de
Status.

JCB/JNB
Essas são funções também dependem do estado do RLO e funcionam de forma
semelhante às funções JC e JCN, inclusive com relação aos bits de Status. A única
diferença está em salvar o estado do RLO no bit BR. São utilizadas pelo editor do Step
7 quando se está trabalhando em LADDER ou FDB.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 10
TIA PORTAL – SALTOS

JBI/JNBI
Dependem do estado do bit BR da Palavra de Status. Podem ser usados para evitar o
uso de uma instrução “A BR”. Não afetam o estado do RLO nem do próprio BR, mas
setam o Bit STA e resetam os bits OR e FC da Palavra de Status.

JO/JOS
As funções de salto JO e JOS dependem dos bits de Overflow e Overflow Retentivo e
não alteram os bits da Palavra de Status. Elas são usadas para verificar se ouve um
“estouro” em uma operação matemática. Os Saltos JO e JOS não alteram os bits da
Palavra de Status.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 11
TIA PORTAL – SALTOS

JZ
Essa função salta se CC1=0 e CC0=0, o que dependendo da última instrução pode
informar resultados diferentes. O exemplo do JZ após uma instrução de deslocamento
de Bits para a Direita (SRW). Nesse caso, o salto será efetuado se o último bit deslocado
era igual a zero, ou seja, se a memória MW200 era um número Par. O capítulo anterior
detalha os significados das combinações dos Bits CC1 e CC0. O Salto JZ não altera os
bits da Palavra de Status.

JN
Essa função salta se CC1 é diferente de CC0, o que dependendo da última instrução
pode informar resultados diferentes. O Salto JN não altera os bits da Palavra de Status.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 12
TIA PORTAL – SALTOS

JP/JM
O salto JP salta se CC1=1 e CC0=0, enquanto o JM salta se CC1=0 e CC0=1, o que
dependendo da última instrução pode informar resultados diferentes. Os Saltos JM e
JP não alteram os bits da Palavra de Status.

JPZ/JMZ
Funcionam de forma semelhante aos Saltos JP e JM, onde o JPZ salta se CC1=1/CC0=0
ou se CC1=0/CC0=0 e o JMZ salta se CC1=0/CC0=1 ou se CC1=0/CC0=0. Os Saltos JMZ e
JPZ não alteram os bits da Palavra de Status.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 13
TIA PORTAL – SALTOS

JUO
Essa função salta se CC1 e CC0 forem iguais a 1. Isso representa uma divisão por zero,
ou um número real desordenado. O Salto JUO não altera os bits da Palavra de Status.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 14
TIA PORTAL – SALTOS

INSTRUÇÕES QUE ALTERAM O RLO (RESULTADO LÓGICO OPERACIONAL)

Existem instruções que manipulam o RLO diretamente. Através delas é possível forçar um valor
para o RLO que independe de uma condição. São elas:

• SET
Força o valor do RLO para Verdadeiro. Seta o RLO e não possui representação gráfica;

• CLR
Força o valor do RLO para Falso. Limpa o RLO; e não possui representação gráfica;

• NOT
Inverte o valor do RLO e possui representação gráfica.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 15
TIA PORTAL – SALTOS

INSTRUÇÕES DE FIM DE BLOCO

Existem instruções que permitem encerrar um Bloco antes do final do mesmo. Isso pode ser
feito condicionalmente ao RLO, ou incondicionalmente. Segue abaixo os 3 tipos de instruções
de fim de bloco:

• BE

É a instrução que declara o final de um bloco. No Step5 tinha-se que declarar essa instrução
para informar à CPU que o bloco se encerra naquele ponto. No Step7 ela é automaticamente
criada pelo editor de blocos e não se percebe a sua existência. De qualquer forma, pode-se usá-
la para se encerrar um bloco assim como a Instrução BEU descrita abaixo. Não possui
representação Gráfica.

• BEU

No Step7 funciona da mesma forma que o BE. Essa instrução pode ser usada repetidas vezes
dentro de um mesmo bloco, lembrando-se sempre que as linhas de códigos declaradas depois
dessa instrução somente serão executadas se em algum ponto existir um salto “pulando” o BEU.
Não possui representação Gráfica.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 16
TIA PORTAL – SALTOS

• BEC

Essa instrução encerra o bloco da mesma forma que as citadas acima, porém ela depende do
valor do RLO. Se ao ser executada essa instrução, e o RLO for Verdadeiro, ela encerra o bloco e
o programa volta para a posição da chamada desse bloco. Se o RLO for Falso o bloco não é
encerrado, o RLO passa a ser verdadeiro e o programa continua a sua execução linear. Essa
instrução seta os Bits STA e RLO e reseta os Bits OR e FC da Status Word. Existe uma
representação gráfica para essa instrução que seria a instrução RET. Ela combina um SAVE e um
BEC. Dessa forma ela ao mesmo tempo em que encerra o bloco, armazena o estado do RLO no
Bit BR para uso no ENO do Bloco.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 17
TIA PORTAL – SALTOS

INSTRUÇÕES DE SALTO DISTRIBUIDO

O salto distribuído JL permite a programação de saltos múltiplos e funciona de forma


semelhante à instrução “Switch-Case”, largamente utilizada em softwares de programação
como Pascal, Visual Basic, C++, etc.
Em LAD ou FBD a instrução SWITCH tem o mesmo princípio da instrução JL em STL.

Carrega Índice
do Salto

JL Label_Erro

JU Salto_0

JU Salto_1

JU Salto_2
Salta para Erro se
Índice > Qtd de
Saltos, ou seja, se Lógica de Erro
ACCU1 > Qtd de Label_Erro:
de Índice Salta para o Label
JUs entre o JL e o
“Label_Erro”. correspondente ao
Salto_0: Lógicas Salto_0 Índice. Se Índice =
1, então salta para
Salto_1.
Salto_1: Lógicas Salto_1

Salto_2: Lógicas Salto_2

Fim do Salto
Label_Fim:
Distribuído

A lista de saltos inicia imediatamente após a instrução JL, podendo possuir um máximo de 255
entradas, e se estende até o Label da instrução JL. Não pode haver outra instrução além dos
Saltos JU dentro da lista.
Se ao ser executada a instrução JL o valor do ACCU1 for "0", a primeira instrução de salto JU da
lista é efetuada. Se o valor do ACCU1 for igual a “1”, o segundo JU é realizado e assim por diante.
Se o valor do ACCU1 for maior do que a quantidade de JU´s da lista, então se salta para o Label
declarado na instrução JL. A instrução JL é executada independentemente do estado do RLO e
não altera os bits da Palavra de Status.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 18
TIA PORTAL – SALTOS

Exemplo de utilização de salto distribuído:

O conteúdo da variável “SELECAO_COR” irá disparar o salto para o label correspondente. A


Quantidade de JU´s existentes na instrução corresponde ao número de label existentes, onde o
primeiro label corresponde ao valor 0, o segundo ao valor 1, sucessivamente.
Caso “SELECAO_COR” for maior do que quatro (útimo label) a instrução JL irá saltar para o label
ERRO.
Para cada label será carregado a base de tempo de contagem de um temporizador do tipo TON.
Após ser carregado a base o programa saltará para o label EXECUTA e executará o temporizador
com a respectiva base de tempo carregada anteriormente.

JL – ACC1 > 4
JU – ACC1=0
JU - ACC1=1
JU - ACC1=2
JU –ACC1=3
JU – ACC1=4

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 19
TIA PORTAL – SALTOS

INSTRUÇÃO DE LOOP (REPETIÇÃO)

A instrução LOOP do Step7 é semelhante a um loop “FOR” que é muito utilizado em softwares
de programação como Pascal, Visual Basic, C++, etc. Ele é usado quando se deseja executar uma
mesma atividade repetidas vezes.

Carrega Qtd de
LOOPs no ACCU1

Transfere para
Label_Loop: Memória de
LOOPs

Código a ser
repetido

Carrega Memória
de Loops no
ACCU1

Sim LOOP “Label_Loop”


Decrementa o ACCU1
ACCU1 > 0 ?

Não

Continua
execução linear
do programa

A instrução Loop subtrai 1 do ACCU1 e salta para o Label especificado se o valor do ACCU1 ainda
for maior que zero após a subtração. No exemplo abaixo, utiliza-se uma memória Local (Temp -
#Qtd_Loop) de 16 bits (INT) para acumular o valor de contagem de Loops efetuados. Como a
instrução LOOP manipula o ACCU1, o valor da memória de contagem deve ser carregado no
ACCU1 antes da instrução “Loop” e devolvido à memória de contagem após a sua execução. Se
o valor do ACCU1, depois da subtração, for igual a zero, a CPU continua a execução linear do
programa, pois já foram efetuados todos os loops.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 20
TIA PORTAL – SALTOS

Exemplo – Zera todas as variáveis contidas nas memórias entre MB 800 até MB 900.

Endereço inicial dentro


do LOOP

Quantidade de vezes que o


LOOP será executado.

As linhas 8, 9 e 10 serão
executadas 101 vezes dentro
do mesmo scan da CPU

O comando LOOP verifica se o


valor contido no ACC1 é igual
a 0, caso não seja ele retorna
para o label NEXT

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 21
TIA PORTAL – SALTOS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 1 / 22
TIA PORTAL – ACUMULADORES

2. FUNÇÕES COM ACUMULADORES

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 2/1
TIA PORTAL – ACUMULADORES

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 2/2
TIA PORTAL – ACUMULADORES

Sumário
Operações Matemáticas Fundamentais (Soma, Subtração, Multiplicação e Divisão) ...................... 6
Operações Booleanas com Word/Dword (AND,OR,XOR) ................................................................ 6
TAK ................................................................................................................................................ 7
PUSH ............................................................................................................................................. 7
POP ............................................................................................................................................... 7
CAW .............................................................................................................................................. 8
CAD ............................................................................................................................................... 8
INC ................................................................................................................................................ 9
DEC ................................................................................................................................................ 9
INVI / INVD .................................................................................................................................... 9
NEGI / NEGD ................................................................................................................................ 11
NEGR ........................................................................................................................................... 12

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 2/3
TIA PORTAL – ACUMULADORES

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 2/4
TIA PORTAL – ACUMULADORES

FUNÇÕES COM ACUMULADORES

Os acumuladores são registradores de 32 Bits que a CPU usa para o processamento de valores
(Bytes, Words e Dwords). Nenhuma operação é efetuada diretamente nas áreas de memórias
(I, Q, L, M, DB, DI), mas sim somente nos acumuladores (ACCU1, ACCU2). Dessa forma, toda vez
que se deseja realizar uma operação matemática precisa-se primeiramente carregar para os
acumuladores constantes ou valores que estão nas áreas de memórias. Depois disso pede-se
para a CPU efetuar a instrução matemática. Quando se deseja comparar valores, tem-se que
primeiramente carregá-los nos acumuladores para depois mandar a CPU verificar se o ACCU2 é
maior que o ACCU1, por exemplo.

O step7 trata lógicas de bits e manipulação de valores como duas coisas totalmente distintas, e
é por isso um Load é efetuado mesmo com o RLO sendo Falso. O único ponto em que uma
manipulação de valores cruza com lógicas de bits é quando se efetua uma comparação, onde o
resultado é escrito no RLO.

Quando se programa em LADDER ou FDB não se percebe a existência dos acumuladores, pois
esse é o objetivo das linguagens gráficas. Embora a princípio programar operações matemáticas
em STL possa parecer mais complicado, uma vez que se conheçam as instruções, isso tornará o
programa mais simples e enxuto e tomará menos processamento da CPU. Isso porque se pode
trabalhar diretamente com os acumuladores, recuperando o resultado da última operação e
usando-o para uma próxima instrução. Existem instruções que manipulam somente o ACCU1 e
outras que precisam de mais de um acumulador. Segue abaixo a lista dessas instruções:

Funções que usam somente o ACCU1


• Instruções de conversão
• INC Incrementa o ACCU1-L-L
• DEC Decrementa o ACCU1-L-L
• CAW Inverte os dois primeiros Bytes do ACCU1-L
• CAD Inverte os quatro Bytes do ACCU1
• INVI / INVD Inverte os Status dos Bits
• NEGI / NEGD / NEGR Faz o complemento de dois e inverte o sinal
• RLDA / RRDA Rotaciona os Bits utilizando o CC1

Funções que usam ACCU1 e ACCU2


• Operações matemáticas e lógicas Booleanas com Word/Dword
• TAK Inverte o conteúdo do ACCU1 com o ACCU2
• PUSH “Empurra” os valores dos acumuladores para cima
• POP “Puxa” os valores dos acumuladores para baixo

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 2/5
TIA PORTAL – ACUMULADORES

Operações Matemáticas Fundamentais (Soma, Subtração, Multiplicação e Divisão)

As operações aritméticas fundamentais no Step 7 são sempre realizadas entre o ACCU1 e o


ACCU2, sendo o resultado guardado no ACCU1. O Conteúdo do ACCU2 permanece inalterado.

Veja abaixo que ao realizar 3 instruções de Load sequenciais antes de efetuar a operação
matemática, que apenas será considerado os últimos dois Loads. Isso ocorre porque os
acumuladores são tratados com uma pilha, ou seja, apenas os últimos dois valores
carregados são armazenados, os demais são descartados automaticamente.

O primeiro Load é descartado


na pilha dos acumuladores.

Operações Booleanas com Word/Dword (AND,OR,XOR)

As instruções Lógicas Booleanas com Word / Dword combinam Bit a Bit do ACCU1 com o
ACCU2, ou com uma constante. O resultado fica alocado no ACCU1. O Conteúdo do ACCU2
permanece inalterado.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 2/6
TIA PORTAL – ACUMULADORES

TAK
Existem situações no programa em que se deseja inverter os conteúdos do ACCU1 pelo
ACCU2 e para isso existe a instrução TAK. Ela troca os valores dos dois acumuladores.

PUSH
A instrução PUSH copia o conteúdo do acumulador ACCU1 para o ACCU2. É uma forma de se
duplicar o valor do ACCU1.

POP
A instrução POP, ao contrário da PUSH, copia o conteúdo do acumulador ACCU2 para o
ACCU1.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 2/7
TIA PORTAL – ACUMULADORES

CAW
Essa instrução inverte os dois primeiros bytes do ACCU1 não alterando os bytes três e
quatro, conforme a figura abaixo.

ACCU1

Byte 4 - HH Byte 3 - HL Byte 2 - LH Byte 1 - LL

Byte 4 - HH Byte 3 - HL Byte 1 - LL Byte 2 - LH

CAD
Essa instrução inverte os quatro bytes do ACCU1.

ACCU1

Byte 4 - HH Byte 3 - HL Byte 2 - LH Byte 1 - LL

Byte 1 - LL Byte 2 - LH Byte 3 - HL Byte 4 - HH

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 2/8
TIA PORTAL – ACUMULADORES

INC
A instrução INC incrementa o conteúdo do primeiro byte do ACCU1 (ACCU1-LL) com uma
constante no formato inteiro de 8 bits (0 a 255). Ela não altera os demais bytes do ACCU1
(ACCU1-LH, ACCU1-HL e ACCU1-HH) e nem o acumulador ACCU2.

DEC
A instrução DEC decrementa o conteúdo do primeiro byte do ACCU1 (ACCU1-LL) com uma
constante no formato inteiro de 8 bits (0 a 255). Ela não altera os demais bytes do ACCU1
(ACCU1-LH, ACCU1-HL e ACCU1-HH) nem o acumulador ACCU2.

INVI / INVD
Podem-se usar as instruções INVI e INVD quando se deseja inverter os valores dos bits do
ACCU1 (complemento de um). A INVI inverte todos os 16 bits dos dois primeiros bytes do
ACCU1 (ACCU1-LL e ACCU1-LH) enquanto a INVD inverte os valores dos bits dos quatro
bytes do ACCU1. Depois da execução dessas instruções, o bit que tinha valor “1” vira “0” e
o que tinha valor “0” passa a ter “1”.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 2/9
TIA PORTAL – ACUMULADORES

INVI

ACCU1-HH ACCU1-HL ACCU1-LH ACCU1-LL

Copia Bits Inverte Bits

INVD

ACCU1-HH ACCU1-HL ACCU1-LH ACCU1-LL

Inverte Bits

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 2/10
TIA PORTAL – ACUMULADORES

NEGI / NEGD
Essas instruções invertem o sinal do ACCU1 para os números inteiros (INT e DINT). Isso
representa um complemento de dois, o que também poderia ser feito realizando um
complemento de um (INVI e INVD) e depois somando 1 ao número convertido. O resultado
é o mesmo se multiplicarmos o número por -1.

ACCU1-HH ACCU1-HL ACCU1-LH ACCU1-LL

Inverte Bits - INVD

INC 1

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 2/11
TIA PORTAL – ACUMULADORES

NEGR
Essa instrução inverte o sinal do ACCU1 considerando que ele seja um número REAL.
Diferentemente das funções NEG para números Inteiros (NEGI e NEGD) que trabalham com
complemento de dois, essa instrução apenas inverte o bit mais significativo do ACCU1.

ACCU1-HH ACCU1-HL ACCU1-LH ACCU1-LL

Inverte Bit
Expoente – 8bits Mantissa – 23bits
do sinal

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 2/12
TIA PORTAL – ACUMULADORES

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 2/13
TIA PORTAL – ACUMULADORES

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 2/14
TIA PORTAL – NÚMEROS REAIS

3. NÚMEROS REAIS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 3 / 1
TIA PORTAL – NÚMEROS REAIS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 3 / 2
TIA PORTAL – NÚMEROS REAIS

Sumário
NÚMEROS REAIS – PONTO FLUTUANTE ......................................................................................... 5
OPERAÇÕES MATEMÁTICA COM NÚMEROS REAIS ......................................................................... 6
Funções Fundamentais .............................................................................................................. 6
Funções Estendidas .................................................................................................................... 6
Funções Trigonométricas ........................................................................................................... 7

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 3 / 3
TIA PORTAL – NÚMEROS REAIS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 3 / 4
TIA PORTAL – NÚMEROS REAIS

NÚMEROS REAIS – PONTO FLUTUANTE

O Step7 TIA V13, usa o padrão IEEE 754-1985 para representação de seus números REAIS. Ele
define a formatação dos números com pontos-flutuantes assim como suas operações (soma,
subtração, multiplicação, divisão, logaritmo, exponencial, sin, cos, tan, etc.), as formas de
arredondamentos e conversões e as exceções possíveis.

S = Sinal
0 = Positivo
1 = Negativo
f = Mantissa = 23bits

e = Expoente = 8bits

Representação:

𝑅𝐸𝐴𝐿 = (−1)𝑺 × (1. 𝒇) × 2(𝒆−127)

Limites:
−3,401823 × 10+38 0.0 +3,401823 × 10+38

−1,175494 × 10−38 +1,175494 × 10−38

O formato, consiste em três elementos principais:

S = Sinal
O sinal é representado pelo bit mais significativo, ou seja, o bit 31. Se ele for igual a zero (Falso)
o número REAL é positivo, e se for igual a um (Verdadeiro) o número é negativo.

e = Expoente
Representa o expoente e possui 8 bits. Dessa forma pode variar de 0 a 255.

f = Mantissa (fração)
Constitui a parte fracionária do número e contém 23 bits

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 3 / 5
TIA PORTAL – NÚMEROS REAIS

Um número REAL inválido existirá quando ao tentar visualizar uma memória ou os


acumuladores como Ponto-Flutuante, a representação é mostrada como Hexadecimal
(16#FFC0_0000).
Isso poderá acontecer, por exemplo, ao se tentar achar a Raiz Quadrada do número REAL -2.0,
A CPU não entra em modo Stop nem gera registro no Buffer de Diagnóstico devido a erros em
operações matemáticas, como a citada previamente ou uma divisão por zero, sendo necessário
para isso a análise dos Bits OV, OS, CC0 e CC1 da Status Word.

OPERAÇÕES MATEMÁTICA COM NÚMEROS REAIS

Funções Fundamentais

As operações aritméticas fundamentais com números Reais são semelhantes as operações com
números Inteiros e Duplo-Inteiros. Dessa forma precisa-se apenas informar que a soma, por
exemplo, será de números REAIS: +R.

a) Soma: +R
b) Subtração: -R
c) Divisão: /R
d) Multiplicação: *R

Funções Estendidas

As operações estendidas com números Reais manipulam somente o ACCU1 e usam os bits OV,
OS, CC0 e CC1 para informar algum erro na execução das mesmas. Com isso, o acumulador
ACCU2 não é alterado. As funções disponíveis são:

a) Eleva ao Quadrado: SQR = 𝑨𝑪𝑪𝑼𝟏𝟐


b) Raiz Quadrada: SQRT = √𝑨𝑪𝑪𝑼𝟏
c) Exponencial: EXP = 𝒆𝑨𝑪𝑪𝑼𝟏
d) Logaritmo Natural: LN = 𝐥𝐧 𝑨𝑪𝑪𝑼𝟏

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 3 / 6
TIA PORTAL – NÚMEROS REAIS

Com relação ao Logaritmo na base Natural, o valor do ACCU1 deve ser um número REAL
positivo, senão a função irá retornar um erro, setando os bits OV, OS, CC0 e CC1 em “1”.

No exemplo abaixo veja o uso das funções EXP e LN para achar a solução da equação: 𝑿 = 𝑾𝒀 .
Como o Step7 não possui uma instrução que calcule qualquer potência de um número, será
necessário utilizar as funções EXP e LN para chegar à seguinte equação: 𝑿 = 𝑾𝒀 = 𝒆(𝒀×𝐥𝐧 𝑾) .

Equação: 𝑋 = 𝑊 𝑌 = 𝑒 (𝑌×ln 𝑊) = 2.03.0 = 8.0

Funções Trigonométricas

Também é possível trabalhar com as funções trigonométricas e suas funções inversas. Todavia,
o Step7 trabalha com a medida de ângulos em Radiano e dessa forma, para as funções
trigonométricas, faz-se necessário converter o ângulo de entrada para Radiano e o inverso para
as funções de Arco. Esse valor deverá estar no ACCU1 no formato REAL e o resultado será
devolvido também para o ACCU1. As funções disponíveis são:

a) Seno: SIN = SIN(ACCU1)


b) Cosseno: COS = Cos(ACCU1)
c) Tangente: TAN = TAN(ACCU1)
d) Arco-Seno: ASIN = ASIN(ACCU1)
e) Arco-Cosseno: ACOS = ACOS(ACCU1)
f) Arco-Tangente: ATAN = ATAN(ACCU1)

𝝅
𝒓𝒂𝒅 = 90°
𝟐
𝜋 = 3,141593
1° = 0,017453Rad
1𝑅𝑎𝑑 = 57,29577° 180° = 𝝅 𝒓𝒂𝒅 0 𝒓𝒂𝒅 = 0°

𝟑𝝅
𝟐
𝒓𝒂𝒅 = 270°

Dados para conversão Graus => Radianos

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 3 / 7
TIA PORTAL – NÚMEROS REAIS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 3 / 8
TIA PORTAL – ENDEREÇAMENTOS

4. ENDEREÇAMENTOS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 1
TIA PORTAL – ENDEREÇAMENTOS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 2
TIA PORTAL – ENDEREÇAMENTOS

Sumário
ENDEREÇAMENTOS COM STEP 7 – TIA V13 .................................................................................... 5
ENDEREÇAMENTO DIRETO (Absoluto ou TAG) ............................................................................... 6
ENDEREÇAMENTO DIRETO UTILINZADO BLOCO DE DADOS (DB) .................................................... 7
DBNO / DINO ............................................................................................................................... 11
DBLG / DILG ................................................................................................................................. 11
CDB ............................................................................................................................................. 11
ENDEREÇAMENTO INDIRETO ....................................................................................................... 13
Endereçamento Indireto com Memória – Ponteiro de 16 Bits .................................................. 14
Endereçamento Indireto de área interna com Memória – Ponteiro de 32 Bits .......................... 16
Endereçamento Indireto de área interna com Registradores – AR1 e AR2 ................................ 19
Endereçamento Indireto de área cruzada com Registradores – AR1 e AR2 ............................... 21
Instruções com Registradores de Endereço .............................................................................. 22
Parâmetro POINTER – 48 bits ....................................................................................................... 24
Utilizando o parâmetro POINTER dentro do bloco FC ou FB ...................................................... 26
Parâmetro ANY – 80 bits .............................................................................................................. 27
Utilizando o parâmetro ANY dentro do bloco FC ou FB ............................................................. 29

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 3
TIA PORTAL – ENDEREÇAMENTOS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 4
TIA PORTAL – ENDEREÇAMENTOS

ENDEREÇAMENTOS COM STEP 7 – TIA V13

Opções de Endereçamento

Endereçamento Direto Endereçamento Indireto

Absoluto TAG

Memória indireta Registrador indireto

Ponteiro – 16 Bits Ponteiro – 32 Bits Ponteiro – 32 Bits Ponteiro – 32 Bits


(DB, FC, T, C) Área Interna Área Interna Área Cruzada

Independente da forma de utilização das áreas de memórias do CLP, o Step 7 TIA V13, sempre
irá trabalhar em conjunto com um TAG que pode ser nomeado pelo usuário ou simplesmente
receber um nome sugerido pelo Step 7. Esses TAGs também serão transferidos para a CPU
juntamente com seu endereço absoluto e comentário.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 5
TIA PORTAL – ENDEREÇAMENTOS

ENDEREÇAMENTO DIRETO (Absoluto ou TAG)

O endereçamento direto pode ser realizado através do acesso ao nome do TAG ou pelo seu
endereço absoluto.
A leitura e o entendimento do programa tornam-se mais fáceis quando o endereçamento direto
é utilizado, sendo possível identificar exatamente as posições de memória que estão sendo lidas
e/ou escritas pelo programa.

Endereço absoluto

Instrução

TAG

No exemplo acima é possível verificar o acesso a endereços dos tipos Bit, Byte, Word e D.Word.
Também como exemplo de endereçamento direto, a chamada de um bloco FC e a abertura de
um bloco DB.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 6
TIA PORTAL – ENDEREÇAMENTOS

ENDEREÇAMENTO DIRETO UTILINZADO BLOCO DE DADOS (DB)

Com o Step 7 TIA V13, o acesso aos blocos de dados é realizado através dos nomes atribuídos
para cada posição dentro do bloco. Com isso, para ter acesso ao endereço absoluto de um item
dentro do bloco é necessário que seja desabilitada a forma de acesso. O padrão ao se criar um
bloco de dados é para ter acesso apenas pelo nome.

No exemplo abaixo, utilização de um bloco de dados utilizando o acesso otimizado. Veja que
dentro do bloco de dados NÂO existe a coluna de endereçamento absoluto (offset). Desta
forma, somente é possível acessar os itens do bloco através de seu nome.

Não existe endereço absoluto

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 7
TIA PORTAL – ENDEREÇAMENTOS

Para que seja possível acessar um item de um bloco de dados através de seu endereço absoluto,
primeiro é necessário que seja desabilitado o seu acesso otimizado.

No exemplo abaixo, agora é possível utilizar um item de um bloco de dados pelo seu endereço
absoluto, mas também continua com a possibilidade de se trabalhar com o seu nome.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 8
TIA PORTAL – ENDEREÇAMENTOS

Utilizando o bloco de dados sem o acesso otimizado, é possível ler ou escrever em um


item do bloco de duas formas diferentes:

• Instrução combinada

Está a maneira de acesso padrão as informações, onde em uma única instrução


contém qual o bloco de dados será utilizado e seu item. Dessa forma o
entendimento do programa (leitura) torna-se mais fácil porque as todas as
informações necessárias estão em uma única instrução.

Instrução combinada

Instrução combinada

• Instrução individual

Existem casos onde é necessário ter acesso a um item de um bloco de dados de


forma individual, sem a utilização da instrução combinada. Desta forma é possível
acessar um item de um bloco de dos qualquer, que possa ser tratado como um
endereço indireto, sendo assim criando rotinas otimizadas onde apenas o número
do bloco de dados é alterado (exemplo utilização de receitas).

Instrução individual

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 9
TIA PORTAL – ENDEREÇAMENTOS

Exemplos de sintaxes de acesso individual ao bloco de dados

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 10
TIA PORTAL – ENDEREÇAMENTOS

DBNO / DINO

Os comandos DBNO e DBNI retornam o número do DB que está aberto no


momento. A informação é retirada dos registradores (DB register / DI register),
respectivamente. Os comandos podem ser utilizados individualmente. O resultado
fica armazenado no ACCU1.

O bloco de dados aberto


no memento é o DB 4

DBLG / DILG
Os comandos DBLG e DILG retornam o tamanho do DB em bytes que estão abertos
no momento, sendo que a instrução DBLG é para Data Blocks e o DILG é para os
Data Blocks Instance. O resultado fica armazenado no ACCU1.

O DB 4 possui 20 bytes
de comprimento

CDB
O comando CDB faz com que o DB e o DI que estão abertos e guardados nos
registradores sejam trocados de posição. Desta forma o número atual do DB será
movido para o registrador DI e o número do DI será movido para o registrador de
DB. A instrução CDB não altera o valor do ACCU1 e nem influência nos bits de status.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 11
TIA PORTAL – ENDEREÇAMENTOS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 12
TIA PORTAL – ENDEREÇAMENTOS

ENDEREÇAMENTO INDIRETO

Quando se faz um Endereçamento Direto de memórias tem-se a Instrução seguida da


identificação da Área de Memória e do Endereço Inicial do Byte/Bit. No Endereçamento Indireto,
tanto a Área de Memória como o seu Endereço Inicial do Byte/Bit podem ser definidos
indiretamente através de uma Memória ou Registrador. As variáveis utilizadas para o endereço
indireto são chamadas comumente de: PONTEIROS ou INDEXADORES. Essas podem conter
desde informações simples como o número de um DB ou bloco que será aberto, até
informações mais complexas que definam a Área de Memória, o Endereço Inicial do Byte/Bit, o
Tipo do dado (BOOL, BYTE, INT, DINT, REAL) etc. Para isso existem alguns tipos de Ponteiros, os
quais serão descritos abaixo:

Tipos de Ponteiros

• Ponteiros de 16 bits

Utilizado para endereçamento indireto de memória de Temporizadores,


Contadores, abertura de Data Blocks, FCs e FBs.

• Ponteiros de 32 bits

Utilizado para endereçamento indireto as Áreas de Memórias. Pode ser usado


como Ponteiro de Área Interna (área de memória predeterminada pela instrução) e
Ponteiro de Área Cruzada (área de memória variável). Os Registradores de
Endereços (AR1 e AR2) são Ponteiros de 32 Bits.

• Ponteiros de 48 bits

Utilizado para passagem de parâmetros para blocos (FB´s e FC´s). Contém área
cruzada e declaração do número do DB. Esse formato de dado é chamado de
POINTER.

• Ponteiros de 80 bits

Utilizado para passagem de parâmetros para blocos (FB´s e FC´s). Contém área
cruzada, declaração do número do DB, tipo de dado e fator de repetição. Esse
formato de dado é chamado de ANY.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 13
TIA PORTAL – ENDEREÇAMENTOS

Endereçamento Indireto com Memória – Ponteiro de 16 Bits

Para se realizar um Endereçamento Indireto de Temporizadores, Contadores ou Blocos


(FC, FB, DB e DI) serão utilizadas memórias de 16 bits (Word). Ela é interpretada como
um número inteiro de 16 Bits sem sinal (de 0 até 65535).

Conteúdo do MW100 = 4
Ou seja, a instrução
ficaria:

OPN DB 4

Para chamada de blocos FC´s ou FB´s é necessário utilizar as instruções UC (chamada de


bloco incondicional) ou CC (chamada de bloco condicional). Os blocos de funções FBs
somente poderão ser chamados de forma indireta se o mesmo não estiver utilizando
parâmetros de interface (IN, OUT, INOUT). Para chamada de blocos de forma indireta
a instrução CALL não é aceita.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 14
TIA PORTAL – ENDEREÇAMENTOS

O bloco que será chamado indiretamente, deverá estar com o atributo Optimizes block
access desabilitado e o atributo Parameters passing via register habilitado. Caso
contrário, a CPU entrará em modo de falha – STOP.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 15
TIA PORTAL – ENDEREÇAMENTOS

Endereçamento Indireto de área interna com Memória – Ponteiro de 32 Bits

Quando se deseja realizar um acesso indireto a memórias (Bit, Byte, Word e Dword)
dentro de uma mesma Área de Memória (M, I, Q, L, PI/PQ), precisa-se de um ponteiro
com no mínimo 32 Bits. Esse tipo de endereçamento Indireto é chamado de Área
Interna porque se aponta para diferentes Bytes/Bits iniciais dentro de uma mesma Área
de memória, que precisa ser declarada na instrução, EX: L DBW[MD200].

Nesse caso, para acessar indiretamente um Bit de Entrada Digital não bastará que o
PONTEIRO contenha apenas uma informação, um número, como é o caso do PONTEIRO
de 16 Bits. Será necessário um PONTEIRO com no mínimo duas informações, uma que
indique o número do Byte de Entradas Digitais e outra que indique o número do Bit
dentro deste Byte. Essa estrutura está exemplificada na figura abaixo. Nela, os Bits
menos significativos (Bits 0,1 e 2) indicam o número do Bit que será acessado enquanto
que os 16 Bits seguintes ( Bits 3 a 18 ) Indicam o número do Byte que será acessado. Os
demais Bits não são processados pela instrução. Nota-se que a Área de Memória,
(Imagem de Entradas = “I”) foi indicada na instrução e por isso o ponteiro estará sempre
variando dentro das Entradas Digitais.

MD200

MB200 MB201 MB202 MB203

31 19 18 3 2 0

Sem uso = 10 (Decimal) = 6(Decimal)


Byte Inicial Bit Inicial
Inteiro de 16 Bits 3 bits
sem sinal

Carregando uma constante de Ponteiro

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 16
TIA PORTAL – ENDEREÇAMENTOS

Para carregar uma constante de ponteiro de 32 bits no acumulador, deve-se


utilizar a sintaxe descrita abaixo.

O endereço é formado:
10 = byte
0 = bit
P# = indica formato POINTER
L P#10.0
T MD 200
Armazena o endereço
indireto 10.0 dentro da
variável MD200 (DWORD)

L DBW 10

Formato POINTER
000 = bit
1010 = byte

Depois de carregar uma constante no formato ponteiro 32 bits em uma


variável é possível que o seu valor/endereço seja alterado através do
programa, onde utilizam-se as operações aritméticas normais de Duplo-
Inteiros (+D, -D, +D, /D). O exemplo abaixo traz o incremento de ponteiro de
área interna em dois bytes, onde a Word IW10 é transferida para a Word QW10
e depois de incrementado o ponteiro, a Word IW12 é transferida para a Word
QW12.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 17
TIA PORTAL – ENDEREÇAMENTOS

Incrementa 2 bytes no ponteiro


Memória indireta

O endereçamento indireto pode ser utilizado para uma infinidade de tarefas,


mas é em conjunto com a instrução LOOP que ele é mais usado. Isso pode ser
visto no exemplo abaixo, que traz o endereçamento indireto de área interna
para zerar 10 Words a partir do endereço inicial MW500.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 18
TIA PORTAL – ENDEREÇAMENTOS

Endereçamento Indireto de área interna com Registradores – AR1 e AR2

As CPUs do Step-7 possuem dois Registradores de 32 Bits, reservados para


endereçamentos indiretos no formato de ponteiro de 32 Bits.
Eles são chamados de AR1 (Address Register 1) e AR2 (Address Register 2). Esses dois
registradores trabalham de forma independente, pois diferentemente dos
acumuladores (ACCU1, ACCU2), quando se carrega um valor no AR1, o AR2 permanece
inalterado.
O AR1 possui as informações de Byte e Bit iniciais, mas ainda é possível somar Offsets
antes de se acessar o endereço de memória. O Offset não altera o valor do AR1.

AR1

31 19 18 3 2 0

Sem uso = 10 (Decimal) = 6 (Decimal)


Byte Inicial Bit Inicial
Inteiro de 16 Bits 3 bits
sem sinal

Para se carregar um endereço indireto na área dos registradores, utiliza-se o comando


LAR1 ou LAR2. O comando LAR1 copia o conteúdo atual do ACCU1 para dentro da área
do registrador, sendo utilizado o LAR1 para o registrador AR1 e o LAR2 para o
registrador AR2.

Carrega para ACCU1 a


constante de ponteiro 10.6
L P#10.6
LAR1 Copia do ACCU1 para AR1
endereço 10.6

Também é possível utilizar uma instrução combina para carregar constantes dentro dos
registradores. Desta forma o acumulador 1 (ACCU1) não é alterado.

Copia para o AR1 a constante


LAR1 P#10.6 diretamente sem passar pelo
ACCU1

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 19
TIA PORTAL – ENDEREÇAMENTOS

Exemplos de sintaxe no uso do AR1, AR2.

Offset somado ao valor


Instrução AND contido no registrador AR1
A I[AR1,P#0.0]

Quando executado a instrução, AR1 é


substituído pelo seu conteúdo

Área de memória (I = entrada)

Offset somado ao valor


Instrução LOAD
contido no registrador AR1
L MW[AR1,P#0.0]

Quando executado a instrução, AR1 é


substituído pelo seu conteúdo

Área de memória (MW =word de memória)

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 20
TIA PORTAL – ENDEREÇAMENTOS

Endereçamento Indireto de área cruzada com Registradores – AR1 e AR2

O Endereçamento Indireto de Área Cruzada permite variar a Área de Memória que se


deseja acessar e não mais somente o Endereço Inicial (Byte e Bit) que é o caso da Área
Interna. Isso somente é possível através dos registradores de endereço, AR1 e AR2.
Percebe-se que as declarações das instruções não determinam a Área de memória,
estando essa codificada em três Bits dentro do Ponteiro de 32 Bits – AR1. Nele, os bits
24, 25 e 26 especificam a Área de Memória de acordo com a tabela existente na figura
abaixo. Para que o Step 7 TIA V13 entenda o ponteiro como sendo de Área Cruzada, o
31º Bit deverá estar em “1”.

AR1

31 26 25 24 19 18 3 2 1 0

Área Cruzada = 124(Decimal) = 0(Decimal)


Byte Inicial Bit Inicial
Área de Memória Inteiro de 16 Bits 3 bits
sem sinal
000 Periferia de I/O
001 Imagem das Entradas - I
010 Imagem das Saídas - Q
011 Memórias - M
100 Bloco de Dados - DB
101 Bloco de Dados Instância - DI
110 Variáveis Locais (#Temp) - L
111 Parâmetros de Bloco
(IN, OUT, INOUT)

Exemplos

Carrega para ACCU1 a constante


de ponteiro M124.0

L P#M124.0
LAR1
Copia do ACCU1 para AR1
endereço com a área de
memória definida M124.0

LAR1 P#M124.0

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 21
TIA PORTAL – ENDEREÇAMENTOS

Instruções com Registradores de Endereço

LAR1 / LAR2
As instruções mais utilizadas e que já foram vistas anteriormente são o LAR1 e o LAR2,
onde se carrega o valor atual do ACCU1 para o registrador solicitado: AR1 ou AR2.

TAR1 / TAR2
Também é possível realizar a função contrária, ou seja, devolver ao ACCU1 o valor atual
que está armazenado nos registradores. Para isso utilizamos as instruções TAR1 ou
TAR2.

Da mesma forma que as instruções LAR1 e LAR2 trabalham com instruções combinadas,
o TAR1/TAR2 pode ser declarado da seguinte forma: “TAR1 MD600”. Nesse caso o
conteúdo do AR1 é transferido diretamente para a DWord MD600. Deve-se observar
que a memória utilizada para receber o valor do endereço indireto é uma DWord, tendo
em vista que o AR1 e o AR2 sempre estarão no formato Ponteiro 32 Bits. Também é
possível transferir esse valor para Variáveis Locais (#Temp) e Data Blocks (DB ou DI).

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 22
TIA PORTAL – ENDEREÇAMENTOS

CAR
Os registradores AR1 e AR2 trabalham de forma independente, onde um não afeta o
trabalho do outro. Porém é possível realizar a troca de seus conteúdos, invertendo os
valores atuais que estão armazenados dentro de cada um. Para isso utilizamos a
instrução CAR.

+AR1 / +AR2

Uma das principais vantagens de se usar os registradores de endereços é a possibilidade


de se incrementá-los diretamente através das instruções +AR1 e +AR2. O valor a ser
incrementado pode ser especificado através de uma constante: “+AR1 p#2.0”, ou
através do valor atual contido no ACCU1: “+AR1”. Esse último é utilizado quando o valor
a ser incrementado é resultado de operações, onde é necessário manipular esse valor
no ACCU1 e ACCU2 para depois adicioná-lo ao AR1 ou AR2.

Soma diretamente ao
registrador um byte

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 23
TIA PORTAL – ENDEREÇAMENTOS

Parâmetro POINTER – 48 bits

Quando se precisa passar para um bloco o endereço inicial de uma memória, usa-se um
parâmetro do tipo POINTER. Ele possui 48 bits, ou 6 bytes, e pode ser utilizado em FC´s e FB´s
como parâmetros IN, INOUT e OUT.
O formato POINTER está demonstrado na abaixo, consiste em um ponteiro de área cruzada
(ponteiro de 32 bits) mais o número do DB, representado em forma de número inteiro sem sinal
(0 até 65535). Caso o parâmetro POINTER não contenha o endereço de um DB ou DI, os dois
primeiros bytes, que armazenam o número do DB, serão zerados.

Byte

7 0
Número do DB Byte N:
INT - 16 Bits sem sinal
(0 a 65535) Byte N+1:

Byte N+2: POINTER


48 Bits - 6 Bytes
Ponteiro de 32 Bits de Byte N+3:
Área Cruzada
Byte N+4:
Byte N+5:

Para que parâmetros do tipo POINTER funcionem dentro do bloco, é necessário que o atributo
Optmized block access esteja desabilitado nas propriedades do bloco.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 24
TIA PORTAL – ENDEREÇAMENTOS

Exemplos de chamadas de blocos com parâmetros POINTER.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 25
TIA PORTAL – ENDEREÇAMENTOS

Utilizando o parâmetro POINTER dentro do bloco FC ou FB

Como um parâmetro POINTER ocupa 48 bits de memória, não se pode carregar no ACCU1 (32
Bits) todas as informações do POINTER ao mesmo tempo. Sendo assim faz-se necessário
desmembrar o POINTER, transferindo o número do DB para uma variável de 16 bits e o ponteiro
para outra com 32 Bits.

1. Carrega-se no ACCU1 o endereço inicial ocupado pela variável POINTER na área de


memória dos parâmetros de Bloco. Depois transfere-se do ACCU1 para o AR1.
2. Aponta-se para o endereço contido no AR1 e carrega-se no ACCU1 uma Word. Ao
se observar a acima, percebe-se que essa Word contém o número do DB. Depois se
transfere o número do DB para a Word “POINTER_NRDB”.
3. Ainda se apontando para o endereço contido no AR1 e somando-se a ele um Offset
de 2 bytes, carrega-se uma DWord que contém o ponteiro declarado na chamada
do Bloco. Feito isso, transfere-se o ponteiro do ACCU1 para a DWord
“POINTER_ENDEREÇO”. A terceira linha, LAR1 é apenas para que possamos
visualizar o conteúdo da variável.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 26
TIA PORTAL – ENDEREÇAMENTOS

Parâmetro ANY – 80 bits

Enquanto o parâmetro POINTER fornece o Número do DB e o ponteiro do Endereço Inicial, o


Parâmetro ANY fornece, além disso, um Fator de Repetição e o Tipo do Dado. Com isso, em uma
única declaração de interface de Bloco pode-se passar 4 informações, conforme figura abaixo.
Assim como o POINTER, um dado ANY só existe em uma interface de Bloco (IN, INOUT e OUT).

Byte

7 0

Sempre = 10h Byte N:

Tipo do Dado Byte N+1: ANY


80 Bits - 10 Bytes
Fator de Repetição Byte N+2:
TIPO
INT - 16 Bits sem sinal VALOR
DO
(HEX)
(0 a 65535) Byte N+3: DADO
00h VOID
Número do DB Byte N+4: 01h BOOL
02h BYTE
INT - 16 Bits sem sinal 03h CHAR
(0 a 65535) Byte N+5: 04h WORD
05h INT
06h DWORD
Byte N+6: 07h DINT
08h REAL
Ponteiro de 32 Bits Byte N+7: 09h DATE
de Área Cruzada 0Ah TOD
Byte N+8: 0Bh TIME
0Ch S5TIME
Byte N+9: 0Dh DT
0Eh STRING

Para que parâmetros do tipo POINTER funcionem dentro do bloco, é necessário que o
atributo Optmized block access esteja desabilitado nas propriedades do bloco.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 27
TIA PORTAL – ENDEREÇAMENTOS

Exemplos de chamadas de blocos com parâmetros POINTER.

P#DB4.DBX10.0 INT 8

DB4 = Número do DB
.DBX10.0 = Ponteiro de 32 bits de área cruzada
INT = Tipo de dado
8 = Fator de repetição

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 28
TIA PORTAL – ENDEREÇAMENTOS

Utilizando o parâmetro ANY dentro do bloco FC ou FB

Como um parâmetro ANY ocupa 80 bits de memória (10 Bytes), não se pode carregar
no ACCU1 (32 Bits) todas as suas informações ao mesmo tempo. Dessa forma faz-se
necessário desmembrar o ANY, assim como se faz com o POINTER. O exemplo abaixo
traz a declaração de memórias temporárias para receber essas informações que foram
separadas.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 29
TIA PORTAL – ENDEREÇAMENTOS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 4 / 30
TIA PORTAL – RELÓGIO

5. RELÓGIO

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 5 / 1
TIA PORTAL – RELÓGIO

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 5 / 2
TIA PORTAL – RELÓGIO

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 5 / 3
TIA PORTAL – RELÓGIO

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 5 / 4
TIA PORTAL – RELÓGIO

RELÓGIO – INSTRUÇÃO ESTENTIDA

Através das funções de relógio, encontramos instruções para realizar leitura ou ajustes do
relógio da CPU. Além disso, instruções para trabalhar com data e hora estão disponíveis, tais
como, comparar datas, converte, extrair, subtrair, somar e combinar datas.

A instrução RD_SYS_T (Read time-of-day) é utilizada para fazer a leitura do relógio e assim poder
utilizar dentro das lógicas de programa.
3 tipos de dados estão disponíveis para
realizar o armazenamento do relógio:

Date_and_time
DTL
LDT

Variável local do tipo DTL

A leitura é realizada pela instrução e armazenada através do campo de saída OUT. O valor
fornecido não inclui informações sobre o fuso horário ou horário de verão local. Você pode
consultar se os erros ocorreram durante a execução da instrução através do parâmetro de saída
RET_VAL.

A diferença entre os tipos de dados possíveis na utilização da instrução está ligado a faixa de
leitura/armazenamento disponível bem como na forma de armazenamento da informação.
Utilizaremos o tipo de dado DTL. Um operando de tipo de dados DTL tem um comprimento de
12 bytes e armazena informações de data e hora de uma estrutura pré-definida.

A estrutura do tipo de dados DTL consiste em diversos componentes cada um dos quais pode
conter um tipo de dados diferente e gama de valores. O tipo de dados de um valor especificado
deve corresponder ao tipo de dados dos componentes correspondentes.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 5 / 5
TIA PORTAL – RELÓGIO

A tabela a seguir mostra os componentes da estrutura de tipo de dados DTL e suas


propriedades:

Byte Componente Tipo de Dado Faixa de Uso


0 Ano Uint 1970 a 2262
1
2 Mês Usint 1 a 12
3 Dia Usint 1 a 31
4 Dia da Semana Usint 1a7
5 Hora Usint 1 a 23
6 Minuto Usint 1 a 59
7 Segundo Usint 1 a 59
8 Nanosegundo Udint 0 a 999999999
9
10
11

Exemplo de utilização:

A atualização/ajuste do relógio da CPU pode ser realizado de duas formas diferentes. Através
do software TIA V13, utilizando as funções ONLINE ou através de lógicas de programas
utilizando a instrução WR_SYS_T, por exemplo.
O parâmetro IN deve conter uma variável com o tipo de dado definido como Date_and_time,
DTL ou LDT. O princípio de funcionamento é igual ao visto anteriormente para realizar a leitura
do relógio.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 5 / 6
TIA PORTAL – RELÓGIO

Caso algum dos parâmetros de data sejam inseridos fora da faixa possível será enviado um
código de erro no parâmetro de saída RET_VAL.
Certifique a lógica será executa apenas uma vez, pois se ele for executado ciclicamente o relógio
também será ajustado em todos os ciclos, consequentemente ele não irá funcionar.

Tabela de código de erros:

Código do erro Descrição


0000 Sem erros - OK
8080 Erro na data
8081 Erro na hora
8082 Mês inválido
8083 Dia inválido
8084 Hora inválida
8085 Minuto inválido
8086 Segundo inválido
8087 Nanosegundo inválido
80B0 Relógio falhou

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 5 / 7
TIA PORTAL – RELÓGIO

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 5 / 8
TIA PORTAL – OBs DE ERROS

6. OBs DE ERROS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 6 / 1
TIA PORTAL – OBs DE ERROS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 6 / 2
TIA PORTAL – OBs DE ERROS

Sumário
DIAGNÓSTICO - SOLUÇÕES ............................................................................................................ 5
OBs para manipulação de erros assíncronos .................................................................................. 7
OBs para manipulação de erros síncronos ...................................................................................... 7
Criando o OB de erro de programa (OB 121) .................................................................................. 9
Lendo as informações sobre o erro – OB 121 ........................................................................... 10
Criando o OB de erro de acesso a IO (OB 122) .............................................................................. 13
Lendo as informações sobre o erro – OB 122 ........................................................................... 14

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 6 / 3
TIA PORTAL – OBs DE ERROS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 6 / 4
TIA PORTAL – OBs DE ERROS

DIAGNÓSTICO - SOLUÇÕES

Conceito de exibição uniforme

As CPUs S7-1500 oferecem funções integradas de diagnósticos, que são:

• Todos os clientes de um sistema são fornecidos com informações de diagnóstico através de


um mecanismo uniforme.
• Independente do meio de exibição, as informações do diagnóstico são disponibilizadas.
• O diagnóstico do sistema também é possível com a CPU em modo STOP.

1. O dispositivo detecta uma falha e envia os dados de diagnóstico para o CLP.


2. O CLP informa a mídia conectada, as informações de diagnósticos são disponibilizadas.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 6 / 5
TIA PORTAL – OBs DE ERROS

Através de Blocos de Organização (OB) o usuário pode interagir com o sistema operacional da
CPU. Esses blocos são chamados pela CPU e controlam o funcionamento normal da CPU, as
interrupções (hardware, cíclica, Data e hora etc), o comportamento da CPU no início de
funcionamento e a Manipulação de Erros, que é o assunto desse capítulo.
No Step7 TIA V13 o usuário pode programar a CPU para reagir aos diferentes tipos de erros que
podem acontecer, sendo possível existir um procedimento para cada tipo de erro que acontece
com a CPU. Algumas falhas permitem que a CPU continue em execução enquanto outras
possibilitam apenas que a CPU registre o erro antes de entrar em modo STOP.
Toda vez que um Bloco de erro é chamado, ele recebe em suas variáveis temporárias #Temp, as
informações sobre a falha que acabara de acontecer. É através da análise dessas variáveis Locais
que o programa trata a falha. Por exemplo, quando ocorre uma falha na alimentação 24Vdc da
CPU ela pode, antes de ser desligada, setar um bit de alarme para que o supervisório/IHM
registre aquela falha.
Todos os OB´s são executados de acordo com o sistema operacional, ou seja, não é necessário
que sejam chamados ciclicamente através do OB1 ou de um bloco que esteja sendo executado
todos os ciclos. As numerações dos OBs também são definidas pelo sistema operacional.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 6 / 6
TIA PORTAL – OBs DE ERROS

Existem dois tipos básicos de erros: Síncronos e Assíncronos:

OBs para manipulação de erros assíncronos

Erros assíncronos ocorrem durante a execução de um programa de forma assíncrona,


ou seja, não é possível atribuir a um local definido dentro do programa o motivo do
erro.

Tipo do erro Exemplo Número


do OB
Timer error: Tempo máximo excedido na execução do ciclo completo OB 80
Máximo de tempo de ciclo permitido excedido em função de um OB de interrupção executado
uma vez:
Reação do sistema com OB: RUN
Reação do sistema sem OB: STOP

Diagnóstico por interrupção: Módulo com função de diagnóstico de quebra de fio, erro OB 82
Reação do sistema sem OB: RUN de falta de alimentação

Inserir/Remover interrupção: Inserir ou remover um módulo OB 83


Reação do sistema sem OB: RUN

OBs para manipulação de erros síncronos

Erros síncronos ocorrem durante a execução de um programa de forma síncrona, ou


seja, é possível atribuir a um local definido dentro do programa o motivo do erro. Com
um erro de programa o OB 121 é chamado. Para erros de acesso a IOs o OB chamado é
o OB 122.
No caso de um erro e não for encontrado o OB correspondente para aquela falha, o
modo da CPU é alterado para STOP.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 6 / 7
TIA PORTAL – OBs DE ERROS

Exemplo de erro síncrono – Erro de Programa:

Em um bloco FC foi criado uma lógica utilizando endereçamento indireto com memória. Desta
forma, podemos inserir a memória ponteiro um número de endereço que não existe dentro de
um bloco de dados. Consequentemente, o sistema operacional irá procurar o OB 121,
correspondente a erro de programa. Como o mesmo não existe, a CPU entrará em modo STOP
e o buffer de diagnóstico será atualizado com as informações do erro.

O bloco de dados DB4 não


possui o endereço 5000. A CPU
ao tentar escrever neste
endereço entrará em STOP

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 6 / 8
TIA PORTAL – OBs DE ERROS

Criando o OB de erro de programa (OB 121)

A mensagem no buffer de diagnóstico nos mostra qual o OB que deverá ser utilizado no erro
que gerou a falha. Neste caso, é indicado a utilização do OB para Programming Error (OB 121).
Crie o OB 121 e transfira ao CLP. Não é necessário neste momento criar uma lógica de programa.

Observe que a CPU, mesmo com a falha, continua executando o resto do programa, sendo que
apenas a linha onde o erro se encontra é ignorada. Mesmo assim, o buffer de diagnóstico é
atualizado cada vez que a linha com erro é executada.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 6 / 9
TIA PORTAL – OBs DE ERROS

Lendo as informações sobre o erro – OB 121

O sistema operacional, disponibiliza em seus OBs de falhas todas as informações sobre o erro
encontrado. Variáveis temporárias são utilizadas para que o programa possa ter acesso às
informações e deste modo conseguir tomar decisões automaticamente sem a necessidade de
uma intervenção ou até mesmo a geração de alarmes em um sistema supervisório ou em uma
interface homem-máquina (IHM).

Observe na interface do OB 121 quais as informações estão disponíveis:

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 6 / 10
TIA PORTAL – OBs DE ERROS

Significado dos parâmetros:

Parâmetro Tipo de Dado Significado


BlockNr Uint Número do bloco que ocorreu o erro
Reaction Usint 0 – Ignora o erro
1 – Substitui o valor incorreto
2 – Pula o comando
3 - Manipulação de erro programada, desencadeada por um acesso de matriz com
índice inválido
Fault_ID Byte Código do erro. (Valores possíveis: B#16#00, B#16#03, B#16#04, B#16#05, B#16#20,
B#16#21, B#16#22, B#16#23, B#16#24, B#16#25, B#16#26, B#16#27, B#16#28,
B#16#29, B#16#2C, B#16#30, B#16#31, B#16#32, B#16#33, B#16#34, B#16#35,
B#16#38, B#16#39, B#16#3A, B#16#3B, B#16#3C, B#16#3D, B#16#3E, B#16#3F,
B#16#50, B#16#51, B#16#75, B#16#76, B#16#A1, B#16#A2)
BlockType Usint Tipo de bloco em que ocorreu o erro: OB: 1, FC: 2, FB: 3, SFC: 4, SFB: 5, DB: 6
Area Usint Área de acesso onde o erro ocorreu:
Local data: B#16#40 até 4E, 86, 87, 8E, 8F, C0 até CE
Process image input: B#16#01
Process image output: B#16#02
Technology DB: B#16#04
I: B#16#81
Q: B#16#82
M: B#16#83
DB: B#16#84, 85, 8A, 8B
DBNr Block_DB Número do DB (se área = DB ou DI)
Csg_OBNr OB_Any Número do OB
Csg_Prio Usint Prioridade do OB
Width Usint Tipo de acesso durante qual o erro ocorreu:
Bit: B#16#00
Byte: B#16#01
Word: B#16#02
DWord: B#16#03
LWord: B#16#04

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 6 / 11
TIA PORTAL – OBs DE ERROS

Significado dos códigos de erros (Fault_ID):

FAULT_ID Significado
B#16#....
00 Máxima profundidade de sobreposição de chamadas de bloco ultrapassado
03 Você usou um ponteiro NULL para resolver um operando.
04 Instrução desconhecida
05 Instrução STOP
20 A cadeia dirigida tem informações de comprimento incorreto.
21 Erro de conversão de BCD
22 Erro de comprimento de área ao ler
23 Erro de comprimento de área ao escrever
24 Erro da área ao ler
25 Erro da área ao escrever
26 Erro no número do temporizador
27 Erro no número do contador
28 O acesso de leitura a um byte, palavra ou palavra dupla com um ponteiro cujo bit de endereço não é zero
29 O acesso de leitura a um byte, palavra ou palavra dupla com um ponteiro cujo bit de endereço não é zero
2C Você usou um ponteiro NULL para resolver um operando.
30 Escrever em um bloco de dados global (DB) protegido contra gravação
31 Escrever em um bloco de dados instance (DI) protegido contra gravação
32 Erro ao acessar um número de um bloco de dados global (DB)
33 Erro ao acessar um número de um bloco de dados instance (DI)
34 Erro no número ao chamar um bloco FC
35 Erro no número ao chamar um bloco FB
38 O bloco de dados de tipo seguro (type-safe) não foi carregado.
39 O bloco de dados não está definido como tipo seguro (type-safe)
3A Acesso a um bloco de dados (DB) que não foi carregado. O número do DB está localizado na zona permitida.
3B Bloco de dados (DB) inexistente
3C O acesso a um FC que não foi carregado; o número do FC encontra-se na área admissível
3D O acesso a um SFC que não foi carregado; o número do SFC encontra-se na área admissível
3E O acesso a um FB que não foi carregado; o número do FB encontra-se na área admissível
3F O acesso a um SFB que não foi carregado; o número do SFB encontra-se na área admissível
50 O bloco de dados seguro (type-safe) não foi carregado
51 O bloco de dados não está definido como tipo seguro (type-safe)
75 Máxima profundidade de sobreposição de chamadas de bloco ultrapassado
76 O máximo de dados locais disponíveis foi excedido
A1 Acesso de escrita a um tag protegido contra gravação
A2 Acesso a um tag que contém um valor numérico inválido

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 6 / 12
TIA PORTAL – OBs DE ERROS

Criando o OB de erro de acesso a IO (OB 122)

Em um bloco FC foi criado uma lógica utilizando endereçamento de analógicas que não existem
fisicamente no sistema. Com isso, o sistema operacional após executar a linha com erro, irá
procurar na CPU o bloco de organização correspondente a esse tipo de falha, o OB 122 (IO Access
error). Neste caso mesmo que ele não exista, a CPU continuará modo RUN, porém com o LED
de falha piscando (vermelho).

Endereço inexistente: “IW250:P”

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 6 / 13
TIA PORTAL – OBs DE ERROS

Lendo as informações sobre o erro – OB 122

O sistema operacional, disponibiliza em seus OBs de falhas todas as informações sobre o erro
encontrado. Variáveis temporárias são utilizadas para que o programa possa ter acesso às
informações e deste modo conseguir tomar decisões automaticamente sem a necessidade de
uma intervenção ou até mesmo a geração de alarmes em um sistema supervisório ou em uma
interface homem-máquina (IHM).

Observe na interface do OB 122 quais as informações estão disponíveis:

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 6 / 14
TIA PORTAL – OBs DE ERROS

Significado dos parâmetros:

Parâmetro Tipo de Dado Significado


BlockNr Uint Número do bloco que ocorreu o erro
Reaction Usint 0 – Ignora o erro
1 – Substitui o valor incorreto
2 – Pula o comando
Fault_ID Byte Código do erro:
B#16#42: I/O erro de acesso durante leitura
B#16#43: I/O erro de acesso durante escrita
BlockType Usint Tipo de bloco em que ocorreu o erro: OB: 1, FC: 2, FB: 3, SFC: 4, SFB: 5, DB: 6
Area Usint Área de acesso onde o erro ocorreu:
B#16#01: Acesso direto a endereço de entrada
B#16#02: Acesso direto a endereço de saída
B#16#81: Acesso memória imagem de entrada
B#16#82: Acesso memória imagem de saída
DBNr Block_DB Não utilizado
Csg_OBNr OB_Any Número do OB
Csg_Prio Usint Prioridade do OB
Width Usint Tipo de acesso durante qual o erro ocorreu:
Bit: B#16#00
Byte: B#16#01
Word: B#16#02
DWord: B#16#03
LWord: B#16#04

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 6 / 15
TIA PORTAL – OBs DE ERROS

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 6 / 16
TIA PORTAL – TEMPORIZADORES IEC

7. TEMPORIZADORES IEC – MULTI INSTANCE

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 7 / 1
TIA PORTAL – TEMPORIZADORES IEC

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 7 / 2
TIA PORTAL – TEMPORIZADORES IEC

Sumário
TEMPORIZADORES E CONTADORES IEC .......................................................................................... 5

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 7 / 3
TIA PORTAL – TEMPORIZADORES IEC

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 7 / 4
TIA PORTAL – TEMPORIZADORES IEC

TEMPORIZADORES E CONTADORES IEC

Um temporizador ou contador IEC utiliza um tipo de dado especifico para essas instruções que
são IEC_TIMER ou IEC_COUNTER. Com isso, para cada temporizador ou contador utilizado no
programa, a instrução automaticamente cria um bloco de dados instance onde serão
armazenados toda a estrutura necessária para o funcionamento dos blocos.
Com isso, é comum que o programa passe a ter muitos blocos de dados com tamanhos
pequenos, onde apenas a estrutura IEC estará contida nos mesmo.

Quando você insere a instrução na linha de programa é solicitado a criação de um bloco de


dados. O sistema inclusive sugere um nome para este bloco que pode ser alterado, bem como
o seu número que também é sugerido automaticamente mas possui a opção de denomina-lo
manualmente.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 7 / 5
TIA PORTAL – TEMPORIZADORES IEC

Esses blocos de dados (DB) ficam alocados dentro da pasta System blocks, Program resources
conforme podemos verificar na figura abaixo:

Blocos de dados globais

Blocos de dados utilizado


por instruções, como
temporizadores e
contadores

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 7 / 6
TIA PORTAL – TEMPORIZADORES IEC

O Step 7 TIA V13 permite que seja criado apenas um bloco de dados para todos os
temporizadores ou contadores, chamado de multi-instance. Para que isso seja possível, é
necessário que a chamada de todos os temporizadores ou contadores sejam feitas dentro de
um único bloco de função (FB). Veja no exemplo abaixo passo a passo de como criar um bloco
de dados multi-instance.

1. Crie um bloco de função (FB)

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 7 / 7
TIA PORTAL – TEMPORIZADORES IEC

2. Insira nas linhas de programa, a chamada dos temporizadores. Selecione a opção Multi
instance e dê um nome para o seu temporizador.

3. Observe que não será crido um bloco de dados e sim será inserido um ítem a interface do
seu bloco, em Static. O nome sobre o temporizador representa um parâmetro do bloco
através do símbolo #.

4. Repita o procedimento de inserção de temporizadores que houver necessidade (passo 2).


Dê um nome diferente para cada temporizador.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 7 / 8
TIA PORTAL – TEMPORIZADORES IEC

5. Ao chamar o bloco de função (FB) dentro do OB 1 ou por qualquer outro bloco de programa,
será criado o bloco de dados que armazenará todos os temporizadores utilizados pelo
bloco.

A utilização de contadores IEC funciona da mesma forma dos temporizadores, a diferença está
apenas no formato do tipo de dados utilizado pelo contador.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 7 / 9
TIA PORTAL – TEMPORIZADORES IEC

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 7 / 10
TIA PORTAL – SCL

8. OVERVIEW LINGUAGEM SCL

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 8 / 1
TIA PORTAL – SCL

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 8 / 2
TIA PORTAL – SCL

Sumário
INTRODUÇÃO A LINGUAGEM SCL (Structured Control Language) ................................................... 5
INSERINDO UMA FUNÇÃO EM SCL ................................................................................................. 6
Atribuição de valores a variáveis (TAGs) ..................................................................................... 7
Operações matemáticas............................................................................................................. 7
Operações condicionais (IF)........................................................................................................ 7
Operações condicionais (CASE) .................................................................................................. 8
Operações condicionais (FOR) .................................................................................................... 8
COMPILANDO O PROGRAMA ......................................................................................................... 9
VERIFICANDO STATUS DO PROGRAMA – EM SCL ......................................................................... 11

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 8 / 3
TIA PORTAL – SCL

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 8 / 4
TIA PORTAL – SCL

INTRODUÇÃO A LINGUAGEM SCL (Structured Control Language)

O Controle de linguagem estruturada (SCL) corresponde à linguagem de alto nível textual ST


(texto estruturado) definido na norma IEC 61131-3 e cumpre nível de base e requisitos de nível
de reutilização de acordo com Open PLC.

SCL é particularmente adequado para a programação de alta velocidade de algoritmos


complexos, funções de cálculo e para funções de processamento de dados. O código de SCL é
mais simples, mais curto e mais claro para escrever e manusear. A eficiência de programação é
reforçada através do alto desempenho dos novos compiladores SCL.

O editor S7-SCL oferece as seguintes funcionalidades:


• Áreas completas de código de programa pode ser ativado / desativado com apenas um
clique
• Loops e comentários de várias linhas podem ser expandidos e recolhidos
• Favoritos
• Exportação do código SCL
• Acesso rápido a tag (bit, byte, palavra ...) com o "fatiamento"
• Os valores de todas as tags são mostrados claramente em linha
• Blocos SCL podem ser utilizados em outras linguagens do Step 7
• Ideal para blocos de funções definidos pelo usuário para bibliotecas
• Blocos SCL formam a base para o código de programa de compartilhamento entre S7-1200,
S7-300, S7-400 e WinAC
• Economia de tempo considerável em comparação com a programação em LAD / FBD / STL

Regras

Você precisa observar as seguintes regras ao inserir instruções SCL:


• As instruções podem abranger várias linhas.
• Cada instrução termina com um ponto e vírgula (;).
• Não há distinção entre maiúsculas e minúsculas.
• Comentários servem apenas para a documentação do programa. Eles não afetam a
execução do programa.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 8 / 5
TIA PORTAL – SCL

INSERINDO UMA FUNÇÃO EM SCL

A linguagem SCL está disponível para os blocos do tipo Função (FC) ou para os Blocos de Funções
(FB). Ao criar o novo bloco, é necessário que se faça a seleção da linguagem para SCL. Após a
criação do bloco, não é possível que a linguagem seja alterada.

4
3

1
2

1. Insira um novo bloco de programa


2. Selecione Função (FC)
3. Selecione a linguagem – SCL
4. Dê um nome ao novo bloco
5. Finalize com o comando OK

Após o bloco ser criado e aberto para edição, será mostrado na área de trabalho, o editor de
SCL.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 8 / 6
TIA PORTAL – SCL

Exemplos:

Atribuição de valores a variáveis (TAGs)

Todas as variáveis podem receber valores, sejam booleanos, inteiros, real, etc.
A sintaxe para atribuição de valores é “:=”, e sempre a linha é finalizada com ponto e vírgula (;)

Operações matemáticas

Todas as operações matemáticas estão disponíveis (+ - * /)

Operações condicionais (IF)

O resultado de uma condição é checado e se for verdadeiro executa as instruções contidas


abaixo. O ELSE é opcional e é executado quando a condição não for verdadeira.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 8 / 7
TIA PORTAL – SCL

Operações condicionais (CASE)

A variável é lida e comparada aos valores abaixo da instrução. Caso o valor seja correspondido
a linha correspondente é executada.

Operações condicionais (FOR)

A operação FOR executa um looping em função da condição estabelecida. No exemplo abaixo,


será executa a operação de 1 até 31 vezes. Com isso é possível executar tarefas com
endereçamentos indiretos.
Todos os dias do mês de janeiro serão zerados através da operação FOR.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 8 / 8
TIA PORTAL – SCL

COMPILANDO O PROGRAMA

Após o desenvolvimento do programa o bloco deve ser transferido para a CPU e essa operação
apenas é possível se não houver erros de programa. Antes de descarregar o bloco o sistema faz
uma compilação onde verifica se erros de sintaxe existem. Caso apresente algum erro ele é
apresentado na janela inspetor.
A compilação também pode ser realizada a qualquer momento através do comando manual
Compile.

Abaixo um exemplo de uma compilação sem erros.

Resultado da compilação –
sem erros

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 8 / 9
TIA PORTAL – SCL

Abaixo um exemplo de uma compilação com erros.

O resultado da compilação informa quantos erros foram encontrados, a linha onde o erro se
encontra e o tipo de erro.
Ao clicar sobre a linha do resultado com erro, automaticamente, será aberto o bloco e
selecionado a linha onde está o erro. No exemplo acima, está faltando o ponto e vírgula ao final
da instrução.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 8 / 10
TIA PORTAL – SCL

VERIFICANDO STATUS DO PROGRAMA – EM SCL

Ao habilitar o status do bloco, o conteúdo das variáveis é mostrado na tela em laranja. Em


variáveis booleanas quando verdadeiras será mostrado na cor verde.

Habilita/Desabilita o
status do programa

Conteúdo das variáveis

Resultado da condição

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 8 / 11
TIA PORTAL – SCL

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 8 / 12
TIA PORTAL – S7-GRAPH

9. OVERVIEW S7-GRAPH

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 9 / 1
TIA PORTAL – S7-GRAPH

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 9 / 2
TIA PORTAL – S7-GRAPH

Sumário
S7-GRAPH - INTRODUÇÃO.............................................................................................................. 5
OS BLOCOS DE UM SISTEMA DE CONTROLE SEQUENCIAL............................................................... 6
SEÇÃO DE UMA SEQUENCIA COM PASSOS E TRANSIÇÕES .......................................................... 7
EXEMPLO – APLICAÇÃO DOSAGEM ................................................................................................ 8
Executar o S7-GRAPH ............................................................................................................... 13
Descrição geral dos parâmetros do FB de controle ....................................................................... 14

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 9 / 3
TIA PORTAL – S7-GRAPH

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 9 / 4
TIA PORTAL – S7-GRAPH

S7-GRAPH - INTRODUÇÃO

A linguagem de programação S7-Graph aumenta as opções de funções do STEP 7 permitindo


que você programe graficamente sistemas de controle sequencial.
Com o S7-Graph você pode configurar e escrever programas para processos sequenciais de
controle para CLP Simatic S7-1500. O processo é dividido em passos (steps) simples com funções
claramente definidas. A sequência do processo é representada graficamente e pode ser
documentada como gráfico ou texto.
Nos steps você especifica as ações que deverão ser executadas. A progressão de um step para
o próximo step é controlada pelas transitions (step habilitado condicionalmente). As definições,
o encadeamento e a monitoração das transições são programados usando um subconjunto das
linguagens de programação LAD ou FBD.
O S7-Graph para S7-1500 está de acordo com a linguagem de controle sequencial “Sequencial
Function Chart” estabelecida na Norma DIN EM 61131-3 (IEC 1131-3).

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 9 / 5
TIA PORTAL – S7-GRAPH

OS BLOCOS DE UM SISTEMA DE CONTROLE SEQUENCIAL

Um sistema sequencial de controle controla o processo em uma ordem fixa, dependente


de certas condições.
A complexidade do sistema de controle sequencial depende da tarefa para automação.
Entretanto, mesmo o mais simples sistema requer pelo menos os três blocos seguintes:

1. Um bloco STEP 7 em que o FB S7-Graph (bloco de função) é chamado. Este bloco pode ser
um OB, um FC ou outro FB.

2. Um FB S7-Graph-7 que descreve as sub-tarefas individuais e interdependência do sistema


de controle sequencial. Estas sub-tarefas (passos / steps) e interdependências (transitions)
podem ser organizadas em uma ou mais sequências.

3. Um DB instance que contém dados e parâmetros do sistema de controle sequencial. O DB


instance é atribuído ao FB S7-Graph e pode ser criado automaticamente pelo sistema.

2
1 3
FB S7-Graph

Coments for... DB instance


CALL FBi.DBi
INIT_SQ:=

S1

T1

S2

T2

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 9 / 6
TIA PORTAL – S7-GRAPH

SEÇÃO DE UMA SEQUENCIA COM PASSOS E TRANSIÇÕES

Você programa as sequências no FB S7-Graph. Uma sequência consiste de uma


sequência de passos que são ativados em uma ordem fixa dependendo das transições
(condição de habilitação do passo).

S1 Step 1

Motor Chave limite Ação


Actiomn
T1 Transition 1 Ação
A
Condições
S2
Step 2
Entrada 1 Entrada 2
Ação
T2 Transition 2

Condições

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 9 / 7
TIA PORTAL – S7-GRAPH

EXEMPLO – APLICAÇÃO DOSAGEM

Na aplicação DOSAGEM iremos mostrar um pouco da utilização de um bloco desenvolvido em


S7-GRAPH.
A aplicação tem como objetivo realizar três dosagens em um tanque, misturar e esvaziar. Cada
ciclo chamado de Batch é realizado sequencialmente da seguinte forma:

1. Início
2. Dosagem Produto A
3. Dosagem Produto B
4. Dosagem Produto C
5. Mistura
6. Esvaziamento

Step 1 – INICIO

O primeiro passo verifica as condições para iniciar um novo batch. Checa se todas as válvulas
estão fechadas, se o comando de início START foi habilitado e se a quantidade de batchs a serem
produzidos é diferente de 0. Com todas as condições verdadeiras o próximo passo é executado.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 9 / 8
TIA PORTAL – S7-GRAPH

Step 2 – DOSAGEM PRODUTO A

O segundo passo tem como ação abrir e permanecer aberta a válvula de dosagem do Produto
A durante a execução do passo. Apenas será realizado a transição para o próximo passo quando
o sinal de fim de dosagem for verdadeiro FIM_DOSAGEM_A.
Um tempo de supervisão de 5 segundos foi configurado. Com isso, caso a dosagem não termine
após a contagem deste tempo, a sequência será interrompida com indicação de falha – tempo
de supervisão. O tempo de supervisão começa a contar assim que o passo é habilitado.

Supervisão do passo

Ação do passo

Comando N liga um bit


durante a execução do
passo

Condição de transição de passo

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 9 / 9
TIA PORTAL – S7-GRAPH

Step 3 – DOSAGEM PRODUTO B

O terceiro passo tem como ação abrir e permanecer aberta a válvula de dosagem do Produto B
durante a execução do passo. Apenas será realizado a transição para o próximo passo quando
o sinal de fim de dosagem for verdadeiro FIM_DOSAGEM_B.
Um tempo de supervisão de 5 segundos foi configurado. Com isso, caso a dosagem não termine
após a contagem deste tempo, a sequência será interrompida com indicação de falha – tempo
de supervisão. O tempo de supervisão começa a contar assim que o passo é habilitado.

Supervisão do passo

Ação do passo

Comando N liga um bit


durante a execução do
passo

Condição de transição de passo

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 9 / 10
TIA PORTAL – S7-GRAPH

Step 4 – DOSAGEM PRODUTO C

O quarto passo tem como ação abrir e permanecer aberta a válvula de dosagem do Produto C
durante a execução do passo. Apenas será realizado a transição para o próximo passo quando
o sinal de fim de dosagem for verdadeiro FIM_DOSAGEM_C.
Um tempo de supervisão de 5 segundos foi configurado. Com isso, caso a dosagem não termine
após a contagem deste tempo, a sequência será interrompida com indicação de falha – tempo
de supervisão. O tempo de supervisão começa a contar assim que o passo é habilitado.

Supervisão do passo

Ação do passo

Comando N liga um bit


durante a execução do
passo

Condição de transição de passo

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 9 / 11
TIA PORTAL – S7-GRAPH

Step 5 – MISTURA

O quinto passo tem como ação misturar os produtos. Apenas será realizado a transição para o
próximo passo quando o tempo de misturar for finalizado.
Este passo não contém ação de supervisão.

Ações

Condição de transição de passo

Step 6 – ESVAZIAMENTO

O sexto e último passo tem como ação esvaziar o tanque e contar quantos batchs já foram
executados. Apenas será realizado a transição para o próximo passo quando o tempo de
esvaziamento for finalizado.
Este passo não contém ação de supervisão.

Ações

Retorna ao passo 1

Condição de transição de passo

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 9 / 12
TIA PORTAL – S7-GRAPH

Executar o S7-GRAPH

Com o bloco devidamente criado, ele deve ser chamado em nosso bloco cíclico, OB 1.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 9 / 13
TIA PORTAL – S7-GRAPH

Descrição geral dos parâmetros do FB de controle

COMANDOS DO BLOCO

OF_SQ: DESLIGA SEQUÊNCIA


INIT_SQ: INICIALIZA SEQUÊNCIA
ECK_EF: RECONHECE FALHA (FORÇA O AVANÇO PARA O PRÓXIMO PASSO)
S_PREV: PASSO ANTERIOR (SOMENTE NAVEGA NOS PASSOS DA SEQUÊNCIA EM MODO MANUAL)
S_NEXT: PASSO SEGUINTE (SOMENTE NAVEGA NOS PASSOS DA SEQUÊNCIA EM MODO MANUAL)
SW_AUTO: MODO AUTOMATICO
SW_TAP: MODO SEMI AUTO (AVANÇA O PASSO PELA ENTRADA T_PUSH E DEPENDE DA TRANSIÇÃO)
SW_TOP: MODO SEMI AUTO (AVANÇA O PASSO PELA CONDIÇÃO DA TRANSIÇÃO SATISFEITA OU PELA
ENTRADA T_PUSH. SENDO QUE NESTE SEGUNDO CASO NÃO DEPENDE DA TRANSIÇÃO)
SW_MAN: MODO MANUAL
S_SEL: PASSO DESEJADO (MODO MANUAL)
S_ON: ATIVA PASSO DESEJADO (MODO MANUAL)
S_OFF: DEJATIVA PASSO DESEJADO (MODO MANUAL)
T_PUSH: ATIVA SEQUENCIALMENTE OS PASSOS (CONFORME A SEQUÊNCIA DO PROGRAMA) EM
MODO SEMI AUTOMATICO

STATUS DO BLOCO

S_NO: PASSO ATUAL


S_MORE: PASSOS ADICIONAIS ESTÃO ATIVOS (EM MODO MANUAL)
S_ACTIVE: SE O PASSO INDICADO NA SAIDA “S_NO” ESTIVER ATIVO, ESTE BIT É LIGADO
ERR_FLT: FALHA ATIVA (GERADA APARTIR DO ERRO DE SUPERVISÃO)
AUTO_ON: MODO AUTOMATICO SELECIONADO
TAP_ON: MODO SEMI AUTOMATICO SELECIONADO (DEPENDENDE TRANSIÇÃO)
TOP_ON: MODO SEMI AUTOMATICO SELECIONADO (INDEPENDENDE TRANSIÇÃO)
MAN_ON: MODO MANUAL SELECIONADO

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 9 / 14
TIA PORTAL – S7-GRAPH

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 9 / 15
TIA PORTAL – S7-GRAPH

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 9 / 16
TIA PORTAL – WEB SERVER

10. WEB SERVER

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 1
TIA PORTAL – WEB SERVER

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 2
TIA PORTAL – WEB SERVER

Sumário
WEB SERVER .................................................................................................................................. 5
CONFIGURANDO O WEB SERVER ................................................................................................... 6
HABILITANDO............................................................................................................................. 6
ADMINISTRAÇÃO DE USUÁRIOS ................................................................................................. 7
TABELAS WATCH ........................................................................................................................ 8
ACESSANDO O SERVIDOR WEB....................................................................................................... 9
LOGIN – Start Page ................................................................................................................... 11
DIAGNOSTICS ........................................................................................................................... 12
DIAGNOSTIC BUFFER ................................................................................................................ 13
MODULE INFORMATION .......................................................................................................... 14
ALARMS ................................................................................................................................... 15
COMUNICATION ...................................................................................................................... 16
TOPOLOGY ............................................................................................................................... 17
TAG STATUS ............................................................................................................................. 18
WATCH TABLES ........................................................................................................................ 19
CUSTOMER PAGES / FILE BROWSER / DATALOGS ..................................................................... 20

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 3
TIA PORTAL – WEB SERVER

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 4
TIA PORTAL – WEB SERVER

WEB SERVER

Benefícios de em servidor Web


O servidor Web permite monitorar e administrar a CPU através de usuários autorizados por
meio de uma rede. Isto permite a avaliação e diagnóstico em longas distâncias. Tudo isso sem
a necessidade de ter instalado na máquina o Step 7 V13. Basta ter um navegador Web.

Ativando o servidor Web


Por padrão, a funcionalidade de servidor Web vem desabilitada. Para ter acesso as ferramentas
do servidor Web é necessária sua habilitação no projeto do CLP. Caso contrário, mesmo com o
endereço IP correto no navegador Web o acesso não será permitido.

Funções de Segurança
O servidor Web fornece as seguintes funções de segurança:
• Acesso via protocolo de transmissão seguro “Https”
• Autorizações por usuários cadastrados
• Funcionalidades disponibilizada em função dos usuários

Web browser – Navegador


Você precisa de um navegador Web para acessar as páginas HTML da CPU. Os seguintes
navegadores Web têm sido testados para a comunicação com a CPU:
• Internet Explorer (Versão 8 até 11)
• Mozilla Firefox (Versão 22 até 32)
• Google Chrome (Versão 33 até 38)
• Mobile Safari e Chrome para iOS (iOS 8)
• Android Browser e Android Chrome (Sistema operacional JellyBean)

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 5
TIA PORTAL – WEB SERVER

CONFIGURANDO O WEB SERVER

HABILITANDO

Através das propriedades da CPU, em Device Configuration, selecione o item Web server.

1. Para ter acesso ao servidor Web, deve ser ativado


2. Você pode selecionar o acesso apenas via HTTPS
3. Habilita que o navegador seja atualizado automaticamente a cada 10 segundos.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 6
TIA PORTAL – WEB SERVER

ADMINISTRAÇÃO DE USUÁRIOS

Os usuários que poderão ter acesso ao servidor Web devem ser cadastrados, atribuído níveis
de acesso e também deverá ser definido a senha, para cada usuário cadastrado.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 7
TIA PORTAL – WEB SERVER

TABELAS WATCH

É possível disponibilizar tabelas Watch existentes em seu projeto para serem acessadas através
do servidor Web. Com isso é possível visualizar variáveis e também modificar seus valores
atuais.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 8
TIA PORTAL – WEB SERVER

ACESSANDO O SERVIDOR WEB

Após o servidor Web ter sido habilitado nas configurações e transferido para a CPU, podemos
acessar através de um navegador Web. Utilizamos o endereço IP configurado para a porta
Ethernet que está sendo utilizada na rede.

Em nosso exemplo, o endereço IP correspondente é 192.168.0.69 e não está sendo utilizado


modo seguro (Https).

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 9
TIA PORTAL – WEB SERVER

Ao se conectar com a CPU através do navegador, será exibido apenas as informações básicas,
como versão do software de engenharia utilizado, nome da estação, família e tipo de CPU.
Também é possível visualizar o modo operacional da CPU (RUN ou STOP), status de todos os
elementos do sistema e também a posição física da chave seletora de modo operacional da
CPU.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 10
TIA PORTAL – WEB SERVER

LOGIN – Start Page

A partir do momento que o usuário entra com sua senha, todas as informações disponibilizadas
para aquele usuário, estarão disponíveis para acesso.

Observe que na mesma tela inicial com as informações referentes a CPU, agora estão
disponíveis botões para alterar o modo operacional da CPU. Ao lado esquerdo, uma árvore
contendo todos os itens disponíveis ao usuário está habilitada.

2
1

4
4

1. O idioma pode ser selecionado, estarão disponíveis os mesmos configurados na CPU.


2. Informação do usuário atual logado, bem como a opção de realizar o Log out.
3. Barra de navegação entre as opções disponíveis ao usuário logado.
4. Botões para alterar o modo operacional da CPU e também realizar o pisca dos LEDs da CPU.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 11
TIA PORTAL – WEB SERVER

DIAGNOSTICS

Com o recurso de diagnóstico, é possível obter informações sobre a identificação do sistema, e


também do uso atual das memórias do CLP.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 12
TIA PORTAL – WEB SERVER

DIAGNOSTIC BUFFER

O mesmo recurso encontrado no STEP 7 TIA V13 de poder acessar a lista de erros ocorridos na
CPU também estão disponíveis através do servidor WEB. Desta forma, não é necessário a
utilização de um terminal de programação para realizar consultas de erros que ocorreram
anteriormente, já que a CPU armazena os últimos 100 erros identificados (dependendo do
modelo da CPU poderá ter mais ou menos informações armazenadas).

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 13
TIA PORTAL – WEB SERVER

MODULE INFORMATION

Com a opção Module Information, é possível verificar o status de todos os componentes do


sistema, seja uma CPU, uma estação remota, ou um cartão de comunicação. Ao encontrar um
problema com algum dispositivo, é possível acessar detalhes sobre a falha.

Sem falha

Falha em uma
estação remota Ao clicar sobre o
Profinet link, é possível obter
informações mais
detalhadas

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 14
TIA PORTAL – WEB SERVER

ALARMS

Alarmes podem ser verificados utilizando esta opção. Os alarmes que serão disponibilizados
serão mensagens do próprio sistema. Geradas automaticamente, ou alarmes gerados através
de lógicas de programas utilizando as instruções Program_Alarm, Get_AlarmState e
Gen_UsrMsg.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 15
TIA PORTAL – WEB SERVER

COMUNICATION

Informações de configurações das portas ethernet, endereço MAC, endereço IP, utilização de
roteador, e status de conexão podem ser acessadas através do item Communication. Ainda
nesta opção, é possível verificar estatísticas das portas bem como a quantidade de conexões
estão sendo utilizadas e quantas ainda estão disponíveis. Também é possível saber quais os
dispositivos que estão ONLINE com a CPU nesse momento, obtendo inclusive os seus endereços
IPs respectivamente.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 16
TIA PORTAL – WEB SERVER

TOPOLOGY

Toda a rede Profinet é apresentada em sua topologia através de uma forma gráfica ou por
tabela. Desta forma é possível visualizar as conexões entre os dispositivos, bem como o caminho
que está sendo utilizado na sua ligação física.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 17
TIA PORTAL – WEB SERVER

TAG STATUS

Com o Tag Status é possível obter status de qualquer variável previamente cadastrada na tabela
de TAGs do projeto. É possível selecionar o formato que será representado na tela. Também é
possível alterar o valor atual da variável. Esta ferramenta não é um FORCE prevalecendo assim
a varredura e execução do programa.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 18
TIA PORTAL – WEB SERVER

WATCH TABLES

Da mesma forma que as tabelas Watchs são utilizadas pelo Step 7 TIA V13, as mesmas tabelas
podem ser acessadas através do servidor Web. Para isso, as tabelas devem ser selecionadas
previamente na configuração da CPU, nas propriedades Web Server.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 19
TIA PORTAL – WEB SERVER

CUSTOMER PAGES / FILE BROWSER / DATALOGS

Páginas HTML desenvolvidas pelo usuário podem ser armazenadas e acessadas através do
servidor WEB. Nestas páginas podem conter inclusive informações de TAGs utilizados no
sistema. Dessa forma, é possível criar páginas de relatórios, sinóticos e informações de alarmes
de forma limpa e clara para o usuário. É necessário configurar instruções no Ladder para
possibilitar o uso dessa função.
Arquivos em geral podem ser acessados pelo servidor Web através de um serviço FTP interno.
Com isso, é possível transferir qualquer tipo de arquivo e armazena-lo na memória do CLP,
utilizando o recurso File Browser.
Datalogs são blocos de dados armazenados no cartão da CPU que ficam a disposição do usuário
através do servidor Web. É necessário configurar instruções no Ladder para possibilitar o uso
dessa função.

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 20
TIA PORTAL – WEB SERVER

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 21
TIA PORTAL – WEB SERVER

Centro de Treinamento Orkan Automação industrial


S7 1200 / S7 1500 – Nível II | Capitulo 10 / 22

Você também pode gostar