Movimentação Indexada Estendida¶
| Movimentação Indexada Estendida | |
| Caminho | Programa/Editor Ladder/Elementos/Movimento |
| Grupo | Movimento |
| Tecla de Atalho | Nenhuma |
| Parâmetros | 4 |
| Entradas | 1 |
| Tamanho do elemento | 4 linhas |
| Ícone | ![]() |
| Tabela de compatibilidade de firmwares | |
| Geração de Firmware | G3, G3S, G3R, disponível na família ZAP-900 GII a partir do firmware versão 1.8.02 |
Símbolo¶
Este elemento possibilita a movimentação de um grupo de variáveis (R, M, D ou L) ou constante string (W) da base de dados do controlador, sendo que os endereços origem e destino das variáveis movimentadas podem ser indexadas. O tipo de variável (R, M, D ou L) ou constante string (W) a ser movimentada é especificado no parâmetro P1, os endereços origem e destino das variáveis a serem movimentadas são especificadas ou indexadas pelos parâmetros P2 e P3 respectivamente, e por fim a quantidade de variáveis a ser movimentada é especificada no parâmetro P4.
Para inseri-lo no programa deve-se posicionar o cursor na posição desejada, selecionar no menu à esquerda
o grupo “Movimento” e clicar no botão
.
Considere o exemplo indicado na figura a seguir. No instante T1, antes do elemento de movimentação indexada estendido ser executado, o conteúdo das variáveis é o apresentado na tabela T1. Durante a execução do elemento, é realizada a seguinte seqüência de operações:
A. O tipo de variável a ser movimentada é extraído para parâmetro P1. Neste exemplo, P1 = M1, e como o conteúdo de M1 = 2, indica o tipo de variável associada ao código 2, no caso, este código indica variáveis do tipo M. Assim esta operação de movimentação será realizada em variáveis do tipo M.
B. O número da memória M inicial origem dos dados a serem transferidos é extraído do parâmetro P2. Neste exemplo, P2 = M2, e como o conteúdo de M2 = 6, indica que a variável origem da movimentação será a variável M6.
C. O número da memória M inicial destino dos dados a serem transferidos é extraído do parâmetro P3. Neste exemplo, P3 = M3, e como o conteúdo de M3 =10, indica que a variável destino da movimentação será a variável M10.
D. O parâmetro P4 indica a quantidade de variáveis a serem movimentadas. No exemplo, P4 = M4, e como o conteúdo de M4 = 2, indica que serão transferidas 2 memórias M consecutivas, a partia da memória origem (M6) para a memória destino (M10).
Sendo assim, no instante T2, após a execução da movimentação, os valores 18 e 19 presentes nas memórias M6 e M7 são transferidos para as memórias M10 e M11, respectivamente, conforme ilustrado na figura abaixo:
Movimentação com operandos K ou M¶
Os parâmetros P1, P2, P3 e P4 podem ser do tipo constantes inteiras K ou memórias inteiras M. Quando especificada uma constante K para o parâmetro, o elemento de movimentação trata o valor da constante como o valor do parâmetro, caso contrário, se for especificada uma variável M, considera-se o conteúdo da respectiva variável M o valor do parâmetro. E neste último caso, através do conteúdo destes parâmetros do tipo M pode-se indexar as variáveis origem e destino da movimentação de dados.
Parâmetros¶
Observações¶
Entradas¶
| Descrição das Entradas | |||
|---|---|---|---|
| Entrada | Função | Estado | Descrição |
| A1 | Ativação | Inativo | Com a entrada A1 inativa, a operação não é realizada e portanto nenhuma movimentação de dados ocorre. Nesta condição, a saída do bloco é desativada. |
| Ativo | Com a entrada A1 ativa, a operação de movimentação é realizada e, caso ocorra sem erros, a saída do elemento é mantida ativa. No caso de erro no processo de movimentação, a saída é desativada para sinalizar a falha. Nesta condição o conteúdo das variáveis destino permanecem inalteradas. | ||
Saída¶
| Descrição das Saídas | |||
|---|---|---|---|
| Saída | Função | Estado | Descrição |
| B1 | Energização | Inativo | Se a entrada A1 estiver inativa, indica que a função associada não foi executada. Se a entrada A1 estiver ativa,indica que houve falha na execução da função e neste caso o conteúdo das memórias destino não é alterado. As possíveis causas de falha na execução desta função são: Tipo de variável inválida: o código do tipo de variável a ser movimentada é inválido, ou não é suportado pelo controlador, por exemplo, se o controlador não possuir suporte para variáveis do tipo L(Long). Overflow na movimentação: a quantidade de dados espeecificada na transferência (origem e/ou destino), ultrapassa o número de variáveis disponíveis na base de dados do controlador. |
| Ativo | Indica que a entrada do elemento estava ativa e a transferência definida foi realizada com sucesso. | ||
Este bloco MXX incorpora toda a funcionalidade do bloco Movimentação Indexada, com os recursos adicionais que permitem a movimentação de outros tipos de dados além do tipo M.
Dica
Utilizando este bloco com o parâmetro P4 com valor negativo, é fácil implementar um buffer circular. Considere o seguinte exemplo:
Uma aplicação necessita de um buffer de 20 memórias do tipo M que serão alocadas nas posições M100 a M119. A memória M30 contém um novo valor a ser inserido na posição M100 depois que todos os valores forem deslocados de uma posição para a direita.
Para deslocar os valores do buffer de uma posição para a direita utilize o elemento de movimentação indexada estendida com os seguintes parâmetros: MXX (P1, P2, P3, P4), com P1 = 2, P2 = 100, P3 = 101 e P4 = -19.
Após a execução do bloco acima, o conteúdo do buffer definido será deslocado de uma posição para a direita, perdendo-se o valor da memória M119 e liberando a memória M100 para receber o novo valor disponível na memória M30.

