Ponteiro AR1 Acesso Dados DB (Ponteiro/Index) Linguagem STL - PLC CLP Siemens

Por , Comentario
Compartilhar Facebook Compartilhar Twitter

Ponteiro AR1 Acesso Dados DB (Ponteiro/Index) Linguagem STL - PLC CLP Siemens 

Ponteiro AR1 e Linguagem STL: Como Aceder a Dados em DBs no TIA Portal

Para programadores de PLC Siemens que precisam de lidar com grandes volumes de dados ou estruturas dinâmicas, o uso de ponteiros é uma técnica indispensável. Embora a linguagem STL (Statement List) seja considerada mais complexa, ela oferece um controlo de baixo nível sobre a memória que é extremamente poderoso.

Neste artigo, vamos explorar como utilizar o registo de endereço AR1 para criar uma lógica de busca (indexação) dentro de um Array numa Data Block (DB). [00:00]


1. Estrutura de Dados e o Objetivo

Imagine que tem uma DB com um Array de 11 posições. Cada posição contém uma estrutura (UDT) com um ID (inteiro), um Nome e um E-mail. O nosso objetivo é:

  1. Inserir um ID de procura numa variável.

  2. Percorrer a DB automaticamente até encontrar o ID correspondente. [00:27]

  3. Retornar o Nome, o E-mail e a posição exata (em bytes) onde a informação foi encontrada. [01:00]


2. Carregando o Ponteiro AR1

Para iniciar a busca, precisamos de "apontar" para o início da DB:

  • Usamos a instrução L P#0.0 para carregar o endereço inicial. [01:46]

  • Com LAR1, transferimos esse valor para o registo AR1.

  • O comando SLD 3 (Shift Left Double) é crucial aqui para converter o valor em formato de ponteiro de bits antes de carregar no AR1. [01:59]


3. Criando um Loop de Busca (Lógica STL)

A busca funciona através de uma estrutura de loop baseada em labels: [05:12]

  1. Comparação: O PLC lê o valor no endereço apontado pelo AR1 e compara com o ID procurado (==I). [02:40]

  2. Salto Condicional (JC): Se os valores forem iguais, o programa salta para uma label chamada Achou_Info. [03:21]

  3. Incremento: Se não encontrar, somamos o tamanho da nossa estrutura (ex: 50 bytes) ao ponteiro e voltamos ao início do loop. [04:35]

  4. Limite de Segurança: É vital verificar se o ponteiro ultrapassou o tamanho da DB (ex: 500 bytes) para evitar que o PLC entre em erro (Stop) por acesso a endereço inválido. [06:24]


4. Extração de Dados: O Bloco BLKMOV

Uma vez encontrada a informação, precisamos de a copiar para as variáveis de saída.

  • Utilizamos o valor atual do AR1 para calcular a posição inicial. [07:43]

  • A função BLKMOV (Block Move) é usada para transferir as Strings (Nome e E-mail) da DB de origem para a DB de destino de forma eficiente. [08:09]


5. Monitorização Online em STL

Diferente do Ladder, a monitorização em STL mostra os valores nos registos ACCU 1 e ACCU 2 e o estado do bit de status (RLO). [14:15]

  • Ao ficar online, podes ver o ponteiro AR1 a incrementar em tempo real durante o ciclo de varrimento até encontrar o ID correto. [14:26]


Conclusão

Dominar o ponteiro AR1 e a indexação em STL permite criar programas muito mais flexíveis e otimizados. Esta técnica é especialmente útil em sistemas de rastreabilidade e gestão de receitas onde os dados estão organizados em grandes tabelas.

Ainda usas STL para este tipo de lógica ou preferes o Texto Estruturado (SCL)? Deixa a tua opinião nos comentários!


Tutorial de como Procurar Dados em DB com ARRAY[], via linguagem STL utilizando recurso de Ponteiro / Indexação com AR1 Registrador.

Criar um Loop de procura através de Labels e Jumper em STL para varrer as Array[] na DB para acessar o dado procurado.

Faz a verificação / comparação do valor e carrega os valores em Inteiro (INT) e STRING.

Software TIA Portal V14.
Pode ser utilizado nos PLC´s S7-300 / S7-400 / S7-1500.
Tutorial de como Procurar Dados em DB com ARRAY[], via linguagem STL utilizando recurso de Ponteiro / Indexação com AR1 Registrador.

Criar um Loop de procura através de Labels e Jumper em STL para varrer as Array[] na DB para acessar o dado procurado.

Faz a verificação / comparação do valor e carrega os valores em Inteiro (INT) e STRING.

Software TIA Portal V14.
Pode ser utilizado nos PLC´s S7-300 / S7-400 / S7-1500.

Download do Projeto Criado no Video:
https://goo.gl/ip8ouz

Se Increva em Nosso Canal Youtube:
https://goo.gl/1P1oBS

0 comentários

COMENTÁRIOS AGORA