Tratamento de erros no LabVIEW

Incluído nesta seção

Por mais cuidado que tenhamos ao criar um VI, não temos como prever todos os problemas que poderão ocorrer com os usuários. Sem um mecanismo que verifique os erros, você somente saberá que o VI não está funcionando corretamente. A verificação de erros diz a você onde os erros ocorrem, e o motivo de eles terem ocorrido.

Tratamento automático de erros

Cada erro tem um código numérico e uma mensagem de erro correspondente.

Como padrão, o LabVIEW trata automaticamente de qualquer erro ocorrido na execução do VI suspendendo essa execução, colocando em destaque o subVI ou função na qual ocorreu esse erro e apresentando uma caixa de diálogo de erro.

Para desabilitar o tratamento automático de erros do VI, selecione File»VI Properties e Execution no menu pull-down Category. Para desabilitar o tratamento automático de erros em VIs novos, em branco, selecione Tools»Options e a opção Block Diagram da lista Category. Para desabilitar o tratamento automático de erros de um subVI ou função dentro de um VI, conecte o seu parâmetro error out ao parâmetro error in de outro subVI ou função, ou a um indicador error out.

Tratamento manual de erros

Você pode escolher outros métodos de tratamento de erro. Por exemplo, imaginemos que tenha ocorrido um término de temporização em um VI de E/S do diagrama de blocos. Você não quer que isso interrompa toda a aplicação, somente quer que uma caixa de diálogo de erro seja exibida. Você pode querer também que o VI faça uma nova tentativa após um determinado intervalo de tempo. No LabVIEW, você pode tomar essas decisões de tratamento de erro no diagrama de blocos do VI.

Para gerenciar erros, você pode usar os VIs e funções de tratamento de erros do LabVIEW, encontrados na paleta Dialog & User Interface, e os parâmetros error in e error out incluídos na maior parte de VIs e funções. Por exemplo, se o LabVIEW encontrar um erro, você poderá ver a mensagem de erro em diferentes tipos de caixas de diálogo. Você pode usar o tratamento de erros com as ferramentas de depuração para encontrar e gerenciar erros.

Quando você executar qualquer tipo de entrada e saída (E/S), deverá considerar a possibilidade ocorrerem erros. Quase todas as funções de E/S fornecem informações de erro. Inclua a verificação em VIs, especialmente em operações de E/S (arquivos, transmissão serial, instrumentação, DAQ e comunicações) e forneça um mecanismo que proporcione o tratamento de erros adequado.

Os VIs, funções e parâmetros de tratamento de erros do LabVIEW podem ser usados para gerenciar erros. Por exemplo, se o LabVIEW encontrar um erro, você poderá ver a mensagem desse erro em uma caixa de diálogo. Você pode também corrigir o erro de maneira programática e apagá-lo conectando a saída error out do subVI ou função à entrada error in do Clear Errors VI. Você pode usar o tratamento de erros com as ferramentas de depuração para encontrar e gerenciar erros.

Clusters de erro

O tratamento de erros no LabVIEW segue o modelo de fluxo de dados. As informações de erro fluem pelo VI da mesma forma que os valores dos dados. Conecte as informações de erro do início ao fim do VI. Inclua um VI de tratamento de erro, como o Simple Error Handler VI, ao final do VI, para determinar se o VI foi executado sem erros. Os clusters error in e error out incluídos em um VI podem ser usados para transmitir informações de erro.

Durante a execução do VI, o LabVIEW testa cada nó de execução, à procura de erros. Se o LabVIEW não encontrar erros, o nó será executado normalmente. Se o LabVIEW detectar um erro, o nó transmitirá o erro ao próximo nó sem executar essa parte do código. O próximo nó faz o mesmo, e assim por diante. Ao final do fluxo de execução, o LabVIEW informa o erro.

Os controles e indicadores do cluster de erro podem ser utilizados para criar entradas e saídas de erro em subVIs.

Os clusters error in e error out contêm as seguintes informações:

  • status é um valor booleano que informa VERDADEIRO quando ocorre algum erro.
  • code é um valor inteiro de 32 bits com sinal que identifica o erro por um número. Um código de erro diferente de zero em conjunto com o status FALSO indica uma advertência, não um erro.
  • source é uma string que identifica onde o erro ocorreu.

Explicação do erro

Quando houver um erro, clique com o botão direito na borda do cluster e selecione Explain Error no menu de atalhos para abrir a caixa de diálogo Explain Error. A caixa de diálogo Explain Error contém informações sobre o erro. Se o VI tiver advertências, mas não erros, o menu de atalho apresentará a opção Explain Warning.

Você pode também acessar a caixa de diálogo Explain Error pelo menu Help»Explain Error.

Como usar loops While no tratamento de erros

Você pode conectar um cluster de erro ao terminal condicional de um loop While ou um loop For com um terminal condicional para interromper a iteração do loop. Se você conectar um cluster de erro ao terminal condicional, somente o valor VERDADEIRO ou FALSO do parâmetro de status do cluster de erro será passado ao terminal. Se houver um erro, o loop será interrompido. Em um loop For com um terminal condicional, você precisará conectar um valor ao terminal de contagem ou autoindexar um array de entrada para definir o número máximo de iterações. O loop For será executado até que o número de iterações definido seja concluído ou até ocorrer um erro.

Se você conectar um cluster de erro ao terminal condicional, os itens Stop if True e Continue if True do menu de atalhos serão substituídos por Stop on Error e Continue while Error.

Na figura 1, o cluster de erro e um botão de parada são usados para interromper a execução do loop. Esse é o método recomendado para interromper a maior parte dos loops, pois o loop será interrompido quando você quiser ou quando acontecer algo errado (produzindo um erro).

Figura 1. Como interromper um loop While

Aprenda os conceitos básicos do LabVIEW de uma nova maneira

Aprenda os conceitos do LabVIEW com nossa nova experiência interativa.

Continue seu aprendizado

Anterior Estruturas de execução
Como encontrar exemplos do LabVIEW Próxima