Você está na página 1de 28

Tipos de Dados e Variveis STEP 7

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.1

Conhecimento em Automao
Training Center

Pg.
Contedo
Significado das Variveis e Tipos de Dados .....................................................................................
2
Propriedades e Declarao de Variveis ..............................................................................
3
Vista Geral dos Tipos de Dados no STEP 7 ......................................................................................
4
Tipos de Dados Elementares no STEP 7 ............................................................................................ 5
Importncia dos Tipos de Dados Complexos ......................................................................
6
Tipos de Dados Complexos no STEP 7 .....................................................................................
7
Tipos de Parmetros no STEP 7 ........................................................................................................ 8
reas para gravao de Variveis ............................................................................................... 9
Funcionamento da metodologia da Pilha de Dados Local ................................................................. 10
Exemplo: Utilizao como memria para rascunho ........................................................................... 11
Blocos de Dados (DB) ..................................................................................................................... 12
Tipo de Dado: ARRAY ........................................................................................................................ 13
Declarao e Inicializao dos ARRAYs ............................................................................................ 14
Armazenagem das Variveis ARRAY na Memria ............................................................................ 15
Tipo de Dado: STRUCT ...................................................................................................................... 16
Declarao dos STRUCTs .................................................................................................................. 17
Armazenagem das Variveis STRUCT na Memria .......................................................................... 18
Tipos de Dados Definido pelo Usurio: UDTs ..................................................................................... 19
Uso dos UDTs .................................................................................................................... 20
Tipo de Dado: DATE_AND_TIME
.................................................................................................. 21
Funes para processamento de Variveis DT ................................................................................. 22
Tipo de Dado: STRING ..................................................................................................................... 23
Armazenagem das Variveis STRING na Memria ........................................................................... 24
Funes para processamento de Variveis STRING ........................................................................ 25
Exerccio 5.1: Uso dos Tipos de Dados Complexos ................................................................... 26
Exerccio 5.2: Acessando Tipos de Dados Complexos .................................................................. 27
Exerccio Adicional 5.3: Lendo Time-of-Day com SFC 1 (READ_CLK) ......................................... 28

Siemens Ltda.
Training Center

Pgina 1

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Significado das Variveis e Tipos de Dados


Tipos de dados caracterizam as propriedades
bsicas do dado
 rea contnua: p.ex. Velocidade atual
 Propriedade "sim/no": p.ex. distrbio
Os tipos de dados definem:
 A faixa de valores permitidos
(INT: -32 368 ... +32 367, etc.)
 As instrues possveis
(instrues aritimticas: +, -, etc.)
 Tipos de dados abstratos da representao
subordinada aos bits na memria
As Variveis permitem que voc salve e
mais tarde continue a processar valores

Actual_speed: REAL
Set_speed: REAL
Disturbance: BOOL
Enable:

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.2

BOOL

Conhecimento em Automao
Training Center

Vista Geral

Nos modernos sistemas computadorizados que foram desenvolvidos para


simplificar e aumentar a velocidade do processamento de clculos
complicados. A capacitao para processar grandes quantidades de
informao, armazenar e tornar novamente acessvel uma extensa relao de
aplicaes.
A informao disponvel ao controlador consiste de uma selecionada
quantidade de dados sobre o mundo real. Os dados representam uma
abstrao da realidade porque propriedades casuais e sem importncia dos
objetos envolvidos no so levados em conta para este problema especfico.

Tipos de Dados

freqente a dificuldade para decidir como os dados sero representados. A


escolha freqentemente restrita as possibilidades disponveis. De outra
forma, as propriedades dos objetos os quais so descritos por dados devem
ser corretamente refletidos, ou de outra forma, as instrues que so
necessrias para o gerenciamento do processo devem tambm serem
capazes de utilizar os dados corretamente.
O tipo de dado determina quais valores so aceitos pelo dado e quais
instrues podem ser executadas com estes valores.
Os tipos de dados definem unicamente:
a faixa de valores permissveis
as instrues possveis
Os tipos de dados abstratos igualmente sob representao subordinada
(formato) de bits individuais, como eles, so finalmente guardados na
memria do computador.

Significado das
Variveis

Junto aos comandos, as variveis so os mais importantes elementos do


sistema de programao. Sua tarefa salvar valores em um programa o qual
poder ser processado posteriormente. O valor da varivel pode ser salvo em
qualquer lugar da memria do PLC.

Siemens Ltda.
Training Center

Pgina 2

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Propriedades e Declarao de Variveis


As seguintes propriedades so
determinadas pela declarao da varivel:
 Nome simblico
 Tipo de dado
 Faixa de validade
Variveis podem ser declaradas:
 Na tabela de smbolos global
(tipos de dados elementares)
 Na tabela de declaraes de blocos
de dados globais (todos os tipos de dados)
 Na tabela de declaraes de um bloco
lgico (OB, FB e FC)

Meas_point: ARRAY[1..10]
Meas_point[1]: Real
Meas_point[2]: Real
Meas_point[3]: Real

Meas_point[10]: Real

SIMATIC S7
Siemens AG 1999. All rights reserved.

Variveis
"Convencionais"

Declarao de
Variveis

Faixa de Validade

Siemens Ltda.
Training Center

Date:
File:

04.10.2007
PRO2_05P.3

Conhecimento em Automao
Training Center

Na convencional de PLC, os endereos da memria do PLC so acessados


diretamente pela especificao da rea de memria (p.ex.: M= Memrias M,
I=Entradas, etc.), a dimenso do acesso (p.ex.: B=byte, W=palavra (word),
etc.) e pela especificao do endereo do byte/(bit). Estas reas endereveis
de memria utilizam endereos que podem ser usadas dentro de um
programa com diferentes propsitos, por exemplo, como inteiro (p.ex.: DINT),
como um nmero em ponto flutuante (isto , REAL) ou simplismente como
uma coleo de sinais individuais (p.ex.: WORD).
At agora era necessrio que o programador se lembrasse do formato e a
localizao das memrias individuais para propsitos de aplicao. Falhas de
programa poderiam ocorrer facilmente, porque endereos errados de
memria ou formatos incorretos eram no intencionalmente usadas nas
instrues.
Posteriormente sistemas PLC (p.ex.: STEP 5) permitiram o uso de smbolos
para facilitar a leitura de programas. STEP 7 foi um passo adiante e utiliza
variveis em vez de endereos e smbolos no PLC.
Para explicitar a declarao de uma varivel, as seguintes propriedades so
fixadas:
Nome simblico de variveis
Tipo de dados de variveis
Faixa de validade
Se variveis so declaradas, o editor de programa pode ento, por exemplo,
usar informaes de tipos de dados para checar a permissibilidade das
instrues como os parmetros atribudos na chamada de blocos.
Variveis que so declaradas na tabela de smbolos globais ou em DBs
globais podem ser endereados por todos os blocos na pasta de programa.
Estas variveis so chamadas variveis globais por esta razo.
Variveis e parmetros que so declaradas na seo de declarao de um
bloco lgico so chamados locais; eles podem somente usados dentro da
seo de declarao do mesmo bloco.

Pgina 3

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Vista Geral dos Tipos de Dados mo STEP 7

Tipos de Dados
Elementares
(at 32 bit)

Tipos de dados Bit (BOOL, BYTE, WORD, DWORD, CHAR)


Tipos de dados Matemticos (INT, DINT, REAL)
Tipos Tempo (S5TIME, TIME, DATE, TIME_OF_DAY)

Tempo (DATE_AND_TIME)

Tipos de Dados
Complexos
(maiores que 32 bits)

Matriz (ARRAY)
Estrutura (STRUCT)
Cadeia de Caracteres (STRING)

Tipo de Dados definido pelo Usurio


(maiores que 32 bits)

