Banca para controlo de movimento com motores elétricos
Tiago André Pimentel Soares Dissertação de Mestrado
Orientador: Prof. Manuel Romano Barbosa Coorientador: Prof. Paulo Abreu
Mestrado Integrado em Engenharia Mecânica Ramo de Automação
Resumo
A automação nos dias de hoje para além de ser um fator determinante para a competitividade na produção tem por objetivo simplificar a sua aplicação em diferentes sistemas automatizados e a sua subsequente manutenção. Por este motivo, os fabricantes de soluções e componentes de automação têm vindo a oferecer aos seus clientes plataformas únicas onde seja possível toda a programação, configuração e alteração de projetos, mantendo a simplicidade de utilização como um dos fatores chave para o sucesso desta abordagem. Estas plataformas são nada mais que softwares desenvolvidos para serem corridos num qualquer computador no qual é possivel explorar as potencialidades oferecidas e posteriormente descarregar os projetos desenvolvidos para o hardware pretendido de uma forma expedita.
Este trabalho pretende ilustrar a configuração de dois motores elétricos, passando pela parametrização através de software e a sua respetiva montagem elétrica. Neste sentido foram recolhidas as características dos vários componentes disponibilizados com o objetivo de poder criar um sistema que os suporte, para fins didáticos e ainda escolher componentes elétricos adicionais que se destinassem à proteção do circuito elétrico.
Foi desenvolvido um programa, no PLC, criando uma máquina de estados finita, para uso didático dos dois motores que incluiu alguns exemplos de movimento mas que também oferece alguma liberdade no ajuste de alguns parâmetros como a escolha dos valores de velocidade, aceleração e desaceleração. Para o uso deste programa, foi desenvolvida uma HMI virtual que serve de interface para a banca didática.
Para verificação do funcionamento dos motores, estes serão solicitados em diferentes situações de acordo com os parâmetros passíveis de serem ajustados, sempre sem carga associada aos motores. No caso do motor passo a passo pretende-se identificar a aceleração máxima que permita o arranque do motor até atingir a velocidade especificada. Ou seja, verificar em que condições é possível conseguir um movimento com tempos de aceleração/desaceleração reduzidos. Pretende-se ainda verificar características típicas do movimento de motores passo a passo como por exemplo suavidade do movimento, vibrações excessivas, incapacidade de manter o movimento ou arrancar e erros de posicionamento. Para o servomotor, os ganhos do controlador serão alterados para verificar em que condições se pode observar sobre-elongação no posicionamento e na velocidade dos movimentos.
Test bench for motion control with electrical motors
Abstract
Today, automation not only is a key factor for competitivety in production but also has the goal of simplification of its application on different automated systems and respective maintenance. Because of this, manufacturers have been offering unique platforms where it is possible all the programming, configuration and parametrization of projects. Keeping it simple for the user is one of the key factors for this approach. These platforms are nothing less than softwares, developed for any personal computer, in which it is possible to explore all the capabilities offered for the hardware in a straightforward way.
The present work intends to illustrate the configuration of electrical motors, going through the parametrization of the components and the corresponding electrical installation. To do so, the components were reviewed so that a test bench could be created to support their mounting and accommodate some additional electrical components responsible for the safety of the electrical circuitry.
A PLC program was developed, for didactic use of the electrical motors, that includes movement examples and gives some freedom of use. It is possible to choose the values for velocity, acceleration and deceleration for a movement. Serving as interface for the program, a virtual HMI was developed to aid the user of the test bench.
To verify the motors operation, they will be commanded in different situations according to the parameters available for change, always without load. Regarding the stepper motor, tests were performed to identify a maximum acceleration value possible, so it can start moving until it reaches the specified velocity. It is also pretended to verify other typical movement characteristic such as, smoothness and positioning errors. For the servomotor, the controller parameters will be changed to verify in which conditions it is possible to observe overshooting in the position and velocity.
Agradecimentos
Em primeiro lugar gostaria de agradecer ao meu orientador, Professor Manuel Romano Barbosa, pela oportunidade de elaborar uma solução em que me foi dada total liberdade de escolha em alguns aspetos durante o desenvolvimento, como o desenvolvimento da HMI e da disposição da banca de suporte.
Ao Professor Paulo Abreu pela contínua ajuda, coorientação de todo o trabalho e todos os conhecimentos partilhados.
Ao Sr. Joaquim Silva, por toda a ajuda e boa disposição durante toda a dissertação. Aos meus pais por toda a paciência ao longo destes anos.
Por fim queria agradecer a todos os meus amigos e familiares que apesar de não terem contribuído diretamente para a elaboração deste projeto, ajudaram com o seu apoio, companhia e amizade durante estes meses.
Índice
1 Introdução ... 1
1.1 Enquadramento do projeto e motivação ... 2
1.2 Objetivos do projeto ... 2
1.3 Estrutura da dissertação ... 3
2 Caracterização dos componentes disponíveis ... 5
2.1 Aspetos gerais ... 5
2.2 TwinCAT 3 – Apresentação do software ... 7
2.3 EtherCAT ... 9
2.4 Módulos principais de controlo e atuadores ... 12
2.4.1 Controlador CX9020 ... 13
2.4.2 Módulos de segurança TwinSAFE ... 14
2.4.3 Terminal motor passo a passo EL7031 ... 16
2.4.4 Extensão EtherCAT EK1110 ... 17
2.4.5 Servo drive AX5103 ... 18
2.4.6 Motor passo a passo (AS1030) ... 19
2.4.7 Servomotor (AM8021) ... 21
2.5 Estrutura de suporte ... 23
3 Estrutura e implementação do programa de controlo ... 25
3.1 Configuração dos parâmetros físicos do controlador (System) ... 25
3.2 Controlo de movimento (Motion) ... 27
3.2.1 Parametrização do motor passo a passo ... 28
3.2.2 Parametrização do servomotor e driver ... 30
3.3 Módulo de segurança (Safety) ... 31
3.4 Programação do PLC ... 32
3.5 Módulos de entradas e saídas (I/O)... 38
4 Testes de funcionamento dos motores ... 41
4.1 Testes com motor passo a passo ... 41
4.2 Testes com servomotor ... 50
5 Conclusões e trabalhos futuros ... 55
5.1 Conclusões ... 55
5.2 Trabalhos futuros ... …56
Referências ... 57
ANEXO A: Circuitos elétricos ... 59
ANEXO B: Desenhos de definição e desenhos de conjunto ... 63
ANEXO C: HMI Virtual Criada ... 70
Siglas e Acrónimos
CAN – Controller Area Network
CoE – CAN Application protocol over EtherCAT
CNC / NC – Computer Numerical Control / Numerical Control CODESYS – Controller Development System
CSMA-CD – Carrier-Sense Multiple Access with Collision Detection EtherCAT – Ethernet for Control Automation Technology
FSoE – FailSafe over EtherCAT HMI – Human-Machine Interface IPC – Industrial Personal Computer I/O – Inputs / Outputs
MAC – Media Access Control OCT – One cable technology
OSI – Open Systems Interconnection
PAC – Programmable Automation Controller PC – Personal computer
PDO – Process Data Objects
PLC – Programmable Logic Controller PROFIBUS – Process Field Bus
SERCOS – Serial Real-Time Communication System SoE – SERCOS over EtherCAT
SDO – Service Data Objects
TIA Portal – Totally Integrated Automation Portal
TCP/IP – Transmission Control Protocol / Internet Protocol TwinCAT – The Windows Control and Automation Technology
Índice de Figuras
Figura 1 - Arquitetura de sistema baseado em PC utilizada pela Beckhoff ... 6
Figura 2 - Enquadramento de hardware nas diferentes licenças ... 7
Figura 3 - Estrutura do software TwinCAT 3 [4] ... 7
Figura 4 - Funcionalidades de Motion Control presentes no TwinCAT 3 ... 8
Figura 5 - Estrutura do telegrama enviado à rede EtherCAT ... 10
Figura 6 - Interligação dos elementos disponíveis ... 12
Figura 7 - Controlador Beckhoff CX9020 ... 13
Figura 8 - - Componentes TwinSAFE (EL1904, EL2904, EL6900) ... 14
Figura 9 - Exemplo de aplicação de paragem de emergência através de TwinSAFE ... 14
Figura 10 - Terminal EL7031 ... 16
Figura 11 - Extensão EK1110 ... 17
Figura 12 - Servo Drive AX5103 ... 18
Figura 13 - Motor Beckhoff AS1030 ... 19
Figura 14 - Disposição das fases no motor passo a passo e respetiva cablagem ... 19
Figura 15 - Conexão elétrica do motor passo a passo ao terminal de controlo ... 19
Figura 16 - Curva característica motor passo a passo AS1030 [15] ... 20
Figura 17 - Servomotor AM8021 ... 21
Figura 18 - Esquema de ligação da cablagem (à esquerda) e cabo ZK4500 fornecido para conexão entre servodrive e servomotor (à direita) ... 22
Figura 19 - Ilustração 3D banca didática ... 23
Figura 20 - Estrutura em árvore do TwinCAT 3 ... 25
Figura 21 - Exemplo de adição de eixos a uma tarefa de controlo numérico... 27
Figura 22 - Associação do motor passo a passo no TwinCAT 3 ... 28
Figura 23 – Estrutura do controlador para motor passo a passo disponível no TwinCAT 3 ... 28
Figura 24 - Alteração de parâmetros dinâmicos para controlo do motor ... 29
Figura 25 - Associação do servomotor no TwinCAT 3... 30
Figura 26 - Configuração dos ganhos do controlador do servomotor AM8021 ... 30
Figura 27 - Configuração dos parâmetros de controlo numérico do servomotor AM8021 ... 31
Figura 28 - Configurações possíveis em elementos TwinSAFE [11]. ... 31
Figura 29 - Uma das bibliotecas utilizadas no projeto (TC2_MC2) e alguns blocos funcionais contidos ... 32
Figura 30 - Declaração de variável AXIS_REF e exemplo de utilização em bloco funcional 32 Figura 31 - HMI virtual desenvolvida ... 32
Figura 32 - Máquina de estados finita da HMI desenvolvida... 33
Figura 33 - Ativação de blocos funcionais para cada motor ... 33
Figura 34 - Programação do modo de jogging ... 34
Figura 35 - Programação do Exemplo 2 ... 34
Figura 36 - Programação do movimento intervalado ... 35
Figura 37 - Ilustração funcionamento do botão Homing ... 35
Figura 38 - Exemplo de descrição da etapa atual ... 36
Figura 39 - Estrutura do projeto e alguns Process Data Objects do módulo EL7031 ... 38
Figura 40 - Configuração da alimentação do servodrive AX5103 ... 39
Figura 41 - Gráficos pos(t) (em cima) e v(t) (em baixo): vref 300 rpm (1800 º/s), accref 1.81 × 103 º/s2 ... 42
Figura 42 - Gráficos pos(t) (em cima) e v(t) (em baixo): vref 300 rpm (1800 º/s) e accref 1.81 × 109 º/s2 ... 43
Figura 43 - Gráficos pos(t) (em cima) e v(t) (em baixo): vref 2400 rpm (14400 º/s) e accref 3.70 × 104 º/s2 ... 44
Figura 44 - Curvas v(t) usadas para estimativa da aceleração média e máxima. vref 300 rpm (1800 º/s) e accref 1.81 × 109 º/s2 ... 45
Figura 45 - Curvas pos(t) (vermelho) e v(t)(verde) que mostram perfil linear de velocidade apresentado. vref 300 rpm (1800 º/s) e accref 181 º/s2 ... 45
Figura 46 - Vibração do motor passo a passo para diferentes cargas in:
https://www.orientalmotor.com/stepper-motors/technology/stepper-motor-basics.html,
consultado em: 20/01/2019 ... 47 Figura 47 - Escala de leitura usada para verificação de desvios de posição ... 47 Figura 48 - Gráficos pos(t) e v(t) para teste de indexação: vref 300 rpm (1800º/s) e accref 1 × 104 [º/s2] ... 48
Figura 49 – Gráficos pos(t) v(t) para teste indexação: vref igual a 2400 rpm (14400 º/s) e accref 1 × 104 [º/s2] ... 49
Figura 50 - Teste de resolução do servomotor (incremento de 0.0030º) ... 50 Figura 51 - Oscilação do valor de posição na resposta a um degrau de posicionamento para ganhos proporcionais elevados ... 51 Figura 52 - Oscilação do valor de posição na resposta a um degrau de posicionamento para ganhos proporcionais Kv=25 ... 51 Figura 53 - Oscilação do valor de posição para ganhos proporcionais Kv=1 ... 52 Figura 54 - Gráfico pos(t) para teste indexação: vref 250 rpm (1500 º/s) e accref 5 × 104 º/s2 53
Figura 55 - Gráfico v(t) para teste indexação: vref 250 rpm (1500 º/s) e aceleração igual a 5 × 104 º/s2 ... 53
Figura 56 - Gráfico torque(t) através de um valor de corrente para teste indexação: vref 250 rpm (1500 º/s) e accref 5 × 104 º/s2 ... 53
Índice de Tabelas
Tabela 1 - Diferenças entre NCI e CNC ... 8
Tabela 2 - Camadas OSI do protocolo EtherCAT ... 11
Tabela 3 - Especificações de comunicação EtherCAT [10] ... 11
Tabela 4 - Características controlador Beckhoff CX9020 ... 13
Tabela 5 - Características módulo de segurança EL1904 [14] ... 15
Tabela 6 - Características módulo de segurança EL2904 [15] ... 15
Tabela 7 - Características módulo de segurança EL6900 [16] ... 15
Tabela 8 - Características módulo EL7031 ... 16
Tabela 9 - Características da extensão EtherCAT EK1100 [18] ... 17
Tabela 10 - Características servodrive AX5103 para alimentação monofásica [19] ... 18
Tabela 11 - Especificações motor AS1030 [20] ... 20
Tabela 12 - Características do servomotor AM8021 ... 21
Tabela 13 - Dados curva característica velocidade/binário do servomotor AM8021 ... 22
Tabela 14 – Consumos corrente E-Bus ... 24
Tabela 15 - Consumos corrente sistema monofásico ... 24
Tabela 16 - Propriedades e tempos de ciclo de diferentes tarefas ... 26
Tabela 17 - Licenças utilizadas ... 26
Tabela 18 – Configuração dos DIP Switches do módulo TwinSAFE ... 31
Tabela 19 – Análise de resultados: v igual a 300 rpm, diferentes acelerações... 46
Tabela 20 - Análise de resultados: v igual a 600 rpm, diferentes acelerações ... 46
Tabela 21 - Análise de resultados: v igual a 1200 rpm, diferentes acelerações ... 46
Tabela 22 - Análise de resultados: v igual a 2400 rpm, diferentes acelerações ... 46
Tabela 23 - Ajuste do ganho proporcional do controlador do servomotor ... 50
1 Introdução
A automação nos dias de hoje para além de ser um fator determinante para a competitividade na produção tem por objetivo simplificar a sua aplicação em diferentes sistemas automatizados e a sua subsequente manutenção. Por este motivo, os fabricantes de soluções e componentes de automação têm vindo a oferecer aos seus clientes plataformas únicas onde seja possível toda a programação, configuração e alteração de projetos, mantendo a simplicidade de utilização como um dos fatores chave para o sucesso desta abordagem. Estas plataformas são nada mais que softwares desenvolvidos para serem corridos num qualquer computador no qual é possivel explorar as potencialidades oferecidas e posteriormente descarregar os projetos desenvolvidos para o hardware pretendido de uma forma expedita.
No caso particular deste trabalho estamos interessados no controlo de atuadores elétricos, motores passo a passo e servomotores, para implementar movimentos em diferentes condições ou requisitos de posicionamento e perfil de velocidade, explorando as funcionalidades de controlo de movimento (Motion Control) incluídas nestas plataformas.
Verificam-se várias semelhanças nas abordagens de diferentes fabricantes no que toca às potencialidades oferecidas por estes softwares. Todos os programas oferecem, à sua maneira, formas de programar, diagnosticar, configurar e parametrizar os vários dispositivos de automação. Desde programação de PLC’s, programação de HMI’s, soluções de controlo numérico, configuração da rede de dispositivos e até possibilidade de diagnóstico de erros e monitorização online. Encontramos, por exemplo, o TIA Portal da Siemens [1], o Sysmac Studio da Omron [2], o Studio 5000 da Rockwell [3], ou o TwinCAT da Beckhoff [4]. Existem protocolos de comunicação que são propriedade de certos fabricantes, no entanto hoje em dia existe uma grande aceitação de todos os protocolos por parte dos vários softwares não estando por isso o utilizador restrito a usar apenas material de um dado fabricante. Por exemplo os novos PLC’s da Omron programados através do software Sysmac Studio já suportam o protocolo EtherCAT inicialmente desenvolvido pela Beckhoff. De notar que este protocolo já se encontra normalizado (IEC 61158).
A grande diferença na abordagem prende-se com o tipo de arquitetura. A Beckhoff opta pelo controlo baseado em PC, o que significa que é possível aumentar o desempenho do sistema por uma fração do custo associado comparado com mudar a gama de PLC ou PAC de um fabricante como a Siemens, que oferece soluções para controlo baseadas não só em PC, mas também em PLC. Com a existência de Codesys, que é um ambiente de desenvolvimento para programação de aplicações de controlo industrial de acordo com a norma IEC 61131-3, o desenvolvimento do TwinCAT toma partido deste ambiente onde é permitida a criação de dispositivos de visualização (semelhantes a uma HMI) virtuais,
assim como a introdução de longas linhas de código no módulo do PLC que incluam variáveis ainda não declaradas. Estas serão automaticamente declaradas se o utilizador assim o desejar, isto não acontece no TIA Portal por exemplo.
A incorporação de um osciloscópio virtual (Scope View) para monitorização de variáveis por parte do TwinCAT é uma grande ajuda na validação e verificação de controlo de movimento por parte dos motores elétricos. A incorporação deste software na Shell do Visual Studio é também uma abordagem diferente em comparação com outros fabricantes, o que permite a implementação de código em C++ e consequentemente a programação através de objetos em vez de ações se assim for entendido.
Com a utilização do EtherCAT como protocolo de comunicação (IEC 61158), é possível escalar o número de dispositivos na rede até um máximo de 65 535 dispositivos [5], sem que isto se traduza num grande impacto quer no desempenho (i.e., a comunicação com 100 servodrives demora apenas 100 μs) quer no preço final. Este protocolo tem vindo a ser largamente adotado pelos fabricantes sendo hoje possível encontrar várias soluções que utilizam este protocolo, com tempos de ciclo mais rápidos em comparação com outros protocolos [6].
Tratando-se da utilização de software com uma estrutura complexa a escolha do utilizador é naturalmente influenciada pela experiência prévia e condições de aquisição ou preço.
1.1 Enquadramento do projeto e motivação
Este projeto surge no contexto da Dissertação do curso de Mestrado Integrado em Engenharia Mecânica da Faculdade de Engenharia da Universidade do Porto, no ramo de Automação.
O interesse surge pela necessidade da existência de uma solução de automação ilustrativa da utilização deste tipo de tecnologia para demonstração e análise mais detalhada ao nível do ensino de motores elétricos para controlo de movimento.
Integrado no contexto do ensino de sistemas de acionamento eletromecânico, a configuração e validação de parâmetros necessários ao funcionamento de atuadores elétricos pode ser comparada com soluções alternativas e analisar com mais detalhe as características funcionais e de comando deste tipo de atuadores.
1.2 Objetivos do projeto
Neste enquadramento o trabalho realizado tem como principal objetivo a implementação e teste de um sistema para comando de motores elétricos de dois tipos: servomotor e motor passo a passo. Este sistema deve ainda permitir a demonstração de movimentos com estes dois tipos de motores, ilustrativos das suas características e aplicações. A implementação passa pelas seguintes fases:
Conceção, projeto e implementação de uma estrutura de suporte dos vários componentes, e definição dos elementos do quadro elétrico;
Validação e teste de funcionamento dos vários elementos;
Criação e configuração de exemplos demonstrativos da operação dos motores.
1.3 Estrutura da dissertação
No capítulo 2 é feita a análise do material disponível para conceção da banca de demonstração assim como a apresentação das ferramentas usadas para a sua programação, em concreto o software e o protoloco de comunicação utilizados.
No capítulo 3 são analisadas, de forma detalhada, todas as configurações que foram feitas ao nível do software, assim como uma apresentação da estrutura que esse programa disponibiliza, de forma a ser possível compreender em que módulos se configuram os diferentes componentes de acordo com a aplicação pretendida.
No capítulo 4 apresentam-se vários testes de modo a verificar o correto funcionamento dos dois atuadores disponibilizados e ainda exemplos programados para demonstração de diferentes condições ou ciclos de movimento.
2 Caracterização dos componentes disponíveis
Neste capítulo analisam-se as características dos componentes disponíveis para a construção da banca, incluindo o software de programação. Inicialmente são abordados os aspetos gerais do ambiente de programação desta solução (TwinCAT) de modo a identificar nessa estrutura de programação o enquadramento das funções do módulo de controlo de movimento (Motion Control). Baseando-se numa estrutura modular são também analisadas as alternativas de comunicação entre cada um dos elementos. Finalmente são apresentadas as características dos vários módulos ou componentes físicos do sistema que vai ser construído incluindo: motores, computador de controlo (embedded PC), driver do servomotor, módulos de I/O, de segurança, de comunicação, fonte de alimentação e estrutura de suporte para montagem dos componentes.
2.1 Aspetos gerais
O desempenho de cada sistema é um fator importante a considerar por qualquer engenheiro que esteja responsável pela utilização de uma nova aplicação de software para automação industrial e em particular quando esta envolve funcionalidades para controlo de movimento. Por esta razão o controlador é um dos mais importantes componentes do sistema, e frequentemente o primeiro no qual se procuram razões para aumentar o desempenho ou combater limitações de processamento de informação, como a redução de tempos de ciclo de modo a ser possível uma computação mais rápida ou do aumento de memória disponível para cada tarefa de processamento.
Os PLC são geralmente uma solução clássica para estes problemas por serem fabricados com robustez e com uma oferta extensa de funcionalidades adequadas para o controlo de processos industriais. No entanto também vêm associados a custos elevados em caso de substituição devido a estarem equipados com sistemas operativos específicos de cada fabricante o que pode limitar a flexibilidade se houver necessidade de alterar soluções de hardware. Para além de PLC existem ainda soluções baseadas em controladores específicos ou dedicados para determinadas aplicações.
Existem, no entanto, outras opções que passam pela implementação de sistemas de controlo baseados em PC, o que abre um leque de novas possibilidades no que toca ao processamento de informação. Estando disponíveis os processadores mais poderosos do mercado, a informação pode ser tratada em vários núcleos sendo possível a distribuição de tarefas por cada um deles, o que permite um aumento da eficiência nos tempos de processamento.
Esta opção mais flexível, inclui computadores industriais que correm um software de programação integrado como por exemplo o TwinCAT, The Windows control and automation technology. Como é possível verificar na Figura 1, em conjunto com a rede de comunicação EtherCAT (Ethernet for control automation technology), a rede fieldbus
incluída na IEC 61158, estes PC’s oferecem plataformas de automação de elevado desempenho que permitem integrar PLC’s, interfaces de visualização, tecnologias de segurança industrial, soluções de aquisição de sinal e controlo de movimento, num só ambiente de programação.
Os requisitos dos objetos a controlar/movimentar ditam a gama de produtos a escolher que variam desde pequenos motores passo a passo a servodrives de elevado desempenho.
O software escolhido é uma parte fundamental da solução de controlo baseada em PC, assim como a utilização da rede de comunicação. A Beckhoff utiliza o fieldbus desenvolvido pelo próprio fabricante, o EtherCAT, em alternativa a outros como o PROFIBUS, por exemplo, utilizado amplamente por outros concorrentes. No entanto a utilização de outros protocolos também é suportada, desde que seja utilizado o hardware adequado.
Os componentes encontrados são modulares e assentam numa filosofia de construção em que cada elemento desempenha uma função especifica. Esta filosofia permite assim que seja mais rápida e menos trabalhosa a manutenção e possível substituição dos constituintes do sistema, tornando até mais rápida a identificação de avarias. Permite que o sistema criado seja muito versátil pois podem ser adquiridos apenas os elementos necessários para um dado sistema estando estes perfeitamente concebidos para trabalhar em conjunto.
No contexto da gama de produtos disponibilizados é possível verificar que podemos adquirir diferentes licenças do software de acordo com as utilizações pretendidas. Estas variam consoante o hardware disponível, por exemplo, a presença ou não de HMI’s, o comando ou não de servodrives e o poder de processamento do controlador. O controlador disponibilizado enquadra-se na gama “Economy Plus” da Beckhoff, estando abaixo de todas as gamas de “Performance” disponibilizadas por este fabricante como se verifica na Figura 2.
2.2 TwinCAT 3 – Apresentação do software
A programação do controlador é realizada com recurso ao software mais recente disponibilizado pelo fabricante Beckhoff. O TwinCAT 3 é um software baseado em CoDeSys que por sua vez é um ambiente de desenvolvimento de controladores programáveis (i.e., PLC). Este ambiente suporta todas as linguagens previstas na norma IEC 61131-3 bem como C/C++, C#, VB.NET, e ainda permite comunicação com o Simulink para desenvolvimento e teste de algoritmos de controlo. A versão atual do TwinCAT 3 corre na shell do Visual Studio. A Figura 3 apresenta um resumo esquemático da estrutura adotada pelo software.
A utilização deste software para configuração e programação dos componentes de automação baseia-se na criação de um Projeto (Project). Esta criação pressupõe a inclusão dos vários módulos disponibilizados, Motion Control, PLC, Safety, C++ e I/O.
O módulo de Motion Control é de especial importância pois permite controlar cada eixo independentemente ou vários eixos de uma forma coordenada recorrendo a
Figura 3 - Estrutura do software TwinCAT 3 [4]
interpolações de movimento. Este tipo de controlo permite o movimento com uma precisão elevada, estando por isso muito presente, por exemplo, em máquinas CNC [7].
O software oferece várias funcionalidades de controlo numérico, estando o utilizador dependente da licença para utilização, ilustradas na Figura 4.
Figura 4 - Funcionalidades de Motion Control presentes no TwinCAT 3
Apesar de ambos envolverem interpolações, os modos de NC I e CNC apresentam algumas diferenças. A Tabela 1 apresenta as diferenças mais importantes do ponto de vista do utilizador.
Tabela 1 - Diferenças entre NCI e CNC
Característica TwinCAT NCI TwinCAT CNC
Número max. eixos/spindle Número max. spindles
Número max. canais independentes Número max. de eixos/spindle por canal 255 Controlado pelo PLC 31 3 eixos + 5 auxiliares 64 12 12 32 / 6 spindle
Programação do PLC IEC 61131-3 Igual a NCI
Programação CNC DIN 66025 com extensões Igual a NCI +
Extensões para linguagens de alto nível
Funções de interpolação Linear, circular, helicoidal. Limitação da variação de aceleração (Jerk)
Igual a NCI + Interpolações spline + HSC, etc Os vários eixos são representados por variáveis do tipo “AXIS_REF” e permitem assim a criação de um objeto que será tratado ciclicamente pelo PLC. Este objeto é então mapeado a um eixo físico correspondente. O PLC irá interagir com as tarefas de controlo numérico através de blocos funcionais disponibilizados em bibliotecas já existentes. Aquando do mapeamento de um novo eixo, a interface dos parâmetros dinâmicos como as velocidades e acelerações em jogo é feita diretamente no módulo de Motion Control e não no PLC.
A fusão entre o computador industrial e o software fornecido permite ao utilizador a criação de uma ferramenta de programação e controlo para soluções de automação industrial.
2.3 EtherCAT
Uma rede de comunicação entre computadores baseia-se na utilização de protocolos que podem ser definidos como o conjunto de regras que governam a sintaxe e sincronização de uma comunicação incluindo os meios físicos utilizados para transmissão. Os protocolos podem ser implementados pelo hardware, software ou por uma combinação de ambos. Em automação, define-se como rede industrial (fieldbus), o conjunto de protocolos de comunicação utilizados para supervisionar e controlar um determinado processo, com uma troca rápida e precisa de informações entre computadores, sensores e atuadores, estando esta designação prevista na norma IEC 61158.
As redes fieldbus, em geral organizam as suas funcionalidades em três níveis de modo a compatibilizar funcionalidades com requisitos de resposta em tempo útil e eficiência da transmissão. Esses três níveis podem analisar-se tendo por referência os sete níveis do modelo OSI. Desta forma numa rede fieldbus podemos identificar os dois níveis inferiores (nível físico e nível de ligação de dados) e um terceiro nível de aplicação. Os protocolos são implementados usando estes três níveis de acordo com as especificações e necessidades de cada aplicação.
O interesse em usar redes industriais compatíveis com redes Ethernet reside na possibilidade de utilização de hardware associado a redes de grande utilização como é o caso da Ethernet. Os protocolos Ethernet situam-se ao nível físico e de ligação de dados. A principal diferença consiste na alteração dos protocolos para acesso ao meio de modo a ultrapassar o não-determinismo do protocolo CSMA/CD.
Hoje em dia as redes fieldbus oferecem tempos de ciclo da mesma ordem de grandeza das tarefas de controlo, i.e., entre 5 a 10 ms. Estes tempos são frequentemente tidos como adequados, pois as ordens de grandeza são semelhantes. Contudo, o que geralmente é negligenciado é o facto de estarmos a trabalhar com sistemas em cascata, isto é, um grande número de sistemas a trabalharem a diferentes níveis que geralmente não estão sincronizados entre si. No nível mais baixo podemos ter um módulo de aquisição de sinal, que funciona abaixo de um fieldbus cíclico e por sua vez no final da cadeia temos um dispositivo com o seu próprio firmware que irá requerer toda a informação, funcionando como mestre. A informação é então copiada para a memória partilhada e depois libertada para que possa ser acedida pelo PLC. Com esta metodologia, são necessários vários ciclos para que toda a informação viaje por todas a etapas, o que pode levar a alguns atrasos [8].
O protocolo EtherCAT surge quando a Beckhoff tenta aplicar a Ethernet a aplicações de automação industrial que têm como requisito tempos de atualização de informação muito reduzidos (geralmente < 100 µs) mantendo um jitter reduzido (≤ 1 µs de modo a manter os propósitos de sincronização) [6].
Graças ao protocolo EtherCAT, podemos esquecer estes ciclos de envio e receção. O dispositivo configurado como mestre EtherCAT envia um telegrama (que pode ter até 4 gigabytes) à rede que passa por todos os escravos, que por sua vez podem ler a informação a si destinada e incluir a sua própria informação neste mesmo telegrama enquanto ele viaja pela rede, eliminando a necessidade de vários ciclos para troca de informação (“processing in the fly”), exemplificado na Figura 5. A taxa de informação útil por mensagem aumenta para valores superiores a 90% e graças à utilização de uma estrutura full duplex, a taxa de transferência de informação pode ser superior a 100 Mbits/s
[8]. O mestre EtherCAT é o único interveniente capaz de enviar um telegrama à rede, todos os outros nodos se limitam a responder ou reencaminhar a cadeia de informação para os próximos destinos. Apesar de funcionar à base da comunicação mestre/escravo,
os escravos podem comunicar entre si na rede.
Este tipo de comunicação resulta numa enorme vantagem: maior velocidade de comunicação. Os atrasos inerentes a uma rede Ethernet são muito superiores aos experiencidados numa rede EtherCAT. A velocidade pode ser reduzida, se assim for necessário, pois alguns processadores podem ter dificuldade em processar toda a informação tão rapidamente.
Cada um dos dispositivos presentes na rede introduz duas marcas temporais na mensagem que percorre a rede. Uma primeira marca quando recebe a mensagem e outra quando a mensagem viaja no sentido inverso. Desta maneira o mestre da rede pode sincronizar toda a informação proveniente dos vários escravos, cumprindo a norma IEE 1588 [9].
Em relação à topologia, graças à abordagem “processing in the fly”, a rede EtherCAT tem a possibilidade de apresentar uma estrutura em estrela tal como a Ethernet. No entanto esta rede não se limita a esta topologia, como usa o mesmo hardware das redes Ethernet, possui redundância inerente nas suas mensagens o que lhe permite detetar possíveis quebras de ligação na cablagem. Esta característica permite que a EtherCAT seja usada também numa estrutura em anel [9].
Muitos dos dispositivos utilizados neste fieldbus já estão definidos na Controllers Area Network (CAN), sendo que a EtherCAT suporta toda a família CANopen assim como os perfis SERCOS. Em adição à informação que geralmente percorre a rede, junta-se a informação relativa aos dispositivos de junta-segurança, integrando-junta-se na norma IEC 61508 que descreve a segurança sobre a rede EtherCAT (SoE).
Tabela 2 - Camadas OSI do protocolo EtherCAT
Camada OSI EtherCat
7 - Aplicação Troca de informação cíclica
Acesso a informação aciclicamente (mailbox)
6 – Apresentação ---
5 – Sessão ---
4 – Transporte ---
3 – Rede ---
2 – Lógica Ethernet MAC
Reencaminhamento de mensagens muito rápido Manuseamento do buffer/mailbox
Mapeamento da informação
1 - Física 100BASE-TX, 100BASE-FX
Tabela 3 - Especificações de comunicação EtherCAT [10]
Comunicação IEC 61158 Tipo 12
IEC 61800-7 CiA402 Drive Profile
Camada Física 100BASE-TX (IEEE 802.3)
SyncManager SM0 – Mailbox Output (Master -> Slave) SM1 – Mailbox Input (Slave -> Master) SM2 – Process data outputs
SM3 – Process data inputs
Process data Mapeamento PDO dinâmico
Mailbox (CoE) SDO Request
Sincronização Free run
2.4 Módulos principais de controlo e atuadores
Nesta secção apresentam-se as caraterísticas dos atuadores, respetivos módulos de comando, interligação e de comunicação. Desta forma analisam-se com maior detalhe os requisitos de instalação, funcionalidades e capacidades de utilização.
Os componentes disponíveis para este trabalho e o seu enquadramento na arquitetura TwinCAT encontram-se representados na Figura 6. Incluem, para além do PC que corre o software de programação TwinCAT, um controlador baseado em PC (CX9020), um módulo de segurança (TwinSafe), um módulo (EL7031) para comando do motor passo a passo (AS1030), um módulo de comunicação (EK1100), um controlador (driver AX5103) do servomotor (AM8021) e uma fonte de alimentação externa de 24VDC. Os detalhes das ligações estão representadas nos circuitos elétricos incluídos no Anexo A.
2.4.1 Controlador CX9020
Para o controlo do sistema é utilizado como controlador um computador industrial (IPC - Embedded PC CX) da marca Beckhoff, modelo CX9020 (Figura 7), e respetivos módulos de aquisição de sinais. Trata-se de um sistema compacto projetado para instalação em calha DIN (EN 60715). Esta série é usada em conjunto com terminais de barramento modulares (E-Bus), que podem ser adicionados de acordo com a utilização pretendida, para adquirir e gravar sinais digitais ou analógicos de sensores e os transferir para controladores de nível superior, ou enviar sinais para atuadores.
No âmbito deste trabalho as funções deste dispositivo passam pela comunicação com um PC destinado à sua programação, armazenando os programas de movimento e controlo de ciclos de movimento, integrando a análise de sensores (neste caso virtuais, presentes numa HMI). A comunicação com os outros módulos através do barramento E-Bus permite o acionamento do motor passo a passo e do servomotor. As suas características podem ser observadas na Tabela 4 [11].
Tabela 4 - Características controlador Beckhoff CX9020
Modelo CX9020
Processador ARM Cortex™-A8, 1 GHz
Memória Flash 512 MB microSD, 2x microSD slot
Memória Interna 1 GB DDR3 RAM
Memória não volátil 128 KB NOVRAM integrada
Interfaces 2x RJ45 (Ethernet), 10/100 Mbit/s, DVI-D, 4x USB 2.0, E-Bus
Sistema operativo Microsoft Windows Embedded Compact 7, Inglês
Software de controlo TwinCAT 3, TwinCAT 2 PLC runtime, NC PTP runtime
Alimentação 24 V DC (-15%/+20%)
2.4.2 Módulos de segurança TwinSAFE
Estes módulos (Figura 8) são construídos de modo a garantir que a falha de um dispositivo ou componente do sistema nunca conduza a uma condição de funcionamento perigosa. O modo de segurança passa sempre pela desativação do sistema, cortando a alimentação com segurança (Fail Stop). Apesar de comunicarem entre si e com o controlador de uma maneira diferente dos outros componentes (FSoE), a informação é transferida pelo mesmo barramento sem que exista interferência entre sinais (“Genuine Black Channel”) [12].
Com esta filosofia modular, a Beckhoff assim como outros fabricantes, oferece a opção de expandir o terminal BUS existente e transferir toda a cablagem associada aos elementos de segurança para este mesmo terminal. Esta forma de construção permite uma manutenção mais expedita através de diagnósticos e substituições mais rápidas de cada elemento se assim for necessário. O elemento EL6900 é responsável pela ligação lógica entre os terminais input (EL1904) e output (EL2904) do bloco TwinSAFE. Podem ser programados vários tipos de sinais, no entanto funções como paragem de emergência, monitorização de portas de segurança, comando de segurança a duas mãos, entre outras, já vêm incluídas, de acordo com a norma IEC 61508:2010 SIL 3. Existem blocos previamente disponibilizados para estas aplicações que apenas necessitam do mapeamento das variáveis necessárias às respetivas entradas sendo que a sua implementação é facilmente percetível na Figura 9 [13].
Figura 8 - - Componentes TwinSAFE (EL1904, EL2904, EL6900) [14]
Nas Tabelas 5, 6 e 7 apresentam-se as características de cada terminal pertencente ao módulo TwinSAFE.
Tabela 5 - Características módulo de segurança EL1904 [14]
Modelo EL1904
Número de inputs 4
Tensão nominal 24V DC
Tensão do sinal “0” -3 V … + 5V (EN 61131-2, tipo 3)
Tensão do sinal “1” + 11 V … + 30 V (EN 61131-2, tipo 3)
Tempo de resposta 4 ms
Tabela 6 - Características módulo de segurança EL2904 [15]
Modelo EL2904
Número de outputs 4
Tensão nominal 24V DC
Corrente máxima na saída 500 mA
Comprimento cabo entre atuador e terminal
Max 100 m
Tabela 7 - Características módulo de segurança EL6900 [16]
Modelo EL6900
Tensão nominal 24V DC
Número de conexões TwinSAFE Max 128
Tempo de ciclo 500 μs…~25 ms
Número de inputs 0 (responsável apenas pela lógica)
2.4.3 Terminal motor passo a passo EL7031
O terminal EL7031 (Figura 10) foi especificamente concebido para a conexão de motores passo a passo com alimentação de 24 V DC e correntes até 1,5 A [17]. Este terminal disponibiliza ainda duas entradas digitais, por exemplo para a ligação de fins de curso. O terminal pode ser facilmente configurado através do software para o motor e aplicação requerida com a mudança de alguns parâmetros. A utilização deste terminal em conjunto com o controlador CX9020, permite implementar o controlo de micro-passo. Deste modo, para o motor passo a passo escolhido (200 passos) é possível dispor de 12800 micro-passos (64 × 200). A Tabela 8 apresenta as características deste terminal. A escolha deste terminal está diretamente dependente do tipo de motor a controlar. Caso fosse um motor passo a passo de 50V ou estivesse previsto o uso de um encoder, o terminal seria então o EL7041, adequado a essa aplicação.
Tabela 8 - Características módulo EL7031
Modelo EL7031
Número de outputs 1 motor passo a passo, 2 fases
Número de inputs 2
Corrente na saída 1.5 A (max)
Tensão nominal 24 V DC
Frequência máxima (passos/s) 1000, 2000, 4000, 8000 (configurável)
Padrão do passo 64 micro passos / passo completo
2.4.4 Extensão EtherCAT EK1110
Este componente (Figura 11) permite a extensão do sinal proveniente do E-bus através de sinais do tipo 100BASE-TX que por sua vez podem ser usados por outros elementos da rede que se encontrem conectados. Neste caso, em particular, é usado para comunicação entre o controlador CX9020 e o driver (AX5103) do servomotor. A Tabela 9 apresenta as características da extensão EK1100.
Tabela 9 - Características da extensão EtherCAT EK1100 [18]
Modelo EK1110
Delay aprox. 1 μs
Interface 1 RJ45
Distância entre estações (máx) 100 m (100BASE-TX)
Transfer rate 100 Mbaud
2.4.5 Servo drive AX5103
A série AX5000 está disponível com ligações para um ou dois motores. A série AX51XX com apenas um canal permite dispor de intensidades de corrente até 40 A. Este sistema permite a conexão rápida e simples de vários dispositivos caso se pretenda formar um sistema com vários eixos através do sistema AX-Bridge. Pode ser conectada uma alargada gama de servomotores (ex. síncronos, assíncronos, lineares) a este servo drive, sendo que o drive reconhece o motor automaticamente durante a sua configuração se forem da Beckhoff. Caso sejam de outro fabricante, a sua configuração deixa de ser automática e as características do motor têm de ser fornecidas ao drive. O modelo AX5103 (Figura 12) permite apenas controlar um único servomotor.
Este drive possui um total de 8 entradas (0-7), sendo que a entrada 7 é a única que pode ser configurada como uma saída digital. Caso o motor utilizado possua um travão, esta saída tem a possibilidade de o controlar. Em relação à estrutura de controlo este drive apresenta uma estrutura com três anéis de controlo em malha fechada: anel interno de corrente, um segundo anel de velocidade e um anel exterior de posição. Esta configuração permite a utilização do servomotor com controlo de posição, de velocidade ou de binário (corrente). Nesta aplicação foi apenas usado o controlo de posição. Esta configuração é facilmente ajustável através do parâmetro S-0-0032 (main operation mode) no TwinCAT 3.
O servodrive pode ser alimentado a partir de sistema AC trifásico ou monofásico, tendo sido escolhida uma alimentação monofásica face à potência reduzida do motor que vai ser utilizado. Em adição à alimentação do motor. É ainda necessária uma fonte DC para alimentar os módulos de entradas e saídas digitais assim como o display LED. As características deste componente estão visiveis na Tabela 10.
Tabela 10 - Características servodrive AX5103 para alimentação monofásica [19]
Modelo AX5103
Corrente a 50ºC (1 fase) 1 x 3 A
Corrente máxima à saída 7.5 A
Tensão nominal 1 x 100…240 V AC ±10 %
Rated apparent power
230 V (1 ou 3 fases) 1.2 kVA
Potência máxima de travagem 14 kW
2.4.6 Motor passo a passo (AS1030)
Os motores passo a passo são projetados preferencialmente para tarefas de posicionamento em anel aberto. Este motor da Beckhoff (Figura 13) tem um passo de 1.8º ou seja 200 passos por rotação.
Este motor é do tipo híbrido (íman permanente e relutância magnética) possuindo duas fases e quatro fios. O seu tamanho é equivalente a motor NEMA23. Apesar de o motor permitir como opção a incorporação de um encoder, neste caso não foi escolhida essa opção. A Figura 14 mostra as fases do motor e como estas estão dispostas no cabo de ligação disponibilizado com este modelo.
O modo de micro passo depende do conjunto drive e motor. No caso presente (EL7031 e AS1030) só é permitido o modo micro passo podendo assumir 64 diferentes posições dentro de cada passo de 1.8º [20].
A Figura 15 mostra a conexão elétrica estabelecida entre o motor e o seu terminal de controlo (EL7031), como recomendado pelo fabricante.
Figura 13 - Motor Beckhoff AS1030
Figura 15 - Conexão elétrica do motor passo a passo ao terminal de controlo [20] Figura 14 - Disposição das fases no motor passo a passo e respetiva cablagem [20]
Mantendo velocidades elevadas é possível que o motor não consiga acompanhar a velocidade de rotação e se experienciem vários fenómenos que são basicamente bloqueios ou vibrações do motor e que levam a desvios de posicionamento por “perda de passos”, sendo recomendada a utilização de um encoder em determinadas aplicações/condições. Isto requer, no entanto, a presença de um segundo veio no fim do motor passo a passo. O motor vem equipado com um cabo para conexão com o terminal (300mm). A Tabela 11 apresenta as especificações deste motor.
Tabela 11 - Especificações motor AS1030 [20]
AS1030-0000
Binário de bloqueio (M0) 0.6 Nm
Dimensão da flange 56 mm (equivalente a NEMA 23) Tensão nominal 24 V … 50 V DC
Corrente por fase 1.5 A
Carga axial 15 N
Carga radial 0mm distância fim do veio 52 N Momento de inércia (J) 0.21 kgcm²
Resolução 1.8º / 200 passos completos Vida útil do rolamento 30.000 horas
A curva característica deste modelo pode ser consultada na Figura 16, com valores testados para os terminais KL2531 e KL2541 não existindo curvas características para o conjunto utilizado no sistema a implementar.
2.4.7 Servomotor (AM8021)
Os servomotores síncronos são motores com estator bobinado e rotor de íman permanente, também designados por motores Brushless (sem escovas) concebidos para aplicações de posicionamento muito precisas. Por exemplo, para tarefas de posicionamento em robôs industriais e máquinas ferramenta CNC que têm requisitos muito elevados no que toca à dinâmica e estabilidade do sistema. A sua comutação é implementada eletronicamente pelo servodrive a partir da informação obtida do transdutor de posição (encoder neste caso) incorporado no motor.
Neste modelo em específico (AM8021-1D11-0000), visível na Figura 17, existem 3 pares de polos e um sistema de feedback, com resolução de 18 bits. O standstill torque é o binário que pode ser mantido indefinidamente a velocidades inferiores a 100 rpm às condições ambiente de utilização permitidas [21]. A Tabela 12 apresenta as características deste servomotor, e os pontos da curva característica podem ser visualizados na Tabela 13. Este modelo vem equipado com travão e tecnologia de feedback OCT, que permite juntar no mesmo cabo a alimentação elétrica para as fases do motor e para o travão e os sinais do transdutor.
Tabela 12 - Características do servomotor AM8021
Modelo AM8021-1D11-0000
Binário de bloqueio 0.5 Nm
Velocidade nominal 8000 rpm (a 230 V)
Rated output 0.47 kW
Standstill current 1.6 Arms
Rated voltage 400 Vrms
Momento de inércia (J0) com travão 0.328 kgcm2
Binário de atrito estático 0.004 Nm
Para comunicação com o servodrive, a Beckhoff oferece cabos previamente montados que asseguram um acoplamento fácil, rápido e sem falhas para as aplicações pretendidas (Figura 18).
O sistema de feedback utilizado apresenta uma resolução de 18 bits que corresponde a uma resolução angular de 0.00137° (360/218). O fabricante assegura uma
precisão ± 0,03° [21]’.
Figura 18 - Esquema de ligação da cablagem (à esquerda) e cabo ZK4500 fornecido para conexão entre servodrive e servomotor (à direita)
2.5 Estrutura de suporte
De modo a acomodar todos os equipamentos, foi feito o desenho do projeto da banca didática com o objetivo de permitir um bom aproveitamento do espaço, enquanto era garantida uma boa visibilidade para o utilizador e mantida a estabilidade da estrutura.
A Figura 19 mostra uma representação em 3 dimensões da banca didática. É importante referir que foi necessário criar três cantoneiras para o suporte dos dois motores e dos possíveis sinalizadores luminosos e botões de emergência, cujos desenhos de definição, assim como os desenhos de conjunto e lista de peças podem ser consultados no Anexo A.
De acordo com as especificações da instalação e funcionamento dos vários elementos, torna-se necessário fazer um levantamento de material de suporte para a banca didática. Desde indicadores luminosos para verificação da tensão na linha, disjuntores, fusíveis ou seccionadores, a escolha deve ser adequada.
Para a escolha da fonte de alimentação do controlador (CX9020), o fabricante recomenda que se escolha uma fonte que forneça 24 VDC (-15%/+20%) com uma corrente máxima de 4 A. Por fim recomenda-se o uso de um fusível de 4 A à entrada do controlador.
Os componentes ligados no E-Bus deverão estar escolhidos para consumir no máximo 2 A de corrente. A Tabela 14 recolhe os valores de corrente consumida por cada componente no barramento. É possível confirmar que os valores não ultrapassam o máximo recomendado pelo fabricante. Caso fosse necessária a adição de mais módulos, que ultrapassassem este limite, seria necessário recorrer a extensões do tipo EK1000 ou EK1100.
Tabela 14 – Consumos corrente E-Bus
Componente Corrente consumida [A]
EL2904 Aprox. 221mA
EL1904 Aprox. 200mA (4 canais ocupados)
EL6900 Aprox. 188mA
EL7031 Aprox 120mA
EK1110 Aprox 130mA
Total ~860mA
Tendo em conta a escolha da fonte de alimentação DPP100-24 da TDK-Lambda, pode então verificar-se que a escolha é adequada.
Para a escolha do seccionador, foi feita a recolha dos principais componentes como é possível verificar na Tabela 15.
Tabela 15 - Consumos corrente sistema monofásico
Componente Corrente alimentação [A]
Fonte de Alimentação DPP100-24 1,2
Servodrive AX5103 (monofásico) 3
Total 4,2
De acordo com os valores de corrente, foi escolhido um seccionador da Schneider Electric de 10 A (Anexo C).
Finalmente, segundo as especificações do fabricante, o servodrive AX5103 necessita como medida de segurança um fusível de 10 A de acordo com a norma IEC 60269 ou um disjuntor com curva de disparo tipo C. A escolha recaiu então sobre o material disponível, um disjuntor da Merlin Gerin DPN N 19263.
Foi escolhido um indicador luminoso para o circuito AC, XB4BV43 e outro para o circuito DC, XB4BV63, ambos da Schneider Electric que podem ser consultados no Anexo C.
3 Estrutura e implementação do programa de controlo
Neste capítulo é feita a verificação do funcionamento e integração dos diferentes componentes a partir do software de configuração disponibilizado pela Beckhoff. Os componentes foram montados de acordo com a sua especificação, em calha DIN e com as ligações dos cabos necessários de acordo com as indicações do fabricante. É importante referir que o objetivo principal é validar o correto funcionamento dos motores sem ter ainda em conta uma aplicação específica para cada um dos motores ou da sua utilização conjunta.
O ambiente de programação do controlador disponibiliza uma estrutura em árvore (Figura 20), onde são configurados diferentes parâmetros, tendo sido este capítulo estruturado em 5 níveis, com uma correspondência à estrutura disponível no software de programação. Um primeiro nível onde é feita a configuração dos parâmetros físicos do IPC, como tempos por ciclo e alocação do poder de processamento. Um segundo nível onde se configuram os diferentes eixos para controlo numérico. Um nível que permite a programação através de PLC segundo qualquer uma das linguagens presentes na IEC 61131-3. Um nível Safety com bibliotecas predefinidas, mas reservado a programação de situações relacionadas com segurança. E por fim um nível de I/O onde é feito todo o mapeamento entre saídas e entradas físicas a variáveis lógicas.
3.1 Configuração dos parâmetros físicos do controlador (System) A configuração dos parâmetros físicos do controlador é feita ao nível da estrutura “System”.
Neste nível gere-se o runtime e também a utilização de todas as licenças necessárias ao funcionamento dos vários módulos. Admitindo que o processador do controlador pode ter vários núcleos, é neste nível que se configuram as tarefas a ser executadas em cada um deles. Podem por exemplo ser atribuídas tarefas do PLC especificamente a um dado núcleo e definido o tempo de processamento a reservar para cada uma delas.
Dado que o equipamento disponível, o IPC (CX9020), possui apenas um núcleo, todo o processamento passa por este, mas com diferentes prioridades. O limite de processamento
reservado às diferentes operações foi limitado a 80% enquanto que os restantes 20% ficam dedicados ao sistema operativo do IPC (Windows 7 CE). Cada processo tem uma diferente prioridade de processamento e um tempo de ciclo associado tendo sido definidos os tempos e prioridades de acordo com a Tabela 16. O tempo de base é a maneira que o software possui de sincronizar os tempos com o sistema operativo Windows presente no controlador (que possui um Kernel de tempo real). De acordo com as indicações do fabricante, o tempo de base não deve ser inferior a 1 ms, exceto em raras exceções, de modo a não sobrecarregar o processador. Ainda segundo estas indicações, de modo a reduzir o Jitter para valores inferiores a 20 µs, é recomendado que as tarefas de controlo numérico tenham tempos de ciclo entre 1 e 4 ms, enquanto que a tarefa do PLC não precisa de chegar a valores inferiores a 10 ms para aplicações típicas.
Tabela 16 - Propriedades e tempos de ciclo de diferentes tarefas
Objeto Tempo de base Tempo de ciclo Prioridade [1-100]
NC-Task 1 SAF 1 ms 2 ms 4
I/O Idle Task 1 ms 1 ms 11
PlcTask 1 ms 10 ms 20
PlcAuxTask 1 ms n/a 50
De notar que para o funcionamento do software, são necessárias licenças de utilização. Neste caso em particular, as licenças utilizadas são as referidas na Tabela 17. Na ausência de uma licença permanente, o programa mantém-se funcional durante sete dias, após os quais é possível a sua renovação.
Tabela 17 - Licenças utilizadas
Licença nº Tipo de licença
TC1200 TC3 PLC
TF5000 TC3 NC PLC
TC1100 TC3 IO
3.2 Controlo de movimento (Motion)
Este nível disponibiliza um conjunto de quatro grupos funcionais usados para controlar e regular o movimento de eixos individuais e/ou grupos sincronizados de eixos. Destes, três podem ser associados mais diretamente a máquinas de comando numérico: controlo numérico ponto a ponto (NC PTP), controlo numérico por interpolação (NC-I) e CNC. O quarto e último grupo está associado a manipuladores robóticos (Robotics). A licença disponível nesta aplicação, em particular, permite a utilização do modo de controlo ponto a ponto, entre os quais se destacam as seguintes funcionalidades:
Possibilidade de manipulação de até 10 eixos.
Programação realizada com recurso a blocos funcionais PLCopen, de acordo com a norma IEC 61131-3.
Controlo de velocidade e aceleração com possibilidade de escolha de perfis. Suporte de vários encoders (incrementais, absolutos).
Suporte de vários tipos de eixos (servo drives elétricos e hidráulicos, drives passo a passo, drives DC, eixos de simulação…) [4].
O primeiro passo para a criação de um projeto de controlo de movimento é a criação de uma tarefa de controlo e a posterior adição dos eixos pretendidos para essa tarefa (task) [22]. Um esquema da estrutura em árvore deste nível pode ser observado na Figura 21, em que foi definida uma tarefa de controlo do tipo NC PTP à qual foram associados dois eixos tratados como eixos contínuos, isto é, os eixos respondem a um ‘set value’ continuamente variável que é gerado pelo próprio software.
3.2.1 Parametrização do motor passo a passo
Para o correto funcionamento do motor, é necessário que o software saiba qual o eixo associado às suas ordens de comando. Este acoplamento é feito neste módulo de Motion Control através de uma simples conexão entre o eixo em questão e o respetivo elemento físico configurado no módulo I/O. Também é possível a conexão com uma das variáveis a ser tratada pelo PLC de modo a ser possível programar o eixo caso assim seja pretendido, como se pode verificar na Figura 22.
O motor passo a passo AS1030 foi configurado com o controlador disponibilizado por defeito pelo TwinCAT 3. O controlador disponível tem a estrutura que se apresenta na Figura 23. Como se aplica a um motor passo a passo, controlado em malha aberta, não faz sentido falar no valor dos ganhos do controlador pois o terminal gera um número de impulsos calculados para o movimento necessário e o erro será sempre zero. Existe a possibilidade de ocorrer o fenómeno de perda de passos sem que o controlador se aperceba.
Um dos parâmetros mais importantes a configurar é o fator de escala (scaling factor), que permite que o software saiba associar o número de impulsos correspondentes a uma volta completa, que no caso do motor passo a passo é configurado nesta secção (ao contrário do servomotor que é configurado na secção “I/O”). O fator de escala utilizado foi calculado sabendo que cada rotação completa de 360º corresponde a 12800 (64 × 200 micropassos) posições de referência para o controlador. Este valor está de acordo com a indicação no manual do fabricante para o uso do motor sem um encoder associado em que o scaling factor é igual a 0.028125 (=360/12800).
= 𝑆𝑓 (3.1) Onde:
D, é a distância por revolução [º],
N, é o número de posições por revolução, e Sf, é o scaling factor [º / impulso]
Figura 22 - Associação do motor passo a passo no TwinCAT 3
Para além do scaling factor, há que definir a frequência de base de operação do driver em termos do número de passos completos (fullsteps) por segundo, que condicionam a velocidade máxima de operação do motor. Este parâmetro é definido no terminal do motor (EL7031). A Tabela 19 explicita as configurações possíveis para o controlo do motor AS1030 e as respetivas velocidades máximas, expressas em [º/s] e [rpm].
Tabela 19 – Configurações possíveis do motor AS1030
O cálculo das acelerações em jogo pode ser feito de forma direta, especificando um valor, ou de forma indireta através do tempo de aceleração/desaceleração e do perfil de velocidade pretendido (triangular ou trapezoidal). Esta escolha de acelerações é feita na aba de dinâmicas do eixo pretendido como se pode verificar na Figura 24. De acordo com as indicações do fabricante, para reduzir ao máximo os tempos de espera em velocidades que possam fazer com que o motor entre em ressonância, as curvas de aceleração e desaceleração devem ser tão inclinadas quanto possível [17].
Frequência configurada no terminal [fullsteps/s]
Velocidade máxima [º/s] [rpm] 1000 1800 300 2000 3600 600 4000 7200 1200 8000 14400 2400
3.2.2 Parametrização do servomotor e driver
No módulo de I/O, após associação do eixo (AM8021) ao servodrive (AX5103) correspondente (Figura 25
)
, é possível aceder a um menu denominado “Drive Manager” que está responsável por toda esta configuração, inclusivamente calculando automaticamente alguns dos parâmetros necessários à configuração do controlo numérico (NC Task) de acordo com a informação introduzida. É necessário informar o sistema qual o tipo de alimentação a que o motor está sujeito pois isso irá afetar a escolha automática dos parâmetros.A escolha do scaling factor continua a ser de uma grande importância para o correto funcionamento do motor. Neste caso, a resolução da referência de posição angular do servodrive é de 20 bits (220=1048576), assim o scaling factor foi calculado de modo a uma
rotação completa corresponder a esta resolução (360 / 1048576) o que dá um valor de 0.000343 [º/incremento].
É importante referir que o servodrive calculou automaticamente todos os parâmetros dinâmicos após introdução do scaling factor, em oposição ao que foi feito no motor passo a passo, em que foi necessário introduzir todos os valores manualmente. A Figura 26 ilustra a estrutura do controlador disponível para o motor, onde podem ser configurados os ganhos do controlador de posição, do controlador de velocidade, e do controlador de corrente, sendo que foram inicialmente validados os valores que se encontraram por defeito. Os parâmetros calculados pelo próprio drive para o motor em questão estão visíveis na Figura 27.
Figura 25 - Associação do servomotor no TwinCAT 3
3.3 Módulo de segurança (Safety)
A este nível são configurados os módulos de segurança, sendo necessário proceder à alteração dos endereços físicos de cada um dos seus módulos, por ajuste dos DIP switches presentes em cada um deles. A Tabela 18 apresenta a configuração escolhida para cada um e o consequente endereço atribuído. Estes endereços podem assumir um número finito de configurações como é possível verificar na Figura 28.
Módulo DIP Switch address TwinCAT address
EL6900 1000000000 Address 1
EL1904 0100000000000000 Address 2
EL2904 1100000000 Address 3
Tabela 18 – Configuração dos DIP Switches do módulo TwinSAFE
Figura 28 - Configurações possíveis em elementos TwinSAFE [11]. Figura 27 - Configuração dos parâmetros de controlo numérico do servomotor AM8021
3.4 Programação do PLC
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.