Вы находитесь на странице: 1из 18

Armazenamento de Dados em DBs

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

Date:
File:

26.05.2006
STOE02.1

Contedo

Training
Automation and Drives

Pg.

reas de Armazenamento de Dados .................................................................................


Blocos de Dados (DBs) ...................................................................................................................
Panormica de Tipos de Dados no STEP 7..................................................................................
Tipos de Dados Elementares no STEP 7 ............................................................................................
Tipos de Dados Complexos........................................................................................................
Exemplo de uma Estrutura .............................................................................................................
Exemplo de um Array..........................................................................................................................
Criar um Novo Bloco de Dados............................................................................................................
Introduzir, Gravar, Transferir e Testar um Bloco de Dados ...........................................................
Elementos de Endereamento de Dados ........................................................................................
Aceder a Elementos de Dados.............................................................................................................
Validade de um DB Aberto ..........................................................................................................
Tipo de Dados Definidos pelo Utilizador (UDT)
..........................................................................
Introduzir um Bloco UDT.......................................................................................................................
Criar um bloco de Dados Referenciando um Tipo de Dado
...........................................................
Exemplo: Array de UDTs ............................................................................................................
Exercise: Programa para Enchimento de Garrafas - Armazenamento de Dados .....................

Training
Automation and Drives

Page 1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

ST-7STOE
Captulo 2

reas de Armazenamento de Dados

Bits memria

DBz

ISP
DBy

IEP

DBx

rea I/O

L stack

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

Panormica

.
.
.

Date:
File:

Blocos de Dados

26.05.2006
STOE02.2

Training
Automation and Drives

Alm dos blocos de programa, o programa de utilizador tambm constituido por


dados que contm informao sobre os estados do processo, sinais, etc., que so
depois processados de acordo com as instrues do programa de utilizador
Os dados so armazenados em variveis do programa de utilizador, que so
nicamente identificadas por:
Local de armazenamento (endereo: por expl. P, IEP, ISP, bit de memria,
L stack, DB)
Tipo de dado (tipo de dado elementar ou complexo, tipo de parmetro)
Dependendo da acessibilidade, tambm feita a distino entre:
Variveis globais, que so declaradas na tabela global de smbolos ou nos
blocos de dados globais.
Variveis locais, que so declaradas na parte das declaraes dos OBs, FBs
e FCs.
As variveis podem ter uma localizao de armazenamento permanente na imagem
do processo, rea de bits de memria ou num bloco de dados ou podem ser criadas
dinmicamente no L stack quando um bloco est a ser executado.

Stack de Dados Local O stack (L stack) de dados locais uma rea para armazenamento de :
variveis temporrias de um bloco lgico, incluindo informao inicial do OB.
parmetros actuais a serem utilizados aquando de funes de chamada
resultados lgicos intermdios em programas LAD.
Este tema ser tratado no captulo Funes e Blocos de Funes.
Blocos de Dados

Training
Automation and Drives

Os blocos de dados so blocos utilizados pelos blocos lgicos do programa de


utilizador para o armazenamento de dados. Ao contrrio dos dados temporais, os
dados nos blocos de dados no so sobreescritos quando a execuo do bloco
lgico completada ou quando o DB terminado.

Page 2

ST-7STOE
Captulo 2

Blocos de Dados (DBs)


Acessvel a todos os blocos
Funo
FC10

OB1

Dados Globais
DB20

Funo
FC20

DB Instncia para FB1


Bloco de
Funes
FB1

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

Date:
File:

Dados Instncia
DB5

26.05.2006
STOE02.3

Training
Automation and Drives

Panormica

Os blocos de dados so utilizados para armazenar dados do utilizador. Como


acontece com os blocos lgicos, os blocos de dados ocupam espao na memria
de utilizador. Os blocos de dados contm variveis de dados (por expl. Valores
numricos) que so utilizadas no programa de utilizador.
O programa de utilizador pode aceder aos dados de um bloco de dados atravs de
operaes bit, byte, word (palavra) ou doubleword (palavra-dupla). Pode ser
utilizado o endereamento absoluto ou o endereamento simblico.

Utilizao

Dependendo do seu contedo, os blocos de dados podem ser utilizados de