SIMATIC S7
Siemens AG 1999. All rights reserved.

Tipo de Dado UDT (User Defined Type)

Date:
File:

04.10.2007
PRO2_05P.4

Conhecimento em Automao
Training Center

A soluo de tarefas de automao usados em sistemas computadorizados


baseado em algortmos, em cujo processo os dados so coletados por
sensores, de forma a colocar na sada novos valores para os atuadores.
Programas so basicamente formas de algortmos que dependem de
representao de dados especficos ou estrutura de dados.
Tipos de Dados
Os tipos de dados elementares reunem os tomos" de cada sistema de
Elementares
programao.
A escolha dos tipos de dados elementares de um sistema de programao
diz muito a respeito da rea de aplicao pretendida.
Em STEP 7, os tipos de dados elementares so predefinidas em acordo com
IEC 1131-3. Os tipos de dados so escolhidos em funo do tipo de tarefa a
ser executada como processamento binrio e processamento de sinais
analgicos, um simples sistema de sinalizao bem como gerenciamento
tarefas de tempo podem ser operadas desta forma.
Com tipos de dados elementares, o tipo de dado determina a quantidade de
espao de memria que uma varivel requer. Tipos de dados elementares
nunca maiores que 32 bits de comprimento no STEP 7 e pode ser carregada
nos acumuladores por inteiro e processadas com instrues STEP 7.
Tipos de Dados
A idia bsica de estruturao de dados diferenciado entre estruturas
Complexos
elementares e superiores. O former so os tomos dos quais os tipos de
dados so configurados.
No STEP 7, tipos de dados complexos podem somente se usados em
conjunto com variveis declaradas em DBs globais ou em pilha de dados
locais. Tipos de dados complexos no podem se completamente carregados
em um acumulador e processados.
Tipos de Dados
Tipos de dados complexos no tem seu prprio identificador para o tipo de
Definido pelo Usurio dado e como um resultado no pode ser repetidamente usado para
declarao de parmetro ou varivel. Com a ajuda de tipo de dados definidos
pelo usurio (UDT), nico, tipos de dados estruturados podem ser criados as
quais podem ento ser usadas to freqente como requerido para outras
declaraes de variveis ou parmetros.

Vista Geral

Siemens Ltda.
Training Center

Pgina 4

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Tipos de Dados Elementares no STEP 7

Palavra-chave

Dimenso
(em bits)

Exemplo de uma constante deste tipo

BOOL
BYTE
WORD
DWORD
CHAR

1
8
16
32
8

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

S5TIME

16

S5T#5s_200ms

INT
DINT
REAL

16
32
32

123
65539 or L#-1
1.2 or 34.5E-12

TIME
DATE
TIME-OF-DAY

32
16
32

T#2D_1H_3M_45S_12MS
D#1999-06-14
TOD#12:23:45.12

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.5

Conhecimento em Automao
Training Center

BOOL, BYTE, WORD Variveis do tipo de dado BOOL consiste de um bit, variveis de tipos de
DWORD, CHAR
dados BYTE, WORD, DWORD so seqncias de 8, 16 e 32 bits
respectivamente. Os bits individuais no so avaliados neste tipo de dado.
Formas especiais destes tipos de dados so nmeros BCD e o valor de
contagem usado em conjunto com a funo de contagem, bem como o tipo de
dado CHAR, os quais representam um caractere em cdigo ASCII.
S5TIME

Variveis do tipo de dado S5TIME so requeridas para valores especficos de


temporizao em funes de temporizao (S5 funes de temporizao).
Voc especifica o tempo em horas, minutos, segundos ou milisegundos. Voc
pode entrar com valores de tempo com um underline (1h_4m) ou sem um
underline (1h4m).
As funes FC33 e FC40 da biblioteca convertem S5TIME para formato TIME
e o formato TIME para S5TIME.

INT, DINT, REAL

Variveis deste tipo de dados representam nmeros os quais podem ser


usados em operaes matemticas.

TIME

