cap 02 - armazenamento de dados em dbs

18
Training Automation and Drives ST-7STOE Capítulo 2 Page 1 Conteúdo Pág. Áreas de Armazenamento de Dados …………................................................................................. 2 Blocos de Dados (DBs) ................................................................................................................... 3 Panorâmica de Tipos de Dados no STEP 7..................................................................................4 Tipos de Dados Elementares no STEP 7 ............................................................................................ 5 Tipos de Dados Complexos………........................................................................................................ 6 Exemplo de uma Estrutura ............................................................................................................. 7 Exemplo de um “Array“.......................................................................................................................... 8 Criar um Novo Bloco de Dados ............................................................................................................ 9 Introduzir, Gravar, Transferir e Testar um Bloco de Dados ........................................................... 10 Elementos de Endereçamento de Dados ........................................................................................ 11 Aceder a Elementos de Dados............................................................................................................. 12 Validade de um DB Aberto …….......................................................................................................... 13 Tipo de Dados Definidos pelo Utilizador (UDT) .......................................................................... 14 Introduzir um Bloco UDT....................................................................................................................... 15 Criar um bloco de Dados Referenciando um Tipo de Dado ........................................................... 16 Exemplo: “Array“ de UDTs ............................................................................................................ 17 Exercise: Programa para Enchimento de Garrafas - Armazenamento de Dados ……...................….. 18 Date: 26.05.2006 File: STOE02.1 SIMATIC S7 Siemens, S.A. 2001. Todos os direitos reservados. Training Automation and Drives Armazenamento de Dados em DBs

Upload: monalissa-gomes-de-almeida

Post on 11-Jul-2016

11 views

Category:

Documents


0 download

DESCRIPTION

Simatic

TRANSCRIPT

Page 1: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 1

Conteúdo Pág.

Áreas de Armazenamento de Dados …………................................................................................. 2Blocos de Dados (DBs) …................................................................................................................... 3Panorâmica de Tipos de Dados no STEP 7..............................................................................…....… 4 Tipos de Dados Elementares no STEP 7 ............................................................................................ 5Tipos de Dados Complexos………........................................................................................................ 6Exemplo de uma Estrutura .........................................................................….................................... 7Exemplo de um “Array“.......................................................................................................................... 8Criar um Novo Bloco de Dados............................................................................................................ 9Introduzir, Gravar, Transferir e Testar um Bloco de Dados .....…...................................................... 10Elementos de Endereçamento de Dados …........................................................................................ 11Aceder a Elementos de Dados............................................................................................................. 12Validade de um DB Aberto …….......................................................................................................... 13Tipo de Dados Definidos pelo Utilizador (UDT) ….......................................................................... 14Introduzir um Bloco UDT....................................................................................................................... 15Criar um bloco de Dados Referenciando um Tipo de Dado ........................................................... 16Exemplo: “Array“ de UDTs ............…................................................................................................ 17Exercise: Programa para Enchimento de Garrafas - Armazenamento de Dados ……...................….. 18

Date: 26.05.2006File: STOE02.1

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

Armazenamento de Dados em DBs

Page 2: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 2

Panorâmica Além dos blocos de programa, o programa de utilizador também é constituido por dados que contêm informação sobre os estados do processo, sinais, etc., que são depois processados de acordo com as instruções do programa de utilizadorOs dados são armazenados em variáveis do programa de utilizador, que são ùnicamente identificadas por: • Local de armazenamento (endereço: por expl. P, IEP, ISP, bit de memória,

L stack, DB)• Tipo de dado (tipo de dado elementar ou complexo, tipo de parâmetro)

Dependendo da acessibilidade, é também feita a distinção entre: • Variáveis globais, que são declaradas na tabela global de símbolos ou nos

blocos de dados globais. • Variáveis locais, que são declaradas na parte das declarações dos OBs, FBs

e FCs.As variáveis podem ter uma localização de armazenamento permanente na imagemdo processo, área de bits de memória ou num bloco de dados ou podem ser criadas dinâmicamente 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 : • variáveis temporárias de um bloco lógico, incluindo informação inicial do OB. • parâmetros actuais a serem utilizados aquando de funções de chamada • resultados lógicos intermédios em programas LAD. Este tema será tratado no capítulo “Funções e Blocos de Funções“.

