Anda di halaman 1dari 31

Redes Industriais

STEP7
Família S7-300
Família S7-300
Família S7-300

 Mode Selector
– MRES - Memory reset function (Module Reset)
– STOP - Stop mode, the program is not executed.
– RUN - Program execution, read-only access possible from PG.
– RUN-P - Program execution, read/write access possible from PG.
Família S7-300

 Status Indicators (LEDs)


– SF - Group error; internal CPU fault or fault in module with
diagnostics capability.
– BATF - Battery fault; battery empty or non-existent.
– DC5V - Internal 5 VDC voltage indicator.
– FRCE - FORCE; indicates that at least one input or output is
forced.
– RUN - Flashes when the CPU is starting up, then a steady light in
Run mode.
– STOP - Shows a steady light in Stop mode.
 Flashes slowly for a memory reset request,
– Flashes quickly when a memory reset is being carried out,
– Flashes slowly when a memory reset is necessary because a
memory card has been inserted.
Software
Endereçamento – I/O

 Cada módulo de entradas/saídas ocupa 4 bytes se


for digital e 16 bytes se for analógico.
 As cartas de 16 ou 32 entradas ocupam sempre a
mesma quantidade de memória.
Endereçamento – I/O

 Endereçamento do CPU 314.


Memória

 Memória de Programa: permite armazenar o programa do


utilizador. Não existe armazenamento simbólico. Este reside
no ficheiro do programa, do lado do PC. A memória pode ser
RAM ou Flash-EPROM.

 Memória de Trabalho: contém as zonas de dados


relevantes para a execução do programa.

 Memória de Sistema: contém os elementos de memória


que cada CPU disponibiliza. Imagem das I/O, Bits internos,
temporizadores e contadores. Contém ainda os blocos e as
interrupções. Oferece ainda uma zona de dados locais para
cada bloco ou função.
Memória

 Zona de enereçamento local (L)


– Em cada OB ou FB é possível definir um conjunto de endereços
de memória, cujo estado só é válido na execução do bloco a que
pertence.
Memória

 Zonas de Trabalho
– Zona I (ou E) e Q (ou A)
 De I0.0 a I 65535.7
 De Q0.0 a Q65535.7
 Acedível por bit, byte, palavra e dupla palavra
– Zona externa (leitura directa sobre as entradas / escrita sobre saídas)
 De PIB0 a PIB65535
 Acedível por byte, palavra e dupla palavra
– Zona M
 De M0.0 a M255.7
 Acedível por bit, byte, palavra e dupla palavra
– Zona T (temporizadores)
 De T0 a T255
– Zona C (contadores)
 De C0 a C255
– Módulos de Dados (DB)
 De DBX 0.0 a DBX65535.7
 De DBB0 a DBD65535
 De DBW0 a dbw65534
 De DBD0 a DBD65532
Áreas de armazenamento
Áreas de armazenamento

 Os dados são armazenados em variáveis do programa, os


quais são unicamente identificados pela:
– Localização de armazenamento (PII, PIQ, bit de memória, pilha
L, DB)
– Tipo de dado (tipos de dados elementares ou complexos, tipo de
parâmetro)
 Dependendo da acessibilidade, existe diferença entre:
– Variáveis globais, as quais são declaradas na tabela de símbolos
globais ou em blocos de dados globais.
– Variáveis locais, as quais são declaradas na parte de declaração
dos OBs, FBs e FCs.
 As variáveis podem ter uma localização permanente na
imagem de processo, área de memória bit ou em num bloco
de dados ou podem ser criadas dinamicamente na pilha L
quando um bloco está a ser executado.
Blocos de Dados
Blocos de Dados

 Blocos de dados
– Os módulos de dados globais podem ser usados a partir de
qualquer módulo global (OB, FB e FC)
 Blocos de dados de instância
– Os dados destes módulos podem ser acedidos a partir do
módulo de função a que está atribuído.
Tipos de Dados

Tipo Bits Formatos Domínio Exemplo