Uma varivel do tipo de dado TIME formada por uma palavra dupla. Esta
varivel usada, por exemplo, por valores de tempo especfico em funes
de temporizao IEC.
Os contedos das variveis so interpretadas como um nmero DINT em
milisegundos e pode ser positivo ou negativo (p.ex.: T#-1s=L#-1 000,
T#24d20h31m23s647msw = L#214748647).

DATE

Uma varivel do tipo de dado DATE armazenada em uma palavra no


formato de um inteiro no sinalizado. Os contedos da varivel representa o
nmero de dias desde 01.01.1990 (p.ex.: D#2168-12-31 = W#16#FF62).

TIME_OF_DAY

Uma varivel do tipo de dado TIME_OF_DAY formada por uma palavra


dupla. Ela contem o nmero de millisegundos desde o incio do dia (0:00
horas) na forma de um nmero inteiro no sinalizado (p.ex.:
TOD#23:59:59.999 = DW#16#0526_5B77).

Siemens Ltda.
Training Center

Pgina 5

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Importncia dos Tipos de Dados Complexos


Motor: STRUCT

" Melhor" estruturao


de Dado:
 Adaptado para a tarefa
 com "correto" tipo de dado

Set_speed:

REAL

Actual_speed: REAL
Enable:

BOOL

Disturbance:

BOOL

END_STRUCT

Forma Compacta de Dado passado


na chamada em um Bloco:
 "muitos" itens de dados podem
ser passados em um parmetro
 Possibilidade de fazer
programao estruturada
 blocos "comunicam"
somente via barramento de
parmetros
 software reutilizvel

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

in
Drive
UDT1
out ...
...
stat Control. FB1

.
.
CALL #Controller
5
Motor:="Hall_1".M5
...

in Motor UDT1
out ...
...
.
.
A #Motor.Enable
.
.

.
.

04.10.2007
PRO2_05P.6

Conhecimento em Automao
Training Center

Tipos de dados
Complex

Tipos de dados complexos (arrays e estruturas) resultam de agrupamento de


dados elementares ou tipos de dados complexos.
Tipos de dados complexos so usados para organizao de dados
complexos. Neste caminho, o programador pode gerar tipos de dados para
atender a tarefa particular. Ele pode combinar unidades de informaes
elementares logicamente relacionadas com uma nova unidade que possua
seu prprio nome.
Um tpico exemplo para uma estrutura o arquivo de dados para um drive. O
drive descrito como um arquivo de atributos (propriedades, estados), como
#Set_speed, #Actual_speed, #Enable and #Disturbance. Muitos destes
atributos podem ser na forma de estruturas.
Um #Disturbance pode, por exemplo, ser construdo por componentes
individuais (bits) os quais constituam mais informaes exatas para o usurio
a respeito da causa do distrbio.

Programao
Estruturada

Dados complexos, em particular, podem ser passados em uma chamada de


um bloco como uma unidade, isto , em um parmetro do bloco chamado.
Desta forma, uma multiplicidade de unidades de informaes elementares
podem ser transferidas entre a chamada e o bloco chamado de modo
elegante e compacto.

Software
Reutilizvel

Este tipo de transferncia de dados possibilita a criao de programao


estruturada e garante um alto grau de reutilizao de software criado uma
nica vez.
A tarefa a ser automatizada dividida em blocos individuais. Na listagem do
bloco chamado, nenhum acesso a endereos globais, como Memrias M ou
variveis em DBs globais so executadas. O processamento da informao
executada exclusivamente com parmetros, nos quais dados relevantes do
processo so passados.
Os resultados do processamento so retornados nos parmetros do bloco
chamado.

Siemens Ltda.
Training Center

Pgina 6

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Tipos de Dados Complexos no STEP 7


Dimenso
(em bits)

Palavra chave
DATE_AND_TIME
(Data e Horrio)

DT#99-06-14-12:14:55.0

64

STRING
(Caracter string com
mx. 254 caracteres)

8 * (nmero de
caracteres +2)

ARRAY
(Grupo de elementos
do mesmo tipo de dado)

definido pelo
usurio

STRUCT
(Estrutura, Grupo de
elementos de diferentes
tipos de dados)

definido pelo
usurio

UDT
(User Defined Data Type =
"Template" constitudo de
tipos de dados elementares
e/ou complexos)

definido pelo
usurio

SIMATIC S7
Siemens AG 1999. All rights reserved.

Arrays e
Estruturas

Exemplo

Date:
File:

Isto uma string


SIEMENS
Meas_vals: ARRAY[1..20]
INT

Motor: STRUCT
Speed : INT
Current : REAL
END_STRUCT
UDT como bloco
STRUCT
Speed : INT
Current : REAL
END_STRUCT

04.10.2007
PRO2_05P.7

UDT como elemento array


Drive: ARRAY[1..4]
UDT1

Conhecimento em Automao
Training Center

Com auxlio de ARRAYs (Field - campos), diversos objetos do mesmo tipo


podem ser combinados dentro de um tipo de dado. Um ARRAY um tipo de
dado que consiste de um nmero fixo de elementos de um tipo de dado. Um
ndice designado para cada elemento de um ARRAY. O ndice usado para
acessar o elemento.
Um exemplo de um ARRAY uma srie de medies, a qual constituda de
um nmero fixo de valores de medio individual.
Da mesma forma que um ARRAY permite a combinao de elementos de
mesmo tipo em um conjunto, os tipos de dados STRUCT (estrutura) habilitam
a unio de elementos de diferentes tipos de dados.
Tipos de dados complexos so pr definidos. Os tipos de dados
DATE_AND_TIME tem uma dimenso de 64 bits. A dimenso dos tipos de
dados ARRAY, STRUCT e STRING so definidas pelo usurio.

Tipo de dado
Com a ajuda dos tipos de dados definidos pelo usurio (UDT), voc pode
definido pelo usurio definir tipos de dados especiais (estruturas) que podem ser ento usadas to
freqntemente quanto voc queira na declarao de parmetros e variveis.
A estrutura de dados armazenada em um bloco UDT (UDT1 ... UDT65535)
e pode ser usado como um "template" na declarao do tipo de dado de
uma varivel ou um parmetro em OBs, FCs, FBs e DBs.
Com a ajuda de UDTs, voc pode salvar tempo de digitao uma vez que a
mesma estrutura solicitada diversas vezes.
Exemplo: Voc requer a mesma estrutura 10 vezes em um bloco de dados.
Primeiro voc define a estrutura e a salva como UDT1, por exemplo.
No DB, voc define a varivel "Drive como um array com 10 elementos do
tipo UDT1:
Drive: array[1..10]
UDT 1
Ento, voc criou faixas de 10 dados com a estrutura definida em UDT 1 sem
digitao adicional.
Siemens Ltda.
Training Center

Pgina 7

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Tipos de Parmetros no STEP 7


Palavra chave
TIMER

COUNTER

BLOCK_FB
BLOCK_FC
BLOCK_DB
BLOCK_SDB
Pointer

ANY

SIMATIC S7
Siemens AG 1999. All rights reserved.

Dimenso
(em bits)

Exemplo

16

Contact time: TIMER


.
SI #Contact_time

16

NoCompParts: COUNTER
.
LC #No_Comp_Parts

16

Recall: BLOCK_FB
.
UC #Recall

48

Measure: POINTER
.
L P##Measure
.

80

Measured Values: ANY


.
L P##Meas_Values
.

Date:
File:

04.10.2007
PRO2_05P.8

Conhecimento em Automao
Training Center

Tipos de
Parmetros

Adicionalmente aos tipos de dados elementares e complexos, voc pode


definir tipos de parmetros para os parmetros dos FCs e FBs. Com este
parmetro formal, voc pode ento executar as mesmas instrues como
com os endereos atuais.
Estes parmetros formais devem ento serem alimentados com parmetros
atuais associados durante a chamada de um bloco.

TIMER e
COUNTER

Estes tipos de parmetros definem um parmetro formal do tipo TIMER ou


COUNTER.

BLOCK_xx

Com a ajuda dos tipos de parmetros BLOCK_FB ou Block_FC, blocos de


programa podem ser passados como parmetros para chamada de blocos.
De qualquer maneira, somente estes blocos (FBs, FCs) osquais no tem
controle sobre parmetros ou variveis estticas (BLOCK_FB) podem ser
passados.
Os blocos lgicos formais podem somente ser chamados usando as
instrues UC e CC (no CALL) dentro da chamada de bloco.
No existem restries para a passagem dos blocos de dados (DB, Sdb) e
para as instrues associadas (p.ex.: OPN ).

POINTER

POINTER usado quando tipo de dado any pode ser o tipo de dado do
parmetro atual. O POINTER contem o endereo inicial completo (nmero do
DB, rea de dado, endereo do byte e endereo do bit) do parmetro atual.
Voc pode determinar um parmetro formal do tipo POINTER pela atribuio
do endereo do parmetro atual, p.ex.: P#M50.0.

ANY

ANY usado quando o tipo de dado any pode ser o tipo de dado do
parmetro atual. Em adio ao endereo inicial completo, informaes sobre
o tipo de dado e a dimenso tambm passado em um ponteiro tipo ANY.
P#M10.0 Byte 10 (Campo de 10 componentes do tipo de dado BYTE
comeando com MB 10).

Siemens Ltda.
Training Center

Pgina 8

ST-7PRO2
Tipos de Dados e Variveis STEP 7

reas para gravao de Variveis

memria M
PIQ

DBz

PII

DBy

SIMATIC S7
Siemens AG 1999. All rights reserved.

DBx

rea (P) I/O

reas "clssicas"
de PLCs

Pilha de
dado local

Date:
File:

04.10.2007
PRO2_05P.9

blocos de dados

Conhecimento em Automao
Training Center

Vista Geral

A parte dos blocos de programa, um programa do usurio tambm consiste de


dados contendo informaes sobre estados do processo, sinais, etc., os quais
so ento processados de acordo com as instrues no programa do usurio.
Variveis podem ter uma localizao de memria permanente na imagem de
processo, rea de endereo de memria M ou em DBs ou eles podem ser
parametrizados dinamicamente durante a execuo do programa na Pilha L.

PII, PIQ, Memria M


I/O

Variveis elementares podem ser declaradas na tabela de smbolos globais da


pasta de programa. Adicionalmente ao nome simblico da varivel, voc deve
tambm dar uma rea de memria consistindo do identificador de rea e
dimenso, bem como um tipo de dado (p.ex.: FullCrate MW 10 INT).
Diferentemente da tabela de smbolos no STEP 5 (Assignment List), o editor de
programas permite no somente o uso do nome simblico como tambm o
endereo absoluto. Ele tambm monitora o uso correto da varivel quando
parmetros so atribudos na chamada de blocos (teste do valor digitado).
As variveis que so declaradas na tabela de smbolos globais so globais.
Todos os blocos na pasta de programa podem acess-la.

Pilha de Dados Local A Pilha de Dados Local (L stack) uma rea para armazenamento:
variveis temporrias de um bloco lgico, incluindo informaes de partida
de OB
parmetros atuais podem ser passados quando chamando funes
resultados lgicos intermedirios em programas LAD
reas na pilha L para variveis so atribudas dinamicamente quando o
programa executado no bloco e so habilitadas uma vez novamente depois
da execuo do bloco.
Blocos de Dados

Siemens Ltda.
Training Center

DBs so blocos usados pelos blocos lgicos para armazenamento de dados


pelo programa do usurio. Diferentemente das variveis temporrias, o
contedo das variveis nos DBs no so sobrescritas quando a execuo do
bloco completada.

Pgina 9

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Funcionamento da metodologia da Pilha de Dados Local


FB1

OB1
.
.
CALL FB1
.
.

.
.
CALL FC5
.
.

.
.
CALL FC10
.
.

LD for OB1

FC10

Alocao
da Pilha L
para OB1

FC5
2

LD for OB1

LD for OB1

LD for OB1

LD for FB1

LD for FB1

LD for FB1

LD for OB1

LD for OB1

LD for OB1

LD for FC10
LD for FC5

livre

livre

livre

livre

livre

livre

livre

p.ex. 256 Bytes


Incio do ciclo

LD= Dado Local

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.10

Conhecimento em Automao
Training Center

Pilha de Dados Local Para cada classe de prioridade, isto , para cada OB alocada sua prpria
Pilha L para variveis temporrias dos OBs ou dos blocos chamados
adicionalmente.
Antes de um bloco (OB, FB ou FC) ser processado, o sistema reserva
memria dinmica na Pilha L para variveis temporrias declaradas na parte
da declarao dos blocos. A memria habilitada aps BE (fim de bloco).
Seqncia

3
4
5

Vantagem

Siemens Ltda.
Training Center

O slide acima mostra uma seqncia tpica de execuo cclica do OB1.


Antes do OB1 ser processado, o sistema operacional reserva (aloca) espao
de memria para as variveis temporrias do OB1. Junto as variveis
temporrias declaradas pelo usurio, uma rea de 20 byte tambm
reservada e inicializada para informaes de partida.
Antes da execuo do FB1, o sistema operacional reserva memria para as
variveis temporrias do FB1. A respectiva rea de memria alocada logo
em seguida da memria para as variveis temporrias do OB1.
Antes da execuo do FC5, o sistema operacional reserva memria para as
variveis temporrias do FC5. A respectiva rea de memria alocada logo
em seguida da memria para as variveis temporrias do FC1.
Aps a concluso do FC5, a memria associada habilitada novamente.
Aps a concluso do FB1, a memria associada habilitada novamente.
Agora o sistema operacional reserva memria para o FC10. Esta rea Now
the operating system reserves memory for the FC10. Esta rea de memria
alocada logo em seguida da memria para as variveis temporrias do OB1.
Deste modo o espao exato de memria, que j havia sido usado
previamente pelo FB1 e FC5, sobrescrito pelas variveis temporrias
originais do FB1 e FC5.
O gerenciamento da memria temporria realizada pelo sistema
operacional e no pelo programa do usurio (erros de programao).
Se a respectiva classe de prioridade interrompida por um OB com outra
classe de prioridade, os dados locais no necessitam serem salvos. Os vrios
OBs so alocados, neste caso, em sua prpria pilha de dados local.
Pgina 10

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Exemplo: Utilizao como memria para rascunho


Ramificao em LAD

Representao STL

Locais de ramificao
Variveis auxiliares da
Pilha de Dados Local

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.11

Conhecimento em Automao
Training Center

Ramificao no
Editor LAD

O exemplo acima mostra exemplo da representao de ramificao, como


ela pode agora ser programada pelo usurio com ajuda do Editor LAD do
STEP 7 pela insero de bobinas de sada adicionais (p.ex. Q 0.7).

Memria Rascunho
e Conectores

Com STEP 5, a programao de uma ramificao no era diretamente


possvel. O usurio deve inserir uma varivel auxiliar, como regra um bit de
memria (conector), para a localizao do ponto de ramificao do network.
No prximo segmento um para cada ramificao adicional esta varivel
auxiliar ento usada em cada caso como uma entrada e escaneada.

Editor LAD

Com a ajuda do Editor LAD, possvel programar as ramificaes diretamene


com STEP 7. Internamente, uma varivel auxiliar um bit da pilha de dados
local tambm usado para localizao da ramificao pelo Editor LAD.
O uso de memria na pilha de dados local garante neste caso, que as duas
variveis auxiliares (L 20.0 e L 20.1) no sejam sobrescritas por blocos
chamados ao mesmo tempo.

Variveis
Temporrias

O usurio pode tambm declarar variveis temporrias na parte de


declaraes e acessar as variveis absolutamente ou simbolicamente, isto ,
atravs do nome identificador especificado.

Siemens Ltda.
Training Center

Pgina 11

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Blocos de Dados (DB)


Acessado por todos os blocos
OB1

Funo
FC10

Dados Globais
DB20

Funo
FC20

DB Instance DB p/ FB1
Bloco de
Funo
FB1

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.12

Dados Instance
DB5

Conhecimento em Automao
Training Center

Vista Geral

DBs so usados para armazenar dados do usurio. Como os blocos lgicos,


os DBs ocupam espao na memria do usurio. Dados variveis (por
exemplo, valores numricos), com os quais o programa do usurio trabalha,
so encontrados no DBs.
O programa do usurio pode acessar dados de um DB via instrues de bit,
byte, word (palavra) ou double word (palavra dupla). Os acessos podem ser
absolutos ou simblicos.

rea de
Aplicao

DBs podem, dependendo de seus contedos, ser instalados pelo usurio em


diferentes modos. Distino feita entre:
Blocos de Dados Globais (compartilhados): Eles contem informaes que
podem ser acessadas por todos os blocos lgicos do programa do
usurio.
Blocos de Dados Instance: Eles so sempre reservados por um FB. Os
dados deste DB somente processado pelo FB associado.

Criao de DBs

DBs Globais so cada um criados usando o Editor DB ou de acordo com um


prdeterminado tipo de dado definido pelo usurio.
Blocos de Dados Instance so gerados ento quando um bloco FB
chamado.

Registrador

A CPU tem dois registradores de DBs, o registrador DB e o registrador DI.


Deste modo dois blocos de dados podem ser abertos ao mesmo tempo.

Siemens Ltda.
Training Center

Pgina 12

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Tipo de Dado: ARRAY


ARRAY (campo):
 Grupo de
componentes do
mesmo tipo de dados
 Declarao:

Meas_value: ARRAY[1..10]
Meas_value[1]:
Real
Meas_value[2]:
Real
Meas_value[3]:
Real
.
.
.
.
Meas_value[10]: Real

Uni dimensional:
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:
 Declarao da varivel:
Uni dimensional: Meas_value: ARRAY[1..10] OF REAL;
Multi-dimensional: Position:
ARRAY[1..5,2..8,...] OF INT;


Acesso uma varivel:


L #Meas_value[5]

// Carrega o quinto elemento do ARRAY


// Meas_value no ACCU1

T #Result[10,5]
SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.13

Conhecimento em Automao
Training Center

Vista Geral

O tipo de dado ARRAY representa um campo com um nmero fixo de


componentes (elementos) do mesmo tipo de dado.
Um campo (=ARRAY) pode ter at 6 dimenses (nmero de ndices). As
seguintes restries se aplicam para os tipos de dados componentes de um
array:
elementares (sem restrio)
complexos (DATE_AND_TIME, STRUCT, UDT)
tipos sem parmetros
sem FBs (modelo multi-instance)
Os ARRAYs no podem ser aninhados. O limite da faixa de ndices mnimos e
mximos determinado pela faixa de valores dos INT, isto , de -32768 a
+32767.

Acesso

Instrues STL podem ser usadas para acessar componentes array dos tipos
de dados elementares. Um componente array endereado com o nome
array e um ndice entre colchetes.
O ndice deve ser um valor fixado, isto , um termo constante. Indexao
varivel durante a execuo do programa no possvel em STL..

Nota

Indexao varivel para elementos array individuais somente possvel na


linguagem S7-SCL. Acesso varivel pode somente ser implementada em STL
com a ajuda da memria ou registrador de endereamento indireto.

Siemens Ltda.
Training Center

Pgina 13

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Inicializao e Declarao dos ARRAYs


DB5 "Declaration View"

DB5 "Data View"

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.14

Conhecimento em Automao
Training Center

Vista Geral

No exemplo acima, duas variveis do tipo de dado ARRAY so declaradas no


DB5 com ajuda do Editor de DBs. A criao de uma nova varivel somente
possvel na "Declaration view" do DB (View -> Declaration View):
sequence: ARRAY[1..10] OF REAL
result: ARRAY[1..5,3..7] OF INT

Inicializao
dos ARRAYs

Os componentes array individuais podem ser valores pr atribudos na


declarao (no com parmetros FC, parmetros in/out dos FBs ou variveis
temporrias). A inicializao dos tipos de dados valores devem ser
compatveis com o tipo de dado componente.
A inicializao dos valores so introduzidos na coluna "Initial Value", separado
por uma vrgula. Se diversos componentes sucessivos com o mesmo valor
esto sendo inicializados, um fator de repetio pode ser usado para fazer
isto. O fator de repetio colocado em frente ao valor inicializao que
para ser entrado entre parnteses.
5 (1.23467E+002) // os prximos 5 componentes so inicializados com o
// valor 123.467
15 (7,2,3)
// os prximos 15 elementos so atribudos
// alternativamente com os valores 7, 2 e 3
O resultado da inicializao pode ser checada ou alterada no "Data View"
(View -> Data View). Se o nmero da inicializao menor que o nmero de
componentes, somente o primeiro pr atribudo e o resto so inicializados
com 0.

Exemplo

Aceitao da
Inicializao
dos Valores

Siemens Ltda.
Training Center

Se uma nova inicializao de valores so introduzidos na declaration view,


estas mudanas somente sero efetivadas (validao como actual
values) depois de ser executada a funo do menu Edit -> Initialize Data
Block.
A inicializao de valores do ARRAYs na declarao dos parmetros de
entrada ou sada nos FBs so aceitos como valores atuais em um DB
instance quando estes so gerados.

Pgina 14

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Armazenagem das Variveis ARRAY na Memria


Arrays unidimensionais


Tipo de Dado BOOL


7

Byte n1)
Byte n+1

Arrays multidimensionais


2

8 7 6 5 4 3 2 1
etc.

12 11 10 9

Tipo de Dados BYTE, CHAR


Byte

n1)

