Bloco responsável por realizar um posicionamento para a posição relativa programada.
Representação Ladder

Características de Execução
Tamanho de Memória de Programa |
72 Bytes |
Tamanho de Memória de Dados |
32 Bytes |
Estrutura do Bloco
Tipo de Variável |
Nome |
Tipo de Dado |
Descrição |
VAR_IN_OUT |
Axis |
BYTE |
Seleção de eixo da operação (0 - Eixo real) |
VAR_INPUT |
Execute |
BOOL |
Habilitação do bloco |
ContinuousUpdate |
BYTE |
Modo de atualização automática (0 - Borda de subida) (1 - Tempo real) |
|
Distance |
LREAL |
Distância de deslocamento |
|
Velocity |
REAL |
Velocidade |
|
Acceleration |
REAL |
Aceleração |
|
Deceleration |
REAL |
Desaceleração |
|
Jerk |
REAL |
Jerk |
|
BufferMode |
REAL |
Modo de início de execução (0 - Inicia bloco imediatamente, se houver outro bloco em execução o mesmo será abortado) (1 - Se outro bloco estiver em execução, o bloco em execução continuará seu movimento até concluí-lo e esse novo bloco aguardará para então ser executado.) (6 - Se algum outro bloco estiver em execução, este bloco entrará em erro 52 e não será executado. Será mostrado na IHM o alarme A00052.) |
|
VAR_OUTPUT |
Done |
BOOL |
Habilitação da saída |
Busy |
BOOL |
Sinalizador de que o bloco ainda não foi finalizado |
|
Active |
BOOL |
Sinalizador de bloco com controle sobre o eixo |
|
CommandAborted |
BOOL |
Sinalizador de comando abortado |
|
Error |
BOOL |
Sinalizador de erro na execução |
|
ErrorID |
WORD |
Identificador do erro ocorrido |
|
VAR |
MC_MOVERELATIVE_INST_0 |
MC_MOVERELATIVE |
Instância de acesso à estrutura do bloco |
Funcionamento
Este bloco, quando detecta uma borda de subida em Execute, executará um posicionamento de acordo com a distância relativa à posição atual, configurada no argumento Distance, com uma velocidade máxima configurada no argumento Velocity e uma aceleração/desaceleração configurada nos argumentos Acceleration e Deceleration. Dependendo da distância do posicionamento e dos valores de aceleração e desaceleração, a velocidade do motor não atingirá a velocidade máxima configurada.
|
NOTA! Caso o valor do argumento Jerk for diferente de zero: 1) o valor da desaceleração será o mesmo do valor configurado na aceleração; 2) o argumento ContinuousUpdate On-line não terá efeito, sendo considerado os valores dos argumentos no instante da transição positiva de Execute; 3) não é permitido executar o posicionamento com outro bloco ativo, ocorrendo ErrorID 95. |
Ao executar o bloco MC_MoveRelative, o drive passará a operar em malha de posição e permanece assim mesmo após a conclusão do bloco. Deve-se ajustar o ganho proporcional de posição (P0159) para obter um melhor desempenho do drive.
Na execução do posicionamento o estado do eixo mudará para Discrete Motion. Ao concluir o posicionamento o estado do eixo mudará para Standstill.
Quando Execute possui valor FALSE, Done permanece FALSE. A saída Done é ativada quando o bloco termina a execução com sucesso, permanecendo em nível TRUE até que Execute receba FALSE.
|
NOTA! A saída Done é ativada assim que a trajetória teórica é finalizada, quando a referência de posição for igual a posição desejada. Logo a saída Done poderá ser ativada antes da posição real atingir a posição desejada. |
Caso haja algum erro na execução, a saída Error é ativada e ErrorID exibe o código do erro segundo a tabela abaixo.
Código |
Descrição |
52 |
Tentativa de executar bloco com BufferMode em Single quando outro bloco ativo. |
60 |
Velocidade programada menor que a mínima permitida. |
61 |
Velocidade programada maior que a máxima permitida. |
62 |
Aceleração programada menor que a mínima permitida. |
63 |
Aceleração programada maior que a máxima permitida. |
64 |
Desaceleração programada menor que a mínima permitida. |
65 |
Desaceleração programada maior que a máxima permitida. |
67 |
Drive no estado "Disabled" ou "ErrorStop". |
69 |
Drive no estado "Stopping". |
70 |
Tentativa de executar bloco com BufferMode em Buffered quando outro bloco ativo e outro bloco aguardando. |
71 |
P202 diferente de 4. |
74 |
Drive no estado "Homing". |
78 |
Bloco MC não executado - Falha interna. |
93 |
Jerk programado menor que o mínimo permitido. |
94 |
Jerk programado maior que o máximo permitido. |
95 |
Não é permitido executar posicionamento com Jerk quando outro bloco ativo. |
Exemplo



Na transição de subida de MOVEREL1_EXECUTE, o primeiro bloco MC_MoveRelative é executado. Com isso, os sinais Busy e Active deste bloco são setados e inicia-se o posicionamento de 10 voltas positivas a partir da posição atual.
Ao terminar o posicionamento, o primeiro bloco é concluído. Com isso, os sinais Busy e Active deste bloco são resetados e a saída Done é setada por 1 ciclo de scan.
Com uma transição de subida de MOVEREL2_EXECUTE, o segundo bloco MC_MoveRelative é executado. Com isso, os sinais Busy e Active deste bloco são setados e inicia-se o posicionamento de 5 voltas positivas a partir da posição atual.
Ao terminar o posicionamento, a saída Done do segundo bloco é setada e os sinais Busy e Active deste bloco são resetados. A saída Done permanece TRUE enquanto a entrada Execute está setada.

Na transição de subida de MOVEREL1_EXECUTE, o primeiro bloco MC_MoveRelative é executado. Com isso, os sinais Busy e Active deste bloco são setados e inicia-se o posicionamento de 10 voltas positivas a partir da posição atual.
Tendo-se a transição de subida de MOVEREL2_EXECUTE, o segundo bloco MC_MoveRelative é instantaneamente executado (BufferMode - Aborting). Com isso, os sinais Busy e Active deste bloco são setados e inicia-se o posicionamento de 5 voltas positivas a partir da posição atual. Ao mesmo tempo, os sinais Busy e Active do primeiro bloco são resetados e o sinal CommandAborted é setado por 1 ciclo de scan.
Ao terminar o posicionamento, a saída Done do segundo bloco é setada e os sinais Busy e Active deste bloco são resetados. A saída Done permanece TRUE enquanto a entrada Execute está setada.