Você está na página 1de 22

Dados Complexos no STEP 7

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Significado das Variáveis e Tipos de Dados

Tipos de dados caracterizam as propriedades


básicas do dado
 Área contínua: p.ex. Velocidade atual
 Propriedade "sim/não": p.ex. distúrbio

Os tipos de dados definem:


 A faixa de valores permitidos
(INT: -32 768 ... +32 767, etc.)
 As instruções possíveis
(instruções aritiméticas: +, -, etc.)
Actual_speed: REAL
 Tipos de dados abstratos da representação
subordinada aos bits na memória Set_speed: REAL

As Variáveis permitem que você salve e Disturbance: BOOL


mais tarde continue a processar valores
Enable: BOOL

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Propriedades e Declaração de Variáveis

As seguintes propriedades são


determinadas pela declaração da variável:
 Nome simbólico
 Tipo de dado
 Faixa de validade

Variáveis podem ser declaradas:


 Na tabela de símbolos global
(tipos de dados elementares) Meas_point: ARRAY[1..10]
 Na tabela de declarações de blocos Meas_point[1]: Real
de dados globais (todos os tipos de dados) Meas_point[2]: Real
 Na tabela de declarações de um bloco Meas_point[3]: Real
lógico (OB, FB e FC)

Meas_point[10]: Real

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Importância dos Tipos de Dados Complexos

Motor: STRUCT
" Melhor" estruturação
Set_speed: REAL
de Dado:
Actual_speed: REAL
 Adaptado para a tarefa Enable: BOOL
 com "correto" tipo de dado Disturbance: BOOL
END_STRUCT

Forma Compacta de Dado passado


na chamada em um Bloco:
in Drive UDT1
 "muitos" itens de dados podem out ... ...
ser passados em um parâmetro stat Control. FB1 in Motor UDT1
out ... ...
 Possibilidade de fazer
. .
programação estruturada . .
CALL #Controller A #Motor.Enable
 blocos "comunicam" 5
Motor:="Hall_1".M5 .
somente via barramento de ... .
parâmetros .
 software reutilizável .

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Tipos de Dados Complexos no STEP 7

Dimensão
Palavra chave Exemplo
(em bits)
DT#99-06-14-12:14:55.0
DATE_AND_TIME 64
(Data e Horário)
´Isto é uma string´
STRING 8 * (número de
´SIEMENS´
(Caracter “string“ com caracteres +2)
máx. 254 caracteres)
Meas_vals: ARRAY[1..20]
ARRAY definido pelo
INT
(Grupo de elementos usuário
do mesmo tipo de dado)

Motor: STRUCT
STRUCT definido pelo
Speed : INT
(Estrutura, Grupo de usuário
Current : REAL
elementos de diferentes
END_STRUCT
tipos de dados)
UDT como bloco UDT como elemento array
UDT definido pelo
(User Defined Data Type = usuário
STRUCT Drive: ARRAY[1..4]
"Template" constituído de
Speed : INT UDT1
tipos de dados elementares
Current : REAL
e/ou complexos)
END_STRUCT

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Tipo de Dado: ARRAY

ARRAY (campo): Meas_value: ARRAY[1..10]


 Grupo de Meas_value[1]: Real
componentes do Meas_value[2]: Real
mesmo tipo de dados Meas_value[3]: Real
.
 Declaração: .

• Uni dimensional: Meas_value[10]: Real


Fieldname: ARRAY[minIndex..maxindex] OF data type;
• Multi-dimensional:
Fieldname: ARRAY[mindex1..maxindex1,mindex2..maxindex2,...] OF data type;
Index: Data type INT (-32768...32767)
Exemplos:
 Declaração da variável:
• Uni dimensional: Meas_value: ARRAY[1..10] OF REAL;
• Multi-dimensional: Position: ARRAY[1..5,2..8,...] OF INT;

 Acesso à uma variável:


• L #Meas_value[5] // Carrega o quinto elemento do ARRAY
// Meas_value no ACCU1
• T #Result[10,5]

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Inicialização e Declaração dos ARRAYs

DB5 "Declaration view"

DB5 "Data view"

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Armazenagem das Variáveis ARRAY na Memória
Arrays unidimensionais Arrays multidimensionais
 Tipo de Dado BOOL  Exemplo.
7 6 5 4 3 2 1 0
ARRAY[1..2,1..3,1..2] OF BYTE
Byte n1) 8 7 6 5 4 3 2 1
Byte n+1 etc. 12 11 10 9 Byte n1) Byte 1.1.1
Byte n+1 Byte 1.1.2
 Tipo de Dados BYTE, CHAR Byte n+2 Byte 1.2.1