Exemplo.
ARRAY[1..2,1..3,1..2] OF BYTE
Byte n1)

Byte 1.1.1

Byte n+1

Byte 1.1.2

Byte n+2

Byte 1.2.1

..
.

Byte 1.2.2

Byte 1

Byte n+1

Byte 2

Byte 1.3.1

Byte n+2

Byte 3

Byte 1.3.2

..
.

Byte 2.1.1
Byte 2.1.2

Tipo de Dado WORD, DWORD,...


Byte n1)

Byte 2.2.1
Byte 2.2.2

Word 1

Byte 2.3.1

Byte n+1
Byte n+2
Byte n+2
1) n

= par

SIMATIC S7
Siemens AG 1999. All rights reserved.

Byte 2.3.2

Byte 3
Word 2

..
.
Date:
File:

04.10.2007
PRO2_05P.15

Conhecimento em Automao
Training Center

Vista Geral

Conhecimento exato do armazenamento das variveis ARRAY na memria


ento necessria quando, durante a execuo do programa, componentes
individuais so acessados usando memria ou registrador de endereamento
indireto.

Armazenamento
de Variveis

Uma varivel ARRAY sempre comea no limite de uma palavra, ou seja, em


um byte com um endereo par. Uma varivel ARRAY ocupa a memria at o
prximo limite de palavra.
Componentes com tipo de dado BOOL comea no ltimo endereo bit
significante, componentes com tipo de dado BYTE e CHAR no endereo byte
significante. Os componentes individuais so listados em seqncia.
Em arrays multidimensionais, os componentes so armazenados linha por
linha comeando com a primeira dimeso. Uma nova dimenso sempre
comea no prximo byte com componentes bit e byte, com componentes de
outros tipos de dados sempre na prxima palavra.

