Linguagem Texto Estruturado (ST)

A linguagem ST (Texto estruturado) é uma das 4 linguagens atualmente definidas na norma IEC61131-3. Esta é uma linguagem descritiva (textual) que disponibiliza acesso à todos os recursos comuns definidos no Padrão IEC61131-3.

A linguagem ST é a linguagem mais completa das propostas pela norma sendo que, as demais linguagens normalmente geram códigos ST para a compilação final da aplicação.

Veja a estrutura da linguagem com seus recursos:

Estrutura básica da linguagem

A linguagem é composta por statements separados por ponto e vírgula. Estes statements utilizam funções predefinidas e subrotinas de programa para alterar as variáveis da aplicação. Espaços podem ser utilizados para separar os statements e variáveis apesar de não serem necessários.

As variáveis podem ser valores explicitamente definidos, variáveis armazenadas internamente, ou valores de entradas e saídas associadas ao hardware do projeto. A linguagem de Texto Estruturado não é case sensitive, portanto as variáveis: MyVAR e myVar se referem ao mesmo conteúdo.

Indentação e comentários devem ser utilizados para melhor leitura e interpretação do código do programa.

Considere o programa de exemplo a seguir:

(* Função de exemplo *)
FUNCTION sample

  // Sessão de declaração de variáveis. (Gerenciada automaticamente pelo ambiente)
  INPUT_VAR
    start : BOOL;                   (* contato NO - entrada de start *)
    stop  : BOOL;                   (* contato NC - entrada de stop *)
  END_VAR

  OUTPUT_VAR
    motor : BOOL;                   (* saída de controle do motor *)
  END_VAR

  // Sessão de implementação (apenas este código deve estar no editor)
  motor := (motor OR start) AND stop; (* gera o estado da saída do motor *)

END_FUNCTION

Elementos da linguagem

Os programas em linguagem ST permitem a definição de variáveis nomeadas.

Importante

Quando definida uma variável, a mesma deve ser iniciada com uma letra seguida de combinações de letras, números e alguns símbolos (ex _).

Variáveis NÃO são case sensitive e podem incluir qualquer combinação de letras maiúsculas e minúsculas.

Variáveis NÃO podem possuir o mesmo nome de funções predefinidas ou funções definidas pelo usuário.

Os programas elaborados no ambiente ST permitem a utilização dos seguintes elementos:


Editor ST

O Editor ST do HIstudio conta com recursos e funcionalidades úteis para programação em Linguagem Texto Estruturado (ST), possibilitando o desenvolvimento de diversas aplicações. Ao abrir uma POU ST o usuário terá acesso ao editor:

../_images/st_interface_editor.png

Para desenvolver um código no editor é necessário digitar a lógica da aplicação desejada, utilizando o nome da função ou a instância do bloco de função que se deseja adicionar ao programa e preencher os parâmetros necessários.

Nota

Para utilização de funções da biblioteca HI_STD acrescente o namespace “HILS.” antes do nome da função desejada.

Exemplo:

ret := HILS.RANDOM(0, 4095, TRUE);  // retorna um valor aleatório entre 0 .. 4095

Auto indentação

A partir da versão 2.2.18, o HIstudio possui o recurso de visualização das linhas de indentação e indentação automática do cursor com a linha superior, permitindo códigos mais legíveis e organizados. Veja um exemplo abaixo:

../_images/st_auto_indent.png

Barra principal do editor

Abaixo estão listadas as funcionalidades da barra principal do Editor ST, bem como a descrição de suas utilizações no ambiente:

Ícone

Descrição

mascisave

Salva código no projeto.

mascicut

Recorta área selecionada.

mascicopy

Copia área selecionada.

mascipaste

Cola conteúdo da área de transferência.

mascisearch

Abre painel de Pesquisa de elementos da POU.

mascinext

Procura próxima ocorrência da pesquisa.

mascireplace

Abre painel “Substituir”.

Ícone

Descrição

masciundo

Desfaz a última ação.

masciredo

Refaz a última ação.

mascizoomin

Aumenta o tamanho da fonte.

mascizoomout

Diminui o tamanho da fonte.

mascibacknav

Retorna ao ponto anterior.

mascifowardnav

Avança para o próximo ponto.

Principais comandos do Editor

Abaixo estão listados os principais comandos disponíveis no Editor ST, bem como a descrição de suas utilizações no ambiente:

Atalho do comando

Descrição do comando

Ctrl + C

Copiar

Ctrl + X

Recortar

Ctrl + V

Colar

Ctrl + Z

Desfazer

Ctrl + Y

Refazer

Ctrl + A

Selecionar tudo

Ctrl + L

Deletar linha

Ctrl + D

Duplicar linha selecionada

Home

Mover cursor para o inicio da linha

End

Mover cursor para o fim da linha

Ctrl + Home

Mover cursor para o inicio do documento

Ctrl + End

Mover cursor para o final do documento

Page Up

Rolar uma página para cima

Page Down

Rolar uma página para baixo

Shift + Home

Selecionar no inicio da linha

Shift + End

Selecionar no fim da linha

Ctrl + Shift + Home

Selecionar no inicio do documento

Ctrl + Shift + End

Selecionar no fim do documento

Shift + Page Up/Down

Selecionar pela página

Ctrl + F

Abre painel de Pesquisa de elementos da POU

Ctrl + Shift + F

Abre painel de Pesquisa elementos no ambiente

Ctrl + H

Substituir

Ctrl + Alt + H

Abrir documentação associada ao elemento selecionado

F3

Procurar próxima ocorrência

Shift + F3

Procurar ocorrência anterior

Ctrl + E

Alternar pesquisa com distinção entre maiúsculas e minúsculas

Ctrl + Alt + T

Abrir lista de parâmetros

Tab

Inserir identação

Shift + Tab

Remover indentação

Ctrl + Tab

Adiciona a váriavel sob o cursor no painel de depuração

Scroll + Botão esquerdo do mouse

Aumenta o tamanho da fonte

Pesquisa de elementos da POU

Ao selecionar o ícone mascisearch na barra do editor ou clicar nas teclas CTRL + F do teclado será exibido um painel abaixo do programa aberto. Neste painel é possível buscar pelo elemento especificado no código do editor.

../_images/st_ctrl_f.png

É possível navegar entre as ocorrências utilizando:

  • Botões de setas do painel;

  • Ícone mascinext na barra do editor ou a tecla F3 para efetuar a procura pela próxima ocorrência da pesquisa;

  • Shift + F3 para efetuar a procura pela ocorrência anterior.

Para fechar o painel de procura basta utilizar a tecla Esc ou o botão X localizado no canto direito do painel.