Byte 1
.. Byte 1.2.2
Byte n1) .
Byte n+1 Byte 2 Byte 1.3.1

Byte 3 Byte 1.3.2


Byte n+2
.. Byte 2.1.1
.
Byte 2.1.2

 Tipo de Dado WORD, DWORD,... Byte 2.2.1


Byte 2.2.2
Byte n1)
Word 1
Byte 2.3.1
Byte n+1
Byte 2.3.2
Byte n+2 Byte 3
Word 2
Byte n+2
..
1) n = par .

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Tipo de Dado: DATE_AND_TIME
Estrutura:

Ano Mês
Byte n1) Byte n+1
(90 ... 89) (01 ... 12)

Byte n+2
Dia Hora
(01 ... 31) (00 ... 23) Byte n+3

Minuto Segundo
Byte n+4 Byte n+5
(00 ... 59) (00 ... 59) 1=Domingo
2=Segunda-feira
Dia da 3=Terça-feira
Byte n+6
Milisegundos semana 4=Quarta-feira
(000 ... 999) Byte n+7
5=Quinta-feira
(1..7) 6=Sexta-feira
7=Sábado

 Todos os valores são salvos no formato BCD


 Formação da variável:
DT#Ano-Mês-Dia-Hora:Minutos:Segundos.[Milisegundos]
Exemplo: DT#1998-03-21-17:23:00:00
 Processamento através de funções na biblioteca IEC
1) n = par

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Funções para Processamento de Variáveis DATE_AND_TIME
IEC Library dentro da Standard Library
 FC1 (AD_DT_TM): A função FC 1 soma um período de tempo (formato TIME) a um
instante (formato DT) e retorna um novo instant (formato DT) como um resultado.
 FC34 (SB_DT_DT): A função FC 34 subtrai dois instantes (formato DT) e retorna
uma duração de tempo (formato TIME) como um resultado.
 FC35 (SB_DT_TM): A função FC 35 subtrai um período de tempo (formato TIME)
de um instante (formato DT) e retorna um novo instante (formato DT) como
resultado.
 FC3 (D_TOD_DT): A função FC 3 combina os formatos de dados DATE e
TIME_OF_DAY (TOD) e converte estes formats em um formato DATE_AND_TIME
(DT).
 FC6 (DT_DATE): A função FC 6 extrai o formato de dados DATE do formato
DATE_AND_TIME.
 FC7 (DT_DAY): A função FC 7 extrai o dia da semana do formato
DATE_AND_TIME.
 FC8 (DT_TOD): A função FC 8 extrai o formato de dado TIME_OF_DAY do formato
DATE_AND_TIME.
 Funções de comparação para variáveis DT#Variables: FC9 (EQ_DT), FC12
(GE_DT),
FC14 (GT_DT), FC18 (LE_DT), FC23 (LT_DT), FC28 (NE_DT)

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Tipo de Dado: STRING
Variáveis do tipo STRING (caracter string):
 Tipo de dado STRING representa um caracter string com até 254 caracteres
 Aplicação: Manipulação de mensagens de texto
 Declaração:
 StringName: STRING[maxNo]: 'Initializationtext'
(variável String para até maxNo caracteres, maxNo: 0... 254)
 StringName: STRING: 'Initializationtext'
(variável String para até 254 caracteres)
Exemplos:
 Declaração de variáveis:
 Fault signal : STRING 'Motor failure_4'
(variável Fault signal inicializada com o texto acima)
 Warning : STRING[50] ' '
("empty" variável Warning, pode aceitar até 50 caracteres)
 Processamento:
 Acessos elementares:
L #Fault signal[5] (carrega o quinto caracter do Fault signal)
 Processamento por meio dos FCs da biblioteca IEC

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Armazenagem das Variáveis STRING na Memória

Exemplo:
 Declaration with initialization
 Nome dado: STRING[8]: 'OTTO'
 Variável STRING armazenada "Nome dado"
epecifica o número máx. De caracteres salvos, ou seja,
Byte n1) máx. comprimento= 8 a dimensão especificada na declaração

Byte n+1 comprim. corrente= 4 especifica o caracter corrente salvo na variável STRING

Byte n+2 1o caracter = 'O'


