Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Apostila CLP Tecnologo, Notas de estudo de Engenharia Têxtil

siemens 7200

Tipologia: Notas de estudo

2012

Compartilhado em 18/04/2012

levi-germano-1
levi-germano-1 🇧🇷

5

(1)

2 documentos

1 / 53

Documentos relacionados


Pré-visualização parcial do texto

Baixe Apostila CLP Tecnologo e outras Notas de estudo em PDF para Engenharia Têxtil, somente na Docsity! 1 Apostila S7-300 2 A Família SIMATIC A introdução da eletrônica resultou em grandes alterações na área de controle industrial. Juntamente com a automação das máquinas as possibilidades de aplicação foram expandidas através dos controladores, o que também conduziu a novas tecnologias e ramos. Adicionalmente ao fornecimento de energia, são necessários elementos de controle para o funcionamento das máquinas e dos processos em quase todas as áreas da produção. Deve ser possível inicializar, controlar e visualizar o funcionamento de qualquer máquina ou processo. No passado, as tarefas de controle eram resolvidas através da tecnologia de controle convencional - dependendo da tarefa - através de contatores e relés. Hoje os controladores lógicos programáveis são largamente utilizados para solucionar as tarefas de automação Automação Totalmente Integrada Para que as empresas continuem competitivas, não é suficiente a automação isolada, apenas estações de processo ou máquinas, individualmente. A necessidade de maior produtividade só pode ser preenchida quando máquinas individuais são integradas no sistema completo. O fluxo de informação entre todos os componentes é essencial para o funcionamento de todo o sistema. Os processos não possuem mais as suas estruturas hierarquicamente centralizadas. Agora os processos são estruturados, bem como distribuídos e os componentes são individualmente autônomos. A integração total de todo o ambiente de automação é hoje possível com a ajuda de: • Configuração e programação comum de sistemas parcialmente individualizados; • Tratamento de dados comum; • Comunicação comum entre todos os componentes participantes na automatização. 5 Processo e Projeto 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-lo em rede. Software: - Estrutura do programa; - Tratamento de dados para o a automatização; - Dados de configuração; - Dados de comunicação; - Documentação do programa e do projeto. Projeto No SIMATIC S7 todos os requisitos de hardware e software de um processo de automatização são tratados dentro de um projeto. Um projeto inclui o hardware necessário (+ configuração), rede (+ configuração), todos os programas e o tratamento completo de todos os dados para uma solução com automação. Estrutura de um Projeto STEP 7 Hierarquia do Projeto 1º NíveI: 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 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. Sub-redes (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. 6 Escreva aqui o nome do projeto e confirme com “OK” Exercício 1: Criar um novo Projeto e Inserir um novo programa O Que Fazer 1. Inicie o SIMATIC-Manager. 2. Apague o antigo projeto “Projeto_1” (se existente) Selecione a seqüência de menus File -> Delete -> User Projects. 3. Selecione “Projeto-1” da lista de projetos e confirme com OK. 4. Depois do projeto ter sido apagado, selecione a seqüência de menus File -> New -> User projects. 5. No campo para atribuição do nome do projeto escreva “Projeto-1”. 6a. No projeto “Project_1”, selecione a seqüência de menus Insert -> Program S7 Program. ou 6b. Clique com o botão direito do mouse sobre “Project_1''. No menu que aparece, selecione as opções Insert New Object -> S7 Program para inserir um novo programa. 7. É criado um novo programa S7 com o nome “S7 Program 1” 8. Altere o nome do programa para “Programa_1”. Notas Um projeto representa todos os componentes de um sistema de automação. Sendo assim, um projeto pode conter uma ou mais estações de hardware. Adicionalmente é possível criar pastas de programação independente de hardware, para que seja possível desenvolver uma aplicação antes que se conheça (e posteriormente instale) esse hardware. Um programa S7 contém os seguintes objetos: - Blocks, no qual são armazenados os blocos (OBs, FCs, FBs e DBs), e que podem ser enviados para a CPU; - Sources, no qual são armazenados os programas fonte que são criados através de editores de texto, por exemplo, para STL, S7-SCL ou S7-HiGraph; - Symbols, no qual são armazenados os simbólicos (nomes) para o endereçamento das variáveis globais do S7, tais como, entradas, saídas, memórias, temporizadores e contadores. Resultado É criado um novo programa S7 dentro do projeto “Projeto_1”. É criado automaticamente dentro da pasta Blocos do programa um bloco OB1 vazio: 7 Configuração do Hardware / Inserindo uma Estação Insert Station 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. HW Config Esta ferramenta ajuda a configurar, a atribuir parâmetros e a diagnosticar o hardware. Iniciando 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 configuração'' 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. 10 Endereçamento Variável Endereçamento Fixo Os módulos do S7-300 (CPUs sem interface DP) e S7-400 (sem configuração de hardware) têm atribuído endereçamento fixo para o slot onde são colocados. Endereçamento Variável Com o S7-300 (CPUs com interface DP integrada) e com o S7-400 é possível atribuir parâmetros aos endereços iniciais dos módulos. O Que Fazer Ao dar um duplo clique num módulo digital ou analógico aparece a tela para atribuição de parâmetros. Depois de escolher a opção “Addresses” pode-se retirar a seleção de “System default”. É possível então definir o endereço inicial no campo “start”. Se o endereço já estiver sendo usado aparece uma mensagem de erro. “Part Process Image” só pode ser definida no S7.400. Assim sendo, entradas e saídas específicas (por ex. sinais de tempo critico) podem ser combinadas num grupo. Uma função do sistema dispara a atualização da partição da imagem de processo no programa do usuário. Nota Após um reset de memória da CPU (como conseqüência disso), os parâmetros e os endereços são perdidos. Isto significa que no S7-300 são válidos mais uma vez os endereços fixos por slot e com o S7-400 os endereços default. 11 Propriedades da CPU: Ciclo / Clock Memory Ciclo o Opção ''Scan cycle monitoring time (ms):'' - Se esse tempo for excedido a CPU entra em STOP. Possíveis causas para o tempo excedido: Processos de comunicação, que freqüentemente aparecem a partir de interrupções, erros no programa da CPU. - Se o bloco de erro OB 80 foi programado o tempo de ciclo é duplicado. Após esse tempo a CPU também entra em STOP. o Opção “Scan cycle load from communication (%):'' - A comunicação (por ex. transmissão de dados para outra CPU via MPI ou funções de teste que foram iniciadas pelo PG) é limitada à porcentagem especificada do tempo de ciclo atual. - Limitar a carga de ciclo pode atrasar a comunicação entre a CPU e o PG. - Exemplo: limitar a comunicação em 20% resulta numa carga máxima para comunicação de 20ms para um tempo de ciclo de 100ms. Clock Memory São bits de memória que mudam seu valor binário periodicamente. Cada bit do clock memory está atribuído a um determinado período / freqüência Exemplo de uma luz piscando com uma freqüência de intermitência de 0.5Hz: (Período = 2s, luz ON = 1s, luz OFF = 1s). Clock Memory Bit 7 6 5 4 3 2 1 0 Freq. (Hz) 0.5 0.62 1 1.25 2 2.5 5 10 Período (s) 2 1.6 1 0.8 0.5 0.4 0.2 0.1 12 Transferindo a Configuração de HW Atual para o PG - UPLOAD Configuração Atual Durante o startup a CPU gera uma configuração atual, isto é, ela salva a disposição dos módulos e atribui os endereços de acordo com um algoritmo fixo. Se não tiverem sido atribuídos parâmetros são utilizados os parâmetros de fábrica default. O sistema armazena esta configuração atual em blocos de dados de sistema. Transferência para o PG/PC Existem duas maneiras de transferir a configuração atual para o PG: 1. No Simatic Manager: através da seleção de menus PlC -> Upload Station. 2. Na ferramenta HW Config: através da seleção de menus PlC -> Upload ou selecionando o ícone Armazenamento no PG/PC A configuração atual lida a partir do hardware instalado é inserida como uma nova estação no projeto selecionado no PG. Nota Ao ler a configuração atual, as referências dos módulos não podem ser completamente identificadas. Por esta razão, deve-se verificar a configuração e, se necessário, inserir o tipo de módulo exato dentre os módulos existentes. Para isso, selecione o módulo, e a seqüência de menus Options -> Specify Module. 15 Abrindo a Tabela de símbolos Tabela de Símbolos A tabela de símbolos é aberta através do menu Options -> Symbol Table no Editor LAD/STL/FBD. Pode-se também abrir a tabela de símbolos a partir do SIMATIC Manager: Selecione o programa na parte esquerda da janela do projeto e faça um duplo clique no objeto "Symbols". Estrutura da Tabela Quando se abre à tabela de símbolos é aberta uma tabela, composta por colunas para o nome simbólico, endereço, o tipo de dado e um comentário para o símbolo. Cada símbolo ocupa uma linha da tabela. Uma linha em branco é acrescentada automaticamente no final da tabela para definir um novo símbolo. Nota A tabela de símbolos é uma base de dados comum e pode ser utilizada por diferentes ferramentas: Editor LAD/STL/FBD Monitoração e Modificação de Variáveis Referência Cruzada 16 Arquitetura dos Blocos/ Tipos de Blocos de Programa OB = Organization Block Legenda: FB = Function Block FC = Function FB com bloco de dados instance SFB = System Function Block SFC = System Function DB = Data Block 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. Bloco de organização OB Os Blocos de Organização (OBs) compõem a interface entre o sistema operacional e o programa do usuário. O programa inteiro pode ser armazenado no OB1, o qual é ciclicamente chamado pelo sistema operacional (programa linear) ou pode ser dividido e armazenado em vários blocos (programa estruturado). 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. Maiores informações podem ser encontradas na Ajuda Online. 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. Maiores informações podem ser encontradas na Ajuda Online. 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). Sistema Operacional Ciclo Ciclo Ciclo Ciclo OB Blocos de Organização DB DB FC FC FB FB SFC SFB FB 17 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 OB1 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 a respeito 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 ex. OB 1), e o processamento das instruções continua. Programa Linear Programa Particionado Programa Estruturado Todas as instruções se encontram em um único bloco (normalmente no bloco de organização OB 1). As instruções para as funções individuais se encontram em blocos individuais. O bloco OB 1 chama os blocos individuais um após o outro. Funções reutilizáveis são carregadas dentro de blocos individuais. O bloco OB 1 ( ou outros blocos) chamam estes blocos e transferem parâmetros. OB 1 OB 1 OB 1 Receita A Misturador Receita B Exaustor Exaustor Bomba 20 As Linguagens de Programação do STEP 7 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 a ponto de 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. & --> Operação Lógica AND). 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. 21 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 e 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 e a instrução CALL. Transferindo Blocos para o PLC Transferindo Pode-se transferir blocos para o CPU com o SIMATIC Manager: Clicando no ícone ou selecionando a opção menu PLC -> Download. Antes de fazer isto se deve selecionar os blocos a se transferir: Todos os Blocos: Selecione o objeto "Blocks" na parte esquerda da janela do projeto. Alguns Blocos: Pressionando a tecla CTRL e selecionando os blocos Um Bloco: Selecionando o Bloco. 22 Operações Binárias Operações Lógicas Binárias: AND, OR Regras A regra seguinte é válida para a operação lógica AND com duas entradas: a saída terá nível lógico “1” se ambas as chaves estiverem ativadas (ligação em série). A regra seguinte é válida para a operação lógica OR com duas entradas: a saída terá nível lógico "1" quando uma ou mais entradas for acionada (ligação em paralelo). 25 Conector Conector Um conector corresponde a um elemento intermediário de atribuição de sinal que armazena o RLO no endereço especificado. Quando ligado em série com outros elementos, a instrução "Conector" é inserida da mesma forma que um contato normal. Um conector nunca deve: Ser conectado ao início de um ramo (LAD); Seguir diretamente um ramo; Ser usado no final de um ramo. Pode-se programar um conector negado com um elemento "NOT". 26 RLO - Detecção de Flanco Flanco do RLO Um "Flanco do RLO" acontece quando o resultado lógico de uma operação muda. Flanco Positivo Quando o RLO muda de "0" para "1", a instrução de detecção de flanco "FP" resulta no estado de sinal "1" (por ex. na M 8.0) durante um ciclo. Para permitir que o sistema detecte a mudança de flanco, o RLO deve também ser salvo num bit de memória FP, ou bit de dados (por ex. M 1.0) Flanco Negativo Quando o RLO muda de "1" para "0", a instrução de deteção de flanco "FN" resulta no estado de sinal "1" (por ex. M 8.1) durante um ciclo. Para permitir que o sistema detecte a mudança de flanco, o RLO deve também ser salvo num bit de memória FN, ou bit de dados (por ex. M 1.1). 27 Sinal - Detecção de Flanco Flanco de Sinal Um "flanco de sinal" acontece quando o sinal muda o seu estado. Exemplo: A entrada I 1.0 funciona como uma entrada estática de habilitação. A entrada I 1.1 é monitorada dinamicamente e cada mudança de sinal é detectada. Flanco Positivo Quando o estado do sinal I 1.1 passa de "0" para "1", a instrução de verificação "POS" resulta no estado lógico "1" na saída Q durante um ciclo, desde que I1.0 tenha estado logico "1" (como no exemplo acima ilustrado). Para permitir que o sistema detecte a mudança de flanco, o estado de I 1.1 deve também ser salvo num M_BIT (bit de memória ou bit de dados - por exemplo M1.0). Flanco Negativo Quando o estado de sinal I1.1 passa de "1" para "0", a instrução de verificação "NEG" resulta no estado logico "1" na saída Q durante um ciclo, desde que I1.0 tenha estado logico "1" (como no exemplo acima ilustrado). Para permitir que o sistema detecte a mudança de flanco, o estado de I 1.1 deve também ser salvo num M_BIT (bit de memória ou bit de dados - por exemplo M1.1 ). 30 Operações Digitais / Formatos de Números (16 Bits) Código BCD Cada dígito de um número decimal é codificado em quatro bits. São utilizados quatro bits porque o número decimal mais alto, 9, necessita de pelo menos quatro posições de bit em código binário (1001). Os dígitos decimais de 0 a 9 são representados em código BCD da mesma forma que os números binários de 0 a 9. INTEIRO O tipo de dado INT é um inteiro (16 bits). O sinal (bit 15) indica se o número é positivo ou negativo ("0" = positivo, "1" = negativo). Um número de 16 bits pode estar compreendido entre -32768 e +32767. No formato binário, a forma negativa de um número inteiro é representada como o complemento de dois do número inteiro positivo. (O complemento de dois é obtido invertendo o padrão de bits do número e depois adicionando-Ihe 1). Para saber quanto vale um número negativo, veja os bits que estão em zero e quanto valem as suas potências de dois, depois some 1 ao resultado e coloque um sinal menos em frente ao número. DINT Inteiros de 32-bit com sinal são também designados "duplos inteiros" ou "inteiros longos". Estes números cobrem uma gama que vai desde L# -2147483648 a L#+2147483647. REAL Um número real (também conhecido como número em ponto flutuante) é um número positivo ou negativo compreendido entre 1.175495x10^-38 a 3,402823x10^38. Exemplos: +10.339 ou +1.0339E1 -234567 ou -2.34567E5. Na representação exponencial o expoente é especificado como uma potência de 10. Um número real ocupa duas palavras na memória. O bit mais significativo indica o sinal. Os outros bits representam o coeficiente e o expoente para a base 2. Nota: A representação de números reais no STEP 7 está de acordo com as normas standard IEEE. 31 Carregando e Transferindo Dados (1) MOVE (LAD/FBD) Se a entrada EN esta ativa, o valor na entrada "IN" é copiado para o endereço da saída "OUT". "ENO" possui o mesmo estado de sinal que "EN". L e T (STL) As instruções Load (carregar) e Transfer (transferir) são executadas independentemente do RLO. Os dados são trocados através do acumulador. A instrução Load escreve o valor do endereço fonte alinhado a direita no acumulador 1 e preenche os restantes bits (32 bits no total) com "0"s. A instrução Transfer cópia algum ou todo o conteúdo do acumulador 1 para o destino especificado. Exemplos de Carga L +5 // constante 16-bit (Inteiro) L L#523123 // constante 32-bit (Duplo Inteiro) L B#16#EF // byte em hexadecimal L B#16#EF // valor binário 16-bit L 2#0010 0110 1110 0011 // valor binário 16-bit L 3.14 // constante 32-bit (Real) 32 Contadores no STEP 7 Valor do contador Está reservada na memória de dados do sistema uma palavra de 16-bits para cada contador. Ela é utilizada para armazenar o valor da contagem para o contador (0 ... 999) em código binário. Contagem Crescente Quando o RLO na entrada "CU" passa de "0" para "1" o valor atual do contador é incrementado de uma unidade (limite superior = 999). Cont. Decrescente Quando o RLO na entrada "CD" passa de "0" para "1" o valor atual do contador é decrementado de uma unidade (limite inferior = 0). Set do contador Quando o RLO na entrada "S" passa de "0" para "1" o valor do contador passa a ser o valor especificado na entrada “PV”. Reset do contador Quando o RLO = 1 o valor do contador é levado a zero. Se a condição de reset é preenchida, o contador não pode ser setado, e a contagem não é possível! PV O valor pré-definido (0... 999) é especificado na entrada "PV" em BCD como: Uma constante (C#....) Em formato BCD através da utilização dos blocos de dados. CV I CV _BCD O valor do contador pode ser carregado como um número binário ou um número BCD no acumulador e transferido a partir daí para outros endereços. Q O estado de sinal do contador pode ser verificado na saída "Q": Contagem = 0 -> Q = 0 contagem >< 0 -> Q = 1 Tipos de contador: S_CU=Contador crescente (contagem apenas crescente) S_CD=Contador decrescente (contagem apenas decrescente) S_CUD=Contador crescente I decrescente. 35 Temporizadores: Stored ON Delay (SS) Disparo A contagem do tempo começa quando o RLO na entrada “S" passa de "0" para "1". O temporizador inicia a contagem com o tempo especificado na entrada "TV", e continuará a sua contagem mesmo que a entrada “S” passe para "0" durante esse tempo. Se o sinal na entrada de disparo passar novamente de "0" para "1" enquanto o temporizador estiver contando, a contagem de tempo é iniciada do princípio. Reset Quando o RLO na entrada de Reset "R" for "1", o valor do tempo atual, bem como o da sua base de tempo são apagados, e a saída Q é resetada. Saída Binária O estado do sinal da saída "Q" passa a "1" quando o temporizador tiver contado o seu tempo sem erros, independentemente do estado de sinal da entrada "S". Temporizadores: Pulse (SP) Disparo O temporizador começa a sua contagem quando o RLO na entrada “S” passa de “0” para "1". A saída "0" também é levada a "1". Reset A saída "Q" é resetada quando: O temporizador tiver contado todo o seu tempo; ou Se o estado do sinal na entrada “S" passar de "1" para "0"; ou Se a entrada de reset “R” tiver estado de sinal "1". 36 Temporizadores: Extended Pulse (SE) Disparo O temporizador inicia a contagem do seu tempo quando o RLO na entrada "S" passa de "0" para "1". A saída "Q" é também levada a "1". O estado do sinal na saída "Q" permanece em "1" mesmo que o sinal na entrada "S" passe para "0". Se o sinal na entrada de disparo passar novamente de "0" para "1" enquanto o temporizador estiver contando, o tempo é reinicializado. Reset A saída "Q" é resetada quando: O temporizador tiver contado todo o seu tempo, ou A entrada de Reset "R" tiver estado de sinal ”1”. 37 Temporizadores: OFF Delay (SF) Disparo O temporizador começa a sua contagem quando o RLO na entrada "S" passa de "1" para "0". Quando o temporizador tiver contado todo o seu tempo, o estado do sinal na saída "Q" passa para "0". Se o estado do sinal na entrada "S" passa de "0" para "1" enquanto o tempo estiver decorrendo, o temporizador pára, e na próxima vez que o estado do sinal passar de "1" para "0" recomeça do princípio. Reset Quando o RLO na entrada Reset "R" é "1", o tempo atual e a base de tempo são apagados e a saída "Q" é resetada. Se as entradas (S e R) tiverem sinal "1" ao mesmo tempo, a saída "Q" não é ligada até que o Reset dominante seja desativado. Saída binária A saída "Q" é ativada quando o RLO na entrada "S" passa de "0" para "1". Se a entrada “S” é desativada, a saída "Q" continua a ter estado de sinal "1" até que o tempo programado tenha sido contado. 40 Operações de Comparação CMP Pode-se utilizar instruções de comparação para comparar os seguintes pares de valores numéricos: I Comparar inteiros (com base em Números de ponto-fixo de 16-bit) D Comparar inteiros (com base em Números de ponto-fixo de 32-bit) R Comparar Números de ponto-flutuante (com base em Números reais de 32-bit = Números IEEE de ponto-flutuante). Se o resultado da comparação for "Verdadeiro", o RLO resultante da comparação é "1"; de outra maneira será "0". Os valores nas entradas "IN1" e "IN2" são comparados conforme a condição especificada: == IN1 é igual a IN2 (EQ) <> IN1 é diferente de IN2 (NE) > IN1 é maior que IN2 (GT) < IN1 é menor que IN2 (LT) >= IN1 é maior ou igual que IN2 (GE) <= IN1 é menor ou igual que IN2 (LE) 41 Funções matemáticas Básicas Geral O conjunto de instruções do S7-300/400 suporta uma gama extensa de funções matemáticas. Todas as instruções têm o mesmo formato: EN A instrução é executada se o RLO for = "1" na entrada de permissão "EN". ENO Se o resultado está fora da faixa de valores permitida para aquele tipo de dado, os bits "OV="overflow"" e "OS="Stored Overflow"" são setados e a saída "ENO=0". Isto evita que futuras operações dependentes de "ENO" sejam executadas. IN1, IN2 O valor na entrada "IN1" é lido como o primeiro endereço e"IN2" como o segundo. OUT O resultado da operação matemática é armazenado no endereço especificado na saída "OUT". Instruções Soma: ADD_I Somar inteiros ADD_DI Somar duplo inteiros ADD_R Somar Números reais Subtração: SUB_I Subtrair inteiros SUB_DI Subtrair duplo inteiros SUB_R Subtrair Números reais Multiplicação: MUL_I Multiplicar inteiros MUL_DI Multiplicar duplo inteiros MUL_IR Multiplicar Números reais Divisão: DIV_I Dividir inteiros DIV_DI Dividir duplos inteiros DIV_R Dividir Números reais Adição Subtração Multiplicação Divisão 42 Operações de conversão I -> DI -> REAL Exemplo Um programa de usuário que trabalha com números inteiros também realiza divisões, que podem resultar em valores menores que 1. Como estes valores podem ser representados apenas como números reais, a conversão para o formato real toma-se necessária. Para isso, o inteiro deve inicialmente ser convertido a um duplo inteiro. I_DI / ITD Converte um inteiro num duplo inteiro. DI_R/DTR Converte um duplo inteiro num número real. Nota Existem outras instruções de conversão, tais como: INV_I I INVI NEG_I I NEGI TRUNC I TRUNC ROUND I RND CEIL I RND+ FLOOR I RND- INV_DI I INVD NEG_DI I NEGD NEG_R I NEGR CAW, CAD 45 Tipos de Dados Elementares no STEP 7 Palavra chave Comprimento (em BITS) Exemplo de uma constante deste tipo BOOL BYTE WORD DWORD CHAR 1 8 16 32 8 1 ou 0 B#16#A9 W#16#12AF DW#16#ADAC1EF5 ‘w’ S5TIME 16 S5T#5s_200ms INT DINT REAL 16 32 32 123 L#65539 1.2 ou 34.5E-12 TIME DATE TIME_OF_DAY 32 16 32 T#2D_1H_3M_45S_12MS D#1993-01-20 TOD#12:23:45.12 Tipos de Dados Complexos no STEP 7 46 Editando, Salvando, Transferindo e Monitorando um DB Inserindo Dados Os elementos são introduzidos um a um na tabela. Para isso, selecione a primeira linha vazia na coluna "Name" e introduza a descrição dos elementos. É possível saltar para as outras colunas - "Type" (tipo), "Initial Value" (valor inicial) e "Comment" (comentário) - utilizando-se a tecla Tab. Colunas O significado de cada uma das colunas é, respectivamente: Address - é introduzido pelo editor de programa ao salvar. Corresponde ao primeiro endereço byte ocupado pela variável no bloco de dados. Name - nome simbólico do elemento . Type - tipo de dado (selecione com a tecla direita do mouse). Initial Value - é utilizado para selecionar um valor default para um elemento. Se não for introduzido um valor neste campo, será utilizado o valor zero como valor inicial. Comment - para documentar o elemento da tabela (opcional). Salvar Salva o bloco de dados no disco rígido do programador. Transferir Transfere o bloco de dados para a CPU da mesma forma que são transferidos os blocos lógicos. Monitor Para monitorar os valores atuais de um bloco de dados, deve-se passar para a representação "Data View". Pode-se monitorar um bloco de dados utilizando o ícone dos "Óculos" da barra de ferramentas (visualização permanente dos valores atuais do DB na CPU). 47 Endereçando os Dados 7 6 5 4 3 2 1 0 Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 8191 Geral Os elementos de um bloco de dados são endereçados byte a byte, ou seja, da mesma maneira que os bits de memória. Pode-se carregar e transferir bytes de dados, palavras de dados ou duplas palavras de dados. Ao utilizar palavras de dados, deve-se especificar na instrução o endereço do primeiro byte (por ex. L DBW 2). Com esta instrução são carregados dois bytes a partir do endereço referido. Com duplas palavras, são carregados 4 bytes a partir do endereço referenciado. Número, Comprimento O número de blocos de dados depende da CPU utilizada. O comprimento máximo de um bloco de dados é de 8KByte para o S7-300 e de 64KByte para o S7-400. Nota Ao tentar acessar-se um dado ou um bloco de dados não-existentes, a CPU entrará em STOP se não tiver sido programado um OB de erro. 8 Bits DBB 0 DBW 0 DBD 0 DBX 50 Exibição no Editor de Programa (Blocos de Dados no DB1) Estrutura A Figura mostra o exemplo de uma estrutura com o nome "Motor_data". A estrutura é constituída por vários elementos de diferentes tipos de dados. Os elementos individuais de uma estrutura podem ser do tipo de dados elementar ou complexo. O acesso aos elementos individuais de uma estrutura contém o nome da estrutura. O programa fica assim mais fácil de ler. Para poder acessar aos elementos simbolicamente, deve ser dado ao bloco de dados um nome simbólico, por exemplo, "Drive_1". Exemplos de como acessar elementos individuais de uma estrutura: L "Drive_1 " Motor_data.rated_current L "Drive_1 " Motor_data.operating_speed "Drive_1" é o nome simbólico do bloco de dados, que contem a estrutura. O nome da estrutura é dado (separado por um ponto) depois do nome simbólico. A seguir ao nome da estrutura (separado por um ponto) aparece o nome de um elemento da estrutura. Definir Estrutura num DB O tipo para uma estrutura é "STRUCT". O fim de uma estrutura é indicado por "END_STRUCT". Cada estrutura tem que ter um nome (no nosso exemplo: "Motor_data"). 51 Funções e Blocos de Funções Introdução Geral Até agora, as entradas e saídas utilizadas foram endereçadas com seus parâmetros atuais. Não foram associados parâmetros para os blocos. Esse procedimento pode ser escolhido, por exemplo, na criação de um programa que será usado apenas em uma máquina especial. Para funções utilizadas freqüentemente em sistemas maiores podem ser criados blocos parametrizáveis de uso universal (FC, FB). Eles possuem parâmetros formais de entrada e saída, aos quais são atribuídos parâmetros atuais quando a chamada é feita. Variáveis / Dados Globais (válidos em todo o programa) o PII / PIQ o I/O o M / T / C o Áreas de DB Dados / Variáveis locais (Válidos apenas em um bloco) Variáveis Temporárias São apagadas após o bloco ter sido executado Armazenamento temporário no L-stack Utilizadas em OBs / FCs / FBs Variáveis Estáticas São retidas mesmo após o bloco ter sido executado Armazenamento nos OBs Podem apenas ser utilizadas nos FBs ABSOLUTO SIMBÓLICO ACESSO 52 A associação da funcionalidade do bloco ao hardware é feita na parametrização, quando da chamada do bloco; a lógica do bloco não é alterada. Variáveis Locais Até agora foram utilizadas variáveis globais (bit memories e blocos de dados) para armazenar os dados de produção, por exemplo. Nesse capítulo serão dadas mais informações sobre o armazenamento de dados em variáveis locais. Variáveis Temp Variáveis temporárias são variáveis armazenadas apenas durante a execução do bloco. Elas podem ser utilizadas em todos os blocos (OB, FC, FB). Variáveis Estáticas e os dados tiverem de continuar armazenados mesmo após a execução do bloco deverão ser usadas as variáveis estáticas. As variáveis estáticas só podem ser utilizadas em blocos de função. Variáveis Temporárias Geral 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 esta sendo executado. Os dados são perdidos quando é finalizada a execução do bloco. Os dados são armazenados no L-stack (local data stack). O L-Stack é uma memória separada dentro da CPU. Declaração As variáveis são definidas na tabela de declaração do bloco. Na linha "temp" são preenchidos o nome e o tipo do dado da variável. Não é possível predefinir um valor inicial neste caso. Após salvo o bloco, a locação de memória no L-Stack é exibida na coluna "Address".
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved