Códigos de diagnóstico

Cada problema apresentado na aba PROBLEMAS (ver Painel de Problemas) e no editor tem um código, por exemplo ST3001. Este apêndice reúne a página de ajuda de cada código: o que ele quer dizer, as causas mais comuns e como resolver. É o mesmo texto apresentado pelo botão O que isso quer dizer? do painel.

A mensagem de cada problema traz, além do código, os nomes usados no projeto (variável, tipo, POU) e a dica específica daquele caso. Quando a Origem de um código é Instalação ou Defeito do OnStudio, o problema não está no código do projeto (ver Origem do problema).

Escrita do código

Caracteres, textos, números e nomes escritos de forma inválida.

ST1001: Caractere inválido

O código tem um caractere que não faz parte da linguagem Texto Estruturado.

Causas comuns

  • Texto colado de um documento com aspas ou travessões tipográficos.

  • Um símbolo que não é operador do ST.

Como resolver

Apague ou troque o caractere marcado no editor.

ST1002: Texto não fechado

Um texto (STRING) começou com aspas simples e não foi fechado.

Causas comuns

  • Falta a aspa de fechamento.

  • Foram usadas aspas duplas; no ST os textos usam aspas simples.

Como resolver

Feche o texto com uma aspa simples na mesma linha.

ST1003: Valor escrito de forma inválida

Um número, data ou tempo está escrito de um jeito que o compilador não aceita.

Causas comuns

  • Tipo de data/tempo de 64 bits (LDT, LTOD, LDATE, LTIME), não suportado nos CLPs G5.

  • Número com dois pontos decimais ou prefixo de base inválido.

Como resolver

Escreva o valor em uma forma aceita, por exemplo 123, 1.5, 16#FF, T#1s500ms, DT#2024-01-31-12:00:00.

ST1004: Nome inválido

Nomes não podem ter dois sublinhados seguidos nem terminar com sublinhado (IEC 61131-3 §6.1.2).

Causas comuns

  • Nome como MOTOR__LIGA ou CONTADOR_.

Como resolver

Renomeie usando um único ‘_’ entre as palavras e sem ‘_’ no final.

ST1005: Comentário não fechado

Um comentário foi aberto com (* ou /* e nunca é fechado, então o resto do código é lido como parte dele.

Causas comuns

  • O *) de fechamento foi apagado.

  • Um comentário foi começado por engano.

Como resolver

Feche o comentário com *) (ou */).

Sintaxe

Comandos e declarações fora da estrutura da linguagem ST.

ST2001: Erro de sintaxe

Neste ponto o código não segue a gramática do Texto Estruturado.

Causas comuns

  • Falta um ‘;’.

  • ‘:=’ escrito como ‘=’.

  • Palavra-chave fora do lugar.

Como resolver

Compare a linha marcada com a sintaxe do ST: atribuição usa ‘:=’ e comparação usa ‘=’.

Veja também: ST2002, ST2003

ST2002: Símbolo inesperado

O compilador encontrou um símbolo que não pode aparecer neste ponto.

Causas comuns

  • Ligação de saída ‘=>’ usada fora da chamada de um bloco de função.

  • Parêntese ou vírgula faltando ou sobrando em uma chamada.

  • Bloco de biblioteca chamado sem o prefixo ‘HILS.’.

Como resolver

Confira o comando logo antes do ponto marcado.

Veja também: ST3006, ST3004

ST2003: Bloco não fechado

Um bloco IF, CASE, FOR, WHILE, REPEAT ou VAR foi aberto e não foi fechado com o seu END_*.

Causas comuns

  • END_IF, END_CASE ou END_VAR esquecido.

  • Blocos aninhados na ordem errada.

Como resolver

Inclua o END_* que falta no nível certo de aninhamento.

ST2004: O código terminou antes do esperado

A POU terminou com um bloco ou expressão ainda aberto.

Causas comuns

  • Um bloco não foi fechado.

  • Um comando ficou cortado no meio.

Como resolver

Feche todos os blocos abertos na POU antes do fim dela.

Veja também: ST2003

ST2005: Falta ‘;’