BOOL 1 texto TRUE/FALSE TRUE
BYTE 8 hexadecimal B#16#0 a B#16#FF B#16#23
WORD 16 binario 2#0 a 2#1111111111111111 2#00101
hexadecimal W#16#0 a W#16#FFFF W#16#234F
Bcd C#0 a C#999 C#997
Decimal sem sinal B#(0,0) a B#(255,255) B#(14,245)
INT 16 Decimal com sinal -32768 até 32767 345
DWORD 32 binario 2#0 a 2#11011
2#1111111111111111111111111111
111 1
hexadecimal DW#16#0 a DW#16#FFFF_FFFF L DW#16#3FT
Decimal sem sinal B#(0,0,0,0) a B#(255,255,255,255) L B#(0,1,2,3)
DINT 32 Decimal com sinal L# -2147483648 até L# 2147483647 L L#400000
REAL 32 Vírgula flutuante 1.175 495e-38 a 3.402823e+38 L 23.5678
S5TIME 16 Tempo S7 S5T#0H_0M_0S_10MS até L s5t#2s
S5T#2H_46M_30S_0MS
TIME 32 Tempo IEC -T#24D_20H_31M_23S_648MS até L T#2H
T#24D_20H_31M_23S_647MS
DATE 16 Data IEC D#1990-1-1 até D#2168-12-31 L D#1994-3-15
TIME_OF_DAY 32 Hora do día TOD#0:0:0.0 até TOD#23:59:59.999 L TOD#1:10:3.3
CHAR 8 carácter 'A','B' etc. L 'E'
Tipos de Dados

 Dados complexos
Tipo Bits Significado Domínio
DATE_AND_TIME 64 União de uma variável DATE com uma DT#1990-1-1-0:0:0.0 a
variável TIME_OF_DAY DT#2089-12-31-
23:59:59.999
STRING Cadeia de caracteres STRING[1] a STRING[254]

ARRAY ARRAY [1..20,1..10] of INT

- 6 dimensões
- Indíce máximo por dimensão: 32767
Tipos de Dados Simples
Tipos de Dados Complexos
Tipos de Dados Complexos - Estrutura
Tipos de Dados Complexos - Array
Tipos de Dados Complexos - UDT
Variáveis Globais/Locais
Variáveis Globais/Locais

 Variáveis Locais
– Variáveis Temporárias - variáveis que são armazenadas apenas
enquanto o bloco está a ser executado. Podem ser utilizadas em
todos os blocos (OB, FC, FB).
– Variáveis Estáticas - dados que são retidos mesmo após o bloco
deixar de ser executado. As variáveis estáticas somente podem
ser utilizadas em blocos de funções.
Endereçamento
Endereçamento - Exemplos

 DB14.DBX4.1
 DB7.DBB2
 DB12.DBW4
 M1.0
 MD0
 I2.5
 L0.0
 LB3
Módulos de Programação - OB

 Módulos de Organizacão (Organization Block)


– Constituem o interface do CPU e do programa
– O SO chama estes módulos de código para que executem
diferentes operações, consoante a sua função.
 OB1
– É o módulo que é executado ciclicamente
– O módulo pode conter todo um programa, ou pode apenas
conter chamadas a outros módulos apenas quando isso é
explicitamente solicitado
 Para além do OB1, o sistema pode chamar outros OBs
em resposta a certos eventos
 Os OBs só pode ser chamados pelo SO, não por outros
Obs
 O STEP7 oferece 26 tipos de prioridade e cada OB é
processado de acordo com a sua prioridade
Módulos de Programação - OB

 O OB1 tem a prioridade mais baixa (classe 1) de todos.


Isto significa que pode ser interrompido por qualquer
outro OB.
 Obs mais importantes:
– OB1 Programa principal. Execução em ciclos contínuos
– OB10 (até OB17) Interrupção horária. Inicia-se num momento
programado e pode ter diferentes intervalos.
 Uma só vez
 Cada minuto
 Cada hora
 Cada dia
 Cada semana
 Cada mês
 Cada ano
 SFC 30 permite ajustar a frequência de chamada
– OB20 (até OB23) Interrupção de Atraso. Ocorre depois de um tempo
programado face a um determinado evento.
 Utiliza-se a SFC32 para desencadear o processo
 Nos CPU 300 só existe o OB20
Módulos de Programação - OB

 Obs mais importantes (continuação):


– OB35 Interrupção temporizada.
– OB40 Interrupção de eventos. Ocorre a partir de alterações de hardware
– OB80 Erro assíncrono.
– OB 121 Erro síncrono.
– OB100 Arranque completo. Implica passagem de STOP a RUN
– OB101 Rearranque.
Módulos de Programação - FC

 Funções (FC)
– As funções são módulos de código que se executam ao serem chamadas
de um outro módulo. Quando é chamada, a função comporta-se como
uma subrotina do programa. Quando termina a execução, o controlo é
devolvido ao módulo que a chamou.
– Existem funções com e sem parâmetros.

 Módulos de Função (FB – Function Block)


– Um FB tem um módulo adicional de memória. Um módulo de dados
mantém uma cópia dos parâmetros que vão passar para a área local de
dados. Depois da execução do FB, a memória local é apagada, mas a DB
retém os valores.
Módulos de Programação - FC

 Módulos de Função (FB – Function Block)


– Um FB tem um módulo adicional de memória. Um módulo de dados
mantém uma cópia dos parâmetros que vão passar para a área local de
dados. Depois da execução do FB, a memória local é apagada, mas a DB
retém os valores.