Blocos de Dados Os blocos de dados são blocos utilizados pelos blocos lógicos do programa de utilizador para o armazenamento de dados. Ao contrário dos dados temporais, os dados nos blocos de dados não são sobreescritos quando a execução do bloco lógico é completada ou quando o DB é terminado.

Date: 26.05.2006File: STOE02.2

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

Bits memória

ISP

IEP

Áreas de Armazenamento de Dados

Blocos de Dados

DBx

DBy

DBz

. . .

Área I/O

L stack

Page 3: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 3

Panorâmica Os blocos de dados são utilizados para armazenar dados do utilizador. Como acontece com os blocos lógicos, os blocos de dados ocupam espaço na memória de utilizador. Os blocos de dados contêm variáveis de dados (por expl. Valores numéricos) que são utilizadas no programa de utilizador. O programa de utilizador pode aceder aos dados de um bloco de dados através deoperações bit, byte, word (palavra) ou doubleword (palavra-dupla). Pode ser utilizado o endereçamento absoluto ou o endereçamento simbólico.

Utilização Dependendo do seu conteúdo, os blocos de dados podem ser utilizados de diferentes maneiras. Pode diferenciar entre: • Blocos de dados globais: estes blocos contêm informaçâo que pode ser

acedida por todos os blocos do programa de utilizador. • Blocos de dados de instância: estes blocos estão sempre associados a um

determinado FB. Os dados em cada DB só devem ser utilizados pelo FB associado. Os blocos de dados de instância são tratados em maiorpormenor no capítulo “Funções e Blocos de Funções“.

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 instância são 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 informação em cursos de programação avançada.

Date: 26.05.2006File: STOE02.3

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

Blocos de Dados (DBs)

FunçãoFC10

FunçãoFC20

Bloco deFunções

FB1

OB1Dados Globais

DB20

Acessível a todos os blocos

Dados Instância

DB5

DB Instância para FB1

Page 4: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 4

Panorâmica Os tipos de dados determinam as propriedades do dado, isto é, a forma como o conteúdo de um ou mais endereços associados deve ser representado e a gama de valores permitida.O tipo de dado determina também que operações podem ser utilizadas.

Dados do Tipo Os dados do tipo elementar são pré-definidos de acordo com a norma IECElementar 1131-3. O tipo de dado determina a quantidade de espaço de memória necessário.

Por exemplo, um dado do tipo Word (palavra) ocupa 16 bits na memória de utilizador. Os dados do tipo elementar não têm mais de 32 bits de comprimento. Podem ser carregados com todo o seu conteúdo nos acumuladores de um processador S7 e processados com instruções STEP 7 elementares.

Dados do Tipo Os dados do tipo complexo só podem ser utilizados juntamente com variáveisComplexo declaradas nos blocos de dados globais. Dados do tipo complexo não podem ser