Nota

Os endereos dos componentes individuais ARRAY em um DB so


mostradas no "Data View" na coluna "Address".

Siemens Ltda.
Training Center

Pgina 15

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Tipo de Dado: STRUCT


STRUCT (Estrutura):
 Grupo de componentes
de diferentes tipos
de dados
 Declarao:

Motor: STRUCT
Set_Speed:

Actual_Speed: REAL

StructName: STRUCT
Comp1Name: data type;
Comp2Name: data type;
...
END_STRUCT

SIMATIC S7
Vista Geral

Siemens Ltda.
Training Center

Disturbance:

BOOL

: STRUCT
: BOOL;
: BOOL;
: INT;
: INT;

S #MotorControl.ON
L #MotorControl.ActualSpeed
T #MotorControl.SetSpeed
...

Conhecimento em Automao
Training Center

04.10.2007
PRO2_05P.16

O tipo de dado STRUCT (estrutura) representa um nmero fixo de


componentes, estes podem ter diferentes tipos de dados em cada caso. Uma
estrutura pode ter at 8 nveis de aninhamento.
Uma estrutura pode ser declarada na parte de declarao de um bloco lgico,
em um DB global ou em um tipo de dado definido pelo usurio (UDT).
As seguintes restries so aplicveis em tipos de dados de uma estrutura:

Acesso aos
Componentes

BOOL

Acesso varivel

Date:
File:

Siemens AG 1999. All rights reserved.

Enable:

END_STRUCT

Exemplo:
 Declarao de uma varivel:
MotorControl
ON
OFF
SetSpeed
ActualSpeed
END_STRUCT;

REAL

elementares (sem restries)


complexos (DATE_AND_TIME, ARRAY, STRUCT, UDT)
sem tipo de parmetros
sem FBs (modelo multi-instance)

Instrues STL podem ser usados para acessar componentes (tipos de


dados elementares) de uma estrutura. Um componente de estrutura
endereado usando:
StructureName.ComponentName
Um ponto deve ser inserido entre StructureName e ComponentName como
um separador.
Se o tamanho do aninhamento da estrutura maior, isto , componentes da
estrutura so por vezes estruturas, ento o acesso aos menores
componentes da estrutura possvel usando o name path, como:
StructureName.ComponentName.SubcomponentName. ...
Um ponto deve ser inserido entre os nomes dos componentes e
subcomponentes em cada caso.

Pgina 16

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Declarao dos STRUCTs


Exemplo: Declarao de um Array - Structure - Array
DB6 "Declaration View"

DB6 "Data View"

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.17

Conhecimento em Automao
Training Center

Vista Geral

No exemplo acima, um ARRAY [1..4] com dimenso nica com componentes


do tipo STRUCT declarada dentro do DB6 ("Hall_1") com o Editor de DBs.
A estrutura por vezes consiste de trs componentes dos quais os dois
primeiros, isto , STARTe STOP tem o tipo de dado BOOL. O terceiro
componente tem o tipo de dado ARRAY[1..10].
Os componentes deste tipo de dado ARRAY[1..10] so por vezes do tipo
STRUCT com os componentes REAL "Cutoffpoint_front", "Cutoffpoint_ back"
e "Stoppingpoint" .

Acesso

Os componentes individuais podem ser endereados como abaixo, por


exemplo:
L "Hall_1".Axis[3].Position[7].Cutoffpoint_back
S "Hall".Axis[2].START, etc.

Inicializao
de STRUCTs

Os componentes individuais da estrutura podem ser pr atribudos valores


