SlideShare uma empresa Scribd logo
1 de 18
Data: 30.04.17
Arquivo: STOE_02P.1
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Armazenamento de Dados em Blocos de Dados
Data: 30.04.17
Arquivo: STOE_02P.2
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Memórias Bit
PIQ
PII
Áreas de Armazenamento para Dados
Blocos de Dados
DBx
DBy
DBz
. . .
Área de I/O
L stack
(Pilha Local)
Data: 30.04.17
Arquivo: STOE_02P.3
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Blocos de Dados (DBs)
Função
FC10
Função
FC20
Bloco de
Função
FB1
OB1
Dado global
DB20
Acessível p/todos os blocos
Dados Instance
DB5
DB Instance do FB1
Data: 30.04.17
Arquivo: STOE_02P.4
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Vista Geral dos Tipos de Dados em STEP 7
Tipos de dados
elementares
(até 32 bits)
Tipos de dados
complexos
(maiores que 32 bits)
Tipos de dados definidos pelo usuário
(User-defined data types)
(maiores que 32 bits)
• Tipos de dados Binários
(BOOL, BYTE, WORD, DWORD, CHAR)
• Tipos de dados Matemáticos (INT, DINT, REAL)
• Tipos Tempo (S5TIME, TIME, DATE, TIME_OF_DAY)
• Tempo (DATE_AND_TIME)
• Array (ARRAY)
• Estrutura (STRUCT)
• Cadeia de Caracteres (STRING)
Tipo de Dado UDT(User Defined Type)
Data: 30.04.17
Arquivo: STOE_02P.5
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Tipos de Dados Elementares em STEP 7
BOOL 1 1 ou 0
BYTE 8 B#16#A9
WORD 16 W#16#12AF
DWORD 32 DW#16#ADAC1EF5
CHAR 8 ' w '
S5TIME 16 S5T#5s_200ms
INT 16 123
DINT 32 65539
REAL 32 1.2 ou 34.5E-12
TIME 32 T#2D_1H_3M_45S_12MS
DATE 16 D#1993-01-20
TIME_OF_DAY 32 TOD#12:23:45.12
Palavra chave
(Keyword)
Comprimento
(em bits)
Exemplo de uma constante deste tipo
Data: 30.04.17
Arquivo: STOE_02P.6
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Tipos de Dados Complexos
DATE_AND_TIME 64 DT#97-09-24-12:14:55.0
STRING 8 * (número de ´This is a string´
(conjunto de caracteres com caracteres +2) ´SIEMENS´
máx. de 254 caracteres)
ARRAY definido pelo Valores medidos: ARRAY[1..20]
(Grupo de elementos usuário INT
do mesmo tipo de dado)
STRUCT definido pelo Motor: STRUCT
(Grupo de elementos usuário Speed : INT
de diferentes tipos de dados) Current: REAL
END_STRUCT
UDT UDT como bloco UDT como array
(User Defined Data Type = definido pelo
“Template" consiste de usuário STRUCT Drive: ARRAY[1..4]
tipos de dados Speed : INT UDT1
elementares ou complexos Current: REAL
END_STRUCT
Palavra chave
(Keyword)
Comprimento
(em bits)
Exemplo
Data: 30.04.17
Arquivo: STOE_02P.7
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Exemplo de uma Estrutura
Mostra no Editor de Programas (Bloco de Dados DB 1):
Operating Speed, tipo de dado Integer
Rated Current, tipo de dado Real
Startup Current, tipo de dado Real
Turning Direction, tipo de dado Bool
Estrutura com o nome "Motor_data"
(diversos elementos
com diferentes tipos)
Motor_data
Data: 30.04.17
Arquivo: STOE_02P.8
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Exemplo de um Array
1. Measuring_point, tipo de dado Real
2. Measuring_point, tipo de dado Real
3. Measuring_point, tipo de dado Real
10. Measuring_point, tipo de dado Real
Array com o nome "Measuring_point"
(diversos elementos
do mesmo stipo de dado)•
•
•
Mostra no Editor de Programas (Bloco de Dados DB 2):
Measuring_point
Data: 30.04.17
Arquivo: STOE_02P.9
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Criando um Novo Bloco de Dados
Data: 30.04.17
Arquivo: STOE_02P.10
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Inserindo, Salvando, Transferindo e Monitorando um Bloco de Dados
Data: 30.04.17
Arquivo: STOE_02P.11
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Endereçamento dos Elementos de Dados
07
8 Bits
Data Byte 0 DBB 0
Data Byte 1 DBW 0
Data Byte 8191
DBD 8188
DBW 8190
DBB 8191
Data Byte 2
DBD 0
Data Byte 3
DBX 4.1
Data: 30.04.17
Arquivo: STOE_02P.12
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Acessando Elementos de Dados
0
1
2
3
4
5
6
7
8
9
DB 19
(Nome simbólico: Values)
Dado bit 0.0 com o
nome de elemento "Start"
ou A DB19.DBX0.0 ou A “Values".Start
ou L DB19.DBW2 ou L “Values".Number
ou L DB19.DBB5 ou L “Values".Loop
Acesso
Tradicional
simbólico
Acesso totalmente qualificado
1)
OPN DB19
L DBW2
Number
OPN DB19
A DBX 0.0
1)
OPN DB19
L DBB5
Loop
absoluto
Data: 30.04.17
Arquivo: STOE_02P.13
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Validade de um Open DB
OB 1
OPN DB 4
L DBW2 DB 4
T DBW 2 DB 4
FC 1
DB 4
CALL FC 1
T DBW 4
DB 5
OPN DB 5
L DBB6
DB 5L DBW 0
T DBW 8
CALL FC 2
FC 2
DB 5
DB 6
OPN DB 6
L DBB6
DB 2T DB2.DBB 0
DB 2L DBW 4
L DBW 10 DB ??
FB 1
CALL FB1, DB1
???
!
Data: 30.04.17
Arquivo: STOE_02P.14
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
DB Global (Exemplo)Bloco UDT como Template
Tipo de Dado Definido pelo Usuário (UDT)
Flour
Milk
Eggs
Yeast
Sugar
Receita
2
Flour
Milk
Eggs
Yeast
Sugar
Receita
3
Flour
Milk
Eggs
Yeast
Sugar
Flour
Milk
Eggs
Yeast
Sugar
DB criado de acordo com o UDT
Receita
1
Flour
Milk
Eggs
Yeast
Sugar
Array com
3 elementos
do tipo UDT
Data: 30.04.17
Arquivo: STOE_02P.15
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Inserindo um Bloco UDT
Data: 30.04.17
Arquivo: STOE_02P.16
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Criando um Bloco de Dados Referenciado a um Tipo de Dado
Data: 30.04.17
Arquivo: STOE_02P.17
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Exemplo: Array de UDTs
Declaration View
Data View
Data: 30.04.17
Arquivo: STOE_02P.18
SIMATIC S7
Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
Exercício: Programa para uma Planta de Engarrafamento –
Armazenamento de Dados
Garrafas cheias (MW102)
Garrafas vazias (MW 100)
Garrafas "Quebradas"(MW 104)
Bloco de dados DB5
Variável: full
Variável: empty
Variável: broken