Todo comando, inclusive os blocos IF/CASE/FOR/WHILE/REPEAT, termina com ‘;’.

Causas comuns

  • END_IF, END_CASE, END_FOR ou END_WHILE sem ‘;’.

  • Atribuição sem ‘;’.

Como resolver

Coloque ‘;’ no final do comando marcado.

ST2006: Palavra reservada usada como nome

Palavras da linguagem ST (IF, TIME, END…) não podem ser nomes de variáveis, parâmetros ou tipos.

Causas comuns

  • Variável com o nome de uma palavra-chave ou de um tipo de dado.

Como resolver

Renomeie, por exemplo com um prefixo ou sufixo (MEU_TIME, TIME_VALOR).

ST2007: Bloco fechado no lugar errado

Um END_* fecha um bloco que não está aberto, ou não corresponde ao bloco aberto mais interno.

Causas comuns

  • O comando de abertura foi apagado ou está dentro de um bloco {IFDEF} desativado.

  • Blocos fechados na ordem errada.

Como resolver

Faça cada END_* corresponder ao seu comando de abertura, começando pelo mais interno.

ST2008: Tamanho de STRING inválido

O tamanho declarado para a STRING está fora dos limites suportados.

Causas comuns

  • STRING[0] ou tamanho acima do máximo.

Como resolver

Use um tamanho entre os limites indicados na mensagem.

ST2009: RETAIN em campo de STRUCT

A retenção é das variáveis, não dos campos de um tipo.

Causas comuns

  • Campo declarado com RETAIN dentro de um tipo STRUCT.

Como resolver

Retire o RETAIN do campo e declare a variável como VAR RETAIN.

ST2010: Construção não suportada

O código usa uma construção que o compilador do G5 não suporta.

Causas comuns

  • Chamada de função com mais de um prefixo de biblioteca.

Como resolver

Reescreva o comando como indicado na sugestão.

ST2011: Comando incompleto

Uma linha do corpo tem só um nome (ou um campo dele), o que não é um comando em ST.

Causas comuns

  • Texto digitado por engano no corpo.

  • Atribuição sem o ‘:=’ e o valor.

  • Chamada de bloco funcional sem os parênteses.

Como resolver

Complete o comando (atribuição, chamada ou bloco) ou apague a linha.

Declarações e tipos

Variáveis, tipos, chamadas e atribuições que não combinam.

ST3001: Variável não declarada

Um nome usado no código não está declarado na POU nem visível para ela.

Causas comuns

  • Erro de digitação no nome.

  • A variável foi renomeada em um lugar só.

  • Variável global usada sem VAR_EXTERNAL.

Como resolver

Declare a variável na POU ou corrija o nome como indicado na sugestão.

Veja também: ST3005

ST3002: Tipos incompatíveis

O valor atribuído ou os operandos de uma expressão têm tipos incompatíveis.

Causas comuns

  • STRING atribuída a uma variável inteira.

  • REAL e INT misturados sem conversão.

Como resolver

Use uma função de conversão (INT_TO_REAL, REAL_TO_INT…) ou mude o tipo da variável.

ST3003: Tipo desconhecido

O tipo usado em uma declaração não existe.

Causas comuns

  • Erro de digitação no nome do tipo.

  • Tipo do usuário não declarado.

  • Tipo de biblioteca sem o prefixo (por exemplo HILS.).

Como resolver

Use um tipo existente, declare o tipo do usuário ou inclua o prefixo da biblioteca.

Veja também: ST3007, ST3006

ST3004: Função ou bloco desconhecido

A função ou o bloco de função chamado não existe no projeto nem nas bibliotecas dele.

Causas comuns

  • Erro de digitação no nome.

  • Biblioteca não adicionada ao projeto.

  • Bloco de biblioteca chamado sem o prefixo.

Como resolver

Confira o nome, o prefixo e se a biblioteca está nas dependências do projeto.

Veja também: ST3006, ST3009

ST3005: Nome repetido

O mesmo nome foi declarado ou usado mais de uma vez onde deveria ser único.

Causas comuns

  • Duas variáveis com o mesmo nome na POU.

  • Valor de CASE repetido.

  • O mesmo argumento informado duas vezes.

