• Nenhum resultado encontrado

Neste módulo encontram-se as bibliotecas de blocos funcionais (Figura 29) necessárias à programação, assim como as listas de variáveis globais utilizadas (GVL’s). É aqui que se encontram também todos os projetos contidos no PLC. Cada projeto pode conter os seus próprios programas e variáveis. Caso existam HMI’s, estas também serão encontradas aqui, inseridas na pasta de Visualizações.

Figura 29 - Uma das bibliotecas utilizadas no projeto (TC2_MC2) e alguns blocos funcionais contidos

Os eixos são declarados como variáveis do tipo “AXIS_REF”, na listagem de variáveis globais e posteriormente mapeados ao respetivo eixo físico. É desta forma que é possível configurar os blocos funcionais ao eixo pretendido como é possível verificar na Figura 30.

Foi desenvolvida uma HMI virtual (Figura 31) de modo a criar um conjunto de exemplos demonstrativos do funcionamento dos motores. Para funcionamento desta HMI, a programação feita no PLC passa pela criação de uma máquina de estados finitos, que se pode visualizar na Figura 32.

Figura 30 - Declaração de variável AXIS_REF e exemplo de utilização em bloco funcional

A inicialização do programa passa pela leitura do estado dos motores caso seja necessário limpar erros e pela ativação dos vários blocos funcionais para utilização de cada um deles, como se pode verificar na Figura 33.

Figura 33 - Ativação de blocos funcionais para cada motor Figura 32 - Máquina de estados finita da HMI desenvolvida

No menu inicial é requisitado ao utilizador qual dos motores pretende movimentar, sendo que só é possível efetuar movimentos individuais e independentes entre cada motor, isto é, não é permitido o movimento simultâneo dos dois motores.

Após a seleção do motor a movimentar, o utilizador dispõe de uma lista de quatro escolhas possíveis para seleção de movimento:

 Movimento manual;  Exemplo 1;

 Exemplo 2;

 Movimento em intervalos espaçados.

A escolha do movimento manual leva o utilizador para a possibilidade de jogging do motor com escolha dos valores de velocidade, aceleração, desaceleração e ainda o sentido em que pretende efetuar o movimento (Figura 34). Enquanto uma entrada digital (virtual) estiver premida, o movimento será mantido. Existe também neste modo a possibilidade de deslocar o motor para uma posição pretendida a uma velocidade que o utilizador pode também estabelecer, no entanto o valor de aceleração e desaceleração encontra-se fixo (modo PTP).

O Exemplo 1 é a demonstração de um movimento cíclico de posicionamento. O motor deslocar-se-á para uma certa posição previamente programada a uma dada velocidade e posteriormente retornará à posição inicial, sem possibilidade de alteração pelo utilizador. Repetirá esta sequência duas vezes até terminar o exemplo.

O Exemplo 2 pretende demonstrar o funcionamento do motor para valores de velocidade que se aproximem do valor máximo permitido na configuração (Figura 35). O motor acelerará até a velocidade pretendida e fará o mesmo trajeto no sentido inverso até voltar à posição inicial. Este exemplo, tal como o Exemplo 1, não permite a introdução de nenhuma variável por parte do utilizador.

Figura 34 - Programação do modo de jogging

A última escolha, o movimento em intervalos espaçados, requer que o utilizador introduza o espaçamento entre cada intervalo e a quantidade de intervalos que pretende que o motor efetue. Por exemplo, o utilizador pode comandar o motor para se deslocar em 8 intervalos de 45º, ou 12 intervalos de 30º ficando a escolha destes valores a cargo do utilizador. Neste modo a velocidade e aceleração estão fixadas em valores relativamente baixos de modo a ser possível verificar a precisão do movimento. Entre cada espaçamento, o motor esperará 1 segundo antes de se mover para a próxima posição. A programação deste movimento é visível na Figura 36.

Para os três últimos modos, existe uma entrada digital virtual configurada na HMI como um botão de Homing que é necessária para vários blocos funcionais utilizados nos vários estados da programação. Para a correta validação da posição de Homing, a entrada digital necessita de verificar uma transição ascendente e uma transição descendente como exemplificado na Figura 37.

A HMI dispõe ainda de algumas informações possíveis de serem lidas pelo utilizador,

Figura 37 - Ilustração funcionamento do botão Homing Figura 36 - Programação do movimento intervalado

modo a que o utilizador saiba o que fazer seguidamente, informação esta que é alterada ao longo do programa consoante a etapa em que este se encontre, como se exemplifica na Figura 38.

Cada um dos botões configurados como entradas digitais necessárias ao bom funcionamento da HMI está apenas visível em determinadas etapas com o objetivo de reduzir a quantidade de erros que o utilizador possa cometer. Por exemplo, os botões de efetuar o movimento de jogging estão invisíveis na HMI a não ser que a variável “ModoJog” esteja ativa.

PLCopen

Para a programação das várias etapas funcionais do autómato recorreu-se a blocos funcionais previamente disponibilizados em bibliotecas concebidas por uma organização (PLCopen) que se dedica especialmente a este fim: uma harmonização mundial da programação de controladores em sistemas de automação industrial [23].

Uma das principais atividades da PLCopen está focada na IEC 61131-3, uma norma mundial para programação de controladores industriais. A norma foca-se na forma como pessoas projetam e operam os controladores industriais, padronizando a interface de programação. Uma interface que obedeça a um padrão permite que pessoas com diferente formação e experiência possam criar diferentes elementos do programa durante a vida de um software. A organização foca-se nos seguintes pontos:

 Disponibilizar informação independente em métodos de programação;

 Aumentar a sensibilidade para os benefícios da existência de uma programação padronizada;

 Continuar a melhorar a norma IEC 61131-3;

 Criar conceitos para reduzir os custos da automação industrial;

 Reduzir os custos em áreas como engenharia, formação de pessoal qualificado, operação e manutenção.

De entre os vários blocos funcionais fornecidos, é importante referir a importância do uso de alguns mais especificamente neste projeto. São eles: MC_Power, MC_Reset, MC_Jog, MC_MoveVelocity, MC_Stop, MC_Home, MC_MoveRelative e MC_MoveAbsolute.

Os dois primeiros blocos referidos, destinam-se à ativação do eixo para uso pelo software e limpeza de qualquer erro que esteja associado no momento, permitindo o correto funcionamento.

Os restantes blocos destinam-se a tarefas de posicionamento, movimento relativo, absoluto em termos de posição ou movimento a uma dada velocidade. Etapas de designação da posição “zero” (Homing) e também realizar jogging do eixo pretendido. Todos estes blocos têm uma estrutura comum em termos de variáveis necessárias ao seu funcionamento.

É necessário indicar qual a variável “AXIS_REF” associada para identificar o eixo a movimentar. É também essencial declarar uma variável booleana como condição de execução do bloco, como é o caso dos botões virtuais gerados na HMI deste projeto.

Caso o movimento, ou tarefa pretendida seja realizado com sucesso, o bloco tornará ativa uma saída responsável pela verificação de conclusão, denominada “Done” que pode, por sua vez, servir como condição para mudança de etapa. Existem ainda outras saídas com possível monitorização como é o caso do estado atual do bloco, a existência ou não de algum erro e a sua identificação.

Documentos relacionados