Carregando o progresso local…
PLC Gym
Início do PLC GymNível 1, 0 XP · seu progresso
Missão 58 · PRO (exige o Pro)

Exercício de Média das últimas quatro leituras: média móvel

Suavize um nível ruidoso. Guarde quatro leituras e deixe cada leitura nova substituir a mais antiga.

Calcule SmoothedLevel como a média das últimas quatro leituras de Level. Guarde-as em Readings, um array REAL com quatro posições, de 0 a 3. Enquanto Sample estiver em ON, faça uma leitura por varredura. Coloque-a na posição que WriteIndex aponta e depois avance WriteIndex uma posição. Depois da posição 3, volte WriteIndex a 0, para que a leitura mais nova substitua a mais antiga. Some as quatro posições com um laço FOR e divida por 4.

Esta missão faz parte do ProCrie uma conta grátis: toda conta tem um teste do Pro grátis até 5 de dezembro.

Sem cartão. Nada a pagar. Nada a cancelar.

Official release: 5 December. Fique em primeiro no ranking no dia e ganhe 3 meses de Pro, mais 2 semanas de Pro para dar a um amigo. O 2º lugar ganha 4 semanas. O 3º lugar ganha 2 semanas. Regras

  • Todas as aulas, do zero
  • Todas as missões e lições, conforme você sobe de nível
  • Um teste prático para cada título, com certificado
  • Rebobine qualquer teste, uma varredura de cada vez
  • Soluções comentadas quando você travar
  • O conversor de código, à vontade
A máquina 3D tanque de processo em que esta missão é executadaPRO (exige o Pro) missão
Como o teste roda

Quatro leituras enchem a janela

Teste 1 de 4
Definido pelo testeVerificado pelo testePasso 6 de 6 · 120 ms
Level
Aplicado
Tempo
Sobre 15 min
Recompensa
+350 XP
Bancada
tanque de processo em 3D
Siemens editores
SCL
Rockwell editores
Texto estruturado
Beckhoff editores
Texto estruturado
Etapa
18. Manter as leituras mais recentes
Comportamento exigido

Média das últimas quatro leituras: o que o seu código deve fazer

Uma leitura de nível ruidosa fica pulando. Suavizá-la impede que a lógica seguinte reaja a cada oscilação. Tendências mostra Level e SmoothedLevel lado a lado, varredura por varredura. Esta é a primeira de duas missões sobre o mesmo filtro. Aqui a janela, o número de leituras de que você faz a média, é fixa em quatro. As quatro posições começam em 0.0, então os três primeiros resultados ficam baixos. A próxima missão corrige isso e deixa a janela mudar de tamanho. Seu filtro só calcula um número para a lógica seguinte. Ele não liga a bomba nem a válvula.

Sample
Sample em ON faz uma leitura de Level por varredura. Sample em OFF mantém SmoothedLevel como está.
Guardar e dar a volta
Cada leitura vai para a próxima das quatro posições. Depois da quarta, volte para a primeira, para que a leitura mais nova substitua a mais antiga. Como você organiza o buffer fica a seu critério.
Média
Depois de cada leitura, SmoothedLevel é a soma das quatro posições dividida por 4. Mantenha as casas decimais.
As três primeiras leituras
As quatro posições começam em 0.0, e SmoothedLevel também. Uma posição vazia ainda conta como 0. Então, com só 10% e 30% guardados, o resultado é 10%: 40 dividido por 4.
Tabela de tags

Média das últimas quatro leituras: entradas e saídas

Seu programa lê 2 entradas e define 1 saída. Os nomes são os mesmos no editor de qualquer fabricante.

TagTipo de dadoSeu códigoO que significa na máquina
LevelREALLêUma entrada de que o seu código precisaNível do tanque, %
SampleBOOLLêUma entrada de que o seu código precisaEnquanto ON, faça uma leitura de Level a cada varredura.
SmoothedLevelREALEscreveUma saída que o seu código defineMédia das últimas quatro leituras, em %.

No SCL da Siemens, escreva as tags do próprio bloco com # na frente, como faz o TIA Portal: #Level. Rockwell e TwinCAT use só o nome: Level.

Testes automáticos

Média das últimas quatro leituras: o que os testes verificam

  1. Depois de cada leitura, SmoothedLevel é a soma das quatro posições dividida por 4. Mantenha as casas decimais nas leituras.
  2. A quinta leitura substitui a primeira, e assim por diante dando a volta nas quatro posições, não importa quantas leituras cheguem.
  3. Com Sample em OFF, a média fica parada. Com Sample mantido em ON, cada varredura acrescenta uma leitura.
  1. Teste Use os botões abaixo do modelo e veja a bancada responder.
  2. Testar solução Todas as verificações rodam no seu código com um toque.
  3. Rebobinar PRO (exige o Pro) Se uma falhar, volte por ela uma varredura de cada vez para ver o porquê.

Travado nesta missão? Pergunte aos membros no Vestiário.

Por que importa

Onde você veria isto em campo

Ondulações na superfície fazem a leitura de nível de um tanque de fábrica pular. O operador quer um número mais estável na tela.

Fazer a média das últimas quatro leituras suaviza as ondulações. Uma leitura deixada na posição errada, ou nunca substituída, gera um número falso que esconde uma mudança real.

Onde você encontraria istoProduzir um lote de bebida

Em uma fábrica de bebidas, válvulas deixam entrar quantidades medidas de água e xarope em um tanque de mistura. Um misturador elétrico junta tudo em um lote. Depois, uma válvula de saída manda a bebida para um tanque pulmão. As máquinas de envase engarrafam a partir dali.

  1. Tanques de ingredientesGuardam a água e o xarope
  2. Tanque de misturaEncher, misturar e medir um loteVocê está aqui
  3. Tanque pulmãoMantém a bebida pronta à espera
  4. Envasadora de garrafasColoca a bebida nas garrafas
Em uma instalação real: lugares, peças e segurança
  • Fábrica de bebidas: misturar água e xarope
  • Fábrica de tintas: misturar ingredientes para obter uma cor uniforme
  • Estação de tratamento de água: preparar uma mistura química medida
  • Cervejaria: aquecer água para lavar equipamentos

Um tanque cheio não fecha a própria entrada. A água continua chegando até a válvula fechar, então uma entrada aberta pode inundar a sala.

Um aquecedor que não está coberto por líquido pode superaquecer. Tanques de verdade têm dispositivos de segurança separados além do programa do CLP.

Os tamanhos, tempos e cortes são escolhas didáticas, não o desenho de uma instalação real em particular.

Continue

Próximo na trilha