diferentes maneiras. Pode diferenciar entre:
Blocos de dados globais: estes blocos contm informao que pode ser
acedida por todos os blocos do programa de utilizador.
Blocos de dados de instncia: estes blocos esto sempre associados a um
determinado FB. Os dados em cada DB s devem ser utilizados pelo FB
associado. Os blocos de dados de instncia so tratados em maior
pormenor no captulo Funes e Blocos de Funes.

Criar DBs

Os blocos de dados globais podem ser criados tanto com o editor de programa
como com um user-defined data type" que j tenha criado.
Os blocos de dados de instncia so criados quando um bloco FB chamado.

Registos

O CPU tem dois registos, o registo DB e o registo DI. Assim sendo, pode ter dois
blocos de deados abertos ao mesmo tempo.
Encontrar mais informao em cursos de programao avanada.

Training
Automation and Drives

Page 3

ST-7STOE
Captulo 2

Panormica de Blocos de Dados no STEP 7

Dados do tipo Bit (BOOL, BYTE, WORD, DWORD, CHAR)

Dados do tipo
elementar
(at 32 bits)

Dados matemticos (INT, DINT, REAL)


Dados do tipo tempo (S5TIME, TIME, DATE, TIME_OF_DAY)

Tempo (DATE_AND_TIME)

Dados do tipo
complexo
(maiores que 32 bits)

Array (ARRAY)
Estrutura (STRUCT)
Caratere (STRING)

Dados definidos pelo utilizador


(maiores que 32 bits)

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

Dados do tipo UDT (User Defined Type)

Date:
File:

26.05.2006
STOE02.4

Training
Automation and Drives

Panormica

Os tipos de dados determinam as propriedades do dado, isto , a forma como o


contedo de um ou mais endereos associados deve ser representado e a gama
de valores permitida.
O tipo de dado determina tambm que operaes podem ser utilizadas.

Dados do Tipo
Elementar

Os dados do tipo elementar so pr-definidos de acordo com a norma IEC


1131-3. O tipo de dado determina a quantidade de espao de memria necessrio.
Por exemplo, um dado do tipo Word (palavra) ocupa 16 bits na memria de
utilizador.
Os dados do tipo elementar no tm mais de 32 bits de comprimento. Podem ser
carregados com todo o seu contedo nos acumuladores de um processador S7 e
processados com instrues STEP 7 elementares.

Dados do Tipo
Complexo

Os dados do tipo complexo s podem ser utilizados juntamente com variveis


