You are on page 1of 53

Apostila S7-300

A Famlia SIMATIC

A introduo da eletrnica resultou em grandes alteraes na rea de controle industrial. Juntamente com a automao das mquinas as possibilidades de aplicao foram expandidas atravs dos controladores, o que tambm conduziu a novas tecnologias e ramos. Adicionalmente ao fornecimento de energia, so necessrios elementos de controle para o funcionamento das mquinas e dos processos em quase todas as reas da produo. Deve ser possvel inicializar, controlar e visualizar o funcionamento de qualquer mquina ou processo. No passado, as tarefas de controle eram resolvidas atravs da tecnologia de controle convencional - dependendo da tarefa - atravs de contatores e rels. Hoje os controladores lgicos programveis so largamente utilizados para solucionar as tarefas de automao Automao Totalmente Integrada Para que as empresas continuem competitivas, no suficiente a automao isolada, apenas estaes de processo ou mquinas, individualmente. A necessidade de maior produtividade s pode ser preenchida quando mquinas individuais so integradas no sistema completo. O fluxo de informao entre todos os componentes essencial para o funcionamento de todo o sistema. Os processos no possuem mais as suas estruturas hierarquicamente centralizadas. Agora os processos so estruturados, bem como distribudos e os componentes so individualmente autnomos. A integrao total de todo o ambiente de automao hoje possvel com a ajuda de: Configurao e programao comum de sistemas parcialmente individualizados; Tratamento de dados comum; Comunicao comum entre todos os componentes participantes na automatizao.

S7-300
Principais Caractersticas: Sistema de controle modular de pequeno porte; Diversas CPU'S com diferentes nveis de performance; Extensa gama de mdulos; Expansvel at 32 mdulos; Bus traseiro integrado aos mdulos; Diversor protocolos de redes, exemplos: o Multipoint Interface (MPI); o PROFIBUS; o Industrial Ethernet, Conexo para o programador com acesso a todos os mdulos; Sem restries de posicionamento de slot;

Mdulos

PS

CPU

IM

SM

SM

SM

SM

FM

CP

Mdulos de Sinal (SM) Mdulos de entradas digitais: Mdulos de sadas digitais: Mdulos de entradas analgicas: Mdulos de sadas analgicas:

24VDC, 120/230VAC 24VDC, Relay Tenso, corrente, resistncia, termopares Tenso, corrente

Mdulos de Interface (IM) As IM360/IM361e IM365 tornam possvel a configurao multi-rack. Elas conectam o barramento de um rack ao outro. Mdulos Dummy (DM) O mdulo dummy DM 370 reserva um slot para um mdulo de sinal cujos parmetros ainda no foram atribudos. Ele pode ser utilizado, por exemplo, para reservar um slot para instalao posterior de um mdulo de interface. Mdulos de funes (FM) Executam funes especiais: Contagem, Posicionamento, Controle de malha fechada. Processadores de Comunicao (CP) Proporcionam as seguintes possibilidades de comunicao: MPI, PROFIBUS, Industrial Ethernet, AS-Interface, Interbus, etc.

Caractersticas da CPU
Seletor de modo MRES =Funo de reset da memria (Module Reset). STOP=Estado Stop; o programa no executado. RUN=Execuo do programa; possvel o acesso read/write a partir do PG. Indicadores de estado (LEDs) SF=Falha do Sistema; erro interno da CPU ou falha num mdulo com capacidade de diagnstico. BF=Falha de comuicao com o barramento, rede industrial. DC5V=Indicador de tenso interna 5 VDC. FRCE= FORCE; indica que pelo menos uma entrada ou sada est forada. RUN=Pisca quando a CPU est inicializando; Mantm-se acesa no estado Run. STOP=Mantm-se acesa no estado Stop; Pisca devagar quando solicitado um reset de memria; Pisca rapidamente quando est sendo feito um reset de memria; Pisca devagar quando necessrio um reset de memria, por ter sido inserido um mdulo de memria. Mdulo de memria Existe na CPU um slot para o mdulo de memria. O mdulo de memria armazena contedo do programa no caso de uma falha na alimentao, sem necessidade de bateria.

Compartimento para bateria Em alguns modelos de CPUs, existe um receptculo para bateria de ltio debaixo da tampa. A tenso da bateria permite armazenar o contedo da RAM se falhar a alimentao ao PLC. Conexo MPI Conexo a um terminal de programao ou outro dispositivo com interface MPI. Interface DP

Interface para ligao direta de l/Os distribudos CPU. As Ferramentas do STEP 7

Ferramentas:
SIMATIC Manager LAD, STL, FBD Memory Card Parameter Assignment Configuring Networks Setting the PG-PC Interface PID Control Parameter Assignment Converting S5 Files Configure SIMATIC Workspace Converting TI Files

Processo e Projeto
Processo Quando se olha de perto o processo a se automatizar, verifica-se que este composto por uma srie de pequenas reas e sub-processos, que esto interligados e dependentes uns dos outros. A primeira tarefa , portanto, desmembrar o processo de automatizao como um todo em pequenas sub-tarefas separadas. Hardware e Software Cada sub-tarefa define determinados requisitos tanto de hardware como de software que tm que ser cumpridos pelo processo de automatizao: Hardware: Nmero e tipo de entradas e sadas; Nmero de bastidores; Sistemas HMI;

- Nmero e tipo de mdulos; - Capacidade e tipo da CPU; - Sistemas de interliga-lo em rede.

Projeto

Software: Estrutura do programa; - Tratamento de dados para o a automatizao; Dados de configurao; - Dados de comunicao; Documentao do programa e do projeto.

No SIMATIC S7 todos os requisitos de hardware e software de um processo de automatizao so tratados dentro de um projeto. Um projeto inclui o hardware necessrio (+ configurao), rede (+ configurao), todos os programas e o tratamento completo de todos os dados para uma soluo com automao.

Estrutura de um Projeto STEP 7

Hierarquia do Projeto 1 NveI: O primeiro nvel contm o cone do projeto. Cada projeto representa a base de dados onde so armazenados todos os dados relevantes para o mesmo. 2 Nvel: As estaes (por ex. estao S7-300) mostram onde esto armazenadas as informaes sobre a configurao do hardware e a atribuio de parmetros aos mdulos. As pastas S7 program so o ponto de partida para a elaborao dos programas. Todo o software para um mdulo parametrizvel da gama S7 armazenado numa pasta S7 program. Estas contm outras pastas para os blocos e arquivos fonte do programa. Sub-redes (MPI, Profibus, Industrial Ethernet) so parte de uma rede completa. 3 e subseqentes nveis: Dependem do tipo de objeto do prximo nvel superior.

Exerccio 1: Criar um novo Projeto e Inserir um novo programa

Escreva aqui o nome do projeto e confirme com OK

O Que Fazer 1. Inicie o SIMATIC-Manager. 2. Apague o antigo projeto Projeto_1 (se existente) Selecione a seqncia de menus File -> Delete -> User Projects. 3. Selecione Projeto-1 da lista de projetos e confirme com OK. 4. Depois do projeto ter sido apagado, selecione a seqncia de menus File -> New -> User projects. 5. No campo para atribuio do nome do projeto escreva Projeto-1. 6a. No projeto Project_1, selecione a seqncia de menus Insert -> Program S7 Program. ou 6b. Clique com o boto direito do mouse sobre Project_1''. No menu que aparece, selecione as opes Insert New Object -> S7 Program para inserir um novo programa. 7. criado um novo programa S7 com o nome S7 Program 1 8. Altere o nome do programa para Programa_1. Notas Um projeto representa todos os componentes de um sistema de automao. Sendo assim, um projeto pode conter uma ou mais estaes de hardware. Adicionalmente possvel criar pastas de programao independente de hardware, para que seja possvel desenvolver uma aplicao antes que se conhea (e posteriormente instale) esse hardware. Um programa S7 contm os seguintes objetos: - Blocks, no qual so armazenados os blocos (OBs, FCs, FBs e DBs), e que podem ser enviados para a CPU; - Sources, no qual so armazenados os programas fonte que so criados atravs de editores de texto, por exemplo, para STL, S7-SCL ou S7-HiGraph; - Symbols, no qual so armazenados os simblicos (nomes) para o endereamento das variveis globais do S7, tais como, entradas, sadas, memrias, temporizadores e contadores. Resultado criado um novo programa S7 dentro do projeto Projeto_1. criado automaticamente dentro da pasta Blocos do programa um bloco OB1 vazio:

