Variáveis globais
Este tipo de variável é definido na aplicação com dois objetivos principais:
Compartilhar uma mesma variável com uma ou mais POU´s da aplicação;
Permitir que um equipamento externo acesse uma variável da aplicação;
Editor de variáveis globais
As variáveis globais de um projeto são editadas no item Variáveis Globais do recurso, na árvore do projeto (atividade Explorer). A ativação do item abre o editor de variáveis globais, que disponibiliza uma tabela com as variáveis definidas, um campo de busca, filtros (Todos, Variáveis, Constantes) e um formulário para inclusão e alteração de cada variável.
A operação do editor é descrita em Variáveis globais (editor). Esta seção descreve os campos e as regras associadas à definição de uma variável global.
Os editores de variáveis do OnStudio disponibilizam os seguintes comandos de importação e exportação da lista de variáveis:
Comando |
Descrição |
|---|---|
Baixar CSV |
Gera um arquivo .csv com a definição das variáveis do editor. |
Importar CSV |
Cria ou atualiza a tabela de variáveis a partir de um arquivo .csv especificado pelo usuário. |
Importar ST |
Cria ou atualiza a tabela de variáveis a partir de um trecho de
código ST com a declaração das variáveis ( |
Copiar todas as variáveis |
Copia para a área de transferência a definição de todas as variáveis do editor, para documentação ou colagem em outra POU. |
Dica
Clique em Importação / Exportação de tipos e variáveis para mais informações sobre como criar tabelas de variáveis e tipos de dados em uma planilha externa e importa-las para o OnStudio.
Campos associados a definição de uma variável global
Cada variável global possui um conjunto de campos que define a mesma. Cada campo possui a seguinte funcionalidade:
Campo |
Descrição |
|---|---|
Nome |
Nome da variável. Este nome deve respeitar as especificações de um identificador de variável na norma IEC61131-3. |
Tipo |
Tipo de variável associado ao nome. Consulte a sessão de Tipos de dados de uma variável para mais informações. |
Endereço |
Este campo é necessário apenas se a variável for exportada. Veja a sessão de Variáveis exportadas para mais informações. |
Dimensão |
Este campo permite especificar se a variável definida é um valor único ou um vetor de variáveis. Veja a sessão de Definição da dimensão de uma variável para mais informações. |
Valor inicial |
Permite definir um valor inicial para a variável. Quando não especificado a variável é inicializada com o valor default para o tipo. Consulte os valores default para cada tipo de dados. |
Retentividade, |
Permitem ao usuário definir atributos associados a variável definida. |
Constante, |
Consulte a sessão de Atributos na definição de uma variável para mais informações. |
Público |
|
Descrição |
Permite associar um texto à variável definida. |
O OnStudio valida o conteúdo de cada campo no momento da edição (nome reservado, valor inicial incompatível com o tipo, dimensão inválida etc.) e apresenta a mensagem de erro correspondente no formulário.
Tipos de dados de uma variável
Uma variável pode estar associada a um dos seguintes grupos de tipos de dados, apresentados pelo seletor de tipo do OnStudio:
TIPO |
Descrição |
|---|---|
Tipos elementares |
Este grupo apresenta para seleção, todos os Tipos de dados nativos definidos na norma IEC61131-3 e suportados pelo firmware do equipamento conectado ou para o qual o programa será gerado. |
Tipos genéricos |
Grupos de tipos (ANY_INT, ANY_BIT etc.) utilizados na declaração de parâmetros de funções e blocos de função. |
Tipos de dados do usuário |
Este grupo apresenta para seleção, todos os tipos de dados criados pela aplicação corrente (Usuário) ou presentes nas bibliotecas disponíveis no OnStudio (Bib). |
Blocos de funções |
Este grupo (FB) apresenta para seleção, todos os blocos de função criados pela aplicação corrente ou presentes nas bibliotecas disponíveis no OnStudio. |
Definição da dimensão de uma variável
Um tipo de dado qualquer pode ser definido como escalar (um único elemento) ou um vetor de elementos. Quando o campo de dimensão estiver vazio significa que a variável associada é escalar. Quando a variável for um vetor, deve-se especificar o campo dimensão com um texto no seguinte formato:
[x..y] onde:
x: índice inicial do vetor
y: índice final do vetor
Desta forma o nro de elementos do vetor será:
ME = y - x + 1 onde:
ME: nro. de elementos do vetor
x: índice inicial do vetor
y: índice final do vetor
O campo suporta tipos de várias dimensões que são definidos sequencialmente. Por exemplo, uma variável de 2 dimensões pode ser definida da seguinte forma:
[0..9][0..4]
Nota
O número de dimensões e o tamanho máximo dos vetores suportados são definidos em função do firmware associado ao programa de aplicação.
Atributos na definição de uma variável
Os atributos associados a uma variável são os seguintes:
ATRIBUTO |
Descrição |
|---|---|
Retentividade |
Define o comportamento de inicialização da variável: Não Especificado (assume não retentiva, ou herda a retentividade da variável que contém o campo, no caso de tipos estruturados), Retentivo (mantém o último valor em memória) ou Não Retentivo (variável é sempre inicializada). Consulte Variáveis retentivas e não retentivas. |
Constante |
Definição associada a uma constante. Valor não pode ser alterado. |
Público |
Torna a variável visível para outras POUs e bibliotecas (documentação e seleção de variáveis). |
Filtro de variáveis do editor
No editor de variáveis globais é possível filtrar as variáveis ou constantes definidas, facilitando a consulta e edição. O filtro pode ser aplicado com base no texto do campo de busca (Nome, Tipo, Endereço ou Descrição da variável/constante) e nos botões Todos, Variáveis e Constantes.
Acessando uma variável global em uma POU
Nota
Não é necessário declarar uma constante externa na lista de variáveis da POU, uma vez que o ambiente já realiza a associação das constantes definidas na lista de variáveis globais. Isto não se aplica à variáveis externas, portanto estas devem ser declaradas na lista de variáveis da POU em que a variável será utilizada.
Quando uma POU necessitar acessar uma variável global basta criar uma nova entrada na lista de variáveis locais da POU e, no campo Classe da variável, selecionar a opção Externa. O OnStudio apresenta então o diálogo Selecionar Variável Global, que permite escolher uma ou múltiplas variáveis globais do recurso corrente. Alternativamente, o nome da variável global pode ser digitado diretamente no campo Nome.
Uma vez especificada a variável, a mesma será apresentada na lista da POU e poderá ser acessada no código referenciando o seu nome apenas, da mesma forma como é referenciada uma variável local qualquer.
GV_0 := 30; // atribui um valor à variável global
Usar no código uma variável global que não foi declarada como externa na POU gera o erro
de compilação Global variable '...' must be declared in VAR_EXTERNAL to be used in this
program. As variáveis globais de E/S (com endereço %I/%Q) não precisam dessa
declaração.
Uma variável declarada na própria POU (local, de entrada, de saída ou de
entrada/saída) com o mesmo nome de uma variável global prevalece sobre ela dentro da POU,
inclusive quando os nomes diferem apenas em maiúsculas e minúsculas (a norma não
diferencia). Por exemplo, a entrada nivel_alto de um bloco de função se refere
sempre à própria entrada, mesmo que o recurso tenha a global Nivel_Alto; para usar a
global nessa POU, dê outro nome à variável local.
Note que não é possível alterar os atributos da variável global na lista de variáveis da POU. Qualquer modificação na variável global deverá ser realizada no Editor de variáveis globais. O OnStudio avisa quando uma variável externa declarada na POU não possui a variável global correspondente, ou quando uma variável global renomeada ou excluída ainda é referenciada por alguma POU.
Variáveis exportadas
Em um programa de aplicação desenvolvido pelo OnStudio, por default, todas as variáveis declaradas (globais ou locais às POU’s) possuem escopo privado com relação a acesso por outros equipamentos. Isto significa que, a princípio, nenhuma variável do programa de aplicação pode ser lida ou alterada externamente.
Para que uma variável possa ser “visível” por um equipamento remoto ela necessita ser exportada. Este processo consiste em atribuir um endereço explícito (no campo de endereço) para a variável a ser exportada.
O padrão IEC61131-3 não define quais são os tipos e escopos de variáveis que aceitam endereçamento, ficando esta definição para os implementadores do padrão. No OnStudio apenas as variáveis globais podem ser exportadas e portanto apenas o Editor de variáveis globais possui o campo Endereço associado a cada variável.
O campo de endereço possui os comandos auxiliares:
Sugerir: o OnStudio identifica automaticamente o formato do endereço associado ao tipo da variável e sugere o próximo número de endereçamento disponível para a mesma. O usuário pode aceitar a sugestão ou editar o número associado para um outro valor.
Validar: verifica se o endereço especificado é válido (tipo suportado, endereço não alocado por outra variável, faixa válida).
Aplicar e Limpar: confirmam ou removem o endereço da variável.
Quando o endereço especificado for inválido (tipo não suportado, endereço já alocado etc.) uma mensagem sobre o erro será apresentada no formulário.
Definindo um endereço para uma variável
O endereçamento das variáveis é utilizado para organizar a memória do programa de aplicação de forma que o conteúdo exportado possa ser remotamente obtido. O endereço deve ser definido no seguinte formato:
%Mnx - Este formato permite a leitura e escrita da memória associada ao endereço.
% |
caractere que denota um endereço |
M |
caractere que indica que este endereço referencia uma memória interna do equipamento |
n |
identificador do tamanho do tipo de dado da variável associada ao endereço |
x |
número que identifica a variável associada |
Por exemplo: %MW25 (Endereçamento de memória interna de tamanho igual a 16 bits e endereço 25).
Nota
A partir da versão 2.2.12 do OnStudio é possível especificar um Endereço no formato Hexadecimal.
O valor 50 em decimal é equivalente ao valor 32 em hexadecimal. Dessa forma, para representar o endereço %MW50 em hexadecimal devemos especificar da seguinte forma: %MW16#32
Tipos de dados associados a variáveis exportadas
A tabela a seguir apresenta os tipos de dados nativos que podem ser associados a variáveis exportáveis, bem como seus identificadores, número de bits, etc.
TIPO DE DADO |
Identificador |
Número de bits |
Comando MODBUS |
Nro de registros |
|---|---|---|---|---|
BOOL |
X |
1 |
READ COIL |
1 |
INT |
W |
16 |
READ HOLDING REG |
1 |
UINT |
W |
16 |
READ HOLDING REG |
1 |
WORD |
W |
16 |
READ HOLDING REG |
1 |
DINT |
D |
32 |
READ HOLDING REG |
2 |
UDINT |
D |
32 |
READ HOLDING REG |
2 |
DWORD |
D |
32 |
READ HOLDING REG |
2 |
REAL |
D |
32 |
READ HOLDING REG |
2 |
LINT |
L |
64 |
READ HOLDING REG |
4 |
ULINT |
L |
64 |
READ HOLDING REG |
4 |
LWORD |
L |
64 |
READ HOLDING REG |
4 |
LREAL |
L |
64 |
READ HOLDING REG |
4 |
TIME |
L |
64 |
READ HOLDING REG |
4 |
DATE |
L |
64 |
READ HOLDING REG |
4 |
TOD |
L |
64 |
READ HOLDING REG |
4 |
DATETIME |
L |
64 |
READ HOLDING REG |
4 |
STRING |
VW |
Variável |
READ HOLDING REG |
MAX/2 + 1 (MAX = tamanho máximo da string) |
Considerações importantes
O tamanho alocado de uma string exportada deve ser sempre ímpar para que o total de bytes utilizados pelo tipo STRING seja múltiplo de 2 bytes e consequentemente passível de acesso via de HOLDING REGISTERS.
Não é possível associar os tipos de dados nativos SINT, USINT e BYTE a variáveis exportadas, porque o protocolo MODBUS não possui um comando que permita acesso a variáveis de 8 bits.