Instruções TIA Portal

Deslocamento e Rotação
Manipulação de Bits

Otimize o processamento dos seus registos. Do cálculo matemático ultra-rápido à gestão de protocolos de comunicação complexos, domine o movimento dos bits.

Porque deslocar ou rodar bits?

As operações de deslocamento (Shift) e rotação (Rotate) permitem mover os bits de uma palavra para a esquerda ou para a direita. Na indústria, são utilizadas para extrair informações precisas de um telegrama de comunicação, criar registos de deslocamento para o rastreio de peças num transportador, ou efetuar multiplicações/divisões por potências de 2 de forma extremamente eficiente.

A diferença principal reside no tratamento dos bits 'saída': enquanto o deslocamento (Shift) os descarta e substitui por zeros, a rotação (Rotate) volta a injetá-los do outro lado da palavra, criando um loop circular contínuo.

Deslocamento (Shift)

Movimento linear com perda de bits

SHL / SHR — Deslocamento Esquerda/Direita

SHL

O que faz

Move os bits para a esquerda (SHL) ou para a direita (SHR) por um número de posições definido pela entrada N. Os bits que saem do registo são perdidos, e os novos bits de entrada são colocados a 0.

Quando usar

Multiplicação rápida por 2 (SHL), divisão por 2 (SHR), ou isolamento de um byte específico numa palavra de 32 bits.

Dicas Pro

Deslocar um inteiro 1 bit para a esquerda equivale a multiplicá-lo por 2 sem usar a unidade de cálculo matemático.

Para tipos com sinal (Int, DInt), o SHR frequentemente conserva o bit de sinal (deslocamento aritmético).

Se N for superior ao tamanho da palavra (ex: N=20 para um WORD), o resultado será 0.

Rotação (Rotate)

Movimento circular sem perda

ROL / ROR — Rotação Esquerda/Direita

ROL

O que faz

Faz rodar os bits de forma circular. O bit que sai de um lado (ex: esquerda para ROL) entra imediatamente pelo outro lado (direita). Nenhum dado é perdido.

Quando usar

Criação de padrões luminosos rotativos, encriptação simples de dados ou gestão de buffers circulares (FIFO).

Dicas Pro

Ideal para alternar prioridades num grupo de bombas ou motores.

Ao contrário do deslocamento, uma rotação completa (ex: 16 bits para um WORD) devolve o valor inicial.

Utilize ROL/ROR para reorganizar a ordem dos bytes (Endianness) em trocas de dados.

Shift vs Rotate: O duelo

Compreender o impacto nos seus dados

PropriedadeDeslocamento (SHL/SHR)Rotação (ROL/ROR)
EstruturaLinearCircular
Bits de saídaDescartados (Perdidos)Reinjetados no oposto
Bits de entradaSempre 0Bits de saída reciclados
Uso MatemáticoMultiplicação / DivisãoPermutação de bits
Exemplo realRastreio de peçaSequenciador / Luzes
RiscoEsvaziamento do registoNenhum (dados preservados)

Perguntas Frequentes

Porque usar SHL em vez de uma multiplicação por 2?

A instrução SHL é executada muito mais rapidamente pelo processador do PLC do que uma operação MUL, pois trabalha diretamente sobre o registo sem passar pela ALU complexa.

Como criar um registo de deslocamento para um transportador?

Utilize o SHR a cada pulso de um encoder. Se uma peça for detetada na entrada, force o bit 0 a 1. Ao deslocar a palavra, segue a posição da peça bit a bit.

Qual é o impacto do tipo de dados (Byte, Word, DWord)?

A instrução adapta-se ao tamanho. Um ROR num Byte fará reaparecer o bit 7 na posição 0 após 1 deslocamento. Num Word, será o bit 15 que voltará a 0.

Pode-se deslocar variáveis em SCL?

Sim, através das funções SHL(IN:=var, N:=n) ou usando os operadores bitwise padrão se a sua versão do TIA Portal o permitir.

Otimize as suas manipulações binárias

Precisa de isolar bits ou criar um sequenciador complexo? O T-IA Connect gera as suas redes de deslocamento e rotação instantaneamente.