Editor ST

O editor de código ST do OnStudio é baseado no editor Monaco (o mesmo do Visual Studio Code) e conta com realce de sintaxe IEC 61131-3, autocompletar, diagnósticos e os recursos usuais de edição de texto. Ele é utilizado nas áreas Declaração de Variáveis e Lógica do Programa da aba Código fonte das POUs (ver Unidades de organização de programa (POUs)).

Ver também

Para criar POUs e organizar o código, veja Escrever um programa.

../../_images/pou_editor_codigo.png

Fig. 74 Editor ST com a declaração de variáveis e a lógica de um bloco de função.

Recursos do editor

  • Realce de sintaxe: palavras reservadas, tipos, literais, comentários (// e (* *)) e diretivas de compilação ({ ... }) em cores distintas, seguindo o tema da IDE.

  • Números de linha, minimapa, quebra de linha, tamanho da tabulação e fonte: configuráveis em Configurações ‣ Editor (ver Configurações).

  • Pesquisar e substituir: CTRL + F e CTRL + H abrem a barra de pesquisa do editor; a pesquisa em todo o projeto está na atividade Pesquisar (Pesquisa no projeto).

  • Desfazer e refazer, seleção múltipla, comentar linhas (CTRL + /), indentação automática e dobra de blocos.

  • Adicionar à Depuração: o menu de contexto sobre o nome de uma variável adiciona a variável ao CONSOLE DE DEPURAÇÃO (ver Depuração). Variáveis temporárias e valores que não podem ser inspecionados são recusados com a mensagem "nome" não é uma variável depurável.

Autocompletar

O autocompletar é acionado automaticamente ao digitar e, a qualquer momento, por CTRL + ESPAÇO. Os caracteres ., ( e : também abrem sugestões contextuais.

../../_images/st_autocomplete.png

Fig. 75 Sugestões do autocompletar com a documentação da função selecionada.

As sugestões incluem:

Origem

Conteúdo

Variáveis da POU

Variáveis locais, temporárias, de entrada, de saída, de entrada/saída e externas, com o tipo, o endereço e o valor inicial nos detalhes.

Variáveis globais

Variáveis globais do recurso.

Mapeamento de E/S

Canais dos módulos do dispositivo atual, no namespace io., e seus aliases (ver Mapeamento de E/S).

Membros

Campos de estruturas (variavel.campo), valores de enumerações e saídas de instâncias de blocos de função.

Funções e blocos de função

Todas as funções e blocos das bibliotecas do projeto (IEC_STD, HI_STD e bibliotecas adicionadas), com os parâmetros e a descrição. Bibliotecas com namespace são acessadas com o prefixo (por exemplo HILS.).

Tipos de dados

Tipos nativos, do usuário e das bibliotecas (nas declarações). Tipos e blocos de função de bibliotecas com namespace são inseridos na forma qualificada (NAMESPACE.Tipo).

Ao aceitar a sugestão de uma instância de bloco de função, o editor oferece o snippet de chamada com todos os parâmetros de entrada e de entrada/saída, já terminado com ; (instancia(IN := , PT := ...);), navegáveis com TAB. O link Ver Documentação na janela de detalhes abre a documentação da função na barra lateral de Bibliotecas.

Diagnósticos

O editor verifica o código da POU enquanto ele é digitado, com o mesmo compilador usado na compilação do projeto: logo após uma pausa na digitação, os erros aparecem sublinhados em vermelho e os avisos em amarelo, sem precisar compilar. São acusados os mesmos problemas que a compilação acusaria, como erros de sintaxe, variáveis não declaradas e tipos incompatíveis, com os mesmos códigos e mensagens.

Passar o mouse sobre o trecho sublinhado mostra a mensagem, o código do problema e a dica de correção. As marcas também aparecem na régua à direita do editor, o que ajuda a localizar os problemas em POUs longas.

A verificação durante a digitação analisa somente a POU aberta. Os problemas do projeto todo são listados na aba PROBLEMAS após a compilação (ver Painel de Problemas), que abre o editor no ponto de cada erro com um clique.

Declaração de variáveis em código

A área Declaração de Variáveis aceita as seções de declaração da norma:

VAR_INPUT
  habilita : BOOL;
  limite   : INT := 10;
END_VAR
VAR_OUTPUT
  atingido : BOOL;
END_VAR
VAR
  contador : INT;           { retain }
END_VAR

Os atributos de retentividade são indicados entre chaves após a declaração ({ retain } ou { n_retain }, ver Variáveis retentivas e não retentivas). Ao salvar, a tabela da aba Variáveis é atualizada; erros de sintaxe (seção sem END_VAR, tipo ausente, nome duplicado ou inválido) são reportados e a declaração anterior é mantida.

Linguagem

Consulte Linguagem Texto Estruturado (ST) para a estrutura da linguagem ST e o Padrão IEC61131-3 para as definições comuns da norma (identificadores, tipos, literais, comentários e funções).