Como resolver

Retire a repetição ou renomeie um dos itens.

ST3006: Prefixo da biblioteca obrigatório

Itens de uma biblioteca devem ser usados com o prefixo da biblioteca.

Causas comuns

  • Variável ou bloco de biblioteca usado sem o prefixo (por exemplo HILS.).

Como resolver

Escreva o nome com o prefixo indicado na mensagem.

Veja também: ST3004, ST3003

ST3007: Tipo de dado não suportado

O tipo existe na IEC 61131-3, mas não é suportado nos CLPs G5 da HI Tecnologia.

Causas comuns

  • LREAL (ponto flutuante de 64 bits).

  • WSTRING, WCHAR ou CHAR.

Como resolver

Use o substituto indicado: LREAL → REAL, WSTRING/WCHAR/CHAR → STRING.

ST3008: Atribuição a uma constante

Um valor é atribuído a uma variável declarada como constante.

Causas comuns

  • A variável está em um bloco VAR CONSTANT.

Como resolver

Retire a atribuição ou declare a variável fora do VAR CONSTANT.

ST3009: Argumentos da chamada incorretos

A chamada passa mais argumentos do que o aceito, ou um parâmetro que não existe.

Causas comuns

  • Argumento a mais.

  • Nome de parâmetro digitado errado.

Como resolver

Use os parâmetros listados na sugestão.

Veja também: ST3004

ST3010: Variável global sem VAR_EXTERNAL

Para usar uma variável global, a POU precisa declará-la em VAR_EXTERNAL.

Causas comuns

  • Variável global usada direto em um PROGRAM ou FUNCTION_BLOCK.

Como resolver

Inclua a variável em um bloco VAR_EXTERNAL da POU, com o mesmo tipo.

ST3011: Variável externa não é global

Uma variável declarada em VAR_EXTERNAL não existe nas variáveis globais.

Causas comuns

  • A variável global foi renomeada ou apagada.

Como resolver

Declare-a nas variáveis globais do recurso ou retire-a do VAR_EXTERNAL.

ST3012: Declaração inválida

A declaração desrespeita uma regra da IEC 61131-3 para a classe da variável.

Causas comuns

  • VAR_TEMP CONSTANT.

  • VAR_IN_OUT em um PROGRAM.

  • Valor inicial em VAR_IN_OUT ou VAR_EXTERNAL.

  • Constante sem valor.

Como resolver

Ajuste a declaração como indicado na sugestão.

ST3013: Valor fora da faixa

O valor não cabe no tipo de dado da variável.

Causas comuns

  • 300 atribuído a um SINT.

  • Valor negativo atribuído a um tipo sem sinal.

Como resolver

Use um valor dentro da faixa ou um tipo de dado maior.

ST3014: Campo inexistente

O campo ou membro acessado não existe no tipo da variável.

Causas comuns

  • Erro de digitação no nome do campo.

  • Acesso a uma variável interna de um bloco de função.

Como resolver

Use um dos campos ou saídas listados na sugestão.

ST3015: Rótulo de CASE inválido

Os rótulos do CASE devem ser constantes: literais, valores enumerados ou VAR CONSTANT.

Causas comuns

  • Variável usada como rótulo.

  • Valor enumerado não declarado.

Como resolver

Troque o rótulo por um valor constante.

ST3016: VAR_IN_OUT precisa de uma variável

Um parâmetro VAR_IN_OUT recebe o endereço de uma variável, por isso não pode receber um valor ou expressão.

Causas comuns

  • Literal ou expressão passado a um parâmetro VAR_IN_OUT.

Como resolver

Guarde o valor em uma variável e passe a variável.

ST3017: STRUCT usada como array

Uma variável STRUCT foi indexada com [ ] como se fosse um array.

Causas comuns

  • Índice aplicado à estrutura em vez do campo array dela.

Como resolver

Indexe o campo array da estrutura, como sugerido.

ST3018: CASE com tipos enumerados diferentes

Um rótulo do CASE tem tipo enumerado diferente do seletor.

Causas comuns

  • Valores de outra enumeração usados como rótulos.

Como resolver

