Escolar Documentos
Profissional Documentos
Cultura Documentos
S7-200
I0.0 Q0.0 Mic ro PLC 212
SF
SIEMENS
RUN I0.1 Q0.1
I0.3 Q0.3
I0.4 Q0.4
I0.5 Q0.5
I0.6 X 2
SIMATIC I0.7 3 4
S7-200
S7-300
S7-400
Conteúdo Página
SIMATIC SIMATIC
S7 - 400 M7 - 400
Pequeno Porte
modular modular complete
SIMATIC
S7 - 200
SIEMEN S
PG 740
SIMATIC
A família SIMATIC representa não somente uma linha de CLP’s, e sim toda uma linha de produtos de
AUTOMAÇÃO TOTALMENTE INTEGRADA.
SIMATIC S7
Os Controladores Lógicos Programáveis da família SIMATIC S7 podem ser divididos em: Micro PLC (S7-200),
pequeno/médio porte (S7-300) e médio/grande porte (S7-400).
SIMATIC M7
O CLP M7 é um computador PC-AT compatível, com o mesmo desempenho, a mesma funcionalidade e o
ambiente de programação de um microcomputador.
SIMATIC C7
Este é um sistema completo, é a combinação do CLP ( S7-300) e um painel de operação (HMI Operator
Interface) em uma única unidade.
Software
O SIMATIC Software é um projeto modular. Ele consiste do Software Básico STEP 7 e Pacotes Opcionais,
instalados a parte. Os Pacotes Opcionais podem ser linguagens de programação adicionais tais como S7-
GRAPH, SCL, CFC, SFC e pacotes para diagnósticos, simulações, documentação e Teleservice.
Terminais de Programação
São PC’s AT compatíveis com todas as interfaces necessárias e softwares básicos de programação pré-
instalados. Disponíveis desde laptop até desktop.
Redes de Comunicação
As redesAS-I, Profibus e Industrial Ethernet estão disponíveis para troca de dados entre sistemas de PLC’s.
I/O Distribuídos
Para economizar em cabos, existe a possibilidade da utilização de I/O’s remotos em um projeto distribuído.
Uma configuração distribuída, no que se refere à sua parametrização/programação, não difere de um
configuração central.
Interface Homem-Máquina
Para comunicação Homem-Máquina, existe a Interface de Operação SIMATIC HMI. Estas interfaces são
totalmente integráveis à toda família SIMATIC.
SIEMENS TD 200
Target Position 125 mm
Axle Ready
F5 F6 F7 F8
F1 F2 F3 F4
SHIFT
ESC ENTER
S7-200
O S7-200 é o micro-CLP da família SIMATIC S7.
Características
O S7-200 tem as seguintes características e funções:
- baixo preço
- “Totalmente compacto” com fonte de alimentação, CPU e entradas/saídas integradas em um único
dispositivo.
- "Micro PLC" com funções integradas
- Pode ser expandido em até sete módulos
- Software baseado em DOS ou Windows (STEP 7 MICRO/DOS ou STEP 7 MICRO/WIN)
Funções
- Alimentação das entradas digitais (sensores) integrada
- Forçar entradas e saídas
- Acesso direto às entradas/saídas
- Relógio de tempo real integrado 1
- 1
Dois potenciômetros analógicos integrados
- 1
Duas saídas em pulsos integradas
-
Entradas digitais comandadas por interrupções
- Contadores de alta velocidade integrados (7 a 20kHz).
1
CPU 214 ou maior
S7-300
O S7-300 é o pequeno e totalmente modular CLP da família SIMATIC S7.
Características
- Diversas CPU’s com diferentes capacidades.
- Extensivo espectro de módulos.
- Pode ser expandido em até 32 módulos.
- Módulos integrados em barramento backplane
- Pode ser ligado em rede com interface multi-point (MPI), PROFIBUS e Industrial
Ethernet.
- Conexão central com PC acessa todos os módulos (FM e CP).
- Sem regras para alocação das placas.
- Configuração e parametrização via software STEP 7.
S7-400
O controlador lógico programável S7-400 abrange aplicações de médio e grande porte. A família
da CPU S7-400 tem um set de instruções poderoso (igual ao do S7-300) e
esquema de endereçamento simples.
Memória de Trabalho
A partir de 48 KB até 2 Mega.
Sinais Digitais
A partir de 64K até 256K.
Sinais Analógicos
A partir de 4K até 16K.
Memory Markers
Flags - A partir de 4K até 16K.
Tempo de Ciclo
A partir de 0,08 µs até 0,2 µs por instrução binária.
Multiprocessamento
Até quatro CPUs podem ser usadas no rack central.
Comunicação
Via MPI, ponto-a-ponto, PROFIBUS e Industrial Ethernet .
CPU 1 CP FM CPU 2 CP FM
PG 720
MPI
A Multi-Point Interface, MPI tem como objetivo conectar o CLP ao terminal de programação ou à interface de
operação, ou ainda a outros controladores lógicos programáveis (PLC’s). Na unidade central de processamento
(CPU), existe somente uma interface MPI, porém é possível acessar através dela todos os outros módulos
programáveis, tais com FM’s.
Possibilidades de Conexão
Vários dispositivos podem estabelecer simultaneamente conexão de dados com a CPU. Isto significa que o
terminal de programação e o painel de operação podem ser operados simultaneamente, e ainda outros PLC’s
adicionais podem ser conectados. As quantidades de conexões que podem ser operadas simultaneamente
dependem da CPU. Exemplo: são possíveis quatro conexões de comunicação ativa por nó para a CPU 314.
Características da MPI
A interface MPI suporta displays, painéis de operação e terminais de programação Siemens. A MPI oferece as
seguintes possibilidades:
- Programação de CPU’s e módulos inteligente
- Funções de monitoração do sistema e funções de informações
- Troca de dados entre controladores lógicos programáveis
- Troca de programas entre CPU e terminal de programação
S7-400
S7-300
S7-200 PS CPUFM CP CP
CPU FM CP
S5/TI
PROFIBUS-FMS
Field
PG/PC
S5/TI Devices
PROFIBUS-DP
PG/PC
TD/OP S7-200
MPI
Redes
A figura acima exibe as várias possibilidades de rede para a comunicação entre produtos já existentes e a
família S7. Os termos usados no slide são explicados a seguir:
S5/TI
Controladores lógicos programáveis SIMATIC S5 e SIMATIC TI
SIMATIC HMI
Equipamentos de Interface Homem Máquina
TISTAR
SCADA = (Supervisory Control and Data Acquisition ) controle de interface de operação do sistema
PG/PC
Terminais de programação (Siemens PG) ou Computadores Pessoais
Ind. Ethernet
Rede Industrial da Siemens
TD/OP
Text Display e Operator Panel
PPI
Interface Point-to-Point
MPI
Interface Multipoint
Field Devices
Hardware para ent./output (por exemplo, chaves, bombas, e motores)
PROFIBUS DP
Rede de controle distribuído fieldbus da Siemens
SIEMENS
PG 740
PG740
PG720
PG720PII
A PG 720PII (Pentium II) tem as seguintes características:
- Pouco Peso (aproximadamente 4.5 kg)
- Dimensões pequenas
- Interface Integrada (MPI, EPROM, MEMORY CARD, e PLC)
- Boa resolução
- Expansão para Teleservice (MODEM) via PCMCIA, tipo 3
- Teclado removível, conexão possível para monitor externo Multisync.
- Expansível para redes (Novell, etc.), transmissão de dados, FAX (modem) via PCMCIA - tipo 3
PG740PIII
A PG 740PIII (Pentium III) tem as seguintes características:
- Boa resolução gráfica para Windows 98
- Excelente tela de exibição (TFT display, 13.3", 34 cm)
- Teclado removível, possível conexões para monitores externos com alta resolução.
- Interface integrada (MPI, EPROM, MEMORY CARD, SIMATIC S5, e impressora)
- Expansível para redes (Novell, etc.), transmissão de dados, FAX e modem
- Portátil (aproximadamente 7 kg)
Conteúdo Página
Softwares para S7/C7/M7................................................................... 2
Pré-requisitos para a Instalação do STEP 7....................................... 3
Instalação do STEP 7.......................................................................... 4
A Ferramenta STEP 7......................................................................... 5
Selecionando o Idioma de Programação............................................ 6
Exercício 2.1: Checando a Interface com a CPU................................ 7
Exercício 2.2: Definindo os Mnemônicos............................................ 8
S7-GRAPH M7-ProC/C ++
S7-200
S7 - 200 S7-300, C7 S7-300/400, C7 M7-300/400
STEP7 Micro:
Este é o software para elaboração de programas exclusivamente para o S7-200. Possui duas versões:
MICRO/DOS e MICRO/Win, que rodam nos sistemas DOS e Windows 3.x respectivamente.
STEP 7
O STEP 7 é a ferramenta de automação da família SIMATIC S7 (exceção do S7-200). Através dela se configura
e parametriza-se todo o hardware, edita-se o programa, testa-o, faz-se o comissionamento e a procura de
defeitos, além de toda a documentação necessária. Com o auxílio de pacotes opcionais pode-se ainda
configurar redes locais, utilizar linguagens de alto-nível ou orientada à tecnologia, utilizar Teleservice, etc.
STEP7 Mini
O STEP 7 é um sub-set do pacote STEP 7, ideal para se iniciar na automação com aplicações stand-alone do
S7-300. Em relação ao pacote normal não permite a configuração do S7-400, de global-data (troca de dados)
e nem o uso de pacotes opcionais.
Options:
São pacotes opcionais para S7 e M7 para geração de programas em outras linguagens, configuração de rede,
etc. Estes pacotes permitem por exemplo a escolha da linguagem de programação mais fácil ou apropriada a
cada aplicação:
SCL - Linguagem de alto-nível, baseada em Pascal. Ideal para organização e manutenção de grande
quantidade de dados, cálculos e algoritmos complexos.
GRAPH - Linguagem para processos seqüenciais, baseados em estado e transição. Em vez de se programar
um sistema, faz-se a descrição de seus passos.
HiGraph - Linguagem para descrição de estados (não necessariamente seqüenciais). A partir de um diagrama
de estados faz-se a descrição do processo.
CFC - Programação orientada tecnologicamente, onde se desenvolve graficamente todo o processo.
Hardware/Software Pré-requisitos
Mouse Sim
CD-ROM Sim
MPI = Multipoint Interface
Pré-requisitos
PC-Compatíveis que atendam os pré-requisitos acima, podem ser utilizados sem restrições. Para a
comunicação com o CLP é necessário uma interface MPI (cartão MPI-ISA ou PCMCIA) ou um cabo de
conversão PC/MPI (para ser ligado à interface serial) .
F-EPROM
Para a gravação de F-EPROM é necessário um gravador de EPROM externo (os PG’s Siemens já o possuem).
A partir da nova versão do STEP7 e das novas versões de CPU, as F-EPROM poderão ser gravadas
diretamente na CPU.
Observação
Um upgrade de um versão antiga dos PG Siemens não é uma solução economicamente viável. PG’s e PC’s
usando um processador 80386 são extremamente lentos.
SIEMENS
or
PG 740
Instalação
Como todo o aplicativo W95, o software deverá ser instalado via a função “Adicionar/Remover Programas”
do W95, que executará o programa SETUP do STEP 7.
Instalando Drivers
Durante a instalação do STEP 7, deve-se integrar drivers para a comunicação com o CLP (cabo ou cartão) e
para F-EPROM’s. Pode-se também mudar as definições padrões de interrupção e endereços se necessários .
As seguintes opções podem ser setadas durante a instalação do STEP 7:
- Escopo da instalação (normal, mínima, definida pelo usuário)
- Língua
- Definições de interface PG/PC
- Opções de EPROM
Proteção de Software
O software STEP 7 é provido com uma proteção contra cópia e pode ser operada em somente um terminal de
programação por vez. O software não pode ser usado até ser autorizado pelo disquete de autorização. Este
disquete transfere uma autorização para o hard disk depois que a instalação do software foi concluída.
Autorização
Antes de utilizar o software em outro terminal de programação é necessário executar a transferência de
autorização.
Por favor o leia o conteúdo do arquivo README.TXT no disco de autorização. Sem seguir estas informações
existe risco que a autorização seja irrecuperavelmente perdida.
Leia também o folheto Product Information que acompanha o software.
SIMATIC Manager...
Options...
Customize
Language > SIMATIC
Selecionando
1. Ative o comando de menu Options --> Customize
2. Selecione a pasta de Linguagem
3. Selecione a linguagem desejada:
SIMATIC = alemão;
IEC = Internacional (inglês)
Importante
Existem duas seleções independentes:
- Língua do Editor -> seleciona o idioma da ferramenta STEP 7
(inglês/alemão/espanhol/italiano/francês)
- Língua dos Mnemônicos -> seleciona o idioma em que o programa do usuário será escrito
(inglês/alemão)
Meta
Checar a parametrização correta da interface da PG.
Procedimento -
Clique na barra de tarefas Iniciar
- Selecionar SIMATIC ==> STEP 7 ==> Setting the PG/PC Interface
- Depois de você ter selecionado “Cartão PC/MPI” clique no botão “Properties”
- Checar se o endereço local da PG está setado para 0.
...selecione a linguagem
para a edição
em LAD/STL/FBD
Mnemônicos
Antes de editar um programa, é necessário escolher entre 2 opções de mnemônicos para exibição das
instruções no editor de programa.
Pode-se escolher entre IEC (Internacional/Inglês) ou SIMATIC (Alemão).
Meta
Selecionar os mnemônicos desejados.
Procedimento
1. Inicie o SIMATIC Manager.
2. Selecione no menu de comandos Options ==> Customize.
3. Escolha a Language.
4. Escolha a linguagem mnemônicos desejada e confirme com “OK”
Resultado
Quando programando, um dos seguintes modos será exibido:
S7-200
I0.0 Q0.0 Mic ro PLC 212
SF
SIEMENS
RUN I0.1 Q0.1
I0.3 Q0.3
I0.4 Q0.4
I0.5 Q0.5
I0.6 X 2
SIMATIC I0.7 3 4
S7-200
S7-300
S7-400
Conteúdo Página
UEBER_T1D
UEBER_T1D
Contadores/
Temporizadores 256/256 256/256 256/256 256/256
Tempo de Execução 0.37 ms 0.37 ms 0.37 ms 0.37ms
(por 1K/instruções)
Comunicação ---------------------------1x PPI/ Freeport / MPI------------------------------ 2x PPI /
Freeport / MPI
Manutenção ---------------------- Livre de Manutenção, não necessita de bateria---------------------------
Set de operações básicas, standard, operações especiais, PID integrado , receive +PID, funções de
receive, funções aritiméticas (operações em ponto fixo e ponto flutuante), funções
de jump, funções de loop, funções de conversão de código.
Modelos Cada CPU por sua vez possue diferentes modelos para as diferentes tensão dos
I/O’s.
Mód. de Sinal SM
O módulo de sinal recebe do campo os sinais elétricos e os adapta aos vários níveis de sinais dos módulos:
- Entrada/saída digital
- Entrada/saída analógica (tensão, corrente, resistência, termoelementos)
- Acessórios: conectores frontais
Mód. de Interface IM
O módulo de interface torna possível a configuração de vários trilhos /bastidores de expansão. Estes módulos
fazem a conexão entre os trilhos / bastidores:
- Módulo de Transmissão, conectado no Rack Central.
- Módulo de Recepção, conectado no Rack de Expansão.
- O módulo combinado Send/Receive é uma solução econômica para configuração com dois
trilhos; neste caso no trilho de expansão são permitidos somente módulos de I/O (SM). Por ex. IM365 no S7-
300.
Mód. de Funções FM
O módulo de função oferece “funções especiais”:
- Contagem
- Posicionamento
- Regulação em malha fechada
Mód. de Comunicação CP
Módulos de comunicação oferecem as seguintes possibilidades de rede:
- Comunicação ponto a ponto
- PROFIBUS
- Industrial Ethernet
Slot: 1 2 3 4 5 6 7 8 9 10 11
No S7-300 o endereçamento dos módulos de I/O, CP e FM são slot-orientados, isto é, o seu endereço
depende da posição do módulo no trilho. Alguns slots são reservados: PS, CPU e IM.
Slot 1:
PS - Fonte de alimentação. Obrigatoriamente no primeiro slot. Não é associado nenhum endereço para a fonte
de alimentação.
Slot 2:
CPU; deverá estar localizada próxima a fonte de alimentação. Não é associado nenhum endereço para a CPU
(veremos mais tarde endereço MPI).
Slot 3:
Módulo de interface (IM). Para conectar racks de expansão. Não é associado nenhum endereço para a IM.
Até mesmo se a IM não estiver presente, ela deverá ser considerada no esquema de endereçamento do slot. O
slot 3 é logicamente reservado pela CPU para a IM.
Slots 4 - 11:
Módulos de sinais. Slot 4 é considerado o primeiro slot para módulos de entrada e saída (ou CP ou FM). Um
exemplo de endereçamento é exibido abaixo para um cartão de digital (entrada = I, saída = Q):
Fonte IM
Rack de (Receive) 64.0 68.0 72.0 76.0 80.0 84.0 88.0 92.0
2 Tensão
to to to to to to to to
67.7 70.7 75.7 79.7 83.7 87.7 91.7 95.7
Fonte IM
Rack de (Receive) 32.0 36.0 40.0 44.0 48.0 52.0 56.0 60.0
1 Tensão
to to to to to to to to
35.7 39.7 43.7 47.7 51.7 55.7 59.7 63.7
Rack CPU IM
0 e (Send) 0.0 4.0 8.0 12.0 16.0 20.0 24.0 28.0
Fonte to to to to to to to to
de
Tensão 3.7 7.7 11.7 15.7 19.7 23.7 27.7 31.7
Endereçamento Digital
O endereçamento das entradas (I) e saídas (Q) digitais começa com o endereço 0 para o módulo de sinal
localizado no slot 4 (1° slot para SM). A relação entre o slot físico e o endereço do módulo é exibida acima.
Cada módulo digital ocupa 4 bytes de endereços independente do número de pontos.
Fonte IM
Rack de (Receive) 512 528 544 560 576 592 608 624
2 Tensão
to to to to to to to to
526 542 558 574 590 606 622 638
Fonte IM
Rack de (Receive) 384 400 416 432 448 464 480 496
1 Tensão
to to to to to to to to
398 414 430 446 462 478 494 510
Rack CPU IM
0 e (Send) 256 272 288 304 320 336 352 368
Fonte to to to to to to to to
de
Tensão 270 286 302 318 334 350 366 382
Endereçamento Analógico
O endereçamento das entradas e saídas analógicas começa no endereço 256
para o módulo de sinal localizado no slot 4 (1° slot para SM). A figura acima mostra o esquema de
endereçamento dos módulos analógicos. Cada módulo analógico ocupa 16 bytes de endereços, independente
do tipo de módulo, sendo que cada canal analógico ocupa dois bytes de dados.
Op e ra nd os:
- M e m ory M a rke rs (fla g s) 1 k 2 k 2 k 2 k 2 k 2 k 2 k 8 k
- Con ta do re s 32 64 64 64 64 64 64 512
- T e m p oriz a do re s 64 128 128 128 128 128 128 512
Nú m e ro de Blocos M á x im o:
- FB 32 128 128 128 192 192 256 1024
- FC 32 128 128 128 192 192 512 1024
- DB 63 127 127 127 255 255 511 2047
Nú m e ro de T rilh os / M ód ulos 1 / 8 1 / 8 4 / 32 4 / 32 4 / 32 4 / 32 4 / 32 4 / 32
M á x im o de con e x õe s a tiva s p or 4 4 4 4 4 4 4 32
in te rfa ce M P I
Dados Técnicos
A família S7-300 suporta um set de instruções e endereçamento comuns. A figura mostra as especificações
técnicas mais importantes para as CPU’s 312 a 315.
Números de Blocos
Diferenças nas quantidade de números de blocos (FB, FC, DB).
FB Blocos de Funções
FC Funções
DB Blocos de Dados
Trilhos (1)
Para as CPU’s 312/313, é possível a montagem em somente um trilho (sem expansão)
Trilhos (2)
As CPU’s 314 a 318 suportam até quatro trilhos ( 3 trilhos de expansão).
Conexão DP
Os S7’s 315-2 DP / 318-2 DP possuem uma interface adicional para PROFIBUS DP (Periferia Distribuída) e
permitem a livre escolha do endereçamento dos módulos de I/O.
CPU
CPU CPU
CPU CPU
CPU CPU
CPU CPU
CPU CPU
CPU CPU
CPU CPU
CPU
412-1
412-1 412-2
412-2 414-2
414-2 414-3
414-3 416-2
416-2 416-3
416-3 417-4
417-4 417H
417H
M e m ó ria
- d e tr a b a l h o 48 kB 72 kB 128 kB 384 kB 0 ,8 M B 1 ,6 M B 2 MB 2 MB
- d e c a r g a i n te g r a d a (R A M ) 256 kB 256 kB 256 kB 256 kB 256 kB 256 kB 256 kB 256 kB
- d e tr a b a l h o e x te r n a (F E P R O M ) 64 M B 64 M B 64 M B 64 M B 64 M B 64 M B 64 M B 64 M B
Te m po de Ex cuçã o 0 .2 u s 0 .2 u s 0 .1 u s 0 .1 u s 0 .0 8 u s 0 .0 8 u s 0 .1 u s 0 .1 u s
(p o r 1 k d e i n str u ç õ e s b i n á r i a s)
Á re a m á x . e n d e re ç o I/O 4 kB 4 kB 8 kB 8 kB 16 kB 16 kB 16 kB 16 kB
O p e r a n d o s:
- M e m o r y M a r k e r s (f l a g s) 4 k 4 k 8 k 8 k 16 k 16 k 16 k 16 k
- C o n ta d o r e s 256 256 256 256 512 512 512 512
- T e m p o riz a d o re s 256 256 256 256 512 512 512 512
N ú m e ro d e B lo c o s M á x im o :
- FB 256 256 1024 1024 2048 2048 6144 6144
- FC 256 256 1024 1024 2048 2048 6144 6144
- DB 512 512 1024 1024 4096 4096 8192 8192
M á x i m o d e c o n e x õ e s a ti v a s p o r 16 16 32 32 44 44 44 44
i n te r fa c e M P I
Tipos de CPU:
Um range completo de CPU’s supre todas as exigências de desempenho individuais no que se refere a tempo
de execução, tamanho da memória de trabalho e número de blocos.
E ainda mais, as CPU’s 400 possuem integrada pelo menos uma interface MPI / PROFIBUS-DP (mestre).
P e C-BUS
Cada S7-400 é equipado com um barramento paralelo 1,5 µsec/Byte (P-bus) para acesso de I/O em alta
velocidade e um barramento de comunicação serial com 10,5 MBaud para troca de dados via MPI com módulos
de apoio, tais como CPU’s, OP’s, FM’s, etc.
SFB / CFB
E ainda, é possível transferir dados entre CPU’s, FM’s e CP’s com o funções especiais como System Function
Blocks (SFB’s ) e Communication Function Blocks (CFB’s).
LEDs de Status
da CPU CPU314
SF
SIEMENS BATF Slot para o Cartão de
DC5V Memória
FRCE
RUN
STOP
Seleção do Modo
RUN-P
de Operaçao RUN
STOP
M RES
SIMATIC
S7-300
Interface MPI
Battery MPI
Modo de Operação
Chave para seleção manual do modo de operação da CPU
MRES = Reset da memória (overall reset)
STOP = o programa não é executado.
RUN = O programa é processado porém o programa não pode ser alterado pelo Terminal
de Programação (só lido).
RUN-P = A CPU está processando o programa, e o Terminal de programação pode
acessar/alterar o programa e o modo de operação (não existe trava).
Encaixe da Bateria
Existe um local para bateria de lithium abaixo da tampa. A bateria salva o conteúdo da memória RAM no caso
de uma falha na alimentação da CPU.
Interface MPI
O conector de 9-pinos sob a tampa é a conexão da multipoint interface (MPI). Esta é a porta de programação
da CPU do S7-300, e pode ser utilizada para a conexão de OP’s, PC’s e outros CLP’s.
INTF
da CPU
INTF DP INTF
EXTF EXTF EXTF
BUSF da Interface DP
FRCE FRCE
Integrada
CRST CRST
RUN
STOP Seleçao tipo RUN
STOP
de Start-up
CRST CRST
WRST WRST
RUN-P RUN-P
RUN RUN
STOP
Seleção do Modo STOP
CMRES
de Operaçao CMRES
Interface DP
Slot para o Cartão de
Memória X3
Interface MPI
X1 X1
EXT.-BATT.
Bateria Externa EXT.-BATT.
5...15V DC 5...15V DC
Soquete da Bateria
Soquete (“banana”, 2,5mm) para a conexão de uma fonte de tensão/bateria externa, de 5 ... 15VDC para
backup da RAM no caso de ser necessário substituir a fonte de tensão do bastidor (sem perda de dados).
Interface MPI
Conexão para CPU’s, OP’s, FM’s, etc com o terminal de programação. Também utilizada para comunicação via
dados globais (GD) com outras CPU’s.
Interface DP
As CPU’s têm como característica a interface DP para conexão de I/O’s distribuídas integrada diretamente na
CPU. O S7-400 é mestre para conexões com ET200M, ET200U (B/C), S7-300, etc.
Modo de Operação
MRES = Reset da memória (overall reset)
STOP = o programa não é executado.
FRCE = indica que pelo menos uma entrada ou saída está forçada
(consulte versão de CPU)
RUN = O programa é processado, mas pode somente ser lido (não é permitido alterá-lo).
RUN-P = A CPU está processando o programa, e o Terminal de Programação pode alterar o programa
e o modo de operação (não existe trava).
Modo Start-Up
CRST= (ColdReSTart) o programa re-inicia sempre a partir da 1. instrução
WRST = (Warm ReSTart) o programa re-inicia no mesmo ponto em que havia parado
A CPU indica o modo start-up através do LED de status
I Entrada
Q Saída
B Byte (8 bits)
M Memória (flag)
T Temporizadores
C Contadores
DB Data block
Importante Verifique os dados técnicos da CPU utilizada para verificar sua capacidade de
endereçamento.
Esta é uma demonstração para auxiliar você a entender como endereçar I/Q no S7-300.
Através da ferramenta SIMATIC Manager, o instrutor irá mostrar a relação entre endereçamento lógico e
endereçamento físico.
A tabela de entradas e saídas no rack é criada com auxílio de “Modify and Monitor Status Variables”. A tabela é
então ativada.
2 Gire a chave em direção a posição MRES. O LED STOP (amarelo) irá apagar e tornará
Permaneça nesta posição até que o LED a acender depois de aproximadamente 3
STOP (amarelo) pisque 2 vezes. segundos .
3 Girar a chave para posição STOP O LED amarelo irá piscar por
imediatamente depois que o LED STOP aproximadamente 3 segundos e então
piscar a 2 vez, e torne a girar para a ficará acesa constantemente.
posição MRES. Retornar a chave para a
posição STOP novamente.
4 Inicie o STEP 7 e ative a função Acessible Todas as CPU’s conectadas ao PG/PC são
Nodes mostradas (MPI=....)
6 Baseado na lista de blocos, determine Não poderá aparecer OB’s, DB’s FB’s ou
quais blocos ainda estão presentes na FC’s no diretório do SIMATIC Manager.
CPU. Somente os blocos de sistema
podem estar presentes (SDB, SFC e SFB).
Meta
Apagar todos os blocos da CPU através de um reset geral.
Procedimentos
Siga os passos da figura acima.
Endereço MPI
Se não estiver plugado o cartão de memória, os endereços MPI setados serão retidos durante o reset da CPU.
Se o cartão de memória estiver plugado, os endereços arquivados no cartão serão transferidos.
Buffer de Memória
O conteúdo do buffer de diagnóstico fica retido quando é feito um reset na CPU.
Configurando o
rack
KONF_T1D
Configuração de H/W
Com esta ferramenta, é possível:
- definir os módulos utilizados (CPU, I/O, FM) e a sua parametrização. Ex.: tipo de medição do
módulo analógico de entrada.
- ler a configuração da CPU. Ex. designação dos módulos no rack
- ler diagnóstico de dados referentes a módulos (system diagnostics)
A janela on-line (diagnóstico de hardware) mostra a configuração da estação que está acessível on-line.
Informações de status ou estado de operação de cada módulo são mostradas no relatório simbólico do módulo
(=system diagnostics)
A tecla F5 atualiza a exibição. Para obter mais informações, dar um double-click no símbolo.
A ferramenta é iniciada, por exemplo, pela seleção de uma estação de hardware no SIMATIC Manager ou via
comando de menu Edit ==> Open Object
Configurando
O usuário especifica a posição dos módulos no rack e os endereços são definidos automaticamente ( nas
CPU315-2 e do S7-400 o usuário pode alterar os endereços). À esta configuração denominaremos
configuração parametrizada.
Durante o start-up, a CPU checa a distribuição dos módulos existente, que é denominada configuração real.
No caso do S7-400, é possível comparar a configuração real com a configuração parametrizada. Existindo
divergências, o start-up pode ser abortado, se desejado pelo usuário.
Setando Parâmetros
Ao invés de setar chaves nos módulos, todos os parâmetros são definidos via software. Pode-se definir
parâmetros para a CPU e para determinados módulos de I/O, tais como módulos analógicos.
Nos parâmetros da CPU estão incluídos, entre outros, o tempo de supervisão de duração de ciclo ou o intervalo
de tempo para execução de partes do programa.
Trocando Módulos
Durante um restart completo, a CPU distribui os parâmetros para todos os módulos existentes. Assim, quando
se substitui um módulo defeituoso, a parametrização para o novo módulo ainda estará disponível, armazenada
na CPU.
Menu de “Edição”
Menu de “Edição” Upload
(le o CLP)
Download Ativa o
(transfere p/ CPU) Catálogo
Menu da “Estação”
Menu da “Estação”
Menu de “Visualização”
Menu de “Visualização”
Menu do “PLC”
Menu do “PLC”
Station estação)
O menu Station serve para selecionar o CLP a ser editado, salvar a (configuração, imprimir, etc. É comparável
ao menu de edição de um Processador de Texto como por ex. O Microsoft Word. É possível entre outras
funções:
New -> criar uma nova estação
Open e Open Online -> editar uma configuração existente no PG/PC ou na CPU.
Save -> salvar a configuração corrente. Ao se salvar uma configuração pela 1a. vez, o STEP 7 criará na
estrutura automaticamente um Módulo Programável (por ex. a CPU) e a pasta S7-Programs subordinada à este
módulo, além de gerar o bloco de configuração (SDB).
Consistency Check -> verifica se a configuração de hardware está correta, porém não gera o bloco de
configuração (SDB) nem as pastas de CPU e programa.
Compile -> é o mesmo que save. Checa a consistência, gravando ao bloco de configuração de
hardware na respectiva pasta CPU/Programa já criada.
View
O menu View é utilizado para selecionar a maneira que se quer visualizar a configuração, simplificada ou em
detalhes (com MLFB, endereço, etc), além de tornar ativo ou não a barra de ferramentas e a linha de status.
A linha de status serve como um pequeno help online, mostrando sempre um pequeno texto sobre a função
selecionada, além do modo de operação ativo Offline ou Online.
PLC
O menu PLC é utilizado para ler ou transferir a configuração editada do PG para o CLP (também possível pelo
ícone da barra de ferramentas). A transferência só pode ser feita se a CPU estiver conectada ao Terminal de
Programação. No modo online estão ainda disponíveis funções de informação e de diagnóstico, além de se
poder alterar o modo de operação da CPU.
Configuração Real
PG 720
Configuração Real
A CPU gera uma configuração interna real durante a energização. Isto é, a CPU verifica a disposição dos
módulos existentes, e caso não exista o bloco de parametrização, distribui os endereços de acordo com um
algoritmo fixo.
Se não existe parametrização, os parâmetros default são usados.
A CPU arquiva esta configuração real no bloco de dados do sistema.
No PG/PC, você pode ler esta configuração real para servir como base (template) para adicionar e/ou re-
parametrizar os módulos usando o HW Configuration
Procedimento
A configuração real é gerada usando o ícone Upload.
Configurando
A configuração é executada pela ferramenta Configurador de Hardware. A partir do catálogo, seleciona-se os
módulos utilizados, posicionando-os no slot respectivo do trilho/bastidor. Naturalmente inicia-se a configuração
com o trilho/bastidor para então se posicionar os outros módulos. Ao se posicionar um módulo, o sistema
automaticamente designa um endereço para o módulo. A CPU315-2 e toda a família S7-400 permitem que este
endereço seja alterado pelo usuário.
A parametrização dos módulos é realizada dando-se um double-click sobre o módulo desejado. Uma tela de
configuração referente ao módulo aparecerá, permitindo a alteração dos parâmetros.
Durante o start-up do controlador lógico programável S7-400, pode haver um check para verificar se a
configuração real (existente) e a configuração parametrizada estão de acordo.
Catálogo Eletrônico
O catálogo eletrônico contém toda a lista de módulos existente do S7. Quando você clicar na tecla “+”, você
terá disponível os módulos do grupo selecionado.
Atualizações deste catálogo (novas placas) estarão sempre disponíveis via Internet ou via o Distribuidor local.
Hardware Test
Quando esta função é ativada, a RAM interna da CPU é testada durante o start-up
Watchdog Time
Os seguintes tempos podem ser especificados:
- Tempo máximo para passar parâmetros para os módulos parametrizáveis.
- Tempo máximo para o sinal completo do módulo.
- Para o S7-400, o tempo máximo de interrupção (falta de energia ou chave do modo de operação) após o qual
um restart (warm) ainda é possível. Após este tempo será executado um complete restart.
Áreas Retentivas
As áreas de memória retentivas permanecem inalteradas mesmo depois da falta de energia ou de um restart
completo.
Os seguintes itens podem ser retentivos:
- Memory markers
- Temporizadores
- Contadores
- Bloco de Dados
As áreas que você especifica nesta tela são retidas no caso de falha de energia mesmo não existindo bateria
de backup.
Para ser utilizado sem bateria, o programa deverá ser arquivado no módulo de memória (memory card).
DB´s Retentivos
Este parâmetro só tem sentido no caso da não existência de bateria. Quando a bateria é usada, todos os blocos
de dados são retentivos.
Outros blocos de dados que devem permanecer retidos devem também ser salvos no módulo de memória.
Depois da falta de energia sem a bateria, os blocos de dados parametrizados como retentivos são retidos, e os
outros blocos recebem os valores arquivados no módulo de memória.
Cycle
Opções:
- tempo de monitoração do tempo de ciclo, quando este tempo é ultrapassado, a CPU vai para
STOP, se o OB80 de erro não foi programado.
- tempo mínimo de ciclo para o S7-400 para implementar tempo de ciclo constante
- porcentagem do tempo de ciclo de programa que será reservado (no máx.) para tarefas de
comunicação ou para auto teste cíclico.
Clock Memory
Caso seja utilizado no programa algum tipo de pisca-pisca, pode-se deixar o sistema gerá-lo automaticamente.
Ative o campo e especifique qual o byte de memória a ser usado para este fim
O byte de memória especificado piscará nas seguintes freqüências, cada uma associado à um bit deste byte:
Bit 7 6 5 4 3 2 1 0
Período/ 2 1,6 1 0,8 0,5 0,4 0,2 0,1
Freqüência 0,5 0,625 1 1,25 2 2,5 5 10 (Hz)
Protection Levels
O programa na CPU pode ser protegido contra um acesso não autorizado por meio de designação de uma
senha. As correções de programa ou modificação de dados só podem ser executados se a senha correta for
digitada.
Os níveis de proteção tem os seguintes significados:
- 1: Sem proteção
- 2: Proteção contra a escrita (somente leitura ou status de blocos.)
- 3: Proteção contra leitura/escrita
Priorities (prioridade)
A prioridade de execução de um bloco só é considerada quando dois blocos OB’s devam ser executados ao
mesmo tempo. Assim será executado o bloco de maior prioridade, sendo que o de menor prioridade aguarda o
fim da execução do outro para ser executado.
Então, pode-se especificar a seqüência de processamento para quando duas ou mais interrupções estejam
presentes simultaneamente.
Importante: OB1
O principal bloco do programa S7 é o OB1. Este OB é um OB cíclico, porém diferente de um OB de interrupção
cíclica. Ao atingir a sua última instrução, o OB1 se reinicia imediatamente na 1a. instrução. Como a chamada de
blocos pode variar de um ciclo para outro, não se pode garantir que o tempo de execução da cada ciclo do OB1
seja constante.
System diagnostics
Uma poderosa ferramenta na depuração do programa e procura de falhas é o Diagnóstico Buffer. Este é um
buffer que registra todas as ocorrências anormais do CLP, inclusive com data e hora. Esta função, que deve
sempre ser deixada ativa, além de registrar as ocorrências que levaram a CPU para STOP (Dysplay cause of
STOP), pode ainda ser incrementada com outras ocorrências (Extended Functional Scope).
Com a opção “Extended Functional Scope” ativa todos as chamadas de OB´s de interrupção são registradas no
buffer de diagnóstico. Isto é útil por exemplo na hora de depurar o SW ou na procura de um defeito específico
do sistema. Não deve ser porém deixada ativa, pois o buffer de diagnóstico será preenchido como uma série de
registros dificultando uma eventual análise do motivo de parada da CPU (mensagens importantes podem ser
sobrescritas).
Clock
Se está sendo utilizado vários módulos com clocks em um CLP, pode-se definir quais módulos vão ser escravos
e mestres. O mestre sincroniza outros clocks de acordo com o intervalo de tempo setado.
O fator de correção corrige variações do relógio do mestre diariamente, sendo expresso em ms.
Importante
1) Verifique quais os parâmetros disponíveis para o módulo que está sendo utilizado.
2) Para a faixa de medição, além da parametrização via SW é necessário posicionar a caixa de medição na
placa (pos. A, B, C ou D).
Chamando o
Configurador de HW
Objetivo
Criar uma estação de HW
Configurar o Hardware
Procedimento
1. Destaque a pasta de projeto PRO1
2. Selecione no menu o comando Insert ==> Station ==> SIMATIC 300 Station (ou use o botão
direito do mouse e o comando Insert New Object => SIMATIC 300 Station.
3. Uma nova estação S7-300 é criada.
4. Destaque a pasta da estação recém criada (SIMATIC 300 Station (1)) e dê um clique duplo
sobre o ícone Hardware.
5. O Configurador de Hardware é aberto.
6. Selecione no catálogo todos os módulos existentes no seu rack de treinamento (comece
obrigatoriamente com o trilho (rack)).
7. Salve a configuração no harddisk.
Resultado
Uma estrutura CPU, Programa, Blocos, etc. é criada subordinada à pasta de estação.
Objetivo
Parametrizar um módulo (CPU)
Testar a característica Retentividade
Procedimento
1. Inicie o Configurador de Hardware
2. Dê um click-duplo sobre a linha que contém á CPU (ou destaque a linha da CPU e com o botão
direito do mouse selecione a função Object Properties).
3. Selecione a Pasta Retentive Memory.
4. Parametrize os Memory markes de 0 a 4 como retentivos (MB0 a MB4).
5. Selecione a pasta Cicle / Clock Memory
6. Parametrize o clock memory com o memory marker 100 (MB100)
7. Confirme a parametrização com o botão OK.
8. Salve a configuração.
9. Dê um Download da configuração para a CPU (lembre-se a CPU tem que estar em Stop).
10. Escreve um programa no OB1 transferindo os dados do clock-memory para MB4 e MB5:
L MB100
T MB4
T MB5
11. Coloque a CPU de STOP -> Run e observe com a função Monitor Variables os memory markes
MB4 e MB5.
12. Delete as instruções do OB1 (ou o próprio OB1).
13. Repita o passo 11.
Resultado
O que aconteceu com o MB4 e o MB5 no 2. start da CPU ? Por que não possuem o mesmo conteúdo ?
Conteúdo Página
Norma IEC 1131.................................................................................. 2
Ciclo de Processamento da CPU........................................................ 3
Start-up da CPU e OB’s...................................................................... 4
Imagem de Processo.......................................................................... 5
Tipos de Blocos de Programa............................................................ 6
Blocos de Usuário............................................................................... 7
Blocos de Sistema............................................................................... 8
Estrutura de Programa......................................................................... 9
Programação Estruturada................................................................... 10
Introdução
A norma IEC1131 é um documento escrito por um consórcio de fabricantes de PLC´s, casas de sistemas e
instituições direcionadas a desenvolver plataformas para níveis de padronizações na automação industrial.
Parte 1
Contém características de funções e definições de termos gerais comuns para PLC´s. Por exemplo,
processamento cíclico, imagem de processo, divisões de tarefas entre dispositivos de programação, PLC
Interface Homem máquina.
Parte 2
Especifica funções elétricas e mecânicas e exigências funcionais dos dispositivos e definições de tipos de
testes. As seguintes exigências são definidas: temperatura, umidade, imunidade a interferências, faixa de
tensão de sinais binários, rigidez mecânica.
Parte 3
Especificações para linguagem de programação. As linguagens de programação foram harmonizadas e novos
elementos foram incluídos. Além de STL, LAD e FBD o “texto estruturado” foi incluído como a quarta linguagem.
Parte 4
Contém as diretrizes para os usuários de PLC. Informações para todos os estágios do projeto estão
disponíveis, tais como: iniciando análise do sistema, fase de especificação, seleção e manutenção de
dispositivos.
Parte 5
Descreve a comunicação entre os PLC´s de vários fabricantes e entre PLC´s e outros dispositivos. Baseado na
norma MAP, os utilitários de comunicação do PLC são definidos com normas suplementares para ISO/IEC
9506-1/2. Blocos de comunicação são descritos em conjunto com operações padronizadas de leitura e escrita.
Start-Up
Quando você muda de STOP ==> RUN, a CPU executa um restart simples ou completo (S7-300 só completo),
também denominado com Cold-restart ou Warm-restart. Para um completo restart, o sistema operacional deleta
os memory markers não retentivos, temporizadores e contadores, deleta a pilha de interrupções e pilha de
blocos, reseta todas as interrupções de hardware salvas e interrupções de diagnóstico, e inicializa a supervisão
do tempo de ciclo.
O S7-400 tem um tipo de start-up adicional, Restart. No restart, todos os dados são retidos e o processamento
do programa continua depois do ponto de interrupção.
Ciclo de Programa
Como mostrado na figura acima, a operação cíclica da CPU consiste de 3 componentes principais:
- A CPU atualiza o estado dos sinais de entrada na tabela imagem das entradas (PII).
- A CPU executa o programa do usuário com as respectivas operações.
- A CPU escreve os valores da tabela imagem das saídas (PIQ) no módulo de saídas.
Executando o OB 100
Deletando PIQ(parametrizável)
Habilita saídas
Sim
Falha
Para tempo excedido?
Lê em PII
Não
Habilita saídas
Executa OB 1
Lê em PII
Restart Completo
A CPU executa um completo restart quando vai do modo STOP para RUN, processo este denominado
START-UP (inicialização).
Durante o Start-up são executadas as seguintes tarefas:
-zera as áreas não retentivas da memória: markers, temporizadores e contadores; zera as
pilhas de interrupção e bloco; deleta todas as interrupções e diagnósticos de interrupção, zera a imagem do
processo de I/O´s.
- transfere os parâmetros para os módulos.
- lê as configurações de I/O e compara o estado atual das I/O´s com o estado esperado.
- OB executa o completo restart (OB100).
- habilita saídas.
Restart
As CPU’s do S7-400 tem a capacidade de executar um Restart (hot restart) quando ocorre um Start-up. O modo
do Restart, completo ou hot, é selecionado nestas CPU’s por uma chave na CPU (sob certas condições).
Quando um RESTART ocorre, a CPU executa o seguinte:
- executa o OB de hot restart (OB101)
- executa o ciclo residual
- deleta a PIQ a área de saída (parametrizável)
- habilita saídas
Q4.3
SM SM
Saída
Entrada digital
digital
PII PIQ
Byte 0 Byte 0
Byte 1 Byte 1
Byte 2 1 Byte 2
. Programa .
. do usuário . 1
. .
. A I 2.0 .
AN I 2.7
AN I 0.5
AN I 0.3
Bit 7 Bit 0 = Q 4.3 Bit 7 Bit 0
Definição
Denomina-se Imagem de Processo à uma área da CPU onde os estados das entradas e saídas binárias são a
cada ciclo armazenadas. Existem áreas distintas para as entradas e para as saídas: PII e PIQ. Normalmente o
programa de usuário quando acessa uma entrada ou saída digital está lendo na realidade esta área.
PII
A tabela imagem das entradas do processo é o local onde o estado das entradas digitais são arquivadas na
CPU. Antes do início de cada ciclo de programa, a CPU lê a periferia (módulos de entrada digital) e transfere os
estados dos sinais digitais para esta área.
PIQ
A tabela imagem das saídas contém o valor das saídas resultantes do processamento do programa. Somente
no final do ciclo de programa, estes valores de saída são transferidos para os módulos de saídas (Q).
Programa do Usuário
Quando você lê uma entrada no programa (com A I 2.0 por exemplo), o último estado da PII é utilizado na
lógica do programa. Isto garante que um mesmo estado do sinal é fornecido durante um ciclo de scan.
Ciclo
Tempo OB
FB FC SFB
Bloco de
Processo Organização
FB FB SFC
Erro
Blocos de Sistema
Blocos de sistema são funções pré-definidas ou blocos de função integradas ao sistema operacional da CPU.
Estes blocos não ocupam nenhum espaço adicional na memória do usuário. Os blocos de sistema são
chamados pelo programas do usuário. Estes blocos tem a mesma interface, a mesma designação, e mesmo
número em todo o sistema (S7-300/400). Então, você pode facilmente portar o programa do usuário entre
várias CPU´s.
Blocos do Usuário
Os blocos de usuário são áreas providas para administrar o código e os dados para seu programa. Baseado
nas necessidades do seu processo, você pode estruturar seu programa com várias opções de blocos de
usuário. Alguns desses blocos podem ser executados ciclicamente, enquanto outros blocos podem ser
executados somente quando necessitado. Blocos de usuário são também chamados de blocos de programa.
Funções (FC)
A função é um bloco de operação lógica similar ao bloco de função para o qual não é designado área de
memória. Um FC não necessita de um bloco de dados instance. As variáveis locais são arquivadas na pilha
local (L stack) até que a função esteja concluída, sendo perdidos quando o FC termina a execução.
Função de Sistema
Função de sistema é uma função pré-programada e testada que é (SFC) integrada na CPU. Algumas das
tarefas suportadas por estas funções são setar parâmetros dos módulos, comunicação de dados, funções de
cópia, etc. Uma SFC pode ser chamada pelo programa, porém sem fazer parte dele (não ocupa memória de
trabalho).
Misturador
Exaustor
Exaustor
Programa Linear
O programa inteiro reside em um único bloco de instrução contínuo. Esta estrutura é semelhante a um circuito
de relés substituído por um controlador lógico programável. O sistema processa instruções individuais
sucessivamente.
Programa Particionado
O programa é dividido em blocos, cada bloco contém uma lógica específica para dispositivos ou tarefas.
As informações residentes no bloco de organização (OB1) determinam a ordem de execução dos blocos a
serem processados. Um programa particionado pode, por exemplo, conter blocos de instruções com os quais
os modos de operações individuais de um processo industrial são controlados.
Programa Estruturado
Um programa estruturado contém blocos de instruções com parâmetros definidos pelo usuário (blocos
parametrizados). Estes blocos são projetados de forma que possam ser usados universalmente. Os parâmetros
atuais (os endereços de entradas e saídas) são especificados durante a chamada do bloco. Exemplo de blocos
parametrizáveis.
- O bloco “BOMBA" contém instruções para uma bomba, com um set de entradas e saídas exigidas
para qualquer bomba usada no processo.
- O bloco lógico responsável pelo controle específico das bombas, chama (abre) o bloco
“BOMBA” e fornece informações para identificar qual bomba irá ser controlada.
- Quando o bloco completa a execução das instruções, o programa retorna ao bloco de chamada (por
exemplo OB 1), o qual conclui as instruções.
OB 1 FC 1
Motor 1
Motor 1
FC 1
Motor 2
Motor 2
FC 1
Motor 3
Motor 3
Como é executado?
O programa dentro do OB1 (ou outro bloco) chama estes blocos genéricos para a execução. Assim dados e
códigos considerados comuns podem ser compartilhados.
Click em ...
Conteúdo Página
Selecione a pasta que contém o bloco existente ou a pasta na qual o novo bloco será armazenado.
Os blocos existentes são listados na janela à direita.
Selecione o bloco a ser editado, clicando duas vezes sobre ele. Alternativamente pode-se editá-lo
selecionando-o e então com o botão direito do mouse ativando-se a função “Open Object”.
Para se criar um bloco, seleciona-se a pasta na qual o bloco será armazenado, e com o auxílio do botão direito
do mouse seleciona-se a função ‘Insert New Object” e o tipo de bloco desejado.
Clica-se duas vezes sobre o ícone do novo bloco criado que o editor de programa será aberto
Seleção
Usando a opção “VIEW” na barra de menu, pode-se selecionar a linguagem de edição entre diagrama de
contados (LAD), blocos funcionais (FBD) ou lista de instruções (STL). Esta opção está disponível desde que um
bloco esteja aberto.
Tabela de Declarações
Tabela de Declarações
Título do
Bloco
Segmento
Seção de Instruções
Seção de Instruções
O Editor de Programas possui duas áreas com funções bem definidas: tabela de declarações e a seção
de instruções.
Tabela de Declarações
Esta tabela serve para declarar variáveis e parâmetros para o bloco. As variáveis locais (temporárias) são
definidas para uso no bloco nesta tabela.
A parametrização torna possível passar variáveis entre blocos para que sejam usados universalmente.
Seção de Instruções
Nesta área é especificado a seqüência e a lógica do programa (instruções).
Durante a edição dos operandos, a sintaxe é checada, destacando imediatamente qualquer erro.
Cada pequena lógica do programa é definida dentro de um segmento (Network). Entende-se como lógica, a
combinação de blocos que resultará numa saída/flag sendo ou não acionado.
Nas linguagens LAD/FBD o próprio Editor não permite que seja realizado mais que uma lógica por segmento.
No modo STL é possível ter várias lógicas por segmento, porém se compromete a capacidade de se visualizar
em outras linguagens (LAD/FBD).
Comentários
O editor permite ainda o acréscimo de comentários: título e comentário do bloco e título e comentário para cada
segmento. Através da função View==> Commentar pode-se visualizar ou não estes comentários.
Introdução
A edição do programa em diagrama de contatos é feita basicamente com o auxílio do mouse. Basta posicionar
o ponto e selecionar o elemento que deve ser inserido no programa. Após isto, digita-se o endereço dos
operandos (por ex. I0.0, M43.5). Os elementos lógicos são encontrados ou na barra de ferramentas na forma de
ícone ou através de um catálogo de instruções, como mostrado na figura acima.
Catálogo de Instruções
Outros elementos (instruções) são acessadas pelo catálogo de instruções, acessado pelo ícone ao lado ou pela
combinação das teclas Ctlr+K
PRGG_T2D
Introdução
Semelhante ao modo LADDER, a edição em blocos funcionais é feita com o auxílio do mouse. Selecione o
ponto em que deve ser inserido o elemento e a partir do catálogo de instruções ou da barra de ferramentas
selecione o elemento desejado. Para endereçar os operandos, selecione o campo apropriado e digite o
operando (ex. Q2.6, M4.5).
Este ícone dá acesso ao catálogo com todas as instruções FBD.
Comentários
Os comentários são editados como no modo diagrama de contatos.
Correções
Posicione o cursor do mouse sobre o elemento e pressione a tecla DEL.
Regras
Blocos padrões (flipflops, contadores, temporizadores, operações matemáticas etc.) podem também ter um
outro bloco com operações lógicas binárias ( &, >=1, XOR) associado. A exceção para esta regra são os blocos
de comparação.
- Em um único segmento, não é possível programar operações que são separadas por saídas.
É possível, entretanto, com o auxílio do T-branch, que a uma lógica estejam associadas diversas saídas.
- Deletando um bloco, todas as ramificações que são conectadas com a entrada booleana, com
exceção da ramificação principal, são deletadas.
- O modo de sobre-escrever é disponível para troca simples de elementos do mesmo tipo.
Esta demonstração auxilia a familiarizar-se com os itens de menu para a edição e depuração do seu
bloco. Estas ferramentas são necessárias quando você for escrever o seu programa no próximo exercício.
Selecione a
pasta Blocks
Objetivo
Procedimento
1. Destaque a pasta Blocks do S7 Program, subordinado à estação de Hardware.
2. Selecione no campo de diálogo View ==> Off-line.
3. Selecione OB1 (double click).
4. Com ajuda dos símbolos na barra de ferramentas, digite o seguinte programa em
ladder.
Resultado
Notas
Para posicionar o primeiro elemento, aponte o cursor para a linha da network.
Use os símbolos de programa da barra de ferramentas.
Posicione o cursor em cima do símbolo(tecla TAB ou mouse) para digitar o endereço
Use a tecla TAB para saltar entre os elementos.
Depois do bloco aberto, pode-se escolher entre os métodos de representação LAD (Diagrama Ladder),
FBD (Blocos de Função) e STL (Lista de instruções). Todas as instruções são sempre convertidas para STL,
porém a conversão para LAD/FBD nem sempre ocorre em todos os segmentos.
Objetivo
Selecionar a linguagem de programação para edição do bloco.
Procedimento
1. Abrir um bloco para edição (por ex. o OB1 do exercício anterior)
2. Seclecionar o modo de edição/visualização:
- LAD, selecionar no menu de comando View ==> LAD.
- STL, selecionar no menu de comando View ==> STL.
- FBD, selecionar no menu de comando View ==> FBD.
Resultado
Seu program é representado em um dos seguintes tipo de representação:
Diagrama Ladder:
A I 0.0
AN I0.1
= Q 8.0
Como qualquer editor de programas/textos, é necessário salvar seu trabalho após a edição. Isto é como
um “Save” normal do Windows, o qual pode ser usado com os dois procedimentos exibidos acima.
Quando usado o comando de menu File ==> Save As, deve-se especificar o projeto, programa e e nome do
bloco para este arquivo.
Depois de salvo, este bloco se encontra como um ícone na pasta Blocks do projeto/programa em que foi salvo.
Pode-se utilizar o SIMATIC Manager como o “Explorer” para copiar ou mover o bloco para outros projetos,
CPU’s, etc.
Objetivo
Salvar um bloco de programa.
Procedimento
1. Selecionar no menu de comando File ==> Save ou clique no ícone Save.
2. Ou selecione no menu de comando File ==> Save As e especifique o arquivo de destino.
Resultado
1. Salva o bloco de programa com o nome especificado quando o bloco está aberto
2. Com "Save As" o bloco de programa é salvo com o nome que você digitar .
Nota
O programa não é copiado para a CPU através do procedimento “Save”.
Depois editado o programa, o próximo passo é transferir o bloco para a CPU. Usando o Editor
LAD/STL/FBD pode-se transferir um bloco individualmente enquanto ele estiver aberto, ou pode-se usar
alternativamente o SIMATIC Manager para transferir o bloco. O procedimento para usar o SIMATIC Manager é
descrito nos próximos exercícios (transferindo o programa)
Objetivo
Transferir um bloco (OB1) para a CPU com o editor LAD/STL/FBD.
Procedimento
Quando o editor LAD/STL/FBD está aberto ....
1. Selecionar o menu de comando PLC => Download (um click no ícone Download exibido acima.)
(responda as questões no menu de exibição).
Quando você responde com “Yes” , o bloco presente na CPU é sobre escrito. Quando você responde com
“No” , o bloco original permanece na CPU, e seu bloco não é transferido. Para este exercício selecione “Yes”,
porque você deseja usar um novo bloco por você editado, e não o bloco antigo.
Resultado
Seu novo programa é escrito na CPU.
Usando o SIMATIC
Manager
Usando o Editor
de Programa
On-line significa que os objetos exibidos são os blocos residentes na CPU. Esta conexão não depende
da CPU estar em modo RUN ou modo STOP. Com o STEP 7 você pode estabelecer conexão de dois métodos:
Objetivo
Usar o Editor LAD/STL/FBD para estabelecer conexão com a CPU.
Procedimento
Use o o Editor S 7 LAD/STL/FBD para abrir ou editar o bloco na CPU.
1. Selecione “Program S7 Blocks (LAD/STL/FBD)”
2. Selecione no menu de comando File-=> Open.
3. Selecione a opção View => On-line da lista drop-down.
Depois que foi selecionado “On-line”, o dispositivo de programação seta a conexão. Os blocos
localizados na CPU são exibidos no menu. Para editar ou depurar um desses blocos, selecione o bloco
pertinente na lista. É possível ter mais que um bloco aberto simultaneamente. Quando você executar este
procedimento e selecionar a opção “Arrange” no item Window do menu, você pode ver os dois blocos
simultaneamente
Objetivo
Usar o SIMATIC Manager para estabelecer a conexão com a CPU
Procedimento
O SIMATIC Manager pode também ser usado para abrir ou editar blocos na CPU (o Editor LAD/STL/FBD é
iniciado automaticamente).
1. Inicie o SIMATIC Manager.
2. Selecione no menu de comando View ==> On-line.
Quando você selecionar o diretório da CPU, o SIMATIC Manager exibe os nome de todos blocos
localizados na CPU. Você também pode usar este menu para abrir blocos para edição e depuração de
programas.
O bloco deve ser aberto on-line para que o processo seja monitorado. A seção de instrução dos blocos
exibe o estado de operação quando os valores mudam. Em LAD, um código de cores exibe o fluxo de corrente,
e contatos abertos ou elementos são representados por linha pontilhada. Entre outras coisas, as cores e os
tipos de linhas podem ser mudados via a função do menu Options ==> Customize ==> LAD/STL/FBD.
Objetivo
Depurar o bloco enquanto ele está sendo processado pela CPU.
Procedimento
1. Use um dos procedimentos do exercício anterior para selecionar o bloco que deseja testar
(modo on-line).
2. Selecione o método de representação View => LAD/STL ou FBD.
3. Selecione no menu de comando Debug ==> Monitor.
Resultado
Os elementos do programa e os símbolos são exibidos e ativados se logicamente verdadeiros.
Os valores que não são “Logicamente Verdadeiros” não são destacados.
SR_FF
S Q
Conteúdo Página
Instruções de Bit.................................................................................. 2
AND, OR, XOR.................................................................................... 3
Resultado de Operações Lógicas, First Check................................... 4
Setting de Instruções, Resetando e Salvando.................................... 5
Instruções que influenciam o RLO...................................................... 6
Avaliação do Flanco de Impulso......................................................... 7
Exercício: Operações Básicas............................................................ 8
Exercício: Planta de Engarrafamento, Modo de Operação................. 9
Q 9.0 Q 9.0
Seta Saída (S) S S Q 9.0
Q 9.0
Q 9.0
Reseta Saída R R Q 9.0
(R)
M 10.0 M 10.0
Seta/Reseta Flip Flop I 0.1 SR_FF SR_FF A I 0.1
S Q I 0.1 S Q S M 10.0
I 0.2
A I 0.2
R I 0.2 R R M 10.0
Geral
As instruções de BIT trabalham com dois valores, 1 e 0. Com instrução na forma de um contato ou de uma
saída, 1 indica ativado ou energizado; 0 indica desativado ou desenergizado. Instruções de BIT interpretam o
estado do sinal 0 ou 1 e o combina de acordo com a lógica booleana. O resultado destas combinações é 0 ou 1,
denominado como “Resultado da Operação Lógica” (RLO).
Instruções de bit:
- Scan para Sinal “1”
- Scan para Sinal “0”
- Saída
- Conector
- Setar Saída
- Resetar Saída
- Setar/Resetar Flip Flop
- Resetar/Setar Flip Flop
- RLO Negado
- Salvar RLO
AND
Se e somente se o estado do sinal I0.0 = 1 e I0.1 = 1, o resultado da operação lógica (RLO) é 1, e a saída Q8.0
torna-se 1. Se uma ou ambas as entradas tem sinal 0, o RLO é 0 e a saída torna-se 0.
OR
Se o estado do sinal I0.2 = 1 ou I0.3 = 1, o RLO é 1 e a saída Q8.1 torna-se 1. Se nenhuma das entradas for 1,
o RLO = 0, e a saída torna-se 0.
XOR
A instrução XOR torna o RLO 1 se e somente se uma das entradas for 1. Se nenhuma das entradas for 1 ou
se ambas forem 1, o RLO é 0, e a saída torna-se 0.
RLO
As instruções vistas até agora tratam principalmente de checks e designações. Isto significa: O scan processa o
estado do sinal de entrada, saída, memory markers (flag), e designa um estado de sinal para saída ou memory
markers (flag).
Dois ou mais bits que forem checados em função de uma associação qualquer geram uma operação lógica. O
resultado desses checks é o resultado da operação lógica (RLO). O resultado da operação lógica de uma AND
ou uma OR pode então ser designado a uma saída ou a uma memória (flag).
First Check
O termo first check (primeira checagem) indica que está sendo executada a primeira instrução de uma lógica.
Isto significa que uma nova operação lógica se iniciou, e que o resultado (RLO) da operação lógica anterior não
será considerado.
Isto torna sem importância, qual instrução (por ex. AND ou OR) está sendo utilizada como primeira instrução de
uma lógica escrita em STL.
O “first check” é gerado automaticamente pelo CLP sempre que uma lógica foi encerrada (por ex. uma saída foi
setada) ou um novo bloco foi iniciado.
& A I1.1
Reset I1.1 Q9.0 Q9.0
I1.1 R Q9.0
R R
M0.0 M0.0 A I1.2
Set/reset Q9.3
I1.2 SR_FF Q9.3 SR_FF S M0.0
S Q I1.2 S Q = A I1.3
Flip flop
I1.3 R M0.0
I1.3 R
R A M0.0
= Q9.3
Reset/set M0.2
I1.4 RS_FF Q9.4 M0.2 Q9.4 A I1.4
R Q RS_FF R M0.2
Flip flop I1.4 =
I1.5 R Q A I1.5
S S S M0.2
I1.5 A M0.2
= Q9.4
Geral
A função “flip-flop” consiste de operações de SET e RESET. As operações de Set e Reset somente são
executadas quando RLO=1. Quando o RLO=0, o estado atual permanece inalterado. Se a condição para
ambos, set e reset são verdadeiros simultaneamente, então em STL, a instrução programada por último tem
prioridade. Em LAD e FBD é possível selecionar o bloco com prioridade na entrada setar ou na entrada resetar.
Set
Quando o RLO=1, o endereço é setado e permanece inalterado até a condição de reset ser executada. Se,
neste exemplo, o estado do sinal de I1.0=1, mesmo por um único ciclo, a saída Q9.0 torna-se 1 e permanece
até que seja resetado por outra instrução.
Reset
Quando o RLO=1, o endereço é resetado. Se, neste exemplo, o estado do sinal de I1.1=1, mesmo por um único
ciclo, a saída Q9.0 torna-se 0.
Flip-flop Set/Reset
Se o estado do sinal de entrada S=1, e a entrada R=0, o endereço (bloco acima) é setado .
Reset dominante: se o estado do sinal R torna-se “1”, o endereço setado anteriormente é resetado para 0,
independente do estado da entrada S (reset dominante)
Flip-flop Reset/Set
Com este tipo de bloco, o set é dominante.
NOT
NOT é uma instrução para inverter o RLO. Se o RLO precedente a instrução NOT for 0, este é negado para 1.
Reciprocamente, tornará-se zero se o RLO for 1.
CLR
O RLO torna-se 0 com a instrução CLEAR, independente da condição anterior
SET
A instrução SET faz com que o RLO se torne 1.
SAVE
Com a instrução de memória SAVE, o conteúdo do RLO é arquivado no bit BINARY RESULT (BR) da
palavra de status.
A BR
O RLO arquivado pode ser checado novamente usando a instrução A BR
um scan
LAD FBD STL
Q8.5
Network 3
I0.2 Q8.2
OR Network 8 Conector
I0.5 I0.6 M0.0 I0.7 Q8.6
I0.3
#
Network 4 Network 9
Q8.3 M0.0
I0.2 I0.4 OR antes AND Bit de memória Q8.7
I0.3 Network 10
I1.0 I1.1 XOR Q4.0
Network 5
I0.5 I1.0 I1.1
Set Q8.4
(S)
Objetivo
Entender os elementos lógicos comuns e combinações de operações lógicas binárias, e começar familiarizar-
se com o Editor S7 LAD/STL/FBD digitando operações lógicas.
Procedimento
1. Editar um OB1 (se existente, deletar o seu conteúdo).
2. Digitar as operações lógicas mostradas. Usar uma network para cada função
3. Salvar, carregar e depurar blocos na CPU.
(Quando carregando, especificar se o OB1 irá sobrescrever o da CPU)
Resultado
No modo Debug, pode-se visualizar o resultado das operações lógicas.
Sensor de
garrafas
I1.6
Objetivo
Programe o modo de operação dos componentes para planta de engarrafamento de acordo com as
especificações abaixo:
O sistema é iniciado através da entrada I0.0 (botão não retentivo, NA)
O sistema é desligado através da entrada I0.1(chave, contato NF)
A saída Q8.0 liga a lâmpada quando o sistema é iniciado.
Quando o sistema é iniciado, o modo de operação pode ser selecionado:
- Com I 0.3=0 a operação manual é selecionada e com I0.3=1 a operação automática é
selecionada.
- Com o pulso na entrada I0.4, o modo de operação é aceita.
O modo de operação deverá ser sinalizado por (manual=Q8.1, automático= Q8.2).
O modo de operação manual deve ser selecionado quando o sistema está desligado.
Durante a operação manual, a correia transportadora pode ser movimentada para frente com os botões não
retentivos I0.5 (Q8.5) e para trás com I0.6 (Q8.6) respectivamente.
Procedimento
Desenvolva um programa para o controle do modo de operação.
1. Use os endereços I/Q e os dispositivos mostrados acima.
2. Criar um programa S7 com o nome "ENGARRAF" no projeto PRO1.
3. Escreva um programa para implementar as partes desta aplicação no FC15 e chame o FC15 no
OB1.
4. Salve, transfira e depure seu programa no dispositivo de treinamento.
Resultado
Teste o funcionamento no simulador, selecionando o modo de operação.
Teste a operação em Manual (liga para frente/trás).
S_ZV
ZV Q
S_AVERZ S
S Q S_EVERZ
PV DUAL S Q
TV DUAL
RR DEZ
DEZ TV DUAL
R DEZ
R DEZ
CMP
==I
IN1
IN2
Conteúdo Página
T5 T5 A I0.7
I1.7 S_OFFDT Q8.6 S_OFFDT L S5T#35s
S Q I1.7 S Q Q8.6 SD T4
S5T#55s TV MW4 S5T#55s TV MW4 A I0.5
BI BI
I1.5 R T4
R BCD MW6 I1.5 R BCD MW6 L T4
T MW0
T6 T6
LC T4
I1.3 S_ODTS Q8.7 S_ODTS T MW2
S Q I1.3 S Q Q8.7
A T4
S5T#105s TV BI MW10 S5T#105s TV BI MW10
I1.4
= Q8.5
R BCD MW12 I1.4 R BCD MW12
T2 T2
I0.0 S_PULSE Q9.0 S_PULSE S_PULSE
S Q I0.0 S Q Q9.0
S5T#45s
I0.1
TV BI MW5 S5T#45s TV BI MW5 A I0.0
R BCD MW7 I0.1 R BCD MW7 L S5T#45s
SP T2
A I0.1
R T2
L T2
T9 T MW5
LC T2
I0.2 S_PEXT Q9.1 S_PEXT
S Q I0.2 S Q Q9.1 T MW7
S5T#85s TV MW9 S5T#85s TV BI MW9
A T2
BI
I0.3 = Q9.0
R BCD MW11 I0.3 R BCD MW11
Pulse
S_PULSE
Pulso
Extended Pulse
S_PEXT
Pulso Extendido
As três opções de contadores existentes são descritos a seguir. Uma área de memória é reservada
para os contadores. Esta área de memória reserva uma palavra de 16 bits para cada endereço de contador até
256 (dependendo da capacidade da CPU). O valor máximo presetado é 999 (BCD).
I0.0
T5
T5
I0.0 & SD SD A I0.0
( SD ) L S5T#25s
S5T#25s S5T#25s
T9 SD T5
I0.1 T9
& SF SF A I0.1
( SF ) I0.1
L S5T#15600MS
S5T#15600mS S5T#15600ms
SF T9
I0.2 T2 T2
SP A I0.2
( SP ) I0.2 & SP
L S5T#12S
S5T#12S S5T#12s SP T2
I0.3 T6 T6 SE A I0.3
I0.3 & SE
( SE ) L S5T#500MS
S5T#500ms S5T#500ms SE T6
I0.4 T10 SS A I0.4
T10
I0.4 & SS L S5T#20MS
( SS )
S5T#20ms S5T#20ms SS T10
C14 CU A I0.5
I0.5 C14
I0.5 & CU CU C14
( CU) CD A I0.6
I0.6
C17 CD C17
C17
I0.6 & CD
( CD )
Temp. On-Delay SD
Se o RLO mudar de 0 para 1, o temporizador SD é inicializado. Se o temporizador estiver funcionando, e o RLO
mudar de 1 para 0, o temporizador para.
Temp. Off-Delay SF
Se o RLO muda de 1 para 0, o temporizador SF é inicializado. Se o RLO mudar de 0 para 1, o temporizador é
resetado. O temporizador não é completamente reinicializado até que até que o RLO mude de 1 para 0.
Temp. de Pulso SP
Se o RLO muda de 0 para 1, o temporizador SP recebe o valor do tempo. O temporizador funciona com tempo
específico, contanto que RLO = 1. Se o RLO mudar de 1 para 0 com o temporizador funcionando, o
temporizador para.
Contador Crescente CU
A bobina CU incrementa de 1 o valor de um contador específico, se o RLO mudar de 0 para 1.
Contador Decrescente CD
A bobina CD decrementa de 1 o valor de um contador específico, se o RLO mudar de 0 para 1.
0000 0000 IB 0 IB 1 L IW 0
31 24 23 16 15 8 7 0
MB 0 MB 1 MB 2 MB 3 L MD 0
Instrução de Transferência
31 24 23 16 15 8 7 0
MB 0 MB 1 MB 2 MB 3
T QD 4 T QW 4 T QB 4
Geral
Acumuladores são memórias auxiliares na CPU para troca de dados entre vários endereços, para comparação
e operações matemáticas. O S7-300 tem dois ACCU’s (acumuladores) com 32 bits cada, e o S7-400 tem quatro
acumuladores com 32 bits cada.
RLO
As instruções de load e transfer são independentes do RLO e são portanto sempre executadas. Em LAD e
FBD, é possível carregar e transferir condicionalmente utilzando-se a entrada EN do bloco MOVE.
Em STL, você pode implementar isto com jumps condicionais
L - Load T - Transfer
MOVE
(Todos os tipos de dados com 8, 16, 32 bits)
EN ENO
Exemplos:
L +5 // Carrega uma constante 16-bit
5 IN L L#523123 // Carrega uma constante 32-bit
O MB 5
L B#16#EF // Carrega byte em hexadecimal
L 2#0001_0110_1110_0011
EN - Habilita Entrada // Carrega valor binário 16-bit
ENO -Habilita Saída L TOD#1:10:3.3
IN - Valor de Entrada // Carrega tempo com 32-bit
(Tamanho de todos os tipos
de dados 8, 16, 32 bit ) T MB0 // Transfere valor para byte de
O - Target address memória 0
(Tamanho de todos os tipos T QD256 // Transfere valor para double
de dados 8, 16, 32 bit ) word 256
MOVE (LAD/FBD)
A instrução MOVE torna possível designar valores a variáveis. Se a entrada EN é ativada, o valor presente na
entrada IN é copiado para o endereço especificado para saída O. ENO tem o mesmo estado do sinal que EN.
L and T (STL)
As instruções Load e Transfer permitem programar troca de dados entre áreas de memória. Load e Transfer
são executados incondicionalmente e independentemente do RLO. A troca de dados é feita via acumulador.
A instrução Load transfere o conteúdo do endereço para o acumulador 1. Quando isto acontece o conteúdo do
acumulador 1 é transferido para o acumulador 2.
A instrução Transfer copia o conteúdo do acumulador 1 para o endereço destino.
.
== IGUAL A
<> NÃO IGUAL A
> MAIOR QUE
< MENOR QUE
>= MAIOR QUE OU IGUAL A
<= MENOR QUE OU IGUAL A
Comparação
Com as instruções de comparação, você pode comparar os seguintes pares de valores numéricos.
- dois inteiros (cada um com 16 bits)
- dois inteiros duplos (cada um com 32 bits)
- dois números reais (IEEE número de ponto flutuante, cada um com 32 bits)
Relação
Todas as instruções de comparação comparam os valores IN1 e IN2 baseados nas seguintes relações:
- IN1 é igual a (==) IN2.
- IN1 é diferente de (<>) IN2
- IN1 é maior que (>) IN2
- IN1 é menor que (<) IN2
- IN1 é maior que ou igual a (>=) IN2
- IN1 é menor que ou igual a (<=) IN2
RLO
Se a comparação é satisfeita, o resultado da operação lógica é 1.
Salto Incondicional
A instrução Jump Incondicional interrompe o fluxo normal da lógica de controle e provoca o salto de programa
para a posição marcada pelo rótulo (label). O label é representado em LAD/FBD de maneira parecida ao
elemento de saída, porém com as letras JMP e o nome do rótulo destino associado; em STL o label é
localizado atrás da instrução JU.
LAD “label”
--( JMP )
FBD
STL JU “label”
Rótulos (labels)
O label marca o ponto onde o programa irá continuar a execução, após o salto. Instruções ou segmentos
localizadas entre o jump e o label não serão executadas.
O label obrigatoriamente deve estar localizado no mesmo bloco (OB,FB,FC) que a instrução jump a que está
associada.
Jump if RLO = 0
NEW1
Is RLO=0? I0.0 JMPN
I0.0 I1.0 REC2 & A I0.0
( JMPN ) I1.0 A I1.0
JCN REC2
Introdução
Saltos condicionais ocorrem sempre em função do estado do RLO.
Salto Condicional
O jump condicional JC é executado se e somente se o RLO for 1. Estando o RLO = 1 (JC) RLO=1 a
instrução se comporta da mesma maneira que um jump incondicional. Porém se o RLO=0 a instrução jump é
ignorada e a execução do programa continua a partir da instrução seguinte.
Salto Condicional
O jump condicional JC é executado se e somente se o RLO = 0. Estando o RLO =0 (JCN) RLO=0 a instrução
se comporta da mesma maneira que um jump incondicional. Porém se o RLO=1 a instrução jump é ignorada e
a execução do programa continua a partir da instrução seguinte.
JCB/JNB
Além das instruções acima, existe duas outras opções em STL que são a combinação do RLO e o bit BR:
- Jump se RLO = 1 com RLO armazenado em BR (JCB)
- Jump se RLO = 0 com RLO armazenado em BR (JNB)
Ambas instruções trabalham da maneira que JC e JCN trabalham; o jump é executado baseado no RLO. As
instruções jump JCB e JNB salvam adicionalmente o RLO no bit BR da palavra de status.
Nota:
Se o jump condicional não é satisfeito, o programa continua a processar as instruções seguintes ao jump e o
RLO é setado para “1”.
MCRA
A instrução MCR Activate ativa a função Master Control Relay. As instruções Master Control Relay On e
Master Control Relay Off MCA< e a MCR> devem seguir a instrução MCRA.
MCR<
A instrução Master Control Relay On marca o inicio da zona de controle lógico. MCR< abre a área MCR e
trigga instruções que armazenam o RLO na pilha MCR. A pilha pode ter até oito entradas. Isto significa que até
oito níveis de controle individuais podem ser incluídas entre os comandos MCRA e MCRD.
MCR>
A instrução Master Control Relay Off marca o fim da área de controle lógico. O MCR> é combinado com o
mais próximo MCR< .
MCRD
A instrução MCR Deactivate desativa a função MCR. Você não pode programar nenhuma área MCR depois do
MCRD. Esta instrução é uma exigência para a associação lógica com MCRA.
Objetivo
Continue a aplicação do exercício 8.2. A aplicação deverá trabalhar da seguinte forma:
Controle do transportador em operação automática
Em operação automática, o motor do transportador (Q8.5) ligará e permanecerá ligado até quando a chave de
STOP (I0.1) abra, ou até que o sensor (I1.6) detecte a presença da garrafa. Depois que a garrafa é abastecida
(temporizado), o transportador deverá partir automaticamente novamente e e permanecer ligado até que outra
garrafa seja detectada ou até que a chave STOP seja aberta.
Quando a garrafa está localizada embaixo do dispositivo de abastecimento (I1.6=1), o procedimento de
abastecimento é iniciado. O processo de abastecimento é simulado por 3 segundos e é sinalizado através da
saída Q5.0
Contando as Garrafas
Existe dois sensores adicionais destinados a registrar garrafas cheias e vazias. O sensor I1.5 registra garrafas
vazias e o sensor I1.7 registra garrafas cheias. Garrafas cheias e e vazias devem ser contadas assim que
sistema parta, (C1 garrafas vazias, C2 garrafas cheias) e o número de de garrafas cheias é então exibido no
display digital QW6
Procedimento
1. Desenvolva um programa no bloco FC16 e adicione a chamada no OB1 (Projeto PRO1, programa
“ENGARRAF”). No FC15 você também deverá modificar a network na qual o movimento do transportador para
frente é programado.
2. Testar a solução no dispositivo de treinamento
Resultado
Simule a função de operação automática e de contagem.
BCD_I
EN ENO
MUL_R
EN ENO IN OUT
IN1
IN2 OUT
Conteúdo Página
Formato de Números......................................................................... 2
Instruções de Conversão de Tipos de Dados..................................... 3
Operações Lógicas Digitais................................................................. 4
Funções Matemáticas Básicas ........................................................... 5
Funções Matemáticas Avançadas...................................................... 6
Funções de Deslocamento e Rotação................................................ 7
Exercício : Operações de Palavra....................................................... 8
Exercício : Planta de Engarrafamento - Nível..................................... 9
Número Número 15 8 7 0
Decimal BCD
0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1
0 0000
1 0001 Valor Decimal : 128 + 64 + 8 + 4 + 1
2 0010 Bit de sinal
3 0011 Tipo de Dados INTEGER ex.: 500
4 0100
5 0101
6 0110 31 24 23 16 15 8 7 0
7 0111
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
8 1000
9 1001
Expoente: Mantissa
10 (8 bit) (24 bit)
11
12 Tipo de Dados Real ex.: 45.6789
13
14
15
Código BCD
O dígito de um número decimal poder ser codificados com quatro dígitos binários. Esta representação deriva do
fato que o maior número decimal de 1 dígito, que é o número 9, necessita de pelo menos quatro posições para
a representação em binária.
Para representar os dez dígitos decimais 0 até 9 em código BCD você usa a mesma representação como você
usaria para números binários de 0 até 9.
De 16 combinações possíveis de quatro dígitos binários, seis não são utilizadas. Estas combinações “proibidas”
são chamadas de pseudo tetrad.
INTEGER(INTEIRO)
O tipo de dados INT é um inteiro (16 bits). O bit de sinal (bit no. 15) indica se você está tratando com números
positivos ou negativos (“0” = positivo, “1”=negativo). A faixa de um inteiro (16 bit) está entre -32768 e +32767.
Um inteiro ocupa uma palavra de memória. Em formato binário, um inteiro negativo é representado com o
complemento de dois de um número inteiro positivo. Você chega ao complemento de dois de um inteiro positivo
quando inverte o estado do sinal de todos os bits e adiciona “1” ao resultado.
NÚMERO REAL
Um número real (também chamado de número de ponto flutuante) é um número positivo ou negativo que
abrange valores tais como 0,339 ou -11,32. Você pode também trocar o número real com um expoente como
potência inteira de 10, com que o número real tem que ser multiplicado, de forma a atingir o valor desejado.
Como resultado, o número 1024 pode ser expresso como 1.024E3.
O numero real ocupa duas palavras de memória e o sinal do número é definido pelo bit mais significativo. Os
bit´s restantes representam o expoente e a mantissa.
A faixa na qual o número real está compreendido é -3.402823 1038 a 3.402823 1038
BCD_I BCD_I
EN ENO
L IW4
BTI
IW4 IN OUT MW20 T MW20
DI_REAL
DI_REAL
EN ENO L MD10
DTR
MD10 IN OUT MD30 T MD30
ROUND
ROUND
EN ENO L MD33
RND
MD33 IN OUT MD69 T MD69
EN = Enable input
A conversão é executada somente se o RLO é verdadeiro (=1).
IN = Valor de entrada
Valor a ser convertido
TRUNC TRUNC Converte ponto flutuante (real 32 bit IEEE) em inteiro duplo.
ROUND RND Converte um número real em inteiro duplo e arredonda o resultado para
o próximo número.
CEIL RND+ Converte um número real em inteiro duplo e arredonda o resultado para
o mais próximo inteiro menor ou o mesmo número.
WAND_W WAND_W
EN ENO L IW4
L W#16#0FFF
IW4 IN1 AW
W#16#0FFF IN2 OUT MW30 T MW30
WOR_W WOR_W
L MW32
EN ENO
L W#16#0001
MW32 IN1 OW
W#16#0001 IN2 OUT MW32 T MW32
WXOR_W
WXOR_W L IW0
EN ENO L MW28
IW0 IN1 XOW
T MW24
MW28 IN2 OUT MW24
WAND_W
A instrução “Word AND” combina dois valores digitais especificados na entrada IN1 e IN2 bit a bit, baseado na
tabela verdade AND. O resultado da operação é salvo no endereço OUT. A instrução é executada se o
sinal de entrada de EN=1. ENO tem o mesmo estado do sinal de EN.
Tabela Verdade AND:
WOR_W
A instrução “Word OR”combina dois valores digitais baseados na tabela verdade OR bit a bit, para valores de
entrada IN1 e IN2. O resultado da operação OR é salvo no endereço OUT. A instrução é executada , se o
estado da entrada EN=1. ENO tem o mesmo estado do sinal de EN.
Tabela verdade OR:
WXOR_W
A instrução “Word Exclusive OR” combina dois valores binários das entradas EN1 e EN2 bit a bit e de acordo
com a tabela verdade OR Exclusive. O resultado da operação WXOR é salvo no endereço OUT. A instrução é
ativada, se a entrada EN=1. ENO tem o mesmo estado do sinal de EN.
Tabela verdade XOR:
ADD_I
ADD_I
L MW4
EN ENO L MW10
MW4 IN1 +I
MW10 IN2 O MW6 T MW6
SUB_I
SUB_I L MW5
EN ENO L MW11
MW5 IN1 -I
MW7 T MW7
MW11 IN2 O
MUL_R
MUL_R L MD6
L MD12
EN ENO
*R
MD6 IN1 T MD67
MD12 IN2 O MD67
DIV_R
DIV_R
L MD67
EN ENO L MD3
MD67 IN1 /R
MD3 IN2 O MD33 T MD33
Existem várias funções aritméticas, como exibidas abaixo. As instruções têm o seguinte formato:
EN = Habilita entrada
A instrução será executada se e somente se o RLO é verdadeiro (RLO=1).
ENO = Habilita saída
A saída Enable output tem o mesmo estado de sinal que EN (EN=ENO), a menos que tenha havido um erro
durante a conversão. Por exemplo, a instrução DIV_I fornece EN0=0 quando se faz um divisão por zero.
IN1 = Entrada 1
1. valor aritmético da instrução.
IN2 = Entrada 2
2. valor aritmético da instrução.
O = Saída
Resultado da operação aritmética.
Adição
ADD_I Soma inteiros
ADD_DI Soma inteiros duplos
ADD_R Soma números reais
Subtração
SUB_I Subtrai inteiros
SUB_DI Subtrai inteiros duplos
SUB_R Subtrai números reais
Multiplicação
MUL_I Multiplica Inteiros
MUL_DI Multiplica inteiros duplos
MUL_R Multiplica números reais
Divisão
DIV_I Divide inteiros
DIV_DI Divide inteiros duplos
DIV_R Divide números reais
SQRT SQRT
EN L M D10
ENO
SQRT
T MD 14
MD10 IN O MD 14
SIN
SIN
EN ENO L MD 18
SIN
MD 18 IN O MD 22 T MD 22
TAN SQR
EN ENO L MD 34
SQR
T MD 38
MD 26 IN O MD 30
SQR
EN ENO TAN
L MD 26
TAN
MD 34 IN O MD38 T MD 30
Existem várias funções matemáticas e trigonométricas com pontos flutuantes, como mostrado abaixo.
Estas instruções têm o seguinte formato:
EN = Habilita entrada
A instrução será executada se e somente se o RLO é verdadeiro (RLO=1).
ENO = Habilita saída A saída Enable output tem o mesmo estado de sinal que EN (EN=ENO), a menos
que tenha havido um erro durante a conversão. Por exemplo, quando há um overflow.
IN = Valor de Entrada
1° operando da instrução (número real).
O = Valor de Saída
Resultado da operação (número real)
.
ABS Valor Absoluto de um número real
ACOS Arco Coseno para um número real (resultado em radianos)
ASIN Arco Seno para um número real (resultado em radianos)
ATAN Arco Tangente para um número real (resultado em radianos)
COS Coseno para um número real (resultado em radianos)
EXP Expoente para número real
LN Logaritmo Natural para um número real
SQR Raiz de um número real
SQRT Raiz Quadrada de um número real
SIN Seno de um número real (resultado em radiano)
TAN Tangente de um número real (resultado em radiano)
SHL_W
SHL_W
EN ENO * L MW50
MW50 IN SLW 2 //Multiplicação por 4
T MW12
MW4 N O MW12
(MW4 = 2)
ROR_DW ROR_DW
EN ENO *
MD60 L MD60
IN
RRD 4
MW6 N O MD50 T MD50
(MW6 = 4)
Shift / Rotate
Com as instruções Shift e Rotate, você pode deslocar o conteúdo da mais baixa word do Acumulador 1 ou o
conteúdo do acumulador para a direita ou para esquerda, bit a bit. A instrução (por exemplo, SLW=desloca
palavra para esquerda) determina a direção da operação de deslocamento. O parâmetro N especifica o número
de bits a serem deslocados. Na operação de deslocamento de palavra, os bits vazios são preenchidos com o
bit(MSB) de sinal (0=positivo e 1=negativo). Na operação de rotação, os bits vazios são preenchidos com o
conteúdo que foi rotacionado.
Instruções de Deslocamento:
SHL_W
Deslocamento de uma Word para esquerda. Os bits de 0 até 15 do acumulador são deslocados para
esquerda de N bits(posições). Bits vazios são preenchidos com zero.
SHL_DW
Deslocamento de uma Word dupla para esquerda. O conteúdo do Acumulador 1 é deslocado bit a bit, N
bits(posições) para esquerda. Bits vazios são preenchidos com zero.
SHR_W
Deslocamento de uma Word para direita. Os bits de 0 até 15 do acumulador são deslocados para direita
de N bits(posições). Bits vazios são preenchidos com zero.
SHR_DW
Deslocamento de uma Word dupla para direita. O conteúdo do Acumulador 1 é deslocado bit a bit, N
bits(posições) para direita. Bits vazios são preenchidos com zero.
SHR_I
Deslocamento de um Inteiro para Direita. Os bits de 0 até 15 do acumulador são deslocados para direita de N
bits. Bits vazios são preenchidos com o valor do bit de sinal (bit 15).
SHR_DI
Deslocamento de um Inteiro Duplo para Direita. O conteúdo do Acumulador 1 é deslocado para direita bit a bit
de N bits. Bits vazios são preenchidos com o valor do bit de sinal (bit 31)
Instruções de Rotação:
ROL_DW
Rotaciona uma Word dupla para esquerda. O conteúdo do Acumulador 1 é rotacionado bit a bit N bits para
esquerda.
ROR_DW
Rotaciona uma Word dupla para direita. O conteúdo do Acumulador 1 é rotacionado bit a bit N bits para direita.
IW2 PV CV MW0
I0.6
R CV_BCD MW4
Network 2
Objetivos
1. Familiarizar-se com as instruções.
2. Manusear o browser (catálogo) de instruções e o help de funções.
Procedimento
1. Criar um programa com o nome "MATEMAT" no projeto PRO1.
2. Editar, salvar, transferir e depurar as operações lógicas exibidas acima usando o Editor de Programas (Você
pode trabalhar em LAD, FBD ou STL ).
Resultado
Quando acionado (contador crescente) I0.0, pode-se ver como o display é incrementado de um
para cada múltiplo de seis ( por exemplo, para o status igual a 7 contador , deve ser exibido 1).
Conteúdo Página
LAD
LAD
STL
STL
FBD
FBD
Status do Programa
Com o Editor LAD/STL/FBD, você pode exibir o programa e o fluxo do sinal na linguagem de programação
desejada.
LAD/FBD:
Mostra o fluxo de corrente entre os elementos e os valores de entrada e saída dos blocos.
STL:
Mostra os endereços, o RLO e os registros importantes para a depuração do programa.
Monitor./Modificando Variáveis
As variáveis definidas pelo usuário podem ser exibidas ou mudadas on-line com a CPU usando a opção PLC
==> Monitor/Modify.
Inicializando o Status
1. Abrir o bloco de programa on-line pelo editor (LAD,STL/FBD).
2. Selecionar Debug ==> Monitor (no menu do editor LAD/STL/FBD).
3. Resultado: O status da network selecionada e das seguintes são atualizados.
NOTA
Para mudar a forma de visualização (ex.: entre LAD e STL), o status deve estar desligado. Selecionando
novamente Debug ==> Monitor , a marca antes de “Monitor” desaparece. Para mudar a linguagem de
programação selecione View ==> LAD, FBD ou STL no menu do editor de Programas. Então o status do
programa pode ser selecionado novamente, depois que a forma de visualização foi mudada.
Test Environment
Process:
Carga de tempo de ciclo limitada
Laboratory:
Carga de tempo de ciclo alta
Modo de Status
Há dois modos de operação para a função de Status do Bloco. Isto torna possível selecionar o modo processo
ou laboratório para o bloco aberto on-line.
Modo Process
O status dos operandos do programa é avaliado somente no primeiro scan. Este modo causa uma menor carga
no tempo de ciclo.
Modo Laboratory
O status dos operandos é avaliado todo scan. O tempo de ciclo pode ser aumentado significativamente neste
modo.
Seleção do Modo
1. Use o editor LAD/STL/FBD para abrir o bloco on-line.
2. Selecione a linguagem que você deseja (LAD, STL, or FBD).
3. Selecione Debug ==> Call Environment.
4. Selecione Process ou Laboratory. (Process é setado como padrão).
Resultado: Quando você selecionar a opção “Monitor” o status é operado no modo selecionado.
A ferramenta Monitor/Modify Variable é uma ferramenta com a qual pode-se exibir os estados dos
operandos do programa. Pode-se criar tabelas de variáveis em vários formatos que necessariamente não têm
que ser uma parte do programa. Assim, a depuração do programa ou hardware do PLC é facilitada.
View
Com o ítem “View,” pode-se selecionar opções de formato para a tabela de variáveis. As opções de exibição
podem ser selecionadas com o comando menu Variable Monitor/modify (View) ou no ícone mencionado acima
na barra de ferramentas.
Monitor
A função Monitor ativa a monitoração (leitura) das variáveis listadas na tabela. A função monitoração pode ser
selecionada no comando do menu Monitor/Modify Variables ou com o ícone da barra de ferramentas acima
mencionado.
Note que existem duas possibilidades:
- monitoração uma única vez;
- monitoração cíclica (em função do trigger)
Modify
A função Modify altera os valores da tabela de acordo com o valor digitado na coluna respectiva da tabela
(coluna Modify Value).
Da mesma maneira que a função Monitor, existe duas possibilidades:
- alteração uma única vez;
- alteração cíclica (em função do trigger).
PII
Inicio do Ciclo
Fim do Ciclo
PIQ
Trigger Points
Inicio do Ciclo
Fim do Ciclo
Transição para STOP
Trigger Frequency
1 ciclo
Todo Ciclo
Setando Trigger
1. Selecione Variable ==> Trigger.
2. Selecione a opção desejada.
3. Confirme com OK.
É possível monitorar e alterar o conteúdo das áreas M/I/Q com a função Monitor/Modify Variables. O
formato deve ser apropriado para o tipo designado (I0.0 = BIN). Para a monitoração, o terminal deve esta
conectado on-line com a CPU.
Objetivo
Criar uma tabela de variável que corresponda as 8 primeiras entradas do primeiro módulo de entradas e as 8
primeiras saídas do primeiro módulo de saída.
Procedimento
1. Selecione o modo on-line de visualização de blocos
2. Selecione PLC => Monitoring/Modifying Variables.
3. Digite a faixa de endereços na tabela (depois de cada entrada pressionar a tecla "Enter”,
o formato padrão é exibido ==> use BIN).
4. Salve a tabela.
5. Ative o ícone para monitorar varáveis (se for o caso verifique a parametrização do filtro).
6. Tests as entradas e veja o resultado.
Resultado
A mudança dos valores correntes dos sinais de entrada e saída são exibidos na tabela. Isto também
serve como esquema para lembrar do endereçamento do S7-300.
Suplementar
Digite a lista de variáveis que corresponde a aplicação ENGARRAF. Monitore as variáveis com a função
de status. Mude os valores das variáveis com a função Modify para visualizar os efeitos na execução do
programa.
Conteúdo Página
Chamando Blocos............................................................................... 2
Parâmetros EN/ENO........................................................................... 3
Variáveis Locais de um Bloco...............;............................................. 4
Parâmetros de um Bloco..................................................................... 5
Utilizando Variável Local em um Bloco.......;....................................... 6
Exercício 12.1: Chamando um FC com/sem parâmetros................... 7
Execução
do Programa
Execução
Instrução que chama do Programa
outro bloco
(FB, FC, SFB, SFC)
Execução
do Programa
A instrução “Call” é utilizada para disparar a execução de um outro bloco lógico. Na figura acima
quando o 1°. bloco encontra a instrução Call, o programa interrompe a execução deste bloco e passa a
executar a 1ª. instrução do bloco chamado. Após ser executada a última instrução do bloco chamado, o
programa retorna ao bloco chamador e continua a sua execução logo após a instrução Call.
ou
EN ENO ( )
EN/ENO
Em Diagrama de Contatos (LAD) e em Blocos Funcionais (FBD) existe um sinal de habilitação do bloco (EN),
isto é, o bloco é executado se e somente se o RLO=1 nesta entrada Possui também uma saída correspondente
(ENO), que indica o se o bloco foi executado corretamente.
Funcionamento
-se EN não é ativado (0), o bloco não é executado, e o ENO não é ativado (0).
- se EN é ativado (1),o bloco é executado; se o bloco é executado sem erro, ENO é ativada (1)
- se EN é ativada (1), o bloco é executado, se ocorre um erro na execução do bloco, o ENO não é
ativado (0).
EN/ENO em FBD
EN/ENO em STL
Em STL, o EN e ENO tem que ser emulado com instruções de jump salvando o RLO no resultado binário BR.
Isto é necessário se se deseja programar a condição ENO em um bloco de usuário (caso de erro de execução).
A I 11.0
JNB SALT
CALL FC1
SALT: A BR
= Q 9.0
Endereço
de memória Valor
local Nome Inicial
Parametros
Var. Estáticas
Var.
Temporárias
Parâmetros
Parâmetros servem como interface entre um bloco a ser executado e um bloco que chama este bloco. Quando
um bloco é chamado pode-se fornecer valores e/ou endereços a este bloco. Dentro dele, estes parâmetros
assumem a posição nos operandos em que foi programado.
Os parâmetros podem ser de entrada (somente leitura), saída (somente escrita) e entrada e saída (leitura e
escrita) os quais são passados para os blocos.
Variáveis estáticas
As variáveis estáticas são variáveis auxiliares a serem utilizadas ou como rascunho ou como flags auxiliares
dentro do bloco.
Este tipo de variável é encontrado exclusivamente nos blocos tipo FB, pois são armazenadas em bloco de
dados do tipo Instance, que só estes blocos possuem.
Variáveis temporárias
As variáveis temporárias, também denominadas locais, são variáveis de rascunho válidas exclusivamente no
bloco em que foram definidas. Ao contrário das variáveis estáticas, estas variáveis não possuem endereço fixo
(são armazenadas temporariamente na “L stack”), estando disponíveis somente enquanto o bloco estiver sendo
executado. Assim estas variáveis obrigatoriamente tem que ser iniciadas a cada ciclo do bloco, não servindo
para armazenar dados de um ciclo para o outro.
Colunas da Tabela
End. local: é um endereço relativo da memória local, criado automaticamente pelo sistema. Pode-se
eventualmente acessar a variável por este endereço porém se possível sempre usar o nome simbólico.
Nome: é o nome simbólico para a variável que será usado com a seção de código do programa.
Tipo de dado: tipo de dado da variável. Ex.: BOOL (Booleana), INT (Inteira)
Valor inicial: campo opcional onde pode-se definir o valor inicial ou de start-up.
Comentário: campo opcional que contém o comentário descritivo sobre a variável.
LAD DB45
FB7 Chama FB7(usando o bloco
EN ENO de dados instance DB45) e
Endereço “Atual” passagem de parâmetros.
onde os dados I1.0 Liga Motor M2.1
residem ou irão I1.1 Desl
ser arquivados Parâmetros “Formais”
do FB
Como já mencionado a utilização de parâmetros facilita a programação e permite que um bloco seja
utilizado diversas vezes dentro de um programa, diminuindo o tempo de desenvolvimento e a memória ocupada
na CPU.
Chamada do Bloco
Como se vê na figura acima, a passagem de parâmetros é feita se preenchendo os campos de parâmetros com
os operandos correspondentes.
Em FBD/LAD os parâmetros localizados à esquerda são do tipo entrada (ou entrada/saída) e do lado direito são
do tipo saída.
Programação
A programação utilizando os parâmetros é feito praticamente da mesma forma que uma programação normal.
Difere somente quanto aos operandos. Ao invés de se utilizar o endereço absoluto do operando utiliza-se o
nome simbólico do parâmetro conforme definido na tabela de declarações do bloco.
Tipos de Parâmetros
Os parâmetros de um bloco podem ser:
in parâmetros de entrada
out parâmetros de saída
in_out parâmetros de entrada/saída
OB1 FC1
sem parâmetros
Chama FC1
incondicionalmente
e não passa valores
Objetivo
Programar um bloco FC com e sem parâmetros.
Notar a diferença entre a chamada de um bloco com e de um bloco sem parâmetros
Procedimento
1. Crie um nova pasta de programa, denominada FUNCOES, no projeto PRO1.
2. Crie um FC1 sem parâmetros:
- carregar o valor da chave digital IB2, adicionar a constante 2 e transferir o resultado para QB6.
3. Crie um FC2 com parâmetros.
- defina duas variáveis de entrada booleanas (start_1 e start_2) e uma variável de saída
booleana (buzina).
- programe para que quando as entradas start_1 e start_2 forem ativadas, a saída buzina toque
durante 3 segundos.
4. Programa no OB1 a chamada dos blocos:
- o FC1 sem parâmetros uma única vez incondicionalmente.
- o FC2 será chamado 2 vezes condicionalmente em função da entrada I1.7, com os seguintes
parâmetros:
Programar em LAD/STL/FBD e depurar o bloco. Na programação STL, a chamada condicional dever ser feita
por meio de jumps.
Resultado
Verifique as diferenças entre as chamadas.
Verifique as diferenças entre as linguagens.
I 1.1 botão_liga_1
I 1.2 abrir_válvula_2
Conteúdo Página
Absoluto Simbólico
A I 1.0 A MOTOR_LIGADO
L DB 10.DBW4 L TURNO.PEÇAS
Absoluto
Um endereço absoluto é um endereço específico na CPU (operandos formais), por exemplo, entrada I1.0.
Neste caso, não é necessário editar uma lista de simbólicos, porém o programa é mais difícil de entender.
Simbólico
O endereçamento simbólico torna possível trabalhar com símbolos tais como MOTOR_LIGA, ao invés do
endereçamento absoluto. Os símbolos para entradas, saídas, temporizadores, contadores, memory markers e
blocos são arquivados na lista de simbólicos. Neste caso, os símbolos são também chamados de símbolos
globais porque o acesso é possível por todos os blocos. Em oposição ao símbolos globais, existe também os
simbólicos de bloco (locais), os quais são válidos somente no próprio bloco. Os simbólicos de bloco são
definidos na parte de declaração do bloco.
Symbol Editor
A lista de simbólicos para os Símbolos Globais é criado com a ferramenta Symbol Editor. As outras ferramentas
do STEP7, tais como Editor de Programas ou S7 Status, também tem condição de acessar a lista de simbólicos
para exibir os endereços simbólicos.
Características
O endereçamento simbólico torna possível uma leitura clara e fácil do programa. Todos as variáveis, blocos,
tipos de dados, etc., podem ser nomeados simbolicamente. O nome simbólico pode ter até 24 caracteres, e até
80 caracteres de comentários.
A seção de simbólicos e comentários são arquivadas no terminal de programação. A lista de simbólicos é
localizada como o objeto “Symbol table” na pasta de programa S7 pertinente.
Symbol List
A lista de simbólicos é uma base de dados comum na qual as relações entre nomes simbólicos e nomes
absolutos são definidas.
Todas as ferramentas S7 podem acessar a lista de simbólicos (Editor LAD/STL/FBD, Tabela de Variáveis, etc.).
Simbólicos Globais
A declaração de simbólicos globais pode ser acessada por todos os componentes do programa. Os simbólicos
têm que ser criados na lista de simbólicos antes de serem acessados por sua aplicação. É possível porém
durante a edição do programa, direto no editor de programas, criar nomes simbólicos.
Simbólicos Locais
Os simbólicos locais são declarados na parte de declaração do bloco. Estes nomes simbólicos são somente
válidos no próprio bloco onde foram gerados, sendo parte da memória local. O mesmo nome simbólico pode ser
usado várias vezes em diferentes blocos, porque são válidos somente nos blocos pertinentes.
Simbólicos locais podem ser definidos para parâmetros de blocos, variáveis locais e labels de saltos (jumps).
Este método não necessita de uma lista de simbólicos.
Notação
Nome simbólico global - #nome_simbólico
Nome simbólico local - “nome_simbólico” (quando usado em varáveis locais)
Quando você criar um novo programa S7, o ícone da lista de simbólicos é automaticamente criado.
Introdução
Na figura acima temos a ferramenta Symbol Editor com uma lista de simbólicos do transportador.
Unique/Non-Unique
Os símbolos usados no programa devem ser únicos, isto é, o endereço simbólico ou absoluto pode estar
presente na lista de simbólicos uma única vez. Se vários endereços simbólicos ou absolutos iguais estão
presentes na lista de simbólicos, eles são exibidos em View ==> All destacadamente (Ver linhas 3 e 4 na
figura).
Para poder localizar tais símbolos ambíguos mais facilmente em lista de simbólicos grandes, você pode exibir
estes simbólicos usando o menu de comando View ==> Filter ==> Symbol Status ==> Non-Unique
Import/Export
É possível também importar/exportar de/para arquivos texto a lista de simbólicos em diferentes formatos DIF,
SDF, ASC e SEQ. Isto possibilita transferir a lista de designações ou a lista de simbólicos já gerados de outros
aplicativos. Uma vez gerados, você pode então usar a lista de simbólicos em outro editor.
Atributos
Os atributos são designados, na ordem reversa dos dados, por exemplo, para uma interface do sistema
operação. Os atributos têm os seguintes significados:
O : Controle de operação e monitoração com WinCC
M : Propriedades de mensagens
C : Propriedades de comunicação
Program Editor
Pode-se selecionar quais informações quer se visualizar no Editor de Programas. A representação simbólica ou
endereço absoluto podem ser selecionados. Para escolher entre estes dois, selecione no menu do Editor de
Programa View ==> Symbolic Representation.
Para ver o endereçamento absoluto e as informações dos símbolos ao mesmo tempo, ativar no comando de
menu View ==> Symbol Information. Como se vê na figura acima, uma janela adicional com a informação dos
símbolos é inserida abaixo do segmento na linguagem LAD/FBD. No modo STL, as designações estão a direita
das instruções.
Para adicionar novos nomes simbólicos durante a edição de um programa, coloque o cursor no endereço e
selecione no comando de menu Options ==> Edit Symbols ==> Object Properties e complete os nomes dos
simbólicos.
Status
Como no Editor de Programa, símbolos e comentários dos símbolos podem também ser exibidos com a
ferramenta Monitor/Modify Variable. (veja a parte inferior da figura acima).
Descompilação do Programa
Se a lista de simbólicos é perdida, o programa não pode ser completamente descompilado. Similar ao STEP 5,
os endereços então são representados com seus valores absolutos. Isto é verdade para entradas, saídas,
memory markers, temporizadores e contadores bem como para componentes de DB (ex.: palavra de dados).
Existem também símbolos substitutos para labels de laços, ex.: M001.
Existem simbólicos substitutos também para variáveis locais, por ex.: LB 17,
Parâmetros de blocos também utilizam simbólicos substitutos, tais como Par 1, Par 2, etc.
Simbólicos
Os simbólicos e comentários são arquivados no harddisk do terminal de programação.
Nota
Em desenvolvimentos futuros, será possível arquivar os símbolos e os comentários na memória de carga das
CPU’s.
As listas de símbolos podem ser transferidas para outro projeto com o Export e Import do Editor de
Símbolos. Também podem ser exportada para outro aplicativo, como por exemplo um sistema CAD.
Exportando
O procedimento de exportação é descrito abaixo.
Importando
Lista de simbólicos geradas com outra ferramenta, tais como editor de texto, EXCEL ou STEP 5 podem ser
lidas e processadas com a função de importação.
Formato de Arquivos
Os seguintes formatos podem ser usados para exportação e importação:
Formato DIF
Formato ASCII
Formato SDF
Formato SEQ (lista de designação do STEP 5)
Tabela do Excel
Criar uma tabela do EXCEL com quatro colunas nesta seqüência: symbol, address, data type e comment. Não é
obrigatório preencher a coluna com o tipo de dados. (o Editor de Símbolos irá reconhecer a designação do
endereço e usar o tipo de dados default baseado no endereço.)
Salvando
Salvar a tabela do EXCEL no formato DIF( o EXCEL não usa outro formato do Editor de Símbolos).
Importando
O arquivo DIF, como outro formato ASC, SEQ e SDF, pode ser importado com o Editor de Símbolos.
Através da função de importação, é gerada uma tabela de símbolos nova ou os dados importados são inseridos
em uma tabela de símbolos existente.
Exportando
Uma tabela de símbolos existente também pode ser copiada de um projeto para outro projeto pela função de
exportação. Uma tabela já existente pode também ser exportada para outro sistema como o EXCEL.
Com o S7 Symbol Editor, pode-se de forma simples, designar nomes claros para endereços absolutos
no seu programa.
Objetivo
Criar uma lista de símbolos que mostre a primeira parte da aplicação de enchimento de garrafas.
Procedimento
Planeje uma lista de símbolos para a aplicação.
1. Selecione a pasta de programa ENGARRAF.
2. Selecione na barra de ferramentas Options => Symbol Table.
3. Crie a lista de símbolos feche/salve-a.
4. Edite um bloco de programa.
5. Ative no menu de comando View --> Symbolic Representation para exibir a designação
simbólica dos endereços no seu programa.
Resultado
Somente os nomes simbólicos são exibidos em todas as operações e endereços do programa. Você pode
voltar para o endereçamento absoluto clicando novamente em Symbolic Representation no menu.
DB DB
OB
FB FC SFB
Bloco de DB DB
Organização
FB FB SFC
OB = Bloco de Organização
Legenda:
FB com Bloco
FB = Bloco de Função
de Dados
FC = Função
memória
SFB = Bloco de Função de Sistema
SFC = Função de Sistema
SDB = Bloco de Dados de Sistema
DB = Bloco de Dados
Conteúdo Página
Byte dados 0
Global(compartilhado)
Instance
Byte Dado 8191
DB
Existe uma área dentro da CPU que o usuário pode acessar livremente para armazenamento de dados. Esta
área, orientada a byte, é denominada pelo usuário como Blocos de Dados (DB), devendo ser criada pelo
usuário para se poder acessá-la. Em contraste com os dados na área local (variáveis temporárias), os dados no
DB não são perdidos quando o DB é fechado, ou quando o processamento do bloco terminou.
Existe dois tipos diferentes de Blocos de Dados, cada um servindo a um propósito diferente dependendo de sua
relação ao bloco de programa.
Global DB (compartilhados)
Blocos de Dados Globais podem ser acessados por qualquer bloco de programa.
Todos os tipos de blocos, FB’s, FC’s e OB’s, podem ler e escrever dados nos DB’s Globais. Antes de ter acesso
aos dados, o bloco DB deverá ser aberto. Os dados contidos em um DB, são mantidos mesmo depois que o
bloco seja fechado.
Introdução
A criação de um bloco DB obedece as mesmas regras que para a criação de um bloco de programa, sendo que
é utilizado o mesmo editor de programas (LAD/STL/FBD) para a edição.
Criando um novo DB
Utilize o mesmo método para criar o DB que foi utilizado para criar um bloco de programa (por ex. botão direito
mouse -> Insert New Objetct -> DB block)
Ao se iniciar a edição de um novo DB, o sistema através de uma nova caixa de dialógo solicitará a escolha do
tipo de DB a ser criado (ver figura acima):
Data Block: este o tipo DB global, ou seja, DB acessado por todo e qualquer bloco de programa.
Data Block Referencing UDT: este é um DB também do tipo global, cuja a edição dos seus elementos é feita
através de um UDT (User Defined Data Type), que será explicado a frente.
Data Block Referencing FB: este é um instance DB. isto é, um DB a ser utilizado associado à um FB específico.
Este DB só pode ser criado depois de definido o FB.
DB existente
Se o DB já foi editado anteriormente, utilize para acessá-lo o mesmo método utilizado para acessar qualquer
bloco de programa (por ex. um click-duplo sobre seu ícone). Para DB’s existentes não aparece a caixa de
seleção do tipo de DB, pois seu tipo já foi definido anteriormente.
Introdução
O bloco de dados é uma área da memória da CPU, orientada a byte, disponível para armazenamento de dados.
Apesar de orientada à byte, esta área pode e deve ser definida pelo usuário livremente, já que não existe
formato de dados pré-definidos para ela (na verdade existe, porém o usuário pode modificá-la).
A definição desta área visa a facilitar a manipulação dos dados no programa. Assim, se o usuário precisa definir
bits (variáveis boolenas) para utilizar na sua lógica, declara a variável como BOOL. Se por outro lado, necessita
variáveis para cálculos, deve definir a variável como REAL.
Endereço
As variáveis contidas no DB são acessadas preferencialmente pelo seu nome simbólico. Apesar disto todas
possuem um endereço de sua localização dentro do bloco e permitem, caso se deseja, que sejam acessadas
por este endereço.
Os endereços são do tipo BYTE.BIT, mesmo para as variáveis definidas como byte, word, dword, etc.
Este endereços são definidos automaticamente pelo sistema logo após a edição da variável (nome e tipo da
variável).
Nome
É o nome simbólico alfanumérico da variável. Na maioria dos casos a variável será acessada no programa por
este nome simbólico.
Tipo de Dado
É o tipo de dados da variável (individual). A definição do tipo deve levar em conta a sua utilização dentro do
programa. Exemplo: BOOL(booleana ou bit).
Valor Inicial
Campo opcional onde se especifica o valor inicial da a variável. O valor default para todas os tipos de variáveis
é zero.
Comentário
Campo opcional para comentário/descrição das variáveis.
Dica
Note durante a edição, que o tipo de dado influencia a ocupação do DB. Assim variáveis tipo WORD iniciam-se
sempre no endereço par. Caso exista um byte impar livre, este byte será deixado vazio, ocupando-se
desnecessariamente a memória da CPU.
BOOL 1 1 or 0
BYTE 8 16#A9
WORD 16 16#12AF
DWORD 32 16#ADAC1EF5
CHAR 8 'w'
STRING * >=16, 8*(No.de caracteres) 'Isto é uma String'
S5TIME 16 S5T#5s_200ms
INT 16 123
DINT 32 65539
REAL 32 1.2 or 34.5E-12
TIME 32 T#2D_1H_3M_45S_12_MS
DATE 16 D#1993-01-20
TIME_OF_DAY 32 TOD#12:23:45.12
DATE_AND_TIME * 64 DT#1993-09-25:12.29.13
Formato
Cada variável tem seu próprio formato, indicando o modo com o qual o programa irá acessá-lo. A estrutura dos
bits e seu comprimento são definidos pela designação dos tipos de dados. É importante conhecer os vários
tipos de dados, porque algumas instruções requerem tipos de dados específicos. Isto é particularmente
importante para instruções LAD/FBD, porque o Editor confere os tipos de dados quando você endereça
individualmente os elementos.
Tipos de Dados
Os tipos de dados pertencem a uma das seguintes categorias:
- dados básicos ou elementares: estruturas de dados menores que 32 bits, que têm definições de
acordo com IEC 1131-3
- dados complexos: estruturas ou campos que são maiores que 32 bits ou outros tipos de dados
- parâmetros: blocos de parâmetros usados para FBs ou FCs
Abrir DB
Antes que os dados de um bloco possam ser acessados é necessário que o DB seja aberto. Isto é feito através
da OPN DB. Se outro bloco de dados global já estiver aberto, este é automaticamente fechado.
O bloco de dados Instance, associado à um FB, é automaticamente aberto pelo sistema.
Acesso ao DB
A figura mostra como acessar os dados de um DB. As instruções utilizadas são as mesmas utilizadas com
qualquer outro operando. Por exemplo:
L DBB3 Ler o byte 3 do DB
T DBW12 Transferir o conteúdo do acumulador para a palavra 12 do DB
A DBX4.5 Fazer a lógica AND com o bit 5 do byte 4 do DB
Pode-se também acessar os dados dentro de um DB, através do chamado “caminho completo”. O caminho
completo é:
nome-do-db.dado
Deste modo, na própria instrução é feita a abertura do DB e o acesso ao dado. Esta maneira de acesso é
própria para evitar erros de programação e facilita a documentação.
Acesso Simbólico
A maneira ideal porém de acessar os dados de DB é a maneira simbólica. Na definição das variáveis no DB já
foi utilizado um nome simbólico. Assim faz sentido utilizar no programa este nome, pois ajuda o seu
entendimento.
Para utilizar o acesso simbólico, deve-se usar obrigatoriamente o caminho completo. O caminho completo na
forma simbólica exige que um nome simbólico tenha sido definido para o DB (na tabela de simbólico). Exemplo:
L RECEITA.ARROZ (DB10.DBW12)
Estrutura: Campo:
COMPONENTES
GEOMÉTRICOS
Dados Complexos
Dados complexos são dados maiores que 32 bits ou um conjunto de dados agrupados em uma estrutura.
Os tipos de dados podem ser:
DATE_AND_TIME
STRING
ARRAY
STRUCT (estrutura)
Estrutura
Estrutura é um conjunto de dados elementares ou estruturados. Isto resulta em um único tipo que pode conter
grande quantidade de dados com uma única unidade. Esta estrutura pode então ser simbolicamente acessada.
Uma estrutura pode servir para a criação de um conjunto de dados a ser utilizados em vários blocos (DB, FC)
no programa.
Campos/Matriz
É um conjunto de elementos do mesmo tipo de dados. Exemplo:
Aux: ARRAY[1...10] de BOOL; representa um flag de memória auxiliar que consiste de 10 bits.
Também podem ser estruturados os elementos de dados de um campo que o usuário já tenha definido.(ver
exemplo: GEO_COMPONENTS). Elementos de um campo pode também consistir de tipos de dados cujos
elementos também sejam campos. Este tipo de campo gera um sistema de matriz, possível até dimensão 16.
Data View
Durante a edição de um DB, pode-se definir valores iniciais para as variáveis. Entretanto para facilitar a edição
só é permitido a edição do valor inicial do primeiro campo/matriz. Para editar os outros campos utiliza-se o
modo Data View. Para acessá-lo View -> Data View.
Cópia da parte de
declaração local do FB
DB10
FB1
Chamando o
Bloco com
Área de Declarações
parâmetros
Locais
Exemplo:
Seção de código
Call FB1,DB10 do bloco chamado
usando valores da
área de memória
local
FB
Um bloco de função (FB) é um bloco lógico de programa que possui uma área de memória associada na forma
de Bloco de Dados “instance”. Os parâmetros passados para a área de memória local também serão
arquivados ao DB instance. Dados arquivados no DB são retidos depois do FB ter terminado a execução. O DB
que é associado com um FB possui a mesma estrutura de dados da declaração de variáveis do bloco (exceto
variáveis temporárias).
Chamada do Bloco
Sempre que um FB é chamado, deve-se indicar qual o DB (instance) será utilizado como “memória”.
Instance DB x FB
Normalmente diferentes chamadas de um FB no ciclo de programa tem um DB diferente associado, já que
podem ser utilizadas variáveis internas (do tipo estáticas) recursivamente (armazenam valores de um ciclo para
outro).
n FB x 1 DB
Se tomados os devidos cuidados (por ex. a não utilização de variáveis stat), é possível utilizar o mesmo DB
para diferentes chamadas do FB. Neste caso, a cada chamada, os dados utilizados serão os do mesmo DB,
funcionando o FB praticamente da mesma maneira que um FC.
Dados DB Instance
Os dados do DB instance são uma cópia exata das variáveis declaradas na tabela de declarações (exceção
variável temp) do FB associado. Ao se criar um Instance DB o sistema automaticamente organiza estes dados.
Não se edita variáveis/dados diretamente no DB.
Criação DB Instance
Existem duas maneiras de se criar um Instance DB:
- ao se criar um novo bloco DB, na caixa de diálogo informar DB Referencing a FB, e selecionar o FB da
lista mostrada.
- durante a edição do programa, ao se chamar um FB (instrução Call), deve-se obrigatoriamente indicar
o DB associado. O sistema checa se o DB existe (e se foi criado como DB Instance deste FB) e cria-o se
necessário.
Importante: Só é possível se criar um DB Instance após a criação do respectivo FB.
Acesso ao Dados
A utilização de um Instance DB associado ao FB é transparente para o programador. Isto significa que o acesso
aos dados do DB não exige por parte do usuário qualquer instrução especial. A programação é feita
simbolicamente da mesma maneira que para as variáveis locais ou parâmetros de um FC. O Sistema
Operacional se encarrega de ler/transferir dados de/para o DB Instance.
Registrador DI
Apesar de não necessário, pode-se acessar excepcionalmente os dados em um DB Instance ou em um 2° DB
normal, já que existe um segundo registrador de bloco de dados (o 1° registrador é denominado DB). Isto
permite, por ex., ter dois blocos de dados abertos ao mesmo tempo. Ao se abrir um bloco de dados no
registrador que está ocupado, o bloco anterior é fechado.
Exemplo: Registrador DB Registrador DI
OPN DI4*
L DIW10
OPN DB12
T DBW22
Òbs: Quando um FB é chamado, o sistema automaticamente carrega o registrador DI com o número do
DB associado.
* Caminho completo: L DI4.DIW10 e T DB12.DBW22
Criação DB Instance
Existem duas maneiras de se criar um Instance DB:
- durante a edição do programa, ao se chamar um FB (instrução Call), deve-se obrigatoriamente indicar
o DB associado. O sistema checa se o DB existe (e se foi criado como DB Instance deste FB) e cria-o se
necessário.
- ao se criar um novo bloco DB, na caixa de diálogo informar DB Referencing a FB, e selecionar o FB
da lista mostrada.
Importante: Só é possível se criar um DB Instance após a criação do respectivo FB.
...
Múltiplo DB Instance FB 10
DB 5
OB 1 FB 5
...
FB 11
Modelo Instance
Normalmente se utiliza para cada chamada de um FB um DB instance. Especialmente para pequenas CPU’s,
onde a memória de trabalho é pequena e o número de DB disponíveis é limitado, isto pode trazer problemas.
Múltiplo Instance
No modo múltiplo instance é possível utilizar um único DB para várias chamadas de FB, inclusive de FB’s
diferentes. Assim economiza-se espaço na memória, números de DB, sem perder todas as facilidades que um
DB instance oferece (uso de variáveis estáticas).
FB Gerenciador
A utilização de um múltiplo Instance pressupõe o uso de um FB gerenciador, isto é, um FB ao qual o DB
múltiplo instance está associado, que controla as chamadas dos outros FB’s. No exemplo acima o FB
gerenciador é o FB5 e o DB múltiplo instance é o DB5, que serve também para os FB’s 10 e 11.
Chamada do FB Gerenciador
Programação
Os FB’s chamados são programados normalmente. O FB gerenciador por sua vez terá na sua tabela de
declarações como variáveis estáticas os FB chamados.
Estes FB’s são por sua vez chamados no programa do FB gerenciador pelo seu nome simbólico (nome
declarado na variável estática) e tem seus parâmetros preenchidos normalmente.
A chamada do FB gerenciador é feito no programa principal (por ex. OB1) e indicado o DB associado, que será
um DB múltiplo instance. O FB gerenciador pode ou não ter seus próprios parâmetros.
DB Múltiplo Instance
O DB criado como múltiplo instance contém todos os parâmetros de todos os FB’s associados.
As variáveis dos diversos FB’s são identificadas pelo nome simbólico do FB, definido no FB gerenciador, mais o
nome do parâmetro.
UDT
User Defined Data Type - Tipo de Dados Definidos pelo Usuário, é uma alternativa para a criação de uma
estrutura de dados, que pode ser utilizada como uma espécie de formulário de dados. Este ‘formulário” pode,
entre outras possibilidades, ser utilizado para criar diversos DB’s com os mesmos tipos de dados. Por ex.: criar
10 DB’s de receita.
Criando um UDT
A criação de um UDT é feita da mesma maneira que qualquer outro tipo de bloco. Por ex. Insert New Object
==> User define Data Type.
Editando um UDT
A edição do UDT é exatamente igual à edição de um DB global. Não existe nenhuma diferença, a não ser que
não é possível editar um UDT direto na CPU nem transferi-lo para a CPU, já que o UDT não passa de uma
máscara de dados, não existindo propriamente dito.
Utilizando o UDT
Sendo somente uma máscara, a UDT não existe como área de memória de programa. A UDT só é útil quando
utilizada para criar variáveis a partir dela.
A utilização de um UDT para a criação de um DB é feita quando se cria um novo DB, selecionando-se na caixa
de diálogo do tipo de DB a função DB Referencing a User Definded Data Type e selecionando-se então o UDT
da lista mostrada.
É possível ainda utilizar a UDT como parte dos dados de um DB, ou de um outro bloco (OB, FC ou FB). Basta
declarar na tabela de declarações uma nova variável e o tipo de dados como UDT. Neste caso a variável será
acessada com o nome da variável + nome da variável da UDT.
Nível alto
Transmissor
do nível
PIW352
LT
Nível baixo
Conteúdo Página
1000 L 0 0 1 0 1 0 1 0 1 1 0 1 0 0 0 0
PIW352 = +10960
0L
Formato
Como mostrado na tabela de valores acima, os valores analógicos podem ser representados e usados em mais
que um formato de número. A tabela mostra a faixa de valores em decimal (inteiro) ou hexadecimal. Usando a
função Monitor Variable, pode-se ver a conversão de “int” e “hex”. E mais, pela exibição da representação
binária (“bin”), você pode ver o valor de uma palavra digitalizada.
Resolução
Módulos analógicos têm especificações de resolução: valor lido X representação. Esta resolução corresponde à
quantidade de bits de dados usados na palavra binária de 16 bits representada no valor analógico. Se a
resolução tem menos que 15 bits, os dados analógicos são alinhados a esquerda. Os bits menos significativos
não usadas são preenchidos com zeros.
A posição mais a esquerda, o MSB, é a que representa o sinal; 0 significa valor positivo, 1 significa valor
negativo.
A tabela abaixo mostra exemplo de bits padrões para diferentes resoluções.
O endereçamento analógico não compartilha o mesmo registro que o módulo de sinal digital, isto é os
sinais analógicos no S7-300/400 não são atualizados a cada scan. Os dados de entrada são atualizados pela
simples leitura dos endereços de entrada (PIW) com o seu programa, ou escritos na saídas com PQW. Quando
o programa executa uma instrução usando um endereço analógico (por exemplo, PIW352), os dados são lidos
diretamente do barramento de periferia, ou P bus.
Cada valor analógico é composto de 2 bytes, então os endereços analógicos usados em seu programa devem
consistir de todos os números para corrigir o problema de sobrescrever dados.
Exemplo:
Para ler um valor de uma entrada analógica e transferir o valor para uma word de memória faça :
STL: LAD:
L PIW354
T MW30
Exemplo:
Para enviar um valor para uma saída analógica de uma word de memória faça:
STL: LAD:
L MW40
T PQW368
0V
0l 500 l
Introdução
O nível do tanque é medido em litros. O transdutor de medição foi selecionado de tal forma que para 500 litros
um valor analógico de 10 V seja fornecido. Em 10 V, o módulo fornece o valor inteiro 27648. Este valor deverá
ser convertido agora para dimensões reais (exemplo, litros). Este procedimento é também chamado de
Conversão em Valores de Engenharia.
Programa
No segmento 1, o valor analógico do módulo é lido e temporariamente armazenado na word de memória
MW100.
No segmento 2, o ajuste de valores analógicos é executado pelo FC 105. O FC 105 está disponível na
biblioteca do Software STEP 7 (FBLib2).
O valor analógico é passado como um número inteiro para a entrada IN. O limite para a conversão em
dimensões reais é especificado pela entrada LO_LIM (valor do limite inferior). Portanto, entre 0 e 500 litros a
conversão no exemplo. O valor ajustado (dimensões reais) está disponível na saída OUT como um número
real. A saída BIPOLAR determina se valores negativos vão ser convertidos corretamente. No exemplo, a
memória (memory marker) M0.0 fornece o sinal “0” e determina que está sendo utilizada uma entrada unipolar.
A saída RET_VAL fornece um valor de 0 quando a execução está livre de erros.
Tanque 5
Compartimento de
armazenamento
Transmisor
de nível Q8.1
LT
PIW304 Tanque 5
Bomba de dreno
Conteúdo Página
INFO_T1D
Acesso
Para ler as informações sobre a CPU, ativar o menu de comando PLC==>Module information no SIMATIC
Manager.
Informações da CPU
Na figura abaixo vê-se os dados gerais da CPU -314 do PLC S7-300.
Note o item “Version”que informa qual a versão do módulo.
Work Memory
Capacidade da memória de trabalho existente na CPU. Lembre-se que esta é a memória onde o programa
executável vai ser alocado.
Addres Area
Faixa de endereçamento possível para a CPU: entradas digitais, saídas digitais, memória (flags)
temporizadores, contadores e dados locais.
Blocks
Informa o número e o tamanho máximo de blocos possíveis para a CPU.
INFO_T1D
Memory
Esta pasta fornece informações sobre a ocupação da memória pelo programa do usuário.
Work Memory
Esta área da RAM é acessada durante a execução do programa do usuário. A memória de trabalho contém
somente informações necessárias para o processamento do programa na CPU. A memória de trabalho é
integrada na memória RAM da CPU, não podendo ser expandida.
Esta memória é muito importante para a definição do tamanho máximo de programa executável.
Load Memory
A memória de carga é uma memória intermediária onde o programa é armazenado quando transferido para a
CPU. Como esta memória possui não somente o programa executável, mas outras informações necessárias
para a edição do programa (por ex., tipo de dados do DB) esta memória é sempre maior que a memória de
trabalho.
São apresentadas duas colunas de ocupação: uma referente à memória integrada à CPU e outra à memória
adicional inserida (cartão F-EPROM).
Comprimindo
Pode-se eliminar espaços existentes na memória de trabalho utilizando o botão de comando “Compress”.
Estes espaços originam-se de correções de programas na CPU. Isto é, porque blocos alterados são sempre
inseridos no final da área memória, enquanto que os blocos antigos são declarados inválidos. A compressão da
memória reloca a RAM para limpar os espaços feitos nesta fragmentação, e torna a RAM mais eficiente.
INFO_T1D
Time System
Esta pasta possui informações a respeito de data/hora e funções similares.
Acertando o Relógio
Para acertar o relógio da CPU, selecione no menu de comando PLC --> Set Time da CPU and Date e digite
os os novos valores no campo de diálogo. Pode-se também ler e acertar o relógio pelo próprio programa de
usuário via funções do sistema (SFC).
Cycle time
Tempo de ciclo é o tempo necessário para o programa realizar todo o ciclo de programa. Este tempo de ciclo
leva em conta o tempo necessário para atualizar a imagem de entradas/saídas, para executar o programa do
usuário e ainda eventualmente o tempo para funções de PG/PC.
Tempos
O tempo de ciclo é mostrado graficamente e numericamente.
No gráfico vê-se o tempo gasto em relação ao máximo permitido, configurado pelo usuário (tempo de
watchdog). No caso do S7-400 pode-se ainda visualizar o tempo mínimo de ciclo configurado.
Vê-se na forma numérica:
- menor tempo de ciclo desde que a CPU está rodando;
- tempo de ciclo anterior a chamada da função;
- maior tempo de ciclo desde que a CPU está rodando.
Esta informação pode ser utilizada para verificar se o tempo de execução do programa de usuário está
adequado à máquina/instalação.
Conteúdo Página
Sistema de Diagnóstico....................................................................... 2
Buffer de Diagnóstico........................................................................... 3
B Stack................................................................................................. 4
I Stack.................................................................................................. 5
L Stack................................................................................................. 6
Mensagens da CPU............................................................................. 7
Diagnóstico de Hardware .................................................................... 8
OB’s de Erros/Falhas .......................................................................... 9
Demonstração: Encontrando e Corrigindo Problemas ....................... 10
Exercício: Diagnosticando uma Falha no Programa........................... 11
Mensagens de
SIEMENS
diagnósticos
PG 740
Diagnóstico
Diagnóstico são funções integradas para a identificação e registro dos defeitos. A área na qual estes erros
são gravados é denominada buffer de diagnóstico. O tamanho do buffer depende da CPU ( ex.: CPU 314 = 100
mensagens).
Registro
Se um erro ou um evento ocorrer, por exemplo, transição de STOP para RUN, os seguintes passos são
executados:
- o evento é registrado no buffer de diagnóstico;
- a hora e data são anexados à mensagem e introduzidos no buffer de diagnóstico;
- as mensagens mais recentes são arquivadas no início do buffer. Se o buffer está cheio, as últimas
linhas vão sendo deletadas.
Se pertinente o OB de erro respectivo é iniciado.
Falhas/Erros
Com esta função podem-se identificar os seguintes erros:
- falhas de sistema na CPU;
- falhas nos módulos;
- erros de programas.
Tipos de Erros
Existem dois tipos de erros:
- erros síncronos podem ser associados diretamente a uma determinada instrução do
programa; por exemplo, chamada de um FB não existente.
- erros assíncronos ocorrem normalmente independente do processamento do programa; por exemplo,
diagnóstico de interrupção do módulo.
OB de erro
Durante o modo RUN (CPU em funcionamento) quando um erro é identificado, imediatamente o ciclo de
programa é interrompido ;e o respectivo OB de erro é executado.
Se este OB não existe (não foi programado) a CPU vai para STOP .
Se o OB existe, o erro é reconhecido, a CPU executa as instruções contidas no OB, e volta a executar o
programa (modo RUN).
Acessando o Diagnóstico
Para verificar o motivo do erro/falha existe uma série de informações disponíveis como buffer de diagnóstico,
tempo de ciclo, pilha de interrupção, etc. Estas informações são acessíveis pelo menu PLC ==> Module
Information.
Buffer de Diagnóstico
buffer de diagnóstico é uma área da CPU, onde todos os eventos que ocorrem na CPU são registrados,
principalmente os eventos que levaram a CPU para Stop.
Este buffer é rotativo, registrando os eventos com data e hora na seqüência que ocorreram, e quando cheio, vai
deletando os mais antigos. Mesmo com um reset geral da CPU o buffer não é apagado. Posicionando o cursor
sobre a mensagem é exibida informações adicionais sobre o evento na janela abaixo (Details on Event)
Editando o Bloco
Se a falha que causou a parada da CPU for um erro síncrono, isto é, um erro de programa, o ícone Open Block
estará ativo, permitindo que se abra o bloco onde ocorreu a falha. O cursor é posicionado exatamente na
instrução onde ocorreu a falha, e o programa pode ser corrigido imediatamente.
DIAG_T1D
Pilhas (stacks)
Pilhas são áreas da CPU, normalmente utilizadas durante o processamento do programa, que podem ser úteis
na procura do problema que levou a CPU para Stop.
As pilhas existentes são:
- B-Stack: pilha de blocos, indica a ordem de chamada dos blocos;
- I-Stack: pilha de interrupção, indica o estado de diversos registradores no momento da interrupção;
- L-Stack: pilha local, onde os dados locais dos blocos abertos no momento da interrupção são
mostrados.
Acessando as Pilhas
As pilhas são acessadas através da função Informações sobre o Módulo (Module
Information) na pasta Stacks. As pilhas são acessadas somente se a CPU estiver no modo Stop.
Pilha de Blocos A pilha de blocos registra a seqüência de blocos de programa que estava sendo
executada no momento da interrupção. Entende-se como seqüência a ordem de chamada dos blocos em um
determinado nível de programa (OB). Por exemplo, o OB1 chamou o FC15 que chamou o FB12, que era o
bloco que estava sendo executado no momento da interrupção. Seria registrado então:
OB1
FC15
FB12
Note que é registrado também os DB’s que estavam em uso (1st DB / 2nd DB).
Editando o Bloco
Se a falha que causou a parada da CPU for um erro síncrono, isto é, um erro de programa, o ícone Open Block
estará ativo, permitindo que se abra o bloco onde ocorreu a falha. O cursor é posicionado exatamente na
instrução onde ocorreu a falha, e o programa pode ser corrigido imediatamente.
L/I-Stack
As pilhas de interrupção e de dados locais são acessadas pelos respectivos ícones nesta tela.
DIAG_T1D
Pilha de Interrupção
Todos os registradores relevantes da CPU são mostrados com seus conteúdos no momento exato da
interrupção.
São mostrados os seguintes registradores:
- os 4 acumuladores;
- os registradores de endereço;
- a palavra de status.
É possível selecionar o formato de dados para os registradores e acumuladores.
Bloco
É indicado o bloco que estava sendo executado no momento da interrupção.
Editando o Bloco
Se a falha que causou a parada da CPU for um erro síncrono, isto é, um erro de programa, o ícone Open Block
estará ativo, permitindo que se abra o bloco onde ocorreu a falha. O cursor é posicionado exatamente na
instrução onde ocorreu a falha, e o programa pode ser corrigido imediatamente.
Acesso ao I Stack
É feito através da pasta Stacks de Informações sobre o Módulo, através do ícone I-Stack (PLC ==> Module
Information ==> Stacks ==> I stack).
Como qualquer pilha, só pode ser acessada com a CPU em Stop
DIAG_T1D
Pilha Local
Os dados das variáveis locais dos blocos abertos no momento da interrupção são exibidos aqui. Os dados são
mostrados na seqüência de chamada dos blocos (ver Pilha de Blocos) e na seqüência de definição das
variáveis dentro do bloco.
Acesso ao I Stack
É feito através da pasta Stacks de Informações sobre o Módulo, através do ícone L-Stack (PLC ==> Module
Information ==> Stacks ==> L stack).
Como qualquer pilha só pode ser acessada com a CPU em Stop.
Mensagens da CPU
É possível programar a CPU, via Step 7, para que envie mensagens ao terminal de programação assim que a
CPU entre em Stop. Com isto, mesmo que outra atividade esteja sendo desenvolvida no terminal de
programação (editando outro programa, rodando um sistema supervisório), pode-se reconhecer imediatamente
que a CPU entrou em Stop e a identificação rápida do motivo.
Ativando a Função
Os passos para ativar a função são:
1- Selecione no menu de comando PLC => CPU Messages
2 - Na caixa de diálogo mostrada selecione a CPU que deverá enviar mensagens. Pode-se selecionar
entre as diversas CPU’s conectadas ao PG/PC.
3 - Selecione o modo de visualização
4 - Encerre a configuração com OK
A função está configurada e preparada para a ocorrência do evento.
Mensagem Exibida
Assim que a CPU entra em Stop é exibida a janela de mensagem. Nela é mostrada praticamente a mesma
mensagem exibida no buffer de diagnóstico.
Se a falha que causou a parada da CPU for um erro síncrono, isto é, um erro de programa, o ícone Open Block
estará ativo, permitindo que se abra o bloco onde ocorreu a falha. O cursor é posicionado exatamente na
instrução onde ocorreu a falha, e o programa pode ser corrigido imediatamente
ck
cli
le-
ub
Do
Diagnóstico de HW
A função Diagnóstico de Hardware dá uma avaliação rápida sobre a configuração e o estado do sistema.
Nela é lida a configuração da CPU, com os módulos existentes, inclusive I/Os distribuídos se presentes, e
identificado seus estados (somente aqueles módulos que possuem algum tipo de modo de operação ou
diagnóstico).
A cor vermelha indica que a CPU está em Stop ou se existe alguma falha em algum módulo. Clicando sobre a
CPU ou sobre o módulo com falha são mostrados mais detalhes de diagnóstico.
No exemplo acima, vê-se uma falha de alimentação do módulo analógico.
Acessando a Função
Através do menu PLC==> Diagnosing Hardware acessa-se esta função. Também direto na ferramenta de
Configuração de Hardware tem-se acesso à função.
Erro na fonte
de alimentação : Erro no acesso
chama OB81. ao módulo:
chama OB122.
Erro de programa:
chama OB121.
OB’s de Erros/Falhas
Toda vez que ocorre um evento, falha ou algum outro evento de diagnóstico, é chamado o respectivo OB. Estes
OB’s são programados pelo usuário para prever uma reação no caso de uma falha/erro no sistema ou
simplesmente para identificar a falha.
Se o respectivo OB não for programado e carregado na CPU, ela entrará em Stop no caso de falha.
OB Erro/Falha
OB80 Tempo de ciclo excedido (overranged)
OB81 Falha na fonte de alimentação (inclusive erro na bateria)
OB82 Erro de diagnóstico, por exemplo, quebra-de-fio na entrada analógica
OB85 Um dos seguintes erros ocorreu:
- uma interrupção do processo ocorreu, mas o respectivo OB não foi encontrado
- erro quando a imagem do processo estava sendo atualizada
OB87 Erro de comunicação
OB121 Erro de programa, por exemplo:
- erro na conversão BCD
- erro no comprimento da faixa de leitura e escrita dos DB’s
- chamada de bloco não existente
- número de temporizador ou contador incorreto
OB122 Erro durante o acesso direto ao módulo
Transfira o programa
“Error S7” do projeto
"PROG1_A" para o PLC
Jump
L MD[C10] “Endereçamento indireto”
STL
II
Label ASC
“O que é
Password?”
Conteúdo Página
Ferramentas de Programação............................................................. 2
Editando no Modo Texto.................................................................... 3
Editando o Arquivo Fonte (1).............................................................. 4
Editando o Arquivo Fonte (2).............................................................. 5
Sintaxe para Blocos de Programa....................................................... 6
Sintaxe para Blocos de Dados............................................................ 7
Declaração de Variáveis...................................................................... 8
Atributos de Proteção........................................................................... 9
Salvando, Checando a Consistência e Compilando........................... 10
Exercício 18.1: Programando no Modo Texto..................................... 11
Modo Texto
A edição de blocos aprendida até aqui é denominada modo incremental, isto é, enquanto há edição está
sendo feita é checada se a sintaxe está correta.
Existe porém um outro método de edição, denominado modo texto, em que a edição é realizada como a
digitação de um texto, sendo no final compilada transformando-se em um bloco de programa. O programa
editado no modo texto utiliza a linguagem STL.
Criando um Bloco
Os arquivos fontes (arq. que contém um programa fonte) são armazenados em uma pasta específica do
programa, denominada Source Files.
Para se criar um novo bloco, selecione a pasta Source Files e com o auxílio do botão direito do mouse, a
função Insert New Object ==> STL Source File
Arq. Externo
Pode-se editar um arquivo fonte com um editor externo (por ex. Word for Windows) e inserir no Step 7. Utilize
para isto a Insert New Object ==> External Source File
Inserir um Arquivo
Arquivo
Sintaxe
Para que o programa editado no modo texto possa a vir se transformar num bloco de programa é necessário
que se siga rigorosamente a sintaxe da linguagem para que a compilação seja executada sem erros.
Inserindo Blocos
Usando no menu a seqüência Insert -> Object -> Block você pode inserir um bloco já existente (isto é, o
código fonte de um bloco S7) no seu arquivo fonte. O arquivo fonte respectivo, do qual os conteúdos são
inseridos atrás da posição do cursor, é gerado automaticamente a partir dos blocos selecionados.
Designado
UDT
Chamada
Global DB
Chamada
DB of UDT
Chamada Designado
FB3
FC5
OB1
Importantes Regras
Existem algumas regras que devem ser seguidas, como por exemplo:
- Mesma sintaxe de STL com “ ; ” no fim de cada instrução. É possível mais que uma
instrução por linha,
- Existe diferença entre letras maiúsculas e minúsculas para nome de
variáveis.
- Comentários iniciam com “ // “.
Características Especiais
Por exemplo:
CALL FC1 (param1:=I0.0, param2:=I0.1);
Regras Importantes
A declaração das variáveis deve estar sempre presente para cada bloco onde ela é válida, seqüencialmente de
acordo com o tipo de declaração.
Exemplos
nome variável : tipo dados ; //comentário
nome variável : tipo dados : = valor inicial;
Todo o bloco S7 possui uma série de atributos como: autor, família, versão, etc. No modo texto porém
pode-se adicionalmente criar uma proteção para blocos de programa.
Proteção do Bloco
Um bloco protegido significa que ele após compilado não poderá ser acessado pelo terminal de programação
no modo incremental, isto é, o bloco executará sua funções porém não poderá ser lido e/ou alterado a não ser
através do próprio programa fonte.
O atributo é KNOW_HOW_PROTECT (proteção de tecnologia) e deverá ser especificado antes de todos os
outros atributos do bloco.
Obs: variáveis do tipo VAR e VAR_TEMP permanecem escondidas na seção de declaração.
Ao final da edição do programa fonte ele deverá ser compilado para se transformar em blocos S7.
Save
Salva o arquivo fonte (mesmo com erro) no harddisk.
Compilação
A compilação é a transformação do arquivo fonte em blocos S7, segundo a sintaxe editada no bloco. Os blocos
gerados são armazenados na pasta de blocos (Blocks) diretamente subordinada à mesma pasta de programas
que o arquivo fonte.
Caso já existam blocos S7 eles serão sobrescritos.
Os erros encontrados durante a compilação são informados através de mensagens, em uma janela logo abaixo
ao texto editado. Selecionado a linha com erro, o editor salta automaticamente para a linha onde o erro foi
encontrado.
Check de Sintaxe
É possível checar a sintaxe, símbolos e a existência de blocos sem a geração dos blocos S7 através desta
função. As mensagens de erro são geradas como no compilador normal.
UEB_UPP
Objetivo
Criar um FB80 no modo ASCII. O programa é executado word por word de flanco de impulso no parâmetro de
entrada “byte de entrada”. Os marcadores de pulso são enviados para os parâmetros de saída “pulse byte”. Um
bloco de variáveis local “old values” será usado para arquivar valores anteriores.
No arquivo fonte, imediatamente depois do FB80, associar o DB instance (ex. DB10) para ser criado. A sintaxe
para isto é mostrada abaixo:
data_block db10
FB80
begin
end_data_block
Depois disto, um OB1 com a chamada para o FB80 deverá ser criado.
E Ainda
No arquivo fonte FB80, inserir o comando “KNOW HOW PROTECT”, compilar o bloco.
O que acontece ?
Porque ?
Conteúdos Página
Documentação de Blocos................................................................... 2
Documentação de Blocos de cabeçalho............................................ 3
Criando Lista de Referência Cruzada................................................. 4
Exibindo a Estrutura do Programa...................................................... 5
Exercício 19.1: Documentando........................................................... 6
Imprimindo o Programa....................................................................... 7
Arquivando Projetos e Programas....................................................... 8
Salvando Programas nos Cartões de Memória................................... 9
Exercício 19.2: Arquivando................................................................. 10
Título do Bloco
Comentário
do Bloco
Título do Segmento
Comentário
do Segmento
Durante a edição do programa deve-se acrescentar títulos e comentários que ajudarão na compreensão
do mesmo.
Títulos
Linha com nome e descrição resumida da função do objeto:
- título do bloco: situado no início do bloco, à direita da identificação do bloco.
- título do segmento (network): situado no início da cada segmento, à direita da identificação do
segmento (network xx).
O campo do título é limitado em 64 caracteres.
Para editá-los basta posicionar o cursor no respectivo campo e digitar o texto.
Comentários
Já o comentário deve ser uma descrição o mais detalhada possível da função ou do objetivo do bloco ou do
segmento, respectivamente comentário do bloco ou do segmento.
Há um máximo de 18 KB disponível para cada comentário de bloco e de segmento.
Tanto para editar os comentários quanto somente para visualizá-los é necessários que eles estejam habilitados.
Consegue-se isto via o comando no menu VIEW ==> Comment.
Para editá-los basta posicionar o cursor no respectivo campo e digitar o texto. Note que o comentário pode ter
mais que uma linha, e que uma barra vertical ajuda na navegação dentro do texto.
Comentário de Linha
Na linguagem STL é possível adicionar um comentário para cada linha de instrução. Estas linhas são
identificadas por duas barras paralelas (//), que ao ser colocadas identificam todo o restante da linha como
comentário.
Ao se alterar o modo de visualização da linguagem de programação para LAD/FBD, estes comentários não são
mostrados.
Todo o bloco possui uma série de informações sobre sua edição que podem ajudar na sua identificação
posterior: data de criação, tamanho ocupado, etc.
Algumas desta informações são geradas automaticamente e outras devem ser fornecidas pelo programador.
Parte 1
Informações genéricas sobre o bloco:
- identificação: informações que o usuário pode fornecer visando facilitar a documentação do bloco,
como Nome do Bloco (Motor On/Off), Família do Bloco (por ex. Motores), Autor (por ex. Joaquim), Versão (por
ex. 1.01).
- data da modificação, separada por código do programa e por tabela de declaração de variáveis
(parâmetros).
Parte 2
Informações importantes sobre o funcionamento e atributos do bloco criado:
- tamanho em bytes do bloco, separados pela tamanho total do bloco (Block), pela área ocupada
exclusivamente pelas instruções (MC7 Code) e pelas variáveis locais (Local Data).
- atributos que influenciam a visualização e manipulação do bloco. Estes atributos só podem ser dados
ao bloco quando editados no modo texto. São eles:
Write-protected - bloco de dados que não pode ser sobrescrito.
Know-How Protect - bloco não pode ser visualizado nem alterado.
Standard - bloco protegido contra escrita, por sem um bloco de biblioteca
padrão da Siemens.
Unlinked - bloco de dados que ficará residente na memória de carga.
System Attributes
São atributos ligados ao funcionamento do bloco quando utilizando o pacote opcional CFC, ou pacotes de
diagnose interligados a IHM, como S7-DIAG
Refência Cruzada
A lista de referência cruzada é uma poderosa ferramenta para detalhar e organizar a documentação. A lista de
referência cruzada pode ser também utilizada durante o desenvolvimento do programa auxiliando na depuração
e procura de erros. Ela fornece uma lista de endereços I,Q,M,T,C,P e variáveis de DB que estão sendo
utilizadas no programa, fluxograma do programa, mapeamento do uso dos operandos I/Q/M, além de
elementos sem nomes simbólicos ou com nomes simbólicos porém não utilizados no programa.
Acessando
Com a pasta Blocks do programa selecionada, e com o auxílio do botão direito do mouse selecione Options
==> Reference Data.
Opções
Para selecionar as várias opções disponíveis utilize o menu ou os ícones:
Lista todos os operandos e sua localização (Bloco e Segmento).
Lista o mapa de utilização da memória I/Q/M
Lista o mapa de utilização da memória C/T.
Lista a estrutura do programa, i.é, a seqüência de chamada dos blocos.
Lista os operandos que possuem nomes simbólicos porém não foram utilizados no programa.
Lista os operandos utilizados no programa, porém para os quais não foram definidos nomes simbólicos.
Filtro
Para todas as opções pode-se selecionar um filtro, isto é, selecionar quais os operandos ou faixa de operandos
que se deseja visualizar.
Estrutura do Programa
A estrutura de programa descreve os níveis dos blocos ou a hierarquia de chamada dos blocos em um
programa. Quando os blocos são exibidos como uma estrutura, é possível uma avaliação mais rápida dos
blocos usados e suas relações.
A estrutura do programa é importante para a correção e depuração do programa
Acesso
A informação é acessada dentro da Referência Cruzada no menu View==> Program Strucuture ou pelo ícone
Informações
A função fornece as seguintes informações:
- a seqüência na qual os blocos são chamados nos diversos Blocos de Organização possíveis (OB1,
OB35, etc.). No exemplo acima o OB1 chama o FC9 que chama o FC10 que chama 3 vezes o FC2.
- a quantidade de dados locais (temporários) ocupados na pilha de dados local por cada bloco. Ex.: [10]
= 10 bytes são ocupados. Indica também o máximo em uma determinado nível de OB, que é o número de bytes
no pior caso. No exemplo acima vemos a indicação Maximum=30, que é quando o OB1 estiver executando a
seqüência até o bloco FC2.
- blocos que foram criados no programa mas não são chamados por nenhum bloco de organização
(OB). No exemplo acima vemos os blocos FC12, FB3 identificados com um X a frente do nome do bloco.
. - chamada recorrente
Nome do Bloco
Comentário
do Bloco
Título da Network
Comentário
da Network
Objetivo
Conhecer as diversas possibilidades de documentar um programa.
Procedimento
1. Complete a documentação dos blocos do programa
- nome do bloco
- comentário do bloco
- título da network
- comentário da network
2. Edite as características do bloco:
- nome do bloco
- família do bloco
- Autor
3. Criar uma lista de referência cruzada
- inicie a lista de referência
- criar a lista de referência Cruzada para I/Q/M e markers (flag’s).
4. Criar uma estrutura de programa
- inicie a lista de referência
- selecione a opção desejada
- exibição da estrutura de programa
Resultado
1. Fornece aos futuros usuários informações para interpretar e entender o programa.
2. Fornece aos futuros usuários características e origem do bloco.
3. Uso da lista de referência cruzada para determinar onde as I/Q são usados
4. Fornece aos usuários uma visão geral da estrutura dos blocos e fluxo do programa.
Exemplo:
Impressão
de Bloco
A estrutura de projeto Step 7 é extremamente complexa, com uma série de diretórios, subdiretórios e
arquivos.
Enquanto está sendo editado o projeto, ele é atualizado automaticamente. Isto significa que cada alteração
realizada no projeto não pode ser abortada, simplesmente não salvando o projeto. Tenha portanto sempre um
backup do seu projeto quando quiser fazer alguma alteração experimental.
Comprimindo
Apesar de não existir a função para salvar o projeto, já que ele é automaticamente salvo pelo sistema, existe
uma opção de salvar o projeto na forma comprimida, em um único arquivo.
Todo o conteúdo do seu projeto, incluindo diretórios e subdiretórios são comprimidos e copiados (a estrutura
original do projeto permanece no seu HD). Por exemplo, conexões de Hardware, número de subnet e
endereços de nós do projeto original, também são copiados.
Arquivando
O arquivamento comprimido é executado da seguinte maneira:
1 - Selecione File ==>Archive,
2 - Digite o nome para o arquivo na caixa de diálogo “File Name” .
3 - Confirme com “Save”.
4 - Selecione o Projeto/Biblioteca a ser arquivado e o caminho no qual o arquivo será gravado.
Recuperando
Um arquivo anteriormente comprimido precisa ser restaurado antes de ser utilizado. Isto é feito pelo caminho
oposto ao arquivamento, através da função File ==> Retrieve.
Nota
Á compressão do arquivo é feita através de um dos softwares de compressão existentes no mercado, como
WINZIP, ARJ, etc. Estes softwares não são fornecidos juntamente com o Step 7, devendo ser instalados
separadamente.
SIEMENS
Cartão de Memória
PG 740
F-EPROM
F-EPROM são cartões de memória somente de leitura. Dados salvos em F-EPROM são retidos mesmo no caso
de uma falha de energia (sem bateria de back-up) ou de uma completo apagamento da memória da CPU (reset
geral).
Opções
Existe duas opções para se gravar F-EPROM. Diretamente na CPU, para as que possuem esta capacidade (por
ex. CPU 416) ou via Terminal de Programação.
EPROM Integrada
As CPU’s 312IFM e 314IFM possuem uma EEPROM integrada e não permitem a colocação de F-EPROM
externas.
O programa pode entretanto ser salvo diretamente na EEPROM da CPU via terminal de programação.
Para copiar os dados da RAM da CPU para a EEPROM integrada na CPU proceda da seguinte
maneira:
1 - transfira todos os blocos desejados para a CPU
2 - selecione o menu PLC ==> Save RAM to ROM
3 - confirme com OK
Para arquivar é necessário comprimir os arquivos, desta forma os arquivos podem ser salvos com mais
eficiência.
Objetivo
Arquivar o projeto PRO1 em um diretório de arquivo.
Procedimento
1. Selecione File => Archive e digite o nome "PROG_AR" no campo de diálogo.
2. Selecione o diretório (C:\TEMP) no qual o projeto vai ser arquivado.
3. Selecione o projeto PRO1 para ser arquivado.
4. Arquive o projeto.
Resultado
Você irá comprimir os arquivos do projeto PRO1 no arquivo “PROG_AR".
PG 720
Dados Globais
KOMM_T2D
Dados Globais
A Rede de Dados Globais serve para trocar pequenas quantidades de dados (máximo de 22 bytes por pacote
de dados para a CPU 31x e máximo de 54 bytes por pacote para a CPU 41x) entre várias CPU´s.
Como interface e meio-físico utiliza-se o MPI, isto é, não é preciso nenhum hardware adicional para
implementá-la.
Troca de Dados
O sistema operacional gerencia a troca de dados, isto é, não é necessário nenhum programa de usuário. A
transferência é executada em um ponto do ciclo de programa.
Cada CPU pode trocar dados com várias outras CPU’s, respeitando-se o limite do número de conexões e bytes
para cada tipo de CPU.
Configurando
Como citado não é necessário programar a comunicação e sim configurá-la. A configuração se inicia com a
seleção das CPU’s que farão parte da rede de dados, cada um tendo o seu endereço MPI. Termina quando se
monta a tabela de troca de dados (Global Data) onde se indica quais as CPU’s e quais dados serão trocados.
Naturalmente para que uma comunicação em rede funcione é necessário que cada participante tenha
seu próprio endereço. Este endereço é o número do nó MPI.
Cofigurador de HW
Sendo uma característica da CPU é natural que a parametrização do endereço MPI seja feita no configurador
de hardware.
Endereço MPI
Dar um double-click na linha com a CPU e então dar um click no botão de comando MPI. Selecione o endereço
MPI desejado e a função Network para indicar que haverá comunicação de dados via rede.
Certifique-se de que todos os nós tenham o mesmo highest MPI address e que cada CPU tenha endereços MPI
diferentes.
Configuração CPU
É importante que a nova configuração de hardware (SDB) seja salva e transferida para a CPU.
Depois que todas as CPU’s participantes tenham tido seu endereço MPI e o parâmetro de comunicação
em rede selecionado, deve-se iniciar a configuração da tabela de dados globais.
Acessando
Selecione o projeto que contém as estações de hardware e com botão direito do mouse ative o comando
Options ==> Global Data.
Será aberta a tabela de dados globais.
Selecionando CPU’s
O primeiro passo na tabela é selecionar as CPU’s que farão parte da comunicação (importante: só podem ser
inseridas as CPU’s que tiveram o parâmetro conectável em rede selecionado).
Para selecionar as CPU’s utilize a função do menu Edit ==> Assign e selecione na caixa de diálogo as
estações que farão parte da troca de dados, uma de cada vez.
Cada CPU ocupará uma coluna da tabela de dados globais.
KOMM_T2D
Dados
Após determinar as CPU’s, indica-se os tipos de dados a serem trocados. Estes dados pode ser qualquer área
existente na CPU: I/Q/M/DBs.
A figura acima mostra a troca de dados entre as áreas MW10, MW20 e MW30.
O emissor deve ser identificado, podendo uma CPU enviar dados para diversas CPU’s. Na figura acima o
emissor é identificado pela cor escura.
Depois de criar a tabela, salve-a com o comando de menu GD Table ==> Save.
Compilar Transferência
Após editar a tabela é necessário compilá-la, que gera blocos de sistema (SDB) para cada CPU participante.
Isto pode ser feito via a função de menu GD Table ==> Compile.
O usuário deverá transferir o bloco de dados de sistema para a respectiva CPU com o item de menu PLC
==>Download.
Momento da
Cada pacote de dados é transferido ou recebido no oitavo ciclo. Pode-se setar outro valor através do comando
de menu View ==> Scan Rates (faixa 4-255 para enviar, e 1-255 para receber). Isto só é possível após a
compilação.
Status
Dentro do programa do usuário para saber como foi executada a transferência de dados, pode-se especificar
uma double word para informação de status para cada pacote de dados. O sistema operacional da CPU entra
com a resposta nesta double word. Para parametrizá-la selecione no menu View ==> Status.
Círculo GD
S GD 1.1 R GD 1.1
1
R GD 1.2 S GD 1.2
2
R GD 2.1 S GD 2.1 R GD 2.1 R GD 2.1 R GD 2.1
S GD 3.1 R GD 3.1
3
R GD 3.2 S GD 3.2
4
R GD 4.1 S GD 4.1 R GD 4.1
5
S GD 5.1 R GD 5.1 R GD 5.1
6
R GD 6.1 S GD 6.1 R GD 6.1
Pacote GD
Um pacote GD (GD Circle) define uma pacote de dados que serão trocados entre CPU’s via Global Data.
A definição de pacote é difícil de descrever, pois depende de uma série de fatores:
- direção, já que a comunicação é bidirecional, podendo enviar/receber dados no mesmo pacote;
- número de bytes, que depende da família: 22 bytes para o S7-300 e 54 para o S7-400;
- divisão em subpacotes, já que entre os 22/54 bytes pode-se definir, por ex., 2 sub-pacotes de 10/27
bytes.
Número de Pacotes
Cada CPU do S7-300 pode participar de até quatro diferentes pacotes GD..
Para o S7-400 o número de pacotes varia com a capacidade da CPU, entre 4 e 16.
Exemplo de Pacotes
Os diagramas acima mostram o princípio da comunicação via pacotes GD.
GD 1. 1. 2.
Número do subpacote
Direção do Pacote
Número do pacote GD
PS SIEMENS IM
(máximo
8
ET200M
unidades) DP Slave
IM
153-1
S7-300 S7-300
Cada vez mais utiliza-se nas instalações o conceito de I/O’s remotos. Isto significa que os pontos de
I/O, ou outros controles, se encontram próximos à máquina ou ao local onde são gerados, e a comunicação
com a CPU é feita com um único cabo em vez de uma dezena deles. Esta solução é denominada PROFIBUS-
DP (Periferia Descentralizada).
Do ponto de vista do usuário, a I/O distribuída é tratada como I/O central, isto é, a mesma configuração,
endereçamento e programação.
A família SIMATIC S7 oferece duas possibilidades para o uso do PROFIBUS DP: CPU’s com interface DP
integrada ou cartões CP (processadores de comunicação) com interface DP.
.
Mestre
A comunicação PROFIBUS-DP é caracterizada como uma comunicação Mestre-Escravo.
Dá-se o nome de Mestre ao sistema que gerencia a comunicação, interrogando todos os elementos conectados
a ele.
Escravo
São os I/Os remotos, ou outros dispositivos inteligentes como ilha de válvulas, acionamentos de freqüência
variável, etc, que enviam/recebem estados/comandos do equipamento Mestre.
Configurando a Rede
Ao se inserir um cartão que possua a interface DP, por exemplo, uma CPU 315-2DP., é mostrada a caixa de
diálogo de configuração da rede Profibus, onde seleciona-se:
- endereço Profibus;
- características da rede (Properties ou New se não existir). estas características são: velocidade, tipos
de escravos, end. mais alto;
- encerre a configuração com OK.
Config. Escravos
Para a .configuração dos escravos, selecione a rede (DP Master System) e a partir do catálogo, sob a pasta
PROFIBUS-DP, selecione os equipamentos que farão parte da rede. Na caixa de diálogo, selecione o endereço
Profibus que o escravo ocupará. O escravo ocupa também um endereço físico de I/O, conforme suas
características.
Catálogo
Todo o equipamento PROFIBUS DP possui um arquivo, denominado GSD, com suas características. Este
arquivo é necessário para que o equipamento esteja disponível no catálogo de hardware. Após inserir o
arquivo GSD no diretório ..\S7DATA\GSD e utilize a função Options ==> Update DDB Files