+1 500 000 produtos na nossa oferta
6000 encomendas enviadas diariamente
+300 000 clientes de 150 países
Data de publicação: 18-03-2021 🕒 14 min de leitura
Nas partes anteriores do artigo, aprendemos a executar o programa easyE4 e a enviar dados ao transmissor. Também executámos a interface de utilizador e testámos o seu funcionamento. Ficou a faltar apenas o uso do software para utilizar os sensores (barreiras de luz), reconhecendo a direção do movimento da pessoa e gerando um impulso para aumentar ou diminuir, no contador, o número atual de pessoas no espaço. Com base nisso, vamos controlar o funcionamento de um alarme de 2 câmaras ou um interruptor de iluminação, ventilação, etc.
Na automação industrial, podemos encontrar muitos exemplos de detetores de direção de movimento. Alguns fabricantes de semicondutores produzem circuitos integrados que, quando conectados a um codificador incremental, emitem formas de onda que especificam a direção de rotação e a sua velocidade. Este codificador tem duas saídas (A e B), em que o sinal B está ± 90 graus desfasado do sinal A. Em princípio, é possível usar um sistema deste tipo ou uma solução discreta (construída com portas e registos), mas deve lembrar-se de que, apesar da sequência semelhante de formas de onda nas entradas do relé programável, as pessoas podem comportar-se de forma errática e imprevisível.
Recordemos as Figuras 3 e 4 da primeira parte do artigo, que mostram a sequência de sinais nas saídas da barreira de luz e, portanto, nas entradas do relé de controlo easyE4, quando uma pessoa entra ou sai da divisão. Ambas as figuras mostram a situação ideal, em que ocorreu toda a sequência de sinais, mas em condições reais pode não ser assim. Uma pessoa dentro do alcance do sensor 1 pode mudar de opinião e retroceder. Também pode aparecer no alcance do sensor 2, contornando o sensor 1, etc. A nossa solução deve ser resistente a tal comportamento das pessoas contadas e, pelo menos, não suspender o funcionamento do medidor, mas reiniciar o processo e reagir corretamente quando detetar outra pessoa.
O detetor de direção de movimento mais simples pode ser construído com o uso de um registo tipo D. Conectamos uma barreira 1 à entrada de informação desse registo, e uma barreira 2 à entrada do relógio. Colocamos as barreiras de tal forma perto uma da outra que o objeto, que vem do lado do sensor 1, primeiro causa a ocorrência de um 1 lógico na informação de entrada e depois, com 1, na entrada D, a ocorrência de um flanco ascendente na entrada do relógio, que reescreverá o 1 desde a entrada de informação até à saída do registo. Ao mover-se do lado do sensor 2, aparecerá primeiro um impulso de relógio, que reescreverá o 0 lógico da entrada do registo D à saída Q. Desta forma, conseguimos reconhecer a direção do movimento e controlar a entrada da direção de contagem. Uma questão à parte é o facto de que o impulso de relógio deve ocorrer apenas quando se estabelece o estado da saída do registo D. Pode ser usado o impulso presente na entrada de relógio do registo D, mas deve ser adicionada uma rota de retardamento para que este impulso tenha em conta o tempo de propagação do registo. Vejamos agora uma situação em que uma pessoa entra no alcance do sensor 1 e se retira. Isto não deveria ser um problema, dado que o impulso apareceu apenas na entrada de informação do registo e não alterará o seu estado de saída. No entanto, a situação é mais complexa, porque tal entrada/saída do alcance operacional será identificada como um ciclo completo. Portanto, o nosso sistema de deteção de direção de movimento tem não só de responder à sequência completa de sinais, como também gerar um impulso mais/menos para o contador, se esta sequência não estiver completamente implementada, isto é, não houver impulsos em ambas as entradas do relé programável, incluindo I01 e I02, utilizados para o acidente.Ao implementar o detetor da direção de movimento das pessoas, assumiu-se que teria duas saídas de relógio, as quais, tal como os botões “direita”/“esquerda” ou “cima”/“baixo” usados neste programa, gerará impulsos de relógio nas duas saídas separadas. Uma destas saídas aumentará o contador e a outra diminui-lo-á. A emissão de sinais para o bloco contador será gerida por portas lógicas situadas numa rede juntamente com o contador. Além disso, o detetor será insensível a uma eventual “intermitência” do sinal presente nas suas entradas. O sinal mais/menos apenas será gerado quando cumprida a seguinte sequência:
O melhor método para evitar a “intermitência” da forma de onda de entrada é utilizar o disparador RS. Tem a vantagem de, depois de aplicar tensão à entrada configurando a saída (SET) ou reiniciando (RESET) o flip-flop, permanecer num estado estável, independentemente de se o nível lógico na entrada SET muda ou não. No detetor de direção de movimento proposto, são utilizados flip-flops RS em ambas as entradas do relé easyE4 (I01, I02). Estão configurados a um nível de tensão alto na entrada adequada e permanecem configurados até serem reiniciados.
Idealmente, o impulso de reinício para ambos os flip-flops RS deve ser o impulso de entrada do contador, já que recebê-lo significa que o ciclo de receção da direção do movimento foi corretamente concluído, o detetor gerou um impulso para o contador e está pronto para a sequência de sinais seguinte. No entanto, a pessoa a contar pode entrar no alcance de funcionamento de um dos sensores ou entre eles e, nesse caso, apenas um dos sinais aparecerá na entrada do relé inteligente, não os dois necessários para a deteção adequada. Então, como reestabelecer os flip-flops de entrada e qual deles? É melhor reestabelecer ambos assim que tiver passado um tempo de ciclo curto. Esse tempo, nas soluções de software ou hardware, é o denominado time out ou tempo de espera de operação.
Uma das vantagens de programar com um esquema de blocos de funções (FBD) é a capacidade de definir blocos de utilizador. Graças a isso, pode não só definir os seus próprios blocos e usá-los várias vezes em vários esquemas, mas também usar soluções de hardware concebidas por colegas ou fabricantes, disponíveis em fóruns de Internet e outros. Para as nossas necessidades e como parte do exercício, vamos criar um bloco de utilizador que contenha um flip-flop RS simples composto por duas portas NAND. O seu esquema é apresentado na Figura 1. Na nossa aplicação, vamos precisar de um flip-flop ativado por um nível alto, pelo que vamos adicionar inversores (barreira NOT) às suas entradas.
Figura 1. Flip-flop RS construído com barreiras NAND
Para executar um módulo de utilizador, selecione a opção do menu Programa –> Criar módulo de utilizador. Também pode utilizar o ícone de acesso direto (símbolo de porta com um asterisco na barra do menu) ou clicar com o botão direito em Módulos de utilizador, debaixo da lista de módulos do fabricante. Depois de clicar na opção do menu, abrir-se-á uma janela, como na Figura 2. Introduzimos o nome do nosso módulo (p. ex., RS) e, muito importante, o número e tipo de entradas/saídas. Agora só precisamos de 1 saída binária e 2 saídas.Para criar um módulo de utilizador, selecione a opção do menu Programa –> Criar módulo de utilizador. Também pode utilizar o ícone de acesso direto (símbolo de porta com um asterisco na barra do menu) ou clicar com o botão direito em
Módulos de utilizador , debaixo da lista de módulos do fabricante. Depois de clicar na opção do menu, abrir-se-á uma janela, como na Figura 2. Introduzimos o nome do nosso módulo (p. ex., RS) e, muito importante, o número e tipo de entradas/saídas. Agora só precisamos de 1 saída binária e 2 saídas.
Figura 2. Janela de propriedades do módulo de utilizador
O módulo de utilizador construído por nós será composto por apenas alguns elementos: duas portas, contactos na entrada e bobinas na saída. Também vai precisar de um adesivo para conectar a entrada à saída. Uma única rede é suficiente para um número tão reduzido de componentes.
Seria mais conveniente realizar as ligações como se mostra no esquema, mas isso não é possível. Os elementos são ordenados um atrás do outro pelo software, pelo que temos de planificar a sua disposição “fixa”. É melhor começar a empilhar blocos de utilizador com o elemento NAND inicial. Uma das suas entradas está conectada à saída do segundo elemento NAND e a um contacto. Conectamos dois contactos à entrada do primeiro NAND. O pino de saída permanece: conectamos duas bobinas à segunda porta NAND. Agora vamos tratar das propriedades dos contactos e bobinas individuais:
As propriedades do contacto para o sinal RESET mantiveram-se: Tipo: Entradas e saídas e etiquetas binárias; Comentário: RESET; Tipo de lógica: normalmente fechado; Argumento: I – Entrada; Número: 2.
O módulo funcional criado por nós deve parecer-se com o da Figura 3.
Figura 3. Módulo de função do flip-flop RS
Clique no separador com o nome do módulo criado por nós e selecione Fechar. O ambiente de programação vai pedir-lhe para guardar o módulo no disco; confirme e dê ao módulo um nome selecionado. A partir deste momento, a definição que fizemos está disponível na lista de módulos e pronta a usar.
A capacidade de definir módulos é uma grande ferramenta. Com a sua ajuda, pode criar uma biblioteca de soluções prontas a usar, que simplificarão significativamente a criação de novos programas e também poderão facilitar o trabalho da nossa equipa ou dos nossos colegas. Também pode dividir o trabalho dentro da equipa: deixe que cada um faça e teste o elemento selecionado, que depois será combinado num todo coerente. Em aplicações simples, um controlador easyE4 da Eaton não será necessário, mas é um bom hábito de trabalho que pode ser muito útil em projetos mais complexos.
Para compreender o trabalho do detetor de direção de movimento, vale a pena abrir o programa disponível nos materiais adicionais do artigo. É possível pôr as imagens de todas as redes descritas, mas é mais conveniente vê-las (e às conexões entre elas) enquanto se lê no ecrã do ambiente de desenvolvimento easySoft 7. Em caso de dúvida ou se a descrição for mais longa, pode executar o simulador e observar como se comporta o programa quando clica nele. Sobretudo porque não é fácil descrever o funcionamento de redes individuais (que por vezes contêm uma única porta) de forma isolada entre si.
O esquema do detetor de sentido de tráfego começa com o número de rede 0010. Do número de rede 0010 ao 0016 há elementos lógicos correspondentes à operação da entrada I01, ao passo que do 0017 até ao final, à rede 0023, elementos que suportam a entrada I02. Ambas as partes são simétricas e estão modeladas num detetor de sequência de impulsos (detetor de quadratura) com um disparador tipo D. Como os detetores de quadratura funcionam com sinais que estão desfasados 90 graus, e o contador de pessoas deve responder às sequências “no – I01 – no – I02 – no” ou “no – I02 – no – I01 – no”, foram adicionados flip-flops RS para recordar estados de entrada, proteger contra oscilações de tensão nas entradas e gerar o desfasamento necessário no detetor de quadratura.
Os temporizadores que medem o tempo de espera da operação – que geram um impulso de reinício dos flip-flops RS de entrada e saída e portas que bloqueiam os impulsos de entrada até que os flip-flops sejam reiniciados, isto é, estejam prontos para o ciclo de deteção seguinte – foram adicionados a ambos os flip-flops. Os elementos individuais estão dispostos e conectados nos esquemas tal como foi anteriormente descrito, pelo que não faz sentido voltar a fazê-lo. É melhor analisar o trabalho do detetor com base num simulador iniciado, pressionando o botão Simulação. Infelizmente, o esquema no easySoft 7 tem de ser dividido em pequenas redes e, como tal, é difícil de analisar. Portanto, a pessoas curiosas que queiram explorar o tema, é aconselhável imprimir redes individuais e desenhar um esquema composto por portas lógicas. Dessa forma será fácil distinguir os elementos do disparador D e separá-los das funções adicionais de bloquear e reestabelecer os flip-flops.
Do ponto de vista do utilizador, é conveniente que, em caso de falha da fonte de alimentação, não seja necessário voltar a introduzir a configuração, mas apenas corrigir eventualmente o valor atual do ecrã. Na aplicação descrita, para este propósito, devemos recordar e restaurar o conteúdo de dois contadores, que são os módulos C01 e C02.
O criador do ambiente de desenvolvimento chamou à propriedade de recordar e restaurar o estado dos módulos ou etiquetas remanência. Para ler mais sobre isto, vale a pena usar o menu “Ajuda” disponível depois de selecionar “?” na barra do menu (também pode pressionar F1). No campo “Pesquisar”, insira a palavra “remanência”. Também pode consultar o manual de utilizador disponível no mesmo menu.
A memória de 400 bytes destina-se aos bytes remanentes, isto é, é restaurada depois do arranque. Provavelmente é um circuito integrado separado ou um fragmento da memória do processador, alimentado por uma fonte separada, por exemplo, um supercondensador ou uma bateria. Conforme escrito no menu de ajuda para o módulo contador “C”, guardar/restaurar o seu estado requer 4 bytes de memória, pelo que dois contadores podem facilmente caber em 400 bytes.
Para habilitar as opções guardar/restaurar o conteúdo do contador, clique no botão “Projeto” no canto inferior esquerdo. Em seguida, selecione a opção “Configuração do sistema”. O terceiro campo da esquerda é “Remanência” (Figura 4). Neste momento, vale a pena prestar atenção ao valor no campo “Livre”; o exemplo mostra um valor de 400 bytes. Cada módulo contador “C” requer 4 bytes.
Figura 4. Campo de “Remanência”
Para a aplicação descrita, o conteúdo dos módulos contadores C01 e C02 é importante, pelo que no campo de valor junto a “C” insira “01” e no seguinte “02”, como na Figura 5. Outros campos, como os módulos de contador de alta velocidade “CH”, o módulo de contador incremental “CI”, o módulo de dados “DB” e o módulo de relé de tempo “T”, são omitidos. Neste momento, também não vamos tratar das etiquetas (MW, MB, MD). É fácil notar que, depois de inserir o alcance corretamente, o valor de “Livre” diminuiu em 8 bytes, ou seja, tanto quanto necessário para recordar dois módulos de contadores.
Figura 5. Campo de “Remanência” depois de introduzir a configuração dos contadores C01 e C02
O ambiente de programação easySoft 7 tem um simulador incorporado que lhe permite verificar o funcionamento do programa, bem como ver o estado das entradas, saídas e níveis lógicos em elementos individuais do diagrama FBD. O uso do simulador dá-nos a oportunidade de testar o funcionamento do programa e encontrar erros, ainda que, por razões óbvias, estas não sejam exatamente as condições de funcionamento da nossa aplicação na realidade. Agora vamos utilizar um simulador para testar o funcionamento da aplicação de contador de pessoas.
O simulador é iniciado ao clicar no botão “Simulação” situado à esquerda, na parte inferior da janela do ambiente do easySoft 7. Simulando o trabalho do medidor, vamos deixar a maioria dos parâmetros como estão e não vamos configurar nenhum filtro, mas o simulador tem possibilidades muito interessantes, que em vão se procuram em produtos comparáveis da concorrência. Além de configurar filtros, permite, por exemplo, utilizar um osciloscópio virtual que apresentará as formas de onda dos sinais selecionadas. Testemos as suas capacidades, controlando o programa que construímos.
Com o programa “Contador de pessoas v11.e70” aberto, clique no botão “Simulação”, depois expanda a lista Mostrar em cima e clique na Janela de argumentos + osciloscópio. À direita, a Janela de argumentos + osciloscópio estará vazia. Clique no símbolo de asterisco (*) na coluna Argumento e introduza M05. Junto a ele, na coluna Comentário, deverá ver IMPULSOS PARA CIMA. Ao clicar na coluna Osciloscópio, aparecerá o sinal da marca de verificação e um canal do analisador lógico como se estivesse na janela do Osciloscópio. Da mesma forma adicionamos: M04 (IMPULSOS PARA CIMA), I01 (INPUT 1) e I02 (INPUT 2). Deveremos obter o efeito apresentado na Figura 4.
Figura 6. Ecrã do osciloscópio depois da configuração
Iniciamos o simulador, pressionando F9 ou selecionando a opção do menu Simulação –> Start. No menu, selecione Osciloscópio –> Início de registo (ou use o ícone correspondente na barra de ferramentas, um quadrado com um círculo vermelho). No lado esquerdo do ecrã, a lista de visualização deverá expandir-se. Clique em Ecrã + botões. Na parte inferior da janela, abrir-se-á o ecrã de trabalho da nossa aplicação de contador e aqui, usando os botões direito/esquerdo, estabeleça o valor PERMITIDO num valor maior do que 0, por exemplo 5, como na Figura 5. Agora clique em Ecrã –> Entrada digital e depois, consecutivamente, duas vezes no quadrado junto a 1: ENTRADA 1 e 2: ENTRADA 2.
Figura 7. Ecrã do contador durante a simulação (com o número de pessoas no espaço permitido).
O efeito do funcionamento do osciloscópio é apresentado na Figura 6. É possível ver que o primeiro impulso está na entrada I01 e o seguinte na I02. Em simultâneo com o flanco ascendente na I02, é gerado um impulso na saída M05: IMPULSOS PARA CIMA, que faz com que o valor do contador aumente em um e mostre este valor ATUAL no ecrã. Se os impulsos ocorrerem na ordem inversa, é gerado um impulso na saída M04: IMPULSOS PARA BAIXO e o valor do contador ATUAL diminui. Também pode adicionar saídas ao ecrã do osciloscópio e observar como os seus níveis mudam de ritmo com os impulsos em I01 e I02, mas nesta situação parece um excesso de informação. Também pode observar o estado das saídas, clicando em Ecrã –> Saídas digitais.
Figura 8. Formas de onda nas entradas/saídas do contador durante a simulação.
Graças ao osciloscópio, é possível ver que as próximas pessoas só serão detetadas uma vez decorrido o tempo especificado após se exceder a operação (aqui é de 2.5 segundos), pelo que, se as barreiras forem colocadas perto uma da outra, este período pode ser encurtado. Também pode ver que, na sequência de impulsos em que o contador está a funcionar corretamente, também podem sobrepor-se. Será este o caso se as barreiras forem colocadas demasiado perto umas das outras. Depois de testar o funcionamento do programa, só tem de o enviar ao controlador easyE4, fornecer sinais a partir das entradas do sensor e conectar o alarme. A foto número 7 mostra a aplicação terminada colocada numa caixa de plástico, geralmente utilizada para quadros de distribuição residenciais. Junto ao controlador, há um botão de reinício debaixo da lapela que pode ser aberto.
Figura 9. Contador de pessoas construído com base no relé programável easyE4
Preparámos uma aplicação de contador de pessoas em três artigos. Esta aplicação pode ser utilizada de duas formas: seja para assinalar um excesso em relação ao número permitido de pessoas num espaço fechado (por requisitos de segurança), seja para ligar/desligar a iluminação ou a ventilação numa divisão onde estas devam funcionar apenas quando estiver lá alguém. O dispositivo utiliza a propriedade de remanência, pelo que o software funciona de forma a que os blocos de contadores que contêm a configuração e o estado atual sejam armazenados na memória não volátil e restaurados quando é ligada a tensão de alimentação. Na eventualidade de um corte de energia, não precisará de reestabelecer os parâmetros do medidor; se for necessário, só terá de contar as pessoas na divisão e corrigir a indicação.
Apesar disso, o controlador easyE4 é um grande passo em frente em comparação com produtos mais antigos. Sem dúvida alguma, o excelente ambiente de desenvolvimento do easySoft 7 será ainda mais aprimorado.
No passado, os controladores concebidos para uma aplicação específica dominavam várias aplicações. Agora, no exemplo do easyE4, não é difícil notar que não vale a pena baseá-los nos microcontroladores disponíveis. Por um preço relativamente baixo, pode obter um controlador com um processador rápido, numa carcaça sólida montada numa calha, com um ecrã e um teclado integrados. O controlador pode ser conectado em rede e comunicar facilmente com o ambiente, é possível ampliar as suas funcionalidades e, algo extremamente importante em qualquer aplicação profissional, cumpre com inúmeras normas harmonizadas, inclusive para ambientes industriais. Portanto, podemos estar seguros de estar a fornecer ao utilizador um dispositivo cujo núcleo foi testado num laboratório certificado, sustentado pela marca e reputação do fabricante.
A Transfer Multisort Elektronik (TME) é um dos maiores distribuidores globais de componentes eletrônicos, peças eletrotécnicas, equipamentos de oficina e automação industrial. O catálogo inclui mais de 1.500.000 de produtos de 1.300 fabricantes líderes. Os modernos centros logísticos da TME em Łódź e Rzgów (Polónia), com uma área total superior a 40.000 m², enviam quase 6.000 pacotes diariamente para clientes em mais de 150 países.
A TME também investe no desenvolvimento do conhecimento e das competências de jovens engenheiros e entusiastas da eletrónica através do projeto TME Education e apoia a comunidade tecnológica organizando a série de eventos TechMasterEvent, promovendo a inovação e a troca de experiências.