Use rótulos do mesmo tipo enumerado do seletor.

ST3019: Conversão implícita

Um valor de um tipo é guardado numa variável ou parâmetro de outro tipo sem conversão explícita. O programa compila, mas o valor pode mudar (parte fracionária perdida, valor cortado, BOOL misturado com número).

Causas comuns

  • REAL guardado num inteiro.

  • DINT guardado em INT ou SINT.

  • Número guardado em BOOL, TIME ou num tipo enumerado.

Como resolver

Use a função de conversão (REAL_TO_INT, DINT_TO_INT…) ou declare a variável com o tipo certo.

ST3020: Condição ou seletor do tipo errado

Condições de IF/ELSIF/WHILE/UNTIL precisam ser BOOL, o FOR usa inteiros e o CASE seleciona por valor inteiro ou enumerado.

Causas comuns

  • IF contador THEN, com contador INT.

  • FOR com variável REAL.

  • CASE sobre um valor REAL ou STRING.

Como resolver

Escreva a comparação explicitamente (contador <> 0) ou use uma variável do tipo certo.

ST3021: EXIT ou CONTINUE fora do lugar

EXIT e CONTINUE encerram ou reiniciam um laço FOR, WHILE ou REPEAT e só fazem sentido dentro de um.

Causas comuns

  • EXIT usado para sair da POU.

  • O laço em volta foi apagado.

Como resolver

Use RETURN para sair da POU ou mova o comando para dentro do laço.

ST3022: Acesso inválido a ARRAY

Foi usado um índice em algo que não é ARRAY, com um valor não inteiro ou fora dos limites declarados.

Causas comuns

  • Índice fora dos limites declarados.

  • Índice REAL.

  • Índice numa variável simples.

Como resolver

Confira os limites na declaração e use índices inteiros.

ST3023: Operação inválida

Um operador foi aplicado a valores de tipos que ele não aceita ou que estão misturados.

Causas comuns

  • Aritmética com BOOL.

  • MOD com REAL.

  • STRING comparada com número.

  • Divisão pela constante 0.

Como resolver

Confira os tipos dos operandos e converta os valores onde for preciso.

ST3024: Uso incorreto de FUNCTION_BLOCK

Entradas, saídas e variáveis internas de um bloco foram usadas de um jeito que a IEC 61131-3 não permite.

Causas comuns

  • Escrever numa saída de fora do bloco.

  • Ler uma variável interna.

  • Passar uma saída com ‘:=’ ou uma entrada com ‘=>’.

Como resolver

Passe entradas com ‘:=’, leia saídas com ‘=>’ ou instancia.SAIDA e deixe as variáveis internas dentro do bloco.

ST3025: Nome usado duas vezes

Uma variável tem o mesmo nome de uma POU ou de um tipo de dado, o que deixa o código ambíguo.

Causas comuns

  • Variável com o nome de uma FUNCTION.

  • Variável com o nome de um tipo de dado.

Como resolver

Renomeie a variável.

ST3026: Valor de tipo enumerado não existe

O código usa TIPO#VALOR com um valor que não está declarado no tipo enumerado.

Causas comuns

  • Erro de digitação no valor.

  • Valor retirado do tipo.

Como resolver

Use um dos valores listados na sugestão.

Geração de código

Construções válidas em ST que não podem ser geradas para o equipamento.

ST4001: Erro interno na geração de código

O código está correto, mas o compilador não conseguiu convertê-lo para C. É um defeito do OnStudio.

Origem: Defeito do OnStudio

Causas comuns

  • Construção ainda não suportada pelo compilador.

Como resolver

Envie o relatório da compilação para o suporte. Enquanto isso, tente escrever o comando de outro jeito.

ST4002: Endereço exportado inválido

O endereço Modbus de uma variável exportada é inválido, desalinhado ou já está em uso.

Causas comuns

  • Duas variáveis exportadas no mesmo registrador.

  • Endereço fora de 0-65535.

Como resolver

Escolha um endereço livre e alinhado para a variável.

ST4003: Valor inválido

Um valor TIME ou BOOL está escrito de um jeito que não pode ser convertido.