na declarao (coluna Initial Value). Os seguintes parmetros ou variveis
no podem ser inicializados:
parmetros input, output e in/out dos FCs
parmetros in/out nos FBs
dados locais nos OBs, FBs e FCs
A inicializao dos valores dos tipos de dados devem ser compatveis com os
tipos de dados.

Aceitao da
Inicializao
de Valores

Se novos valores de inicializao so introduzidos na declaration view de


DBs, estas mudanas somente sero efetivadas (validao como actual
values) depois de ser executada a funo do menu Edit -> Initialize Data
Block.
A inicializao de valores do STRUCTs na declarao dos parmetros de
entrada ou sada nos FBs so aceitos como valores atuais em um DB
instance quando estes so gerados.

Siemens Ltda.
Training Center

Pgina 17

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Armazenagem das Variveis STRUCT na Memria


Estrutura com tipo de
dados elementares
7

Byte n1)

Estrutura com tipo de


dados complexos

Byte de enchimento

Byte n+2

Byte 1

Byte n+3

Byte 2

Byte n+4

Byte 3

Byte n+5

Byte de enchimento

Byte n+7
Byte n+8

Limite de palavra

6 5 4 3 2 1

Byte n+1

Byte n+6

Componentes
com tipos de
dados elementares
Limite de palavra
Componentes
com tipos de
dados ARRAY

6 5 4 3 2 1
Byte de enchimento

Limite de palavra

Word 1

Componentes
com tipos de
dados STRUCT

Byte n+9

..
.

Byte 3
Word 2

..
.
1) n

..
.

= par

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.18

Conhecimento em Automao
Training Center

Vista Geral

Conhecimento exato do armazenamento das variveis STRUCT na memria


ento necessria quando, durante a execuo do programa, componentes
individuais so acessados usando memria ou registrador de endereamento
indireto.

Armazenamento
de Variveis

Uma varivel STRUCT sempre comea no limite de uma palavra, ou seja,


em um byte com um endereo par. Subsequentemente, componentes
individuais so ento locados em seqncia de sua declarao na memria.
Uma varivel STRUCT ocupa a memria at o prximo limite de palavra.
Componentes com tipo de dado BOOL comea no ltimo endereo bit
significante, componentes com tipo de dado BYTE e CHAR em um endereo
byte par. Componentes com outros tipos de dados sempre comeam em um
limite de palavra.

Siemens Ltda.
Training Center

Pgina 18

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Tipos de Dados Definido pelo Usurio: UDTs


UDT tipos de dados definidos pelo usurio:
cria um template
para posterior uso
em declaraes
 globalmente vlido para todos os
blocos da pasta de programa


Exemplo:
Definio de um novo tipo de dado (Estrutura):
UDT1 STRUCT
SetSpeed
: REAL;
...
ActualSpeed : REAL;
Enable
: BOOL;
Disturbance : BOOL;
END_STRUCT;
 Declarao das variveis:
 Motor_1:
UDT1;
Motor_2:
UDT1;
 Acesso a variveis:
 L #Motor_1.ActualSpeed


SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.19

UDT1: STRUCT
Set_Speed:

REAL

Actual_Speed: REAL
Enable:

BOOL

Disturbance:

BOOL

END_STRUCT

Conhecimento em Automao
Training Center

Vista Geral

Quando uma estrutura de dados se repete freqentemente em um programa


do usurio ou quando uma estrutura de dados est sendo dado seu prprio
nome, ento STEP 7 permite ao usurio definir tipos de dados (UDT = User
Defined Data Type tipo de dados definidos pelo usurio) prprios (como
typedef em linguagem de alto nvel "C").
Atravs de tipos de dados relacionados aplicao, uma tarefa a ser
resolvida pode ser programada mais eficientemente. Usurios como
fabricantes de mquinas podem ento criar tipos de dados especficos para
seus projetos.

Criao de UDTs

UDTs so criadas com o Editor de DB ou com o Editor de Textos e ento


armazenar na pasta de blocos como um bloco (UDT1 ... UDT65535).
Um nome simblico pode ento ser atribudo para este UDT ou estrutura de
dados relacionados na tabela de smbolos globais. Um "template" validado
globalmente criado atravs de um UDT, o qual pode ento ser usado to
freqentemente como desejado na declarao de novas variveis ou para
criao de DBs globais.

Siemens Ltda.
Training Center

Pgina 19

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Uso dos UDTs


UDT5

FC23

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.20

Conhecimento em Automao
Training Center

Vista Geral

No exemplo acima, o UDT5 criado de 4 componentes (SetSpeed,


ActualSpeed, Enable, Disturbance) para uma estrutura de acionamentos
(drives) e ento inserido em um FC23 na declarao de parmetros in/out.
Um ARRAY unidimensional com 10 componentes do tipo de dado UDT5
declarado no FC23.

Valores Iniciais
para UDTs

Tipos de dados definidos pelo usurio so pr atribudos e ento usados no


programa do usurio exatamente como estruturas. A estrutura de um UDT a
mesma que a de um STRUCT. A declarao das variveis, que podem ser
processadas pelo programa do usurio, no tem ainda tomado lugar com a
criao de um UDT. O UDT um "template", que voc pode usar to
freqentemente quanto queira para declarao de novas variveis.
Do mesmo modo que com uma estrutura, voc tambm tem a possibilidade
de estabelecimento de valores iniciais nos UDTs. Se o UDT ento usado
para a declarao de uma varivel, o contedo destas variveis so
inicializados com valores iniciais do UDT (no para parmetros em FCs, para
parmetros in/out dos FBs e variveis temporrias).

Criao de DBs

Um UDT pode tambm ser usado como um modelo para criao ( Dilogo:
New Data Block ) de um DB global. Neste caso, um DB criado com a
mesma estrutura e com os valores iniciais do respectivo UDT.

Siemens Ltda.
Training Center

Pgina 20

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Tipo de Dado: DATE_AND_TIME


Estrutura:
Byte n1)

Ano
(90 ... 89)

Byte n+2

Dia
(01 ... 31)

Hora
(00 ... 23)

Byte n+3

Byte n+4

Minuto
(00 ... 59)

Segundo
(00 ... 59)

Byte n+5

Byte n+6

1) n

Ms
(01 ... 12)

Milisegundos
(000 ... 999)

Dia da
semana

(1..7)

Byte n+1

Byte n+7

1=Domingo
2=Segunda-feira
3=Tera-feira
4=Quarta-feira
5=Quinta-feira
6=Sexta-feira
7=Sbado

Todos os valores so salvos no formato BCD

Formao da varivel:
DT#Ano-Ms-Dia-Hora:Minutos:Segundos.[Milisegundos]
Exemplo: DT#1998-03-21-17:23:00:00

Processamento atravs de funes na biblioteca IEC

= par

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.21

Conhecimento em Automao
Training Center

Vista Geral

O tipo de dado DATE_AND_TIME representa um instante, consistindo de data


e horrio do dia (time-of-day). A abreviao DT pode tambm ser usada em
vez de DATE_AND_TIME.
DATE_AND_TIME ou DT so palavras chaves e podem portanto tambm
serem escritas em baixo nvel.

Pr ajuste

Uma varivel pode ser presetada com um valor inicial na declarao (no
como parmetro de bloco em um FC, como parmetro in/out em um FB ou
como varivel temporria).
O formato deve ser do tipo:
DT#Ano-Ms-Dia-Horas:Minutos:Segundos.Milisegundos
Especificao de milisegundos pode ser suprimida.

Processamento

Variveis do tipo de dado DATE_AND_TIME podem ser processadas cada


uma com a ajuda de acesso absoluto aos componentes individuais ou as
funes da biblioteca IEC.

Nota

O corrente horrio do dia (time-of-day) do relgio de tempo real da CPU