Configurao do Hardware / Inserindo uma Estao

Insert Station Para inserir uma nova estao de hardware no projeto atual selecione a seqncia de menus Insert-Station - SIMATIC 300 Station ou SIMATIC 400 Station. O nome automaticamente dado estao ''SIMATIC 300 (1), e pode ser alterado posteriormente.

HW Config
Esta ferramenta ajuda a configurar, a atribuir parmetros e a diagnosticar o hardware. Iniciando Para iniciar a ferramenta de configurao do HW: - selecione uma estao de hardware no SIMATIC Manager e escolha a seqncia de menus Edit Open Object ou; - duplo clique no objeto Hardware. ''Hardware configurao'' Janela da aplicao do ''HW Config, utilizada para inserir os componentes da janela ''Hardware Catalog A barra de ttulo desta janela contm o nome do projeto e o nome da estao.

''Hardware Catalog'' Para abrir o catlogo: - Selecione a seqncia de menus View - Catalog ou; - Clique no cone da barra de ferramentas. Os escravos Profibus que no existem no catlogo podem ser acrescentados. Para isso, deve-se utilizar os arquivos designados GSE, que so fornecidos pelo fabricante do elemento escravo. Os arquivos GSE contm a descrio do dispositivo. Para incluir o escravo no catlogo de hardware, utiliza-se a seqncia de menus Options - Install New GSE Files e depois Options -> Update Catalog. A partir da os novos elementos no catlogo podem ser encontrados dentro do campo de dispositivos adicionais Profibus.

Gerando a Configurao de Hardware Prevista

Gerando a Configurao Prevista Gerar a configurao prevista significa especificar como os mdulos devem ser montados no bastidor. No STEP 7 esta configurao tratada por Setpoint configurao. Bastidor O catlogo ''RACK-300'' contm um cone para um trilho DIN. possvel inser-lo na janela ''Hardware configurao com um duplo clique (ou arrastando-o com o Mouse). Aparecem ento duas vistas de bastidores separadas: uma vista com o tipo de mdulos em cima e uma vista detalhada com referncia, endereos MPI e endereos de I/O embaixo. Fonte de Alimentao Pode-se inserir uma fonte de alimentao com um duplo clique, ou arrastando com o mouse o mdulo ''PS-300'' do catlogo, para o slot nr.1 do bastidor. CPU A CPU inserida do catlogo ''CPU-300, no slot nr.2. Slot Nr. 3 O slot nr.3 est reservado como endereo lgico para o mdulo de interface (para configuraes com vrios bastidores).Se esta posio for reservada na configurao atual para uma posterior instalao de uma IM, deve-se inserir um mdulo DM370 (DUMMY). Mdulos de Sinal A partir do slot n 4 possvel inserir um nmero mximo de at 8 mdulos de sinal (SM), processadores de comunicao (CP) ou mdulos de funo (FM).

Endereamento DI/DO em Configuraes Multi-rack


Rack 3 Rack 2 Rack 1 Rack 0 SLOT PS 1 PS IM (Receive) IM (Receive) IM (Receive) IM (Send) 3 96.0 a 99.7 64.0 a 67.7 32.0 a 35.7 0.0 a 3.7 4 100.0 a 103.7 68.0 a 70.7 36.0 a 39.7 4.0 a 7.7 5 104.0 a 107.7 72.0 a 75.7 40.0 a 43.7 8.0 a 11.7 6 108.0 a 111.7 76.0 a 79.7 44.0 a 47.7 12.0 a 15.7 7 112.0 a 115.7 80.0 a 83.7 48.0 a 51.7 16.0 a 19.7 8 116.0 a 119.7 84.0 a 87.7 52.0 a 55.7 20.0 a 23.7 9 120.0 a 123.7 88.0 a 91.7 56.0 a 59.7 24.0 a 27.7 10 124.0 a 127.7 92.0 a 95.7 60.0 a 63.7 28.0 a 31.7 11

PS

PS

CPU 2

Nmeros de Slot Os nmeros de slot no bastidor do S7-300 simplificam o endereamento da srie. O endereo inicial do mdulo determinado pela sua posio no bastidor. Slots 4-11 O Slot 4 o primeiro slot que pode ser utilizado para mdulos de I/O, processadores de comunicao (CP) ou mdulos de funo (FM). Exemplos de endereamento: Um mdulo DI no slot 4 inicia no byte de endereo 0. O primeiro LED de um mdulo DO no slot 6 definido por Q8.0. Nota 4 bytes de endereo so reservados para cada slot. Se forem utilizados mdulos DI/DO de 16 canais, dois bytes de endereo sero perdidos em cada slot!

Configuraes Multi-rack Os slots tambm possuem endereamento fixo na configurao multi-rack. Exemplos: o o o o Q7.7 o ltimo bit de um mdulo DO de 32 canais no slot 5 do rack 0. lB105 o segundo byte de um mdulo DI no slot 6 do rack 3. QW60 so os primeiros 2 bytes de um mdulo DO no slot 11 do rack 1. lD80 so todos os 4 bytes de um mdulo DI de 32 canais no slot 8 do rack 2.

Endereamento Varivel

Endereamento Fixo Os mdulos do S7-300 (CPUs sem interface DP) e S7-400 (sem configurao de hardware) tm atribudo endereamento fixo para o slot onde so colocados. Endereamento Varivel Com o S7-300 (CPUs com interface DP integrada) e com o S7-400 possvel atribuir parmetros aos endereos iniciais dos mdulos. O Que Fazer Ao dar um duplo clique num mdulo digital ou analgico aparece a tela para atribuio de parmetros. Depois de escolher a opo Addresses pode-se retirar a seleo de System default. possvel ento definir o endereo inicial no campo start. Se o endereo j estiver sendo usado aparece uma mensagem de erro. Part Process Image s pode ser definida no S7.400. Assim sendo, entradas e sadas especficas (por ex. sinais de tempo critico) podem ser combinadas num grupo. Uma funo do sistema dispara a atualizao da partio da imagem de processo no programa do usurio. Nota Aps um reset de memria da CPU (como conseqncia disso), os parmetros e os endereos so perdidos. Isto significa que no S7-300 so vlidos mais uma vez os endereos fixos por slot e com o S7-400 os endereos default.

10

Propriedades da CPU: Ciclo / Clock Memory

Clock Memory Bit Freq. (Hz) Perodo (s) Ciclo o

7 0.5 2

6 0.62 1.6

5 1 1

4 1.25 0.8

3 2 0.5

2 2.5 0.4

1 5 0.2

0 10 0.1

Opo ''Scan cycle monitoring time (ms):'' - Se esse tempo for excedido a CPU entra em STOP. Possveis causas para o tempo excedido: Processos de comunicao, que freqentemente aparecem a partir de interrupes, erros no programa da CPU. - Se o bloco de erro OB 80 foi programado o tempo de ciclo duplicado. Aps esse tempo a CPU tambm entra em STOP. o Opo Scan cycle load from communication (%):'' - A comunicao (por ex. transmisso de dados para outra CPU via MPI ou funes de teste que foram iniciadas pelo PG) limitada porcentagem especificada do tempo de ciclo atual. - Limitar a carga de ciclo pode atrasar a comunicao entre a CPU e o PG. - Exemplo: limitar a comunicao em 20% resulta numa carga mxima para comunicao de 20ms para um tempo de ciclo de 100ms.

Clock Memory So bits de memria que mudam seu valor binrio periodicamente. Cada bit do clock memory est atribudo a um determinado perodo / freqncia Exemplo de uma luz piscando com uma freqncia de intermitncia de 0.5Hz: (Perodo = 2s, luz ON = 1s, luz OFF = 1s).

11

Transferindo a Configurao de HW Atual para o PG - UPLOAD

Configurao Atual Durante o startup a CPU gera uma configurao atual, isto , ela salva a disposio dos mdulos e atribui os endereos de acordo com um algoritmo fixo. Se no tiverem sido atribudos parmetros so utilizados os parmetros de fbrica default. O sistema armazena esta configurao atual em blocos de dados de sistema. Transferncia para o PG/PC Existem duas maneiras de transferir a configurao atual para o PG: 1. No Simatic Manager: atravs da seleo de menus PlC -> Upload Station. 2. Na ferramenta HW Config: atravs da seleo de menus PlC -> Upload ou selecionando o cone Armazenamento no PG/PC A configurao atual lida a partir do hardware instalado inserida como uma nova estao no projeto selecionado no PG. Nota Ao ler a configurao atual, as referncias dos mdulos no podem ser completamente identificadas. Por esta razo, deve-se verificar a configurao e, se necessrio, inserir o tipo de mdulo exato dentre os mdulos existentes. Para isso, selecione o mdulo, e a seqncia de menus Options -> Specify Module.

12

Exerccio 2: Atribuindo Parmetros ao Clock Memory e testando

Objetivo: Parametrizar a CPU de modo que o clock memory byte seja armazenado no memory byte MB 10. Checar o sucesso da parametrizao usando a funo Monitor/Modify Variables. O Que Fazer: o Inicie a ferramenta HW Config o SIMATIC Manager (Offline view)-> selecione ''Estacao_1 -> duplo clique no objeto Hardware" o Parametrize o memory byte MB10 como sendo o clock memory byte da CPU duplo clique na CPU -> Cycle / Clock Memory o Salve e compile a configurao modificada Station -> Save and Compile o Transfira a configurao modificada para a CPU PLC -> Download o Feche a ferramenta HW Config o Monitore o memory byte MB10 no formato de exibio binrio para poder observar as freqncias pulsantes individualmente. No SIMATIC Manager selecione Programa_1'' -> PLC -> Monitor/Modify Variable -> preencha o MB10 como endereo na tabela de variveis -> utilizando o boto direito do mouse especifique ''binary'' como formato de exibio-> ative a funo usando:

13

Smbolos Endereamento Absoluto e Simblico

A = A = Call

I0.0 Q8.0 I0.4 Q20.5 FC18

A = A = Call

Planta_ON Sada_ON Liga M1_Av M1_Avana Contador

Symbol M1_Avana Contador Planta_ON Sada_ON Liga M1_Av

Address Q20.5 FC18 I0.0 Q8.0 I0.4

Data Type BOOL FC18 BOOL BOOL BOOL

Comment Motor para a frente Contagem de garrafas Liga instalao Indicador: Instalao ligada Comando: Motor para a frente

Endereamento Absoluto No endereamento absoluto, especificamos o endereo (por ex. a entrada I1.0) diretamente. Neste caso no necessria uma tabela de smbolos, contudo o programa torna-se de difcil leitura. Endereamento Simblico No endereamento simblico, utilizamos smbolos (por ex., MOTOR_ON) no lugar dos endereos absolutos. Na tabela simblica so armazenados os smbolos para as entradas, sadas, temporizadores, contadores, bits de memria e blocos. Nota Ao introduzir os nomes dos smbolos no necessrio inserir as aspas. O editor de programa se encarrega de faz-lo.

14

Abrindo a Tabela de smbolos

Tabela de Smbolos

A tabela de smbolos aberta atravs do menu Options -> Symbol Table no Editor LAD/STL/FBD. Pode-se tambm abrir a tabela de smbolos a partir do SIMATIC Manager: Selecione o programa na parte esquerda da janela do projeto e faa um duplo clique no objeto "Symbols". Estrutura da Tabela Quando se abre tabela de smbolos aberta uma tabela, composta por colunas para o nome simblico, endereo, o tipo de dado e um comentrio para o smbolo. Cada smbolo ocupa uma linha da tabela. Uma linha em branco acrescentada automaticamente no final da tabela para definir um novo smbolo. Nota A tabela de smbolos uma base de dados comum e pode ser utilizada por diferentes ferramentas: Editor LAD/STL/FBD Monitorao e Modificao de Variveis Referncia Cruzada

15

Arquitetura dos Blocos/ Tipos de Blocos de Programa Sistema Operacional Ciclo OB Ciclo Ciclo Ciclo
OB FB FC SFB SFC DB Blocos O Controlador Lgico Programvel oferece vrios tipos de blocos nos quais o programa do usurio e seus dados podem ser armazenados. Dependendo das necessidades do processo este programa pode estar estruturado em diferentes blocos. Bloco de organizao OB Os Blocos de Organizao (OBs) compem a interface entre o sistema operacional e o programa do usurio. O programa inteiro pode ser armazenado no OB1, o qual ciclicamente chamado pelo sistema operacional (programa linear) ou pode ser dividido e armazenado em vrios blocos (programa estruturado). Funo FC, SFC Uma funo (FC) contm uma parte funcional do programa. possvel programar funes de modo que sejam parametrizveis. Com isso as funes so ideais para serem reutilizadas no programa, e para realizarem tarefas complexas como clculos. Funes de sistema (SFC) so funes parametrizveis integradas ao sistema operacional da CPU. Seu nmero e funcionalidade so fixos. Maiores informaes podem ser encontradas na Ajuda Online. Bloco de Funo FB, SFB Basicamente os blocos de funo oferecem as mesmas possibilidades que as funes. Adicionalmente, os blocos de funo possuem sua prpria rea de memria, sob a forma de blocos de dados instance (instance data blocks). Com isso as funes so ideais para serem reutilizadas no programa, e para realizarem tarefas complexas como controle em malha fechada. Blocos de funes de Sistema (SFB) so funes parametrizveis integradas ao sistema operacional da CPU. Seu nmero e funcionalidade so fixos. Maiores informaes podem ser encontradas na Ajuda Online. Blocos de Dados Blocos de Dados (DB) so reas de dados do programa do usurio nas quais os dados relativos ao mesmo so gerenciados de maneira estruturada. Operaes Permitidas A utilizao de todas as operaes possvel em todos os blocos (FB, FC e OB). = Organization Block = Function Block = Function = System Function Block = System Function = Data Block

DB

DB

FC

FB

SFC

Blocos de Organizao FB FC SFB

Legenda:

FB

FB com bloco de dados instance

16

Estrutura do Programa
Programa Linear Programa Particionado Programa Estruturado

Receita A Receita B OB 1 OB 1 Misturador Exaustor


Exaustor

OB 1

Bomba

Todas as instrues se encontram em um nico bloco (normalmente no bloco de organizao OB 1).

As instrues para as funes individuais se encontram em blocos individuais. O bloco OB 1 chama os blocos individuais um aps o outro.

Funes reutilizveis so carregadas dentro de blocos individuais. O bloco OB 1 ( ou outros blocos) chamam estes blocos e transferem parmetros.