Causas comuns

  • TIME sem unidade.

  • BOOL diferente de TRUE/FALSE/1/0.

Como resolver

Escreva o valor como indicado na sugestão.

ST4004: Limites do array não resolvidos

O compilador não conseguiu determinar o tamanho de um array.

Causas comuns

  • Limites definidos por uma expressão que não é constante.

Como resolver

Declare o array com limites constantes.

Compilação e firmware

Falhas na compilação do projeto e no firmware usado.

ST5001: A compilação falhou

Uma das etapas da compilação falhou. As outras mensagens da compilação dizem o motivo.

Causas comuns

  • Veja os demais diagnósticos da mesma compilação.

Como resolver

Corrija os outros erros listados e compile de novo.

Veja também: ST6001, ST7003

ST5002: Falha ao montar a aplicação

Falhou a junção da aplicação com as bibliotecas e o firmware.

Causas comuns

  • Algo faltando ou definido duas vezes.

  • A aplicação não cabe no equipamento.

Como resolver

Veja os diagnósticos ST7xxx da mesma compilação.

Veja também: ST7001, ST7002

ST5003: Falha no empacotamento

Não foi possível gerar o arquivo final da aplicação.

Causas comuns

  • Uma etapa anterior falhou.

  • Sem permissão de escrita na pasta do projeto.

Como resolver

Corrija os erros anteriores; se continuar, envie o relatório da compilação para o suporte.

ST5004: Firmware ausente

A compilação precisa do firmware do equipamento e nenhum foi encontrado.

Origem: Instalação

Causas comuns

  • Firmware não baixado para o equipamento.

  • Equipamento errado selecionado.

Como resolver

Baixe o firmware pelo gerenciador de firmwares ou conecte-se ao equipamento.

Diretivas de compilação

Mensagens e erros das diretivas de compilação ({IFDEF}, {ERROR} etc.).

ST5010: Mensagem de diretiva

Uma diretiva {MESSAGE} foi alcançada durante a compilação.

Causas comuns

  • Nota informativa escrita no código.

Como resolver

Nenhuma ação é necessária.

ST5011: Aviso de diretiva

Uma diretiva {WARNING} foi alcançada durante a compilação.

Causas comuns

  • Aviso escrito no código para esta configuração.

Como resolver

Revise a configuração a que o aviso se refere.

ST5012: Bloco desativado quebra o código

Um bloco {IFDEF}/{IFNDEF} desativado removeu o início ou o fim de um IF/FOR/WHILE/CASE/REPEAT.

Causas comuns

  • Só a abertura ou só o END_* está dentro do bloco condicional.

Como resolver

Coloque as duas pontas do comando sob a mesma condição.

ST5013: Compilação interrompida por diretiva {ERROR}

Uma diretiva {ERROR} foi alcançada e interrompeu a compilação.

Causas comuns

  • O código declara esta configuração como não suportada.

Como resolver

Altere as definições de compilação que a diretiva verifica.

ST5014: Diretiva inválida

Uma diretiva de compilação ({IFDEF}, {ELSE}, {ENDIF}…) está malformada ou desbalanceada.

Causas comuns

  • Falta um {ENDIF}.

  • Nome da diretiva digitado errado.

Como resolver

Revise as diretivas perto da linha indicada.

Configuração do projeto

Recurso, runtime, dispositivos, módulos, tarefas e mapeamento de dados.

ST5020: Problema no recurso

O projeto não tem recurso, ou o recurso atual não existe.

Causas comuns

  • Recurso apagado.

  • Projeto importado sem recurso.

Como resolver

Crie um recurso ou escolha um existente.

ST5021: Configurações de execução inválidas

As configurações de execução do recurso são inválidas.

Causas comuns

  • Valor editado à mão ou vindo de uma versão antiga.

Como resolver

Abra as configurações do recurso e revise as opções.

ST5022: Problema no equipamento

O recurso não tem equipamento, ou o equipamento escolhido não existe.

Causas comuns

  • Equipamento apagado ou renomeado.

Como resolver

Adicione um equipamento ao recurso ou escolha um existente.

ST5023: Problema na configuração de módulos

