top of page
Search

Exemplo de utilização de Algoritmos de Ordenação

Updated: Mar 3


Em estrutura de dados, falamos muito de algoritmos de ordenação, alguns são simples de serem implantados outros um pouco mais complexos e dependendo do CLP escolhido não são possíveis, para o alívio alguns CLP’s possuem funções de ordenação.

Agora, onde na prática poderíamos utilizá-los, bom além dos exemplos clássicos onde ordenamos número de ordens de produção, ou de ID de peças/produtos para exibição em tela ou envio de informações para sistemas supervisórios etc. Podemos também, utilizá-los para auxiliar em funções dentro do processo.


Para esse exemplo iremos fazer um filtro de sinais analógicos, se você não sabe o que seria implementar um filtro de sinais analógicos, aconselho a leitura do bom artigo do Luiz Costa: https://www.linkedin.com/pulse/automa%C3%A7%C3%A3o-industrial-implementando-um-filtro-digital-arruda-costa/?originalSubdomain=pt


Para a implementação do filtro de sinais analógicos existem 3 passos:

  1. Coleta de Dados

  2. Ordenação de dados

  3. Obtenção do Valor médio.

Como podemos ver, nossos algoritmos de ordenação serão a resposta para o passo 2 dessa solução.


Para exemplificar de forma prática, iremos utilizar o algoritmo de ordenação Bubble Sort e Insertion Sort, esses dois algoritmos são de fácil implementação e tem um desempenho satisfatório em ordenações com poucos elementos.


Algoritmo Bubble Sort


Bubble sort é o algoritmo mais simples, mas o menos eficiente. Neste algoritmo cada elemento da posição i será comparado com o elemento da posição i + 1, ou seja, um elemento da posição 2 será comparado com o elemento da posição 3. Caso o elemento da posição 2 for maior que o da posição 3, eles trocam de lugar e assim sucessivamente. Por causa dessa forma de execução, o vetor terá que ser percorrido quantas vezes que for necessária, tornando o algoritmo ineficiente para listas muito grandes.

Esquema de funcionamento do Buble Sort


  • É verificado se o 3 é maior que 5, por essa condição ser falsa, não há troca.

  • É verificado se o 5 é maior que 1, por essa condição ser verdadeira, há uma troca.

  • É verificado se o 5 é maior que 2, por essa condição ser verdadeira, há uma troca.

  • É verificado se o 5 é maior que 4, por essa condição ser verdadeira, há uma troca.

  • O método retorna ao início do vetor realizando os mesmos processos de comparações, isso é feito até que o vetor esteja ordenado.


ree














Exemplo de Bubble Sort em texto estruturado usando Siemens SCL:

ree













Outro exemplo, em texto estruturado utilizando interação do tipo “Para”(FOR).

ree














Algoritmo Insertion Sort


O Insertion sort é um algoritmo simples e eficiente quando aplicado em pequenas listas. Neste algoritmo a lista é percorrida da esquerda para a direita, à medida que avança vai deixando os elementos mais à esquerda ordenados.

O algoritmo funciona da mesma forma que as pessoas usam para ordenar cartas em um jogo de baralho como o pôquer.

ree














Esquema de funcionamento do Insertion Sort

  • Neste passo é verificado se o 5 é menor que o 3, como essa condição é falsa, então não há troca.

  • É verificado se o quatro é menor que o 5 e o 3, ele só é menor que o 5, então os dois trocam de posição.

  • É verificado se o 2 é menor que o 5, 4 e o 3, como ele é menor que 3, então o 5 passa a ocupar a posição do 2, o 4 ocupa a posição do 5 e o 3 ocupa a posição do 4, assim a posição do 3 fica vazia e o 2 passa para essa posição.

O mesmo processo de comparação acontece com o número 1, após esse processo o vetor fica ordenado. Exemplo de Insertion Sort em texto estruturado usando Siemens SCL:

ree











Esse foi apenas um exemplo de onde podem ser aplicados algoritmos de ordenação, alguns CLPs como Controllogix da Rockwell possuem funções de ordenação (SRT), a Siemens possui funções de ordenação na Biblioteca LGF, Codesys tem o InsertedSort, porém muitas vezes não será o suficiente em virtude do tipo de dado que você quer organizar, que as vezes não é suportado ou a plataforma não possui um função de ordenação, por isso a importância de saber sobre esses algoritmos e avaliar qual será o mais interessante para você utilizar.


Abaixo um vídeo que eu gravei alguns anos atrás para esse artigo




Link para a biblioteca LGF Siemens usada para o artigo.



Até o próximo post!

 
 
 

1 Comment

Rated 0 out of 5 stars.
No ratings yet

Add a rating
Guilherme C
Guilherme C
Dec 09, 2024
Rated 5 out of 5 stars.

Excelente conteúdo Paulo. Parabéns pela iniciativa.

Like

Sobre Nos

SOCIALS 

Participe do nosso Grupo:

Telegram e  WhatsApp.
 

SUBSCRIBE 

PLC com Engenharia de Sofware nasceu de um grupo de WhatsApp, que teve suas origens em 2018 em outro grupo, e criado oficialmente em 2020. Depois de solicitação seus participantes e outras pessoas que gostam do trabalho, vem a criação desse Blog para trazer alguns artigos, apostilas e tamém sempre que possível notícias.

Se inscreva para receber notificações de novas postagens!

Obrigado por sua Inscrição

© 2035 by FEEDs & GRIDs. Powered and secured by Wix

bottom of page