Ladder Logic 401: Aquisição de Dados e Análise Cortesia de pumpingstationone. org Postagem de hoje é em resposta a um pedido de Quy Phan, que eu conheci um par de semanas atrás, enquanto o ensino de Automação Formação em San Diego. Ele está tendo alguns problemas com algum equipamento existente no que diz respeito ao ruído em seus transdutores analógicos, ele tem muito esgotado suas opções tanto quanto blindagem e filtros físicos, e desde que eu estava fazendo treinamento em programação de PLC ele perguntou sobre opções em software. Eu disse a ele se ele iria postar a questão no meu blog, I8217d resolver o problema aqui. Decidi incluí-lo como dois posts, este na análise de sinal e o seguinte na filtragem em software. Antes de ser capaz de abordar a filtragem, é conveniente saber algo sobre o próprio sinal. Se você tem um osciloscópio, que seria ideal desde que você pode obter uma grande imagem dos níveis de sinal, mas o PLC também pode capturar dados e pode ser analisado. Infelizmente, os métodos podem variar muito dependendo da plataforma. Vou tentar discutir isso de uma maneira genérica, mas as imagens de programação vêm do meu software AB ControlLogix. Primeiro, capturar os níveis de sinal: Estes assumem um sinal inteiro assinado a partir de uma placa analógica, resolução desconhecida. Valores de sinais analógicos não assinados coletados durante um tempo não especificado Isso mostra uma amostragem aleatória de valores coletados de um cartão analógico típico. Como os conversores AD don8217t mudam valores muito rapidamente, pode ser difícil ver os picos que podem ocorrer no sinal. Feche de valores analógicos reunidos a uma taxa mais alta Se os valores podem ser amostrados a uma taxa maior do que um esquema de controle PID típico pode exigir, ele pode mostrar alguns dados como este. Os picos nestas imagens ilustram o que você pode fazer se você fizer alguma limitação simples de valores com base na média. O próximo post de week8217s entrará em métodos mais elaborados de alisar para fora o sinal. Um ponto I8217d gostaria de enfatizar aqui: qualquer modificação de dados coletados exigirá um atraso do sinal. Afinal, leva tempo para processar os sinais e melhorá-los. Mas mais sobre isso na próxima semana, isso é mais do lado da coleta de dados. Este é um método de criação de pulsos de amostragem que funcionará em praticamente qualquer plataforma de PLC, um temporizador free-running. Um problema com ele é que ele não vai ser particularmente preciso, uma vez que opera dentro da varredura. Se for necessário melhorar a precisão, pode ser utilizada uma rotina cíclica ou uma interrupção. Este é um método de captura de dez valores em uma matriz. Ele usa uma instrução FIFO, que está disponível na maioria de seus processadores mais caros, incluindo Allen-Bradley e Siemens. Se você quiser capturar mais valores, basta aumentar o tamanho da sua matriz, esta é uma instrução útil, pois faz tudo de uma vez. Aqui está outro método se você não quiser ou não quiser usar uma instrução FIFO. Você ainda precisa ter recursos de movimentação de arquivo e arquivo. A primeira instrução move 9 elementos, deixando espaço para que o valor do sinal atual seja copiado para o primeiro elemento mais recente. Infelizmente para a Quy, sua plataforma de PLC não tem matrizes ou recursos de manipulação de arquivos, então ele teria que fazê-lo da maneira mais difícil. (Seu processador é um Automation Direct DL250-1) 82308230. e assim por diante, até Este leva cerca de 20 instruções para o movimento de 10 valores usando o software Automation Direct. As instruções de MOV cada um precisaria ser substituído por um LD Vxxx e um OUT Vxxx onde o V8217s são o seu sensor de localização de dados desejado valor e local de armazenamento. Estes são acumuladores de 16 bits. Mais más notícias: Temporizadores de automação Direct8217s usam uma base de tempo de 100ms, então você aren8217t vai ser capaz de exceder a taxa de conversão de seus cartões analógicos por muito, se em tudo. As placas analógicas também são provavelmente apenas resolução de 12 bits, se isso também não vai ser muito precisão. Aqui está uma instrução que calcula a média de todos os elementos em uma matriz. Mais uma vez, isso está disponível nos PLCs mais avançados. E o fim do degrau: Este é o método que você precisa usar se você don8217t tem arrays ou uma instrução média. Resuma todos os seus valores e divida pelo número de valores. Leva 21 instruções para 10 valores na plataforma AD. Você pode manter uma média em execução de seus valores desta forma para dois ou três valores de cada vez. Isto poderia, por sua vez, ser lido de volta para outra matriz para um registro em execução de médias para suavização. Este degrau calcula a taxa de mudança ou Delta entre capturas consecutivas. Ele funciona em qualquer plataforma felizmente. Novamente, isso pode ser lido de volta para uma matriz para análise. É útil para determinar a direção da mudança, bem como sua amplitude. Para filtragem, você pode usá-lo para capturar 8220spike8221 valores. Ao analisar sinais pode ser útil para capturar sinais tão rapidamente ou freqüentemente quanto possível, ao contrário de controle e filtragem. O limite será a frequência com que o seu cartão realmente envia um novo valor ao seu registro. Ao capturar lotes de valores em uma matriz, você pode determinar a taxa de atualização da sua placa analógica, ou conversor A-D. Se você tiver uma média de 5 valores idênticos em uma linha com uma taxa de captura de 5ms, seu cartão atualiza a cada 25ms. Além disso, quanto mais rápido você capturar sinais, mais provável será que você registre um 8220spike8221 ou fora do valor de tolerância. Meu próximo tópico, Ladder Logic 402, será sobre o que fazer com esses valores depois de serem analisados juntamente com alguns bons exemplos de filtragem. Como eu mencionei antes, eu estou escrevendo um outro livro, este na programação do PLC. Estes tópicos, juntamente com alguns dos outros na minha Ladder Logic série de posts será lá. Eu estou experimentando com o uso deste tipo de apresentação de imagens lógicas, em vez de usar endereços e registros ou instruções específicas, estou tentando apresentar material de uma forma não específica da marca. Por favor, deixe-me saber se você tiver alguma sugestão para o layout. Ladder Logic 402: Manipulação de Dados e Filtragem Nas últimas weeks8217 post. Eu discuti a aquisição de dados usando um PLC para capturar valores de uma placa analógica. Eu mostrei alguns métodos bastante simples de capturar dados usando métodos FIFO, valores de dados de média e como alguns da lógica ladder poderia ser realizada em diferentes plataformas PLC. Esta postagem discute alguns dos métodos de filtragem de dados e formas de simular um filtro usando o Microsoft Excel antes mesmo de codificá-lo no PLC. Primeiro eu fiz algumas pesquisas on-line para ver que tipo de algoritmos de filtragem as pessoas já estão usando em um PLC. Eu encontrei uma variedade de posts em diferentes fóruns, incluindo plcs. net, plchowto e controle. Houve também respostas e recomendações sobre Linked In fóruns, e até mesmo um novo publicado aqui na semana passada comentários. Primeiramente as fórmulas: Eu usei os mesmos nomes variáveis para todas as fórmulas mesmo que diferissem extensivamente nos vários bornes. Aqui eu uso o seguinte: N Novo valor calculado e substituído pelo valor de entrada. Em outras palavras, o valor filtrado calculado. L O valor de entrada capturado anteriormente. F O valor de filtragem calculado anterior. K O fator manipulado para todos os cálculos (às vezes conhecido como Alpha). I O valor da entrada analógica atual. Média média em execução x número de amostras anteriores, eu usei 3 para x neste exemplo. A fórmula para um filtro de primeira ordem é New Filtered Last Filtered Factor (Entrada 8211 Last Filtered). Isso equivale a NFk (i-F) de acordo com as variáveis I listadas acima. A fórmula real usa Alpha em vez de k. Os resultados desta fórmula são listados como Fórmula 6 abaixo na minha simulação. Para simular um sinal eu listei alguns valores analógicos em uma coluna em uma planilha do Excel. Esses valores são típicos de um sinal analógico assinado de 13 bits a partir de um aviso de cartão PLC que eles aumentam ou diminuem por um fator de oito. Isto significaria que em um 0-10v ou 0-20mA sinal com um intervalo de 0-32.767, haveria 4096 valores possíveis para o sinal. A outra metade do intervalo, -32768 para -1, não pode ser obtida a partir do dispositivo de campo. A primeira coluna mostrada acima são os valores de entrada que eu entrei. O valor de 20168 simula um pico de ruído grande que você pode querer filtrar, semelhante ao descrito por Quy Phan em sua pergunta. As seguintes colunas mostram resultados depois de usar as várias fórmulas de filtragem que encontrei durante a pesquisa. A razão pela qual a coluna de entrada tem valores anteriores é assim que eu poderia usar uma média em execução de até cinco valores em minhas fórmulas. Fórmula 6 (o que eu normalmente uso) também precisa usar o valor anterior filtrada, de modo that8217s por isso que tem um valor extra em que também. Esta é uma chave com as variáveis listadas e as fórmulas. Os valores k estão ligados às células utilizadas na tabela, para que eu possa alterá-las conforme necessário. Estes são os primeiros três resultados de formula8217s e estes são os próximos três. Como você pode ver, Fórmula 1 realmente parece que torna o sinal pior. Este foi listado no plcs. net eu tentei mexer com colchetes eo valor k mas didn8217t parecem ajudar. Na descrição, o escritor disse que k era o número de amostras a serem filtradas, mas qualquer número inteiro positivo era um desastre, então desisti. Fórmula 2 e Fórmula 4 fez quase as mesmas coisas nas instruções Fórmula 2 foi 8220k1.0, sem filtragem, k0, saída freezes8221. As instruções da Fórmula 48242s dito 8220k1.0, sem filtragem, 2.0, 4.0 e 8.0 dão quantidades crescentes de filtragem com mais amortecimento, mas mais atraso8221. Fórmula 3 é uma média em linha reta, e parece realmente funcionar muito bem. Eu usei os dois valores atuais e anteriores para uma média de três, quando usando mais havia mais lag. Fórmula 5 também usa uma média de corrida. Eu usei três amostras na média também, mas eu acredito que a intenção era usar quatro ou cinco. Quando eu fiz, a reação atrasada (lag) piorou. Como eu mencionei, a definição formal de um filtro de primeira ordem é o que eu usei no passado. Isto é representado pela Fórmula 6. Às vezes isso é conhecido como um filtro de primeira derivada se os pontos são equiparados a posição, isso representaria um filtro baseado em velocidade. Um filtro de segunda ordem, então, representaria Accel / Decel e um filtro de terceira ordem iria representar 8220jerk8221. Os filtros funcionariam fora do delta entre os valores atuais e anteriores. Eu não sei muito sobre o controle de processo, então não tenho certeza de como a segunda e terceira derivados podem se relacionar com o fluxo ou a temperatura. No último post de week8217s, Karl Newman descreveu um filtro de média móvel simples com uma sugestão de fórmula. Eu quis começar este borne terminado antes de dirigir fora a Los Angeles esta semana, assim que eu didn8217t começ uma possibilidade tentar o. Ele diz que não tem requisitos de armazenamento de dados, mas é claro para calcular novas ou obter médias antigas, você tem que manter valores médios anteriores. Tenho a intenção de experimentá-lo na minha planilha, mas espero Karl vai me informar o que ele quis dizer com nenhum armazenamento de dados. O ponto principal que eu espero transmitir com esta postagem é que você pode simular fórmulas muito facilmente no Excel, você pode querer verificar as coisas antes de codificá-lo para o PLC como ilustrado pela Fórmula 1. Colocar uma fórmula em forma de PLC irá variar um Lote entre plataformas. Na lógica ladder, um comando de tipo 8220calculate8221 permite que você digite a fórmula diretamente, embora você ainda precise usar FIFOs como descrito na semana passada, especialmente ao calcular a média. Texto Estruturado também é uma boa opção se sua plataforma tem. Siemens STL (lista de declarações) também torna mais fácil. Novamente, Quy Phan8217s tarefa vai ser um pouco mais difícil e levar mais tempo com a sua Automação Direct DL205. Há uma grande quantidade de LOAD e OUT necessária quando se utiliza pilha baseada lógica e matemática. Ele também precisará determinar uma constante de tempo adequada para a aquisição de dados. Posso abordar o que é preciso para transformar essas fórmulas em escada em uma data posterior. Como este é um dos meus primeiros tópicos avançados, a maioria de vocês com experiência já sabe como fazer isso, mas para aqueles apenas aprendendo isso poderia ser um exercício útil. Olá de Sunny Los Angeles, 14 de março de 2016 Estou atualizando este post com um pouco de escada como eu mencionei na semana passada. Isso usa a fórmula 6 da planilha. Abaixo está a maneira fácil, se o seu software tem uma instrução que permite que você digite uma fórmula completa: E aqui está a maneira um pouco mais difícil, fazendo cada instrução matemática seqüencialmente e salvar valores em valores intermediários 8220scratchpad8221. Ainda não muito bad8230 Mais uma vez, isso é em resposta ao Quy8217s problema original de filtragem em um DL205 Automation Direct. Algumas coisas para adicionar a este código nessa plataforma. 1. Os endereços não são tags, eles são 16 bits numerados octalmente registros, como V7020-V7027. Como a maioria das matemáticas no meu exemplo de filtro usa números REAL ou Floating Point, o valor analógico terá que ser convertido de Integer para REAL, usando vários registros intermediários. REALs, claro, preencher dois endereços de 16 bits cada, por isso tenha cuidado sobre a reserva de espaço. 2. As funções de matemática e de movimentação won8217t se parecem com isto, elas exigirão os comandos Double Vxxx e OUT Double VXXX da LOAD. As instruções não poderão ser colocadas em série, mas sim devem estar em paralelo ou usar degraus separados. 3. Temporizadores executados em uma base de tempo de 100ms, por isso será difícil de amostra de forma repetitiva e precisa. Veja o post da semana passada para saber por que isso pode ser um problema. Também a coleta de dados para analisar a sua planilha será a codificação mais difícil. Idealmente você iria amostra em 10-20ms para analisar o seu sinal, mas filtro em uma taxa mais lenta, digamos 100-200ms. É engraçado, eu coloquei isso em alguns fóruns ligados em um par de dias atrás e tenho obtido algumas respostas interessantes, como 8220MS Excel não é compatível com Ladder Logic8221. Hmmm8230 não tenho certeza se o post foi lido corretamente, eu acho que é por isso que eu coloquei na série 400. Me desculpe por isso. O Excel é usado apenas como uma ferramenta de análise aqui. Embora apenas por diversão, confira este post de vários anos atrás, na verdade você pode escrever código importável no Excel em AB, arquivos XML são diretamente importáveis e facilmente convertidos de um arquivo L5X para escada, enquanto na Siemens, ele pode ser importado como STL (Lista de Contas) e convertido em escada eu aposto que você pode fazer isso em algumas outras plataformas também. Eu também tenho algumas sugestões mais fórmula para experimentar. Mantenha-os próximos, como eu mencionei, estou trabalhando em um avançado livro de programação PLC e apreciar a entradaIntrodução para a série HMC7000 1 min. 44 seg. Novo para a linha de produtos HMC7000 Este vídeo apresenta os vários modelos e recursos disponíveis. Usando MAPware-7000 5 min. 26 seg. Saiba mais sobre a operação básica ea instalação do software de configuração para a Série HMC7000. Criação de Tela e Tag 6 min. 22 seg. Explore os tipos de telas que você pode criar e como atribuir nomes de tag para registrar e coil memória que você usará. Configure mensagens predefinidas (alarmes) que serão exibidas quando uma condição for verdadeira. Use o objeto Lista de alarmes para exibir alarmes em tempo real ou como uma lista histórica. Medidores e Gráficos de Barras 4 min. 09 seg. Tornar os dados vistos pelo operador mais intuitivos usando um medidor analógico ou um gráfico de barras. Objetos Básicos e Propriedades de Animação 4 min. 47 seg. Crie gráficos simples usando ferramentas de desenho, importar bitmaps ou criar rótulos com os objetos de texto. Aprenda a empregar efeitos de animação como cor, animação em flash ou visibilidade. Registrador de dados e exibições de tendência 10 min. 27 seg. Capturar dados com base em uma fonte acionada ou intervalo de tempo usando o recurso Data Logger e, em seguida, exibir esses dados usando um gráfico de tendência em tempo real ou histórico. Idiomas múltiplos 8 min. 58 seg. Configure um projeto com vários idiomas. Botões rápidos e multi-tarefa 6 min. 20 seg. Executar operações simples, como exibir uma nova tela ou janela popup, alternar um switch, ou escrever um valor para um registro usando botões rápidos. Utilize botões de tarefas múltiplas para operações complexas que requerem várias etapas. Ler e Escrever Objetos 7 min. 23 seg. Representar valores de dados em registros ou bobinas usando legendas de texto predefinidas ou exibir o verdadeiro valor numérico. Objetos de entrada de dados suportam muitos formatos, incluindo assinado, ponto flutuante, ou formatos ASCII. Tarefas e teclas de função 2 min. 21 seg. Saiba quais são as tarefas e em que condições elas podem ser executadas. Este vídeo também entra em alguns detalhes sobre como funcionam as teclas de função. Valor médio 2 min. 02 seg. Esta instrução simplesmente resume os valores em uma série de registros consecutivos e, em seguida, divide pelo número de registros para obter a média. Média móvel 6 min. 30 seg. Este vídeo demonstra como calcular um valor de média móvel que leva esse n (1-64) número de varreduras de um registro e calcula o valor médio, em seguida, armazena esse valor em outro registrador. Filtro digital 9 min. 57 seg. Semelhante à função de Média Móvel, o Filtro Digital registra o valor atual eo último valor escaneado de um registrador, então escreve um novo valor com base em uma ponderação chamada constante do filtro. O valor calculado estará em algum lugar entre os dois valores registrados. Esta função é tipicamente usada para filtrar o ruído de sinal que pode estar vindo de uma entrada analógica. Data Log Upload 6 min. 05 seg. Carregue os dados coletados usando o recurso Data Logger para uma unidade flash USB conectada à unidade. Gerador de funções 2 min. 31 seg. Observe este tutorial para ver como tirar uma tabela de valores de coordenadas XY e usá-lo para calcular um novo ponto de dados Y para qualquer dado ponto de dados X. Explica as duas funções Proportional Integral Derivative (PID) no MAPware-7000. Determine se o valor de um registro de dados cai abaixo de um determinado limite inferior. Se o valor estiver acima do limite inferior, então esse valor é copiado para um terceiro registrador. Caso contrário, é utilizado o valor limite inferior. Valor Máximo / Mínimo 3 min. 23 seg. Determine o valor máximo ou mínimo em um conjunto de registros de dados. Determine se o valor em um registro de dados excede um determinado limite superior. Se o valor estiver abaixo do limite superior, então esse valor é copiado para um terceiro registro. Caso contrário, é utilizado o valor limite superior.
Comments
Post a Comment