Programa Linear O programa completo se encontra em um bloco contnuo. Este modelo assemelha-se ao de um controle feito com rels, e que foi substitudo por um controlador lgico programvel. A CPU processa as instrues individuais uma aps a outra. Programa Particionado O programa est dividido em blocos, dentro dos quais cada bloco contm somente um programa destinado a solucionar uma tarefa parcial. Internamente tambm possvel particionar o bloco atravs de segmentos (networks). possvel gerar padres para networks do mesmo tipo. O bloco de organizao OB1 contm instrues para a chamada de outros blocos numa seqncia definida. Programa Estruturado Um programa estruturado contm blocos com parmetros, ou parametrizveis. Estes blocos so criados de forma a serem utilizados universalmente. Ao realizar a chamada de um bloco parametrizvel so fornecidos parmetros (os endereos exatos de entradas e sadas, e assim como de valores de parmetros). Exemplo: Um bloco "Bomba" possui instrues para o controle de uma bomba. Os blocos de programa responsveis pelo controle de bombas especiais chamam o bloco "Bomba" e transferem informaes a respeito de qual bomba ser controlada e com quais parmetros. Quando o bloco "Bomba" completa a execuo de suas instrues o programa retorna para o bloco onde foi feita a chamada (por ex. OB 1), e o processamento das instrues continua.

17

Imagens de Processo

Introduo A CPU checa o status das entradas e sadas em todo ciclo. Existem reas de memria especficas nas quais os dados binrios dos mdulos so armazenados: a PII e a PIQ. O programa acessa esses registradores durante o processamento. PII A tabela-imagem de processo de entrada se encontra na rea de memria da CPU. O estado dos sinais de entrada armazenado nela. PIQ A tabela imagem de processo de sada contem os valores das sadas que resultam da execuo do programa. Eles so enviados as sadas (Q) ao final do ciclo. Programa Ao checar as entradas no programa do usurio, por exemplo, A I2.0, o ltimo estado da PII avaliado. Isso garante que o mesmo estado lgico do sinal valer se houver mltiplas referncias durante a execuo do ciclo atual.

18

Execuo Cclica de Programa


Bloco de Start-up (OB 100) Execuo nica aps, por ex. power on

Mdulo de Entrada

Incio da monitorao de tempo de ciclo

Leitura do estado dos sinais dos mdulos armazenamento dos dados na imagem de processo (PII)

Ciclo da CPU

Execuo do programa no OB1 Eventos (interrupes hora-do-dia, Interrupes de hardware, etc.) Chamada de outros OBs, FBs, FCs, etc.

Bloco OB 1

A I0.1 A I0.2 = Q8.0

Escrita da tabela-imagem de processo de sada (PIQ) nos mdulos de sada

Mdulo de Sada
Inicializao A CPU executa um restart completo (com o OB100) ao ser ligada, ou quando chaveada de STOP --> RUN. Durante um restart completo, o sistema operacional apaga os bits de memria noretentivos, temporizadores e contadores, apaga a pilha de interrupo (interrupt stack ou ISTACK) e a pilha de blocos (block stack ou BSTACK), faz um reset em todas as interrupes de hardware armazenadas e interrupes de diagnstico e inicia o monitoramento do tempo de ciclo de scan. Ciclo de Scan A operao cclica da CPU consiste em trs tarefas principais, de acordo com o diagrama acima: A CPU checa o estado dos sinais de entrada e atualiza a tabela-imagem de processo de entrada; Executa o programa do usurio com suas instrues respectivas; e Escreve os valores provenientes da tabela-imagem de processo de sada nos mdulos de sada.

19

As Linguagens de Programao do STEP 7

Introduo Existem vrias linguagens de programao em STEP 7, que podem ser usadas dependendo da preferncia e conhecimento. Aderindo a regras especficas, o programa pode ser criado em Lista de Instrues e depois convertido para outras linguagens de programao. LAD A representao em Diagrama de Contatos muito similar a um diagrama de circuito eltrico. So utilizados smbolos como contatos e bobinas. Essa linguagem de programao preferida por aqueles que "cresceram" com os contatores. STL A Lista de Instrues composta por instrues STEP 7. Pode-se programar de uma forma praticamente livre em STL (algumas vezes a ponto de no conseguir seguir mais o programa). Esta linguagem de programao preferida pelos programadores que j esto familiarizados com outras linguagens de programao. FBD O Diagrama de Blocos de Funes utiliza "caixas" para as funes individuais. O caractere na caixa indica a funo (por ex. & --> Operao Lgica AND). Essa linguagem de programao tem a vantagem de que at um "no programador" como, por exemplo, um engenheiro de processo pode trabalhar com ela. O Diagrama de Blocos de Funes est disponvel desde a Verso 3.0 do Software STEP7.

20

Chamando um Bloco no OB1

Execuo Cclica Para que um novo bloco criado seja parte integrante da execuo cclica do programa da CPU ele deve ser chamado no OB1. A forma mais fcil de inserir a chamada de um bloco graficamente em LAD e FBD e atravs da lista de instrues j conhecida (ver figura acima). Na linguagem de programao STL a instruo para a chamada de um bloco e a instruo CALL.

Transferindo Blocos para o PLC

Transferindo Pode-se transferir blocos para o CPU com o SIMATIC Manager: Clicando no cone ou selecionando a opo menu PLC -> Download. Antes de fazer isto se deve selecionar os blocos a se transferir: Todos os Blocos: Selecione o objeto "Blocks" na parte esquerda da janela do projeto. Alguns Blocos: Pressionando a tecla CTRL e selecionando os blocos Um Bloco: Selecionando o Bloco.

21

Operaes Binrias

Operaes Lgicas Binrias: AND, OR

Regras A regra seguinte vlida para a operao lgica AND com duas entradas: a sada ter nvel lgico 1 se ambas as chaves estiverem ativadas (ligao em srie). A regra seguinte vlida para a operao lgica OR com duas entradas: a sada ter nvel lgico "1" quando uma ou mais entradas for acionada (ligao em paralelo).

22

Contatos Normalmente Abertos e Normalmente Fechados, Sensores e Smbolos


O Sensor um... O Sensor est... Tenso presente na entrada Estado do sinal na entrada

ativado Contato NA no ativado

SIM

NO

ativado
Contato NF

SIM

no ativado

NO

Processo A utilizao de contatos normalmente abertos ou normalmente fechados para os sensores em um processo controlado depende das regras de segurana do prprio processo. Os contatos normalmente fechados so sempre utilizados para chaves de limite e interruptores de segurana, de forma que no apaream situaes de perigo se houver uma quebra de fio no circuito do sensor. Os contatos normalmente fechados so tambm utilizados para desligar as mquinas, pela mesma razo. Smbolos Em LAD, um smbolo com o nome "Contato NA utilizado para fazer a verificao do estado lgico "1" e um smbolo com o nome "Contato NF' para verificar o estado lgico "0". No faz nenhuma diferena se o sinal "1" do processo e fornecido por um contato NA ativado ou por um contato NF no-ativado. Exemplo O resultado da verificao para o smbolo "Contato NA" "1" se um contato NF na mquina no estiver ativado.

23

Atribuio, Set, Reset

Atribuio

Set

Reset

Atribuio Uma atribuio transfere o RLO para os endereos especificados (Q, M, D). Quando o RLO muda, o estado do sinal desse endereo tambm alterado. Set Se o RLO = "1", o endereo especificado setado com nvel lgico "1", e assim permanece at que seja feito um reset atravs de outra instruo. Reset Se o RLO= "1", o endereo especificado resetado para o nvel lgico "0" e assim permanece at que seja feito novamente um set atravs de outra instruo.

Setando / Resetando um Flip Flop

Reset dominante

Set dominante

Flip Flop Um flip flop possui uma entrada de Set e uma entrada de Reset. O bit de memria setado ou resetado, dependendo da entrada que possuir RLO = "1". Se por alguma razo ambas as entradas possuirem simultaneamente RLO=1, a prioridade deve ser determinada. Prioridade Em LAD e FBD existem diferentes smbolos para as funes Set Dominante e Reset Dominante. Em STL, a instruo que for programada em ultimo lugar tem prioridade. Nota Se uma sada ativada atravs de uma instruo Set, ela resetada num restart completo da CPU. Se M 0.0 (no exemplo acima) tiver sido declarada coma retentiva, ela permanecer setada aps um restart completo da CPU, e a saida o 9.3 (que tinha sido desligada) ter novamente o estado "1".

