STRING e Texto
Operações de Dados
Processe dados de texto como um profissional. Da geração dinâmica de etiquetas à análise de protocolos, domine cada instrução de manipulação de STRING no seu PLC.
Por que processar STRINGs em um PLC?
Embora os PLCs sejam projetados principalmente para lógica binária e numérica, as operações de STRING são essenciais para as interfaces industriais modernas. Elas permitem gerar mensagens dinâmicas para HMIs, analisar códigos de barras ou códigos QR de scanners e comunicar com sistemas de TI através de protocolos de texto formatados.
O TIA Portal oferece um conjunto robusto de instruções para gerenciar os tipos STRING (ASCII) e WSTRING (Unicode), garantindo que sua máquina possa se comunicar claramente em qualquer idioma.
Concatenação & Inserção
Construindo mensagens dinâmicas
CONCAT — Concatenar STRINGs
CONCATO que faz
Combina duas ou mais STRINGs em uma única STRING de saída. As STRINGs de origem são anexadas na ordem em que são definidas.
Quando usar
Criar uma mensagem de status completa a partir de um prefixo e um nome de variável, ou construir uma linha CSV para registro de dados (logging).
Dicas de Especialista
Sempre verifique o comprimento máximo da sua STRING de destino para evitar truncamento.
Em SCL, você pode usar o operador '+' para uma concatenação mais simples, se suportado.
Combine CONCAT com caracteres de espaço para garantir uma saída legível na HMI.
INSERT — Inserir na STRING
INSERTO que faz
Insere uma substring em uma STRING existente em uma posição de caractere especificada (P).
Quando usar
Adicionar símbolos de unidade (como 'kg' ou '°C') dentro de um modelo de texto dinâmico.
Dicas de Especialista
Se P for 0, a substring é inserida no início.
Se P for maior que o comprimento da STRING, a substring é anexada ao final.
Útil para formatação dinâmica de STRINGs de data/hora.
Buscar & Modificar
Analisando dados de texto
FIND — Buscar Substring
FINDO que faz
Procura por um padrão específico dentro de uma STRING e retorna a posição inicial. Retorna 0 se não for encontrado.
Quando usar
Localizar delimitadores (como vírgulas ou pontos e vírgulas) em uma STRING de entrada de scanner.
Dicas de Especialista
A busca diferencia maiúsculas de minúsculas (case-sensitive). 'Error' é diferente de 'error'.
Use a posição retornada diretamente em uma instrução MID para extrair dados.
Em um loop, você pode encontrar várias ocorrências atualizando a STRING inicial.
REPLACE — Substituir Parte
REPLACEO que faz
Substitui um número específico de caracteres começando na posição P por uma nova substring.
Quando usar
Atualizar uma parte variável de uma mensagem estática sem reconstruir toda a STRING.
Dicas de Especialista
Para excluir caracteres sem adicionar novos, use uma STRING vazia como substituta.
Comumente usado para trocar espaços reservados (placeholders) como {val} por valores reais.
Tenha cuidado com a contagem de caracteres para evitar deslocar o restante do texto inesperadamente.
Conversão & Extração
Unindo números e texto
VAL_STRG / STRG_VAL — Conversão
VAL_STRGO que faz
Converte valores numéricos (Int, Real) para STRING (VAL_STRG) ou analisa números de uma STRING (STRG_VAL).
Quando usar
Exibir uma temperatura Real em uma mensagem de texto personalizada ou converter uma entrada de porta serial em um Integer.
Dicas de Especialista
Configure a entrada FORMAT para definir decimais e o comportamento do sinal.
STRG_VAL é sensível ao separador decimal (ponto vs vírgula).
Verifique a saída de status para garantir que a conversão foi bem-sucedida.
LEFT / RIGHT / MID — Extrair
MIDO que faz
Extrai uma parte de uma STRING da esquerda, direita ou de uma posição intermediária específica (MID).
Quando usar
Obter um prefixo de um código de barras ou extrair um valor entre colchetes.
Dicas de Especialista
MID(IN, L, P) extrai L caracteres começando na posição P.
Se L exceder os caracteres disponíveis, a instrução retorna tudo até o final.
Essencial para 'desempacotar' dados de protocolos seriais de terceiros.
STRING vs WSTRING
Escolhendo o formato de texto correto
| Propriedade | STRING | WSTRING |
|---|---|---|
| Codificação | ASCII / ASCII Estendido | Unicode (UTF-16) |
| Bytes por Caractere | 1 Byte | 2 Bytes |
| Comprimento Máx. | 254 Caracteres | 16382 Caracteres |
| Uso | Texto ocidental padrão | Caracteres internacionais / especiais |
| Impacto na Memória | Baixo | Alto (Dobro) |
| Prefixo SCL | '' (Aspas simples) | W#'' |
Perguntas Frequentes
Qual é o comprimento máximo de uma STRING no TIA Portal?
Uma STRING padrão pode conter até 254 caracteres. Se precisar de mais, deve usar o tipo WSTRING, que pode lidar com até 16.382 caracteres no S7-1500.
Por que minha conversão VAL_STRG falha?
O motivo mais comum é um comprimento insuficiente da STRING de destino ou uma divergência no parâmetro FORMAT (por exemplo, tentar encaixar um REAL grande em uma STRING pequena).
Posso usar STRINGs em Data Blocks otimizados?
Sim, STRINGs são totalmente suportadas em DBs otimizados. No entanto, lembre-se que elas sempre ocupam seu tamanho máximo definido na memória, mais 2 bytes para cabeçalhos de comprimento.
Como comparar duas STRINGs em SCL?
Você pode usar operadores de comparação padrão (=, <>, <, >). O TIA Portal compara STRINGs caractere por caractere com base em seus valores ASCII/Unicode.