CLP Apostila Siemes S7 300



Comments



Description

CLPControlador Lógico Programável Nível 01 Fênix Automação Industrial – Barra Mansa – RJ Email: [email protected] Av Joaquim Leite, Ed Benedictus 01, Sala 203, Centro Modelos de CLP´s SIMATIC S7 FAMILIA DE CONTROLADORES SIEMENS SIMATIC S7 S7-200 O S7-200 é o micro-CLP da família SIMATIC S7. 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) S7-300 O S7-300 é o pequeno e totalmente modular CLP da família SIMATIC S7. - 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 . Pagina 02 Multi-point Interface (MPI) Características da Interface MPI 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. Pagina 03 Multi-point Interface (MPI) Características da Interface MPI 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 -Dados Técnicos da MPI: As mais importantes características da interface MPI são: - Padrão RS 485 e taxa de transmissão de 187.5 Kbaud - Distâncias até 50 m ou até 9100 m com repetidores - Componentes padrões do PROFIBUS DP (cabo , conector, e repetidor) Pagina 04 Terminais de Programação Terminais de Programação PG720740 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) Pagina 05 Hardware Introdução ao Hardware S7-300 Pagina 06 Hardware Introdução ao Hardware S7-300 No S7-300 o endereçamento dos módulos de I/O, CP e FM são slot´s orientados, isto é, o seu endereço depende da posição do módulo no trilho. Alguns slot´s são reservados: PS, CPU e IM. Slot1: 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. 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. Slot 4-11: Módulos de sinais (SM). Slot 4 é considerado o primeiro slot para módulos de entrada e saída ou CP ( Processadores de Comunicação) Profibus, Ethernet ou FM ( Modulos de Funções) contagem, Posicionamento. Pagina 07 Hardware S7-300: Design da CPU Seletor de Modo: • MRES = Função de reset da CPU. • STOP = Estado Stop; o programa não é executado. • RUN = Execução do programa; possível o acesso read-only a partir do Terminal de Programação. • RUN-P = Execução do programa, possível o acesso read / write a partir do Terminal de Programação. Indicadores de estado (LEDs): • SF = Resumo de falhas; erro interno da CPU ou falha num módulo com capacidade de diagnóstico. • BATF = Falha de bateria; Bateria descarregada ou não existente. • DC5V = Indicador de tensão interna 5 V DC. • FRCE = FORCE; indica que pelo menos uma entrada ou saída está forçada. • RUN = Pisca quando a CPU está inicializando; Mantém-se acesa no estado Run. • STOP = Mantém-se acesa no estado Stop; Pisca devagar quando é solicitado um reset de memória; Pisca rapidamente quando está sendo feito um reset de memória; Pisca devagar quando é necessário um reset de memória, por ter sido inserido um módulo de memória. Pagina 08 Hardware S7-300: Design da CPU • Módulo de memória: Existe na CPU um slot para o módulo de memória. O módulo de memória armazena o conteúdo do programa no caso de uma falha na alimentação, sem necessidade de bateria. • Compartimento da Bateria: Existe um receptáculo para bateria de lítio debaixo da tampa. A tensão da bateria permite armazenar o conteúdo da RAM se falhar a alimentação ao PLC. • Conexão MPI: Conexão a um terminal de programação ou outro dispositivo com interface MPI. • Interface DP: Interface para ligação direta de I/Os distribuídos à CPU. Pagina 09 Endereçamento S7-300 - Endereçamento de I/O - Digital 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. Pode-se acessar estas áreas (I e Q) em bits, bytes, words ou double words, como mostrado nos exemplos abaixo: - Q4.0 é um dado que é arquivado no primeiro bit (bit 0) do byte 4 na tabela imagem da periferia de saída (usando a numeração padrão das I/O do diagrama acima, isto corresponde ao primeiro ponto no módulo 2) - IB100 refere-se ao dado no byte 100 da tabela imagem da periferia de saída. - IW100 refere-se ao dado que é arquivado nos bytes 100 e 101 da tabela imagem da periferia de entrada. Pagina 10 Endereçamento S7-300 - Endereçamento de I/O – Analógico 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. O endereço identificador para uma entrada analógica é PIW e para saída analógica é PQW. No S7-300 o endereçamento para sinais analógicos começa com 256, sendo portanto que o primeiro canal no primeiro módulo no primeiro rack irá então ser PIW256. O último endereço analógico é 766 (para o S7-300). Exemplo: Para acessar os dados do segundo canal no primeiro módulo no rack 2, o endereço da entrada analógica e PIW514. Pagina 11 Programação O SIMATIC Manager O SIMATIC Manager é uma interface de gráfica com o usuário para a edição online/offline de objetos S7 (projetos, arquivos de programa do usuário, blocos, estações de hardware e ferramentas). Com o SIMATIC Manager é possível: administrar projetos e bibliotecas; ativar as ferramentas STEP 7; acessar online o PLC; editar módulos de memória. Pagina 12 Programação O SIMATIC Manager Processo: Quando se olha de perto o processo a se automatizar, verifica-se que este é composto por uma série de pequenas áreas e sub-processos, que estão interligados e dependentes uns dos outros. A primeira tarefa é portanto desmembrar o processo de automatização como um todo em pequenas sub-tarefas separadas. Hardware e Software: Cada sub-tarefa define determinados requisitos tanto de hardware como de software que têm que ser cumpridos pelo processo de automatização: Hardware: - Número e tipo de entradas e saídas; - Número e tipo de módulos; - Número de bastidores; - Capacidade e tipo da CPU; - Sistemas HMI; - Sistemas de interligação em rede. Software: - Estrutura do programa; - Tratamento de dados para o processo de automatização; - Dados de configuração; - Dados de comunicação; - Documentação do programa e do projeto. Pagina 13 Programação O SIMATIC Manager Estrutura do Projeto: Os dados são armazenados num projeto sob a forma de objetos. Os objetos são organizados no projeto numa estrutura de árvore (hierarquia do projeto). A estrutura em árvore mostrada na janela do projeto, é similar à do Windows Explorer. Somente os ícones dos objetos são diferentes. Hierarquia do Projeto: 1º. Nível: O primeiro nível contém o ícone do projeto. Cada projeto representa a base de dados onde são armazenados todos os dados relevantes para o mesmo. 2º. Nível: As estações (por ex. estação S7-300) mostram onde estão armazenadas as informações sobre a configuração do hardware e a atribuição de parâmetros aos módulos. As estações são o ponto de partida para configurar o hardware. As pastas “S7 Program” são o ponto de partida para a elaboração dos programas. Todo o software para um módulo parametrizável da gama S7 é armazenado numa pasta “S7 Program”. Estas contêm outras pastas para os blocos e arquivos fonte do programa. Subredes (MPI,Profibus, Industrial Ethernet) são parte de uma rede completa. 3º. e subseqüentes níveis : Dependem do tipo de objeto do próximo nível superior. Pagina 14 Programação Iniciando o SIMATIC Manager Existe o ícone designado "SIMATIC Manager" no desktop do Windows, e um item de programa "SIMATIC Manager" dentro do campo SIMATIC no menu Iniciar. O programa é ativado como qualquer aplicação do Windows, através de duplo-click no ícone ou através do menu Iniciar INICIAR > SIMATIC > Barra de Título: A barra de título contém o título da janela e os botões para controlar essa mesma janela. Barra de Menu: Contém todos os menus disponíveis para essa janela. Barra de Ferramentas: Contém as tarefas que são utilizadas com maior freqüência sob a forma de símbolos. Estes símbolos são auto-explicativos. Barra de Status: Mostra o estado de uma determinada aplicação e outras informações. Barra de Tarefas: A barra de tarefas contém todas as aplicações que estão abertas e janelas como botões. A barra de tarefas pode ser posicionada em qualquer um dos lados da tela através da utilização do botão direito do mouse. Pagina 15 Programação Barra de Ferramentas do SIMATIC Manager Pagina 16 Programação Criando um Projeto no STEP7 Criando um Projeto: Selecione a opção de menu File > New ou o símbolo na barra de ferramentas para abrir a caixa de diálogo "New“, que permite criar um novo projeto ou uma nova biblioteca. Introduza o nome do projeto no campo "Name" e confirme selecionando "OK“. Pagina 17 Programação Configuração do Hardware Configuração do HW: Os módulos são fornecidos de fábrica com parâmetros pré-selecionados. Se estes parâmetros de fábrica estiverem OK não é necessário fazer a configuração do HW. É necessário fazer uma configuração: - se for necessário modificar os parâmetros pré-selecionados ou endereços de um módulo (por ex. ativar a interrupção de hardware de um módulo); - se for necessário configurar redes de comunicação; - se existem estações de periferia distribuída (PROFIBUS-DP); - se existem estações S7-400 com várias CPUs (multiprocessamento) ou bastidores de expansão; - se o controlador lógico programável for do tipo “fault-tolerant” (pacote opcional). Pagina 18 Programação Inserindo uma Estação Para inserir uma nova estação de hardware no projeto atual selecione a seqüência de menus Insert > Station > SIMATIC 300 Station ou SIMATIC 400 Station. O nome automaticamente dado à estação é "SIMATIC 300 (1)“, e pode ser alterado posteriormente. Pagina 19 Programação Inciando o HW Config Para iniciar a ferramenta de configuração do HW: - selecione uma estação de hardware no SIMATIC Manager e escolha a seqüência de menus Edit > Open Object ou -duplo-clique no objeto Hardware. "Hardware Configuration" Janela da aplicação do "HW Config“, utilizada para inserir os componentes da janela "Hardware Catalog". A barra de título desta janela contém o nome do projeto e o nome da estação. "Hardware Catalog“ Para abrir o catálogo: - selecione a seqüência de menus View > Catalog ou clique no ícone da barra de ferramentas. Se estiver selecionado como perfil de catálogo a opção “Standard”, ficam disponíveis para seleção todos os bastidores, módulos e módulos de interface na janela "Hardware Catalog". É possível criar um catálogo personalizado com os elementos utilizados com maior freqüência, bastando para isso selecionar a seqüência de menus Options -> Edit Catalog Profiles. Os escravos Profibus que não existem no catálogo podem ser acrescentados. Para isso, deve-se utilizar os arquivos designados GSD, que são fornecidos pelo fabricante do elemento escravo. Os arquivos GSD contêm a descrição do dispositivo. Para incluir o escravo no catálogo de hardware, utiliza-se a seqüência de menus Options > Install New GSD Files e depois Options -> Update Catalog. A partir daí os novos elementos no catálogo podem ser encontrados dentro do campo de dispositivos adicionais Profibus. Pagina 20 Programação Gerando a Configuração de Hardware Prevista Gerar a configuração prevista significa especificar como os módulos devem ser montados no bastidor. No STEP 7 esta configuração é tratada por “setpoint configuration”. Bastidor: Por exemplo, ao configurar uma estação SIMATIC 300: O catálogo "RACK-300" contém um ícone para um trilho DIN. É possível inseri-lo na janela "Hardware Configuration” com um duplo-clique (ou arrastando-o com o mouse). Aparecem então duas listas de bastidores separadas: uma lista com o tipo de módulos em cima e uma lista detalhada com referências, endereços MPI e endereços de I/O embaixo. Fonte de Alimentação: Pode-se inserir uma fonte de alimentação com um duplo-clique, ou arrastando com o mouse o módulo "PS-300" do catálogo, para o slot nr.1 do bastidor. CPU: A CPU é inserida do catálogo "CPU-300“, no slot nr.2. Slot Nr. 3: O slot nr. 3 está reservado como endereço lógico para o módulo de interface (para configurações com vários bastidores). Se esta posição deve ser reservada na configuração atual para uma posterior instalação de uma IM, deve-se inserir um módulo DM370 (DUMMY). Módulos de Sinal: A partir do slot nr. 4 é possível inserir uma número máximo de até 8 módulos de sinal (SM), processadores de comunicação (CP) ou módulos de função (FM). Para inserir os módulos no bastidor selecione o slot e depois dê um duplo-clique no módulo desejado contido no catálogo. É possível inserir módulos em qualquer parte da lista arrastando com o mouse. Pagina 21 Programação Propriedades da CPU Atribuindo Parâmetros: Os parâmetros são atribuídos aos módulos para os adaptá-los às necessidades do processo. O que fazer: 1. Selecione um módulo na janela da estação. 2. Duplo-clique no módulo selecionado para abrir a janela "Properties". 3. Esta janela possui 9 campos nos quais é possível atribuir parâmetros para as diferentes características da CPU (ver próximas páginas). Pagina 22 Programação Propriedades da CPU: Geral Opção "General“: A seção "General" fornece informação sobre o tipo do módulo, sua localização e, no caso dos módulos programáveis, o endereço MPI. Endereço MPI: Para conectar vários PLCs em rede através da interface MPI é necessário atribuir um endereço MPI diferente a cada CPU. Selecione o botão "Properties" para abrir a janela "Properties - MPI Node", que contém duas seções: "General" e "Parameters". Pagina 23 Programação Propriedades da CPU: Startup Características de Startup: As CPUs do S7-300 e S7-400 têm diferentes características de startup. Por enquanto, vamos ver apenas as características de startup do S7-300. Restart Completo: O S7-300 apenas reconhece o "Complete restart". As CPUs mais novas também possuem a versão "Cold restart“. Tempos Monitorados: "Ready message from modules (x100ms):" Tempo máximo para que todos os módulos enviem uma mensagem de que estão OK após power ON. Se os módulos não enviarem a mensagem de que estão prontos para a CPU dentro deste intervalo de tempo, a configuração atual não é igual à configuração prevista. Por exemplo, numa configuração com vários bastidores, todas as fontes de alimentação podem ser ligadas dentro deste tempo sem se tomar atenção a uma seqüência particular. "Transfer of parameters to modules (x100ms):" Tempo máximo para “distribuir” os parâmetros aos módulos com atribuição de parâmetros (a contagem deste tempo começa quando é enviada a mensagem "Ready message from modules“ para a CPU). Se, decorrido o tempo de acesso, não tiverem sido atribuídos os parâmetros a todos os módulos, então a configuração atual não é igual à configuração prevista. Startup se as Configurações Prevista e Atual são diferentes: Apenas nas CPUs com interface DP integrada (e S7-400) pode ser utilizada a opção "Startup if preset configuration not equal to actual configuration“, para decidir se a CPU deverá executar o startup mesmo que a configuração prevista não seja igual á configuração atual (número e tipo de módulos instalados). As outros CPUs do S7-300 entram em RUN quando a configuração prevista não é a mesma que a configuração atual. Pagina 24 Programação Propriedades da CPU: Retentividade Memória Retentiva: A seção "Retentive Memory" é utilizada para especificar as áreas de memória que devem ser mantidas após uma falha na alimentação ou numa transição de STOP para RUN. No S7-300 é executado, em ambos os casos, um "complete restart“. Restart Completo com Bateria de Backup: Num restart completo, os blocos armazenados na RAM retentiva (OB, FC, FB, DB), bem como os bits de memória, temporizadores e contadores definidos como retentivos são mantidos. Só os bits, temporizadores e contadores não-retentivos são resetados. Restart Completo sem Bateria de Backup: Se não existe bateria para manter a RAM sua informação é perdida. Só os bits de memória, temporizadores, contadores definidos como retentivos, além das áreas dos blocos de dados definidas como retentivas são armazenados em área não-volátil da RAM. Depois de um restart completo sem bateria de backup o programa tem que ser transferido novamente: - a partir do módulo de memória (se inserido); ou - a partir do PG (se não existir módulo de memória). Pagina 25 Programação Propriedades da CPU: Proteções Opção Pré-Definida: Características pré-definidas (nível de proteção 1; não há password atribuído): A posição da chave na CPU determina a proteção: - Chave na posição RUN-P ou STOP: sem restrições - Chave na posição RUN: só é possível o acesso read-only (leitura)! Password: Se foi atribuído um nível de proteção com password (apenas válido até um reset de memória), a pessoa que sabe a password tem acesso para leitura e escrita. A pessoa que não sabe a password tem as seguintes restrições: - proteção nível 1: corresponde às características pré-definidas -proteção nível 2: é apenas possível o acesso read-only, independentemente da posição da chave - proteção nível 3: não é possível nem o acesso para leitura nem o acesso para escrita, independentemente da posição da chave. Características de um Módulo em Operação com Proteção por Password Exemplo: para executar a função "Modify Variable" deve-se escrever a password para um módulo ao qual foi atribuído o parâmetro de nível de proteção 2. Direitos de Acesso: É possível também introduzir a password para um módulo protegido no SIMATIC Manager: 1.Selecione o módulo protegido ou seu programa S7 2.Introduza a password selecionando a seqüência de menus PLC -> Access Rights. Os direitos de acesso, depois da password ter sido introduzida, são apenas válidos até que a última aplicação S7 seja completada. Operação: A carga de ciclo para funções de teste é regulado com essa opção: Na opção Process, funções de teste como "Monitor" ou "Monitor/Modify Variable" são limitadas de forma que o aumento do tempo de ciclo permitido não seja excedido. Testes com breakpoints e passos individuais (execução do programa linha a linha) não podem ser executados. Na opção Test, todas as funções de teste possíveis com PG/PC podem ser utilizadas sem restrições, mesmo que provoquem um aumento significativo do tempo de ciclo. Pagina 26 Programação Propriedades da CPU: Diagnótico / Relógio System Diagnostics: Se o campo "Record cause of CPU STOP" está desativado não é enviada nenhuma mensagem para o PG / OP quando a CPU entra em STOP ("CPU Messages"). De qualquer forma a causa que levou a CPU ao estado STOP é armazenada no buffer de diagnóstico. Clock: As possibilidades de sincronização dos relógios em rede são apresentadas no capítulo “Solução de Problemas”. É possível também ajustar automaticamente a hora no relógio de uma CPU independente através de um fator de correção. Correction Factor: O fator de correção é utilizado para corrigir uma inexatidão do relógio após decorridas 24 horas. O fator de correção tanto pode ser negativo como positivo. Exemplo: Se o relógio está 3 segundos adiantado após 24 horas, isto pode ser corrigido com um fator de "-3000ms". Nota: "Interrupts", "Time-Of-Day Interrupts" e "Cyclic Interrupt" são discutidos no capítulo “Blocos de Organização". Pagina 27 Programação Propriedades da CPU: Comunicação Comunicação: Toda conexão de comunicação ocupa um recurso de conexão (connection resource) na CPU do S7. Dependendo das especificações técnicas um número específico de recursos de conexão está disponível para cada CPU, os quais são ocupados por várias tarefas de comunicação (“PG/OP communication”, “S7 communication” ou “S7 standard communication”). Quando as tarefas de comunicação efetuam “log on” os recursos de comunicação são distribuídos na seqüência do “log on”. A ocupação dos recursos de conexão não depende somente da seqüência de “log on” das várias tarefas de comunicação, pois é possível também reservar recursos para as seguintes tarefas: - “PG Communication”; - “OP Communication”; e - “S7 Standard Communication”. Ao menos um recurso de conexão para “PG/OP Communication” é reservado. Valores menores não são permitidos. Outras tarefas de comunicação como “S7 Communication” com funções PUT/GET não podem ocupar este recurso de conexão mesmo se elas realizarem sua conexão primeiro. Pelo contrário, os recursos de comunicação ainda disponíveis mas não reservados para uma tarefa são ocupados. Pagina 28 Programação Salvando a Configuração de HW e Transferindo para o modulo Salvar: Para salvar a configuração atual no projeto atual selecione a seqüência de menus Station >Save (não são criados blocos de dados de sistema - SDBs). Transferência: Selecionando a seqüência de menus PLC > Download ou clicando no ícone da barra de ferramentas é possível transferir a configuração selecionada para o PLC. O PLC tem que estar no estado "STOP“! Blocos de Dados de Sistema: Os SDBs são gerados e modificados quando se configura o hardware. Os blocos de dados de sistema (SDBs) contêm os dados da configuração e os parâmetros do módulo, e são armazenados na memória de trabalho da CPU quando da sua transferência. Isso facilita a substituição de módulos, porque os dados de atribuição de parâmetros são transferidos para o novo módulo a partir dos blocos de dados de sistema no startup da CPU. No terminal de programação, os blocos de dados de sistema são armazenados no caminho: Project \ Station \ CPU \ S7_program \ Blocks \ System_data. Para abrir a lista de blocos de dados de sistema dê um duplo-clique no ícone Se estiver utilizando um módulo Flash EPROM, os SDBs também devem ser nele armazenados. Assim sendo, a configuração não se perde se estiver trabalhando sem bateria de back-up e ocorrer uma falha na alimentação da CPU. Pagina 29 Programação Tipos de Blocos de Programa Blocos: O Controlador Lógico Programável oferece vários tipos de blocos nos quais o programa do usuário e seus dados podem ser armazenados. Dependendo das necessidades do processo este programa pode estar estruturado em diferentes blocos. Função FC, SFC: Uma função (FC) contém uma parte funcional do programa. É possível programar funções de modo que sejam parametrizáveis. Com isso as funções são ideais para serem reutilizadas no programa, e para realizarem tarefas complexas como cálculos. Funções de sistema (SFC) são funções parametrizáveis integradas ao sistema operacional da CPU. Seu número e funcionalidade são fixos. Bloco de Função FB, SFB: Basicamente os blocos de função oferecem as mesmas possibilidades que as funções. Adicionalmente, os blocos de função possuem sua própria área de memória, sob a forma de blocos de dados instance (instance data blocks). Com isso as funções são ideais para serem reutilizadas no programa, e para realizarem tarefas complexas como controle em malha fechada. Blocos de Funções de Sistema (SFB) são funções parametrizáveis integradas ao sistema operacional da CPU. Seu número e funcionalidade são fixos. Blocos de Dados: Blocos de Dados (DB) são áreas de dados do programa do usuário nas quais os dados relativos ao mesmo são gerenciados de maneira estruturada. Operações Permitidas: A utilização de todas as operações é possível em todos os blocos (FB, FC e OB). Pagina 30 Programação Blocos integrados e as suas funções OB (Bloco de Organização): Os blocos tipo OB são em geral os responsáveis pela organização do programa do usuário. Tem-se blocos de organização para o processamento cíclico do programa, para o processamento comandado por tempo e por interrupções. Os procedimentos de partida da CPU e sua reação em caso de falhas podem ser também influenciados pela programação de OB´s especiais. Podemos dizer porém que o bloco de organização mais importante é o OB1. Este bloco é o responsável pelo processamento cíclico do programa. O bloco de organização OB1 é chamado pelo sistema operacional da CPU. Assim que a instrução JU (salto incondicional) ou JC (salto condicional) é encontrada, o programa linear é deixado e passa a ser executado o bloco chamado pelas instruções de salto. No término da execução deste bloco temos o retorno á instrução seguinte no OB1 que originou o salto. A OB será chamada ciclicamente pelo sistema operacional. Ou seja, os blocos de aplicação devem chamados dentro de uma OB (Organization Block) para serem executados. Uma FB ou FC não irá fazer nada se não for chamada por uma OB. A Tabela 03 seguinte lista os blocos de organização integrados no CLP SIMATIC S7-300. Pagina 31 Programação OB – Bloco de Organização O tipo de OB é definido por seu numero. Executados continuamente (OB1 apenas): OB1 Programa de execução cíclico Executados Periodicamente: S7 provê até nove cíclico interrupção OB ´s (OB30 para OB38) que interrompem seu programa em intervalos fixos. OB30 Cíclico interrupção (falha intervalo: 5s) OB31 OB32 OB33 Cíclico interrupção (falha intervalo: 2s) Cíclico interrupção (falha intervalo: 1s) Cíclico interrupção (falha intervalo: 500ms) Cíclico interrupção (falha intervalo: 200ms) Cíclico interrupção (falha intervalo: 100ms) Cíclico interrupção (falha intervalo: 50ms) Cíclico interrupção (falha intervalo: 20ms) Cíclico interrupção (falha intervalo: 10ms) Tabela 01 – Avaliação de Blocos de Organização Integrados Pagina 32 OB34 OB35 OB36 OB37 OB38 Programação OB – Bloco de Organização Exemplo de programa utilizando vários OB´s cíclico interrupção conforme suas prioridades de tempo. Figura – Tipos de OB´s e suas chamadas A definição de onde colocar uma determinada lógica depende da necessidade do programa, existem lógicas que são mais rápidas e precisam de um ciclo de execução mais veloz, assim como existem aquelas que podem ser executadas com menos freqüência. Por exemplo, OB33 pode sofrer um pequeno atraso que não irá interferir no processo, já OB36 ex: atualização das saídas exige uma resposta muito mais rápida. Desta forma vamos dividir os programas de acordo com sua função e com a sua velocidade de execução. Pagina 33 Programação OB – Bloco de Organização O tipo de OB é definido por seu numero. OB´s de erros Assíncronos: OB80 OB81 OB82 OB83 Máx tempo de varredura excedido Falha da bateria de backup Quebra de fio na entrada de um módulo com capacidade de interrupção Removendo um módulo de sinal durante o modo RUN Nível de sinal de falha na interface MPI Erro na atualização da imagem de processo (módulo com defeito) Defeito em fonte de alimentação de bastidor de expansão Identificador de mensagem incorreta (Erro de comunicação) OB84 OB85 OB86 OB87 Pagina 34 Programação OB – Bloco de Organização Exemplo de programa utilizando OB de Erros Assíncrono. Inserindo um Bloco: Selecione a seqüência de menus Insert > S7 Block > OB81 > linguagem STL Figura – Tipos de OB´s e suas chamadas Pagina 35 Programação OB – Bloco de Organização Exemplo de programa utilizando OB de Erros Assíncrono. Tarefa: O defeito na bateria deve resultar na amostragem de um erro no console operacional. Depois de trocada a bateria a mensagem deve automaticamente desaparecer. Descrição: Em erros de fonte de alimentação p.ex. falha de bateria, OB 81 de erro é chamado uma vez pelo sistema operacional. Depois do erro ser eliminado o OB81 é chamado mais uma vez. No programa exemplo, a variável #OB81_FLT_ID é avaliada, de forma a determinar se existiu um defeito na bateria. Neste caso a variável contém o valor 22H. A comparação desta forma é preenchida e o bit de memória M81.1 é acionado. O erro mostrado será iniciado quando a bateria tiver falhado (entrando evento) e limpada depois que o erro tenha sido eliminado (saído evento). Os seguintes identificadores estão na variável #OB81_EV_class Ou seja: B#16#39 entrando evento B#16#38 saindo evento. O “SET” e o “RESET” do FLAG de memória auxiliar M81.0 é o arquivado através da avaliação destas variáveis. No programa cíclico p.ex. OB1, o FLAG de memória auxiliar M81.0 pode ser lincado à uma memória geradora de pulso e ser atribuída a uma saída. A saída então piscará enquanto a bateria estiver esgotada ou removida. Pagina 36 Programação OB – Bloco de Organização Exemplo de programa utilizando OB de Erros Assíncrono. Área de dados do OB 81: Pagina 37 Programação OB – Bloco de Organização Exemplo de programa utilizando OB de Erros Assíncrono. Pagina 38 Programação OB – Bloco de Organização O tipo de OB é definido por seu numero. OB´s STARTUP “partida”: Na Tabela seguinte, pode ser observado que é chamado OB pelo sistema operacional durante partida. OB100 OB102 Procedimento de RESTART manual (STOP-RUN) Procedimento de RESTART após recuperar energia OB 121 erro de programação: O sistema operacional do CPU chama OB121 sempre que um evento acontece isso é causado por um erro relacionado ao processo do programa. Por exemplo, se seu programa chama um bloco que não esteve carregado no CPU, OB121 é chamado. OB121 Removendo um módulo de sinal durante o modo RUN OB 122 erro de acesso as E/S: O sistema operacional do CPU chama OB122 sempre que um erro acontece enquanto dados esta sendo acessado em um módulo. Por exemplo, se o CPU descobre a leitura de erro quando dados esta sendo acessado em um módulo de E/S, o sistema operacional chama OB122. OB122 Nível de sinal de falha na interface MPI Pagina 39 Programação Estrutura do Programa Pagina 40 Programação Estrutura do Programa Programa Linear: O programa completo se encontra em um bloco contínuo. Este modelo assemelha-se ao de um controle feito com relês, e que foi substituído por um controlador lógico programável. A CPU processa as instruções individuais uma após a outra. Programa Particionado: O programa está dividido em blocos, dentro dos quais cada bloco contém somente um programa destinado a solucionar uma tarefa parcial. Internamente também é possível particionar o bloco através de segmentos (networks). É possível gerar padrões para networks do mesmo tipo. O bloco de organização OB 1 contém instruções para a chamada de outros blocos numa seqüência definida. Programa Estruturado: Um programa estruturado contém blocos com parâmetros, ou parametrizáveis. Estes blocos são criados de forma a serem utilizados universalmente. Ao realizar a chamada de um bloco parametrizável são fornecidos parâmetros (os endereços exatos de entradas e saídas, e assim como de valores de parâmetros). Exemplo: • Um bloco “Bomba” possui instruções para o controle de uma bomba. • Os blocos de programa responsáveis pelo controle de bombas especiais chamam o bloco “Bomba” e transferem informações à respei to de qual bomba será controlada e com quais parâmetros. • Quando o bloco “Bomba” completa a execução de suas instruções o programa retorna para o bloco onde foi feita a chamada (por e x. OB 1), e o processamento das instruções continua. Pagina 41 Programação Inserindo um bloco S7 Inserindo um Bloco: Selecione a seqüência de menus Insert > S7 Block para visualizar uma lista com os diferentes tipos de blocos: • Os blocos de organização (OB) são chamados pelo sistema operacional. Eles compõem a interface entre o sistema operacional e o programa do usuário. • Funções (FC) e blocos de funções (FB) contêm o programa atual do usuário. Eles permitem que um programa complexo seja dividido em unidades pequenas e fáceis de compreender. • Os blocos de dados (DB) contêm os dados do usuário. Após escolhido o tipo de bloco a caixa de diálogo "Properties" se abre para que se possa especificar o número do bloco e a linguagem de programação a ser utilizada (LAD, STL ou FBD). Efetuando as escolhas e confirmando com o botão "OK” o novo bloco é inserido no programa atual. Pagina 42 Programação Iniciando o Editor Inicia-se o Editor LAD/STL/FBD selecionando Start > Simatic > STEP7 > LAD,STL,FBD - Programming S7 Blocks. A forma mais rápida e recomendada para iniciar o Editor é: 1.Selecione o objeto "Blocks" na janela do projeto do SIMATIC Manager. 2.Faça um duplo-clique num bloco qualquer para abrir o Editor. Elementos do Programa: Utilizando as linguagens de programação LAD e FBD pode-se inserir elementos gráficos simples de programação diretamente a partir da barra de ferramentas. Clique no ícone "Program Elements" para abrir a outra janela contendo mais elementos de programa. O conteúdo desta janela depende da linguagem de programação selecionada (LAD/FBD/STL). Pagina 43 Programação Componentes do Editor LAD/STL/FBD Componentes Iniciando o Editor LAD/STL/FBD aparecem automaticamente duas janelas: a tabela de declarações e a seção de programa. O usuário pode abrir também uma terceira janela, designada "Program Elements". Tabela de Declarações: A tabela de declarações pertence ao bloco. É utilizada para declarar variáveis e parâmetros para o bloco. Seção de Programa: A seção de programa contém o próprio programa, dividido em segmentos separados (networks) se necessário. Durante a edição as entradas são analisadas para que a sintaxe fique correta. Elementos de Programa: O conteúdo da janela "Program Elements" depende da linguagem de programação selecionada. Para que os elementos desta lista possam ser inseridos no programa selecione o elemento com o cursor e faça depois um duplo-clique no mesmo. Pode-se também inserir estes mesmos elementos arrastandoos com o mouse. Pagina 44 Programação Componentes do Editor LAD/STL/FBD Introdução: Existem várias linguagens de programação em STEP 7, que podem ser usadas dependendo da preferência e conhecimento. Aderindo a regras específicas, o programa pode ser criado em Lista de Instruções e depois convertido para outras linguagens de programação. LAD: A representação em Diagrama de Contatos é muito similar a um diagrama de circuito elétrico. São utilizados símbolos como contatos e bobinas. Essa linguagem de programação é preferida por aqueles que “cresceram” com os contatores. STL: A Lista de Instruções é composta por instruções STEP 7. Pode-se programar de uma forma praticamente livre em STL (algumas vezes ao ponto de já não conseguir seguir mais o programa). Esta linguagem de programação é preferida pelos programadores que já estão familiarizados com outras linguagens de programação. FBD: O Diagrama de Blocos de Funções utiliza “caixas” para as funções individuais. O caractere na caixa indica a função (por ex. Temporizasores). Essa linguagem de programação tem a vantagem de que até um “não programador” como por exemplo um engenheiro de processo pode trabalhar com ela. O Diagrama de Blocos de Funções está disponível desde a Versão 3.0 do Software STEP7. Pagina 45 Programação Operações Lógicas Básicas Instruções de BIT: 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) Pagina 46 Programação Operações Lógicas Básicas Instruções para Setar, Resetar e Salvar: 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. Pagina 47 Programação Operações Lógicas Básicas Instrução Flanco de Impulso: A avaliação do flanco de impulso é freqüentemente necessária em um programa, na realidade, sempre quando no programa uma entrada muda para ON ou para OFF, ou quando o endereço é setado ou resetado. Flanco de Impulso Positivo: Quando a entrada I1.0 muda seu estado de 0 para 1, como mostrado na figura ao lado, a instrução FP identifica esta mudança de estado, denominada de flanco de impulso positivo, e resulta em um RLO=“1” por somente um ciclo, ocorrendo um pulso de largura de um ciclo na saída Q8.0. Para uma instrução FP, uma memória auxiliar (flag) deve ser especificada (pode também ser bit de dados) no qual o estado do RLO é arquivado. Esta é a maneira pela qual uma mudança de sinal pode ser identificada no próximo ciclo. Flanco de Impulso Negativo: Para um flanco de impulso negativo, o pulso de scan ocorre quando o RLO muda de “1” para “0”. O símbolo para isto em STL é o “FN”, e em LAD, existe a letra “N” no símbolo de saída. Pagina 48 Programação Exercício: Chave selecionadora de bombas Para aprender a programar o CLP S7-300 vamos desenvolver Lógica Ladder para acionar o circuito de força de duas motorbombas conforme figura abaixo e as duas devem ser selecionadas para ligar/desliga por uma chave de duas posições de sinal lógico (0 e 1) Obs Os Reles térmicos 1 e 2 quando acionados deverão desabilitar as instruções de saídas independente da posição da chave seletora. Solução: Passo 1 – Levantamento dos endereços e nível lógico dos dispositivos de entrada e saída conforme a tabela. CPU S7-315 DP Dispositivo de entrada Endereço Botão A NA I0.1 Botão B NA I0.2 Botão C NA I0.3 Botão D NA I0.4 Contato rele térmico1 NA Contato rele térmico2 NA Chave duas posições I0.0 Dispositivo de saída Contatora C1 Q0.5 Contatora C2 Q0.6 C1 C2 R1 R2 nível 0 0 0 1 0 0 0 ou 1 3~ 3~ Figura – Circuito de força de duas motor-bombas tabela – Endereços e nível lógico dos dispositivos de E/S. Pagina 49 Programação Bloco Cíclico Exercício: Chave selecionadora de bombas Solução: Passo 2 Construção do Fluxograma Analítico. não Rele Térmico 1 Normal? SIM Posicionar chave para motorbomba 1 OB1 não Rele Térmico 2 Normal? SIM Posicionar chave para motorbomba 2 STOP Partida ou Parada do motor-bomba 1? START STOP Partida ou Parada do motor-bomba 2? START Aciona Botão B ou Rele Térmico 1 Aciona Botão A Aciona Botão D ou Rele Térmico 2 Aciona Botão C Desaciona Contatora K1 Aciona Contatora K1 Desaciona Contatora K2 Aciona Contatora K2 Pagina 49 Programação Exercício: Chave selecionadora de bombas O Que Fazer 1. Configuração do Hardware 2. File new > chave selecionadora 3. Insert > STATION > 2.simatic 300 station 4.Selecione simatic 300 e com mouse clicar 2X e 2X sobre Hardware 5. Clicar sobre CPU-300 > CPU-313 > 6ES7 313-1AD03-0AB0 > V1.2 e arrastar com o mouse para slot 2 do rack na area de trabalho 6. Clicar sobre SM-300 > DI/DO-300 > SM323 DI16/DO16 x 24V/ 0,5ª e arrastar com o mouse para slot 4 do rack 7. Clicar sobre AI/A0-300 > SM334-AI4/A02 e arrastar para slot 5 do rack 8. Salve e feche HW config Pagina 49 Programação Exercício: Chave selecionadora de bombas . Configuração do Hardware: Pagina 50 Programação Exercício: Chave selecionadora de bombas O Que Fazer 1. No SIMATIC Manager, insira um bloco novo OB1 Clicar sobre Block com mouse direito > inset new object > organization block 2. Clicar 2 X sobre o bloco OB1 e mudar para linguagem Ladder (LAD) 3. Edite o Network 1 do OB1 ( conforme a figura) 4. Adicione um novo Network usando e programe o Network2 (conforme a figura). 5. Salve o bloco offline usando 6. Configure a interface de comunicação conforme a figura. Pagina 51 Programação Exercício: Chave selecionadora de bombas O Que Fazer 7. Transfira o bloco para a CPU usando Pagina 52 Programação Exercício: Chave selecionadora de bombas Programa OB1: Pagina 53 Programação Efetuando Download Transferindo Pode-se transferir blocos para o CPU com o SIMATIC Manager: •clicando no ícone ou •selecionando a opção de menu PLC > Download. Antes de fazer isto deve-se 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. Pagina 54 Programação Teste simples de Programa Ativação / Desativação: Existem duas maneiras de ativar / desativar a função de teste “Monitor": • clique no ícone • selecione a opção de menu Debug > Monitor. Visualização: O status do programa é mostrado de maneira diferente dependendo da linguagem de programação selecionada (LAD/STL/FBD). Quando a função de teste é ativada não é possível mudar a linguagem de programação do bloco que está sendo analisado (LAD/FBD/STL). Pagina 55 Programação Temporizadores Temporizadores: O S7 oferece três opções de temporizadores com atraso (delay timer): . On-Delay Timer S_ODT: Retardo na Energização Off-Delay Timer S_OFFDT: Retardo na Desenergização Retentive On-Delay S_ODTS: Retardo na Energização com Retenção Pagina 56 Programação Temporizadores Temporizadores: O S7 oferece duas opções de temporizadores de pulso: . Pulse S_PULSE: Pulso Extended Pulse S_PEXT: Pulso Extendido Pagina 57 Programação Exercício: Sinalizador oscilante para falta de bateria CPU Objetivo: O objetivo desse exercício é o desenvolvimento com 2 temporizadores no bloco OB1 um oscilador para sinalizar a falta de bateria (OB81) na CPU. Ver o bit de saida M81.0 do bloco OB81 pagina 38. Pagina 58 Programação Contadores Contadores: 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). . Contador Crescente S_CU: Com um “flanco de impulso” positivo na entrada S, o contador é setado com o valor da entrada SC. Iniciando com 0 ou SC, o contador conta crescentemente a cada vez que existe um flanco de impulso positivo na entrada CU. A saída Q é sempre 1, enquanto o valor de CV não for igual a 0. Se houver um flanco de impulso positivo na entrada R o contador é resetado, isto é, o contador é setado com o valor 0. Contador Decrescente S_CD: Com um “flanco de impulso” positivo na entrada S, o contador é setado com o valor da entrada SC. Iniciando com 0 ou SC, o contador conta decrescentemente a cada vez que existir um flanco de impulso positivo na entrada CD. A saída Q é sempre 1, enquanto o valor CV não for igual a 0. Se houver um flanco de impulso positivo na entrada R o contador é resetado, isto é, o contador é setado com o valor 0. Up / Down Counter S_CUD: Combinação de contadores crescente e decrescente. Pagina 59 Programação Comparadores 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. Pagina 60 Programação Instruções para Bits 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. Temp. Pulso Extendido SE: Se o RLO muda de 0 para 1, o temporizador SE recebe o valor do tempo. O temporizador funciona por um período específico, até mesmo se o RLO mudar para 0 antes que o temporizador pare. Se o RLO muda de 0 para 1, o temporizador é setado novamente. O estado do sinal do tempo de scan resulta em RLO = 1, contanto que o temporizador esteja funcionando. Pagina 61 Programação Instruções para Bits Temp. On-Delay Retentivo SS: Se o RLO muda de 0 para 1, o temporizador SS recebe o valor de tempo. O temporizador funciona com o tempo especificado, até mesmo se o RLO mudar novamente para 0 antes que o temporizador pare de funcionar. Se o RLO mudar de 0 para 1, o temporizador é setado novamente. O estado do sinal do tempo de scan resulta em RLO = 1, contanto que o temporizador esteja funcionando. 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. Pagina 62 Programação Exercício: Esteira Transportadora Desejamos construir a Lógica LADDER para o acionamento; através do botão (I0.1); de uma esteira transportadora de peças conforme figura;e a mesma deverá contar 10 peças através do sensor S1 (I0.0) e após a contagem deverá desligar o motor da esteira (Q0.5) e resetar o contador. Obs independente do sensor contar 10 peças o motor deverá ser desligado caso seja acionado o rele térmico R1 (I0.3) ou parada de emergência (I0.2) Solução: Passo 1 – Levantamento dos endereços e nível lógico dos dispositivos de entrada e saída conforme a tabela. C1 contatora S1 Sensor R1 Rele termico 3~ CPU S7-315 DP Dispositivo de entrada Endereço Botão A NA I0.1 Emergência NF I0.2 Contato rele térmico1 NA I0.3 Sensor S1 NA I0.0 Dispositivo de saída Contatora C1 Q0.5 nível 0 1 0 0 Figura – Circuito de força de um motor da esteira tabela – Endereços e nível lógico dos dispositivos de E/S. Pagina 63 Programação Exercício: Esteira Transportadora Solução: Passo 2 Construção do Fluxograma Analítico. Rele térmico 1 ou botão de emergência normal ? SIM Aciona Botão A Bloco Cíclico OB1 não Aciona motor não Contador = 10 peças ? SIM Habilita Sensor Desabilita motor e RESET contador Pagina 64 Programação Exercício: Esteira Transportadora Programa OB1: Pagina 65 Programação Instrução CALL A instrução “Call” é utilizada para disparar a execução de um outro bloco lógico. Na figura abaixo 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. Chamada em LAD sem parâmetros Chamada em LAD com parâmetros Pagina 66 Programação Instrução CALL 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). Pagina 67 Programação FC – Função Vista Geral: Funções (FC) representam parâmetros atribuíveis de blocos sem memória. No STEP 7 eles podem ter muitos parâmetros de entrada (input), parâmetros de saída (saída) e parâmetros de entrada/saída (in/out) conforme necessidade. Funções são primariamente usadas quando valores de funções são retornadas da chamada dos blocos (p.ex.: funções matemáticas, controle simples com operações lógicas binárias). Instrução Chamada: Em uma chamada de FC, uma informação direta de troca entre o bloco chamado e a função chamada somente é possível via chamada EN/ENO ou CALL (sem parâmetros) ou com parâmetros. Pagina 68 Programação FC – Função – Variáveis Temporárias Variáveis temporárias podem ser utilizadas em todos os blocos (OB, FC, FB). Elas são utilizadas para armazenar informações temporariamente enquanto o bloco está sendo executado. Os dados são perdidos quando é finalizada a execução do bloco. Pagina 68 Programação Chamando um FC no OB1 Execução Cíclica: Para que um novo bloco criado seja parte integrante da execução cíclica do programa da CPU ele deve ser chamado no OB1. A forma mais fácil de inserir a chamada de um bloco graficamente em LAD e FBD é através da lista de instruções já conhecida (ver figura abaixo). Na linguagem de programação STL a instrução para a chamada de um bloco é a instrução CALL. Pagina 69 Programação Exercício: Partida Direta com Reversão Desejamos construir a Lógica LADDER para o acionamento do motor M1; através do botão (I0.0) Partida direta e botão (I0.1) Reversão. Passo 1 – Levantamento dos endereços e nível lógico dos dispositivos de entrada e saída conforme a tabela. CPU S7-315 DP Dispositivo de entrada Endereço Botão A NF Direto I0.0 Botão B NF Reversão I0.1 Auxiliar K1 NF I0.3 Auxiliar K2 NF I0.4 I0.5 Contato rele térmico1 NA Dispositivo de saída Contatora K1 Q0.5 Contatora K2 Q0.6 nível 1 1 1 1 0 tabela – Endereços e nível lógico dos dispositivos de E/S. Pagina 70 Programação Exercício: Partida Direta com Reversão Solução: Passo 2 Construção do Fluxograma Analítico. FC1 Bloco Cíclico OB1 Rele térmico 1 normal ? SIM não CALL FC1 Direto Direto ou Reverso ? Reverso Habilita K1 Habilita K2 Desabilita K1 ou K2 Pagina 71 Programação Exercício: Partida Direta com Reversão 1º Passo – Criar a função exemplo FC1 – Insert New Objeto  Function  FC1 LAD 2º Passo – Clicar sobre FC1 e criar a logica Ladder como na figura abaixo. Pagina 72 Programação Exercício: Partida Direta com Reversão 3º Passo – Clicar sobre OB1 e arrastar FC1 para Network1 conforme a figura. Pagina 73 Programação Exercício: Partida Seqüencial de 3 motores c/ Direta com Reversão Desejamos construir a Lógica LADDER para o acionamento de 3 motores (M1,M2,M3) em sequência após Partida do botão (I0.0). Usar Função Parametrizada para a logica de Partida Direta com Reversão. Após 2s libera motor 1 Após 2s libera motor 2 Após 2s libera motor 3 Pagina 74 Programação Exercício: Partida Seqüencial de 3 motores c/ Direta com Reversão 1º Passo – Criar a função exemplo FC1 – Insert New Objeto  Function  FC1 LAD 2º Passo – Clicar sobre FC1 e declarar as variaveis. Pagina 75 Programação Exercício: Partida Seqüencial de 3 motores c/ Direta com Reversão 3º Passo – Após declarar as variavéis criar a logica LAD Partida Direta com Reversão e Inserir Symbol (variaveis declaradas) sobre os endereços das Instruções conforme a figura. Pagina 76 Programação Exercício: Partida Seqüencial de 3 motores c/ Direta com Reversão 4º Passo – Clicar sobre OB1 inserir BIT i0.0, temporizador S_ODT ,arrastar FC1 parametrizado para Network1 e inserir saída m0.0 conforme a figura. Motor 1 Pagina 77 Programação Exercício: Partida Seqüencial de 3 motores c/ Direta com Reversão 5º Passo – Inserir BIT m0.0, temporizador S_ODT ,arrastar FC1 parametrizado para Network2 e inserir saída m0.1 conforme a figura. Motor 2 Parâmetros iguais, endereços diferentes. Pagina 78 Programação Exercício: Partida Seqüencial de 3 motores c/ Direta com Reversão 6º Passo – Inserir BIT m0.1, temporizador S_ODT e arrastar FC1 parametrizado para Network3 conforme a figura. Motor 3 Parâmetros iguais, endereços diferentes. Pagina 79 Programação Exercício: Partida Seqüencial de 3 motores c/ Direta com Reversão 4º Passo – Clicar sobre OB1 inserir BIT i0.0, temporizador S_ODT e arrastar FC1 parametrizado para Network1 conforme a figura. Motor 1 Pagina 80 Programação FB – Bloco de Função Vista Geral: Blocos de Funções (FB) são blocos do programa do usuário e representam, de acordo com a IEC Standard 1131-3, blocos lógicos com memória. Eles podem ser chamados por OBs, FBs e FCs. Diferentemente dos FCs, os FBs são inicializados, isto é, um FB é determinado por sua própria área de dados privada, por exemplo, pode “lembrar“ estados do processo de chamada para chamada. De forma simple, esta área de dados privados é seu próprio DB, o chamado DB instance. Memória: O programador tem a oportunidade para declarar variáveis estáticas na seção de declaração do FB. O FB pode „lembrar" informações de chamada para chamada nestas variáveis. A possibilidade para um FB "lembrar" informações sobre diversas chamadas é a diferença essencial dos FCs. Aplicações: Com a ajuda desta “memória“, um FB pode, por exemplo, implementar funções de contagem e temporização ou unidades de controle de processos, tal como estações de processamento, acionamentos, aquecedores, etc. Em particular, FBs são adequados para controle de todas unidades de processo cuja performance depende não somente de influências externas mas também em estados internos, tal como processamento passo-a-passo, velocidade, temperatura, etc. Quando controles como unidades, os dados de estado interno das unidades de processo são então copiadas para variáveis estáticas dos FBs. Pagina 39 Programação FB – Bloco de Função O conceito de FB com instance tem grande importância e estabelece o critério essencial de distinção com os FCs. A definição das variáveis dentro de linguagens de alto nível como “C” sob declaração de nomes de variáveis e tipos de dados na declaração é chamado de “instance”. A mesma forma de variáveis são também criadas nos FBs. Somente através desta „própria‟ área de dados, na qual os valores dos parâmetros do bloco bem como variáveis estáticas são armazenadas, isto torna um FB a ser uma unidade executável (FB instance). Formação Instance dos Blocos de Funções OB, FB or FC  Chamada de FB com DB Instance chamada FBx, DBy ... ... FBx Algorítmos p/ controle DBy DBx Dados de estados p/ Drive_1 + Drive_1 FB Instance FB  Declarações dentro de FBs (Multi-instances) ... stat Motor_1 FBx stat Motor_2 FBx chamada #Motor_1 . chamada #Motor_2 Dados de estados p/ Drive_2 FBx Algorítmos p/ controle Drive_2 Dados de estados p/ Drive_3 Drive_3 Pagina 39 Programação Chamando um bloco no OB1 Execução Cíclica: Para que um novo bloco criado seja parte integrante da execução cíclica do programa da CPU ele deve ser chamado no OB1. A forma mais fácil de inserir a chamada de um bloco graficamente em LAD e FBD é através da lista de instruções já conhecida (ver figura acima). Na linguagem de programação STL a instrução para a chamada de um bloco é a instrução CALL. Pagina 46 Programação STEP 7 – Pagina 22 Programação Estrutura de Programação Para solucionar tarefas complexas se faz necessário dividi-las em pequenas partes. Estas partes serão chamadas de blocos de programa. Cada bloco de programa irá executar uma parte da tarefa e estas partes serão gerenciadas por um único bloco de organização. FB´s PB´s Pagina 14 Programação Estrutura de Programação A linguagem STEP-5 apresenta os seguintes tipos de blocos, para a formação de um programa estruturado: OB (Bloco de Organização): organiza os blocos de controle, pode ser considerado o Programa Principal (OB1). Podem ser numerados de 0 a 255 - OB0 a OB255. PB (Bloco de Programa): são blocos utilizados para a programação das partes da tarefa a ser executada. Podem ser numerados de 0 a 255 - PB0 a PB255. FB (Bloco de Função): são utilizados quando uma parte da tarefa exige operações avançadas ou suplementares. Também utilizado onde uma determinada tarefa se torne repetitiva no programa. Podem ser numerados de 0 a 255 - FB0 a FB255. Existem FB's que são padronizados para determinadas tarefas. (PID, posicionamento, conversão numérica, etc..) DB (Bloco de Dados): são áreas de memória, onde podem ser armazenados dados. Dados estes que poderão ser utilizados pelos FB's, temporizadores, contadores, comparadores, etc. Pagina 15 Programação Blocos integrados e as suas funções OB (Bloco de Organização): Os blocos tipo OB são em geral os responsáveis pela organização do programa do usuário. Tem-se blocos de organização para o processamento cíclico do programa, para o processamento comandado por tempo e por interrupções. Os procedimentos de partida da CPU e sua reação em caso de falhas podem ser também influenciados pela programação de OB´s especiais. Podemos dizer porém que o bloco de organização mais importante é o OB1. Este bloco é o responsável pelo processamento cíclico do programa. O bloco de organização OB1 é chamado pelo sistema operacional da CPU. Assim que a instrução JU (salto incondicional) ou JC (salto condicional) é encontrada, o programa linear é deixado e passa a ser executado o bloco chamado pelas instruções de salto. No término da execução deste bloco temos o retorno á instrução seguinte no OB1 que originou o salto. A Tabela 03 seguinte lista os blocos de organização integrados no CLP SIMATIC S5-95U. Pagina 16 Programação OB – Bloco de Organização OB (Bloco de Organização) OB Função OB deve ser programado pelo usuário; chamado por sistema operacional OB1 OB3 Programa de execução cíclico Execução de programa driver-interrupção OB13 OB21 OB22 Execução de programa controlada-tempo Procedimento de RESTART manual (STOP-RUN) Procedimento de RESTART após recuperar energia Procedimento depois de falha de bateria Disparo por tempo de scanneamento Algoritmo PID OB34 OB31 OB251 OB já é programado; OB deve ser chamado através de programa de usuário Tabela 03 – Avaliação de Blocos de Organização Integrados Pagina 17 Endereçamento Definição de endereço CPU S5 95U Numeração dos SLOT´s O CLP poderá ter no máximo quatro trilhos. Poderão ser utilizados 16 unidades de bus (32 slots). Os slots são numerados em sequência. A numeração começa no "0", sendo este o slot ao lado da CPU. Se existe ou não um módulo conectado a unidade de bus, não faz diferença, a numeração dos slot´s será a mesma. Módulos Digitais Os módulos digitais podem ser plugados em todos os slot´s (de 0 a 31). Somente dois estados de sinais (0 ou 1, ON ou OFF) podem ser transferidos por canal do módulo à CPU ou da CPU ao módulo. Cada canal do módulo digital mostra apenas um bit. Por esta razão que devem ser numerados. Módulos Analógicos Os módulos analógicos deverão ser montados entre os slot´s de 0 a 7. A memória requerida será de 16 bits = 2 bytes = 1 WORD ou palavra. Os módulos são endereçados byte a byte ou WORD a WORD através das operações de carga (L) ou transferência (T). Pagina 18 Endereçamento Endereçamento e acesso aos Periféricos E/S Os elementos que constituem E/S diferem por meio de um endereço sem igual associado a cada um deles Endereçamento dos Periféricos E/S Integrados Função Periféricos Digital Integrados Entradas I 32.0 – I 32.7 I 33.0 – I 33.7 IW 40,IW 42, IW 44, IW46, IW48, IW 50, IW54 I 34.0 – I 34.3 Contador A IW 36 Contador B IW 38 Saídas Q 32.0 – Q 32.7 Q 33.0 – Q 33.7 QW 40 Periféricos Analógicos Integrados Interrupçôes (alarmes) -------------------- Contadores -------------------- Pagina 19 Endereçamento Numerando SLOT´s O controlador programável pode ter um máximo de quatro trilhos.O S5-95U tem um máximo de 16 unidades de BUS (32SLOT´s). Os SLOT´s são numerados consecutivamente. A numeração começa com " 0 " e é o slot ao lado do controlador programável (CPU). Se um módulo é plugado ou não isso não tem nenhum efeito na numeração. Há dois tipos de módulos digitais com ranges de endereços diferentes: • módulos Digitais com quatro ou oito canais podem ser plugados em SLOT´s 0 a 31 • módulos Digitais com mais de oito canais podem ser plugados em SLOT´s 0 a 7 Figura 13 – Endereçando Módulos Digitais com Quatro ou Oito Canais Pagina 20 Endereçamento Numerando SLOT´s Cada canal de um módulo digital é representado por um BIT. Esta é a razão que todos BIT´s deve ser nomeado seu próprio número. Use a forma seguinte para um endereço digital: BIT endereço (número de canal) Byte endereço (número do SLOT) Exemplo: Um modulo de saída de 8 bit´s é plugado no slot 3 é utiliza se o bits 1 para lâmpada, então o endereço será Q 3.1. Pagina 21 Endereçamento Numerando SLOT´s Módulos digitais com mais de Oito Canais Figura 15 – Endereçando Módulos Digitais com mais de 8 Canais Cada canal de um módulo digital é representado através um BIT. Cada BIT deve ser nomeado então um número separado. Um canal é enviado assim da maneira seguinte: BIT endereço (número de canal) Byte endereço (número do SLOT) Pagina 22 Endereçamento Numerando SLOT´s Módulos analógicos 65536 diferentes tipos de informação ou seja (16 BITS) pode ser trocado em cada canal entre dois módulos analógicos. Devem ser enviados os canais de um módulo analógico conforme um certo formato de dados Os módulos analógicos são endereçados canal por canal que usa operações WORD. • Quatro WORD são reservados por SLOT. • O espaço de endereço analógicos permissível se estende byte 64 (slot 0, canal 0) para byte 127 (slot 7, canal 3). Figura 17 – Endereçando Módulos E/S Analógicos Pagina 23 Programação Sintaxe Representação LAD: associação AND em Diagrama de contatos conforme figura 18 Representação CSF: associação AND em Diagrama de blocos conforme figura 19 Representação STL: associação AND em lista de instruções conforme figura 20 Figura 19 Figura 18 Pagina 24 Figura 20 Programação Sintaxe Representação LAD: Associação OR em Diagrama de contatos conforme figura 21 Representação CSF: Associação OR em Diagrama de blocos conforme figura 22 Representação STL: Associação OR em Lista de instruções conforme figura 23 Figura 22 Figura 21 Pagina 25 Figura 23 Programação Sintaxe Representação LAD: Associação AND + OR em Diagrama de contatos conforme figura 24 Representação CSF: Associação AND + OR em Diagrama de blocos conforme figura 25 Representação STL: Associação AND + OR em Lista de instruções conforme figura 26 Figura 25 Figura 24 Pagina 26 Figura 26 Programação Sintaxe Representação LAD: conector ( # ) em Diagrama de contatos conforme figura 27 Representação CSF: conector ( # ) em Diagrama de blocos conforme figura 28 Representação STL: conector ( # ) em Lista de instruções conforme figura 29 Figura 28 Figura 27 Pagina 27 Figura 29 Programação Sintaxe Representação LAD: Associação OR (complexo) contida em associação AND acionando diversas saídas simultaneamente em Diagrama de contatos conforme figura 30 Representação CSF: Associação OR (complexo) contida em associação AND acionando diversas saídas simultaneamente em Diagrama de Blocos conforme figura 31 Representação STL: Associação OR (complexo) contida em associação AND acionando diversas saídas simultaneamente em Lista de instruções conforme figura 32 Figura 31 Figura 30 Pagina 28 Figura 32 Programação Acumuladores Os controladores programáveis da linha “ SIMATIC “ possuem duas áreas de memória chamada de acumuladores, e que por diante chamaremos acumuladores 1 (ACCU1) e acumuladores 2 ( ACCU2 ). No texto nosso objetivo é demonstrar de que maneira podemos “ escrever “ e “ler” dados desta s área de memória. 1 - escrevendo dados na memória 1 Utilizando a instrução “LOAD” podemos escrever um determinado dado no acumulador 1 ( ACCU1 ). ACCU1 L IW 0 125 ACCU2 - Pagina 29 Programação Acumuladores 2 - Escrevendo um dado no acumulador 2 Como foi explicado no parágrafo acima, toda vez que utilizamos a instrução “LOAD”, um novo dado será escrito no acumulador 1 ( ACCU1 ), mas para que os dados que exista no acumulador 1 não seja perdido, este dado será transferido para o acumulador 2 antes do novo dado ser escrito no acumulador 1. ACCU1 L IW 0 L IW 2 125 147 ACCU2 125 A primeira instrução ( L IW 0 ) faz com que o conteúdo da palavra de entrada “0” (IW0 = 125) seja carregado no acumulador 1. Quando a Segunda instrução do tipo “LOAD” é processada ( LIW 2 ), o conteúdo da palavra de entrada “2” ( 147) será carregado no acumulador 1 ( 125 ) Ter sido copiado no acumulador 2. OBS : sempre serão utilizados dois acumuladores quando a “CPU” do controlador tiver que processar a instruções onde dois elementos sejam necessário para a sua realização (soma, subtração, comparação, etc. ). Além das funções acima citadas o acumulador 1 tem a função de ser o elemento do qual a CPU consegue efetuar a transferência de dados. Pagina 30 Programação Acumuladores No exemplo abaixo o dado contido na palavra de entrada 4 ( “IW 4 “ ) é carregado no acumulador através da instrução “ L IW 4 “, este é o mesmo dado transferido para a palavra de saída 8 ( “QW 8” ) através da instrução “T QW 8”. Pagina 31 Programação FLAGS ( Área de memória) Nem sempre a utilização dos sinais provenientes dos módulos de entradas e saídas (digitais ou analógicas), são suficiente para a elaboração de programas. Para estes casos, os controladores programáveis da linha “SIMATIC” possuem áreas de memória que podem ser utilizadas como elementos auxiliares. Estes elementos auxiliares foram denominados de “FLAGS”. Os flags podem ser utilizado na forma de bit, byte ou WORD ( em algumas CPU‟s podem ser utilizados na forma de dupla palavra (32 bits). OBS: nos programas elaborados na linguagem “STEP-5” serão utilizados a seguinte denominação de flag‟s Flag =F Flag-byte = FY Flag-word = FW Podemos dividir os “FLAG‟s” em duas categorias:  Flag’s remanentes  Flag’s não remanente Pagina 32 Programação FLAGS ( Área de memória) 1-Flag’s remanentes Flag‟s remanentes são assim denominados pois o circuito de memória onde os mesmos se encontram, são alimentados por uma bateria. Esta ligação ( circuito – bateria ) faz com que um flag que se encontre em nível lógico “1” permaneça neste estado, mesmo no caso de falta de energia elétrica. EX: Os flags remanente são utilizados em programas de máquinas que armazenem informações do seu estado de funcionamento, e no caso de uma parada por falta de energia elétrica, mantenha estas informações, para que após o restabelecimento da energia, a mesma possa continuar processando um determinado produto, exatamente no mesmo ponto que se encontrava no momento da deserginação . ( máquinas de empacotamento, paletizadores, etc.). 2-Flag’s não remanente Os flags são chamados de não remanente quando os circuitos de memória onde o mesmo se encontram não são alimentados por baterias de back-up. Isto faz com que um flag que se encontre em nível lógico “1” vá para o nível lógico “0” no caso de falta de energia elétrica. Pagina 33 Programação FLAGS ( Área de memória) EX: Ao contrario do exemplo anterior estes flags serão utilizados em programa de equipamento onde após falha de energia elétrica o equipamento começará a funcionar sempre pelo passo inicial, e não no passo em que o programa no momento da queda de energia. OBS: o usuário deverá consultar a documentação da CPU que tiver sendo utilizada pois, a qualidade de flag’s varia de um modelo de CPU para outra. A quantidade de flag’s remanentes bem como a maneira de sua habilitação também deverá ser verificada. EX: Existem CPU’s que possuem 2048 bits de flag’s ( 256 bytes – byte 0 até o byte 255) Destes 2048 bits a primeira metade ( 128 bytes – byte 0 até byte 127 ) é constituída por flag’s do tipo remanente e Segunda metade constituída por flag’s do tipo não remanente ( 128 bytes – bytes 128 até o byte 255 ), e esta configuração não pode ser alterada, já em outro tipo de CPU a quantidade de flag’s remanente e não remanente é exatamente igual aqui exposto com a diferença de que os flags da faixa remanente podem ser utilizados como não remanentes pela através da mudança de posição de uma chave que encontrada no painel frontal da CPU. Pagina 34 Programação FLAGS ( Área de memória) Na tabela a seguir temos os endereço dos Flags ( F 0.0 a F 63.7 remanecentes ) e os Flags ( F 63.7 a F 255.7 ñ remanecentes ) para a CPU 095U. CPU 095 Numero de Flags 2048 Remanecentes 0.0 a 63.7 Ñ Remanecentes 64.0 a 255.7 Pagina 35 Software STEP5 STEP5 Neste capitulo vamos estudar o STEP5 que operam no sistema MS-DOS . Este software deve ser instalado em um microcomputador. Após a instalação, quando você rodar este software, o seu microcomputador poderá ser usado como um terminal de programação e/ou manutenção do CLP. A versão Step-5 utilizada neste curso é a 6.64 . Sendo assim temos que saber a linha de comando a ser digitada para acessar o programa conforme segue abaixo: No win98 reiniciar em MS-DOS C:\WIN\ cd c:\ enter C:\cd step5 enter C:\step5\cd s5_st enter C:\step5\s5_st\s5 enter Pagina 36 Construção de Lógica para Aplicativo Exemplo de Aplicativo 01 Para aprender a programar o CLP Simatic 95U vamos utilizar o exemplo aplicativo 01 criando Lógica Ladder para acionar o circuito de força liga/desliga de uma motor bomba conforme figura 34. O Rele térmico 1 quando acionado devera desabilitar a motor bomba e acionar uma lâmpada de sinalização. Solução: Passo 1 – Levantamento dos endereços e nível lógico dos dispositivos de entrada e saída conforme a tabela 6. C1 R1 3~ CPU 095U Dispositivo de entrada Endereço Botão A NA I32.6 Botão B NF I32.5 Contato rele térmico1 NA I1.0 Dispositivo de saída Contatora C1 Q33.1 Lâmpada amarela Q32.2 Lâmpada liga Q32.1 nível 0 1 0 Figura 34 – Circuito de força de 1motor-bomba tabela 6 – Endereços e nível lógico dos dispositivos de E/S. Pagina 37 Construção de Lógica para Aplicativo Exemplo de Aplicativo 01 Inicio Solução: Passo 2 – Construção do Fluxograma Analítico. Aciona botão A C1 não Botão B e rele térmico normal ? sim Aciona contator C1 Desaciona contator C1 3~ Figura 34 – Circuito de força de 1motor-bomba Pagina 38 Fim Software STEP5 STEP5 Etapas para a Programação de um CLP Criando um arquivo de programa novo Quando vamos iniciar um novo programa, devemos criar um arquivo e nomeá-lo conforme nossa necessidade. Devemos seguir o seguinte caminho para a criação de um novo arquivo: object  project  settings  page 1 Na opção Program File selecione a tecla F3, no campo que se abre digite o nome desejado para o seu arquivo, obedecendo o número máximo de caracteres permitido e ENTER conforme figura 35. Pagina 39 Figura 35 Software STEP5 STEP5 Criando um Bloco de Programa Conforme o grau de complexidade do nosso programa devemos saber onde escrever as instruções. No caso de operações básicas utilizamos os Blocos de Programa ( OB ou PB ). Devemos seguir a seguinte sequência para criarmos um OB ou PB: editor  step5 block  in the program file conforme figura 36 Em block nomear o bloco de programa Exemplo: (OB, PB, FB) em seguida ENTER conforme figura 37. Figura 36 Pagina 40 Figura 37 Software STEP5 STEP5 Escolhendo o tipo de representação Podemos escrever as instruções nos modos LAD, STL ou CSF conforme nossa necessidade ou conhecimentos. Para fazermos esta opção devemos seguir os seguintes passos: A tela irá se abrir no modo Edit. Este modo não permite a troca do tipo de representação, por isso devemos passar para o modo Output.( descrito no canto superior direito da tela). Ao visualizar a tela no modo Edit, clicar Uma Vez a tecla Enter e depois a tecla Esc. Já no modo Output pressionamos simultaneamente as teclas Shift e F5, assim escolhendo tipo de representação. Para voltarmos para o modo Edit pressionamos a tecla F6. Pagina 41 Software STEP5 STEP5 Criando um Bloco de Programa Estando no modo de edição utilize as teclas “F1 a F8” e “SHIFT+F1 a SHIFT+F8” para edição do programa e substitua as “?????” acima de cada instrução com suas respectivas entradas, saídas ou flags. As linhas de programação RUNG são separadas por segmentos conforme a figura 38. Após terminar de digitar o segmento 1 acionar F6 “compl seg” para ter acesso ao próximo segmento. Figura 38 Pagina 42 Software STEP5 STEP5 Após o termino do programa “segmento 2 figura 39 digitar F7 (Enter) e depois SHIFT+F7 para salvar. Para verificar todos os segmentos do projeto acionar F5 “seg fct” e acionar “-1” para voltar ao segmento anterior e “+1” para o próximo seguimento. Dicas: Quando desejamos inserir uma nova linha de comando entre duas linhas de comando já editadas colocamos o cursor em cima do sinal : e pressionamos a tecla End. Se desejamos apagar uma única linha de comando, colocamos o cursor em cima do sinal : e pressionamos a tecla Delete. Figura 39 Pagina 43 Software STEP5 STEP5 Transferindo o programa editado no PC para o CLP Para fazer a transferência do programa editado no PC para o CLP devemos primeiramente verificar se ambos estão conectados com o cabo de comunicação apropriado. O 1º passo é comunicar o PC com o CLP da seguinte maneira: object  project  settings  page 2 Selecione a opção Mode e pressione a tecla F3, concretizando a comunicação a janela passará de off line para on line conforme figura 40. Retorne para a tela anterior pressionando a tecla F8. Figura 40 Pagina 44 Software STEP5 STEP5 Para fazer a transferência siga a seguinte ordem: object  blocks  transfer  file/PLC. Observe na janela que se abre se o arquivo é o que você deseja transferir. Digite o block ou selecione All block e Enter. Caso afirmativo pressione a tecla YES. Após a transferência, se o Led vermelho do CLP ascender “ CLP em stop “ acione a chave Run/Stop para que o Led verde ascenda “ CLP em ciclo ” ou siga a seguinte ordem: Test  PLC Control  Start PLC Enter conforme figura 41. Figura 41 Pagina 45 Software STEP5 STEP5 Analisando os Status dos Blocks Para analisar o comportamento das instruções on line do block agir da seguinte maneira: Test  block status  selecione o block  enter. Somente é possível visualizar um bloco em Status por vez. Obs. O CLP deve esta on line e RUN conforme os procedimentos das paginas 43 e 44. Status na tela O programa aparecerá na tela da seguinte forma: +==========+ Indicam status ativado +.....................+ Indicam status desativado. Diretamente da tela de status é possível realizar alterações no bloco. As alterações feitas neste modo serão gravadas somente no CLP. Pagina 46 Instruções Operação de SET / RESET Representado pelas letras S (SET) , onde indica a memorização do estado "1" para flags e saídas; R (RESET), indica que o estado memorizado pela função set esta desativado, ou seja coloca em zero o estado de sinal das saídas e ou flags, utilizado também para zerar temporizadores e contadores. Representação em diagrama de contato (LAD) Representação em lista de instruções (STL) Representação em diagrama de blocos (CSF) Pagina 47 Instruções Temporizadores O programa poderá utilizar as funções de temporização para implementar e monitorar sequências cronológicas. Os CLP‟s da família SIMATIC S5 apresentam 5 tipos de temporizadores. SP(pulse time): temporizador para pulso. SE(extended pulse time): temporizador para prolongamento do sinal. SD(on delay): temporizador para retardo na energização. SS(stored on delay and reset): temporizador para retardo na ligação com retenção. SF(off delay): temporizador para retardo no desligamento. Base de tempo: 0 = 0,01s 1 = 0,1s 2 = 1s 3 = 10s Exemplo: L KT 5.2 L Instrução “LOAD” carregar KT Constante de tempo 5 Valor do tempo: de 0 a 999 2 Base de tempo = 1 s Pagina 48 Instruções Temporizadores “SP” Representação em diagrama de contato (LAD) Representação em lista de instruções (STL) Representação em diagrama de blocos (CSF) Pagina 49 Instruções Temporizadores “SE” Representação em diagrama de contato (LAD) Representação em lista de instruções (STL) Representação em diagrama de blocos (CSF) Pagina 50 Instruções Temporizadores “SD” Representação em diagrama de contato (LAD) Representação em lista de instruções (STL) Representação em diagrama de blocos (CSF) Pagina 51 Instruções Temporizadores “SS” Representação em diagrama de contato (LAD) Representação em lista de instruções (STL) Representação em diagrama de blocos (CSF) Pagina 52 Instruções Temporizadores “SF” Representação em diagrama de contato (LAD) Representação em lista de instruções (STL) Representação em diagrama de blocos (CSF) Pagina 53 Instruções Chamada de blocos Os blocos são chamados a partir do OB1 com a instrução JU (jump = salto) Quando o processador encontra, durante o programa, uma instrução de chamada (JUMP) desse tipo, é interrompido o bloco que está sendo processado e se inicia o processamento do bloco que foi chamado. Uma vez atingida a última instrução desse bloco (BE), o processamento do programa retorna ao bloco que fez a chamada e prossegue na instrução seguinte. JU é um salto incondicional (não depende de RLO=1) JC é um salto condicional (depende de RLO=1) Figura 65 – Chamada de bloco a partir do OB1 obs.: Quando uma ação é condicional significa que a instrução anterior deve terminar em 1 para que a mesma seja executada. Ou seja, se uma soma de duas entradas resultou em 1, e se a próxima ação depender de RLO=1 para ser executada, então a mesma será. Quando a ação é incondicional, o resultado anterior não interessa. Pagina 54 Construção de Lógica para aplicativo Exemplo de Aplicativo 02 Projetar uma Lógica LADDER para que motor-bomba1 sejá acionado por botão A e desacionado botão B e rele térmico 1 e motor-bomba 2 deverá ser acionado por um temporizador “SS” (on deley) após 10 segundo do acionamento da motor-bomba 1 e o mesmo deverá permanecer acionado mesmo que motor-bomba 1 desacione, também deverá ser desacionado por botão D e rele térmico 2. Solução: Passo 1 – Levantamento dos endereços e nível lógico dos dispositivos de entrada e saída conforme a tabela 7. CPU 095U Dispositivo de entrada Endereço Botão verde NA I32.6 Botão vermelho NF I32.5 Botão vermelho NF I32.4 Contato rele térmico1 NA I1.0 Contato rele térmico2 NA I1.1 Dispositivo de saída Contatora C1 Q33.1 Contatora C2 Q33.2 Lâmpada Bomba 1 Q32.1 Lâmpada Bomba 2 Q32.7 Lâmpada amarela Q32.2 nível 0 1 1 0 0 C1 C2 R1 R2 3~ 3~ Figura 66 – Circuito de força de duas motor-bombas tabela 7 – Endereços e nível lógico dos dispositivos de E/S. Pagina 55 Construção de Lógica para aplicativo Inicio 1 Exemplo de Aplicativo 02 Solução: Passo 2 Construção do Fluxograma Analítico. NÃO NÃO Alarme Rele termico2 desacionado? Alarme Rele termico1 desacionado? SIM Bomba 1 Bomba 2 SIM Partida Partida ou Parada do contator C1? Parada Partida Partida ou Parada do contator C2? Parada Aciona botão A Tempo = 10s ? NÃO Aciona contator C1 Aciona botão B Aciona botão D SIM Desaciona contator C1 Aciona contator C2 Desacion a contator C2 Dispara tempor. TON 1 Fim Pagina 56 Software STEP5 STEP5 Passo 3: Construção da lógica Ladder Conforme a pagina 39 figura 35 criar um novo arquivo com nome: fenix2ST.S5D Seguindo os procedimentos da pagina 40 e figuras 36 e 37 criar o bloco operacional OB1. Seguindo a sequência abaixo criar as instruções de chama incondicional para os blocos de programas PB1 ( lógica Ladder das motor bombas ) e PB2 ( lógica Ladder de alarme ) conforme a figura 67: SHIFT+ F2 ( BLOCK )  F4 ( JU )  digite PB1 SHIFT+ F2 ( BLOCK )  F4 ( JU )  digite PB2 F7 ( ENTER )  SHIFT+ F7 ( SAVE ) Pagina 57 Figura 67 Software STEP5 STEP5 Passo 3: Construção da lógica Ladder ( continuação ) Para criar o Bloco de Programa PB1 seguir os procedimentos da pagina 40 e nomear PB1. Para ter acesso a instrução S/R seguir a sequência: F5 ( Binary op )  F7 ( S/R ) endereça como flag remanescente ou ñ remanescente ( ver pagina 35 ). Ao terminar a edição do segmento 1 do PB1 acione F6 ( Compl seg ) para ter acesso ao segmento 2. Para ter acesso a instrução Temporizador SS ( on deley ) Seguir a sequência: F5 ( Binary op )  SHIFT+ F4 ( SS ) Ao terminar de digitar a lógica do bloco PB1 acionar F7 ( ENTER )  SHIFT + F7 SAVE e ESC Pagina 58 Figura 67 Software STEP5 STEP5 Passo 3: Construção da lógica Ladder ( continuação ) Para criar o Bloco de Programa PB2 seguir os procedimentos da pagina da pagina anteriro 58. Ao terminar de digitar a lógica do bloco PB1 acionar F7 ( ENTER )  SHIFT + F7 SAVE e ESC Pagina 59 Software STEP5 STEP5 Correção do Exemplo de Aplicativo 02 Foi analisado na prática que a instrução de tempo “SS” ( retardo na ligação com retenção on delay ) uma vez acionado pelo bit saída da contatora C1 ( motor bomba 1 ), mesmo que este desacione antes dos 10 segundos, o temporizador continuar a decrementar o tempo e aciona o motor bomba 2, diferente do que desejamos ou seja: A motor bomba 2 só poderá ser acionada caso o motor bomba 1 esteja acionada. Devemos então substituir a instrução de tempo “SS” para que possa atender as condições acima. Conclusão: Foi substituído pela instrução de tempo “SD” ( retardo na ligação ), mas foi observado que será necessário criar no segmento 3 a instrução S/R para acionar a motor bomba 2. Pois a saída de temporizador “SD” não é retentiva ou seja quando desabilita o motor bomba 1 a saída do temporizador desabilita. Seguir as modificações da pagina 61 e testar a lógica Ladder. Pagina 60 Software STEP5 STEP5 Substituir o seguimento 2 e criar o seguimento 3 conforme as figuras abaixo: Segmento 2 Segmento 3 Figura 71 Pagina 61 Figura 72 Instruções Contadores “CU” e “CD” O programa poderá utilizar as funções de contadores para contagem de eventos. Os CLP‟s da família SIMATIC S5 apresentam 2 tipos de contadores. CU - contador crescente ( a cada pulso de um sinal o contador incrementa 1 no seu registrador) Exemplo: L KC 5 L Instrução “LOAD” carregar KC Constante de contagem 5 Valor de contagem: de 0 a 999 Obs: O valor máximo que um contador pode assumir é "999. Se o contador tiver seu valor de contagem em "999" e a entrada para incrementar contador ( CU ) continuar a receber pulsos, estes pulsos serão perdidos, logo o valor de contagem permanecerá em " 999 “ e a entrada para decrementar contador ( CD ) Continuar, logo o valor de contagem permanecerá em “0”. Pagina 62 CD - contador decrescente ( a cada pulso de um sinal o contador diminui 1 no seu registrador) Set - ativa o contador com um valor determinado em CV CV - valor de contagem R - zera o contador e tem prioridade sobre os demais. BI - palavra de saída no formato binário DE - palavra de saída em formato BCD Instruções Contadores “CU” e “CD” Representação em diagrama de contato (LAD) Representação em lista de instruções (STL) Representação em diagrama de blocos (CSF) Pagina 63 Instruções Contadores “CU” e “CD” O gráfico abaixo é um resumo dos acionamentos possíveis através dos contadores: saída KC Pagina 64 Instruções Comparadores Estas operações de comparação, comparam o conteúdo do acumulador 1 com o conteúdo do acumulador 2. Os valores a serem comparados portanto devem ser introduzidos primeiramente nos acumuladores, por exemplo com operações de carga ( LOAD ) Após uma operação de comparação, o acumulador permanece inalterado até uma nova instrução de carga. Nestas comparações podemos ter comparados bytes ou palavras de entrada (IB, IW), saídas (QB, QW), flags (FB, FW), constantes de contagem (KC), constantes de tempo (KT), constantes ou conteúdos de data words exemplo ( KF constante decimal ). Tipos de comparações Operação Função != F Comparação de igual >< F Comparação de diferente > F Comparação de maior < F Comparação de menor >= F Comparação de maior ou igual <= F Comparação de menor ou igual Exemplo: Vamos comparar dois bytes de entrada do CLP Se IB 32 for maior que IB 33 ligar a saída 32.0 L IB32 L IB33 >F = Q 32.0 BE Pagina 65 Instruções Comparador de igual ! = F Representação em diagrama de contato (LAD) Representação em lista de instruções (STL) Representação em diagrama de blocos (CSF) Pagina 66 Instruções Comparador de diferente >< F Representação em diagrama de contato (LAD) Representação em lista de instruções (STL) Representação em diagrama de blocos (CSF) Pagina 67 Instruções Comparador de maior > F Representação em diagrama de contato (LAD) Representação em lista de instruções (STL) Representação em diagrama de blocos (CSF) Pagina 68 Instruções Comparador de menor < F Representação em diagrama de contato (LAD) Representação em lista de instruções (STL) Representação em diagrama de blocos (CSF) Pagina 69 Instruções Comparador de maior ou igual > = F Representação em diagrama de contato (LAD) Representação em lista de instruções (STL) Representação em diagrama de blocos (CSF) Pagina 70 Instruções Comparador de menor ou igual < = F Representação em diagrama de contato (LAD) Representação em lista de instruções (STL) Representação em diagrama de blocos (CSF) Pagina 71 Instruções Formato dos Dados KM Representação Binária 00000000 00000000 à 11111111 11111111 KF Representação Decimal com sinal + 32767 à - 32768 KH Representação Hexadecimal 0000 à FFFF KY Representação em 2 bytes (direita e esquerda) 0,0 à 255,255 KT Constante do temporizador 000.0 à 999.3 KC Constante do Contador 000 à 999 KS ou S Constante de texto Pagina 72 Construção de Lógica para Aplicativo Exemplo de Aplicativo 03 Desejamos construir a Lógica LADDER para o acionamento; através do botão (I32.6); de uma esteira transportadora de peças conforme figura 95;e a mesma deverá contar 10 peças através do sensor S1 (I32.0) e após a contagem deverá desligar o motor da esteira (Q33.1). Obs independente do sensor contar 10 peças o motor deverá ser desligado caso seja acionado o rele térmico R1 (I1.0) ou botão de parada (I32.5) Solução: Passo 1 – Levantamento dos endereços e nível lógico dos dispositivos de entrada e saída conforme a tabela 18. C1 contatora S1 Sensor R1 Rele termico 3~ Figura 95 – Circuito de força de um motor de esteira CPU 095U Dispositivo de entrada Endereço Botão verde NA I32.6 Botão vermelho NF I32.5 Sensor S1 NA I32.0 Contato rele térmico1 NA I1.0 Dispositivo de saída Contatora C1 Q33.1 Lâmpada motor ligado Q32.1 nível 0 1 0 0 tabela 8 – Endereços e nível lógico dos dispositivos de E/S. Pagina 73 Construção de Lógica para Aplicativo Inicio Exemplo de Aplicativo 03 Solução: Passo 2 Construção do Fluxograma Analítico. Rele térmico1 ou botão parada desacionado? SIM NÃO Aciona botão A Inicia a contagem Reseta contador NÃO Habilita motor da esteira Sensor  10 peças? SIM Desabilita motor da esteira Habilita sensor Fim Pagina 74 Software STEP5 STEP5 Passo 3: Construção da lógica Ladder Conforme a pagina 39 figura 35 criar um novo arquivo com nome: fenix3ST.S5D Seguindo os procedimentos da pagina 40 e figuras 36 e 37 criar o bloco operacional OB1. No segmento 1 digitar a lógica Ladder do acionamento do motor da esteira conforme figura 96 No segmento 2 digitar a lógica Ladder de contagem de peças conforme a figura 97 Para ter acesso ao contador seguir a sequência: F5 ( Binary op )  F2 Figura 96 Pagina 75 Figura 97 Software STEP5 STEP5 Passo 3: Continuação da Construção da lógica Ladder No segmento 3 digitar a lógica Ladder de comparação = > 10 peças e desligamento do motor da esteira conforme figura 98. Para ter acesso ao comparadores seguir a sequência: SHIFT + F5 (compare) Pagina 76 Figura 98 Programação FB – Bloco de Função Podemos considerar que existem dois tipos de Blocos de Funções: 1-Blocos de Funções do Usuário: Os Blocos de Funções do usuário, são aqueles desenvolvidos pelo usuário, para tarefas relativas á automatização de seu sistema. Os FB´s contêm em geral funções complexas, que podem ser necessárias varias vezes em um programa. 2-Blocos de Funções Standard: Estes blocos são assim chamados, pois são elaborados e disponibilizados pelo próprio fabricante do equipamento, e em alguns casos já vem gravados na memória da própria CPU. Ex. FB´s básicos para conversão de sinais Decimal para BCD. Os Blocos de Funções (FB´s) diferenciam-se dos Blocos de Programa (PB´s) em dois pontos importante: Set de instrução ampliado - Nos blocos de funções, podemos utilizar instruções básicas, avançadas e de sistema. Parametrização – Blocos de Funções podem ser construídos de maneira que possamos utilizar a mesma função em locais diferentes do programa, com parâmetros (endereços) diferentes em cada uma das chamas. Obs: Nos FB´s não é possível a representação do programa LAD e CSF no primeiro segmento, nos demais a representação é exatamente igual à dos outros blocos (PB´s, OB´s etc). Pagina 77 Programação FB – Bloco de Função Na figura 99 temos o exemplo de um Bloco de Função Parametrizado (FB100) que será chamado no Bloco Operacional (OB1) para acionamento de 3 motor bombas consecutivas. Utilizamos o FB parametrizado FB100 para executar 3 funções lógicas idênticas, porém com endereços diferentes. Imagine dez partidas estrela-triângulo tendo sua lógica de funcionamento digitada uma a uma. Assim quando necessitar da lógica de partida, apenas preenchemos os campos com os devidos endereços de entradas e saídas. OB1 FB 100 Motor Bomba 1 FB 100 Motor Bomba 2 FB 100 Motor Bomba 3 Figura 99 Pagina 78 Software STEP5 FB – Bloco de Função 1º vamos criar o Bloco de Função FB100, declarando seu nome, os parâmetros do blocos e seu programa de controle conforme a figura 100: LIGA DESL RELE MOTO Obs: Não coloque espaço entre os caracteres e operando. Após digitar toda a lógica acione F7 (ENTER). MOTO Operando Nome Tipo de Dado Tipo de Parâmetro Programa de Controle. No exemplo acima é a lógica de acionamento das bombas Pagina 79 Figura 100 Software STEP5 FB – Bloco de Função 2º vamos criar o Bloco de Organização OB1, onde no segmento 1 será chamado incondicional o FB100 para acionamento do motor Bomba 1 com os endereços conforme a figura 101: Para chamar o bloco FB100 seguir a sequência: Shift+ F2 ( Blocks )  F1 JU FB e entre com os parâmetros e ao terminar acione F6 (compl seg) para ir para o segmento 2. 3º No segmento 2 conforme a figura 102 digite JU FB100 para chamar o FB de parametrização e entre com os endereços dos operando. Ao terminar acione F6 (compl seg) para ir para o segmento 3. Figura 101 Pagina 80 Figura 102 Software STEP5 FB – Bloco de Função 4º No segmento 3 conforme a figura 103 digite JU FB100 para chamar o FB de parametrização e entre com os endereços dos operando. Ao terminar acione F7 (Enter)  Shift+F7 (Save) . Figura 103 Pagina 81 Programação FB – Bloco de Função 250 e 251 Estes blocos de função transformam a faixa de valores nominais de um módulo analógico para uma faixa de valores normalizada que você especifica. Lendo e normalizando um valor analógico FB 250 O bloco de função FB 250 lê um sinal analógico de um módulo de entradda analógico e transforma esse valor em um numero XA Dentro da escala especificada. Definimos a faixa de valores nos quais o sinal analógico será convertido usando os parâmetros “upper limit” (OGR) limite máximo e “lower limit”(UGR) limite mínimo. Especifique o tipo de valor analógico (tipo de canal) no parâmetro KNKT. O Parâmetro BU é setado quando o valor analógico excede a escala nominal. Saindo com um sinal analógico FB 251 Use o bloco de função FB 251 para mandar valores de saída a um módulo de saídas analógicas. Especifique o tipo de representação analógica do módulo (tipo de canal) no parâmetro KNKT. Valores entre o limite mínimo (UGR) e o limite máximo (OGR) são convertidos para a faixa de valores nominais designada para o módulo. Pagina 82 Programação FB – Bloco de Função 250 Chamadas e Parâmetros possíveis CPU –95U Parâmetro BG KNKT Descrição Nº do slot Número do canal Tipo de canal Tipo I/O externo D KF D KY 0a7 Possibilidades I/O interno 8 KY = x,y X=0a7 Y = 4 representação unipolar KY = x,y X=0a3 Y=3a6 3: representação em valor absoluto 4: representação unipolar 5: valor bipola absoluto 6: numero bipolar em pontofixo OGR UGR EINZ XA FB Limite máximo Limite mínimo Varredura única Valor de saída Bit de erro D KF D KF I BI QW Q BI Irrelevante -32767 a +32767 -32767 a +32767 Varredura única com status em 1 Valor analógico escalonado Valor analógico escalonado é zero com quebra de fiação BU Violação da faixa de valores Q BI “1” com quebra de fiação, “1” com número ilegal de canal número ilegal de canal ou slot ou slot ou tipo de canal ilegal ou tipo de canal ilegal “1” quando a faixa de valores é excedida Pagina 83 Programação FB – Bloco de Função 251 Chamando e iniciando o FB 251 na CPU-95U Parâmetro XE BG KNKT Descrição Valor analógico de saída Endereço do slot Número do canal Tipo de canal Tipo I/O externo IW D KF D KY Possibilidades I/O interno Valor de entrada (complemento de dois) dentro da escala UGR e OGR 0a7 KY = x,y X = 0;1 Y = 0;1 0: representação unipolar 1:ponto-fixo bipola 8 KY = x,y X=0 Y = 0 representação unipolar OGR Limite máximo D KF -32767 a +32767 UGR FEH Limite mínimo Erro na configuração dos valores limites Bit de erro D KF Q BI -32767 a +32767 “1” se UGR=OGR, número inválido de canal ou slot, ou tipo de canal inválido “1” se XE excede os limites UGR e OGR XE assume o valor limite BU Q BI Pagina 84 Software STEP5 FB – Bloco de Função FB250 e 251 Nas figuras abaixo temos o exemplo de parametrização do bloco FB250 tendo a chamada incondicional pelo bloco OB1. Figura 103 E na figura 104 temos o bloco FB25o utilizado para trabalhar os sinais de entrada analógicas. Figura 103 Pagina 85 Figura 102
Copyright © 2024 DOKUMEN.SITE Inc.