Os módulos do equipamento estão faltando ou não cabem nos slots dele.

Causas comuns

  • Sem módulo de CPU.

  • Mais módulos locais do que slots.

Como resolver

Revise os módulos na configuração de hardware do equipamento.

ST5024: Problema na configuração de tarefas

O recurso não tem tarefa, ou tem mais tarefas do que o permitido.

Causas comuns

  • Nenhuma tarefa criada.

  • Mais tarefas do que o firmware suporta.

Como resolver

Crie ou junte tarefas no recurso.

ST5025: Problema na configuração de E/S

Não foi possível processar a configuração de E/S do equipamento.

Causas comuns

  • Apelido apontando para um canal que não existe.

  • Módulo sem especificação.

Como resolver

Revise os módulos e os apelidos de E/S do equipamento.

ST5026: Arranjo de memória exportada inválido

As variáveis globais exportadas não podem ser organizadas na memória Modbus.

Causas comuns

  • Endereços exportados sobrepostos ou desalinhados.

Como resolver

Revise os endereços exportados das variáveis globais.

ST5027: Problema no mapeamento de dados

Não foi possível gerar o mapeamento de dados.

Causas comuns

  • Canal sem variável ou endereço válido.

Como resolver

Revise os canais do mapeamento de dados.

Bibliotecas

Bibliotecas ausentes, desatualizadas ou em conflito com o projeto.

ST5030: Biblioteca não instalada

Uma biblioteca da qual o projeto depende não está instalada para a família do equipamento.

Causas comuns

  • Biblioteca danificada.

  • Biblioteca não instalada.

  • Biblioteca instalada só para outra família.

  • Biblioteca gerada para uma versão anterior do OnStudio.

  • O projeto não inclui uma biblioteca de sistema (IEC_STD, HI_STD).

Como resolver

Instale a biblioteca pelo gerenciador de bibliotecas ou retire-a das dependências.

ST5031: POU com nome de biblioteca

Uma POU do projeto tem o mesmo nome de uma POU de uma das bibliotecas.

Causas comuns

  • POU copiada da biblioteca para o projeto.

Como resolver

Renomeie a POU do projeto.

Instalação

Firmware, ferramentas de compilação e arquivos da instalação.

ST5040: Firmware inválido ou de outro equipamento

O firmware usado na compilação não pode ser lido ou não é do modelo do equipamento.

Causas comuns

  • Download incompleto ou arquivo corrompido.

  • Firmware de outra família ou modelo escolhido em Compilar para (por exemplo, o de um RION para um NEON).

  • Compilação com ‘O firmware do dispositivo’ conectado a um equipamento de outro modelo.

Como resolver

Baixe o firmware de novo ou escolha, em Compilar para, um firmware do modelo do equipamento.

ST5041: Alvo de compilação indisponível

A biblioteca não pode ser compilada para a família pedida.

Origem: Instalação

Causas comuns

  • Nenhum alvo de compilação habilitado para a família.

Como resolver

Habilite o alvo de compilação nas configurações da biblioteca.

ST5042: Repositório de bibliotecas indisponível

Não foi possível ler a pasta de bibliotecas.

Origem: Instalação

Causas comuns

  • Pasta movida ou sem permissão.

Como resolver

Confira a pasta de bibliotecas nas configurações.

ST5043: Ferramenta de compilação falhou

Uma das ferramentas de compilação falhou ou não respondeu.

Origem: Instalação

Causas comuns

  • Ferramenta ausente da instalação.

  • Instalação danificada.

  • Antivírus bloqueando a ferramenta.

Como resolver

Tente de novo; reinstale o OnStudio se continuar.

ST5044: Arquivo inacessível

Um arquivo da compilação não pôde ser lido ou gravado.

Origem: Instalação

Causas comuns

  • Arquivo aberto em outro programa.

  • Pasta sincronizada (OneDrive) ou antivírus bloqueando o arquivo.

  • Pasta sem permissão de gravação.

Como resolver

Feche o programa que usa o arquivo ou verifique a permissão da pasta, e compile de novo.

Falhas internas

Falhas do próprio OnStudio.

ST5090: Erro interno da compilação