24

Conector

Conector Um conector corresponde a um elemento intermedirio de atribuio de sinal que armazena o RLO no endereo especificado. Quando ligado em srie com outros elementos, a instruo "Conector" inserida da mesma forma que um contato normal. Um conector nunca deve: Ser conectado ao incio de um ramo (LAD); Seguir diretamente um ramo; Ser usado no final de um ramo. Pode-se programar um conector negado com um elemento "NOT".

25

RLO - Deteco de Flanco

Flanco do RLO Um "Flanco do RLO" acontece quando o resultado lgico de uma operao muda. Flanco Positivo Quando o RLO muda de "0" para "1", a instruo de deteco de flanco "FP" resulta no estado de sinal "1" (por ex. na M 8.0) durante um ciclo. Para permitir que o sistema detecte a mudana de flanco, o RLO deve tambm ser salvo num bit de memria FP, ou bit de dados (por ex. M 1.0) Flanco Negativo Quando o RLO muda de "1" para "0", a instruo de deteo de flanco "FN" resulta no estado de sinal "1" (por ex. M 8.1) durante um ciclo. Para permitir que o sistema detecte a mudana de flanco, o RLO deve tambm ser salvo num bit de memria FN, ou bit de dados (por ex. M 1.1).

26

Sinal - Deteco de Flanco

Flanco de Sinal Um "flanco de sinal" acontece quando o sinal muda o seu estado. Exemplo: A entrada I 1.0 funciona como uma entrada esttica de habilitao. A entrada I 1.1 monitorada dinamicamente e cada mudana de sinal detectada. Flanco Positivo Quando o estado do sinal I 1.1 passa de "0" para "1", a instruo de verificao "POS" resulta no estado lgico "1" na sada Q durante um ciclo, desde que I1.0 tenha estado logico "1" (como no exemplo acima ilustrado). Para permitir que o sistema detecte a mudana de flanco, o estado de I 1.1 deve tambm ser salvo num M_BIT (bit de memria ou bit de dados - por exemplo M1.0). Flanco Negativo Quando o estado de sinal I1.1 passa de "1" para "0", a instruo de verificao "NEG" resulta no estado logico "1" na sada Q durante um ciclo, desde que I1.0 tenha estado logico "1" (como no exemplo acima ilustrado). Para permitir que o sistema detecte a mudana de flanco, o estado de I 1.1 deve tambm ser salvo num M_BIT (bit de memria ou bit de dados - por exemplo M1.1 ).

27

Jump Incondicional (Independente do RLO)


LAD

FBD

STL

Instruo de Salto Em LAD/FBD, o label e introduzido como um identificador acima do smbolo da sada, ou de atribuio. Em STL ele aparece depois da instruo de salto. O label pode ter at quatro caracteres, sendo que o primeiro deve ser uma letra ou o caractere _. O label marca o ponto onde a execuo do programa deve continuar. Nenhuma instruo ou segmento entre a instruo de salto e o label executada. Os saltos tanto podem ser feitos para a frente como para trs. A instruo de salto e o destino do salto tem de estar programados no mesmo bloco (comprimento max. do salto = 64Kbyte). O destino do salto s pode existir uma vez no bloco. As instrues de salto podem ser utilizadas nos FBs, FCs e OBs. Inserindo um Label Em LAD e FBD utiliza-se a seguinte sequencia de menus para inserir um label: Program Elements -> Logic Control/Jump -> Label. Em STL, o label introduzido do lado esquerdo da instruo na qual o programa deve continuar. JU Uma instruo de salto incondicional faz com que o programa salte para o label mencionado independentemente do RLO.

28

Jump Condicional (Dependente do RLO)

JC O salto condicional "JC" s executado se o RLO for "1". Se o RLO for "0", o salto no e executado, o RLO passa a ter o valor "1" e a execuo do programa continua na instruo seguinte. JCN O salto condicional "JCN" s executado se o RLO for "0". Se o RLO for "1 ", o salto no e executado e a execuo do programa continua na instruo seguinte.

29

Operaes Digitais / Formatos de Nmeros (16 Bits)

Cdigo BCD Cada dgito de um nmero decimal codificado em quatro bits. So utilizados quatro bits porque o nmero decimal mais alto, 9, necessita de pelo menos quatro posies de bit em cdigo binrio (1001). Os dgitos decimais de 0 a 9 so representados em cdigo BCD da mesma forma que os nmeros binrios de 0 a 9. INTEIRO O tipo de dado INT um inteiro (16 bits). O sinal (bit 15) indica se o nmero positivo ou negativo ("0" = positivo, "1" = negativo). Um nmero de 16 bits pode estar compreendido entre -32768 e +32767. No formato binrio, a forma negativa de um nmero inteiro representada como o complemento de dois do nmero inteiro positivo. (O complemento de dois obtido invertendo o padro de bits do nmero e depois adicionando-Ihe 1). Para saber quanto vale um nmero negativo, veja os bits que esto em zero e quanto valem as suas potncias de dois, depois some 1 ao resultado e coloque um sinal menos em frente ao nmero. DINT Inteiros de 32-bit com sinal so tambm designados "duplos inteiros" ou "inteiros longos". Estes nmeros cobrem uma gama que vai desde L# -2147483648 a L#+2147483647. REAL Um nmero real (tambm conhecido como nmero em ponto flutuante) um nmero positivo ou negativo compreendido entre 1.175495x10^-38 a 3,402823x10^38. Exemplos: +10.339 ou +1.0339E1 -234567 ou -2.34567E5. Na representao exponencial o expoente especificado como uma potncia de 10. Um nmero real ocupa duas palavras na memria. O bit mais significativo indica o sinal. Os outros bits representam o coeficiente e o expoente para a base 2. Nota: A representao de nmeros reais no STEP 7 est de acordo com as normas standard IEEE.

30

Carregando e Transferindo Dados (1)

Exemplos de Carga

L L L L L L

+5 L#523123 B#16#EF B#16#EF 2#0010 0110 1110 0011 3.14

// // // // // //

constante 16-bit (Inteiro) constante 32-bit (Duplo Inteiro) byte em hexadecimal valor binrio 16-bit valor binrio 16-bit constante 32-bit (Real)

MOVE (LAD/FBD) Se a entrada EN esta ativa, o valor na entrada "IN" copiado para o endereo da sada "OUT". "ENO" possui o mesmo estado de sinal que "EN". L e T (STL) As instrues Load (carregar) e Transfer (transferir) so executadas independentemente do RLO. Os dados so trocados atravs do acumulador. A instruo Load escreve o valor do endereo fonte alinhado a direita no acumulador 1 e preenche os restantes bits (32 bits no total) com "0"s. A instruo Transfer cpia algum ou todo o contedo do acumulador 1 para o destino especificado.

31

Contadores no STEP 7

