BRESIMAR AUTOMAÇÃO Capítulo IV
MC_READAXISERROR – FB “Administrative”/”Status & Parameter” – Leitura de erro no eixo
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O “MC_ReadAxisError” lê o código de erro, existente no controlador do eixo.
II - PARÂMETROS DA FUNÇÃO BLOCO
VAR_INPUT
+ “Enable” permite a leitura continua do erro que possa existir no controlador do eixo (Enable sempre a TRUE).
VAR_OUTPUT
+ “Valid” / ”Busy” a TRUE indica que a FB se ocupa a indicar o erro (axiserrorid) valido.
+ “Error” / ”ErrorID” a TRUE indica erro no eixo, com indicação do tipo através de um nº (ver tabela de erros).
+ “AxisErrorID” mostra o erro existente no eixo.
VAR_IN_OUT
+ “Axis” estrutura de dados AXIS_REF de comunicação entre o PLC NC.
Exemplo de lista de erros no Beckhoff Information System (pode tambem ver nos Anexos B e C deste livro):
[asaTek / J.Andril] 95
BRESIMAR AUTOMAÇÃO Capítulo IV
MC_HOME – FB “Motion”/”Homing” – Ordem de executar referencia de “zero maquina”
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O “MC_Home” inicia um movimento de calibração para executar o “zero maquina”. Isto corresponde, na maioria
das aplicações, a procura do sensor de “zero” do eixo da máquina. Existem diversos tipos de procedimento de
“zerar maquina”. Esses procedimentos podem ser parametrizados na pasta do encoder no System Manager.
II - PARÂMETROS DA FUNÇÃO BLOCO
EXECUTAR “ZERO MÁQUINA”
VAR_INPUT
+ “Execute” permite executar o procedimento de “zerar a mÁquina” (referência) com um comando rising edge.
+ “Position” trata-se do valor de posição (cota) que se pretende com que o eixo fique apos concluir o processo de
Home. Com DEFAULT_HOME_POSITION (=0) temos o valor no “MOTION” – Homing: Calibration value.
+ “HomingMode” determina qual procedimento usado para executar o “zero”. Podemos ter os seguintes :
- MC_DEFAULTHOMING (=0) – Procedimento standard de “zerar mÁquina” (definido no “MOTION”).
- MC_DIRECT (=4) – Define diretamente a posição, com o valor de Position, sem necessidade de movimento.
- MC_FORCECALIBRATION (=7) – Força o eixo ao estado de “axis calibrated” (não há movimento).
- MC_RESETCALIBRATION (=8) – Faz o reset à referenciação do eixo. (não há movimento).
+ “Buffer Mode” / “Options” (Buffer Mode - não implementada) ; (Options – raramente usada)
+ “bCalibrationCam” fim de curso da CAM de “zero máquina” (entrada digital). Quando o eixo está a ser
referenciado (homing) e se o sinal do fim de curso, da CAM de “zero da maquina”, passar a TRUE (posição 3 , no
diagrama da figura de cima) o movimento inverte de sentido (posição 4) até o sinal do fim de curso da CAM passar
a FALSE (posição 5). Mesmo depois do fim de curso passar a FALSE o movimento prossegue até o sistema
encontrar o sinal de synchronization pulse do encoder (posição 6). Depois calcula a posição (cota) zero do eixo.
VAR_OUTPUT
+ “Done”/”Busy” /”Active” a TRUE indica que a maquina se encontra “zerada” e esta em standstill. “Busy” a TRUE
indica que a FB está ocupada a executar a tarefa de home. “Active” não está implementada.
+ “Command Aborted” a TRUE indica que o procedimento de homing não foi concluído.
+ “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] 96
BRESIMAR AUTOMAÇÃO Capítulo IV
MC_STOP – FB “Motion”/ ”Point to point” – Ordem de paragem de EMERGÊNCIA do movimento
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O “MC_Stop” para um eixo com uma rampa de frenagem definida e bloqueia-o contra novos comandos de
movimentação. Esta FB é adequado para paragens em situações especiais (Emergência). Alternativamente, o eixo
pode ser parado com MC_Halt sem bloqueio do eixo. O MC_Halt é preferível para movimentos normais.
Os comandos de movimentação podem ser aplicados aos eixos Slave acoplados, se esta opção foi ativada nos
parâmetros desse eixo. Este comando de MC_MoveStop, conduz automaticamente ao desacoplamento do eixo.
II - PARÂMETROS DA FUNÇÃO BLOCO
VAR_INPUT
+ “Execute” permite executar a paragem de emergência do eixo. O comando é executado com a transição positiva
(rising edge) do Execute. O eixo fica travado / bloqueado durante a paragem. O eixo só pode ser reiniciado quando
o sinal Execute passar a FALSE, após o eixo ficar parado. Alguns ciclos são necessários para o libertar, após o flanco
descendente (falling edge) do Execute. O bloqueio do eixo é cancelado com um MC_Reset.
+ “Deceleration” valor da desaceleração (≥0). Se o valor for 0, é o ultimo valor usado pela ultima ordem de Move.
+ “Jerk” valor do jerk (> 0). Se for 0, é o ultimo valor usado pela ultima ordem de Move.
+ “Options” para parâmetros adicionais (entrada não implementada). Fica sem entrada atribuída.
VAR_OUTPUT
+ “Done” fica a TRUE quando o eixo parou e está estacionário (standstill).
+ “Busy” a TRUE indica que a FB foi iniciada com Execute e permanece enquanto estiver a ser processada. Se o
Busy passa a FALSE novamente, a FB está pronto para nova tarefa. O Busy permanece a TRUE enquanto o eixo
estiver bloqueado. O eixo é destravado e o Busy passa a FALSE quando Execute é colocado a FALSE.
+ “Active” a TRUE indica que a FB controla o eixo. Permanece a TRUE enquanto o eixo estiver bloqueado. O eixo
só é desbloqueado e o Busy torna-se FALSE, quando o Execute for FALSE.
+ “Command Aborted” a TRUE indica que o processo não foi completamente executado.
+ “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] 97
BRESIMAR AUTOMAÇÃO Capítulo IV
MC_HALT – FB “Motion”/ ”Point to point” – Ordem de paragem controlada do movimento
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O “MC_Halt” para um eixo com uma rampa de frenagem definida e não fica bloqueado a novas ordens de
movimentação. O eixo pode ser reiniciado ainda durante a rampa de frenagem ou após a sua paragem.
Os comandos de movimentação podem ser aplicados aos eixos slave acoplados, se esta opção foi ativada nos
parâmetros do eixo. Um comando de movimento como MC_Halt conduz automaticamente ao desacoplamento
do eixo, após o qual o comando é executado. Neste caso, apenas Buffer-ModeAborting é possível.
II - PARÂMETROS DA FUNÇÃO BLOCO
VAR_INPUT
+ “Execute” executar a paragem do eixo, com a transição positiva (rising edge)
+ “Deceleration” /”Jerk” valor da desaceleração e jerk (≥0). Se o valor for 0, é o ultimo valor usado.
+ “BufferMode” é analisado, caso o eixo já esteja a executar outro comando. O comando pode ser abortado ou o
novo comando torna-se ativo após o comando em execução. O BufferMode também determina a condição de
transição do comando atual para o próximo. Se o comando for aplicado a um eixo slave acoplado , o único
BufferMode disponível é o Aborting.
Características especiais do MC_Halt: O modo MC_buffer não tem efeito, se o comando for executado com o
sistema parado. Os modos MC_BlendingNext e MC_BlendingLow não alteram a última posição do alvo, embora
possam resultar em uma alteração da desaceleração da rampa de paragem. Os modos MC_BlendingPrevious e
MC_BlendingHigh estendem o percurso até a posição de destino, original. A rampa de paragem somente é iniciada
quando esta posição é alcançada (ponto de frenagem definido).
+ “Options” para parâmetros adicionais (entrada não implementada). Fica sem entrada atribuída.
VAR_OUTPUT
+ “Done” a TRUE indica que o eixo foi parado e ficou no estado de repouso (standstill).
+ “Busy” a TRUE indica que a FB foi iniciada com Execute e permanece enquanto estiver a ser processada. Se o
Busy passa a FALSE, a FB está pronto para nova tarefa.
+ “Active” a TRUE indica que a FB é executada.
+ “Command Aborted” a TRUE indica que o processo não foi completamente executada.
+ “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] 98
BRESIMAR AUTOMAÇÃO Capítulo IV
IV-4 – Resumo das FB e FUN da livraria Tc_MC2.lib (versão 2)
Na tabela seguinte estão as FB da livraria Tc_MC2.lib (versão 2) mais usadas nos sistemas de motion. Ver as
restantes no Information System no site da BECKHOFF.
TABELA RESUMO DAS PRINCIPAIS FB E FUN DA LIVRARIA Tc_MC2.lib
Administrative - Funções Bloco de organização de motion
Axis functions
MC_Power – Aciona o controlador de um eixo. O primeiro passo
para manusear um eixo é habilitá-lo para o movimento, 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).
Status and Parameter MC_Reset – Reinicia o controlador de um eixo. Dependendo do
sistema de barramento (fieldbus) ou do tipo de acionamento, em
alguns casos, um reset pode ser necessário para cada uma das
unidades de controlo do motion. É 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.
MC_SETPOSITION –Define a posição atual do eixo como valor de
setpoint da posição (Position), sem necessitar de nenhum
movimento. No modo absoluto, a posição real é definida para o
valor set point definido. No modo relativo, a posição real é ajustada
(offset) com o valor de setpoint indicado em Position. Um exemplo
do uso desta FB é a execução do “zero maquina”. Deve ser usado
com o motor parado.
MC_ReadActualPosition – Lê e monitoriza a posição (cota) real
indicado pelo controlador do eixo.
MC_ReadActualVelocity – Lê e monitoriza a velocidade real
indicada pelo controlador do eixo.
MC_ReadAxisError – Lê o código de erro, existente no controlador
do eixo.
[asaTek / J.Andril] MC_ReadAxisComponents – É usado para ler informações
relacionadas com componentes do sistema de motion tais como, o
encoder, inverter ou o drive do eixo do TwinCAT NC.
MC_ReadBoolParameter – É usado para ler os parâmetros
booleanos do eixo do TwincaT NC.
99
BRESIMAR AUTOMAÇÃO Capítulo IV
Touch Probe MC_ReadParameter – É usado para ler os parâmetros específicos
External set value generator (ParameterNumber) do eixo do TwincaT NC.
[asaTek / J.Andril] MC_ReadParameterSet – É usado para ler os parâmetros
completos (Parameter) do eixo do TwinCAT NC.
MC_ReadStatus– Esta FB determina o estado operacional atual de
um eixo do TwinCAT NC e sinaliza-o nas respetivas saídas da Função
Bloco (ex. Stopping, StandStill, Homing, Constant Velocity, etc).
O estado operacional atualizado é adicionalmente armazenado na
estrutura de dados de saída de status e na estrutura de dados do
eixo Axis.Status. Isso significa que o estado operacional só precisa
ser lido uma vez no início de cada ciclo do PLC e é lido via
Axis.Status.
MC_WriteBoolParameter – É usado para escrever parâmetros
booleanos de um eixo do TwinCAT NC.
Existe tambem uma FB para escrever parâmetros boloeanos
permanentes em memórias do tipo “Persistent”. Essa FB é a
MC_WriteBoolParameterPersistente.
MC_WriteParameter – É usado para escrever os parâmetros, não
booleanos, de um eixo do TwinCAT NC.
Existe tambem uma FB para escrever parâmetros inteiros
permanentes em memórias do tipo “Persistent”. Essa FB é a
MC_WriteParameterPersistente.
Touch Probe são “apalpadores” que são concebidos para serem
utilizados em máquinas-ferramentas (ex. Heidenhain), fresadoras e
ou centros de maquinação. Os “apalpadores” ajudam a reduzir os
tempos de configuração, aumentar o tempo de uso da máquina e
melhorar a precisão dimensional das peças acabadas.
Esta livraria tem 4 Funções Bloco que permitem a utilização
funcional do Touch Probe, aplicado aos sistemas de eixo TwinCAT
NC (MC_TouchProbe, MC_AbortTrigger)
Nota : Ver mais detalhes no Information System da Beckhoff.
O External set value generator (especificação de valor de ajuste
externo) permite a implementação de geradores individuais de
ajuste de valores (posição, velocidade, tempo, etc.), integrado no
programa do PLC do sistema TwinCAT. São muito usados para
perfis de movimentação dificeis de controlar ou não lineares (ex.
uma rampa de frenagem baseada na posição de eixos hidráulicos)
Esta livraria tem 4 Funções Bloco que permitem a utilização
funcional do External set value generator, aplicado aos sistemas de
eixo do softNC-NC TwinCAT NC ( MC_ExtSetPointGenEnable,
MC_ExtSetPointGenDisable, MC_ExtSetPointGenFeed )
Nota : Ver mais detalhes no Information System da Beckhoff.
100
BRESIMAR AUTOMAÇÃO Capítulo IV
Special extensions
MC_SelectControlLoop - Permite alternar entre os loops de
controlo de um eixo. O pré-requisito é que dois ou mais loops de
controlo tenham sido criados abaixo do eixo na configuração do
sistema.
MC_OverrideFilter - Converte um valor de override, não filtrado,
que consiste em dígitos (por exemplo, um valor de tensão de um
terminal de entrada analógica) em um valor de override filtrado
para a interface (PlcToNc) do eixo (DWORD com intervalo de 0 a
1000000) . Esse override filtrado também está disponível em
porcentagem (LREAL no intervalo de 0 a 100%). Podemos
considerar esta FB como um limitador para o valor de override.
MC_SetOverride – Podemos especificar o valor de override que
pretendemos no eixo.
MC_SetEncoderScalingFactor - Altera o fator de escala do encoder
, tanto em repouso quanto em movimento. A mudança pode ser
em absoluto ou em relativo. Este modo só é adequado em
standstill, pois no modo absoluto a mudança no fator de escala leva
a uma descontinuidade de posição. No modo relativo, um offset de
posição interna é adaptado ao mesmo tempo, de modo que
nenhuma descontinuidade ocorra. Observe que a intervenção
durante o movimento altera a velocidade real do eixo enquanto a
velocidade real permanece constante. Portanto, apenas pequenas
mudanças podem ser implementadas durante o movimento.
MC_PositionCorrectionLimiter - Grava um valor de correção
(PositionCorrectionValue) na posição real de um eixo. Dependendo
do modo de correção, os dados são alimentados diretamente ou
filtrados para o eixo.
MC_ReadDriveAddress - Lê os dados por ADS de um dispositivo de
acionamento, conectado ao eixo. Essas informações são
necessárias para aceder a um dispositivo, por exemplo, para uma
parametrização especial.
MC_SetAcceptBlockedDriveSignal - Existem situações em que um
drive não segue mais os valores definidos para o eixo NC , por ex.
se um eixo atinge um fim de curso de limite. O NC interpreta tal
situação como um erro e o drive é parado. Em alguns casos, o
utilizador pode querer provocar tal situação deliberadamente, por
exemplo, a fim de mover para um fim de curso de limite para uma
execução de referência.
Motion - Funções Bloco para movimentação de um eixo
Homing
MC_Home - Inicia um movimento de calibração de “zero maquina”.
Isto corresponde, na maioria das aplicações, a procura do sensor de
“zero” do eixo da máquina. Existem diversos tipos de procedimento
de “zerar maquina”. Esses procedimentos podem ser
parametrizados na pasta do encoder no System Manager.
Manual motion MC_Jog - Permite que um eixo seja movido por meio de comandos
[asaTek / J.Andril] manuais. 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.
101
BRESIMAR AUTOMAÇÃO Capítulo IV
Gearing
MC_GearIn - Ativa um acoplamento linear de um eixo (slave) a um
outo eixo (master). Corresponde a um acoplamento por
engrenagem. O eixo slave pode ser acoplado ao eixo master só
quando este estiver parado.
MC_GearInDyn - Ativa um acoplamento master-slave linear
(acoplamento de engrenagem). A relação de engrenagem pode ser
ajustada dinamicamente durante cada ciclo do PLC.
MC_GearOut - Desacopla o eixo slave do eixo master selecionado.
MC_GearInMultiMaster – Serve para ativar o acoplamentos
master / slave lineares (acoplamento de engrenagem) até quatro
eixos master diferentes. A relação de engrenagem pode ser
ajustada dinamicamente durante cada ciclo do PLC. O movimento
slave é determinado pelos movimentos master sobrepostos.
Superposition
MC_MoveSuperimposed - Inicia um movimento sobreposto
relativo, enquanto o eixo já se está a se mover. O movimento atual
não é interrompido.
[asaTek / J.Andril] Nota : Ver mais detalhes no Information System da Beckhoff.
MC_AbortSuperimposed - Termina um movimento sobreposto,
iniciado por MC_MoveSuperImposed, sem parar o movimento do
eixo subordinado.
102
BRESIMAR AUTOMAÇÃO Capítulo IV
Point to point motion
MC_MoveAbsolute - Permite deslocar um eixo para uma posição
[asaTek / J.Andril] (Position) com cota absoluta, a uma dada velocidade (“Velocity”). O
movimento do eixo é monitorizado ao longo de todo o percurso.
MC_MoveRelative - Permite deslocar um eixo em uma distância
(“Distance”) relativa à posição atual, a uma dada velocidade
(“Velocity”). O movimento do eixo é monitorizado ao longo de todo
o percurso.
MC_MoveAdditiive - Inicia o procedimento para um novo
movimento de posicão relativa, adicionando uma nova cota ao
ultimo comando de posicionamento, tenha ou não atingido a
posição anterior.
MC_MoveModule - É usado para executar uma operação de
posicionamento, que se refere à posição do módulo de um eixo.
Nota : Ver mais detalhes no Information System da Beckhoff.
MC_MoveVelocity - Inicia um movimento contínuo com velocidade
e direção especificada.
MC_MoveContinuousAbsolute - Começa o movimento para uma
posição de destino, com cota absoluta, monitorizando o
movimento do eixo em todo o percurso de deslocação. Na posição
de destino, uma velocidade final constante é alcançada, a qual é
mantida.
MC_MoveContinuousRelative - Começa o movimento para uma
posição destino, com cota relativa, monitorizando o movimento do
eixo ao longo de todo o percurso de deslocação. Na posição de
destino, uma velocidade final constante é alcançada, a qual é
mantida.
103
BRESIMAR AUTOMAÇÃO Capítulo IV
MC_Halt - Para um eixo com uma rampa de frenagem definida e
não fica bloqueado a novas ordens de movimentação. O eixo pode
ser reiniciado ainda durante a rampa de frenagem ou após a sua
paragem.
MC_Stop - Para um eixo com uma rampa de frenagem definida e
bloqueia-o contra novos comandos de movimentação. Esta FB é
adequado para paragens em situações especiais (Emergência).
[asaTek / J.Andril] 104
BRESIMAR AUTOMAÇÃO Capítulo V
V – Livraria de motion Tc2_MC2_FlyingSaw (ver. 2) para TwinCAT 3.1 NC-PTP
Apresentação da livraria Tc2_MC2_FlyingSaw (v.2) com Funções Bloco (FB) e Funções (FUN)
Em muitas unidades industriais e fábricas, existem máquinas que fazem maquinação de peças enquanto estas
estão a ser movimentadas. Para isso ser possível, é necessário sincronizar a posição e a velocidade de alimentação
da peça e da ferramenta de corte, para que esta possa ser aplicada como se fosse um bloco único. Um exemplo de
tal aplicação (ver figura anterior) é um disco de corte, que durante o processo de movimentação do material corta
o material em peças, através de uma “serra voadora” (Flying Saw). Para implementar este tipo de aplicação, o
TwinCAT NC-PTP fornece a livraria de flying saw Tc2_MC2_FlyingSaw (v.2).
O porquê da existência de maquinas industriais com tecnologia “on the fly” ?
A tecnologia "on the fly" pode ser usada se ocorreram , por exemplo, as seguintes condições :
● Quando é impossível parar o tapete de transporte de material, porque as forças de desaceleração ou
aceleração associadas ao movimento da carga não são faceis de ser controladas.
● Quando a paragem do tapete de transporte de material provoca a perda de qualidade do produto a fabricar
devido a subprocessos, levando ao aumento de desperdício ou redução da produtividade. (ex. linha de
extrusão).
● Quando temos, em uma peça, tipos de maquinação individuais muito diferentes. Desse modo teriamos
tempos de maquinação da peça, elevados, devido à necessidade de mudança de ferramentas. Colocando a
peça em movimento e utilizando centros de maquinação com mudança de ferramenta automática, a
maquinação seria feita em modo “on the fly e assim obteriamos processos mais eficazes e rapidos.
Esquema de principio funcional - Posto de corte de chapa por laser “flying saw”
[asaTek / J.Andril] 105
BRESIMAR AUTOMAÇÃO Capítulo V
O material (ex. chapa metálica) é fornecido ao sistema de corte, através de uma unidade de alimentação de chapa,
a uma velocidade constante, usando drives da Beckhoff (AX5000).
A posição do corte, na folha de chapa pode ser detetada, por exemplo, com um sensor que deteta uma marca
impressa na chapa que seve de referência ou através de um sistema de contagem (ex. encoder) que permite um
comprimento ajustável por um controlador de PTP, na máquina. Ao mesmo tempo, uma posição síncrona é
definida a partir da qual o equipamento de corte irá andar à velocidade idêntica à alimentação do material e a
sequência de corte pode ser iniciada. Após a conclusão do corte, o equipamento de corte, volta para a posição
inicial onde aguarda a próxima posição de corte.
[asaTek / J.Andril] 106
BRESIMAR AUTOMAÇÃO Capítulo V
Podemos ter outras variantes para o método de corte, tais como :
● Corte através de sensorização (sinal digital de entrada) – Nesta solução há um sensor indutivo que deteta uma
marca gravada no material, a cortar. Este sinal vai permitir iniciar a sincronização do eixo, com o sistema de corte.
Este método é mais económico e simples que o método anterior, mas menos versátil quando pretendemos
executar cortes de material de diversos comprimentos.
● Corte em comprimento – O material é cortado em comprimento, podendo o operador da serra programar
diversos comprimentos, através de uma HMI. O alimentador de material, da máquina de corte, fornece o
comprimento certo e pré-programado para se executar o corte.
V-1 – Arquitetura da livraria de motion Tc2_MC2_FlyingSaw.lib (versão 2)
Como vimos, em uma explicação breve anteriormente, em muitas fábricas existem postos de maquinação que
trabalham com a tecnologia de motion “flying saw”. Para podermos usar esta tecnologia de “flying saw” é
necessário trabalharmos com a livraria, para o TwinCAT PLC v3.1, Tc2_MC2_FlyingSaw.lib. Esta livraria já está
disponível na livraria (Resources /Motion / FlyingSaw) base do TwinCAT PLC 3.1 (por defeito, está instalada na
pasta TwinCAT/3.1/Components/PLC/Managed Libraries/Beckhoff Automation GmbH/) não necessitando licença.
Ao iniciarmos um novo projeto de automação, na pasta “PLC”, teremos de adicionar esta livraria
Tc2_MC2_FlyingSaw.lib na pasta dos References, como vemos na figura seguinte :
As Funções Bloco (FB) e Funções (FUN) que estão disponíveis na livraria Tc2_MC2_FlyingSaw.lib são 4 e são as
seguintes :
+ Funções Bloco (FB) Flying Saw:
Flying Saw
MC_GearInPos ;
MC_GearInVel ;
MC_ReadFlyingSawModeConversion
+ Funções (FUN) Flying Saw:
Version
F_GerVersion_TcMC2_FlyingSaw ;
[asaTek / J.Andril] 107
BRESIMAR AUTOMAÇÃO Capítulo V
As FBs necessitam da sctruct de dados AXIS_REF, que 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] 108
BRESIMAR AUTOMAÇÃO Capítulo V
A estrutura de dados ST_SyncMode define condições limite para o processo de sincronização, através de flags
(BOOL) individuais.
TYPE ST_SyncMode :
STRUCT
(* mode *)
GearInSyncMode : E_GearInSyncMode;
(* 32 bit check mask ... *)
GearInSync_CheckMask_MinPos : BOOL;
GearInSync_CheckMask_MaxPos : BOOL;
GearInSync_CheckMask_MaxVelo : BOOL;
GearInSync_CheckMask_MaxAcc : BOOL;
GearInSync_CheckMask_MaxDec : BOOL;
GearInSync_CheckMask_MaxJerk : BOOL;
GearInSync_CheckMask_OvershootPos : BOOL;
GearInSync_CheckMask_UndershootPos : BOOL;
GearInSync_CheckMask_OvershootVelo : BOOL;
GearInSync_CheckMask_UndershootVelo : BOOL;
GearInSync_CheckMask_OvershootVeloZero : BOOL;
GearInSync_CheckMask_UndershootVeloZero : BOOL;
(* operation masks ... *)
GearInSync_OpMask_RollbackLock : BOOL;
GearInSync_OpMask_InstantStopOnRollback : BOOL;
GearInSync_OpMask_PreferConstVelo : BOOL;
GearInSync_OpMask_IgnoreMasterAcc : BOOL;
END_STRUCT
END_TYPE
TYPE E_GearInSyncMode :
(
GEARINSYNCMODE_POSITIONBASED, (* synchronization based on the master position,
slave dynamics depend on master dynamics *)
GEARINSYNCMODE_TIMEBASED (* synchronization based on a standalone slave
PTP profile,master independet slave dynamics *)
);
END_TYPE
O perfil de movimento baseado no tempo (GEARINSYNCMODE_TIMEBASED) está implementado apenas para a
Função Bloco MC_GearInVelo.
A estrutura de dados MC_FlyingSawCharacValues, apresentada a seguir, tem os “parâmetros máquina tipo”
para o funcionamento de uma “serra voadora” (flying saw).
TYPE MC_FlyingSawCharacValues :
STRUCT
(* Master Velocity*)
fMasterVeloNom : LREAL;(* 1. master nominal velocity (normed: => 1.0) *)
(* characteristic slave data *)
(*===========================*)
(* Start of cam table *)
fMasterPosStart : LREAL; (* 2. master start position*)
fSlavePosStart : LREAL; (* 3. slave start position *)
fSlaveVeloStart : LREAL; (* 4. slave start velocity *)
fSlaveAccStart : LREAL; (* 5. slave start acceleration*)
fSlaveJerkStart : LREAL; (* 6. slave start jerk *)
[asaTek / J.Andril] 109
BRESIMAR AUTOMAÇÃO Capítulo V
(* End of cam table*)
fMasterPosEnd : LREAL; (* 7. master end position *)
fSlavePosEnd : LREAL; (* 8. slave end position *)
fSlaveVeloEnd : LREAL; (* 9. slave end velocity *)
fSlaveAccEnd : LREAL; (* 10. slave end acceleration *)
fSlaveJerkEnd : LREAL; (* 11. slave end jerk *)
(* minimum slave position *)
fMPosAtSPosMin : LREAL; (* 12. master position AT slave min position*)
fSlavePosMin : LREAL; (* 13. slave minimum position *)
(* minimum Slave velocity *)
fMPosAtSVeloMin : LREAL; (* 14. master position AT slave min velocity *)
fSlaveVeloMin : LREAL; (* 15. slave minimum velocity *)
(* minimum slave acceleration *)
fMPosAtSAccMin : LREAL; (* 16. master position AT slave min accele. *)
fSlaveAccMin : LREAL; (* 17. slave minimum acceleration *)
fSVeloAtSAccMin : LREAL; (* 18. slave velocity AT slave mini. accele. *)
(* minimum slave jerk and dynamic momentum *)
fSlaveJerkMin : LREAL; (* 19. slave minimum jerk *)
fSlaveDynMomMin : LREAL; (* 20.slave mini. dynamic momentum
(NOT SUPPORTED YET !) *)
(* maximum slave position *)
fMPosAtSPosMax : LREAL; (* 21. master position AT slave max. position *)
fSlavePosMax : LREAL; (* 22. slave maximum position *)
(* maximum Slave velocity *)
fMPosAtSVeloMax : LREAL; (* 23. master position AT slave max. velocity *)
fSlaveVeloMax : LREAL; (* 24. slave maximum velocity *)
(* maximum slave acceleration *)
fMPosAtSAccMax : LREAL; (* 25. master position AT slave max. accele. *)
fSlaveAccMax : LREAL; (* 26. slave maximum acceleration *)
fSVeloAtSAccMax : LREAL; (* 27. slave velocity AT slave max. accele. *)
(* maximum Slave slave jerk and dynamic momentum *)
fSlaveJerkMax : LREAL; (* 28. slave maximum jerk *)
fSlaveDynMomMax : LREAL; (* 29. slave maximum dynamic momentum
(NOT SUPPORTED YET !) *)
(* mean and effective values *)
fSlaveVeloMean : LREAL; (* 30. slave mean absolute velocity
(NOT SUPPORTED YET !) *)
fSlaveAccEff : LREAL; (* 31. slave effective acceleration
(NOT SUPPORTED YET !) *)
(* reserved space for future extension *)
reserved : ARRAY[32..47] OF LREAL;
(* organization structure of the cam table *)
CamTableID : UDINT;
NumberOfRows : UDINT; (* nº of cam table entries, e.g. nº of points *)
NumberOfColumns : UDINT; (* number of table columns, typically 1 or 2 *)
TableType : UINT; (* MC_TableType *)
Periodic : BOOL;
reserved2 : ARRAY[1..121] OF BYTE;
END_STRUCT
END_TYPE
[asaTek / J.Andril] 110
BRESIMAR AUTOMAÇÃO Capítulo V
V-2 – As Funções Bloco da livraria de motion Tc2_MC2_FlyingSaw.lib (versão 2)
Neste capítulo, será explicada a funcionalidade das funções Bloco utilizadas nos projetos em que necessitamos de
um controlo de eixos em “flying saw”.
Por exemplo, uma “Mesa de corte de chapa metálica” (outros exemplos foram mostrados no inicio deste capitulo).
IV-2.1 – Regras gerais para as Funções bloco MC
Para todas as FB 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 distância: 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] 111
BRESIMAR AUTOMAÇÃO Capítulo V
Modo Buffer (Buffer Mode): Algumas Funções Bloco (Não implementado nas FB flying saw) 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 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 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 um comando sequencial. Neste
caso um comando sequencial 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 sequencial (Aborting), torna-se ativo e interrompe a
execução e 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 em 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] 112
BRESIMAR AUTOMAÇÃO Capítulo V
IV-2.2 – Funções Bloco de flying saw
MC_GEARINVELO – FB “FlyingSaw” – Acoplar um movimento, em velocidade, a um eixo master
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O “MC_GearInVelo” 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. Esta FB é usada para sincronizar um eixo a um outro master, enquanto já está em
movimento, ao contrario das FB apresentadas no capitulo anterior pertencentes à livraria TcMC2 (Version 2)
(MC_GearIn ou MC_GearOut). O eixo slave pode ser desacoplado com a FB MC_GearOut. Se o slave for
desacoplado enquanto se está a mover, ele mantêm a sua velocidade e pode ser interrompido usando MC_Stop.
II - PARÂMETROS DA FUNÇÃO BLOCO
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). O “RadioDenominator” é o denominador da relação de transmissão.
+ “SyncMode” indica o processo de sincronização, pretendido, através de um flag (estrutura de dados SyncMode).
+ “ Velocity”, “Acceleration”, “Deceleration”, “Jerk” indica a velocidade, aceleração, desaceleração e jerk do slave
na fase de sincronização. Se não forem especificados, serão usados os valores gravados no System Manager.
+ “Buffer Mode” e “Options” (não estão implementadas)
VAR_OUTPUT
+ “StartSync” a TRUE indica que a sincronização com o master foi iniciada.
+ “InSync” a TRUE indica que o acoplamento foi concluído e o eixo slave está sincronizado com o master.
+ “Busy” e “Active” Busy a TRUE indica que o comando é iniciado com Execute e permanece a TRUE enquanto o
comando é processado. Quando Busy se torna FALSE novamente, a FB está pronto para um novo comando. Ao
mesmo tempo, uma das saídas, InSync, CommandAborted ou Error, é ativada. Active a TRUE indica que o comando
é executado (Active = Busy)
+ “Command Aborted” a TRUE indica que o comando não foi completamente executado. O eixo pode ter-se
desacoplado durante o processo de acoplamento.
+ “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] 113
BRESIMAR AUTOMAÇÃO Capítulo V
Sincronização por velocidade :
Na sincronização com a velocidade, um eixo slave começando em qualquer estado, é sincronizado o mais rápido
possível com um eixo master, já em movimento. A velocidade síncrona do slave, aqui, é dada pela velocidade do
master multiplicada pelo fator de acoplamento. A fase de sincronização do eixo slave é calculada de forma que
as condições limite especificadas pelo utilizador sejam mantidas. O cálculo e a verificação dessas condições limite
são realizados, supondo que o eixo master continuará a se mover, sem aceleração após o tempo de acoplamento.
Se o eixo master não estiver em movimento livre, pode ocorrer algum overshoot ou undershoot das condições de
limite parametrizadas.
Exemplo 1 (figura anterior)
Na fase 0 (esquerda), os dois eixos movem-se de forma totalmente independente. O futuro eixo master acelera
para 500 mm/s, enquanto o futuro eixo slave acelera para -250 mm/s.
Na fase de 0 para 2, o processo de sincronização da velocidade da “Serra Voadora” começa (StartSync = 1) e o
perfil definido para a sincronização é calculado. O perfil calculado, para o slave, é então especificado para a fase
2 do eixo slave. No final da fase 2, o eixo slave atinge precisamente a velocidade síncrona, que é a velocidade do
eixo master multiplicado pelo fator de acoplamento. A partir deste momento os eixos estão na fase síncrona (fase
3). Nesta fase síncrona, os dois eixos movem-se em sincronía de acordo com o fator de acoplamento. A fase
síncrona é finalizada pelo comando de desacoplamento. Na figura, isso corresponde à transição da fase 3 para a
fase 0.
A partir desse momento (de desacoplamento), eles são novamente dois eixos independentes ou master. Esta
alteração, em online, irá remover qualquer aceleração ou desaceleração a que o slave possa ter estado sujeito,
ficando com a velocidade do antigo slave, com a qual continuará a mover-se sem limites.
A fase em que estamos, no eixo slave, pode ser vista na variável nAxisState na interface cíclica do eixo.
Exemplo 2 (figura seguinte)
Acoplamento iniciado na fase de aceleração do futuro slave.
[asaTek / J.Andril] 114
BRESIMAR AUTOMAÇÃO Capítulo V
MC_GEARINPOS – FB “FlyingSaw” – Acoplar um movimento, em posição, a um eixo master
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O “MC_GearInPos” sincroniza um eixo slave, de uma maneira precisa, com um eixo master (flying saw). A
velocidade de sincronização é alcançada exatamente na posição síncrona do master e do slave. O eixo master já
deve estar em movimento, caso contrário a sincronização não é possível.
O eixo slave pode ser desacoplado com a Função Bloco funcional MC_GearOut. Se o slave for desacoplado,
enquanto está em movimento, ele retém sua velocidade e pode ser interrompido usando MC_Stop.
II - PARÂMETROS DA FUNÇÃO BLOCO
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). O “RadioDenominator” é o denominador da relação de transmissão.
+ “MasterSyncPosition”, “SlaveSyncPosition”, “MasterStartDistance”(não está implementada) indica a posição
sincrona do master e do slave.
+ “ Velocity”, “Acceleration”, “Deceleration”, “Jerk” indica a velocidade, aceleração, desaceleração e jerk do slave
na fase de sincronização. Se não forem especificados, serão usados os valores gravados no System Manager.
+ “Buffer Mode” e “Options” (não estão implementadas)
VAR_OUTPUT
+ “StartSync” “InSync” a TRUE indica que a sincronização com o master foi iniciada e o acoplamento concluido.
+ “Busy” e “Active” Busy a TRUE indica que o comando é iniciado com Execute e permanece a TRUE enquanto o
comando é processado. Quando Busy se torna FALSE novamente, a FB está pronto para um novo comando. Ao
mesmo tempo, uma das saídas, InSync, CommandAborted ou Error é ativada.
+ “Command Aborted” a TRUE indica que o comando não foi completamente executado. O eixo pode ter-se
desacoplado durante o processo de acoplamento.
+ “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] 115
BRESIMAR AUTOMAÇÃO Capítulo V
Sincronização por posição :
No caso de sincronização para a posição, o eixo slave partindo de seu estado inicial, é sincronizado com o eixo
master de forma que a velocidade síncrona necessária (= Vmaster x fator de acoplamento) e a posição de
sincronização sejam alcançadas precisamente na sincronização da posição do master.
A fase de sincronização do eixo slave é calculada de forma que as condições limite especificadas, pelo utilizador,
sejam mantidas. O cálculo e a verificação dessas condições limite são realizados, supondo que o eixo master
continuará a se mover sem aceleração, após o tempo de acoplamento. Se o eixo master não estiver em
movimento livre, pode ocorrer algum overshoot ou undershoot das condições de limite parametrizadas.
Exemplo 1 (figura anterior)
No exemplo da figura anterior, os futuros eixos master e slave são iniciados de forma independente, movendo-
se em direções positivas. No momento da mudança de fase ilustrada de 0 para 2, a “Serra Voadora” é iniciada
com sincronização para a posição (StartSync = 1). A sincronização com a posição significa, que o eixo slave atinge
a velocidade síncrona precisamente quando o master está na posição de sincronização master
(MasterSyncPosition) e quando o slave está na posição de sincronização slave (SlaveSyncPosition). A velocidade
síncrona corresponde à velocidade do master multiplicada pelo fator de acoplamento escolhido.
No exemplo ilustrado anteriormente, a posição de sincronização do master é idêntica à posição de sincronização
do slave, o que significa que as posições do master e do slave são as mesmas quando o sinal InSync é atuado
(rising edge).
Neste exemplo, 1 foi selecionado como o fator de acoplamento, de modo que as velocidades master e slave na
fase síncrona (fase 3) sejam idênticas. No momento em que a fase muda de 3 para 0, o eixo slave é desacoplado
do eixo master (mudança em online), e então, continua a se mover mais uma vez como um eixo master
independente. O eixo slave muda para um eixo master independente, no momento do desacoplamento. Esta
alteração online irá remover qualquer aceleração ou desaceleração a que o slave possa ter estado sujeito, fixando
assim a velocidade do antigo slave, com a qual continuará a mover-se sem limites.
Exemplo 2 (figura seguinte)
Exemplo com outros parâmetros funcionais.
O bloco de funções MC_GearInPos é usado para acoplamento. Para encerrar a fase síncrona, ou seja, para
desacoplamento (mudança online de slave em um master independente), é usado a FB MC_GearOut.
[asaTek / J.Andril] 116
BRESIMAR AUTOMAÇÃO Capítulo V
MC_READFLYINGSAWCHARACTRISTICS – FB “FlyingSaw” – Leitura das características da sincronização
I – DESCRIÇÃO FUNCIONAL DA FUNÇÃO BLOCO
O “MC_ReadFlyingCharacteristics” permite a leitura dos “parâmetros máquina” da fase de sincronização da
“serra voadora” (flying saw). Uma vez iniciada, esta FB pode ser usado para ler os parâmetros associados ao perfil
do slave para a fase de sincronização (não se referem à fase síncrona nem à fase preliminar).
II - PARÂMETROS DA FUNÇÃO BLOCO
VAR_INPUT
+ “Execute” permite a leitura dos parâmetros característicos do TwinCAT NC.
VAR_OUTPUT
+ “Done” a TRUE indica que os dados foram lidos com sucesso.
+ “Busy” a TRUE indica que o comando foi iniciado com Execute e permanece TRUE enquanto o comando é
processado.
+ “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.
+ “CamTableCharac” estrutura de dados que contem os valores característicos MC_FlyingSawCharacValues
“Parâmetros máquina” funcionais da sincronização, guardados na estrutura “MC_FlyingCharacValues” :
Parâmetros Descrição dos “Parâmetros máquina” Independente do master (Acelera.)
fMasterVeloNom Velocidade do master no inicio do “flying saw” Não
fMasterPosStart Posição do master no inicio do “flying saw” Sim
fSlavePosStart Posição do Slave no inicio do “flying saw” Sim
fSlaveVeloStart Velocidade do slave no inicio do “flying saw” Não
fSlaveAccStart Aceleração do slave no inicio do “flying saw” Não
fSlaveJerkStart Jerk do slave no inicio do “flying saw” Não
fMasterPosEnd Posição do master no fim da sincronização Sim
fSlavePosEnd Posição do slave no fim da sincronização Sim
fSlaveVeloEnd Velocidade do slave no fim da sincronização Não
fSlaveAccEnd Aceleração do slave no fim da sincronização Não
fSlaveJerkEnd Jerk do slave no fim da sinconização Não
fMPosAtSPosMin Posição do master na altura da posição mínima do slave Não
fSlavePosMin Posição mínima do slave Sim
fMPosAtSVeloMin Posição do master na altura da velocidade mínima do slave Não
fSlaveVeloMin Velocidade mínima do slave Não
fMPosAtSAccMin Posição do master na altura da aceleração mínima do slave Não
fSlaveAccMin Aceleração mínima do slave Não
fSVeloAtSAccMin Velocidade do slave na altura da aceleração mínima do slave Não
fSlaveJerkMin Jerk mínimo do slave Não
fMPosAtSPosMax Posição do master na altura da posição máxima do slave Não
fSlavePosMax Posição máxima do slave Sim
fMPosAtSVeloMax Posição do master na altura da velocidade máxima do slave Não
fSlaveVeloMax Velocidade máxima do slave Não
fMPosAtSAccMax Posição do master na altura da aceleração máxima do slave Não
fSlaveAccMax Aceleração máxima do slave Não
SVeloAtSAccMax Velocidade do slave na altura da aceleração máxima do slave Não
fSlaveJerkMax Jerk máximo do slave
fSlaveDynMomMin, fSlaveDynMomMax, fSlaveVeloMean, fSlaveAccEff (não suportado ainda)
[asaTek / J.Andril] 117
BRESIMAR AUTOMAÇÃO Capítulo V
[asaTek / J.Andril] 118
BRESIMAR AUTOMAÇÃO Capítulo VI
VI – Projeto completo de motion, com TwinCAT 3.1 NC-PTP
Visão geral da aplicação no TwinCAT 3.1 NC-PTP
O TwinCAT 3.1 tem incorporado, no configurador de hardware “MOTION”, serviços (servers) designados de
máquinas virtuais de motion. Estes serviços estão disponíveis quando da instalação do TwinCAT 3.1. Estarão
funcionais após a ativação das respetivas licenças, compradas ou em versão demo.
O módulo TwinCAT 3.1 NC-PTP (TF50x0) possui 3 pacotes funcionais :
TF5000: Até 10 eixos (expansível até ao máximo de 255 eixos).
TF5010: Expansão do TC3 NC PTP 10 para 25 eixos (expansível até ao máximo de 255 eixos).
TF5020: Expansão do TC3 NC PTP 10 para 255 eixos.
TF5055: TC3 NC Flying Saw
Estes serviços, com uma licença demo, estarão ativos durante 7 dias após a qual deixarão de funcionar, o que nos
permite simular programas. Para a sua ativação definitiva é necessário a compra de licenças para o serviço estar
disponível, no respetivo PC com um Sistema Operativo Windows (Windows Embedded Standard 2009, Windows 7,
Windows Embedded Standard 7, Windows 10, Windows 10 LTSBWindows) de 32 ou 64 bits
VI-1 – “MOTION” - Configuração do hardware do projeto de motion
VI-1.1 – Arquitetura base do hardware do kit de formação de motion
[asaTek / J.Andril] Nos capítulos seguintes iremos explicar os passos
necessários para programar um sistema completo
com dois eixos de motion, baseado em hardware
BECKHOFF (com um motor passo a passo e um
servomotor) e com o serviço de software TwinCAT
v3.1 NC-PTP. Neste projeto, iremos utilizar estes
dois eixos como eixos independentes com controlo
de posição ponto a ponto e não como eixos
interpolados. Se pretendêssemos usar uma
aplicação, em uma máquina industrial, com
interpolação destes dois eixos (X-Y) teríamos de ter
um serviço diferente, usando o server TwinCAT 3.1
NCI (ex. TF5100) .
Iremos usar um kit de formação de motion, para
executar e simular o projeto completo.
119
BRESIMAR AUTOMAÇÃO Capítulo VI
O kit de formação é constituído pelo seguinte hardware (ver o esquema elétrico no Anexo A deste livro):
Modelo do PLC Sistema Operativo Versão do TwinCAT
CX 5140-0122 (16GB CFast card) Win7-Pro 32bit (CX1800-411-11) TC3.1 (NC PTP)
Tipo de modulo Modelo Endereço EtherCAT
1ª Carta de 8xED + 8xSD EL1859 1001
2ª Carta de 8xED + 8xSD EL1859 1002
3ª Carta de 5xEA (Potenciómetros 0-10Vdc) EL3255 1003
4ª Carta de encoder incremental (24 Vdc,100 kHz) EL5151 1004
5ª Carta de separação de 24Vdc (max. 10 A) EL9110 1005
6ª Carta de stepper motor 24 Vdc, 1.5A EL7037 1006
7ª Carta de servomotor OCT, 48 Vdc, 2.8 A (Irms) EL7201-0010 1007
Tampa de proteção do bus EL9011
VI-1.1.1 - Vista geral do kit de formação de TwinCAT 3.1 NC-PTP
[asaTek / J.Andril] 120
BRESIMAR AUTOMAÇÃO Capítulo VI
VI-1.1.2 – Entradas e saídas digitais
1ª - Carta terminal de 8 ED e 8 SD (EL1859)
-DC1 (EL1859) – 8 Entradas Digitais
%I* Switches - S10, S11, S12, S13, S14, S15, S16, S17
-DC1 (EL1859) – 8 Saídas Digitais
%Q* Led - H10, H11, H12, H13, H14, H15, H16, H17
2ª - Carta terminal de 8 ED e 8 SD (EL1859)
-DC2 (EL1859) – 8 Entradas Digitais
%I* Switches - S20, S21, S22, S23, S24, S25, S26, S27
-DC2 (EL1859) – 8 Saídas Digitais
%Q* Led - H20, H21, H22, H23, H24, H25, H26, H27
[asaTek / J.Andril] 121
BRESIMAR AUTOMAÇÃO Capítulo VI
VI-1.1.3 – Entradas analógicas e de encoder incremental
3ª - Carta terminal de 5 EA para potenciômetro (EL3255)
-AI1 (EL3255) – 5 Entradas Analógicas
%I* Potenciômetros (10V/10k Ohm) - R10, R11
4ª - Carta terminal para encoder incremental (EL5151)
-PM1 (E5151) – Entradas para encoder incremental
%I* Encoder A/B - S18 handwhell, S18 switch
VI-1.1.4 – Drives de potência para motores
5ª - Carta separadora de 24Vdc para -M (EL9110) -ST1 (EL9110)
6ª - Carta drive para stepper motor (EL7037) -U1 (EL7037) - B1 (“zero” de -M1)
7ª - Carta drive para servomotor (EL7201) -U2 (EL7201) - B2 (“zero” de -M2)
[asaTek / J.Andril] 122
BRESIMAR AUTOMAÇÃO Capítulo VI
VI-1.2 – Configuração do hardware no “MOTION”
O primeiro passo será criar
um nova “Solution”, no editor
TwinCAT 3.1 XAE (eXtended
Automation Engineering)
instalado no PC de edição. O
nome da “Solution” e do
“Project” pode ser o mesmo
(“TwinCAT Project NC PTP”).
Após este passo iremos
configurar o hardware,
existente no kit de formação
de motion ou na máquina
industrial, que pretendemos
projetar.
Uma vez criado um novo projeto no TwinCAT 3.1 XAE e se já tivermos o hardware (no nosso caso o kit de formação
de motion) disponível para trabalho, iremos comunicar com o PC embedded CX5140. Para comunicar com o PC
embedded, com o Sistema Operativo Windows 7 Pro, temos em primeiro lugar registá-lo no router virtual do
TwinCAT (AMS router). Para isso deverá, na árvore da “Solution” / “Project” clicar na pasta “SYSTEM” e depois no
comando “Choose Target” (existente na parte direita da subpasta “General”).
O CX5140 vem sem IP definido de fábrica, isto é, vem com o
IP atribuído por DHCP. Sendo assim, a porta Ethernet/RJ45
do PC de edição que tem instalado o TwinCAT 3.1 XAE, terá
de ser configurada com o serviço de atribuição de IP por DHCP
(“Obtain a IP address automatically”) também.
Ligue o seu PC (onde se encontra instalado o editor TwinCAT
3.1), através de um cabo Ethernet/RJ45, ao CX5140 e espere
entre 1 a 3 minutos. Passado este tempo, o sistema se auto
configurará colocando os endereços IP automaticamente,
tanto no CX como no PC de edição, dentro da gama de Classe
B (169.254.0.0/16). Esta técnica designa-se Zeroconfig de IP e
simplifica fortemente o processo de comunicação com
equipamentos que não tenham IPs atribuídos.
Uma vez o processo anterior, executado com sucesso, iremos usar um comando de broadcast para detetar todos os
equipamentos instalados nessa rede (ex. 169.254.0.0). Para isso clicamos no comando, da figura anterior, “Search
(Ethernet)...”. De seguida surgirá o ecrã, mostrado a seguir, onde deverá clicar no comando “Broadcast Search”.
Este comando irá encontrar todos os equipamentos instalados nessa rede (ex. CX-3AEA26 ou IPCs com TC3, etc).
[asaTek / J.Andril] 123
BRESIMAR AUTOMAÇÃO Capítulo VI
De seguida registe a máquina CX5140, no AMS Router do seu PC,
clicando no comando “Add route”. Poderá registá-lo por nome
(“Host Name”) ou por IP (“IP Address”) selecionando a respetiva
opção no ecrã anterior. Como este CX tem o SO Windows 7, no
registo é solicitado o “User name :” Administrator e a “Password :”
que é 1. Se o CX tivesse o S.O. Windows CE não necessitávamos de
introduzir password (por defeito não tem).
Uma vez registado este PCe CX5140 no seu router faça a escolha do
PCe, que pretende trabalhar, através da barra de comandos
(mostrada na figura seguinte). No nosso exemplo de formação essa
máquina tem o nome de CX-3AEA26 (5.58.234.38.1.1).
A partir deste momento poderá fazer o varrimento ao hardware
existente no kit de formação de motion. O controlador CX5140 com
o host name CX-3AEA26 deverá estar, obrigatoriamente, no estado
de CONFIG MODE (icon do TwinCAT com cor azul) para
conseguirmos efetuar esse varrimento ao hardware.
Para iniciar o varrimento clique, com a tecla direita do rato, na
subpasta “Device”, da pasta “I/O”, no comando “Scan”. Deverá
fazer este procedimento “dentro” do CX (no exemplo o CX-3AEA26).
O comando de scan irá detetar todo o hardware existente, tanto
cartas EL/KL ou mesmo drives existentes na rede IPC/EtherCAT.
No nosso caso o comando de scan irá detetar todo o hardware
existente no kit de formação.
Inicialmente, avisará que poderá não conseguir detetar todas as
cartas ou equipamentos conectados ao CX, automaticamente. Isto
deve-se que a base de dados dos componentes instalados no seu
editor pode não ser a mais atual. Se o sistema tem cartas recentes e
novas não irá configurá-las corretamente. Neste caso, recomendo
atualizar o TwinCAT 3.1 XAE para versão mais recente (build).
Após a confirmação e aceitação, do aviso anterior, o configurador irá
apresentar os drives de comunicação disponíveis no CX-3AEA26. No nosso caso não iremos selecionar todos os drives
disponíveis, deixando somente o Device 1 (EtherCAT) que é uma carta de Ethercat master.
[asaTek / J.Andril] 124
BRESIMAR AUTOMAÇÃO Capítulo VI
Após a seleção dos drives de comunicação será dada início ao varrimento das boxes I/O existentes. Aqui neste passo
o configurador irá encontrar todas cartas ELs existentes e instaladas no lado direito do CX-5140.
No kit de formação temos cartas simples de entradas e
saídas digitais EL1859, como entradas analógicas tanto para
leitura de potenciómetros EL3255 como para leitura de
encoders incrementais EL5151. Estas cartas são
relativamente simples, nas suas configurações e
parametrizações (caso existam), conseguindo o
configurador atualizá-las e configurá-las automaticamente
com os valores de fábrica.
Todavia, o kit de formação, também possui cartas
complexas na sua configuração, caso do drive para o motor
passo a passo (–M1) EL7037 e do drive para o servomotor (-
M2) EL7201. Nestes dois casos, tal como na carta de leitura
de potenciómetros EL3255 , quando é feito o varrimento às
boxes o configurador lança avisos respeitantes a estes
devices.
De seguida, surgirá um aviso que informa que foi encontrada uma carta drive, do tipo AX5000 ou EL7201, para
comando de servomotores e se pretendemos fazer o varrimento automático das características de defeito do
servomotor acoplado. No caso dos AX5000 é importante verificar se os servomotores estão ligados ao barramento
de potência (X1). O configurador consegue fazer esta leitura, automaticamente do servomotor, caso sejam
servomotores da Beckhoff. No caso de servomotores de outras marcas deverá recorrer a um processo manual, para
a sua configuração, usando o “Drive Manager” / “Motor and Feedback”.
De seguida o configurador irá perguntar se pretende ligar os componentes I/O, encontrados com o “Scan Box”, ao
server NC. Neste caso o sistema fará o trabalho automaticamente, não necessitando executar as ligações entre o
hardware do PLC Virtual ( “I/O” / “Devices” / “Device 1 (EtherCAT)” / “Term 1 (EK1200)” ) e o NC virtual - TwinCAT
NC Server ( “MOTION” / “Axes”). Prossiga clicando em “Yes”.
[asaTek / J.Andril] 125
BRESIMAR AUTOMAÇÃO Capítulo VI
De seguida o configurador irá perguntar qual o serviço de motion com que pretendemos trabalhar com os eixos. No
nosso será uma configuração NC-PTP (“NC – Configuration”).
Após esta configuração e linkagem, feita pelo configurador, podemos testar todo o hardware do kit de formação,
sem necessidade de termos um programa residente no softPLC TwinCAT 3.1. Para isso ser possível basta aceitarmos
o modo de funcionamento “Free Run”. Com este modulo podemos fazer o comissionamento do hardware e o seu
bom funcionamento. Clique em “Yes” na janela pop-up, com a pergunta “Active Free Run”.
NOTA: O comissionamento (ler entradas ou acionar saídas), em modo “Free Run”, é feito ao hardware instalado na
pasta do configurador, “I/O” / “Devices” / “Device 1 (EtherCAT)”) / “Term 1 (EK1200)” ......
[asaTek / J.Andril] 126
BRESIMAR AUTOMAÇÃO Capítulo VI
VI-1.2.1– Configuração dos Eixos de motion (“Axis 1” e “Axis 2”)
Após os procedimentos feitos, na secção anterior, iremos parametrizar o sistema de motion (“NC-Configuration”)
que é constituído pelo Eixo 1 (“Axis 1” para o motor stepper –M1) e o Eixo 2 (“Axis 2” para o servomotor – M2).
Estas configurações terão de ser feitas em modo “Config” e não em “Free Run”.
Coloque o serviço do TwinCAT no modo “Config” (cor azul) .
EIXO 1 - “Axes” / “Axis 1” - Motor passo a passo (-M1)
No Eixo 1, do kit de formação de motion, temos um motor stepper da Beckhoff (AS1020-0120) de 24Vdc/1A com
precisão de step de 1,8º/200 microsteps e que se encontra ligado à carta (6ª) drive EL7037. Acoplado ao veio do
motor stepper existe um encoder (05.2420.1630.1024.5009) com 1024 Imp/rev
Esquema elétrico do Eixo 1
[asaTek / J.Andril] 127
BRESIMAR AUTOMAÇÃO Capítulo VI
No caso dos motores passo a passo o configurador do “MOTION” não consegue ler as características elétricas do
motor usado. Sendo assim, a programação automática dos parâmetros CoE da carta EL7037 não é possível e terá de
ser o programador a introduzir os diversos “parâmetros motor” (pasta Setup) na carta Term7(EL7037). Na figura
seguinte, mostramos os “parâmetros máquina e motor” que são necessários configurar no Term 7 (EL7037) (CoE) e
no server NC. Os “parâmetros motor” (CoE) serão guardados na EEPROM da carta drive EL7037 e os “parâmetros
máquina” em ficheiro de configuração, do configurador, registado na máquina virtual TwinCAT NC-PTP.
Tabela 1
1ª PASSO - I/O Devices Device 1 (EtherCAT) Term1 (EK1200) Term7 (EL7037) (parâmetros CoE)
A interface CoE (CAN application protocol over EtherCAT) é usada para gerir os parâmetros de dispositivos de
EtherCAT. Os slaves EtherCAT ou o master EtherCAT gerenciam parâmetros fixos (somente de leitura) ou variáveis
que eles necessitam para a sua operação, diagnóstico ou comissionamento.
Os parâmetros CoE são organizados em tabelas hierárquicas. Em princípio, o utilizador tem acesso de leitura via a
rede de campo (fieldbus) usada. O master EtherCAT pode aceder às listas CoE locais dos slaves, via EtherCAT, em
modo de leitura ou escrita. As tabelas do CoE, com os parâmetros, são especificadas com dois níveis (Index:
subindex) via numeração hexadecimal (ex. 0x8010: 07).
As tabelas mais relevantes, para o utilizador, da fieldbus EtherCAT são:
0x1000: É onde as informações de identificação fixas do dispositivo são armazenadas, incluindo nome,
fabricante, número de série, etc.
0x8000: É onde os parâmetros operacionais e funcionais de todos os canais são armazenados, como
configurações de filtro ou frequência de saída.
Se os parâmetros CoE do slave são modificados online, os dispositivos Beckhoff armazenam quaisquer alterações na
EEPROM, ou seja, os parâmetros CoE modificados estarão disponíveis após um reinício (restart). As alterações na
lista CoE local do terminal são perdidas se o terminal for substituído por outro. Se um terminal for substituído por
um novo terminal Beckhoff, ele terá as configurações de fábrica.
Recomendações para quando existem modificações manuais dos parâmetros CoE :
Faça a mudança necessária, no configurador, na pasta Startup da carta EL7037 e posteriormente registe a
configuração (Activate Configuration). Os valores são armazenados localmente (EEPROM), no slave EtherCAT.
Se o valor for para ser armazenado permanentemente, insira-o na lista de inicialização (Startup). A ordem das
entradas, no Startup, geralmente é irrelevante.
Se quisermos colocar os “valores de fábrica” no terminal EL, escreva no parâmetro 1011:01 (“Restore default
parameters") o valor 6C 6F 61 64hex . A carta slave EtherCAT deve estar, pelo menos, em modo PREOP e o router
AMS do TwinCAT em modo RUN or CONFIG/Freerun.
Nas figuras seguintes são apresentadas tabelas com os parâmetros CoE lidos, em online, da carta Term 7 (EL7037).
[asaTek / J.Andril] 128
BRESIMAR AUTOMAÇÃO Capítulo VI
Parâmetros das características elétricas do motor stepper (8010:00) e da malha de controlo PI da corrente (8011:0)
que temos de configurar (com os valores que estão indicados na figura seguinte).
Parâmetros do modo funcional do motor stepper (8012:00) e da malha de controlo PI de posição (8014:0) que temos
de configurar (com os valores que estão indicados na figura seguinte).
[asaTek / J.Andril] 129
BRESIMAR AUTOMAÇÃO Capítulo VI
2ª PASSO – MOTION Axes Axis 1
Etapa 1.1 : Configurar a grandeza física, com que pretendemos trabalhar, no Eixo 1 (em graus).
Etapa 1.2 : Configurar (ver Tabela 1 da pag. 128) a “Reference Velocity” [Vref = Vmax x Distância = 10 rot/min x 360 °]
= 3600.0 °/s, “Maximum Velocity” [Vmax < Vref] = 3000.0 °/s, os restantes parâmetros usaremos os valores de defeito
já existentes. No “Other Settings” podemos configurar o “Dead Time Compensation” com o valor 0.004 seg .
[asaTek / J.Andril] 130
BRESIMAR AUTOMAÇÃO Capítulo VI
NC SERVER NC- ENCODER – Como neste eixo existe um encoder de 1024 imp/rev é necessário configura-lo.
Etapa 2.1 : Configurar o “Scaling Factor” [Distância / (Incencoder x 4) = 10 / (1024 x 4)] = 0,087890625 do encoder.
Etapa 2.2 : Configurar (ver NOTA 1) filtro do encoder “Time Compensantion” / “Encoder Delay ...” (4 ciclos).
NC SERVER NC- DRIVE – O Eixo 1 é comandado por um drive para motores stepper (ver figura para configuração).
[asaTek / J.Andril] 131
BRESIMAR AUTOMAÇÃO Capítulo VI
NC SERVER NC- CTRL – O Eixo 1 é controlado por uma malha de controlo PID para a posição e ou velocidade.
RESUMO DOS PASSOS EFETUADOS NA CONFIGURAÇÂO DO EIXO 1 :
1º PASSO : Verificar se “parâmetros motor”, com características elétricas do motor stepper, são as que estão
configuradas nos parâmetros CoE, da carta drive EL7037. Caso sejam diferentes do motor que estamos a usar,
deve alterar. Estes parâmetros estão gravados na EEPROM, da carta EL7037. Alterámos os valores dos
parâmetros CoE dos grupos 8010:00 , 8011:00, 8012:00 e 8014:00.
2º PASSO : Configurar os “parâmetros máquina” no server NC (máquina virtual NC-PTP). Estes parâmetros vão
afetar o funcionamento do Eixo 1 no server NC-PTP. Ative os parâmetros com “Activate Configuration”.
[asaTek / J.Andril] 132
BRESIMAR AUTOMAÇÃO Capítulo VI
COMISSIONAMENTO DO EIXO 1 :
Após a configuração e verificação de todos os parâmetros do Eixo , podemos passar ao teste final de confirmação
do bom funcionamento do Eixo 1 no server NC-PTP e da sua carta drive EL7037. Podemos usar a HMI de
comissionamento, existente no server NC-PTP (Axis 1), do configurador (TwinCAT em modo RUN – cor verde).
Se pretendermos alterar os valores de aceleração, desaceleração ou jerk é possível usando a HMI “Dynamics”.
Se pretendermos efetuar alguns movimentos semiautomáticos com cotas incrementais ou absolutas, sem o controlo
de um PLC, é possível através da pasta “Functions” . Podemos “zerar a máquina” (com “Set Actual Position” = 0) ou
movimentar o eixo para uma dada cota (“Target Position”) a uma dada velocidade (“Target Velocity”).
[asaTek / J.Andril] 133
BRESIMAR AUTOMAÇÃO Capítulo VI
Se pretendermos ler, em “online”, os impulsos do encoder podemos fazê-lo na pasta ”Online” do Axis 1 / Enc.
[asaTek / J.Andril] 134
BRESIMAR AUTOMAÇÃO Capítulo VI
Para verificar o funcionamento da malha de controlo de posição do Eixo 1, é possível faze-lo em “online” recorrendo
à pasta ”Online” do Axis 1 / Ctrl.
Aqui verificamos a percentagem do sinal de controlo máximo, à saída do drive, como o desvio entre o valor
pretendido para a posição e a posição real (“Position Lag”) como também o lag da velocidade (“Velocity Lag”).
BACKUP DOS PARÂMETROS DO EIXO 1 :
Após os testes de comissionamento do Eixo 1 convêm guardar os dados em ficheiro, tanto dos parâmetros CoE
residente na EEPROM da carta drive EL7037 (ficheiro *.xml) como da configuração do projeto (ficheiro *.tsproj). A
figura seguinte, mostra o procedimento de salvar os parâmetros CoE visualizados na pasta “Startup”. Com o
comando “Export XML...” guardamos os parâmetros CoE, da carta EL7037, em ficheiro *.xml, no seu PC de edição.
Se precisarmos carregar, novos parâmetros, em uma nova carta (com parâmetros de “fábrica”) clique no comando
“Import XML...” e de seguida escolha o ficheiro *.xml dos novos parâmetros e anteriormente guardado, no disco
duro, do seu PC. Deverá ter de ativar a configuração (“Activate configuration”)para estes novos parâmetros sejam
guardados na EEPROM da carta drive EL7037.
Pode guardar em ficheiro (ex. com designação “StartupCommands_Term7(EL7037).xml”) todos parâmetros CoE,
editados na pasta de “Startup”, no disco duro do PC de edição (onde se encontra instalado o configurador).
[asaTek / J.Andril] 135
BRESIMAR AUTOMAÇÃO Capítulo VI
EIXO 2 - “Axes” / “Axis 2” - Servomotor (-M2)
No Eixo 2, do kit de formação de motion, temos um servomotor (AM8111-0F20) de 48Vdc, mas será alimentado a
24Vdc. O servomotor da Beckhoff é ligado por um único cabo (OCT-One Cable Technology) para a potência e o sinal
de feedback do resolver que possui com uma precisão de 0,03 °. Este cabo OCT é ligado à carta (7ª) drive EL7201.
Este servomotor não tem freio e roda à velocidade máxima de 1400 rpm (a 24 Vdc).
Esquema elétrico do Eixo 2
No caso dos servomotores, da BECKHOFF, o configurador do TC3.1 consegue ler as características elétricas e
funcionais do servomotor em uso. Sendo assim, a programação automática dos parâmetros CoE da carta drive
EL7201 é possível e não terá de ser o programador a introduzir os “parâmetros motor”, exceto se pretendemos
trabalhar com valores funcionais diferentes dos valores de fábrica (ex. 0x8010:19 , servomotor de 48Vdc a trabalhar
a 24Vdc ).
[asaTek / J.Andril] 136
BRESIMAR AUTOMAÇÃO Capítulo VI
Na figura seguinte, mostramos os “parâmetros máquina e motor” que é necessário configurar o drive EL7201 (CoE)
e o server NC. Os “parâmetros motor” (CoE) serão guardados na EEPROM da carta drive EL7201 e os “parâmetros
máquina” em ficheiro de configuração, do configurador do TC3.1, registado na máquina virtual TwinCAT NC.PTP.
1ª PASSO - I/O Devices Device 1 (EtherCAT) Term1 (EK1200) Term8 (EL7201) (parâmetros. CoE)
No caso dos servomotores da Beckhoff, podemos alterar as suas características usando um aplicativo existente na
pasta da carta drive EL7201. Esse aplicativo chama-se Drive Manager e está integrado no configurador do TC3.1, de
forma que nenhuma ferramenta de configuração separada é necessária (o que não acontece com o AX5000). Uma
vez que um servo terminal seja detetado ou inserido fica disponível na pasta de configuração do EL72x1.
De seguida, iremos alterar a alimentação elétrica do servomotor para 24 Vdc, por motivos funcionais do kit de
formação de motion. No Power Management em vez de 48 Vdc escolhemos a tensão de 24 Vdc (CoE-0x8010:19).
De seguida iremos configurar o Eixo 2, da máquina virtual NC-PTP, através do Drive Manager. Salte para a pasta
Configuration / Motor and Feedback e clique no comando “Scan motor and feedback”.
Após clicar no comando “Scan motor and feedback” é apresentada uma tabela dos “parâmetros máquina” com que
pretendemos configurar, automaticamente, o Eixo 2 na máquina virtual server NC.
[asaTek / J.Andril] 137
BRESIMAR AUTOMAÇÃO Capítulo VI
Em primeiro lugar, teremos de escolher a grandeza física com que pretendemos trabalhar neste eixo (em graus) e o
“Feed Constant” (360 °).
Após esta escolha, os parâmetros serão calculados automaticamente e mostrados no quadro em baixo (valores a
cor vermelha que indica que ainda não foram gravados e ativados no server NC). Para registarmos estes parâmetros,
clique no comando “Set NC Parameters” e depois ative a configuração no TwinCAT V3.1 com o comando “Active
Configuration”.
Por ultimo, para termos um controlo de eixo por posição e não por velocidade, devemos escolher o modo de
operação “Cycle synchronous position mode (CSP)”.
Se pretendermos confirmar os parâmetros, configurados pelo “Drive Manager” automaticamente, podemos vê-los
no server NC. Um dos parâmetros mais importantes, em qualquer eixo em um sistema NC-PTP, é o seu fator de
escala. Como vimos anteriormente no Eixo 1, esse valor foi calculado manualmente pelo programador. Neste Eixo 2
não precisamos de o fazer porque o “Drive Manager” calcula automaticamente esse parâmetro. O mesmo podemos
verificar com o parâmetro da velocidade de referência e outros parâmetros relevantes.
Fator de Escala (Scaling Factor) com encoder (resolver) : 138
0,000343322753906
[asaTek / J.Andril]
BRESIMAR AUTOMAÇÃO Capítulo VI
Verificação do fator de escala calculado automaticamente, pelo “Drive Manager”, para o Eixo 2 do server NC:
RESUMO DOS PASSOS EFETUADOS NA CONFIGURAÇÃO DO EIXO 2 :
1º PASSO : Configurar os “parâmetros motor e maquina” usando a aplicação Drive Manager. Os únicos
parâmetros que temos de configurar, no Drive Manager, é a alimentação do servomotor com o valor de 24 Vdc
(Nominal DC link voltage) e no Scaling and NC parameters o valor 360 ° do Feed Constant. Se, de seguida,
clicarmos no comando “Set NC Parameters” todos os “parâmetros máquina” serão configurados
automaticamente no Eixo 2 do server NC.
2º PASSO : Verifique os “parâmetros máquina” no server NC e de seguida faça o “Activate Configuration”.
[asaTek / J.Andril] 139
BRESIMAR AUTOMAÇÃO Capítulo VI
COMISSIONAMENTO DO EIXO 2 :
Após a configuração e verificação de todos os parâmetros do Eixo , podemos passar ao teste final de confirmação
do bom funcionamento do Eixo 2 no server NC-PTP e da sua carta drive EL7201. Podemos usar a HMI de
comissionamento, existente no server NC-PTP (Axis 2), do configurador (TwinCAT em modo RUN – cor verde).
Se pretendermos alterar os valores de aceleração, desaceleração ou jerk é possível usando a HMI “Dynamics”.
Se pretendermos efetuar alguns movimentos semiautomáticos com cotas incrementais ou absolutas, sem o controlo
de um PLC, é possível através da pasta “Functions” . Podemos “zerar a máquina” (com “Set Actual Position” = 0) ou
movimentar o eixo para uma dada cota (“Target Position”) a uma dada velocidade (“Target Velocity”).
[asaTek / J.Andril] 140
BRESIMAR AUTOMAÇÃO Capítulo VI
Se pretendermos ler, em “online”, os impulsos do encoder podemos fazê-lo na pasta ”Online” do Axis 2 / Enc.
[asaTek / J.Andril] 141
BRESIMAR AUTOMAÇÃO Capítulo VI
Para verificar o funcionamento da malha de controlo de posição do Eixo 2, é possível faze-lo em “online” recorrendo
à pasta ”Online” do Axis 2 / Ctrl. Aqui verificamos a percentagem do sinal de controlo máximo, à saída do drive, como
o desvio entre o valor pretendido para a posição e a posição real (“Position Lag”) como também o lag da velocidade
(“Velocity Lag”).
BACKUP DOS PARÂMETROS DO EIXO 2 :
Após os testes de comissionamento do Eixo 2 convêm guardar os dados em ficheiro, tanto dos parâmetros CoE da
carta drive EL7201 (ficheiro *.xml) como da configuração do projeto (ficheiro *.tsproj). O primeiro passo é guardar
em ficheiro os parâmetros CoE da pasta “StartUp” ( idêntico ao efetuado no Eixo 1 – pag. 135). A figura seguinte,
mostra o procedimento de salvar os “parâmetros máquina” gerados no Drive Manager. Com o comando “Export
list...” guardamos os “parâmetros máquina” em ficheiro *.sta com o comando “Import list...” carregamos os
“parâmetros máquina” guardados em ficheiro no server NC. Deverá ativar a configuração (“Activate configuration”)
para todos os valores serem assumidos.
[asaTek / J.Andril] 142
BRESIMAR AUTOMAÇÃO Capítulo VI
VI-2 – “PLC”- Programação do software do projeto de motion
VI-2.1 – Arquitetura base do software do kit de formação de motion
Na secção anterior (VI-1) explicamos o hardware e a configuração dos dois eixos disponíveis no kit de formação de
motion. Vimos nessa secção, que conseguíamos movimentar o Eixo 1 e o Eixo 2 através do configurador “MOTION”
usando a consola de comissionamento, existente em cada um dos eixos. Este processo é muito útil, após a
montagem do hardware em uma máquina industrial, poder testar todos os componentes eletrónicos e
eletromecânicos sem necessidade de existir um programa do automatismo, residente no PLC da máquina. No nosso
caso, o PLC é na realidade um PLC virtual (softPLC) residente em um IPC ou um PC embedded (ex. CX5140). Após o
comissionamento, feito no configurador, teremos de desenvolver o programa do automatismo pretendido, para a
nossa máquina industrial, a correr no softPLC. No nosso caso iremos usar o softPLC TwinCAT v3.1 NC-PTP a correr
em um CX-5140. Uma vez o programa a correr, no softPLC, os comandos oriundos da HMI de comissionamento do
configurador não são mais validos (as ordens oriundas do programa do softPLC sobrepõem-se às ordens da HMI do
configurador)
A nossa proposta, nesta secção VI-2, é desenvolver uma HMI que permita manusear a máquina industrial que se
pretende construir. Utilizaremos o kit de formação de motion, anteriormente descrito, com um HMI para manobra
dos dois eixos. Neste projeto iremos usar a livraria Tc_MC2.lib e que nos permite, através do programa residente no
softPLC TwinCAT v3.1 NC-PTP manobra o Eixo 1 (com a carta drive EL7037) e o Eixo 2 (com a carta drive EL7201).
A HMI a desenvolver, com editor do “PLC” (“Visualizations”) do TwinCAT 3.1, será integrado no automatismo da
máquina terá o seguinte aspeto gráfico :
Recordando, o kit de formação de motion tem a seguinte arquitetura :
Modelo do PLC Sistema Operativo Versão do TwinCAT
TC3.1 (NC PTP)
CX 5140-0122 (16GB Cfast card) Win7-Pro 32bit (CX1800-411-11) Endereço EtherCAT
1006
Tipo de modulo Modelo 1007
Eixo 1 – 6ª Carta de stepper motor 24 Vdc, 1.5A EL7037
Eixo 2 - 7ª Carta de servomotor OCT, 48 Vdc, 2.8 A (Irms) EL7201-0010
[asaTek / J.Andril] 143
BRESIMAR AUTOMAÇÃO Capítulo VI
VI-2.2 – Programação do software com no “PLC”
VI-2.2.1 – “PLC”-“Standard PLC Project”: Criar projeto
O kit de formação possui um CX-5140 com um microprocessador Intel (x86). No TwinCAT 3.1, quando iniciamos um
novo programa no “PLC” não necessitamos escolher o microprocessador (“PC or CX (x86)” ou CX (ARM)”), como era
feito no TwinCAT 2.11. Clique, com a tecla direita do rato, em cima da pasta “PLC” e escolha “Add New Item...”.
De seguida escolha o template de projeto de programa “Standard PLC Project” e atribuia um nome ( Ex.
Programa_NC_PTP). O editor de seguida cria uma estrutura com todos objetos necessarios do programa do PLC.
VI-2.2.2 – “PLC”-“Reference”: Carregar livraria Tc_MC2.lib e variáveis globais
Na subpasta “Reference”, do editor do “PLC”, importe a livraria Tc_MC2.lib automáticamente, da pasta
C:\TwinCAT\3.1\Components\PLC\Managed Libraries\Beckhoff Automation GmbH\Tc_MC2.lib do PC de edição.
Importe a livraria clicando, com a tecla direita do seu rato na janela “Reference”, no comando “Add Library...”
[asaTek / J.Andril] 144