Aconteceu uma falha inesperada dentro do OnStudio. Não é um erro do seu projeto.

Origem: Defeito do OnStudio

Causas comuns

  • Defeito do OnStudio.

Como resolver

Envie o relatório da compilação para o suporte.

Código C

Erros na compilação do código C das POUs e das bibliotecas.

ST6001: Erro de C em uma POU em C

O código de uma POU escrita em C tem um erro.

Causas comuns

  • Erro de sintaxe, nome não declarado ou tipo incompatível no código C.

Como resolver

Corrija o código C na linha indicada.

ST6002: Biblioteca não pôde ser compilada

Uma biblioteca do projeto não pôde ser compilada para este equipamento.

Origem: Instalação

Causas comuns

  • Biblioteca desatualizada ou danificada.

Como resolver

Atualize ou reinstale a biblioteca.

ST6003: Aviso de C em uma POU em C

O código de uma POU escrita em C tem um possível problema. A compilação continuou.

Causas comuns

  • Variável não usada.

  • Conversão implícita.

Como resolver

Revise a linha indicada se o comportamento não for o esperado.

ST6004: Trecho que o OnStudio não conseguiu compilar

O OnStudio aceitou o código, mas falhou ao transformá-lo no programa do equipamento. Não é um erro do seu projeto.

Origem: Defeito do OnStudio

Causas comuns

  • Defeito do OnStudio em uma construção pouco comum.

Como resolver

Envie o relatório da compilação para o suporte; para continuar, escreva o comando da linha indicada de outra forma.

Ligação e memória

Falhas ao juntar a aplicação com o firmware: memória e funções do firmware.

ST7001: Item não encontrado

A aplicação usa algo que não está definido no projeto, nas bibliotecas nem no firmware.

Causas comuns

  • Biblioteca não compilada para este equipamento.

  • POU apagada, mas ainda chamada.

Como resolver

Confira as bibliotecas do projeto e as POUs que ele chama.

Veja também: ST5002

ST7002: Definido mais de uma vez

O mesmo nome está definido em dois lugares do projeto ou das bibliotecas.

Causas comuns

  • POU ou variável global com o nome de um item de biblioteca.

Como resolver

Renomeie uma das definições.

Veja também: ST5002

ST7003: Não foi possível montar a aplicação

A junção da aplicação com as bibliotecas e o firmware falhou por um motivo ainda não classificado.

Origem: Defeito do OnStudio

Causas comuns

  • Defeito do OnStudio ou instalação danificada.

Como resolver

Envie o relatório da compilação para o suporte.

Veja também: ST5002

ST7004: A aplicação não cabe na RAM

Os dados da aplicação (variáveis, instâncias, bibliotecas) são maiores do que a RAM que o equipamento reserva para aplicações.

Causas comuns

  • Aplicação feita para um equipamento com mais memória.

  • Arrays ou estruturas grandes.

Como resolver

Reduza os maiores ocupantes listados na sugestão ou use um equipamento com mais memória.

Veja também: ST7005, ST5002

ST7005: A aplicação não cabe na memória de programa

O código da aplicação é maior do que a memória de programa que o equipamento reserva para aplicações.

Causas comuns

  • Aplicação feita para um equipamento com mais memória.

  • Bibliotecas grandes.

Como resolver

Reduza o código ou use um equipamento com mais memória.

Veja também: ST7004, ST5002

ST7006: Serviço do firmware indisponível

A aplicação, direto ou por uma biblioteca, usa um serviço que este equipamento não oferece (por exemplo o sistema de arquivos).

Origem: Instalação

Causas comuns

  • Aplicação feita para outro equipamento.

  • Firmware mais antigo.

Como resolver

Retire os usos listados na sugestão ou use um equipamento/firmware que ofereça o serviço.

Veja também: ST7001, ST5002

Outros

Problemas sem classificação específica.

ST9999: Erro não classificado

Um erro que ainda não tem classificação específica.

Origem: Defeito do OnStudio

Causas comuns

  • Novo tipo de falha.

Como resolver

Leia a mensagem e os detalhes; se continuar, envie o relatório da compilação para o suporte.