carregados na totalidade do seu conteúdo nos acumuladores através de operações de carregamento. Para estes dados poderem ser processados tem que utilizar blocos standard da biblioteca (Program S7 “IEC").

Dados Definidos Os dados definidos pelo utilzador podem ser utilizados para os blocos de dados pelo Utilizador ou como um tipo de dado na tabela de declarações de variáveis.

Os UDTs são 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.

Date: 26.05.2006File: STOE02.4

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

Panorâmica de Blocos de Dados no STEP 7

Dados do tipoelementar(até 32 bits)

Dados do tipocomplexo(maiores que 32 bits)

Dados definidos pelo utilizador(maiores que 32 bits)

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

• Dados matemáticos (INT, DINT, REAL)

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

• Tempo (DATE_AND_TIME)

• Array (ARRAY)

• Estrutura (STRUCT)

• Caratere (STRING)

Dados do tipo UDT (User Defined Type)

Page 5: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 5

BOOL, BYTE, WORD Variáveis do tipo BOOL são compostas por um bit, variáveis do tipo BYTE, WORD,DWORD, CHAR DWORD são sequências de 8, 16 e 32 bits respectivamente. Os bits não são

avaliados individualmente nestes casos. Formas especiais destes tipos de dados são os números BCD e o valor de contagem utilizado juntamente com a função de contagem, bem como os dados do tipo CHAR, que representam um caratere em código ASCII.

S5TIME Variáveis do tipo S5TIME são necessárias para especificar o valor do tempo em funções que utilizam temporizadores (funções 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 funções da biblioteca FC 33 e FC 40, convertem o formato S5TIME em formato TIME e formato TIME em formato S5TIME.

INT, DINT, REAL Variáveis deste tipo representam números que podem ser utilizados em operações matemáticas.

TIME Uma variável do tipo TIME ocupa uma palavra-dupla (doubleword). Esta variável é utilizada, por exemplo, para especificar valores de tempo em funções IEC de temporizadores. Os conteúdos da variável são interpretados como um número 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 variável do tipo DATE é armazenada numa palavra (word) no formato de um número inteiro sem sinal. O conteúdo da variável representa o número de dias desde 01.01.1990 (por expl.: D#2168-12-31 = W#16#FF62).

TIME_OF_DAY Uma variável do tipo TIME_OF_DAY ocupa uma palavra-dupla (doubleword). Contém o número de milisegundos desde o início do dia (0:00 horas) no formato de um número inteiro sem sinal (por expl.: TOD#23:59:59.999 = DW#16#05265B77).

Date: 26.05.2006File: STOE02.5

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

Tipos de Dados Elementares no STEP 7

BOOL 1 1 ou 0BYTE 8 B#16#A9WORD 16 W#16#12AFDWORD 32 DW#16#ADAC1EF5CHAR 8 ' w '

S5TIME 16 S5T#5s_200ms

INT 16 123DINT 32 65539REAL 32 1.2 ou 34.5E-12

TIME 32 T#2D_1H_3M_45S_12MSDATE 16 D#1993-01-20TIME_OF_DAY 32 TOD#12:23:45.12

Tipo Comp.(em bits) Exemplo de uma constante

Page 6: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 6

Dados do Tipo Dados do tipo complexo (arrays e estruturas) são constituidos por grupos Complexo 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 simbólicamente.

Os dados do tipo complexo não podem ser processados todos ao mesmo tempo (mais de 32 bits) pelas instruções STEP 7, mas apenas um elemento de cada vez. Os dados do tipo complexo são 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 são definidos pelo utilizador. As variáveis de dados do tipo complexo só podem ser declaradas em blocos dedados globais ou variáveis locais de blocos lógicos.

Dados Definidos Tipos de dados definidos pelo utlizador representam uma estrutura por ele pelo Utilizador definida. Esta é armazenada em blocos UDT (UDT1 ... UDT65535) e podem

ser utilizados como uma “template" noutro tipo de dado de variáveis. Pode poupar tempo ao introduzir um bloco de dados se utilizar a mesma estrutura várias 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 variável "Addresses" como um array com 10 elementos do tipo UDT1:

Endereços 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.

Date: 26.05.2006File: STOE02.6

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

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

STRING 8 * (número de ´Isto é uma string´(caratere string com caracteres +2) ´SIEMENS´máx. 254 carateres)

ARRAY definido pelo Valores medidos: ARRAY[1..20](Grupo de elementos utilizador INT do mesmo tipo de dados)

STRUCT definido pelo Motor: STRUCT(Grupo de elementos de utilizador Velocidade : INTdiferentes tipos de dados) Corrente: REAL

END_STRUCT

UDT UDT como bloco UDT como elemento array(User Defined Data Type = definido pelo “Template" constituido por utilizador STRUCT Drive: ARRAY[1..4]dados do tipo elementar Velocidade: INT UDT1ou complexo Corrente: REAL

END_STRUCT

Tipos de Dados ComplexosTipo Comp.(em bits) Exemplo

Page 7: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 7

Estrutura Este slide mostra o exemplo de uma estrutura com o nome "Motor_data". A estrutura é constituida por vários 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 contém o nome da estrutura. O programa é assim mais fácil de ler. Para poder aceder aos elementos simbólicamente, deve ser dado ao bloco de dados um nome simbólico, por exemplo, “Drive_1“. Exemplos de como aceder a elementos individuais 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 contém a estrutura. O nome da estrutura é dado (separado por um ponto) depois do nome simbólico. A seguir ao nome da estrutura (seperado por um ponto) aparece o nome de um elemento da estrutura.

Definir Estrutura O tipo para uma estrutura é "STRUCT". O fim de uma estrutura é indicadonum DB por "END_STRUCT". Cada estrutura tem que ter um nome (no nosso exemplo:

"Motor_data").

Date: 26.05.2006File: STOE02.7

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

Exemplo de uma Estrutura

Visualização no Editor de Programas (Bloco de Dados DB 1):

Operating Speed, dado do tipo Inteiro

Rated Current, dado do tipo Real

Startup Current, dado do tipo Real

Turning Direction, dado do tipo Bool

Estrutura com o nome “Motor_Data"(vários elementos comdiferentes tipos de dados)

Motor_data

Page 8: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 8

Date: 26.05.2006File: STOE02.8

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

Exemplo de um Array

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"(vários elementos domesmo tipo de dados) •

••

Visualização no Editor de Programas (Bloco de Dados DB 2):

Measuring_point

Array Um array é composto por vários 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 deverão ser armazenados neste array.

Definir Array num DB O tipo para array é "ARRAY[n..m]". O primeiro (n) e o último elemento (m) são especificados em parêntesis rectos. No exemplo, [1..10] significa 10 elementos, onde o primeiro é endereçado com o index [1] e o último com o index [10]. Em vez de [1..10] poderia, por exemplo, definir [0..9]. Esta representação 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 estão armazenados nos elementos individualmente, selecione as opções de menu View -> Data View para passar a outra visualização. Em "Data View“, irá encontrar na coluna "Actual Value" os valores que estão presentemente armazenados

Page 9: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 9

Editor de Programa Com o editor LAD/STL/FBD pode abrir um bloco de dados já existente ou criar um novo.

Caixa de Diálogo Quando seleciona o icon "New“, aparece a caixa de diálogo "New“. Depois de "New" 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 introduções com o botão "OK", aparece a nova caixa de diálogo designada "New Data Block“.

Caixa de Diálogo Nesta caixa de diálogo, selecione o tipo de bloco de dados a ser criado:"New Data Block" • 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 instância para um FB). Este ponto será explicado no capítulo "Funções e Blocos de Funções“.

Date: 26.05.2006File: STOE02.9

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

Criar um Novo Bloco de Dados

Page 10: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 10

Introduzir Dados Os elementos são introduzidos um a um na tabela. Para o fazer, selecione primeiro a primeira linha vazia na coluna "Name" e introduza a descrição dos elementos. Pode saltar para as outras colunas - “Type“ (tipo), “Initial Value“ (valor inicial) e “Comment“ (comentário) - 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 endereço byte ocupado pela

variável no bloco de dados. • Name - nome simbólico do elemento. • Type - tipo de dado (selecionável com a tecla direita do mouse).• Initial Value - é utilizado para selecionar um valor defeito para um

elemento. Se não 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 lógicos, também 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 representação "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).

Date: 26.05.2006File: STOE02.10

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

Introduzir, Gravar, Transferir e Testar um Bloco de Dados

Page 11: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 11

Date: 26.05.2006File: STOE02.11

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

Elementos de Endereçamento de Dados

078 Bits

Byte Dados 0 DBB 0

Byte Dados 1 DBW 0

Byte Dados 8191

DBD 8188

DBW 8190DBB 8191

Byte Dados 2 DBD 0

Byte Dados 3

DBX 4.1

Geral Os elementos de dados de um bloco de dados são acedidos byte-a-byte, ou seja, da mesma maneira que os bits de memória. Pode carregar e transferir bytes de dados, palavras de dados ou palavras-duplas de dados. Quando utilizar palavras de dados, tem que especificar na instrução o primeiro endereço byte (por expl. L DBW 2). Com estas instruções são carregados dois bytes a partir do endereço referido. Com palavras-duplas, são carregados 4 bytes a partir do endereço referênciado.

Número, O número de blocos de dados depende do CPU utilizado.Comprimento O comprimento máximo 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 não-existentes, o CPU entrará em STOP se não tiver sido programado um OB de erro.

Page 12: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 12

Abrir um DB A instrução “OPN DB..." abre um bloco de dados globais. Se já tiver sido aberto anteriormente um bloco de dados globais, será automáticamente fechado. Se tiver sido definido um nome simbólico (por expl.: “Values") para o DB, o bloco de dados pode também ser aberto com a instrução OPN “Values" .

Aceder a um DB As instruções de acesso para leitura (Load) ou escrita (Transfer) de um DB estão representadas no slide.Se o DB já tiver sido aberto, será apenas necessário utilizar as instruções simples de carregamento e transferência. A instrução combinada, por exemplo, L DB19.DBW2 incluí o DB pretendido. A instrução contém a abertura de um bloco de dados.

Acesso Simbólico Um acesso simbólico só será possível se forem preenchidos os seguintes requisitos: 1. Foi atribuído ao DB um nome simbólico na tabela de símbolos. 2. Foram atribuídos, com o editor LAD/STL/FBD, nomes simbólicos

individualmente aos elementos de dados do bloco de dados. Exemplo: A instrução L “Values".Number abre o DB com o nome ‘Values' e

carrega o elemento de dados com o nome ‘Number'.

Nota Como regra, deveria utilizar o acesso simbólico a DBs. Isto traduz-se nas seguintes vantagens: • o programa é mais fácil de ler,• garante que é acedido o DB correcto, • é mais fácil fazer mais tarde correções à estrutura de dados no DB.

Com o acesso absoluto ao DB, tem que corrigir manualmente todas as localizações do programa com acesso ao DB. Com o acesso simbólico, é mais fácil fazer correções usando o ficheiro fonte. Trabalhar com Programas Fonte será tratado num curso de programação avançada.

Date: 26.05.2006File: STOE02.12

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

Aceder a Elementos de Dados

0123456789

DB 19(Nome simbólico: Valores)

Bit de dados 0.0 com onome "Start"

or A DB19.DBX0.0 or A “Values".Start

or L DB19.DBW2 or L “Values".Number

or L DB19.DBB5 or L “Values".Loop

AcessoTradicional

simbólico

Accesso Qualificado

1)

OPN DB19L DBW2

Number

OPN DB19A DBX 0.01)

OPN DB19L DBB5

Loop

absoluto

Page 13: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 13

Date: 26.05.2006File: STOE02.13

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

Validade de um DB Aberto

OB 1

OPN DB 4L DBW2 DB 4

T DBW 2 DB 4

FC 1

DB 4

CALL FC 1

T DBW 4

DB 5OPN DB 5L 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

???!

Introdução Um bloco de dados aberto permanecerá aberto até que seja aberto outro DB ou até que uma instrução combinada (por expl. L DB4.DBW6) permita o acesso a outro DB.

Chamar uma FC Se o processamento de um bloco de organização OB ou de uma função FC for abandonado por ter sido chamada outra função, o bloco de dados válido continuará válido. Quando o processador voltar à função anterior, o bloco de dados que era válido quando abandonou essa função é novamente aberto.

Chamar um FB A chamada de um bloco de funções é diferente. Existe um DB de instância que está sempre associado 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 de instância associado é automáticamente aberto. Quando regressa ao bloco de nível inferior, o bloco de dados anteriormente aberto deixa de ser válido.

Isto significa que depois de chamadas a FBs, tem que se tornar a abrir o bloco de dados necessário para o processamento.

Nota Pode abrir um bloco de dados através da utilização da instrução OPN DB. Também o poderá fazer se passar parâmetros para blocos de atribuição de parâmetros. Assim, pode por exemplo utilizar "DB 4.DBW6" como parâmetro actual. Neste caso, é aberto o DB 4.

Page 14: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 14

Utilização Os tipos de dados definidos pelo utilizador são utilizados para:• criar blocos de dados estruturados,• criar arrays,que contêm a mesma estrutura várias vezes, • criar variáveis locais num FC, FB com uma determinada estrutura (ver

capítulo "Funções e blocos de Funções").

Os tipos de dados definidos pelo utilizador são armazenados em blocos designados UDTs no disco duro do programador. São utilizados como “templates“, para lhe poupar tempo ao criar um bloco de dados.

Tipo de Dados Os tipos de dados definidos pelo utilizador, são constituídos por dados do tipo Definidos pelo elementar ou outros tipos de dados definidos pelo utilizador. Utilizador (UDT) Estes tipos de dados não podem ser armazenados no PLC.

Exemplo: Armazenar dados de receitas (ver próximas páginas).

Date: 26.05.2006File: STOE02.14

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

DB Global (Exemplo)Bloco UDT como Template

Tipo de Dados Definidos pelo Utilizador (UDT)

Farinha

Leite

Ovos

Fermento

Açucar

Receita 2

Farinha

Leite

Ovos

Fermento

Açucar

Receita3

Farinha

Leite

Ovos

Fermento

Açucar

Farinha

Leite

Ovos

Fermento

Açucar

DB criado de acordo com o UDT

Receita1

Farinha

Leite

Ovos

Fermento

Açucar

Array com3 elementosdo tipo UDT

Page 15: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 15

Introduzir o Tipo de Para criar um UDT selecione, no Editor LAD/STL/FBD , as opções de menu Dado 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 Finalmente, grave a estrutura (clique com o mouse no icon “Save“).Dado

Date: 26.05.2006File: STOE02.15

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

Introduzir um bloco UDT

Page 16: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 16

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

O que Fazer 1. Selecione as opções de menu File - > New no Editor de Programa.2. Selecione o projecto, o programa de utilizador e um DB. 3. Active a opção "Data block referencing a user-defined data type".4. Selecione o bloco UDT pretendido no campo “Reference".5. Grave o bloco de dados.

Date: 26.05.2006File: STOE02.16

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

Criar um Bloco de Dados Referenciando um Tipo de Dado

Page 17: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 17

Exemplo Se precisar da mesma estrutura várias 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 símbolos, o acesso simbólico a partir do programa de utilizador pode ser feito da seguinte maneira:

L "Cake".Recipe[2].Eggs

Carregue o “Number of Eggs“ (número 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 então 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 contêm UDTs bem como, actualizar todos os acessos a este bloco de dados. A forma mais fácil de o fazer é através da utilização do ficheiro fonte.

Pode também atribuir nomes simbólicos a estes blocos UDT.

Date: 26.05.2006File: STOE02.17

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

Exemplo: Array de UDTs

Declaration View

Data View

Page 18: Cap 02 - Armazenamento de Dados Em DBs

TrainingAutomation and Drives

ST-7STOECapítulo 2Page 18

Objectivo Num exercício anterior, armazenou os dados de produção (Garrafas cheias, vazias e partidas) em palavras de memória. Estas palavras de memória não são retentivas. Assim sendo, a produção de dados perde-se-á se for executado um rearranque completo. Para evitar que isto aconteça, os dados provenientes da produção 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 variáveis especificadas e o tipo de dado INT.

2. Altere o bloco FC 18 de forma a que, os dados da produção (Garrafas cheias, vazias e partidas) sejam agora armazenados nas palavras de memória do DB 5.

3. Transfira os blocos para o PLc e teste a sua solução no seu kit.

Resultado Deveria trabalhar.

Date: 26.05.2006File: STOE02.18

SIMATIC S7Siemens, S.A. 2001. Todos os direitos reservados.

TrainingAutomation and Drives

Exercício: Programa para Enchimento de Garrafas - Armazenamento de Dados

Garrafas cheias (MW102)

Garrafas vazias (MW 100)

Garrafas “Partidas" (MW 104)

Data block DB5

Variável: cheia

Variável: vazia

Variável: partida