pode ser lido com o SFC1 (READ_CLK). O horrio retornado pelo SFC1
como um parmetro de sada do tipo DATE_AND_TIME.

Siemens Ltda.
Training Center

Pgina 21

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Funes para Processamento de Variveis DT


Biblioteca IEC-Library nas Bibliotecas Standard V3.x
 FC1 (AD_DT_TM): A funo FC 1 soma um perodo de tempo (formato TIME) a um
instante (formato DT) e retorna um novo instant (formato DT) como um resultado.
 FC34 (SB_DT_DT): A funo FC 34 subtrai dois instantes (formato DT) e retorna
uma durao de tempo (formato TIME) como um resultado.
 FC35 (SB_DT_TM): A funo FC 35 subtrai um perodo de tempo (formato TIME)
de um instante (formato DT) e retorna um novo instante (formato DT) como
resultado.
 FC3 (D_TOD_DT): A funo 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 funo FC 6 extrai o formato de dados DATE do formato
DATE_AND_TIME.
 FC7 (DT_DAY): A funo FC 7 extrai o dia da semana do formato
DATE_AND_TIME.
 FC8 (DT_TOD): A funo FC 8 extrai o formato de dado TIME_OF_DAY do formato
DATE_AND_TIME.
 Funes de comparao para variveis DT#Variables: FC9 (EQ_DT), FC12
(GE_DT),
FC14 (GT_DT), FC18 (LE_DT), FC23 (LT_DT), FC28 (NE_DT)

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.22

Conhecimento em Automao
Training Center

Vista Geral

Com a instalao do STEP7, a biblioteca Standard Library V3.x com a sub


biblioteca de Converso de Blocos IEC tambm instalada, a qual contem
funes para processamento de tipos de dados IEC.
Funes para processamento de variveis do tipo DATE_AND_TIME tambm
esto nesta biblioteca.

Notas
FC1, FC35

Quando usando FC1, FC3 e FC34 os seguintes pontos devem ser


observados:
O instante (Parmetro T) deve estar dentro da faixa DT#1990-01-0100:00:00.000 e DT#2089-12-31-23:59:59.999. A funo no verifica o
parmetro de entrada.
Se o resultado da adio ou subtrao no estiver dentro da faixa
especificada acima, o resultado limitado ao respectivo valor e o resultado
binrio BR fixado em 0.

FC34

Os instantes devem estar dentro da faixa DT#1990-01-01-00:00:00.000 e


DT#2089-12-31-23:59:59.999. A funo no verifica o valor inserido. Se o
primeiro instante (Parmetro T1) maior (mais novo ou recente) do que o
segundo (Parmetro T2), o resultado positivo. Se o primeiro instante
menor (mais velho) do que o segundo, o resultado negativo.
Se o resultado da subtrao estiver fora da faixa de nmeros TIME, o
resultado limitado ao respectivo valor e o resultado binrio fixado em 0.

FC3, FC6, FC7, FC8

Estes valores de funes no reportam qualquer tipo de erro. O usurio se


responsabiliza pela correta insero de valores vlidos na entrada.

Funes de
Comparao

As funes de comparao tambm no realizam qualquer avaliao de


Os respectivos sinais de comparao da funo na sada RET_VAL indica se
a comparao foi satisfeita (RET_VAL=TRUE) ou no (RET_VAL=FALSE).

Siemens Ltda.
Training Center

Pgina 22

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Tipo de Dado: STRING


Variveis do tipo STRING (caracter string):
Tipo de dado STRING representa um caracter string com at 254 caracteres
 Aplicao: Manipulao de mensagens de texto
 Declarao:
 StringName: STRING[maxNo]:
'Initializationtext'
(varivel String para at maxNo caracteres, maxNo: 0... 254)
 StringName: STRING:
'Initializationtext'
(varivel String para at 254 caracteres)


Exemplos:
Declarao de variveis:
 Fault signal :
STRING
'Motor failure_4'
(varivel Fault signal inicializada com o texto acima)
 Warning : STRING[50] ' '
("empty" varivel 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
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.23

Conhecimento em Automao
Training Center

Vista Geral

O tipo de dado String usado para armazenamento de caracteres strings


(p.ex.: mensagens de texto). Neste caminho, uma simples (mensagem)
sistema de processamento de palavras pode ser implementado em uma CPU
S7. O tipo de dado STRING representa um caracter string com at 254
caracteres.
O nmero especificado entre colchetes na declarao(1..254) dando o
nmero mximo de caracteres que podem ser salvos na varivel STRING. Se
esta informao violada, o Editor STL/LAD/FBD assume um comprimento
de 254 caracteres.

Acesso as
Variveis STRING

Os caracteres individuais de uma varivel STRING pode ser acessada com


a ajuda de instrues elementares STL, como:
L StringName[5]
// carrega o quinto caracter que est armazenado na
// varivel
O processamento das variveis STRING atuais (mensagem de texto)
possvel usando FCs da biblioteca IEC.

Inicializao

Na declarao, as variveis do tipo de dado STRING podem ser pr


atribudas com texto de partida (no como parmetros de FCs, como
parmetros de um FB ou como variveis temporrias). A inicializao feita
com caracteres ASCII. Se caracteres especiais para controle so includos,
ento o caracter dolar ($) deve ser colocado em frente.
Caracteres especiais utilizveis so:
$$
caracter dolar simples
$L, $l
line feed (LF) (pula linha)
$P, $p
page feed (pula pgina)
$R, $r
carriage return (trmino de linha)
$T, $t
tabulator (tabulador)

Siemens Ltda.
Training Center

Pgina 23

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Armazenagem das Variveis STRING na Memria


Exemplo:


Declaration with initialization




1) n

Nome dado: STRING[8]: 'OTTO'

Varivel STRING armazenada "Nome dado"


Byte n1)

mx. comprimento= 8

epecifica o nmero mx. De caracteres salvos, ou seja,


a dimenso especificada na declarao

Byte n+1

comprim. corrente= 4

especifica o caracter corrente salvo na varivel STRING

Byte n+2

1o caracter = 'O'

Byte n+3

2o caracter = 'T'

Byte n+4

3o

caracter = 'T'

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

A informao sobre o mximo nmero de caracteres


salvos ou sobre o tamanho corrente avaliado por
funes na biblioteca IEC.

..
.

= par

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.24

Conhecimento em Automao
Training Center

Vista Geral

Uma varivel do tipo de dado STRING tem no mximo 256 bytes de


comprimento, pelo qual at 254 so "net data", isto , caracteres que podem
ser aceitos.

Armazenamento
de Variveis

Variveis STRING sempre comeam em uma palavra limite, isto , em um


byte com endereo par.
Na determinao de variveis, seu mximo comprimento inserido no
primeiro byte da varivel de acordo com a declarao de variveis. Da
mesma forma, na pr atribuio ou no processamento, o comprimento
correntemente utilizado, que o comprimento dos caracteres string salvos
inserido no segundo byte com a ajuda das funes da biblioteca IEC.
Ambas informaes so necessrias para as funes da biblioteca IEC no
processamento de variveis STRING.
Subseqentemente, os caracteres que se seguem esto no formato ASCII.
Os caracteres no preenchidos na varivel STRING so preenchidos com
W#16#00 na inicializao.

Passagem de
Parmetros

Variveis do tipo de dado STRING podem ser passadas da mesma forma


que variveis ARRAY ou STRUCT para os parmetros dos blocos com o
mesmo tipo de dado, isto , o mesmo comprimento STRING.
Uma passagem de parmetros para FC ou FB com tipo POINTER ou ANY
tambm possvel.

Siemens Ltda.
Training Center

Pgina 24

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Funes para Processamento de Variveis STRING


Biblioteca IEC na biblioteca Standard Library V3.x