Valor do contador Est reservada na memria de dados do sistema uma palavra de 16-bits para cada contador. Ela utilizada para armazenar o valor da contagem para o contador (0 ... 999) em cdigo binrio. Contagem Crescente Quando o RLO na entrada "CU" passa de "0" para "1" o valor atual do contador incrementado de uma unidade (limite superior = 999). Cont. Decrescente Quando o RLO na entrada "CD" passa de "0" para "1" o valor atual do contador decrementado de uma unidade (limite inferior = 0). Set do contador Quando o RLO na entrada "S" passa de "0" para "1" o valor do contador passa a ser o valor especificado na entrada PV. Reset do contador Quando o RLO = 1 o valor do contador levado a zero. Se a condio de reset preenchida, o contador no pode ser setado, e a contagem no possvel! PV O valor pr-definido (0...999) especificado na entrada "PV" em BCD como: Uma constante (C#....) Em formato BCD atravs da utilizao dos blocos de dados. CV I CV _BCD O valor do contador pode ser carregado como um nmero binrio ou um nmero BCD no acumulador e transferido a partir da para outros endereos. Q O estado de sinal do contador pode ser verificado na sada "Q": Contagem = 0 -> Q = 0 contagem >< 0 -> Q = 1 Tipos de contador: S_CU=Contador crescente (contagem apenas crescente) S_CD=Contador decrescente (contagem apenas decrescente) S_CUD=Contador crescente I decrescente.

32

Contadores: Instrues de Bit

Instrues Bit Todas as funes dos contadores podem ser tambm acessadas com simples instrues de bit. As semelhanas e diferenas entre este mtodo e as funes dos contadores so a seguir apresentadas: Semelhanas: Condies de set na entrada "SC"; Especificao do valor do contador; Mudana do RLO na entrada "CU"; Mudana do RLO na entrada "CD". Diferenas: No possvel verificar o valor atual do contador (no existem sadas em BI e BCD). No existe na representao grfica a sada binria "Q". Nota Os contadores IEC - compatveis podem tambm ser utilizados no STEP7.

33

Temporizadores: ON Delay (SD)

Disparo A contagem do tempo comea quando o RLO na entrada S" passa de "0" para "1". O temporizador conta o tempo especificado na entrada "TV" desde que o valor do sinal na entrada "S" seja "S =1". Reset Quando o RLO na entrada de Reset "R" for "1" o valor do tempo atual, bem como o da sua base de tempo so apagados, e a sada Q resetada. Sadas Digitais O valor atual do tempo pode ser lido como um nmero binrio na sada "BI" e como um nmero BCD na sada "BCD". O valor atual do tempo o valor inicial do parmetro menos o valor para o tempo que j foi contado desde que o temporizador disparou. Sada Binria O sinal na sada "Q" passa a ser "1" se o temporizador tiver contado o seu tempo sem erros e a entrada "S" tiver sinal "1". Se o estado do sinal na entrada "S" passar de "1" para "0" antes do temporizador ter terminado a contagem do tempo, o temporizador pra a sua contagem. Neste caso a sada "Q" ter sinal "0".

34

Temporizadores: Stored ON Delay (SS)

Disparo A contagem do tempo comea quando o RLO na entrada S" passa de "0" para "1". O temporizador inicia a contagem com o tempo especificado na entrada "TV", e continuar a sua contagem mesmo que a entrada S passe para "0" durante esse tempo. Se o sinal na entrada de disparo passar novamente de "0" para "1" enquanto o temporizador estiver contando, a contagem de tempo iniciada do princpio. Reset Quando o RLO na entrada de Reset "R" for "1", o valor do tempo atual, bem como o da sua base de tempo so apagados, e a sada Q resetada. Sada Binria O estado do sinal da sada "Q" passa a "1" quando o temporizador tiver contado o seu tempo sem erros, independentemente do estado de sinal da entrada "S".

Temporizadores: Pulse (SP)

Disparo O temporizador comea a sua contagem quando o RLO na entrada S passa de 0 para "1". A sada "0" tambm levada a "1". Reset A sada "Q" resetada quando: O temporizador tiver contado todo o seu tempo; ou Se o estado do sinal na entrada S" passar de "1" para "0"; ou Se a entrada de reset R tiver estado de sinal "1".

35

Temporizadores: Extended Pulse (SE)

Disparo O temporizador inicia a contagem do seu tempo quando o RLO na entrada "S" passa de "0" para "1". A sada "Q" tambm levada a "1". O estado do sinal na sada "Q" permanece em "1" mesmo que o sinal na entrada "S" passe para "0". Se o sinal na entrada de disparo passar novamente de "0" para "1" enquanto o temporizador estiver contando, o tempo reinicializado. Reset A sada "Q" resetada quando: O temporizador tiver contado todo o seu tempo, ou A entrada de Reset "R" tiver estado de sinal 1.

36

Temporizadores: OFF Delay (SF)

Disparo O temporizador comea a sua contagem quando o RLO na entrada "S" passa de "1" para "0". Quando o temporizador tiver contado todo o seu tempo, o estado do sinal na sada "Q" passa para "0". Se o estado do sinal na entrada "S" passa de "0" para "1" enquanto o tempo estiver decorrendo, o temporizador pra, e na prxima vez que o estado do sinal passar de "1" para "0" recomea do princpio. Reset Quando o RLO na entrada Reset "R" "1", o tempo atual e a base de tempo so apagados e a sada "Q" resetada. Se as entradas (S e R) tiverem sinal "1" ao mesmo tempo, a sada "Q" no ligada at que o Reset dominante seja desativado. Sada binria A sada "Q" ativada quando o RLO na entrada "S" passa de "0" para "1". Se a entrada S desativada, a sada "Q" continua a ter estado de sinal "1" at que o tempo programado tenha sido contado.

37

Temporizadores: instrues de Bit

Instrues de Bit Todas as funes dos temporizadores podem ser tambm acessadas com simples instrues de bit. As semelhanas e diferenas entre este mtodo e as funes dos temporizadores so a seguir apresentadas: Semelhanas: - Condies de disparo na entrada "S" - Especificao do valor do tempo - Condies de reset na entrada "R" - Resposta de sinal na sada "Q" Diferenas (para LAD e FBD): No possvel verificar o valor atual do tempo (no existem sadas para BI e BCD).

38

Operaes de converso BCD<->Inteiro

Instrues de converso O conjunto de instrues do S7300/400 suporta uma gama extensa de possibilidades de converso. As instrues tm todas o mesmo formato: EN, ENO Se o RLO = "1" na entrada de permisso "EN", a converso executada. A permisso de sada "ENO" tem sempre o mesmo estado de sinal que a entrada "EN". Se este no for o caso, ser claramente indicado nas instrues correspondentes. IN Quando EM = "1" o valor em "IN" lido para a instruo de converso. OUT O resultado das converses armazenado no endereo da sada "OUT". BCD_I /BTI (Converte BCD em inteiros) l o contedo do parmetro "IN" como um nmero BCD de trs dgitos (+/- 999) e converte-o num valor inteiro (16 bits). I_BCD / ITB (Converte inteiros em BCD) l o contedo do parmetro "IN" como um nmero inteiro (16 bits) e converte-o num nmero BCD de trs dgitos (+/- 999). Se houver "overflow, "ENO = 0". BCD_DI / BTD Converte um nmero BCD (+/- 9999999) num duplo inteiro (32 bits). DI_BCD / DTB Converte um duplo inteiro num nmero BCD de sete dgitos (+/- 9999999). Se houver "overflow, "ENO = 0".

39

Operaes de Comparao

CMP Pode-se utilizar instrues de comparao para comparar os seguintes pares de valores numricos: I Comparar inteiros (com base em Nmeros de ponto-fixo de 16-bit) D Comparar inteiros (com base em Nmeros de ponto-fixo de 32-bit) R Comparar Nmeros de ponto-flutuante (com base em Nmeros reais de 32-bit = Nmeros IEEE de ponto-flutuante). Se o resultado da comparao for "Verdadeiro", o RLO resultante da comparao "1"; de outra maneira ser "0". Os valores nas entradas "IN1" e "IN2" so comparados conforme a condio especificada: == IN1 igual a IN2 (EQ) <> IN1 diferente de IN2 (NE) > IN1 maior que IN2 (GT) < IN1 menor que IN2 (LT) >= IN1 maior ou igual que IN2 (GE) <= IN1 menor ou igual que IN2 (LE)

40

Funes matemticas Bsicas

Adio

Subtrao

Multiplicao

Diviso

Geral O conjunto de instrues do S7-300/400 suporta uma gama extensa de funes matemticas. Todas as instrues tm o mesmo formato: EN ENO A instruo executada se o RLO for = "1" na entrada de permisso "EN". Se o resultado est fora da faixa de valores permitida para aquele tipo de dado, os bits "OV="overflow"" e "OS="Stored Overflow"" so setados e a sada "ENO=0". Isto evita que futuras operaes dependentes de "ENO" sejam executadas.

IN1, IN2 O valor na entrada "IN1" lido como o primeiro endereo e"IN2" como o segundo. OUT O resultado da operao matemtica armazenado no endereo especificado na sada "OUT". Instrues Soma:

Subtrao:

Multiplicao:

Diviso:

ADD_I ADD_DI ADD_R SUB_I SUB_DI SUB_R MUL_I MUL_DI MUL_IR DIV_I DIV_DI DIV_R

Somar inteiros Somar duplo inteiros Somar Nmeros reais Subtrair inteiros Subtrair duplo inteiros Subtrair Nmeros reais Multiplicar inteiros Multiplicar duplo inteiros Multiplicar Nmeros reais Dividir inteiros Dividir duplos inteiros Dividir Nmeros reais

41

Operaes de converso I -> DI -> REAL

Exemplo Um programa de usurio que trabalha com nmeros inteiros tambm realiza divises, que podem resultar em valores menores que 1. Como estes valores podem ser representados apenas como nmeros reais, a converso para o formato real toma-se necessria. Para isso, o inteiro deve inicialmente ser convertido a um duplo inteiro. I_DI / ITD Converte um inteiro num duplo inteiro. DI_R/DTR Converte um duplo inteiro num nmero real. Nota Existem outras instrues de converso, tais como: INV_I I INVI NEG_I I NEGI TRUNC I TRUNC ROUND I RND CEIL I RND+ FLOOR I RNDINV_DI I INVD NEG_DI I NEGD NEG_R I NEGR CAW, CAD

42

Blocos de Dados (DBs) OB1


Funo FC10 Funo FC20

Global Data

DB20

Instance DB para o FB1 Bloco de Funo FB1 Instance Data DB5

Geral Os blocos de dados so utilizados para armazenar dados do usurio. Como acontece com os blocos lgicos, os blocos de dados ocupam espao na memria de usurio. Os blocos de dados contm dados variveis (por ex. valores numricos) que so utilizadas no programa. O programa do usurio pode acessar os dados de um bloco de dados atravs de operaes de bit, byte, word (palavra) ou doubleword (dupla palavra). Pode ser utilizado o endereamento absoluto ou o endereamento simblico. Utilizao Dependendo do seu contedo, os blocos de dados podem ser utilizados de diferentes maneiras. Pode-se diferenciar entre: Blocos de dados Globais: estes blocos contem informao que pode ser acessados por todos os blocos do programa do usurio. Blocos de dados Instance: estes blocos esto sempre associados a um determinado FB. Os dados em cada DB s devem ser utilizados pelo FB associado. Os blocos de dados instance so tratados em maiores detalhes no captulo "Funes e Blocos de Funes". Criando DBs Os blocos de dados globais podem ser criados tanto com o Editor de Programa como com uma UDT ("user-defined data type") que j tenha sido criado. Os blocos de dados instance so criados quando um bloco FB chamado. Registradores A CPU possui dois registradores de bloco de dados, o registrador DB e o registrador DI. Assim sendo, possvel trabalhar com dois blocos de dados abertos ao mesmo tempo.

43

Viso Geral dos Tipos de Dados no STEP 7


Tipos de dados Elementares (max. 32 bits) - Dados do tipo bit (BOOL, BYTE, WORD, DWORD, CHAR) - Dados do tipo matemtico (INT, DINT, REAL) - Dados do tipo tempo (S5TIME, TIME, DATA, TIME_OF_DAY)

Tipos de dados Complexos (maiores que 32 bits)

- Tempo (DATE_AND_TIME) - Matriz (ARRAY) - Estrutura (STRUCT) - Cadeia de caracteres (STRING)

Tipos de dados definidos pelo usurio (maiores que 32 bits)

Tipo de dados UDT (User Defined Type)

Geral Os tipos de dados determinam as propriedades do dado, isto , a forma como o contedo de um ou mais endereos associados deve ser representado e a faixa de valores permitida. O tipo de dado determina tambm quais operaes podem ser utilizadas. Dados do Tipo Elementar Os dados do tipo elementar so predefinidos de acordo com a norma lEC 1131-3. O tipo de dado determina a quantidade de espao de memria necessrio. Por exemplo, um dado do tipo Word (palavra) ocupa 16 bits na memria de usurio. Os dados do tipo elementar no tm mais de 32 bits de comprimento. Podem ser carregados com todo o seu contedo nos acumuladores de um processador S7 e processados com instrues STEP 7 elementares. Dados do Tipo Complexo Os dados do tipo complexo s podem ser utilizados juntamente com variveis declaradas nos blocos de dados globais. Dados do tipo complexo no podem ser carregados na totalidade do seu contedo nos acumuladores atravs de operaes de carregamento. Para estes dados poderem ser processados deve-se utilizar blocos standard da biblioteca ("lEC" S7 Program) Dados Definidos pelo Usurio Os dados definidos pelo usurio podem ser utilizados para os blocos de dados ou como um tipo de dado na tabela de declaraes de variveis. As UDTs so criadas com o editor de blocos de dados. A estrutura de uma UDT pode conter grupos de dados elementares e/ou dados complexos.

44

Tipos de Dados Elementares no STEP 7


Palavra chave BOOL BYTE WORD DWORD CHAR
S5TIME

Comprimento (em BITS) 1 8 16 32 8 16 16 32 32 32 16 32

INT DINT REAL TIME DATE TIME_OF_DAY

Exemplo de uma constante deste tipo 1 ou 0 B#16#A9 W#16#12AF DW#16#ADAC1EF5 w S5T#5s_200ms 123 L#65539 1.2 ou 34.5E-12 T#2D_1H_3M_45S_12MS D#1993-01-20
TOD#12:23:45.12

Tipos de Dados Complexos no STEP 7

45

Editando, Salvando, Transferindo e Monitorando um DB

Inserindo Dados Os elementos so introduzidos um a um na tabela. Para isso, selecione a primeira linha vazia na coluna "Name" e introduza a descrio dos elementos. possvel saltar para as outras colunas "Type" (tipo), "Initial Value" (valor inicial) e "Comment" (comentrio) - utilizando-se a tecla Tab. Colunas O significado de cada uma das colunas , respectivamente: Address Name Type Initial Value - introduzido pelo editor de programa ao salvar. Corresponde ao primeiro endereo byte ocupado pela varivel no bloco de dados. - nome simblico do elemento . - tipo de dado (selecione com a tecla direita do mouse). - utilizado para selecionar um valor default para um elemento. Se no for introduzido um valor neste campo, ser utilizado o valor zero como valor inicial. - para documentar o elemento da tabela (opcional).

Comment Salvar

Salva o bloco de dados no disco rgido do programador. Transferir Transfere o bloco de dados para a CPU da mesma forma que so transferidos os blocos lgicos. Monitor Para monitorar os valores atuais de um bloco de dados, deve-se passar para a representao "Data View". Pode-se monitorar um bloco de dados utilizando o cone dos "culos" da barra de ferramentas (visualizao permanente dos valores atuais do DB na CPU).

46

Endereando os Dados 8 Bits


7 Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 6 5 4 3 2 1 0

DBB 0 DBW 0 DBD 0 DBX

Byte 8191 Geral Os elementos de um bloco de dados so endereados byte a byte, ou seja, da mesma maneira que os bits de memria. Pode-se carregar e transferir bytes de dados, palavras de dados ou duplas palavras de dados. Ao utilizar palavras de dados, deve-se especificar na instruo o endereo do primeiro byte (por ex. L DBW 2). Com esta instruo so carregados dois bytes a partir do endereo referido. Com duplas palavras, so carregados 4 bytes a partir do endereo referenciado. Nmero, Comprimento O nmero de blocos de dados depende da CPU utilizada. O comprimento mximo de um bloco de dados de 8KByte para o S7-300 e de 64KByte para o S7-400. Nota Ao tentar acessar-se um dado ou um bloco de dados no-existentes, a CPU entrar em STOP se no tiver sido programado um OB de erro.

47

Acessando os Dados

Acesso Tradicional No acesso tradicional dos blocos de dados (tpico na linguagem S5), eles devem ser explicitamente abertos antes do acesso. Isso pode ser feito absoluta ou simbolicamente com a instruo OPN DB 99 ou OPN "Valores" (observe o exemplo). Adicionalmente, o bloco de dados anteriormente aberto automaticamente fechado. Depois os elementos de dados individuais podem ser acessados bit a bit (DBX...), byte a byte (DBB...), word a word (DBW...) ou doubleword a doubleword (DBD...) sem que o bloco de dados tenha que ser especificado. Desvantagens: Ao acessar os elementos de dados deve-se ter certeza de que o bloco de dados correto est aberto. S pode ser feito acesso absoluto, e assim fica a cargo do programador acessar o endereo correto no bloco de dados. Se a DBW3 no exemplo fosse carregada, nem o valor da varivel Numero nem o valor da varivel Peso[1] seria carregado, mas sim um valor invlido . Acessos absolutos dificultam correes e tornam o programa difcil de ser lido. Acesso completo A abertura de um bloco de dados e o fechamento do que estava aberto anteriormente esto integrados no acesso completo. O acesso completo pode ser feito absoluto ou simblico: Absoluto A abertura do bloco de dados e o acesso dos dados so feitos de forma absoluta em combinao com uma instruo. As desvantagens so similares as do acesso tradicional descritas. Simblico O acesso simblico a uma varivel no bloco de dados apenas possvel no acesso completo, e completamente simblico. O Editor permite mesclar os endereamentos absoluto e simblico durante a edio; contudo ele altera para a forma completamente simblica aps confirmado o operando.

48

Exemplo de uma Matriz


Measuring_point
1.Measuring_point, data type Real 2.Measuring_point, data type Real 3.Measuring_point, data type Real

. . .
10.Measuring_point, data type Real

Matriz de nome Measuring_point (vrios elementos do mesmo tipo de dado)

Exibio no editor de programa (Bloco de Dados DB 2)

Array Uma matriz ("array") composta por vrios elementos do mesmo tipo de dados. Na figura acima ilustrada, pode-se ver a matriz "Measuring_point" com 10 elementos do tipo de dados REAL. Posteriormente, alguns dos valores medidos devero ser armazenados nesta matriz. Definir Array num DB O formato para uma matriz "ARRAY [n...m]". O primeiro (n) e o ltimo elemento (m) so especificados em colchetes. No exemplo, [1...10] significa 10 elementos, onde o primeiro endereado com o index [1] e o ltimo com o index [10]. Em vez de [1...10] poderia, por exemplo, definir [0...9]. Esta representao apenas afeta o acesso aos elementos. Data View Para ver que valores esto armazenados nos elementos individualmente, selecione as opes de menu View -> Data View para passar para a outra visualizao. Em "Data View", so encontrados na coluna "Actual Value" os valores que esto presentemente armazenados.

Exemplo de uma Estrutura


Motor_data Operating Speed, data type

Integer
Operating Speed, data type

Integer
Operating Speed, data type

Estrutura com o nome Motor_data (vrios elementos com diferentes tipos de dados)

Integer
Operating Speed, data type Integer

49

Exibio no Editor de Programa (Blocos de Dados no DB1)

Estrutura A Figura mostra o exemplo de uma estrutura com o nome "Motor_data". A estrutura constituda por vrios elementos de diferentes tipos de dados. Os elementos individuais de uma estrutura podem ser do tipo de dados elementar ou complexo. O acesso aos elementos individuais de uma estrutura contm o nome da estrutura. O programa fica assim mais fcil de ler. Para poder acessar aos elementos simbolicamente, deve ser dado ao bloco de dados um nome simblico, por exemplo, "Drive_1". Exemplos de como acessar elementos individuais de uma estrutura: L "Drive_1 " Motor_data.rated_current L "Drive_1 " Motor_data.operating_speed "Drive_1" o nome simblico do bloco de dados, que contem a estrutura. O nome da estrutura dado (separado por um ponto) depois do nome simblico. A seguir ao nome da estrutura (separado por um ponto) aparece o nome de um elemento da estrutura. Definir Estrutura num DB O tipo para uma estrutura "STRUCT". O fim de uma estrutura indicado por "END_STRUCT". Cada estrutura tem que ter um nome (no nosso exemplo: "Motor_data").

50

Funes e Blocos de Funes

Introduo
Variveis / Dados Globais (vlidos em todo o programa) o o o PII / PIQ I/O M/T/C reas de DB Dados / Variveis locais (Vlidos apenas em um bloco) Variveis Temporrias
So apagadas aps o bloco ter sido executado Armazenamento temporrio no L-stack Utilizadas em OBs / FCs / FBs

Variveis Estticas
So retidas mesmo aps o bloco ter sido executado Armazenamento nos OBs Podem apenas ser utilizadas nos FBs

ABSOLUTO

SIMBLICO

ACESSO

Geral At agora, as entradas e sadas utilizadas foram endereadas com seus parmetros atuais. No foram associados parmetros para os blocos. Esse procedimento pode ser escolhido, por exemplo, na criao de um programa que ser usado apenas em uma mquina especial. Para funes utilizadas freqentemente em sistemas maiores podem ser criados blocos parametrizveis de uso universal (FC, FB). Eles possuem parmetros formais de entrada e sada, aos quais so atribudos parmetros atuais quando a chamada feita.

51

A associao da funcionalidade do bloco ao hardware feita na parametrizao, quando da chamada do bloco; a lgica do bloco no alterada. Variveis Locais At agora foram utilizadas variveis globais (bit memories e blocos de dados) para armazenar os dados de produo, por exemplo. Nesse captulo sero dadas mais informaes sobre o armazenamento de dados em variveis locais. Variveis Temp Variveis temporrias so variveis armazenadas apenas durante a execuo do bloco. Elas podem ser utilizadas em todos os blocos (OB, FC, FB). Variveis Estticas e os dados tiverem de continuar armazenados mesmo aps a execuo do bloco devero ser usadas as variveis estticas. As variveis estticas s podem ser utilizadas em blocos de funo.

Variveis Temporrias

Geral Variveis temporrias podem ser utilizadas em todos os blocos (OB, FC, FB). Elas so utilizadas para armazenar informaes temporariamente enquanto o bloco esta sendo executado. Os dados so perdidos quando finalizada a execuo do bloco. Os dados so armazenados no L-stack (local data stack). O L-Stack uma memria separada dentro da CPU. Declarao As variveis so definidas na tabela de declarao do bloco. Na linha "temp" so preenchidos o nome e o tipo do dado da varivel. No possvel predefinir um valor inicial neste caso. Aps salvo o bloco, a locao de memria no L-Stack exibida na coluna "Address".

52

Acesso Na Network 1 exibido um exemplo do acesso simblico a uma varivel temporria. O resultado da subtrao armazenado na varivel temporria "result". possvel tambm fazer o acesso absoluto varivel (T LW0). Deve-se, contudo, evitar isso, j que o programa torna-se de difcil leitura. Nota Nomes de variveis que comeam com o caractere especial # so variveis locais apenas vlidas dentro do bloco onde foram declaradas na tabela de declaraes. O Editor de Programa automaticamente cria o caractere especial.

53

You might also like