Mais conteúdo relacionado

Mais procurados

Mais procurados (9)

Stoe 04 p
Stoe 04 pStoe 04 p
Stoe 04 p
 
Stoe 03 p
Stoe 03 pStoe 03 p
Stoe 03 p
 
CLP S7 300 E S7 400
CLP S7 300 E S7 400CLP S7 300 E S7 400
CLP S7 300 E S7 400
 
CLP S7 300 E S7 400
CLP S7 300 E S7 400CLP S7 300 E S7 400
CLP S7 300 E S7 400
 
Ko 7 kdp-07
Ko 7 kdp-07Ko 7 kdp-07
Ko 7 kdp-07
 
CLP S7 300 E S7 400
CLP S7 300 E S7 400CLP S7 300 E S7 400
CLP S7 300 E S7 400
 
Pro2 14p
Pro2 14pPro2 14p
Pro2 14p
 
03 funções e blocos de funções
03   funções e blocos de funções03   funções e blocos de funções
03 funções e blocos de funções
 
Stoe 01 p
Stoe 01 pStoe 01 p
Stoe 01 p
 

Semelhante a Armazenamento de Dados em Blocos de Dados

Semelhante a Armazenamento de Dados em Blocos de Dados (20)

02 armazenamento de dados em blocos de dados
02   armazenamento de dados em blocos de dados02   armazenamento de dados em blocos de dados
02 armazenamento de dados em blocos de dados
 
S7 bas-08
S7 bas-08S7 bas-08
S7 bas-08
 
Stoe01p
Stoe01p Stoe01p
Stoe01p
 
Pro2 09p
Pro2 09pPro2 09p
Pro2 09p
 
01 introdução e revisão
01   introdução e revisão01   introdução e revisão
01 introdução e revisão
 
Pro3 03 e_dados_complexos
Pro3 03 e_dados_complexosPro3 03 e_dados_complexos
Pro3 03 e_dados_complexos
 
S7 bas-12
S7 bas-12S7 bas-12
S7 bas-12
 
Pro2 06p
Pro2 06pPro2 06p
Pro2 06p
 
Stoe12p
Stoe12p Stoe12p
Stoe12p
 
S7 bas-05
S7 bas-05S7 bas-05
S7 bas-05
 
Blocos de comunicação
Blocos de comunicaçãoBlocos de comunicação
Blocos de comunicação
 
Sitrain blocos de dados copia - copia - copia
Sitrain blocos de dados   copia - copia - copiaSitrain blocos de dados   copia - copia - copia
Sitrain blocos de dados copia - copia - copia
 
08 blocos de_dados
08 blocos  de_dados08 blocos  de_dados
08 blocos de_dados
 
TIA PORTALSitrain blocos de programação
TIA PORTALSitrain  blocos de programaçãoTIA PORTALSitrain  blocos de programação
TIA PORTALSitrain blocos de programação
 
06 blocos de_programação
06 blocos de_programação06 blocos de_programação
06 blocos de_programação
 