FC2 (CONCAT): A funo FC2 combina duas variveis STRING no caracter string.

FC4 (DELETE): A funo FC 4 delete caracteres L como o ensimo caracter no


caracter string.

FC11 (FINF): A funo FC 11 entrega a posio do segundo caracter string dentro


do primeiro caracter string.

FC17 (INSERT): A funo FC 17 insere o caracter string do parmetro IN2 dentro


do caracter string do parmetro IN1 aps o ensimo caracter.

FC20 (LEFT): A funo FC 20 entrega o primeiro caracter L de um caracter string.

FC21 (LEN): A funo FC 21 calcula o comprimento do caracter string (nmero de


caracteres vlidos).

FC26 (MID): A funo FC 26 entrega a seo mdia do caracter string

FC31 (REPLACE): A funo FC 31 troca caracteres L do primeiro caracter string


(IN1) como o ensimo caracter (incluso) com o segundo caracter string (IN2).

FC32 (RIGHT): A funo FC 32 entrega o ltimo caracter L de um caracter string.

Funes de comparao de variveis STRING: FC10 (EQ_STRING), FC13


(GE_STRING), FC15 (GT_STRING), FC19 (LE_STRING), FC24 (LT_STRING),
FC29 (NE_STRING)

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.25

Conhecimento em Automao
Training Center

Vista Geral

Com a instalao do STEP7, a biblioteca Standard Library com a sub


biblioteca IEC Blocos de Converso tambm instalada, a qual contem
funes para o processamento de tipos de dados IEC.

Notas

As funes, em geral, realizam avaliao de erro com a ajuda de detalhes


sobre o mximo comprimento ou comprimento atual utilizado. Se as funes
reconhecem um erro, ento, geralmente, o bit BR fixado em 0. Uma
descrio detalhada das funes individuais podem ser encontradas na ajuda
Online da biblioteca IEC.

Comparao
Functions

As funes de comparao realizam comparaes lxico grficas do


caractere string. Os caracteres so, comeando da esquerda, comparados
com seus cdigos ASCII (p.ex.: a maior que A e A menor que B).
O primeiro caractere diferente determina o resultado da operao. Se a
poro esquerda de um caractere string longo idntico ao caractere string
mais curto, ento o caractere string considerado maior.
As funes no sinalizam qualquer erro. O respectivo sinal da funo de
comparao no retorno de valor RET_VAL informa (RET_VAL=TRUE) se a
comparao acusa igualdade ou diferena (RET_VAL=FALSE).

Siemens Ltda.
Training Center

Pgina 25

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Exerccio 5.1: Uso dos Tipos de Dados Complexos


UDT99 "Motor"

DB51 "Conv_area_Motors"

...
Hall_1

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.26

Conhecimento em Automao
Training Center

Objetivo:

Tornar-se familiarizado com os tipos de dados complexos STRUCT, bem


como com manipulao de UDTs.

Tarefa

Em transportadores de rea em unidade de moagem, 20 motores do mesmo


tipo so ativados. O gerenciamento dos dados do motor mostrado toma lugar
para cada caso em um ARRAY por rea de transportadores.
De outro modo, a estrutura de dados de cada motor individualmente so
idnticos, ento eles sero armazenados em um UDT.
O arquivo de dados do motor consiste das seguintes informaes:
SetSpeed (REAL):
Velocidade especificada pela sala de controle
ActualSpeed (REAL): Velocidade atual medida
SetActDiffMax (REAL): A mxima porcentagem de desvio entre o valor
desejado e o valor real especificado para garantir
qualidade
Enable (BOOL):
Sinal de habilitao especificado pela sala de
controle
Disturbance (BOOL): Sinal OK retornado para sala de controle

O que fazer

1. Antes de mais nada, criar um UDT99 "Motor" com a estrutura desejada.


2. Inicializar os valore inseridos no UDT99 como abaixo:
- SetSpeed:
0.0
- ActualSpeed:
0.0
- SetActDiffMax: 0.05
(significa mx. 5% de desvio)
- Enable:
FALSE
- Disturbance:
TRUE
3. Ento criar um "Conv_Area_Motors". Dentro do DB51 declarar duas
variveis ConvArea_1_Motor e ConvArea_2_Motor do tipo
ARRAY[1..20] e tipos de componentes UDT99.
4. Checar o contedo do DB51 no data view.

Siemens Ltda.
Training Center

Pgina 26

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Exerccio 5.2: Acessando Tipos de Dados Complexos

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_05P.27

Conhecimento em Automao
Training Center

Objetivo:

Tornar-se familiarizado com acesso a parmetros e variveis de tipos de


dados complexos, bem como com sua declarao usando UDT.

Tarefa

O modo de operao dos motores individuais nas reas operacionais esto


sendo monitorados com a funo FC52.
O FC52 tem as seguintes propriedades:
FC52 conta com arquivo de dados de qualquer motor no parmetro de
entrada #Motor (UDT99).
FC52 entrega, no parmetro de sada #Motor_OK (BOOL), o valor TRUE,
se o bit Disturbance no for setado e a porcentagem do desvio entre
SetSpeed e ActualSpeed for menor que SetActDiffMax do arquivo de
dados que est sendo passado.
Adicionalmente, FC52 faz avaliao da diferena entre SetSpeed e
ActualSpeed como um nmero DINT ou como um nmero codificado
BCD no parmetro de sada #SetActDiff (DINT) e SetActDiffDisp
(DWORD).
No caso de ser ultrapassada faixa para cima ou para baixo na converso
de DINT ou DWORD para nmero REAL passado, FC52 seta o bit BR
para "0".

O que fazer

1. Criar um FC52 com as propriedades desejadas.


2. Chamar FC52 no OB1. Alimentar o parmetro de entrada #Motor com o
arquivo de dados do stimo motor da ConvArea_2.
Ler o sinal de sada #Motor_OK na sada Q8.0.
Tambm alimentar o parmetro de sada #SetActDiff e #SetActDiffDisp
com o parmetro atual MD0 e QD10 (display digital).
3. Transferir os blocos para a CPU.
4. Testar FC52 com a ajuda da funo "Monitor/Modify Variable",
especificando diferentes valores para os respectivos arquivos de dados.

Siemens Ltda.
Training Center

Pgina 27

ST-7PRO2
Tipos de Dados e Variveis STEP 7

Exerccio Adicional 5.3: Lendo Time-of-Day com SFC 1 (READ_CLK)

SFC1
EN

ENO
RET_VAL

??.?

CDT

??.?

Parameter
Parameter
CDT

Declaration Data Type


OUTPUT
DATE_AND_TIME (DT)

Memory Area
D, L

RET_VAL

OUTPUT

I, Q, M, D, L

SIMATIC S7
Siemens AG 1999. All rights reserved.

INT

Date:
File:

04.10.2007
PRO2_05P.28

Description
Output of the current time-of-day and
the current date
Return value of SFC

Conhecimento em Automao
Training Center

Objetivo:

Tornar-se familiarizado com tipos de dados complexos DATE_AND_TIME.

Tarefa

Criar um FC53 com a seguinte funcionalidade:


O FC53 l o horrio do dia (time-of-day) da CPU com a ajuda da funo
do sistema SFC51.
As horas e minutos so mostradas no display digital.

O que fazer

1. Criar um bloco FC53 com a funcionalidade acima.


2. Chamar o FC53 no OB1.
3. No SIMATIC Manager, checar, com ajuda da opo do menu
PLC -> Set Time and Date, se o relgio da CPU est corretamente
ajustado.
4. Transferir o FC53 e o OB1 para a CPU.
5. Testar o programa.

Siemens Ltda.
Training Center

Pgina 28

ST-7PRO2
Tipos de Dados e Variveis STEP 7