BRESIMAR AUTOMAÇÃO Capítulo III
III-2 – Automatização de máquina de furar com eixo linear
A figura seguinte mostra um exemplo, de uma mesa linear de posicionamento de uma cabeça de perfurar, com
um fuso de esferas e usando um servomotor. Esta mesa serve para posicionar a cabeça de perfuração para uma
dada cota absoluta, programada pelo sistema de controlo. A posição “zero” (“home”) é determinada usando um
sensor (“Home (zero) position switch”). A cabeça de perfuração pode ser movida para qualquer posição absoluta,
ao longo do fuso, a partir da posição inicial (“zero máquina” / “home”). O limite de deslocação da cabeça de
perfuração é especificado por parâmetros de limites máximo e mínimo no “MOTION”(software) e pelos fins de
curso colocados nos limites físicos do eixo linear (hardware). Estes fins de curso estão ligados diretamente ao
controlador do eixo.
III-3 – 1ª Aplicação para o eixo linear com servo-drive AX2000
Nesta primeira aplicação exemplo temos, no eixo linear da mesa de furar, um servomotor controlado com o
servo drive da serie AX2000.
III-3.1 – Características técnicas da aplicação
As características técnicas e dimensionais, do motor e mesa posicionadora, que precisamos para configurar o
eixo no “MOTION” são as apresentadas a seguir.
Servo Drive: AX2000-B510 com interface CANopen
Gama de velocidades do servomotor: 0 a 3000rpm (50 rot/s)
Passo do fuso: 6 mm
Máximo comprimento do fuso: 1200 mm
Gama de trabalho da cabeça de perfuração: 1000 mm
Relação de transmissão da caixa redutora: 3 para 1 (redução do motor / fuso)
[asaTek / J.Andril] 45
BRESIMAR AUTOMAÇÃO Capítulo III
III-3.2 – Configuração do I/O (hardware)
Devemos definir a arquitetura da fieldbus (CANopen) a usar com o servo-drive, na árvore dos I/O (Devices ) no
nosso projeto (“Solution”). O servo drive AX2000-B510 é slave da rede CANopen necessitando de um CANopen
master (pode se usar a FC5101 ou FC5102).
Esta aplicação vai necessitar de um controlo de posição (Operation Mode / Position Control). O servidor de
TwinCAT NC gera uma nova posição a cada ciclo da task e é transmitido pela fieldbus para o AX2000. O controlo
de posição do movimento é verificado localmente no AX2000 e é enviado pelo servo drive AX2000, via fieldbus,
para o TwinCAT NC para efeitos de visualização e não de controlo. Este modo funcional permite ter melhor
desempenho dinâmico, pois a malha de posição não é afetada pela taxa de atualização do sistema fieldbus. A
fieldbus SERCOS e CANopen suportam este modo de controlo de posição.
Em outras aplicações temos o modo de controlo de velocidade. Neste modo o TwinCAT NC gera referências de
posição e velocidade a cada ciclo da task e transmite a referência de velocidade para o AX2000, pela fieldbus.
A posição atual do motor é enviada de volta ao TwinCAT NC através da fieldbus e este valor é usado para fechar
a malha de posição dentro do TwinCAT NC. SERCOS, CANopen, Lightbus e Real-Time Ethernet suportam este
modo.
III-3.3 – Configuração do NC (hardware)
1º - Adicionar uma NC-Task - Teremos, na máquina virtual NC, de criar uma task temporal para o serviço
NC. De seguida adicione uma NC-Task 1 na pasta “MOTION”, na árvore do projeto. Clique com a tecla direita
do rato, em cima dessa pasta e escolha “Add New Item...” e a configuração do tipo “NC/PTP NCI
Configuration”. Essa pasta ficará com uma arquitetura como a figura seguinte mostra.
Se selecionarmos a pasta da task “NC-Task 1 SAF” podemos visualizar e configurar o ciclo temporal da task NC.
No nosso exemplo temos 2 fatias temporais (cycle ticks) de base de tempo de 1 ms e que dará, no total, um
tempo de ciclo total de 2 ms.
[asaTek / J.Andril] 46
BRESIMAR AUTOMAÇÃO Capítulo III
A task SVB “NC-Task 1 SVB” deve ser configurada com 5 ciclos da tarefa SAF. Se a tarefa SAF “NC-Task 1 SAF”
tiver uma taxa de atualização de 2 ms, a tarefa SVB deverá ser de 10 ms.
2º - Adicionar um NC-Axis - Clique, com a direito do rato, em cima da pasta “Axes” e escolha “Add New
Item…”.
Selecione a opção “Continuous Axis” da lista dos tipos de eixos.
[asaTek / J.Andril] 47
BRESIMAR AUTOMAÇÃO Capítulo III
De seguida, temos de configurar o eixo de maneira a poder cumprir as cotas de posicionamento com precisão.
Para isso ser possível é necessário configurar diversos parâmetros, no eixo, que estão relacionados com as
características técnicas da aplicação em causa.
3º - Configurar tipo de eixo (“Settings”) - Na subpasta de “Settings” iremos linkar o eixo ao hardware
definido “I/O / Devices / Device 1 (FC510xx) / Drive 1 (AX2xxx-B510)”. A configuração, aí definida, consiste em
uma carta master CANopen (FC51xx) e um servo drive AX2000-B510 que é slave da rede CANopen. Clique no
botão “Link To I/O …” e escolha o “Drive 1 (AX2xxx-B510)” com “CANopen DS402 …….” .
A unidade para este eixo linear será em mm (“Unit:”).
De seguida, teremos de configurar alguns “parâmetros máquina” conforme os requisitos técnicos propostos
para a solução e especificados anteriormente. O AX2000-B510 tem um resolver com comunicação SERCOS.
A resolução do resolver dos servo drives depende do protocolo de comunicação usado, como está indicado na
tabela seguinte.
SERCOS 0x000F FFFF 2²⁰ 1048575+1 imp/rot
CANopen 0x000F FFFF 2²⁰ 1048575+1 imp/rot
Ligthbus 0x0000 FFFF 2¹⁶ 65535+1 imp/rot
RT Ethernet 0x0000 FFFF 2¹⁶ 65535+1 imp/rot
[asaTek / J.Andril] 48
BRESIMAR AUTOMAÇÃO Capítulo III
1ª APLICAÇÃO - Com servo-drive AX2000-B510
- Servo drive AX2000-B510 com interface CANopen
- Velo. Máxima do servomotor 3000 rot/min 3000 / 60 = 50 rot/seg.
- Resolução do resolver / encoder 0x000F FFFF 2²⁰ 1048575+1 imp./rot.
- Comprimento máximo do fuso 1200 mm
- Gama de trabalho da perfuradora 1000 mm
- Passo do fuso 6 mm/rot
- Relação de transmissão 3 / 1 (do motor para o fuso)
I - CALCULAR PARÂMETROS MÁQUINA
+ Velocidade referencia = (100% da vel. máx. servomotor) * (Passo do fuso / Relação)
(sinal de comando de +10 a -10V) = (1,0 * 50,0) rot/seg * (6/3) mm/rot = 100,0 mm/seg.
+ Fator de escala = Passo fuso / (Resolução encoder * Relação transmissão)
= 6 mm/rot / ( 2²⁰ imp/rot * 3 ) 0,0000019073486328125 mm/imp.
+ Veloci. Máxima (Vel.Máx.<Vel. Ref.) = (90% da vel. máx. servomotor) * (Passo do fuso / Relação)
a 90% da velocidade máxima = (0,9 * 50,0) rot/seg * (6/3) mm/rot = 90,0 mm/seg.
+ Veloci. manual rápida (F1/F4 - fast) = (30% da vel. máx. servomotor) * (Passo do fuso / Relação)
a 30% da velocidade máxima = (0,3 * 50,0) rot/seg * (6/3) mm/rot = 30,0 mm/seg.
+ Veloci. manual lenta (F2/F3 - slow) = (5% da vel. máx. servomotor) * (Passo do fuso / Relação)
a 5% da velocidade máxima = (0,05 * 50,0) rot/seg * (6/3) mm/rot = 5,0 mm/seg.
+ Velocidade de calibração (“zero”) = (1% da vel. máx. servomotor) * (Passo do fuso / Relação)
a 1% da velocidade máxima = (0,01 * 50,0) rot/seg * (6/3) mm/rot = 1,0 mm/seg.
II - CONFIGURAR PARÂMETROS DO EIXO NO SERVIÇO NC [“Parameter”]
1 - Velocidades e limites do movimento do eixo
[asaTek / J.Andril] 49
BRESIMAR AUTOMAÇÃO Capítulo III
+ No campo dos parâmetros ”Maximum Dynamics”,,do eixo “Axis 1”, configure: “Reference Velocity” = 100 mm/s,
“Maximum Velocity”=90 mm/s, “Manual Velocity (Fast)”=30 mm/s, “Manual Velocity (Slow)”=5 mm/s
+ No campo dos parâmetros “Limit Switches” configure os fins de curso por software: “Minimum Position” = TRUE
e 0 mm/s, “Maximum Position” = TRUE e 1000 mm/s . Estes fins de curso são virtuais (por software) e terão cotas
antes dos fins de curso reais elétricos e mecânicos (batentes mecânicos), que deverão existir como segurança
mecânica do movimento, da mesa de posicionar.
NOTA : É boa politica definirmos, nos eixos lineares, a gama de trabalho do movimento do eixo. Neste exemplo é
designada por “Gama de trabalho da perfuradora” e tem um valor de 1000 mm. Caso haja uma ordem de
comando, para a cabeça de perfurar, se deslocar para uma cota superior a 1000 mm ou para uma cota inferior a
0 mm o eixo deverá rejeitar. Se houver algum imprevisto e ultrapasse esses limites de software entram em
funcionamento os fins de curso elétricos e posteriormente os mecânicos (batentes mecânicos.)
+ No campo “Monitoring” o sistema tem a TRUE o “Position lag” ou “Following error” (erro de seguimento). Esta
propriedade vai permitir o sistema monitorizar o desvio máximo de erro de posição do eixo, em tempo real. Esse
erro é a diferença entre o valor enviado pelo controlo NC e o valor real do posicionamento do eixo, naquele
instante. Não pode ser maior do que o configurado em “Maximum Position Lag Value” = 5 mm em um tempo
superior ao “Maximum Position Lag filter Time” = 0,02 s. É natural que exista um erro mínimo com o movimento
do eixo a uma velocidade constante e aumente nas acelerações e desacelerações. O tempo colocado em “…
Position Lag Filter Time” vai permitir filtrar esse aumento do erro momentâneo e assim o sistema não entra em
erro. Se surgir um erro grande de seguimento, o eixo tem um problema e deverá parar. Caso seja frequente este
erro podemos alterar o valor do “Maximum Position Lag Value”, mas não exagere pois poderá danificar o
equipamento (está a tentar “enganar” o sistema “tapando” um possível problema no equipamento).
+ Temos também ativado a “Position Range Monitoring” e o “Target Position Monitoring” (TAP). Com estes
parâmetros a TRUE o sistema monitoriza se a cota proposta é cumprida, com um erro inferior ao indicado no
“Target Position Window” e dentro da janela temporal indicada em “Target Position Monitoring Time”. A
monitorização começa a partir da cota definida na “Position Range Monitoring” (“Position Range Window”).
[asaTek / J.Andril] 50
BRESIMAR AUTOMAÇÃO Capítulo III
+ Na subpasta “Dynamics”, estando selecionado a opção “Direct”, visualizamos os valores da aceleração,
desaceleração, jerk e caso queira alterá-los pode configurar escrevendo diretamente (em mm/s2). Na opção
“Indirect by Accelaration Time” podemos introduzir o tempo de aceleração ou desaceleração (em seg) até a um
valor máximo e através dos respetivos cursores podemos escolher a forma mais suave ou não do jerk.
2 - Velocidades e limites do movimento de “homing” do eixo
Existem 3 fases para fazer o “zero maquina” (homing), em um eixo, no TwinCAT NC:
• 1ª Fase: O eixo move-se em direção ao sensor de “zero maquina” (AbsSwitch) na velocidade especificada em
“Calibration Velocity (towards plc cam)” até que o sensor passe a TRUE. O sentido do movimento é especificado
no parâmetro “Inverter direction for calibration Cam Search”
• 2ª Fase: O eixo desacelera para uma velocidade mais lenta especificada em “Homing Velocity (off plc cam)” e
continua a mover-se até que o sensor de “zero máquina” passe a FALSE, em alguns casos, seja detetado o “zero”
do encoder (Sinal C). O sentido do movimento é especificado no parâmetro “Invert Direction for Sync Impuls
Search”
• 3ª Fase: O movimento do eixo para e a posição atual do eixo é definido como cota de “zero máquina” com o
valor que é especificado no parâmetro “Calibration Value”.
[asaTek / J.Andril] 51
BRESIMAR AUTOMAÇÃO Capítulo III
+ Configure no campo dos parâmetros “Manual Motion and Homing”, do eixo “Axis 1”, a velocidade de
aproximação em direção a CAM de “zero máquina”, “Homing Velocity (towards plc cam)”, a 1 mm/s e a velocidade
de retirada da CAM de “zero máquina”, “Homing Velocity (off plc cam)”, a 1 mm/s.
.
+ Escolha, no campo dos parâmetros “Homing” do encoder “Axis 1 Enc”, o sentido dos movimentos para executar
o procedimento de “zero máquina”. Primeiro configure o sentido do movimento do eixo para “apalpar” a CAM
de “zero máquina”, “Invert Direction for Calibration Cam Search” a TRUE (sentido -). De seguida configure o
sentido do movimento do eixo, depois de “apalpar” o “zero máquina”, de retirada da CAM, “Invert Direction for
Sync Impuls Search” a FALSE (sentido +).
[asaTek / J.Andril] 52
BRESIMAR AUTOMAÇÃO Capítulo III
+ Introduza a resolução do encoder no Fator de Escala (”Scaling Factor Numerator” = 0,0000019073486328125
e ”Scaling Factor Denominator (default: 1.0)” = 1.0).
Após a execução das parametrizações anteriores, salve o projeto (*.tsproj) com as configurações e de seguida
ative a configuração (clique no icon “Active Configuration”, representado por um “triângulo” de cor azul claro).
III - COMISSIONAMENTO DO EIXO (com a consola do “MOTION”)
Quando a configuração do sistema for ativada, com a ordem “Activate Configuration”, a posição do eixo pode ser
controlada manualmente a partir da consola existente no TwinCAT “MOTION” (Axis 1 – “Online”). Isso permite
que o eixo seja comissionado e verificado antes que o controlo do eixo seja controlado pelo programa do TwinCAT
PLC. Para acedermos à consola, de controlo manual, clique na pasta “Online” existente na pasta de configurações
“Axis 1”, no “MOTION”.
+ Programe a cota (“Target Position”= 400 mm) e a velocidade (“Target Velocity” = 50 mm/s) do movimento do
eixo que pretendermos como objetivo (“Target”). De seguida devemos ativar o controlador e seus movimentos,
clicando no botão de comando “Set” do “Enabling”. Ative todas as opções e coloque a percentagem da velocidade
máxima (“Override [%]”) que queremos disponível.
[asaTek / J.Andril] 53
BRESIMAR AUTOMAÇÃO Capítulo III
Após esta operação o drive AX2000 está ativo e operacional controlando a sua posição atual.
+ Comando manual de movimento do eixo poderá ser executado através dos botões F1 a F4 na consola de
manobra do Axis 1 – “Online”.
Botão Função
Movimento manual para trás à velocidade de “(Fast)” e “(Slow)”
Movimento manual para a frente à velocidade do “(Slow)” e ”(Fast)”
+ Ordem de movimento do eixo para posição absoluta, com os valores anteriormente introduzidos na consola
de manobra, poderá ser executado através do botão F5.
+ Ordem para parar o movimento do eixo a qualquer altura utilize o botão F6. O eixo irá parar de forma
controlada imediatamente e o movimento para a posição de destino especificada será abandonado.
+ Se ocorrer um erro de eixo, o código de erro será mostrado a vermelho na janela “Error:”. Para eliminar o erro
clique no botão F8.
+ Para desativar o eixo e o controlador AX2000 clique no botão “Set” do “Enabling” e desmarque as opções
anteriormente ativadas. Uma vez o controlador desativado conseguimos mover o veio do motor à mão.
[asaTek / J.Andril] 54
BRESIMAR AUTOMAÇÃO Capítulo III
+ Apos o procedimento anterior, o sistema fica no estado funcional de repouso (servo drive desativado).
FIM DA 1ª APLICAÇÃO
III-4 – 2ª Aplicação para o eixo linear com servo-drive EL7201
Nesta p aplicação exemplo temos, no eixo linear da mesa de furar, um servomotor controlado pelo terminal
EL7201 que tem função de servo drive para servomotores de baixa potencia (ex AM8111-0F20).
III-4.1 – Características técnicas da aplicação
As características técnicas e dimensionais, do motor e mesa posicionadora, que precisamos para configurar o
eixo na pasta “MOTION” são as apresentadas a seguir.
Servo Drive: EL7201 com interface CANopen
Gama de velocidades do servomotor: 0 a 1700rpm (28,333 rot/s) a 24Vdc
Passo do fuso: 6 mm
Máximo comprimento do fuso: 1200 mm
Gama de trabalho da cabeça de perfuração: 1000 mm
Relação de transmissão da caixa redutora: 3 para 1 (redução do motor / fuso)
[asaTek / J.Andril] 55
BRESIMAR AUTOMAÇÃO Capítulo III
III-4.2 – Configuração do I/O (hardware)
Na arquitetura de hardware que é apresentada é usado um PCe CX5140, com diversos eixos. Iremos configurar
o eixo 2 (Axis 2) para a automatização da mesa de furar. A fieldbus usada no servo drive EL7201 é a EtherCAT
como podemos ver na árvore dos I/O (Devices) do projeto (“Solution”). O servo drive é slave da rede EtherCAT
necessitando de um EtherCAT master existente no CX5140 - Device 1 (EtherCAT).
III-4.3 – Configuração do NC (hardware)
1º - Adicionar uma NC-Task - Na máquina virtual NC, é criada uma task temporal para o serviço NC. Este
processo é feito automaticamente (vantagem de estarmos a trabalhar com EtherCAT e servo drive da Beckhoff)
quando fazemos o comando “Scan” no I/O (Devices). O sistema informará através da mensagem “Append
linked axis to: NC – Configuration” se pretendemos fazer automaticamente e não manualmente.
Se selecionarmos a pasta da task “NC-Task 1 SAF” podemos visualizar e configurar o ciclo temporal da task NC.
No nosso exemplo temos 2 fatias temporais (cycle ticks) de base de tempo de 1 ms e que dará, no total, um
tempo de ciclo de 2 ms.
[asaTek / J.Andril] 56
BRESIMAR AUTOMAÇÃO Capítulo III
A task SVB “NC-Task 1 SVB” deve ser configurada com 5 ciclos da tarefa SAF. Se a tarefa SAF “NC-Task 1 SAF”
tiver uma taxa de atualização de 2 ms, a tarefa SVB deverá ser de 10 ms.
2º - Adicionar um NC-Axis - Clique, com a direito do rato, em cima da pasta “Axes” e verifique se o sistema
(“MOTION”) escolheu o tipo de eixo “Continuous Axis” para o eixo com nome “Axis 2”.
Poderá também manualmente adicionar um novo eixo com “Append Axis …” e escolher a opção “Add New
Item…”.
[asaTek / J.Andril] 57
BRESIMAR AUTOMAÇÃO Capítulo III
De seguida temos de configurar o eixo de maneira a poder cumprir a cotas de posicionamento com precisão.
Para isso ser possível é necessário configurar diversos parâmetros no eixo e que estão relacionados com as
características técnicas da aplicação em causa.
3º - Configurar tipo de eixo (“Settings”) - Na subpasta de “Settings” verificará que o sistema (“MOTION”)
automaticamente linkou o eixo ao hardware definido no I/O (Devices). A configuração aí definida consiste em
uma carta slave EL7201 (ex. Term 8 (EL7201-0010) # ‘Servo interface’) com o protocolo CANopen over EtherCAT
(ex. EtherCAT CoE Drive). A unidade para este eixo linear será em mm (“Unit:”).
De seguida teremos de configurar alguns “parâmetros máquina” conforme os requisitos técnicos propostos
para a solução e especificados anteriormente. O terminal servo-drive EL7201 comanda o servomotor AM8111-
0F20 com resolver OCT (“One Cable Technology”) cujo encoder comunica por CANopen.
O servomotor AM8111-0F20 tem características elétricas para trabalhar com 48 ou 24 Vdc. Na nossa aplicação,
por motivos funcionais da fonte de alimentação existente no quadro de comando, iremos trabalhar com 24Vdc.
A esta tensão de alimentação o motor trabalha a uma velocidade máxima de 1700 rot/min, ao contrário dos
4000 rot/min que vem indicada na chapa de características do motor. A indicação da velocidade na chapa de
características, é valida para uma alimentação do motor a 48Vdc.
A resolução que temos no encoder /resolver, com CANopen, é de 20 bit.
CANopen 0x000F FFFF 2²⁰ 1048575+1 imp/rot
[asaTek / J.Andril] 58
BRESIMAR AUTOMAÇÃO Capítulo III
2ª APLICAÇÃO - Com servo-drive EL7201
- Servo drive EL7201 com interface CANopen
- Velo. Máxima do servomotor 1700 rot/min 1700 / 60 = 28,333 rot/seg. (valores max. de catalogo)
1615 rot/min 1615 / 60 = 26,917 rot/seg. (Valores max. na EL7201)
(nos cálculos usámos o valor da EL)
- Resolução do resolver / encoder 0x000F FFFF 2²⁰ 1048575+1 imp./rot.
- Comprimento máximo do fuso 1200 mm
- Gama de trabalho da perfuradora 1000 mm
- Passo do fuso 6 mm/rot
- Relação de transmissão 3 / 1 (do motor para o fuso)
I - CALCULAR PARÂMETROS MÁQUINA
+ Velocidade referencia = (110% da vel. máx. servomotor) * (Passo do fuso / Relação)
(sinal de comando de +10 a -10V) = (1,1 * 26,917) rot/seg * (6/3) mm/rot = 59,217 mm/seg.
a 110% da velocidade máxima (Nota: A ficha tecnica na EL limita a velocidade máx. a 1615 rot/min)
+ Fator de escala = (Passo fuso / (Resolução encoder * Relação transmissão)
= 6 mm/rot / ( 2²⁰ imp/rot * 3 ) = 0,0000019073486328125 mm/imp.
+ Velocidade máxima = (100% da vel. máx. servomotor) * (Passo do fuso / Relação)
(Vel. máxima < Vel. referencia) = (1,0 * 26,917) rot/seg * (6/3) mm/rot = 53,833 mm/seg.
a 100% da velocidade máxima
+ Velocidade manual rápida = (30% da vel. máx. servomotor) * (Passo do fuso / Relação)
(F1 e F4 - fast) = (0,3 * 26,917) rot/seg * (6/3) mm/rot = 16,15 mm/seg.
a 30% da velocidade máxima
+ Velocidade manual lenta = (5% da vel. máx. servomotor) * (Passo do fuso / Relação)
(F2 e F3 - slow) = (0,05 * 26,917) rot/seg * (6/3) mm/rot = 2,69 mm/seg.
a 5% da velocidade máxima
+ Velocidade de calibração (“zero”) = (1% da vel. máx. servomotor) * (Passo do fuso / Relação)
(F9 - Homing) = (0,01 * 26,917) rot/seg * (6/3) mm/rot = 0,538 mm/seg.
a 1% da velocidade máxima
[asaTek / J.Andril] 59
BRESIMAR AUTOMAÇÃO Capítulo III
II - CONFIGURAR PARÂMETROS DO SERVO-DRIVE EL7201 [“CoE”]
Os parâmetros “CoE” (CAN application protocol over EtherCAT) são compilados automaticamente pelo terminal
EtherCAT EL7201 e poderão ser visualizados na subpasta “CoE-Online” do terminal EL.
O 1º passo é alterar, no “Drive Manager”,a tensão de 48Vdc para 24Vdc no “Power management”(=24Vdc).
O “Scan motor and feedback” (Change Phase-Pre-Op) deteta o servomotor AM8111 com um resolver da Sick
EKM86. É possível selecionar outro motor através da lista apresentada do botão “Select motor”.
[asaTek / J.Andril] 60
BRESIMAR AUTOMAÇÃO Capítulo III
O 2º passo é a configuração automática , através do “Drive Manager”, dos parâmetros do eixo. No “Feed Constant”
( = Passo do fuso / Relação = 6/3) programamos o valor de 2,0 mm. Ao alterar este parâmetro, são recalculados os
valores da tabela. Para atualizar estes parâmetros, do servo-drive EL7201, no server NC clique no botão “Set NC
Parameters”. Deverá também escolher a opção de controlo de posição, no eixo, escolhendo “Cyclic synchronous
position mode (CSP)” na pasta “Process Data / Operation mode”. Caso não seja selecionado esta opção não
conseguira fazer o comissionamento do eixo (o eixo entra em erro : 0x4550).
Para guardar as parametrizações do Drive Manager / EL7201, em ficheiro de backup (*.xml), clique no icon “Start
List” e de seguida no botão de comando “Export list”.
Poderá guardar em ficheiro *.xml os dados de “Startup” do EL7201 (com os parametros CoE do motor). Clique na
pasta “Startup” e com a tecla direita do rato, em cima da janela aberta, escolha “Export to XML …”.
Caso queira aplicar estas configurações, em outras cartas EL7201 , importe este ultimo ficheiro com “Import from
XML …”. Após isto e depois de “Activate Configuration”, poderá trabalhar com o eixo.
[asaTek / J.Andril] 61
BRESIMAR AUTOMAÇÃO Capítulo III
III - CONFIGURAR PARÂMETROS DO EIXO NO SERVIÇO NC [“Parameter”]
1 - Velocidades e limites do movimento do eixo
+ No campo dos parâmetros “Maximum Dynamics”, podemos confirmar os valores, anteriormente programados
pelo “drive Manager”: “Reference Velocity” = 59,21 mm/s, “Maximum Velocity”= 53,83 mm/s, “Manual Velocity
(Fast)”=16,14 mm/s, “Manual Velocity (Slow)”=2,69 mm/s
+ No campo dos parâmetros “Limit Switches” configure os fins de curso por software: “Minimum Position” = TRUE
e 0 mm/s, “Maximum Position” = TRUE e 1000 mm/s. Estes fins de curso são virtuais (por software) e terão cotas
antes dos fins de curso reais elétricos ou mecânicos (batentes mecânicos) que deverão existir.
NOTA : É boa politica definirmos, nos eixos lineares, a gama de trabalho do movimento do eixo. Neste exemplo
é designada por “Gama de trabalho da perfuradora” e tem um valor de 1000 mm. Caso haja uma ordem de
comando, para a cabeça de perfurar se deslocar para uma cota maior que 1000 mm ou menor que 0 mm o eixo
deverá rejeitar e não se movimentará.
[asaTek / J.Andril] 62
BRESIMAR AUTOMAÇÃO Capítulo III
+ No campo “Monitoring” o sistema tem a TRUE o “Position lag” ou “Following error” (erro de seguimento). Esta
propriedade vai permitir o sistema monitorizar o desvio máximo de erro de posição do eixo, em tempo real. Esse
erro é a diferença entre o valor enviado pelo controlo NC e o valor real do posicionamento do eixo, naquele
instante. Não pode ser maior do que o configurado em “Maximum Position Lag Value” = 5 mm em um tempo
superior ao “Maximum Position Lag filter Time” = 0,02 s. É natural que exista um erro mínimo com o movimento
do eixo a uma velocidade constante e aumente nas acelerações e desacelerações. O tempo colocado em “…
Position Lag Filter Time” vai permitir filtrar esse aumento do erro momentâneo e assim o sistema não entra em
erro. Se surgir um erro grande de seguimento, o eixo tem um problema e deverá parar. Caso seja frequente este
erro podemos alterar o valor do “Maximum Position Lag Value”, mas não exagere pois poderá danificar o
equipamento (está a tentar “enganar” o sistema “tapando” um possível problema no equipamento).
+ Temos também ativado a “Position Range Monitoring” e o “Target Position Monitoring” (TAP). Com estes
parâmetros a TRUE o sistema monitoriza se a cota proposta é cumprida, com um erro inferior ao indicado no
“Target Position Window” e dentro da janela temporal indicada em “Target Position Monitoring Time”. A
monitorização começa a partir da cota definida na “Position Range Monitiring”.
[asaTek / J.Andril] 63
BRESIMAR AUTOMAÇÃO Capítulo III
+ Na subpasta “Dynamics”, estando selecionado a opção “Direct”, visualizamos os valores da aceleração,
desaceleração, jerk e caso queira alterá-los pode configurar escrevendo diretamente (em mm/s2). Na opção
“Indirect by Accelaration Time” podemos introduzir o tempo de aceleração ou desaceleração (em seg) até a um
valor máximo e através dos respetivos cursores podemos escolher a forma mais suave ou não do jerk.
2 - Velocidades e limites do movimento de “homing” do eixo
Existem 3 fases para fazer o “zero maquina” (homing), em um eixo no TwinCAT NC:
• 1ª Fase: O eixo move-se em direção ao sensor de “zero máquina” (AbsSwitch) na velocidade especificada em
“Calibration Velocity (towards plc cam)” até que o sensor passe a TRUE. O sentido do movimento é especificado
no parâmetro “Inverter direction for calibration Cam Search”
• 2ª Fase: O eixo desacelera para uma velocidade mais lenta especificada em “Homing Velocity (off plc cam)” e
continua a mover-se até que o sensor de “zero máquina” passe a FALSE e em alguns casos seja detetado o “zero”
do encoder (Sinal C). O sentido do movimento é especificado no parâmetro “Invert Direction for Sync Impuls
Search”
• 3ª Fase: O movimento do eixo para e a posição atual do eixo é definido como cota de “zero máquina” com o
valor que é especificado no parâmetro “Calibration Value”.
+ Configure no campo dos parâmetros “Manual Motion and Homing”, do eixo “Axis 2”, a velocidade de
aproximação em direção a CAM de “zero máquina”, “Homing Velocity (towards plc cam)”, a 0,538 mm/s e a
velocidade de retirada da CAM de “zero máquina”,” “Homing Velocity (off plc cam)”, a 0,538 mm/s.
[asaTek / J.Andril] 64
BRESIMAR AUTOMAÇÃO Capítulo III
+ Escolha, no campo dos parâmetros “Homing” do encoder “Axis 2 Enc”, o sentido dos movimentos para executar
o procedimento de “zero máquina”. Primeiro o sentido do movimento do eixo para “apalpar” a CAM de “zero”,”
“Invert Direction for Calibration Cam Search”, a TRUE (-). De seguida o sentido do movimento do eixo, depois de
“apalpar” o “zero”, de retirada da CAM, “Invert Direction for Sync Impuls Search” a FALSE (+).
+ Introduza a resolução do encoder no Fator de Escala (”Scaling Factor” = 0,0000019073486328125)e ”Scaling
Factor Denominator (default: 1.0)” = 1.0).
Após a execução das parametrizações anteriores, salve o projeto (*.tsproj) com as configurações e de seguida
ative a configuração (clique no icon “Active Configuration”, representado por um “triângulo” de cor azul claro).
[asaTek / J.Andril] 65
BRESIMAR AUTOMAÇÃO Capítulo III
IV - COMISSIONAMENTO DO EIXO (com a consola do “MOTION”)
Quando a configuração do sistema for ativada, com a ordem “Activate Configuration”, a posição do eixo pode ser
controlada manualmente a partir da consola existente no TwinCAT “MOTION” (Axis 2 – “Online”). Isso permite
que o eixo seja comissionado e verificado antes que o controlo do eixo seja controlado pelo programa do TwinCAT
PLC. Para acedermos à consola, de controlo manual, clique na pasta “Online” existente na pasta de configurações
“Axis 2 ”, no “MOTION”.
+ Programe a cota (“Target Position”= 400 mm) e a velocidade (“Target Velocity” = 50 mm/s) do movimento do
eixo que pretendermos como objetivo (“Target”). De seguida devemos ativar o controlador e seus movimentos,
clicando no botão de comando “Set” do “Enabling”. Ative todas as opções e coloque a percentagem da velocidade
máxima (“Override [%]”) que queremos disponível.
Após esta operação o drive EL7201 está ativo e operacional, controlando a sua posição atual.
+ Comando manual de movimento do eixo poderá ser executado através dos botões F1 a F4 na consola de
manobra do “MOTION”. A Ordem de movimento do eixo para posição absoluta, poderá ser executado através
do botão F5. A ordem para parar o movimento do eixo a qualquer altura utilize o botão F6. Se ocorrer um erro
de eixo, o código de erro será mostrado a vermelho na janela “Error:”. Para eliminar o erro clique no botão F8.
+ Para desativar o eixo e o controlador EL7201 clique no botão “Set” do “Enabling” e desmarque as opções
anteriormente ativadas. O sistema fica no estado funcional de repouso (servo-driver desativado).
FIM DA 2ª APLICAÇÃO
[asaTek / J.Andril] 66
BRESIMAR AUTOMAÇÃO Capítulo III
III-5 – 3ª Aplicação para o eixo linear com servo-drive EL7037
Nesta aplicação exemplo temos, no eixo linear da mesa de furar, um motor passo a passo controlado pelo
terminal EL7037 que tem função de driver para o motor stepper (ex AS1020-0120) com encoder acoplado.
III-5.1 – Características técnicas da aplicação
As características técnicas e dimensionais, do motor e mesa posicionadora, que precisamos para configurar o
eixo no “MOTION” são as apresentadas a seguir.
Stepper Drive: EL7037 com interface CANopen
Gama de velocidades do motor: 2000 fullsteps/s / 200 fullsteps/rot = 10 rot/s
Passo do fuso: 6 mm
Máximo comprimento do fuso: 1200 mm
Gama de trabalho da cabeça de perfuração: 1000 mm
Relação de transmissão da caixa redutora: 3 para 1 (redução do motor / fuso)
III-5.2 – Configuração do I/O (hardware)
Na arquitetura de hardware que é apresentada é usado um PCe CX5140, com diversos eixos. Iremos configurar
o eixo 1 (Axis 1) para a automatização da mesa de furar. A fieldbus usada no stepper drive EL7037 é a EtherCAT
como podemos ver na arvore dos dos I/O (Devices) do projeto (“Solution”). O drive é slave da rede EtherCAT
necessitando de um EtherCAT master existente no CX5140 - Device 1 (EtherCAT).
III-5.3 – Configuração do NC (hardware)
1º - Adicionar uma NC-Task - Na máquina virtual NC, é criada uma task temporal para o serviço NC. Este
processo é feito automaticamente (vantagem de estarmos a trabalhar com EtherCAT e stepper drives da
Beckhoff) quando fazemos o comando “Scan” no I/O (Devices). O sistema informará através da mensagem
“Append linked axis to: NC – Configuration” se pretendemos fazer automaticamente e não manualmente.
[asaTek / J.Andril] 67
BRESIMAR AUTOMAÇÃO Capítulo III
Se selecionarmos a pasta da task “NC-Task 1 SAF” podemos visualizar e configurar o ciclo temporal da task NC.
No nosso exemplo temos 2 fatias temporais (cycle ticks) de base de tempo de 1 ms e que dará, no total, um
tempo de ciclo de 2 ms.
A task SVB “NC-Task 1 SVB” deve ser configurada com 5 ciclos da tarefa SAF. Se a tarefa SAF “NC-Task 1 SAF”
tiver uma taxa de atualização de 2 ms, a tarefa SVB deverá ser de 10 ms.
2º - Adicionar um NC-Axis - Clique, com a direito do rato, em cima da pasta “Axes” e verifique se o sistema
(“MOTION”) escolheu o tipo de eixo “Continuous Axis” para o eixo com nome “Axis 1”.
[asaTek / J.Andril] 68
BRESIMAR AUTOMAÇÃO Capítulo III
Poderá também manualmente adicionar um novo eixo com “Append Axis …” e escolher a opção “Add New
Item…”.
De seguida temos de configurar o eixo de maneira a poder cumprir a cotas de posicionamento com precisão.
Para isso ser possível é necessário configurar diversos parâmetros no eixo e que estão relacionados com as
características técnicas da aplicação em causa.
3º - Configurar tipo de eixo (“Settings”) - Na subpasta de “Settings” verificará que o sistema (“MOTION”)
automaticamente linkou o eixo ao hardware definido no I/O (Devices). A configuração aí definida consiste em
uma carta slave EL7037 (ex. Term 7 (EL7037) # ‘Stepper interface’) com o protocolo CANopen over EtherCAT
(ex. EtherCAT CoE Drive). A unidade para este eixo linear será em mm (“Unit:”).
De seguida teremos de configurar alguns “parâmetros máquina” conforme os requisitos técnicos propostos
para a solução e especificados anteriormente. O terminal stepper-drive EL7037 comanda o motor stepper
AS1020-0120 com um encoder acoplado no seu eixo.
[asaTek / J.Andril] 69
BRESIMAR AUTOMAÇÃO Capítulo III
3ª APLICAÇÃO - Com servo-drive EL7037
- Stepper drive com encoder EL7037
- Parâmetros da EL e motor stepper Base Frequency (carta EL): 2000 fullsteps/seg Max. step frequency
com 64 micro stepping Motor frequency (motor): 200 fullsteps/rot 360º/200=1,8 º/step
- Resolução do encoder 1024 imp./rot. 1024 * 4 = 4094 impulsos/rot
(com 4 fold evaluation) (sinal A/B do encoder tem 4 transições de sinal)
- Comprimento máximo do fuso 1200 mm
- Gama de trabalho da perfuradora 1000 mm
- Passo do fuso 6 mm/rot
- Relação de transmissão 3 / 1 (do motor para o fuso)
I - CALCULAR PARÂMETROS MÁQUINA
+ Velocidade máxima motor (Vmax) = Base fre. / Motor fre. 2000 fullsteps/s / 200 fullsteps/s = 10 rot/s
+ Velocidade referencia (Vref) = Vmax * (Passo/Relação) 10 rot/seg * (6/3) mm/rot = 20 mm/seg.
+ Fator de escala (Scaling factor) = Passo fuso / (Resolução encoder * Relação transmissão)
6 mm/rot / ( 1024 *4 imp/rot * 3 ) 0,00048828125 mm/imp.
(com encoder de 4 fold) = Passo fuso / (Motor frequency * Micro stepping * Relação transmissão)
+ Fator de escala (Scaling factor) 6 mm/rot / ( 200 * 64 imp/rot * 3 ) 0,00015625 mm/imp.
= (90% da vel. máx. do motor stepper) * (Passo do fuso / Relação)
*(opção sem encoder) = (0,9 * 10,0) rot/seg * (6/3) mm/rot = 18,0 mm/seg.
+ Veloci. Máxima (Vel.Máx.<Vel. Ref.) = (30% da vel. máx. do motor stepper) * (Passo do fuso / Relação)
= (0,3 * 10,0) rot/seg * (6/3) mm/rot = 6,0 mm/seg.
a 90% da velocidade máxima = (15% da vel. máx. do motor stepper) * (Passo do fuso / Relação)
+ Veloci. manual rápida (F1/F4 - fast) = (0,15 * 10,0) rot/seg * (6/3) mm/rot = 3,0 mm/seg.
= (5% da vel. máx. do motor stepper ) * (Passo do fuso / Relação)
a 30% da velocidade máxima = (0,05 * 10,0) rot/seg * (6/3) mm/rot = 1,0 mm/seg.
+ Veloci. manual rápida (F2/F3 - slow)
a 15% da velocidade máxima
+ Velocidade de calibração (“zero”)
a 5% da velocidade máxima
[asaTek / J.Andril] 70
BRESIMAR AUTOMAÇÃO Capítulo III
II - CONFIGURAR PARÂMETROS DO EIXO NO SERVIÇO NC [“Parameter”]
1 - Velocidades e limites do movimento do eixo
+ No campo dos parâmetros “Velocities”,do eixo “Axis 1”, configure: “Reference Velocity” = 20 mm/s, “Maximum
Velocity”= 18 mm/s, “Manual Velocity (Fast)”=6,0 mm/s, “Manual Velocity (Slow)”=3,0 mm/s
+ No campo dos parâmetros “Limit Switches” configure os fins de curso por software: “Minimum Position” = TRUE
e 0 mm/s, “Maximum Position” = TRUE e 1000 mm/s . Estes fins de curso são virtuais (por software) e terão cotas
antes dos fins de curso reais elétricos ou mecânicos (batentes mecânicos) que deverão existir.
NOTA : É boa politica definirmos, nos eixos lineares, a gama de trabalho do movimento do eixo. Neste exemplo é
designada por “Gama de trabalho da perfuradora” e tem um valor de 1000 mm. Caso haja uma ordem de
comando, para a cabeça de perfurar se deslocar para uma cota maior que 1000 mm ou menor que 0 mm o eixo
deverá rejeitar e não se movimentará. Procedimento idêntico ao efetuado no Eixo 2 (ver pag. 62).
[asaTek / J.Andril] 71
BRESIMAR AUTOMAÇÃO Capítulo III
+ No campo “Monitoring” o sistema tem a TRUE o “Position lag” ou “Following error” (erro de seguimento). Esta
propriedade vai permitir o sistema monitorizar o desvio máximo de erro de posição do eixo, em tempo real. Esse
erro é a diferença entre o valor enviado pelo controlo NC e o valor real do posicionamento do eixo, naquele
instante. Não pode ser maior do que o configurado em “Maximum Position Lag Value” = 5 mm em um tempo
superior ao “Maximum Position Lag filter Time” = 0,02 s. É natural que exista um erro mínimo com o movimento
do eixo a uma velocidade constante e aumente nas acelerações e desacelerações. O tempo colocado em “…
Position Lag Filter Time” vai permitir filtrar esse aumento do erro momentâneo e assim o sistema não entra em
erro. Se surgir um erro grande de seguimento, o eixo tem um problema e deverá parar. Caso seja frequente este
erro podemos alterar o valor do “Maximum Position Lag Value”, mas não exagere pois poderá danificar o
equipamento (está a tentar “enganar” o sistema “tapando” um possível problema no equipamento).
+ Temos também ativado a “Position Range Monitoring” e o “Target Position Monitoring” (TAP). Com estes
parâmetros a TRUE o sistema monitoriza se a cota proposta é cumprida, com um erro inferior ao indicado no
“Target Position Window” e dentro da janela temporal indicada em “Target Position Monitoring Time”. A
monitorização começa a partir da cota definida na “Position Range Monitiring”.
[asaTek / J.Andril] 72
BRESIMAR AUTOMAÇÃO Capítulo III
.
+ Na subpasta “Dynamics”, estando selecionado a opção “Direct”, visualizamos os valores da aceleração,
desaceleração, jerk e caso queira alterá-los pode configurar escrevendo diretamente (em mm/s2). Na opção
“Indirect by Accelaration Time” podemos introduzir o tempo de aceleração ou desaceleração (em seg) até a um
valor máximo e através dos respetivos cursores podemos escolher a forma mais suave ou não do jerk.
2 - Velocidades e limites do movimento de “homing” do eixo
Existem 3 fases para fazer o “zero maquina” (homing), em um eixo no TwinCAT NC:
• 1ª Fase: O eixo move-se em direção ao sensor de “zero máquina” (AbsSwitch) na velocidade especificada em
“Calibration Velocity (towards plc cam)” até que o sensor passe a TRUE. O sentido do movimento é especificado
no parâmetro “Inverter direction for calibration Cam Search”
• 2ª Fase: O eixo desacelera para uma velocidade mais lenta especificada em “Homing Velocity (off plc cam)” e
continua a mover-se até que o sensor de “zero máquina” passe a FALSE e em alguns casos seja detetado o “zero”
do encoder (Sinal C). O sentido do movimento é especificado no parâmetro “Invert Direction for Sync Impuls
Search”
• 3ª Fase: O movimento do eixo para e a posição atual do eixo é definido como cota de “zero máquina” com o
valor que é especificado no parâmetro “Calibration Value”.
[asaTek / J.Andril] 73
BRESIMAR AUTOMAÇÃO Capítulo III
+ Configure no campo dos parâmetros “Manual Motion and Homing”, do eixo “Axis 2”, a velocidade de
aproximação em direção a CAM de “zero máquina”, “Homing Velocity (towards plc cam)”, a 1,0 mm/s e a
velocidade de retirada da CAM de “zero máquina”,” “Homing Velocity (off plc cam)”, a 1,0 mm/s.
+ Escolha, no campo dos parâmetros “Homing” do encoder “Axis 1 Enc”, o sentido dos movimentos para executar
o procedimento de “zero maquina”. Primeiro o sentido do movimento do eixo para “apalpar” a CAM de “zero”,
“Invert Direction for Calibration Cam Search” a TRUE (-). De seguida o sentido do movimento do eixo, depois de
“apalpar” o “zero”, de retirada da CAM, “Invert Direction for Sync Impuls Search” a FALSE (+).
+ Introduza a resolução do encoder no Fator de Escala (”Scaling Factor” =0,00048828125 ).
[asaTek / J.Andril] 74
BRESIMAR AUTOMAÇÃO Capítulo III
Após a execução das parametrizações anteriores, salve o projeto (*.tsproj) com as configurações e de seguida
ative a configuração (clique no icon “Active Configuration”, representado por um “triângulo” de cor azul claro).
III - CONFIGURAR PARÂMETROS DO SERVO-DRIVE EL7037 [“CoE”]
Os parâmetros “CoE” (CAN application protocol over EtherCAT) são compilados automaticamente pelo terminal
EtherCAT EL7037 e poderão ser visualizados na subpasta “CoE-Online” do terminal EL.
As características e configurações para trabalhar com o motor passo a passo AS1020-0120 são configuradas nesta
pasta do CoE. Aqui definimos as características elétricas (tensão, corrente, resistência e indutância do
enrolamento, etc) do motor, as características de stepping do motor (nº de full steps, micro steppings, etc) como
os valores de feedback do encoder (nº de incrementos, etc) entre outros.
Na figura anterior vemos os parâmetros CoE das características elétricas do motor passo a passo usado (8010:01,
:03, :04, 0A), as características de funcionamento stepper do motor (8010:06), o nº de incrementos do encoder
(8010:07). Estão também os valores PI do controlo de malha de corrente (8010:06, :07).
[asaTek / J.Andril] 75
BRESIMAR AUTOMAÇÃO Capítulo III
Nesta última figura, dos parâmetros CoE, os valores mais relevantes são a gama de velocidade do comando do
motor passo a passo (8012:05) e a definição do uso de um encoder externo (8012:05). Estão também representados
os valores dos parâmetros de controlo da malha de posição e velocidade (8014:02, :03, :04) do movimento do eixo.
.
Na figura anterior é apresento o resumo das configurações na carta EL (parâmetros CoE) e no “Sistema NC”.
[asaTek / J.Andril] 76
BRESIMAR AUTOMAÇÃO Capítulo III
Poderá guardar em ficheiro *.xml os dados de “Startup” do EL7037 (com os parâmetros CoE do motor). Clique na
pasta “Startup” e com a tecla direita do rato , em cima da janela aberta, escolha “Export to XML …”.
Caso queira aplicar estas configurações, em outras cartas EL7037 , importe este ultimo ficheiro com “Import from
XML …”. Após isto e depois de “Activate Configuration”, poderá trabalhar com o eixo.
IV - COMISSIONAMENTO DO EIXO (com a consola do “MOTION”)
Quando a configuração do sistema for ativada, com a ordem “Activate Configuration”, a posição do eixo pode ser
controlada manualmente a partir da consola existente no TwinCAT “MOTION” (Axis 1 – “Online”). Isso permite
que o eixo seja comissionado e verificado antes que o controlo do eixo seja controlado pelo programa do TwinCAT
PLC. Para acedermos à consola, de controlo manual, clique na pasta “Online” existente na pasta de configurações
“Axis 1”, no “MOTION”.
+ Programe a cota (“Target Position”= 400 mm) e a velocidade (“Target Velocity” = 50 mm/s) do movimento do
eixo que pretendermos como objetivo (“Target”). De seguida devemos ativar o controlador e seus movimentos,
clicando no botão de comando “Set” do “Enabling”. Ative todas as opções e coloque a percentagem da velocidade
máxima (“Override [%]”) que queremos disponível.
Após esta operação o drive EL7037 está ativo e operacional, controlando a sua posição atual. 77
[asaTek / J.Andril]
BRESIMAR AUTOMAÇÃO Capítulo III
+ Comando manual de movimento do eixo poderá ser executado através dos botões F1 a F4 na consola de
manobra do System Manager. A Ordem de movimento do eixo para posição absoluta, poderá ser executado
através do botão F5. A ordem para parar o movimento do eixo a qualquer altura utilize o botão F6. Se ocorrer
um erro de eixo, o código de erro será mostrado a vermelho na janela “Error:”. Para eliminar o erro clique no
botão F8. Para um melhor controlo de posição, neste eixo, coloque o Kv-Factor = 70.
+ Para desativar o eixo e o controlador EL7037 clique no botão “Set” do “Enabling” e desmarque as opções
anteriormente ativadas. O sistema fica no estado funcional de repouso (stepper drive desativado).
FIM DA 3ª APLICAÇÃO 78
[asaTek / J.Andril]
BRESIMAR AUTOMAÇÃO Capítulo IV
IV – Livraria de motion Tc2_ MC2 (versão 2) para TwinCAT 3.1 NC-PTP
Apresentação da livraria Tc2_MC2 (v.2) com Funções Bloco (FB) e Funções (FUN)
Para podermos comandar o movimento de um eixo com controlo
preciso, através do programa residente no softPLC TwinCAT 3.1,
necessitamos de usar Funções Bloco de motion. Existe uma livraria com
essas funções e que se designa Tc2_MC2.lib. Neste capítulo iremos
explicar, de uma maneira resumida, as Funções Bloco mais relevantes.
Esta livraria de controlo de movimento de eixos, representa um
desenvolvimento adicional da biblioteca anterior TcMC. Esta nova
versão Tc2_MC2.lib é baseado na especificação da norma PLCopen de
Motion Control, na última revisão V2.0 ( www.PLCopen.org ). Esta versão
apresenta novas FBs adaptadas às novas necessidades de motion. Muitas destas novas FB´s não são compatíveis
com a livraria anterior Tc2_MC.lib . Por esse motivo em projetos mais antigos, já existentes, deverá continuar a
usar a versão Tc2_MC.lib. Nos novos projetos use a nova versão da livraria de motion,Tc2_MC2.lib.
Uma característica fundamental do Tc2_MC2 em comparação com o Tc2_MC é o chamado modo de buffer. O
modo de buffer permite executar comandos sequenciais, com o objetivo de alcançar uma dada posição (cota) em
modo contínuo, sem paragens intermédias.
A biblioteca Tc2_MC2 usada no TwinCAT 3.1 ou superior é a mesma biblioteca usada no TwinCAT 2, mas
convertida. Os projetos existentes que ainda usam a biblioteca TwinCAT 2 TcMC devem primeiro ser adaptados à
biblioteca TcMC2 antes de serem convertidos para o TwinCAT 3.
IV-1 – Consola de comissionamento do “MOTION”
Como foi demonstrado no capítulo anterior, é possível comandar o movimento de um eixo através do software de
configuração no “MOTION”, sem necessidade de termos um programa residente no PLC. Útil na afinação e
comissionamento da máquina. Na prática o sistema terá de ser automatizado através da execução de um
programa, a correr no softPLC TwinCAT, usando as Funções Bloco residentes da livraria de motion Tc2_Mc2.lib
Quando manuseamos o eixo em modo manual, através do “MOTION”, usamos a consola de comissionamento
“online” existente em cada um dos eixos (ex. Axis 1) e que tem a seguinte configuração:
[asaTek / J.Andril] 79
BRESIMAR AUTOMAÇÃO Capítulo IV
IV-2 – Diagrama de estado da livraria de motion Tc2_MC2.lib (versão 2)
O seguinte diagrama de estados, define o comportamento de um eixo em situações onde várias Funções Bloco
estão simultaneamente ativas. A combinação de várias FBs é útil para gerar perfis de movimento mais complexos
ou lidar com situações excecionais, na execução do programa.
[asaTek / J.Andril] 80
BRESIMAR AUTOMAÇÃO Capítulo IV
Notas do diagrama de estado
Note 1: Em qualquer estado em que ocorra um erro
Note 2: Vindo de qualquer estado com MC_Power.Enables = FALSE e não haja erro no eixo
Note 3: MC_Reset e MC_Power.Status = FALSE
Note 4: MC_Reset e MC_Power.Status = TRUE e MC_Power.Enabled = TRUE
Note 5: MC_Power.Status = TRUE e MC_Power.Enabled = TRUE
Note 6: MC_Stop.Done = TRUE e MC_Stop.Execute = FALSE
Como regra básica, os comandos de motion são processados sequencialmente. O eixo está sempre em um dos
estados definidos no diagrama. Os comandos de movimento que resultam em uma transição alteram o estado do
eixo e como resultado, o perfil do movimento. O diagrama de estado é a camada funcional que reflete o estado
do eixo real, comparável à imagem do processo para pontos de I/O. O estado do eixo muda imediatamente quando
o comando é emitido.
O diagrama de estado, inicialmente, visa eixos únicos. Funções Bloco de multieixo, como MC_CamIn ou
MC_GearIn, influenciam os estados de vários eixos, mas podem sempre ser reconvertidos ao estado de eixo
individual em um dado processo. Por exemplo, um master de um sistema CAM pode estar no estado de movimento
contínuo enquanto o slave associado está no estado de movimento sincronizado. O acoplamento de um slave não
tem influência no estado do master.
O estado de Disabled é o estado “de defeito” de um eixo. Neste estado o eixo não pode ser movido através de FBs.
Se a FB MC_Power for chamada com Enabled = TRUE, o eixo muda para o estado de Standstill (pronto para o
movimento, mas parado) ou, em caso de erro, fica em ErrorStop. Se o MC_Power é chamado com Enabled = FALSE,
o estado muda para Disabled. O objetivo do status ErrorStop é parar o eixo e em seguida bloquear outros
comandos, até que uma reinicialização seja acionada. A transição de estado de erro refere-se apenas aos erros
reais do eixo, não aos erros de execução da Função Bloco. Os erros do eixo também podem ser indicados na saída
de erro das Funções Bloco.
As Funções Bloco que não estão listados no diagrama de estado não têm influência no funcionamento do eixo
(MC_ReadStatus; MC_ReadAxisError; MC_ReadParameter; MC_ReadBoolParameter; MC_WriteParameter;
MC_WriteBoolParameter; MC_ReadActualPosition; MC_CamTableSelect ).
Podemos dividir a livraria TcMC2 nos seguintes grupos funcionais, com as respetivas Funções Bloco:
+ Funções Bloco de organização (Administrative):
Axis functions
MC_Power ; MC_Reset ; MC_SetPosition
Status and Paramater
MC_ReadActualVelocity ; MC_ReadActualPosition ; MC_ReadAxisComponents ; Mc_ReadAxisError ;
MC_ReadBoolParameter ; MC_ReadParameter ; MC_ReadParameterSet ; MC_ReadStatus ;
MC_WriteBoolParameter ; MC_WriteParameter
Touch probe
MC_TouchProbe ; MC_TouchProbe_V2 ; MC_AbortTrigger; MC_AbortTrigger_V2
External set value generator
MC_ExtSetPointGenEnable ; MC_ExtSetPointGenDisable ; MC_ExtSetPointGenFeed
Special extensions
MC_PowerStepper ; MC_OverrideFilter ; MC_SetOverride ; Mc_SetEncoderScallingFactor ;
MC_PositionCorrectionLimiter; MC_ReadDriveAddress ; MC_SetAcceptBlockedDriveSignal
+ Funções Bloco de movimentação (Motion):
Point to point motion
MC_MoveAbsolute ; MC_MoveRelative ; MC_MoveAdditive ; MC_MoveModulo ; MC_MoveVelocity ;
MC_MoveContinuousAbsolute ; MC_MoveContinuousRelative ; MC_Halt ; MC_Stop
Superposition
MC_MoveSuperimposed ; MC_AbortSuperposition
Homing
MC_Home ;
Manual motion
MC_Jog ;
Gearing
MC_GearIn ; MC_GearInDyn ; MC_GearOut ; MC_GearInMultiMaster
As FBs necessitam, para o seu funcionamento, de sctruct de dados. De seguida apresento as mais relevantes.
[asaTek / J.Andril] 81
BRESIMAR AUTOMAÇÃO Capítulo IV
O bloco de dados AXIS_REF contém informações do eixo. AXIS_REF é a interface entre o PLC e o NC. É adicionado
às VAR_IN_OUT das Funções Bloco de MC, como referência (%I*/%Q*) do eixo a usar.
TYPE AXIS_REF: _FBAXIS_REF; END_TYPE (*Direcionado para um alias _FBAXIS_REF *)
FUNCTION_BLOCK _FBAXIS_REF :(*Alias de FB com %I/%Q, não permitido nas Struct*)
VAR_INPUT
PlcToNc AT %Q* : PLCTONC_AXIS_REF;
END_VAR
VAR_OUTPUT
NcToPlc AT %I* : NCTOPLC_AXIS_REF;
ADS : ST_AdsAddress;
Status : ST_AxisStatus;
END_VAR
END_TYPE
A estrutura de dados NCTOPLC_AXIS_REF é atualizada automaticamente pelo NC, de forma que as informações
estejam disponíveis durante cada ciclo no PLC. NCTOPLC_AXIS_REF é a interface do eixo entre NC e PLC.
TYPE NCTOPLC_AXIS_REF
STRUCT
StateDWord : DWORD; (* Status double word *)
ErrorCode : DWORD; (* Axis error code *)
AxisState : DWORD; (* Axis moving status *)
AxisModeConfirmation : DWORD; (* Axis mode confirmation (feedback from NC)*)
HomingState : DWORD; (* State of axis calibration (homing)*)
CoupleState : DWORD; (* Axis coupling state *)
SvbEntries : DWORD; (* SVB entries/orders SVB=Setpreparation task*)
SafEntries : DWORD; (* SAF entries/orders SAF=Setexecution task)*)
AxisId : DWORD; (* Axis ID *)
OpModeDWord : DWORD; (* Current operation mode *)
ActiveControlLoopIndex: WORD; (* Active control loop index *)
ControlLoopIndex : WORD; (* Axis control loop index (0, 1, 2)*)
ActPos : LREAL; (* Actual position (absolut value from NC) *)
ModuloActPos : LREAL; (* Actual modulo position *)
ModuloActTurns : DINT; (* Actual modulo turns *)
ActVelo : LREAL; (* Actual velocity *)
PosDiff : LREAL; (* Position difference (lag distance) *)
SetPos : LREAL; (* Setpoint position *)
SetVelo : LREAL; (* Setpoint velocity *)
SetAcc : LREAL; (* Setpoint acceleration *)
TargetPos : LREAL; (* Estimated target position *)
ModuloSetPos : LREAL; (* Setpoint modulo position *)
ModuloSetTurns : DINT; (* Setpoint modulo turns *)
CmdNo : WORD; (* Continuous actual command number *)
CmdState : WORD; (* Command state *)
END_STRUCT
END_TYPE
A estrutura de dados PLCTONC_AXIS_REF transfere ciclicamente informações do PLC para o NC. A struct
PLCTONC_AXIS_REF é interface do eixo entre PLC e NC.
TYPE PLCTONC_AXIS_REF
STRUCT
ControlDWord : DWORD; (* Control double word *)
Override : DWORD; (* Velocity override *)
AxisModeRequest : DWORD; (* Axis operating mode (PLC request) *)
AxisModeDWord : DWORD; (* optional mode parameter *)
AxisModeLReal : LREAL; (* optional mode parameter *)
PositionCorrection : LREAL; (* Correction value for current position *)
ExtSetPos : LREAL; (* external position setpoint *)
ExtSetVelo : LREAL; (* external velocity setpoint *)
ExtSetAcc : LREAL; (* external acceleration setpoint *)
ExtSetDirection : DINT; (* external direction setpoint *)
Reserved1 : DWORD; (* reserved *)
ExtControllerOutput: LREAL; (* external controller output *)
GearRatio1 : LREAL; (* Gear ratio for dynamic multi master coupling *)
GearRatio2 : LREAL; (* Gear ratio for dynamic multi master coupling *)
GearRatio3 : LREAL; (* Gear ratio for dynamic multi master coupling *)
GearRatio4 : LREAL; (* Gear ratio for dynamic multi master coupling *)
MapState : BYTE; (* reserved - internal use *)
Reserved_HIDDEN : ARRAY [105..127] OF BYTE;
END_STRUCT
END_TYPE
[asaTek / J.Andril] 82
BRESIMAR AUTOMAÇÃO Capítulo IV
IV-3 – As Funções Bloco mais usadas da livraria de motion Tc2_MC2.lib (versão 2)
Neste capítulo será explicada a funcionalidade das Funções Bloco mais relevantes, utilizadas nos projetos que
necessitemos fazer controlo de posição de eixo. Embora a livraria tenha uma vasta gama de FBs, para outros modos
funcionais especiais de movimentação (ex, Touch probe, External set value generator, Special extensions), iremos
mostrar as FBs mais relevantes para movimentos de eixo Point to Point.
Por exemplo, a “Máquina de furar de um eixo” já mostrada no capítulo anterior.
IV-3.1 – Regras gerais para as Funções Bloco MC
Para as FBs de MC-motion control devemos ter em conta as seguintes regras, que garantem o bom
funcionamento do programa de automação do PLC.
Parâmetros das entradas: Os parâmetros das entradas são lidos com o flanco ascendente (rising edge)
da ordem de comando de “Execute” da FB. Para alterar os parâmetros, deverá fazer um novo trigger
,na ordem de comando, após ter concluído a tarefa anterior ou fazer uma segunda instância, da
mesma FB, com novos parâmetros e executar um novo comando.
Parâmetros das saídas: As saídas Busy, Done, Error e CommandAborted são exclusivas, ou seja, apenas
uma dessas saídas pode estar a TRUE, de cada vez. Quando a entrada de comando de “Execute” fica a
TRUE, uma das saídas fica também a TRUE. Da mesma forma, apenas uma das saídas Active, Error,
Done e CommandAborted podem estar a TRUE em qualquer altura. Uma exceção a esta regra é a FB
MC_Stop. A MC_Stop coloca a saida Done a TRUE assim que o eixo pare. No entanto, Busy e Active
permanecem a TRUE porque o eixo está ativo. O eixo desbloqueado o Busy e Active ficam a FALSE
somente após o comando de “Execute” passe a FALSE.
Posição e distancia: A entrada Position designa um valor definido dentro de um sistema de
coordenadas. A Distance, ao contrário, é uma medida relativa, ou seja, a distância entre duas posições.
A Position e a Distance são especificadas em grandezas físicas, por exemplo [mm] ou [°], de acordo
com a parametrização do eixo.
Estado inicial: O reset das saídas Done, InGear, InSync, InVelocity, Error, ErrorID e CommandAborted
são feitas com o flanco descendente (falling edge) da entrada de comando de “Execute”, se a FB não
estiver ativa (Busy = FALSE). No entanto, um flanco descendente na ordem de “Execute” não tem
influência sobre a execução do comando. Se o reset do “Execute” for feito durante a execução do
comando, as saídas do FB são executadas no final do ciclo do PLC. Só depois é que é feito o reset das
saídas. Se o comando de “Execute” for feito mais de que uma vez, enquanto a ordem está a ser
executada, o FB não executará esses comandos não dando qualquer feedback.
[asaTek / J.Andril] 83
BRESIMAR AUTOMAÇÃO Capítulo IV
Modo Buffer (Buffer Mode): Algumas Funções Bloco têm uma entrada BufferMode para controlar
o fluxo de comando com várias FBs. Por exemplo, o BufferMode pode especificar que um comando
interrompa outro comando (modo não sequencial) ou que o comando seguinte só será executado
após o comando anterior (modo sequencial). No modo sequencial, o BufferMode pode ser usado
para especificar a transição do movimento de um comando para o próximo. Isso é conhecido como
blending, que especifica a velocidade para o ponto de transição. Uma segunda instância da FB é
necessário para usar BufferMode. Não é possível fazer o trigger da mesma FB com novos parâmetros
de entrada enquanto a FB estiver ativa.
No modo não enfileirado (não sequencial), o comando subsequente leva ao término de um comando
em execução. Neste caso, o comando anterior coloca a saída CommandAborted a TRUE. No modo
enfileirado (sequencial), um comando subsequente espera até que um comando em execução seja
concluído. Chamo à atenção que em um movimento infinito (MC_MoveVelocity) não é possível em
um comando enfileirado. Neste caso um comando enfileirado leva imediatamente a abortar o
movimento, como em uma operação não sequencial. Apenas um comando é colocado na fila da
sequência enquanto outro o comando é executado. Se mais de um comando for acionado durante a
execução de um comando, o último comando iniciado a ser colocado na fila será rejeitado com um
erro (error 0x4292 - Buffer cheio). Se o último comando for iniciado no modo não enfileirado
(Aborting), torna-se ativo e interrompe a execução de um comando já enfileirado.
BufferModes :
Aborting(=0): Modo padrão sem buffer. O comando é executado imediatamente e interrompe
qualquer outro comando que possa estar em execução. Buffered(=1): O comando só é executado
quando não há outro comando ativo. O movimento anterior continua até ser interrompido. O
comando seguinte é iniciado a partir da paragem. Movimento de P0 para P1 e depois para P2.
BlendingLow(=2): O comando só é executado quando não há outro. O eixo não para no destino
anterior, mas passa por essa posição com a velocidade mais baixa dos dois comandos.
BlendingPrevious(=3): O comando é executado quando não há outro. O eixo não para no destino
anterior, mas passa por esta posição com a velocidade do primeiro comando.
BlendingHigh(=4): O comando só é executado quando não há outro. O eixo não para no destino
anterior, mas passa por esta posição à velocidade maior dos dois comandos. BlendingNext(=5): O
comando é executado quando não há outro. O eixo não para no destino anterior, mas passa por esta
posição com a velocidade do último comando.
[asaTek / J.Andril] 84
BRESIMAR AUTOMAÇÃO Capítulo IV
IV-3.2 – Funções Bloco de organização de eixo
MC_POWER – FB “Administrative” / ”Axis Functions” - Habilitar o controlador de um eixo
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O primeiro passo para manusear um eixo é habilitar o movimento desse eixo, ativando o seu controlador
(“Enabling” / ”Controller”), os movimentos que pretendemos ter (“Enabling_Positive” / “Feed Fw” e ou “Enabling
Negative” / “Feed Bw”) e a gama de velocidade para o movimento (“Override”, que é uma percentagem da
velocidade máxima). A FB da livraria TcMc2.lib, que executa este serviço de um modo automático no programa
do PLC é a FB “MC_Power”. Através da variável de saída “Status” percebemos se temos o eixo ativo e pronto.
II - PARÂMETROS DA FUNÇÃO BLOCO
ATIVAR CONTROLADOR DE EIXO
MANUAL
VAR_INPUT
+ “Enable”, habilita o eixo. Nesta entrada podemos colocar o sinal de informação do “Stop de Emergência” (NF).
Ao desabilitar o controlador, o eixo fica sem movimento (fica “solto”).
+ “Enabled_positive”(“Feed Fw”) e “Enabled negative”(“Feed Bw”) ativa os movimentos para a frente e para
trás. Podemos colocar aqui, os fins de curso de limite do eixo. Uma vez ativo o fim de curso “+”, o “Feed Fw” ficaria
desabilitado, impedindo assim que o eixo se desloque mais para a frente. O mesmo acontece com o “Feed Bw”.
+ “Override”, estipula a escala máxima (em %) para a velocidade do movimento do eixo.
+ “Buffer Mode”, modo de funcionamento do movimento. O modo de defeito MC_Aborting (=0) é sem Buffer. O
comando é executado imediatamente e interrompe qualquer outro comando que possa estar em execução.
VAR_OUTPUT
+ “Status” a TRUE indica que o controlador do eixo está habilitado e pronto para ser operado.
+ “Busy” a TRUE indica que a FB está ocupada com o comando de “Enable” a TRUE.
+ “Active” a TRUE indica que o comando é executado.
+ “Error”/ ”ErrorID” a TRUE indica erro no eixo, com indicação do tipo através de um nº (ver tabela Axis Error).
VAR_IN_OUT
+ “Axis” estrutura de dados AXIS_REF de comunicação entre o PLC NC.
[asaTek / J.Andril] 85
BRESIMAR AUTOMAÇÃO Capítulo IV
MC_RESET – FB “Administrative”/ ”Axis Functions” - Reiniciar o controlador de um eixo
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O “MC_Reset” faz o reiniciar do controlo de acionamento do eixo NC. Dependendo do sistema de barramento
(fieldbus) ou do tipo de acionamento, em alguns casos, um reset separado pode ser necessário para cada uma das
unidades de controlo do acionamento. É muito útil para eliminar eventuais erros, que poderão surgir no Eixo e
que fazem com que este deixe de funcionar e pare o movimento. Por esse motivo, esta FB pode ser usada em
conjunto com a deteção de erro no controlador do eixo (“Error”). Significa que esta FB faz a transição do estado
do controlador de “ErrorStop” para “StandStill” ou de “Disabled”, eliminando todos os erros internos relacionados
com o eixo. Não afeta as saídas das instâncias do FB.
II - PARÂMETROS DA FUNÇÃO BLOCO
RESET DO CONTROLADOR DE EIXO
VAR_INPUT
+ “Execute” Faz a função de reset, na transição positiva (rising edge) da ordem de execução. O fato de se manter
a TRUE o sinal de “Execute” não mantem constante a funcionalidade da FB.
VAR_OUTPUT
+ “Done” a TRUE indica que a FB foi executada com sucesso. É colocada a FALSE assim que o comando “Execute”
passe a FALSE. Caso o sinal “Execute” passe a FALSE, antes da saída “Done” informar, este nunca passara a TRUE.
+ “Busy” a TRUE indica que a FB está ocupada com o comando de “Execute” a TRUE. A saída “Busy” torna-se TRUE
quando o comando é iniciado com “Execute” e permanece TRUE enquanto o comando é processado. Se “Busy”
se tornar FALSE novamente, a FB está pronta para um novo comando. Ao mesmo tempo, uma das saídas, “Busy”
ou “Error”, é acionada (TRUE) .
+ “Error”/ ”ErrorID” a TRUE indica erro no eixo, com indicação do tipo através de um nº (ver tabela Axis Error no
final deste livro – Anexo B e C). O erro só passa a FALSE quando for detetado um novo pedido de “Execute”. O
fato de colocarmos o comando de “Execute” a FALSE não elimina o erro, se continuar a existir.
VAR_IN_OUT
+ “Axis” estrutura de dados AXIS_REF de comunicação entre o PLC NC.
[asaTek / J.Andril] 86
BRESIMAR AUTOMAÇÃO Capítulo IV
MC_JOG – FB “Motion”/ ”Manual Motion” – Ordem de movimento manual de um eixo
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O “MC_Jog” permite que um eixo seja movido por meio de comandos manuais. O sinal de um comando pode ser
ligado às entradas “JogForward” ou “JogBackwards”. O modo de operação necessário é especificado por meio
da entrada “Mode”. Podemos ter um modo de mover o eixo para uma cota especifica, sempre que uma tecla é
pressionada, por exemplo. Esta FB é muito útil para executar o Modo Manual em uma máquina automática.
II - PARÂMETROS DA FUNÇÃO BLOCO
MOVIMENTO MANUAL
VAR_INPUT
+ “JogForward” e “JogBackwards” permite manobrar o movimento do eixo, em modo manual, no sentido (+) e
no (-). As ordens são executadas enquanto estiver a TRUE. Só é permitido um destes comandos em simultâneo.
+ “Mode” especifica o modo de funcionamento que pretendemos. Podemos ter um dos seguintes:
- MC_JOGMODE_STANDARD_SLOW (=0) – Usa a velocidade lenta parametrizada no “MOTION”.
- MC_JOGMODE_STANDARD_FAST (=1) – Usa a velocidade rápida parametrizada no “MOTION”.
- MC_JOGMODE_CONTINOUS (=2) – Usa a velocidade especificada nesta FB em “Velocity”.
- MC_JOGMODE_INCHING (=3) – Desloca-se por incrementos posicionais (“Position”).
+ “Position” valor de incrementos com que se pretende que o eixo se desloque (com MC_JOGMODE_INCHING).
+ “Velocity” valor da velocidade com que se pretende que o eixo se desloque (com MC_JOGMODE_CONTINOUS).
+ “Acceleration”, “Deceleration”, “Jerk” são tudo valores referentes à dinâmica do movimento. Se não são
preenchidos (ou colocado a 0) estes assumem o valor parametrizado para o Eixo, no “MOTION”.
VAR_OUTPUT
+ “Done” e “Busy” a TRUE indica que o movimento foi completado com sucesso e a FB está ativa.
+ “Active” a TRUE indica que o eixo está em movimento, via FB de Jog.
+ “Command Aborted” a TRUE indica que o processo foi interrompido por um evento externo, por exemplo ordem
de Stop de uma instância da FB MC_Stop.
+ “Error”/ ”ErrorID” a TRUE indica erro no eixo, com indicação do tipo através de um nº (ver tabela Axis Error).
VAR_IN_OUT
+ “Axis” estrutura de dados AXIS_REF de comunicação entre o PLC NC.
[asaTek / J.Andril] 87
BRESIMAR AUTOMAÇÃO Capítulo IV
MC_MOVEABSOLUTE – FB “Motion”/ ”Point to point” – Ordem de movimento para uma cota absoluta
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O “MC_MoveAbsolute” permite deslocar um eixo para uma posição (Position) com cota absoluta, a uma dada
velocidade (“Velocity”). O movimento do eixo é monitorizado ao longo de todo o percurso. A saída “Done” é feita
(TRUE) assim que a posição alvo (cota absoluta) seja alcançada. Caso contrário, a saída “CommandAborted” ou,
em caso de erro, a saída “Error” é acionada. Esta FB é muito usada em movimentos lineares.
II - PARÂMETROS DA FUNÇÃO BLOCO
MOVIMENTO PARA COTA ABSOLUTA
VAR_INPUT
+ “Execute” permite executar um movimento do eixo, em modo automático, para uma dada cota absoluta
(“Position”) a uma dada velocidade (“Velocity”). Esta ordem é executada, na transição positiva (rising edge) do
comando. A ordem de paragem do movimento do eixo pode ser feita por uma instância da FB MC_Stop.
+ “Position” valor da cota absoluta da posição a cumprir pelo eixo.
+ “Velocity” valor da velocidade (> 0) com que o eixo deverá deslocar-se para a cota absoluta.
+ “Acceleration”, “Deceleration”, “Jerk” são tudo valores referentes à dinâmica do movimento. Se não são
preenchidos (ou colocados a 0) estes assumem o valor parametrizado para o Eixo, no “MOTION”.
+ “Buffer Mode”, modo de funcionamento do movimento. O modo de defeito MC_Aborting (=0) é sem Buffer. O
comando é executado imediatamente e interrompe qualquer outro comando que possa estar em execução.
+ “Options” para parâmetros adicionais (entrada raramente usada). Fica sem entrada atribuída.
VAR_OUTPUT
+ “Done” e “Busy” a TRUE indica que a cota definida foi alcançada (“Done”) com sucesso e a FB está ativa (“Busy”).
+ “Active” a TRUE indica que o eixo está em movimento, via FB de Jog.
+ “Command Aborted” a TRUE indica que o processo foi interrompido (cota não atingida), por um evento externo
(por exemplo uma ordem de Stop de uma instância da FB MC_Stop).
+ “Error”/ ”ErrorID” a TRUE indica erro no eixo, com indicação do tipo através de um nº (ver tabela de erros).
VAR_IN_OUT
+ “Axis” estrutura de dados AXIS_REF de comunicação entre o PLC NC.
[asaTek / J.Andril] 88
BRESIMAR AUTOMAÇÃO Capítulo IV
MC_MOVERELATIVE – FB “Motion”/ ”Point to point” – Ordem de movimento para uma distância relativa
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O “MC_MoveRelative” permite deslocar um eixo uma distância (“Distance”) relativa a posição atual, a uma dada
velocidade (“Velocity”). O movimento do eixo é monitorizado ao longo de todo o percurso. A saída “Done” é feita
(TRUE) assim que a posição alvo (cota relativa) seja alcançada. Caso contrário, a saída “CommandAborted” ou, em
caso de erro, a saída Error é acionada.
II - PARÂMETROS DA FUNÇÃO BLOCO
MOVIMENTO PARA COTA RELATIVA
VAR_INPUT
+ “Execute” permite executar um movimento do eixo, em modo automático, para uma dada cota relativa
(Position) a uma dada velocidade (Velocity). Esta ordem é executada, na transição positiva (rising edge) do
comando. A ordem de paragem do movimento do eixo pode ser feita por uma instância da FB MC_Stop.
+ “Distance” valor da distância relativa, em relação à posição atual, a cumprir pelo eixo.
+ “Velocity” valor da velocidade (> 0) com que o eixo deverá deslocar-se para a cota absoluta.
+ “Acceleration”, “Deceleration”, “Jerk” são tudo valores referentes à dinâmica do movimento. Se não são
preenchidos (ou colocados a 0) estes assumem o valor parametrizado para o Eixo, no “MOTION”.
+ “Buffer Mode”, modo de funcionamento do movimento. O modo de defeito MC_Aborting (=0) é sem Buffer. O
comando é executado imediatamente e interrompe qualquer outro comando que possa estar em execução.
+ “Options” para parâmetros adicionais (entrada raramente usada). Fica sem entrada atribuída.
VAR_OUTPUT
+ “Done” e “Busy” a TRUE indica que a cota definida foi alcançada (“Done”) com sucesso e a FB está ativa (“Busy”).
+ “Active” a TRUE indica que o eixo está em movimento, via FB de Jog.
+ “Command Aborted” a TRUE indica que o processo foi interrompido (cota não atingida), por um evento externo
(por exemplo uma ordem de Stop de uma instância da FB MC_Stop).
+ “Error”/ ”ErrorID” a TRUE indica erro no eixo, com indicação do tipo através de um nº (ver tabela de erros).
VAR_IN_OUT
+ “Axis” estrutura de dados AXIS_REF de comunicação entre o PLC NC.
[asaTek / J.Andril] 89
BRESIMAR AUTOMAÇÃO Capítulo IV
MC_MOVEVELOCITY – FB “Motion”/ ”Point to Point” – Ordem de movimento com velocidade constante
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O “MC_MoveVelocity” inicia um movimento contínuo com velocidade e direção especificada. A saída “InVelocity”
é acionada quando a velocidade constante é alcançada. Uma vez a velocidade constante seja alcançada, a FB está
finalizada e nenhuma monitorização adicional do movimento ocorrerá. Se o comando for abortado durante a fase
de aceleração, o “CommandAborted” ou, em caso de erro, a saída “Error” é ativada.
II - PARÂMETROS DA FUNÇÃO BLOCO
VARIAÇÃO DE VELOCIDADE
VAR_INPUT
+ “Execute” permite executar um movimento continuo do eixo a uma dada velocidade. Esta ordem é executada,
na transição positiva (rising edge) do comando. A ordem de paragem do movimento do eixo pode ser feita por
uma instância da FB MC_Stop.
+ “Velocity” valor da velocidade (> 0) com que o eixo deverá rodar continuamente.
+ “Acceleration”, “Deceleration”, “Jerk” são tudo valores referentes à dinâmica do movimento. Se não são
preenchidos (ou colocados a 0) estes assumem o valor parametrizado para o Eixo, no “MOTION”.
+ “Direction” sentido de rotação do eixo (ex. MC_Positive_Direction:=1, MC_Shortest_Way:=2,
MC_Negative_Direction :=3, MC_Current_Direction:=4 ).
+ “Buffer Mode”, modo de funcionamento do movimento. O modo de defeito MC_Aborting (=0) é sem Buffer. O
comando é executado imediatamente e interrompe qualquer outro comando que possa estar em execução.
+ “Options” para parâmetros adicionais (entrada raramente usada). Fica sem entrada atribuída.
VAR_OUTPUT
+ “InVelocity” e “Busy” a TRUE indica que a velocidade definida foi alcançada (“InVelocity”) e passa a FALSE
quando a velocidade difere do proposto e a FB está ativa (“Busy”).
+ “Active” a TRUE indica que o comando está ativo.
+ “Command Aborted” a TRUE indica que o processo foi interrompido , por um evento externo (por exemplo uma
ordem de Stop de uma instância da FB MC_Stop).
+ “Error” / ”ErrorID” a TRUE indica erro no eixo, com indicação do tipo através de um nº (ver tabela de erros).
VAR_IN_OUT
+ “Axis” estrutura de dados AXIS_REF de comunicação entre o PLC NC.
[asaTek / J.Andril] 90
BRESIMAR AUTOMAÇÃO Capítulo IV
MC_READACTUALPOSITION – FB “Administrative”/ ”Status & Parameter” – Leitura contínua da posição (cota)
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O “MC_ReadActualPosition” lê e monitoriza a posição (cota) real indicada pelo controlador do eixo.
II - PARÂMETROS DA FUNÇÃO BLOCO
LEITURA DA POSIÇÃO REAL
VAR_INPUT
+ “Enable” permite a leitura continua da cota da posição do eixo (Enable sempre a TRUE).
VAR_OUTPUT
+ “Valid” a TRUE indica que o valor da posição (“Position”) é valido.
+ “Busy” a TRUE indica que a FB esta ativa.
+ “Error” / ”ErrorID” a TRUE indica erro no eixo, com indicação do tipo através de um nº (ver tabela de erros).
+ “Position” mostra a posição real do eixo.
VAR_IN_OUT
+ “Axis” estrutura de dados AXIS_REF de comunicação entre o PLC NC.
Exemplo do programa com a FB MC_ReadActualPosition , em ST :
[asaTek / J.Andril] 91
BRESIMAR AUTOMAÇÃO Capítulo IV
MC_READACTUALVELOCITY – FB “Administrative”/”Status & Parameter” – Leitura contínua da velocidade
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O “MC_ReadActualVelocity” lê e monitoriza a velocidade real indicada pelo controlador do eixo.
II - PARÂMETROS DA FUNÇÃO BLOCO
LEITURA DA VELOCIDADE REAL
VAR_INPUT
+ “Enable” permite a leitura contínua da velocidade real do eixo (Enable sempre a TRUE).
VAR_OUTPUT
+ “Valid” a TRUE indica que o valor da velocidade (“Actualvelocity”) é valida.
+ “Busy” a TRUE indica que a FB esta ativa.
+ “Error” / ”ErrorID” a TRUE indica erro no eixo, com indicação do tipo através de um nº (ver tabela de erros).
+ “ActualVelocity” mostra a velocidade real do eixo.
VAR_IN_OUT
+ “Axis” estrutura de dados AXIS_REF de comunicação entre o PLC NC.
Exemplo de programa com a FB MC_ReadActualVelocity , em ST :
[asaTek / J.Andril] 92
BRESIMAR AUTOMAÇÃO Capítulo IV
MC_GEARIN – FB “Motion”/ ”Gearing” – Acoplar um movimento a um eixo master
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O “MC_GearIn” ativa um acoplamento linear de um eixo (slave) a um outo eixo (master). Corresponde a um
acoplamento por engrenagem. Este acoplamento aceita uma relação de transmissão fixa com um formato de
numerador/denominador. O eixo slave pode ser acoplado ao eixo master só quando este estiver parado. Esta FB
não pode ser usada para sincronizar um eixo a um master enquanto este estiver em movimento. Neste caso,
existem FBs, pertencentes à livraria MC_Flying Saw (MC_GearInVelo ou MC_GearInPos), que podem ser usados.
Esta FB não permite ajustar a relação de transmissão em modo dinâmico, para isso existe a FB MC_GearInDyn
que o permite fazer a cada ciclo do programa do PLC
II - PARÂMETROS DA FUNÇÃO BLOCO
ACOPLAR EIXOS
VAR_INPUT
+ “Execute” permite executar o acoplamento do eixo. Esta ordem é executada, na transição positiva (rising edge).
+ “RadioNumerator” numerador da relação de transmissão (podemos escrever com virgula mas o denominador
terá de ser = 1).
+ “RadioDenominator” denominador da relação de transmissão.
+ “Acceleration”, “Deceleration”, “Jerk” (não implementada)
+ “Buffer Mode” (não implementada)
+ “Options” (não implementada)
VAR_OUTPUT
+ “InGear” a TRUE indica que o acoplamento foi feito com sucesso.
+ “Busy” a saída “Busy” torna-se TRUE quando o comando é iniciado com Execute e permanece TRUE enquanto o
comando é processado. Se “Busy” se tornar FALSE novamente, a FB está pronta para um novo comando.
+ “Active” a TRUE indica que comando executado (geralmente o Active = Busy).
+ “Command Aborted” a TRUE indica que o processo foi interrompido (acoplamento não executado) por ordem
de outro comando em simultâneo.
+ “Error” / ”ErrorID” a TRUE indica erro no eixo, com indicação do tipo através de um nº (ver tabela de erros).
VAR_IN_OUT
+ “Master” estrutura de dados AXIS_REF,do eixo master. Comunicação entre o PLC NC.
+ “Slave” estrutura de dados AXIS_REF,do eixo slave. Comunicação entre o PLC NC.
[asaTek / J.Andril] 93
BRESIMAR AUTOMAÇÃO Capítulo IV
MC_GEAROUT– FB “Motion”/ ”Gearing” – Desacoplar movimento a um eixo master
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O “MC_GearOut” desacopla o eixo slave do eixo master selecionado. Se o eixo slave for desacoplado em
movimento este mantêm a sua velocidade até o eixo parar, usando as FBs MC_Stop ou MC_Halt.
II - PARÂMETROS DA FUNÇÃO BLOCO
DESACOPLAR EIXOS
VAR_INPUT
+ “Execute” permite executar o acoplamento do eixo. Esta ordem é executada, na transição positiva (rising edge).
+ “Options” (não implementada)
VAR_OUTPUT
+ “Done” e “Busy” a TRUE indica que a FB está ocupada a executar o desacoplamento com sucesso.
+ “Error” / ”ErrorID” a TRUE indica erro no eixo, com indicação do tipo através de um nº (ver tabela de erros).
VAR_IN_OUT
+ “Slave” estrutura de dados AXIS_REF,do eixo slave. Comunicação entre o PLC NC.
[asaTek / J.Andril] 94