CLP S7 300 E S7 400
CLP S7 300 E S7 400CLP S7 300 E S7 400
CLP S7 300 E S7 400
 
CLP S7 300 E S7 400
CLP S7 300 E S7 400CLP S7 300 E S7 400
CLP S7 300 E S7 400
 
Pro2 04p
Pro2 04pPro2 04p
Pro2 04p
 
03 tia portal hands on - editor-iecl v11 _v1
03 tia portal   hands on - editor-iecl v11 _v103 tia portal   hands on - editor-iecl v11 _v1
03 tia portal hands on - editor-iecl v11 _v1
 
Ko 7 kdp-06
Ko 7 kdp-06Ko 7 kdp-06
Ko 7 kdp-06
 

Mais de Luiz Otavio Da Silva Ladeira (20)

Teoria
Teoria Teoria
Teoria
 
Stoe15p
Stoe15p Stoe15p
Stoe15p
 
Stoe14p
Stoe14p Stoe14p
Stoe14p
 
Stoe13p
Stoe13p Stoe13p
Stoe13p
 
Stoe11p
Stoe11p Stoe11p
Stoe11p
 
Stoe10p
Stoe10p Stoe10p
Stoe10p
 
Stoe09p
Stoe09p Stoe09p
Stoe09p
 
Stoe08p 1
Stoe08p 1Stoe08p 1
Stoe08p 1
 
Stoe07p
Stoe07p Stoe07p
Stoe07p
 
Stoe06p
Stoe06p Stoe06p
Stoe06p
 
Stoe05p
Stoe05p Stoe05p
Stoe05p
 
Stoe04p
Stoe04p Stoe04p
Stoe04p
 
Stoe03p
Stoe03p Stoe03p
Stoe03p
 
Profibuspa 140503095338-phpapp01
Profibuspa 140503095338-phpapp01Profibuspa 140503095338-phpapp01
Profibuspa 140503095338-phpapp01
 
Profibusdp 140503095743-phpapp01
Profibusdp 140503095743-phpapp01Profibusdp 140503095743-phpapp01
Profibusdp 140503095743-phpapp01
 
Aplicaes 140425105404-phpapp01
Aplicaes 140425105404-phpapp01Aplicaes 140425105404-phpapp01
Aplicaes 140425105404-phpapp01
 
1hart 140503100312-phpapp02
1hart 140503100312-phpapp021hart 140503100312-phpapp02
1hart 140503100312-phpapp02
 
S7 1200
S7 1200S7 1200
S7 1200
 
Pro3 06 e_tratamento_de_erros
Pro3 06 e_tratamento_de_errosPro3 06 e_tratamento_de_erros
Pro3 06 e_tratamento_de_erros
 
Pro3 04 e_enderecamento_indireto
Pro3 04 e_enderecamento_indiretoPro3 04 e_enderecamento_indireto
Pro3 04 e_enderecamento_indireto
 

