Escolar Documentos
Profissional Documentos
Cultura Documentos
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
9. OVERVIEW S7-GRAPH
1. OPERAÇÕES DE SALTOS
Sumário
Áreas de Memórias
Load Memory Work Memory Periferia de I/O Memórias Gerais
L LAR1 OPN DB A, O, FP
T TAR2 =, S, R
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.
ÁREAS DE MEMÓRIAS
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.
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.
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.
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).
Os saltos podem ser para frente ou para trás no programa contanto que seja para o mesmo
bloco.
Label (Marca)
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.
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
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.
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.
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.
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.
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.
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.
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.
• 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.
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
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.
JL – ACC1 > 4
JU – ACC1=0
JU - ACC1=1
JU - ACC1=2
JU –ACC1=3
JU – ACC1=4
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
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.
Exemplo – Zera todas as variáveis contidas nas memórias entre MB 800 até MB 900.
As linhas 8, 9 e 10 serão
executadas 101 vezes dentro
do mesmo scan da CPU
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
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:
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.
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.
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.
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
CAD
Essa instrução inverte os quatro bytes do ACCU1.
ACCU1
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”.
INVI
INVD
Inverte Bits
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.
INC 1
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.
Inverte Bit
Expoente – 8bits Mantissa – 23bits
do sinal
3. 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
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:
Limites:
−3,401823 × 10+38 0.0 +3,401823 × 10+38
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
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:
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: 𝑿 = 𝑾𝒀 = 𝒆(𝒀×𝐥𝐧 𝑾) .
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:
𝝅
𝒓𝒂𝒅 = 90°
𝟐
𝜋 = 3,141593
1° = 0,017453Rad
1𝑅𝑎𝑑 = 57,29577° 180° = 𝝅 𝒓𝒂𝒅 0 𝒓𝒂𝒅 = 0°
𝟑𝝅
𝟐
𝒓𝒂𝒅 = 270°
4. 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
Opções de Endereçamento
Absoluto TAG
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.
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.
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.
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.
• Instrução combinada
Instrução combinada
Instrução combinada
• Instrução individual
Instrução individual
DBNO / DINO
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.
ENDEREÇAMENTO INDIRETO
Tipos de Ponteiros
• Ponteiros de 16 bits
• 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.
Conteúdo do MW100 = 4
Ou seja, a instrução
ficaria:
OPN DB 4
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.
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
31 19 18 3 2 0
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
AR1
31 19 18 3 2 0
Também é possível utilizar uma instrução combina para carregar constantes dentro dos
registradores. Desta forma o acumulador 1 (ACCU1) não é alterado.
AR1
31 26 25 24 19 18 3 2 1 0
Exemplos
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
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).
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
Soma diretamente ao
registrador um byte
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:
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.
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.
Byte
7 0
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.
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
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.
5. RELÓGIO
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
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.
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.
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.
6. 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
DIAGNÓSTICO - SOLUÇÕES
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.
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
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.
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.
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).
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
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).
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).
Sumário
TEMPORIZADORES E CONTADORES IEC .......................................................................................... 5
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.
Esses blocos de dados (DB) ficam alocados dentro da pasta System blocks, Program resources
conforme podemos verificar na figura abaixo:
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.
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 #.
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.
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
Regras
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
Após o bloco ser criado e aberto para edição, será mostrado na área de trabalho, o editor de
SCL.
Exemplos:
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
A variável é lida e comparada aos valores abaixo da instrução. Caso o valor seja correspondido
a linha correspondente é executada.
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.
Resultado da compilação –
sem 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.
Habilita/Desabilita o
status do programa
Resultado da condição
9. OVERVIEW 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
S7-GRAPH - INTRODUÇÃO
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
1 3
FB S7-Graph
S1
T1
S2
T2
S1 Step 1
Condições
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.
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
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
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
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
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
Executar o S7-GRAPH
Com o bloco devidamente criado, ele deve ser chamado em nosso bloco cíclico, OB 1.
COMANDOS DO BLOCO
STATUS DO BLOCO
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
WEB SERVER
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
HABILITANDO
Através das propriedades da CPU, em Device Configuration, selecione o item 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.
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.
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.
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.
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
DIAGNOSTICS
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).
MODULE INFORMATION
Sem falha
Falha em uma
estação remota Ao clicar sobre o
Profinet link, é possível obter
informações mais
detalhadas
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.
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.
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.
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.
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.
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.