Byte n+3 2o caracter = 'T'  A informação sobre o máximo número de caracteres
salvos ou sobre o tamanho corrente é avaliado por
Byte n+4 3o caracter = 'T' funções na biblioteca IEC.
Byte n+5 4o caracter = 'O'

Byte n+6 B#16#00

Byte n+7 B#16#00

Byte n+8 B#16#00

Byte n+9 B#16#00


..
.

1) n = par

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Funções para Processamento de Variáveis STRING
Biblioteca IEC na biblioteca Standard Library
 FC2 (CONCAT): A função FC2 combina duas variáveis STRING no caracter string.
 FC4 (DELETE): A função FC 4 delete caracteres L como o enésimo caracter no
caracter string.
 FC11 (FINF): A função FC 11 entrega a posição do segundo caracter string dentro
do primeiro caracter string.
 FC17 (INSERT): A função FC 17 insere o caracter string do parâmetro IN2 dentro
do caracter string do parâmetro IN1 após o enésimo caracter.
 FC20 (LEFT): A função FC 20 entrega o primeiro caracter L de um caracter string.
 FC21 (LEN): A função FC 21 calcula o comprimento do caracter string (número de
caracteres válidos).
 FC26 (MID): A função FC 26 entrega a seção média do caracter string
 FC31 (REPLACE): A função FC 31 troca caracteres L do primeiro caracter string
(IN1) como o enésimo caracter (incluso) com o segundo caracter string (IN2).
 FC32 (RIGHT): A função FC 32 entrega o último caracter L de um caracter string.
 Funções de comparação de variáveis STRING: FC10 (EQ_STRING), FC13
(GE_STRING), FC15 (GT_STRING), FC19 (LE_STRING), FC24 (LT_STRING),
FC29 (NE_STRING)

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Tipo de Dado: STRUCT

STRUCT (Estrutura):
 Grupo de componentes Motor: STRUCT
de diferentes tipos Set_Speed: REAL
de dados Actual_Speed: REAL
 Declaração: Enable: BOOL
StructName: STRUCT Disturbance: BOOL
Comp1Name: data type; END_STRUCT
Comp2Name: data type;
...
END_STRUCT

Exemplo:
 Declaração de uma variável: Acesso à variável
• MotorControl : STRUCT S #MotorControl.ON
ON : BOOL; L #MotorControl.ActualSpeed
OFF : BOOL; T #MotorControl.SetSpeed
SetSpeed : INT; ...
ActualSpeed : INT;
END_STRUCT;

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Declaração dos STRUCTs
Exemplo: Declaração de um Array - Structure - Array

DB6 "Declaration view"

DB6 "Data view"

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Armazenagem das Variáveis STRUCT na Memória
Estrutura com tipo de Estrutura com tipo de
dados elementares dados complexos
7 6 5 4 3 2 1 0
Limite de palavra
Byte n1) 6 5 4 3 2 1
Byte n+1 Byte de enchimento Componentes
com tipos de
Byte n+2 Byte 1 dados elementares
Byte n+3 Byte 2
Limite de palavra
Byte n+4 Byte 3
Byte n+5 Byte de enchimento Componentes
com tipos de
Byte n+6 6 5 4 3 2 1 dados ARRAY

Byte n+7 Byte de enchimento


Limite de palavra
Byte n+8
Word 1
Byte n+9 Componentes
com tipos de
Byte 3 dados STRUCT
.. Word 2
.

.. ..
. .
1) n = par

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Tipos de Dados Definido pelo Usuário: UDTs
UDT tipos de dados definidos pelo usuário:
 cria um “template“
para posterior uso
em declarações
 globalmente válido para todos os
blocos da pasta de programa

Exemplo:
 Definição de um novo tipo de dado (Estrutura):
UDT1 STRUCT
SetSpeed : REAL; ...
ActualSpeed : REAL; UDT1: STRUCT
Enable : BOOL; Set_Speed: REAL
Disturbance : BOOL; Actual_Speed: REAL
END_STRUCT;
Enable: BOOL
 Declaração das variáveis:
Disturbance: BOOL
 Motor_1: UDT1;
END_STRUCT
Motor_2: UDT1;
 Acesso a variáveis:
 L #Motor_1.ActualSpeed

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Uso dos UDTs
UDT5

FC23

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Configuração de uma Base de Dados

UDT 111

UDT 112

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Exercício: Criando uma Base de Dados

DB112 Declaration view

DB112 Data view

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Se você deseja saber mais

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.
Exercício: Acessando uma Base de Dados

SIMATIC S7 SITRAIN Training for


Automation and Drives
Siemens Ltda.