Armazenamento de Dados em Blocos de Dados

  • 1. Data: 30.04.17 Arquivo: STOE_02P.1 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Armazenamento de Dados em Blocos de Dados
  • 2. Data: 30.04.17 Arquivo: STOE_02P.2 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Memórias Bit PIQ PII Áreas de Armazenamento para Dados Blocos de Dados DBx DBy DBz . . . Área de I/O L stack (Pilha Local)
  • 3. Data: 30.04.17 Arquivo: STOE_02P.3 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Blocos de Dados (DBs) Função FC10 Função FC20 Bloco de Função FB1 OB1 Dado global DB20 Acessível p/todos os blocos Dados Instance DB5 DB Instance do FB1
  • 4. Data: 30.04.17 Arquivo: STOE_02P.4 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Vista Geral dos Tipos de Dados em STEP 7 Tipos de dados elementares (até 32 bits) Tipos de dados complexos (maiores que 32 bits) Tipos de dados definidos pelo usuário (User-defined data types) (maiores que 32 bits) • Tipos de dados Binários (BOOL, BYTE, WORD, DWORD, CHAR) • Tipos de dados Matemáticos (INT, DINT, REAL) • Tipos Tempo (S5TIME, TIME, DATE, TIME_OF_DAY) • Tempo (DATE_AND_TIME) • Array (ARRAY) • Estrutura (STRUCT) • Cadeia de Caracteres (STRING) Tipo de Dado UDT(User Defined Type)
  • 5. Data: 30.04.17 Arquivo: STOE_02P.5 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Tipos de Dados Elementares em STEP 7 BOOL 1 1 ou 0 BYTE 8 B#16#A9 WORD 16 W#16#12AF DWORD 32 DW#16#ADAC1EF5 CHAR 8 ' w ' S5TIME 16 S5T#5s_200ms INT 16 123 DINT 32 65539 REAL 32 1.2 ou 34.5E-12 TIME 32 T#2D_1H_3M_45S_12MS DATE 16 D#1993-01-20 TIME_OF_DAY 32 TOD#12:23:45.12 Palavra chave (Keyword) Comprimento (em bits) Exemplo de uma constante deste tipo
  • 6. Data: 30.04.17 Arquivo: STOE_02P.6 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Tipos de Dados Complexos DATE_AND_TIME 64 DT#97-09-24-12:14:55.0 STRING 8 * (número de ´This is a string´ (conjunto de caracteres com caracteres +2) ´SIEMENS´ máx. de 254 caracteres) ARRAY definido pelo Valores medidos: ARRAY[1..20] (Grupo de elementos usuário INT do mesmo tipo de dado) STRUCT definido pelo Motor: STRUCT (Grupo de elementos usuário Speed : INT de diferentes tipos de dados) Current: REAL END_STRUCT UDT UDT como bloco UDT como array (User Defined Data Type = definido pelo “Template" consiste de usuário STRUCT Drive: ARRAY[1..4] tipos de dados Speed : INT UDT1 elementares ou complexos Current: REAL END_STRUCT Palavra chave (Keyword) Comprimento (em bits) Exemplo
  • 7. Data: 30.04.17 Arquivo: STOE_02P.7 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Exemplo de uma Estrutura Mostra no Editor de Programas (Bloco de Dados DB 1): Operating Speed, tipo de dado Integer Rated Current, tipo de dado Real Startup Current, tipo de dado Real Turning Direction, tipo de dado Bool Estrutura com o nome "Motor_data" (diversos elementos com diferentes tipos) Motor_data
  • 8. Data: 30.04.17 Arquivo: STOE_02P.8 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Exemplo de um Array 1. Measuring_point, tipo de dado Real 2. Measuring_point, tipo de dado Real 3. Measuring_point, tipo de dado Real 10. Measuring_point, tipo de dado Real Array com o nome "Measuring_point" (diversos elementos do mesmo stipo de dado)• • • Mostra no Editor de Programas (Bloco de Dados DB 2): Measuring_point
  • 9. Data: 30.04.17 Arquivo: STOE_02P.9 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Criando um Novo Bloco de Dados
  • 10. Data: 30.04.17 Arquivo: STOE_02P.10 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Inserindo, Salvando, Transferindo e Monitorando um Bloco de Dados
  • 11. Data: 30.04.17 Arquivo: STOE_02P.11 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Endereçamento dos Elementos de Dados 07 8 Bits Data Byte 0 DBB 0 Data Byte 1 DBW 0 Data Byte 8191 DBD 8188 DBW 8190 DBB 8191 Data Byte 2 DBD 0 Data Byte 3 DBX 4.1
  • 12. Data: 30.04.17 Arquivo: STOE_02P.12 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Acessando Elementos de Dados 0 1 2 3 4 5 6 7 8 9 DB 19 (Nome simbólico: Values) Dado bit 0.0 com o nome de elemento "Start" ou A DB19.DBX0.0 ou A “Values".Start ou L DB19.DBW2 ou L “Values".Number ou L DB19.DBB5 ou L “Values".Loop Acesso Tradicional simbólico Acesso totalmente qualificado 1) OPN DB19 L DBW2 Number OPN DB19 A DBX 0.0 1) OPN DB19 L DBB5 Loop absoluto
  • 13. Data: 30.04.17 Arquivo: STOE_02P.13 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Validade de um Open DB OB 1 OPN DB 4 L DBW2 DB 4 T DBW 2 DB 4 FC 1 DB 4 CALL FC 1 T DBW 4 DB 5 OPN DB 5 L DBB6 DB 5L DBW 0 T DBW 8 CALL FC 2 FC 2 DB 5 DB 6 OPN DB 6 L DBB6 DB 2T DB2.DBB 0 DB 2L DBW 4 L DBW 10 DB ?? FB 1 CALL FB1, DB1 ??? !
  • 14. Data: 30.04.17 Arquivo: STOE_02P.14 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center DB Global (Exemplo)Bloco UDT como Template Tipo de Dado Definido pelo Usuário (UDT) Flour Milk Eggs Yeast Sugar Receita 2 Flour Milk Eggs Yeast Sugar Receita 3 Flour Milk Eggs Yeast Sugar Flour Milk Eggs Yeast Sugar DB criado de acordo com o UDT Receita 1 Flour Milk Eggs Yeast Sugar Array com 3 elementos do tipo UDT
  • 15. Data: 30.04.17 Arquivo: STOE_02P.15 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Inserindo um Bloco UDT
  • 16. Data: 30.04.17 Arquivo: STOE_02P.16 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Criando um Bloco de Dados Referenciado a um Tipo de Dado
  • 17. Data: 30.04.17 Arquivo: STOE_02P.17 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Exemplo: Array de UDTs Declaration View Data View
  • 18. Data: 30.04.17 Arquivo: STOE_02P.18 SIMATIC S7 Siemens AG 1999. All rights reserved. Conhecimento em Automação Training Center Exercício: Programa para uma Planta de Engarrafamento – Armazenamento de Dados Garrafas cheias (MW102) Garrafas vazias (MW 100) Garrafas "Quebradas"(MW 104) Bloco de dados DB5 Variável: full Variável: empty Variável: broken

