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.
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 (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.
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 |
Membros |
Campos de estruturas ( |
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
|
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 ( |
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).