Bloco responsável pela busca da posição da AbsoluteSwitch.
Representação Ladder

Características de Execução
Tamanho de Memória de Programa |
74 Bytes |
Tamanho de Memória de Dados |
40 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 |
Direction |
BYTE |
Direção de busca (0 - Direção positiva) (1 - Direção negativa) (5 - MC_SwitchPositive: Direção positiva, se AbsoluteSwitch não acionada) (6 - MC_SwitchNegative: Direção negativa, se AbsoluteSwitch não acionada) |
|
SwitchMode |
BYTE |
Modo de busca (3 - MC_EdgeOn) (4 - MC_EdgeOff) |
|
Velocity |
REAL |
Velocidade |
|
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_STEPABSOLUTESWITCH_INST_0 |
MC_STEPABSOLUTESWITCH |
Instância de acesso à estrutura do bloco |
Funcionamento
Este bloco, quando detecta uma borda de subida em Execute, envia um comando para busca da posição da AbsoluteSwitch.
A AbsoluteSwitch somente poderá ser ligada nas entradas digitais 1, 2 ou 3, sendo que a função programada da entrada digital deverá ser de acordo com o argumento SwitchMode. Se SwitchMode for configurado como MC_EdgeOn (borda de subida), a função da entrada digital (P0300, P0301 ou P0302) deverá ser "armazena posição - borda de subida" (opção 8). Se SwitchMode for configurado como MC_EdgeOff (borda de descida), a função da entrada digital (P0300, P0301 ou P0302) deverá ser "armazena posição - borda de descida" (opção 9). Será considerado AbsoluteSwitch a primeira entrada digital configurada conforme SwitchMode a partir da entrada digital 1. Caso nenhuma entrada digital esteja configurada conforme SwitchMode, ocorrerá o erro 77 no bloco e ele não será executado.
Se ao buscar a posição da AbsoluteSwitch e atingir a posição de LimitSwitch (fim de curso), o movimento mudará de sentido até a posição da AbsoluteSwitch.
A busca será executada com a velocidade configurada no argumento Velocity e uma aceleração/desaceleração configurado no Perfil Padrão (General Profile).
Com a execução do bloco MC_StepAbsoluteSwitch, a posição de referência do usuário (P0051, P0052 e P0053) não é alterada. 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 bloco o estado do eixo mudará para Homing e permanecerá assim até a execução dos blocos MC_StepRefPulse, MC_StepDirect ou MC_FinishHoming.
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.
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 |
60 |
Velocidade programada menor que a mínima permitida. |
61 |
Velocidade programada maior que a máxima permitida. |
67 |
Drive no estado "Disabled" ou "ErrorStop". |
69 |
Drive no estado "Stopping". |
71 |
P202 diferente de 4. |
76 |
Estado do Drive diferente de "StandStill" ou "Homing". |
77 |
Entradas digitais 1, 2 e 3 não configuradas conforme "SwitchMode". |
97 |
Realimentação e sensor de posição não permitido. Verificar se P0209 = 0 e P0360 = 0. |
|
NOTA! Bloco permitido somente quando a realimentação e sensor de posição for resolver. |
Exemplo




Na transição de subida de HOME_EXECUTE, o bloco MC_StepAbsoluteSwitch é executado. Com isso, os sinais Busy e Active deste bloco são setados e inicia-se a busca da AbsoluteSwitch.
No caso 1, ao executar o bloco, a AbsoluteSwitch não está acionada. Como o argumento Direction está configurado como MC_SwitchNegative, o movimento será na direção negativa. Quando ocorrer uma borda de descida em AbsoluteSwitch (SwitchMode = MC_EdgeOff), o motor para e volta para a posição em que a borda ocorreu.
No caso 2, ao executar o bloco a AbsoluteSwitch está acionada. Como o argumento Direction está configurado como MC_SwitchPositive, o movimento será na direção positiva e, ao sair da AbsoluteSwitch, o motor para e muda o movimento para a direção negativa. Quando ocorrer uma borda de descida em AbsoluteSwitch (SwitchMode = MC_EdgeOff), o motor para e volta para a posição em que a borda ocorreu.
No caso 3, ao executar o bloco a AbsoluteSwitch não está acionada. Como o argumento Direction está configurado como MC_SwitchNegative, o movimento será na direção negativa. Mas ao encontrar a LimitSwitch (fim de curso) o motor para e muda o movimento para a direção positiva. Ao sair da AbsoluteSwitch o motor para novamente e muda o movimento para a direção negativa. Quando ocorrer uma borda de descida em AbsoluteSwitch (SwitchMode = MC_EdgeOff), o motor para e volta para a posição em que a borda ocorreu.
Todos os movimentos serão realizados com uma aceleração/desaceleração programados em P0100 e P0101, exceto ao encontrar a LimitSwitch (fim de curso), onde o motor para instantaneamente.
Ao voltar a posição de borda de descida da AbsoluteSwitch, a saída Done do 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.