Notas do Editor

  1. SumárioPáginaÁreas de Armazenamento para Dados ...............................................................................................2 Blocos de Dados (DBs) .......................................................................................................................3 Vista Geral dos Tipos de Dados em STEP 7 ......................................................................................4 Tipos de Dados Elementares em STEP 7 ...........................................................................................5 Tipos de Dados Complexos ..…...........................................................................................................6 Exemplo de uma Estrutura ..................................................................................................................7 Exemplo de um Array ..........................................................................................................................8 Criando um Novo Bloco de Dados ......................................................................................................9 Inserindo, Salvando, Transferindo e Monitorando um Bloco de Dados ..............................................10 Endereçamento dos Elementos de Dados ..........................................................................................11 Acessando Elementos de Dados .........................................................................................................12 Validade de um Open DB ....................................................................................................................13 Tipo de Dado Definido pelo Usuário (UDT) ........................................................................................14 Inserindo um Bloco UDT ......................................................................................................................15 Criando um Bloco de Dados Referenciado a um Tipo de Dado ..........................................................16 Exemplo: Array de UDTs .....................................................................................................................17 Exercício: Programa para uma Planta de Engarrafamento – Armazenamento de Dados ..................18
  2. Vista GeralAlém dos blocos de programas, um programa do usuário também consiste de dados contendo informações sobre os estados do processo, sinais, etc., os quais são então processados de acordo com as instruções no programa do usuário. Dado são armazenados em variáveis do programa do usuário, os quais são unicamente identificados pela: •Localização de armazenamento (endereços: p.ex. P, PII, PIQ, bit de memória, pilha L, DB) •Tipo de dado (tipos de dados elementares ou complexos, tipo de parâmetro) Dependendo da acessabilidade, uma distinção também é feita entre: •Variáveis globais, as quais são declaradas na tabela de símbolos globais ou em blocos de dados globais. •Variáveis locais, as quais são declaradas na parte de declaração dos OBs, FBs e FCs. Variáveis podem ter uma localização permanente de armazenagem na imagem de processo, área de memória bit ou em um bloco de dados ou eles podem ser criados dinamicamente na pilha L quando um bloco está sendo executado. Pilha de Dados LocalA pilha de dados local (pilha L) é uma área para armazenamento: •variáveis temporárias de um bloco lógico, incluindo as informações de inicialização do OB •parâmetros atuais a serem passados durante a chamada de funções •resultado lógico intermediário em programas LAD Este tópico é mostrado no capítulo "Funções e Blocos de Funções". Blocos de DadosBlocos de dados são blocos utilizados pelos blocos lógicos do programa do usuário para armazenamento de valores. Diferente de dados temporários, os dados em blocos de dados não é sobreescrito quando a execução dos blocos lógicos é completada ou quando o DB é fechado.
  3. Vista GeralBlocos de Dados são utilizados para armazenamento de dados de usuário. Como os blocos lógicos, blocos de dados tomam espaço na memória do usuário. Os blocos de dados contem dados variáveis (p.ex. valores numéricos) que são usados no programa do usuário. O programa do usuário pode acessar dados em blocos de dados com operações bit, byte, palavra ou palavra dupla. Endereços simbólicos ou absolutos podem ser usados. UtilizaçãoVocê pode usar blocos de dados de diferentes modos, dependendo de seu conteúdo. Você diferencia entre: •Blocos de dados globais: Este contem informações que podem ser acessadas por todos os blocos lógicos no programa do usuário. •Blocos de dados instance: Estes são sempre atribuídos a um FB particular. Os dados em cada DB somente devem ser usados pelo FB atribuído.Os blocos de dados instance são tratados em mais detalhes no capítulo "Funções e Blocos de Funções“. Criando DBsVocê pode criar DBs globais ou utilizando o Editor de Programas ou com um “tipo de dado definido pelo usuário" que você ja havia criado. Blocos de dados instance são criados quando um FB é chamado. RegistrosA CPU possui dois registradores de blocos de dados, os registradores DB e DI. Então, você pode ter dois blocos de dados abertos ao mesmo tempo. Você irá encontrar mais informações em um curso de programação avançada.
  4. Vista GeralOs tipos de dados determinam as propriedades dos dados, isto é, o caminho do conteúdo de um ou mais endereços associados que serão representados e a faixa de valores permissíveis de valores. Os tipos de dados também determinam quais operações podem ser usadas. Tipos de Dados Tipos de dados elementares são pré-definidos de acordo com a IEC 1131-3. Elementares Os tipos de dados determinam a quantidade de espaço de memória necessário. Por exemplo, o tipo de dado Word ocupa 16 bits na memória do usuário. Tipos de dados elementares nunca são maiores do que 32 bits e podem ser carregados nos acumuladores do processador S7 e processados com instruções elementares STEP 7. Tipos de Dados Tipos de dados complexos somente podem ser usados em conjunto com Complexos variáveis declaradas em blocos de dados globais. Tipos de dados complexos não podem ser completamente carregados nos acumuladores com instruções de carga. Você utiliza blocos padrões da biblioteca ("IEC" S7 Program) para processar tipos de dados complexos. User-DefinedUm tipo de dado definido pelo usuário pode ser usado por blocos de dados ou Typescomo um tipo de dado em uma tabela de declaração de variáveis. Você cria UDT‘s com o Editor de Blocos de Dados. A estrutura da UDT pode conter grupos de tipos de dados elementares e/ou complexos.
  5. BOOL, BYTE, WORDVariáveis do tipo de dado BOOL consiste de um bit, variáveis do tipo de dados DWORD, CHARBYTE, WORD, DWORD são seqüências de 8, 16 e 32 bits respectivamente. Os bits individuais não são avaliados nestes tipos de dados. Formas especiais destes tipos de dados são os números BCD e o valor de contagem usados em conjunto com funções de contagem, bem como tipos de dados CHAR, os quais representam um caracter em código ASCII. S5TIMEVariáveis do tipo de dado S5TIME são necessárias para especificação de valores de tempo (funções temporizadores S5). Você especifica o tempo em horas, minutos, segundos ou milisegundos. Você pode inserir os valores temporizadores com um “underline“ (1h_4m) ou sem um “underline“ (1h4m). As funções FC 33 e FC40 da biblioteca de conversão do formato S5TIME para o formato TIME e do formato TIME para o formato S5TIME. INT, DINT, REALVariáveis deste tipo de dados representam números os quais podem ser usados em operações matemáticas. TIMEUma variável do tipo de dado TIME toma o formato de palavra dupla. Esta variável é usada, por exemplo, para especificação de valores de temporizadores em funções de temporização IEC. O conteúdo da variável é interpretado como um número DINT em milisegundos e pode ser tanto positiva como negativa (p.ex.: T#1s=L#1 000, T#24d20h31m23s647msw = L#214748647). DATEUma variável do tipo de dado DATE é armazenado em uma palavra (word) na forma de inteiro não sinalizado. O conteúdo da variável representa o número de dias desde 01.01.1990 (p.ex.: D#2168-12-31 = W#16#FF62). TIME_OF_DAYUma variável do tipo de dado TIME_OF_DAY toma o formato de palavra dupla. Ele contem o número de milisegundos desde o início do dia (0:00 hora) no formato de um inteiro não sinalizado (p.ex.: TOD#23:59:59.999 = DW#16#05265B77).
  6. Tipos de DadosTipos de dados complexos (arrays e estruturas) consistem de grupos de tipos Complexos de dados elementares ou complexos. Eles habilitam você a criar tipos de dados sob medida para o seu problema, com os quais você pode estruturar grandes quantidades de dados e processa-las simbolicamente. Tipos de dados complexos não podem ser processados com instruções STEP 7 todos de uma vez (maiores de 32 bits), mas somente um elemento por vez. Tipos de dados complexos são pré-definidos. O tipo de dado DATE_AND_TIME tem um comprimento de 64 bits. Os comprimentos dos tipos de dados ARRAY, STRUCT e STRING são definidos pelo usuário. Variáveis do tipo de dados complexos somente podem ser declaradas em blocos de dados e como parâmetros ou variáveis locais de blocos lógicos. Tipo de dadosTipos de dados definidos pelo usuário representam uma estrutura pré-definida. definidos peloEsta é armazenada em blocos UDT (UDT1 ... UDT65535) e pode ser usada usuário como um “template" em outros tipos de variáveis de dados Você pode salvar tempo digitado quando inserindo um bloco de dado se você necessitar da mesma estrutura diversas vezes. exemplo: você necessita da mesma estrutura 10 vezes em um bloco de dados. Primeiro, você define a estrutura e salva como UDT 1, por exemplo. No DB, você define uma variável "Addresses„ como um array com 10 elementos do tipo UDT 1: Addresses array[1..10]UDT 1Desta forma, você criou 10 faixas de dados com a estrutura definida no UDT 1 sem digitação adicional.
  7. EstruturaO slide mostra um exemplo de uma estrutura com o nome "Motor_data". A estrutura consiste de diversos elementos de diferentes tipos de dados. Os elementos individuais de uma estrutura podem ser tipos de dados elementares ou complexos. O acesso aos elementos individuais de uma estrutura contem o nome da estrutura. O programa é desta forma fácil de ser lido. De modo a habilitar o acesso aos elementos simbolicamente, o bloco de dados deve ser dado um nome simbólico, por exemplo, “Drive_1". exemplos de acesso individual aos elementos de uma estrutura: L “Drive_1".Motor_data.rated_current ouL “Drive_1".Motor_data.operating_speed “Drive_1" é o nome simbólico do bloco de dados, que contem a estrutura. O nome da estrutura é dado (separado por um ponto) após o nome simbólico. Um nome de elemento da estrutura segue (separado por um ponto) após o nome da estrutura. Define a Estrutura A palavra chave (keyword) da estrutura é "STRUCT". O término de uma no DB estrutura é indicada por "END_STRUCT". O nome é definido para a estrutura (no exemplo: "Motor_data").
  8. ArrayUm array consiste de diversos elementos do mesmo tipo de dado. No slide acima, você pode ver o array "Measuring_point" com 10 elementos do tipo de dado REAL. Depois, diversos valores medidos serão armazenados neste array. Define o Array no DB A palavra chave (keyword) para um array é "ARRAY[n..m]". O primeiro (n) e o último elemento (m) é especificado dentro dos colchetes. No exemplo, [1..10] significa 10 elementos, então o primeiro elemento é endereçado com o índice [1] e o último com o índice [10]. Ao invés de [1..10] você pode, por exemplo, definir [0..9]. Isto somente afeta o acesso aos elementos. NotaPara criar um bloco de dados vazio, você define um array com o tipo de dado que você deseja. “Data View“Para ver quais valores estão armazenados nos elementos individuais, você seleciona a opção de menu View -> Data View para mudar para a outra forma de visualização. No "Data View“, você irá encontrar os valores armazenados atualmente na coluna "Actual Value".
  9. Editor de Programas Você pode abrir um bloco de dados existente ou criar um novo com o Editor LAD/STL/FBD. Caixa de diálogo Quando você clica no ícone "New“, a caixa de diálogo "New" é mostrada. Você "New" seleciona o projeto e o programa do usuário e então “enter“, por exemplo, DB4 para "Object name" (Data Block ou All Editable deve ser selecionado como Object type). Quando você confirma sua inserção clicando no botão "OK", a caixa de diálogo "New Data Block" aparece. Caixa de diálogo Nesta caixa de diálogo, você seleciona o tipo de bloco de dados a ser criado: "New Data Block" •Data Block (bloco de dados global) •Data Block Referencing a User-Defined Data Type (cria um bloco de dados usando a mesma estrutura com um bloco UDT) •Data Block Referencing a Function Block (cria um DB instance para um FB). Este item é explicado em mais detalhes no capítulo "Funções e Blocos de Funções".
  10. Inserindo DadosVocê insere os elementos de dados individuais na tabela. Para fazer isto, você seleciona a primeira linha vazia na columa "Name" e insere a descrição do elemento. Você pode saltar para outras colunas (Type, Initial Value e Comment) usando a tecla Tab. ColunasO significado das colunas são as seguintes:•Address-é inserido pelo Editor de Programas quando você salva. Ele é o primeiro byte de endereço ocupado pela variável no bloco de dados. •Name-nome simbólico do elemento. •Type-tipo de dado (você seleciona isto com o botão direito do mouse). •Initial Value-é usado para selecionar um valor padrão (default) para um elemento. Se você não inserir valores, zero será inserido como valor inicial. •Comment-para documentação do elemento dado (opcional). Salvar (Save)Você salva o bloco de dados no disco rígido do equipamento de progração (maleta) usando o ícone "Disquete". TransferênciaDa mesma forma que para os blocos lógicos, você também deve transferir os (Download) blocos de dados para a CPU. Monitoração Para monitorar os valores atuais no bloco de dados, você antes deve mudar (Monitor) para o modo de visualização "Data View". Você pode monitorar o bloco de dados pelo uso do ícone "spectacles" (óculos) na barra de ferramentas (mostra permanentemente os valores atuais do DB na CPU).
  11. GeralVocê endereça os elementos de um bloco de dados byte a byte, da mesma forma que para as memórias bit. Você pode carregar e transferir bytes de dados, palavras de dados ou palavras duplas de dados. Quando utilizando palavras de dados, você especifica o primeiro byte de endereço (p.ex.: L DBW 2) com a operação. Dois bytes são carregados como sendo deste endereço. Com palavras duplas, 4 bytes são carregados como sendo o byte de endereço que você entrou. Número, O número de blocos de dados depende da CPU que esteja sendo usada. Comprimento O comprimento máximo do bloco é de 8KByte para o S7-300 e de 64KByte para o S7-400. NotaSe você acessar elementos de dados que não existem ou blocos de dados, a CPU vai para o modo Stop, se você não programar um OB de erro.
  12. Abrindo um DBA instrução “OPN DB..." abre um bloco de dados global. Se um DB global já estava aberto, ele é automaticamente fechado.Se um nome simbólico (p.ex: “Values") foi definido para o DB, o bloco de dados também pode ser aberto com a instrução OPN “Values" . Acessando um DBAs instruções para leitura (Load) ou para escrita (Transfer) de acesso a um DB estão mostradas no slide acima.Se o DB já estava aberto, a simples instrução Load ou Transfer é suficiente.A instrução combinada, por exemplo, L DB19.DBW2 inclui o DB que você deseja. A instrução contem a abertura do bloco de dados. Acesso simbólicoUm acesso simbólico somente é possível se as seguintes condições são atendidas: 1. O DB já possuia um nome simbólico na tabela de simbolos.2.O elemento de dado individual no bloco de dados já possuia um nome simbólico inserido pelo Editor LAD/STL/FBD. Exemplo: A instrução L “Values".Number abre o DB com o nome ‘Values' e carrega o elemento de dado com o nome ‘Number'. NotaComo uma regra, você deve usar o acesso simbólico aos DBs. Isto apresenta as seguintes vantagens: •o programa é facilmente lido,•isto garante que o DB seja corretamente acessado, •isto facilita a correção na estrutura de dados do DB posteriormente.Com acesso absoluto ao DB, você deve corrigir manualmente todo o programacom acesso ao DB. Com acesso simbólico, isto é fácil fazer corrigindo o programa fonte.Trabalhar com Programas Fonte é ensinado em curso de programação avançada.
  13. IntroduçãoUm bloco de dados aberto permanece aberto até que um novo DB seja aberto ou até que uma instrução combinada (p.ex.: L DB4.DBW6) acesse outro DB. Chamada de Se é executado um salto para fora de um bloco OB ou um bloco FC porque Blocos FCuma outra função é chamada, o bloco de dados atualmente válido permanece válido. Quando a execução do programa retorna do FC chamado, o bloco de dados que era válido antes do salto é reaberto. Chamada de A chamada de um bloco de funções é diferente. Um DB instance é sempre Blocos FB atribuído a um FB (mais informações no capítulo "Funções e Blocos de Funções"). Com a chamada de um bloco de funções, o DB instance atribuído é automaticamente aberto. Quando você retorna do bloco chamado, o DB global previamente aberto já não é mais válido. Isto significa que após a chamada de FBs, você deve reabrir o DB global necessário. NotaVocê pode abrir um DB através de instrução relevante, p.ex., OPN DB. Você também pode abrir o DB pela passagem de parâmetros pelos parâmetros atribuíveis dos blocos. Então, você pode usar "DB 4.DBW6", por exemplo, como o parâmetro atual. Neste caso, o DB 4 é aberto.Recomendação:Se possível, utilizar acesso totalmente qualificado aos dados dos blocos.
  14. Flour = farinha Milk = leite Eggs = ovos Yeast = fermento Sugar = açúcar UsoTipo de dado definido pelo usuário são usados para: •criação de blocos de dados estruturados, •criação de arrays, os quais contenham a mesma estrutura diversas vezes, •criação de variáveis locais em FCs, FBs com uma dada estrutura (ver o capítulo "Funções e Blocos de Funções").Os tipos de dados definidos pelo usuário são armazenadas como blocos UDT no disco rígido. Eles são usados como “templates", para evitar excesso de digitação quando você cria blocos de dados. User-DefinedTipo de dados definido pelo usuário (user-defined data types) são feitos / Data Type (UDT) construídos de tipos de dados elementares ou outros tipos de dados definidos pelo usuário. Estes tipos de dados não podem ser armazenados no PLC. Exemplo: Armazenamento dos dados da receita (ver próximas páginas).
  15. Inserindo um Tipo Você cira uma UDT com o Editor LAD/STL/FBD pela seleção da opção do de Dado menu File - > New e o Object name UDT.. . Você então insere a estrutura de dados que você deseja. Você deve preencher nas colunas "Name" e "Type", mas você pode deixar as colunas “Initial Value" e “Comment" em branco. Salvando um Tipo Finalmente, você salva a estrutura de dados (clicar sobre o ícone "Save“). de Dado
  16. Criando um DBQuando você tiver definido um tipo de dado e salvo este como um bloco UDT, você pode criar diversos blocos de dados com a mesma estrutura de dados. O que fazer1.Selecione a opção de menu File - > New no Editor de Programas. 2. Selecione o projeto, o programa do usuário e um DB. 3.Ative a opção "Data block referencing a user-defined data type". 4.Selecione o bloco UDT que você deseja na caixa de diálogo “Reference". 5. Salve o bloco de dado.
  17. Exemplo Se você necessita da mesma estrutura diversas vezes em um bloco de dados, você pode usar uma UDT como um tipo de dado, em um array, por exemplo. Se ao bloco de dados DB11 foi atribuído o nome simbólico “Cake" na tabela de simbólicos, um acesso simbólico do programa do usuário pode aparecer como segue: L "Cake".Recipe[2].Eggs Carrega o “Number of Eggs" da segunda receita do bloco de dados “Cake“. NotasVocê havia mudado para "Data View" para habilitar a mudança da quantidade de ingredientes. Você pode então sobreescrever os valores iniciais na coluna "Actual Value“ com as quantidades que você deseja.Para mudar a estrutura de um bloco UDT mais tarde, você deve recriar o bloco de dados o qual contem UDTs. Bem como, todos os acessos a este bloco de dados devem ser atualizados. O caminho mais fácil para fazer isto é utilizando-se um programa fonte. Você pode também dar nomes simbólicos aos blocos UDT.
  18. ObjetivoEm um exercício anterior, você armazenou os dados de produção (garrafas cheias, vazias e quebradas) na memória de trabalho.Estas palavras de memória não são retentivas. Os dados de produção são perdidos se um “complete restart“ é executado. Para evitar que isto aconteça, você deve armazenar os dados de produção em um bloco de dados. O que fazer1.Crie um bloco de dados DB 5 no programa S7 "FILL" contendo as variáveis especificadas e os tipos de dados INT. 2.Altere o bloco FC 18 de forma que isto ocorra, em cujos dados de produção (garrafas cheias, vazias e quebradas) são armazenados nas palavras de memória agora dentro do DB 5. 3.Transfira os blocos e teste a sua solução no kit de treinamento. Resultado Ele deve funcionar.