declaradas nos blocos de dados globais. Dados do tipo complexo no podem ser
carregados na totalidade do seu contedo nos acumuladores atravs de operaes
de carregamento. Para estes dados poderem ser processados tem que utilizar
blocos standard da biblioteca (Program S7 IEC").

Dados Definidos
pelo Utilizador

Os dados definidos pelo utilzador podem ser utilizados para os blocos de dados
ou como um tipo de dado na tabela de declaraes de variveis.
Os UDTs so criados com o editor de blocos de dados (Data Block Editor).
A estrutura de um UDT pode conter grupos de dados elementares e/ou de dados
complexos.

Training
Automation and Drives

Page 4

ST-7STOE
Captulo 2

Tipos de Dados Elementares no STEP 7


Tipo

Comp.(em bits)

Exemplo de uma constante

BOOL
BYTE
WORD
DWORD
CHAR

1
8
16
32
8

1 ou 0
B#16#A9
W#16#12AF
DW#16#ADAC1EF5
'w'

S5TIME

16

S5T#5s_200ms

INT
DINT
REAL

16
32
32

123
65539
1.2 ou 34.5E-12

TIME
DATE
TIME_OF_DAY

32
16
32

T#2D_1H_3M_45S_12MS
D#1993-01-20
TOD#12:23:45.12

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

Date:
File:

26.05.2006
STOE02.5

Training
Automation and Drives

BOOL, BYTE, WORD Variveis do tipo BOOL so compostas por um bit, variveis do tipo BYTE, WORD,
DWORD, CHAR
DWORD so sequncias de 8, 16 e 32 bits respectivamente. Os bits no so
avaliados individualmente nestes casos.
Formas especiais destes tipos de dados so os nmeros BCD e o valor de
contagem utilizado juntamente com a funo de contagem, bem como os dados do
tipo CHAR, que representam um caratere em cdigo ASCII.
S5TIME

Variveis do tipo S5TIME so necessrias para especificar o valor do tempo em


funes que utilizam temporizadores (funes de temporizadores S5). Pode
especificar o tempo em horas, minutos, segundos e milisegundos. Pode introduzir
os valores do tempo com underline (1h_4m) ou sem underline (1h4m).
As funes da biblioteca FC 33 e FC 40, convertem o formato S5TIME em formato
TIME e formato TIME em formato S5TIME.

INT, DINT, REAL

Variveis deste tipo representam nmeros que podem ser utilizados em operaes
matemticas.

TIME

Uma varivel do tipo TIME ocupa uma palavra-dupla (doubleword). Esta varivel
utilizada, por exemplo, para especificar valores de tempo em funes IEC de
temporizadores. Os contedos da varivel so interpretados como um nmero
DINT (duplo-inteiro) em milisegundos e pode tanto ser positivo como negativo (por
expl.: T#1s=L#1 000, T#24d20h31m23s647msw = L#214748647).

DATE

Uma varivel do tipo DATE armazenada numa palavra (word) no formato de um


nmero inteiro sem sinal. O contedo da varivel representa o nmero de dias
desde 01.01.1990 (por expl.: D#2168-12-31 = W#16#FF62).

TIME_OF_DAY

Uma varivel do tipo TIME_OF_DAY ocupa uma palavra-dupla (doubleword).


Contm o nmero de milisegundos desde o incio do dia (0:00 horas) no formato de
um nmero inteiro sem sinal (por expl.: TOD#23:59:59.999 = DW#16#05265B77).

Training
Automation and Drives

Page 5

ST-7STOE
Captulo 2

Tipos de Dados Complexos


Tipo

Comp.(em bits)

Exemplo

DATE_AND_TIME

64

DT#97-09-24-12:14:55.0

STRING
(caratere string com
mx. 254 carateres)

8 * (nmero de
caracteres +2)

Isto uma string


SIEMENS

ARRAY
(Grupo de elementos
do mesmo tipo de dados)

definido pelo
utilizador

Valores medidos: ARRAY[1..20]


INT

STRUCT
(Grupo de elementos de
diferentes tipos de dados)

definido pelo
utilizador

Motor: STRUCT
Velocidade : INT
Corrente: REAL
END_STRUCT

UDT
(User Defined Data Type =
Template" constituido por
dados do tipo elementar
ou complexo

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

Dados do Tipo
Complexo

definido pelo
utilizador

Date:
File:

UDT como bloco

UDT como elemento array

STRUCT
Velocidade: INT
Corrente: REAL
END_STRUCT

Drive: ARRAY[1..4]
UDT1

26.05.2006
STOE02.6

Training
Automation and Drives

Dados do tipo complexo (arrays e estruturas) so constituidos por grupos


de dados do tipo elementar ou complexo.
Permitem criar tipos de dados para resolver determinada tarefa, onde pode
estruturar grandes quantidades de dados e process-los simblicamente.
Os dados do tipo complexo no podem ser processados todos ao mesmo tempo
(mais de 32 bits) pelas instrues STEP 7, mas apenas um elemento de cada vez.
Os dados do tipo complexo so pr-definidos. O dado do tipo DATE_AND_TIME tem
um comprimento de 64 bits. O comprimento dos dados do tipo ARRAY, STRUCT e
STRING so definidos pelo utilizador.
As variveis de dados do tipo complexo s podem ser declaradas em blocos de
dados globais ou variveis locais de blocos lgicos.

Dados Definidos
pelo Utilizador

Training
Automation and Drives

Tipos de dados definidos pelo utlizador representam uma estrutura por ele
definida. Esta armazenada em blocos UDT (UDT1 ... UDT65535) e podem
ser utilizados como uma template" noutro tipo de dado de variveis.
Pode poupar tempo ao introduzir um bloco de dados se utilizar a mesma estrutura
vrias vezes.
Exemplo: Vai precisar da mesma estrutura 10 vezes num bloco de dados. Primeiro,
defina a estrutura e grave-a como UDT1, por exemplo.
No DB, defina a varivel "Addresses" como um array com 10 elementos do tipo
UDT1:
Endereos do array[1..10]
UDT 1
Acabou assim de crias 10 gamas de dados com a estrutura definida no UDT1 sem
ter que escrever cada uma individualmente.

Page 6

ST-7STOE
Captulo 2

Exemplo de uma Estrutura


Motor_data
Operating Speed, dado do tipo Inteiro
Rated Current, dado do tipo Real
Startup Current, dado do tipo Real

Estrutura com o nome Motor_Data"


(vrios elementos com
diferentes tipos de dados)

Turning Direction, dado do tipo Bool


Visualizao no Editor de Programas (Bloco de Dados DB 1):

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

Date:
File:

26.05.2006
STOE02.7

Training
Automation and Drives

Estrutura

Este slide mostra o exemplo de uma estrutura com o nome "Motor_data". A


estrutura constituida por vrios elementos de diferentes tipos de dados. Os
elementos individuais de uma estrutura podem ser tipos de dados do tipo elementar
ou complexo.
O acesso aos elementos individuais de uma estrutura contm o nome da estrutura.
O programa assim mais fcil de ler.
Para poder aceder aos elementos simblicamente, deve ser dado ao bloco de
dados um nome simblico, por exemplo, Drive_1.
Exemplos de como aceder a elementos individuais de uma estrutura:
L Drive_1".Motor_data.rated_current ou
L Drive_1".Motor_data.operating_speed
Drive_1 o nome simblico do bloco de dados, que contm a estrutura. O nome
da estrutura dado (separado por um ponto) depois do nome simblico. A seguir
ao nome da estrutura (seperado por um ponto) aparece o nome de um elemento da
estrutura.

Definir Estrutura
num DB

O tipo para uma estrutura "STRUCT". O fim de uma estrutura indicado


por "END_STRUCT". Cada estrutura tem que ter um nome (no nosso exemplo:
"Motor_data").

Training
Automation and Drives

Page 7

ST-7STOE
Captulo 2

Exemplo de um Array
Measuring_point
1. Measuring_point, dado tipo Real
2. Measuring_point, dado tipo Real
3. Measuring_point, dado tipo Real

10. Measuring_point, dado tipo Real

Array com o nome "Measuring_point"


(vrios elementos do
mesmo tipo de dados)

Visualizao no Editor de Programas (Bloco de Dados DB 2):

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

Array

Date:
File:

26.05.2006
STOE02.8

Training
Automation and Drives

Um array composto por vrios elementos do mesmo tipo de dados. No slide


acima ilustrado, pode ver o array "Measuring_point" com 10 elementos do tipo de
dados REAL. Posteriormente, alguns dos valores medidos devero ser
armazenados neste array.

Definir Array num DB O tipo para array "ARRAY[n..m]". O primeiro (n) e o ltimo elemento (m) so
especificados em parntesis rectos. No exemplo, [1..10] significa 10 elementos,
onde o primeiro endereado com o index [1] e o ltimo com o index [10]. Em vez
de [1..10] poderia, por exemplo, definir [0..9]. Esta representao apenas afecta o
acesso aos elementos.
Nota

Para criar um bloco de dados vazio, pode definir um array com o tipo de dados
pretendidos.

Data View

Para ver que valores esto armazenados nos elementos individualmente, selecione
as opes de menu View -> Data View para passar a outra visualizao. Em "Data
View, ir encontrar na coluna "Actual Value" os valores que esto presentemente
armazenados

Training
Automation and Drives

Page 8

ST-7STOE
Captulo 2

Criar um Novo Bloco de Dados

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

Date:
File:

26.05.2006
STOE02.9

Training
Automation and Drives

Editor de Programa

Com o editor LAD/STL/FBD pode abrir um bloco de dados j existente ou criar um


novo.

Caixa de Dilogo
"New"

Quando seleciona o icon "New, aparece a caixa de dilogo "New. Depois de


escolher o nome do projecto e do programa de utilizador introduza, por exemplo,
DB4 no campo "Object name" (como tipo de objecto Object Type dever escolher
Data Block ou All Editable). Depois de confirmar as suas introdues com o
boto "OK", aparece a nova caixa de dilogo designada "New Data Block.

Caixa de Dilogo
"New Data Block"

Nesta caixa de dilogo, selecione o tipo de bloco de dados a ser criado:


Data Block (bloco de dados globais)
Data Block Referencing a User-Defined Data Type (cria um bloco de dados
utilizando a mesma estrutura de um bloco UDT)
Data Block Referencing a Function Block (cria um bloco de dados de
instncia para um FB). Este ponto ser explicado no captulo "Funes e
Blocos de Funes.

Training
Automation and Drives

Page 9

ST-7STOE
Captulo 2

Introduzir, Gravar, Transferir e Testar um Bloco de Dados

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

Date:
File:

26.05.2006
STOE02.10

Training
Automation and Drives

Introduzir Dados

Os elementos so introduzidos um a um na tabela. Para o fazer, selecione primeiro


a primeira linha vazia na coluna "Name" e introduza a descrio dos elementos.
Pode saltar para as outras colunas - Type (tipo), Initial Value (valor inicial) e
Comment (comentrio) - utilizando a tecla Tab.

Colunas

O siginficado de cada uma das colunas ser respectivamente:

Address

- introduzido pelo editor de programa quando grava.


Corresponde ao primeiro endereo byte ocupado pela
varivel no bloco de dados.
Name
- nome simblico do elemento.
Type
- tipo de dado (selecionvel com a tecla direita do mouse).
Initial Value
- utilizado para selecionar um valor defeito para um
elemento. Se no introduzir um valor neste campo, ser
utilizado o valor zero como valor inicial.
Comment
- para documentar um elemento dado da tabela (opcional).

Gravar

Ao selecionar o icon "Disquete" estar a gravar o bloco de dados no disco duro do


seu programador.

Transferir

Como acontece para os blocos lgicos, tambm ter que transferir os blocos de
dados para o CPU.

Testar

Para testar os valores actuais de um bloco de dados, tem que passar para a
representao "Data View". Pode testar um bloco de dados utilizando o icon
culos" da barra de ferramentas (visualizar permanentmente os valores actuais do
DB no CPU).

Training
Automation and Drives

Page 10

ST-7STOE
Captulo 2

Elementos de Endereamento de Dados

8 Bits
7

Byte Dados 0

DBB 0

Byte Dados 1

DBW 0

Byte Dados 2

DBD 0

Byte Dados 3
DBX 4.1

DBD 8188
DBW 8190
DBB 8191

Byte Dados 8191

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

Date:
File:

26.05.2006
STOE02.11

Training
Automation and Drives

Geral

Os elementos de dados de um bloco de dados so acedidos byte-a-byte, ou seja,


da mesma maneira que os bits de memria. Pode carregar e transferir bytes de
dados, palavras de dados ou palavras-duplas de dados. Quando utilizar palavras de
dados, tem que especificar na instruo o primeiro endereo byte (por expl. L DBW
2). Com estas instrues so carregados dois bytes a partir do endereo referido.
Com palavras-duplas, so carregados 4 bytes a partir do endereo refernciado.

Nmero,
Comprimento

O nmero de blocos de dados depende do CPU utilizado.


O comprimento mximo de um bloco de dados de 8KByte para o S7-300 e de
64KByte para o S7-400.

Nota

Se tentar aceder a um dado ou a um bloco de dados no-existentes, o CPU entrar


em STOP se no tiver sido programado um OB de erro.

Training
Automation and Drives

Page 11

ST-7STOE
Captulo 2

Aceder a Elementos de Dados

DB 19
(Nome simblico: Valores)

Accesso Qualificado

Acesso
Tradicional

absoluto

simblico

OPN DB19
A DBX 0.0

or

A DB19.DBX0.0

or

A Values".Start

Number

OPN DB19
L DBW2

or

L DB19.DBW2

or

L Values".Number

Loop

OPN DB19
L DBB5

or

L DB19.DBB5

or

L Values".Loop

1)

0
1
2
3
4
5
6
7
8
9

1) Bit de dados 0.0 com o


nome "Start"

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

Date:
File:

26.05.2006
STOE02.12

Training
Automation and Drives

Abrir um DB

A instruo OPN DB..." abre um bloco de dados globais. Se j tiver sido aberto
anteriormente um bloco de dados globais, ser automticamente fechado.
Se tiver sido definido um nome simblico (por expl.: Values") para o DB, o bloco de
dados pode tambm ser aberto com a instruo OPN Values" .

Aceder a um DB

As instrues de acesso para leitura (Load) ou escrita (Transfer) de um DB esto


representadas no slide.
Se o DB j tiver sido aberto, ser apenas necessrio utilizar as instrues simples
de carregamento e transferncia.
A instruo combinada, por exemplo, L DB19.DBW2 inclu o DB pretendido.
A instruo contm a abertura de um bloco de dados.

Acesso Simblico

Um acesso simblico s ser possvel se forem preenchidos os seguintes


requisitos:
1. Foi atribudo ao DB um nome simblico na tabela de smbolos.
2. Foram atribudos, com o editor LAD/STL/FBD, nomes simblicos
individualmente aos elementos de dados do bloco de dados.
Exemplo: A instruo L Values".Number abre o DB com o nome Values'
carrega o elemento de dados com o nome Number'.

Nota

Como regra, deveria utilizar o acesso simblico a DBs. Isto traduz-se nas seguintes
vantagens:
o programa mais fcil de ler,
garante que acedido o DB correcto,
mais fcil fazer mais tarde correes estrutura de dados no DB.
Com o acesso absoluto ao DB, tem que corrigir manualmente todas as localizaes
do programa com acesso ao DB. Com o acesso simblico, mais fcil fazer
correes usando o ficheiro fonte. Trabalhar com Programas Fonte ser tratado
num curso de programao avanada.

Training
Automation and Drives

Page 12

ST-7STOE
Captulo 2

Validade de um DB Aberto
OB 1
OPN
L

FC 1

DB 4
DBW2

DB 4

CALL FC 1

DBW 4 DB 4

OPN
L

DB 5
DBB6

DB 5

CALL FC 2
T

DBW 2

DB 4

DBW 0 DB 5

FC 2
T

DBW 8 DB 5

OPN

DB 6

DBB6

DB 6

T DB2.DBB 0 DB 2
L

DBW 4 DB 2

FB 1
CALL FB1, DB1

!
L

DBW 10

DB ??

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

???

Date:
File:

26.05.2006
STOE02.13

Training
Automation and Drives

Introduo

Um bloco de dados aberto permanecer aberto at que seja aberto outro DB ou at


que uma instruo combinada (por expl. L DB4.DBW6) permita o acesso a outro
DB.

Chamar uma FC

Se o processamento de um bloco de organizao OB ou de uma funo FC for


abandonado por ter sido chamada outra funo, o bloco de dados vlido continuar
vlido. Quando o processador voltar funo anterior, o bloco de dados que era
vlido quando abandonou essa funo novamente aberto.

Chamar um FB

A chamada de um bloco de funes diferente. Existe um DB de instncia que est


sempre associado a um FB (mais informaes no captulo Funes e Blocos de
Funes). Com a chamada de um bloco de funes, o DB de instncia associado
automticamente aberto.
Quando regressa ao bloco
de nvel inferior, o bloco de dados anteriormente aberto deixa de ser vlido.
Isto significa que depois de
chamadas a FBs, tem que se tornar a abrir o bloco de dados necessrio para o
processamento.

Nota

Pode abrir um bloco de dados atravs da utilizao da instruo OPN DB. Tambm
o poder fazer se passar parmetros para blocos de atribuio de parmetros.
Assim, pode por exemplo utilizar "DB 4.DBW6" como parmetro actual. Neste caso,
aberto o DB 4.

Training
Automation and Drives

Page 13

ST-7STOE
Captulo 2

Tipo de Dados Definidos pelo Utilizador (UDT)


Bloco UDT como Template

DB Global (Exemplo)

Farinha

Farinha

Leite

Leite

Ovos

Ovos

Fermento

Fermento

Aucar

Aucar

Receita
1

Farinha
Leite
Ovos
Fermento

Farinha

Farinha

Leite

Leite

Ovos

Ovos

Fermento

Fermento

Aucar

Aucar

Siemens, S.A. 2001. Todos os direitos reservados.

Utilizao

Array com
3 elementos
do tipo UDT

Aucar

DB criado de acordo com o UDT

SIMATIC S7

Receita
2

Date:
File:

26.05.2006
STOE02.14

Receita
3

Training
Automation and Drives

Os tipos de dados definidos pelo utilizador so utilizados para:


criar blocos de dados estruturados,
criar arrays,que contm a mesma estrutura vrias vezes,
criar variveis locais num FC, FB com uma determinada estrutura (ver
captulo "Funes e blocos de Funes").
Os tipos de dados definidos pelo utilizador so armazenados em blocos designados
UDTs no disco duro do programador. So utilizados como templates, para lhe
poupar tempo ao criar um bloco de dados.

Tipo de Dados
Definidos pelo
Utilizador (UDT)

Training
Automation and Drives

Os tipos de dados definidos pelo utilizador, so constitudos por dados do tipo


elementar ou outros tipos de dados definidos pelo utilizador.
Estes tipos de dados no podem ser armazenados no PLC.
Exemplo: Armazenar dados de receitas (ver prximas pginas).

Page 14

ST-7STOE
Captulo 2

Introduzir um bloco UDT

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

Date:
File:

26.05.2006
STOE02.15

Training
Automation and Drives

Introduzir o Tipo de
Dado

Para criar um UDT selecione, no Editor LAD/STL/FBD , as opes de menu


File - > New e o nome de objecto UDT.. .
Introduza a estrutura de dados pretendida.
Tem que preencher as colunas "Name" e "Type, mas pode deixar as colunas
Initial Value" e Comment" em branco.

Gravar o Tipo de
Dado

Finalmente, grave a estrutura (clique com o mouse no icon Save).

Training
Automation and Drives

Page 15

ST-7STOE
Captulo 2

Criar um Bloco de Dados Referenciando um Tipo de Dado

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

Date:
File:

26.05.2006
STOE02.16

Training
Automation and Drives

Criar um DB

Quando tiver definido um tipo de dado e gravado o mesmo como um bloco UDT,
pode criar vrios blocos de dados com a mesma estrutura de dados.

O que Fazer

1.
2.
3.
4.
5.

Training
Automation and Drives

Selecione as opes de menu File - > New no Editor de Programa.


Selecione o projecto, o programa de utilizador e um DB.
Active a opo "Data block referencing a user-defined data type".
Selecione o bloco UDT pretendido no campo Reference".
Grave o bloco de dados.

Page 16

ST-7STOE
Captulo 2

Exemplo: Array de UDTs


Declaration View

Data View

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

Exemplo

Date:
File:

26.05.2006
STOE02.17

Training
Automation and Drives

Se precisar da mesma estrutura vrias vezes no mesmo bloco de dados, pode


utilizar um UDT como tipo de dado, por exemplo, num array.
Se ao bloco de dados DB11 for atribuido o nome Cake" na tabela de smbolos, o
acesso simblico a partir do programa de utilizador pode ser feito da seguinte
maneira:
L "Cake".Recipe[2].Eggs
Carregue o Number of Eggs (nmero de ovos) da segunda receita do bloco de
dados Cake.

Notas

Tem que passar ao modo "Data View" para poder alterar a quantidade de
ingridientes. Podem ento depois sobreescever os valores iniciais na coluna
"Actual Value com as quantidades pretendidas.
Para mais tarde alterar a estrutura de um bloco UDT, tem que recriar os blocos de
dados que contm UDTs bem como, actualizar todos os acessos a este bloco de
dados. A forma mais fcil de o fazer atravs da utilizao do ficheiro fonte.
Pode tambm atribuir nomes simblicos a estes blocos UDT.

Training
Automation and Drives

Page 17

ST-7STOE
Captulo 2

Exerccio: Programa para Enchimento de Garrafas - Armazenamento


de Dados

Data block DB5


Garrafas vazias (MW 100)

Varivel: vazia

Garrafas cheias (MW102)

Varivel: cheia

Varivel: partida

Garrafas Partidas" (MW 104)

SIMATIC S7
Siemens, S.A. 2001. Todos os direitos reservados.

Date:
File:

26.05.2006
STOE02.18

Training
Automation and Drives

Objectivo

Num exerccio anterior, armazenou os dados de produo (Garrafas cheias, vazias


e partidas) em palavras de memria. Estas palavras de memria no so
retentivas. Assim sendo, a produo de dados perde-se- se for executado um
rearranque completo. Para evitar que isto acontea, os dados provenientes da
produo devem agora ser armazenados num bloco de dados.

O que Fazer

1. Crie um bloco de dados DB 5 no programa S7 "FILL(Enchimento) contendo


as variveis especificadas e o tipo de dado INT.
2. Altere o bloco FC 18 de forma a que, os dados da produo (Garrafas
cheias, vazias e partidas) sejam agora armazenados nas palavras de
memria do DB 5.
3. Transfira os blocos para o PLc e teste a sua soluo no seu kit.

Resultado

Deveria trabalhar.

Training
Automation and Drives

Page 18

ST-7STOE
Captulo 2

Вам также может понравиться