4.2 Arquitetura do Ambiente
4.2.1 Módulo de Programação
O módulo de programação está dividido em três partes bem definidas na tela principal do ambiente: Área de Menu, Barra de Ferramentas, Área de Trabalho. A área de menu
permite o acesso a todas as funcionalidades do sistema, desde a criação de um novo pro- jeto até a sua compilação e carga no PLC. A barra de ferramentas contém os componentes do SFC necessários para a construção do controle. Já na área de trabalho, encontra-se a região onde será construído o SFC do projeto de aplicação.
Na figura 4.4 destaca-se a localização das três partes citadas do módulo de programa- ção na tela principal do ambiente.
Área de Menu Barra de Ferramentas
Área de Trabalho
Figura 4.4: Partes do Módulo de Programação.
Área de Menu
A área de menu é composta por um menu tradicional e uma barra de menu de acesso rápido. O menu tradicional permite a execução de tarefas simples como a criação, aber- tura, fechamento ou salvamento de projetos. Nesse menu também é possível acessar, entre outras coisas, a lista de identificadores e a lista de blocos funcionais. Já na barra de menu de acesso rápido, encontra-se tanto os botões para agilizar o acesso às tarefas simples do menu tradicional, como também, outros botões para acesso às funções de pré-parser global, compilação, carga e depuração do projeto de aplicação. Além disso, a barra de
menu contém dicas que indicam a função do botão com o passar do mouse. Na figura 4.5
é possível observar o menu tradicional e a barra de menu.
MenuTradicional Menu“Arquivo”
É composto por oito submenus:
• Novo projeto: Permite criar um novo projeto; • Abrir projeto: Permite abrir um projeto;
• Abrir projeto recentes: Permite localizar facilmente projetos que foram abertos re- centemente (são armazenados os últimos cinco projetos acessados);
• Fechar projeto: Permite fechar o projeto atual; • Salvar projeto: Permite salvar o projeto atual;
• Salvar projeto como. . . : Permite salvar o projeto atual com um novo nome e uma nova localização;
• Imprimir projeto: Permite imprimir o projeto atual (não implementado na versão atual da ferramenta);
• Sair: Permite sair do ambiente computacional.
Menu“Editar”
É composto por cinco submenus:
• Copiar: Permite copiar os componentes selecionados na área de trabalho; • Colar: Permite colar os componentes copiados na área de trabalho;
• Desfazer: Permite desfazer uma manipulação realizada na área de trabalho; • Refazer: Permite refazer uma manipulação desfeita na área de trabalho;
• Localizar: Permite localizar um determinado texto no projeto atual, identificando as etapas e transições em que o texto ocorre.
Menu“Definir”
É composto por três submenus:
• Identificadores: Permite acessar a lista de identificadores do projeto atual;
• Endereço de variáveis retentivas: Permite definir um intervalo de endereços para as variáveis retentivas;
• Parâmetros do Projeto: Permite editar os parâmetros do projeto definidos na criação do mesmo.
Menu“Relatório”
Este menu não está implementado na versão atual da ferramenta. Ele é composto por dois submenus:
• Identificadores: Permite gerar um relatório com todos os identificadores do projeto atual;
• Mapa de Endereços: Permite gerar um relatório com o mapa de endereços alocados no PLC para as variáveis definidas no projeto atual.
Menu“Exibir”
É composto por um submenu:
• Blocos Funcionais: Exibe e descreve os blocos funcionais disponíveis pelo fabri- cante do PLC.
Menu“Configuração”
É composto por um submenu:
• Comunicação: Permite configurar e testar a comunicação com o PLC.
Menu“Ajuda”
É composto por dois submenus:
• Manual: Permite acessar o manual do ambiente computacional; • Sobre: Exibe a versão do ambiente computacional.
Dos menus citados acima, os que apresentam maior relevância e merecem ser desta- cados são: a lista de identificadores e os blocos funcionais.
Lista de Identificadores
A lista de identificadores permite o gerenciamento das variáveis utilizadas na mode- lagem do controle SFC/ST. Na janela da lista de identificadores, mostrada na figura 4.6 é possível inserir, editar ou remover as variáveis (tags) e suas propriedades. A lista de identificadores é composta por sete guias com os tipos de variáveis suportados pelo PLC, são eles: Inteiros, Reais, Booleanos, Entradas, Saídas, Strings e Vetores. Nas guias “In- teiros” e “Reais” o usuário pode definir tags de “memórias” para receberem as medidas analógicas variantes como pode definir “constantes” para receberem as medidas analógi- cas estáticas. Na guia “Booleanos” o usuário define as tags booleanas para assumirem
valores digitais. Nas guias “Entradas” e “Saídas” o usuário define as tags que represen- tam tanto as entradas digitais e analógicas como as saídas digitais e analógicas do PLC, inclusive com o endereço alocado para as mesmas. A guia “Strings” são tags que podem assumir o valor de mensagens de texto como constantes de texto. Finalmente, na guia “Vetores” o usuário pode definir vetores dos tipos “Booleano”, “Inteiro” e “Real”. Estes vetores devem ter tamanho e endereço inicial definidos pelo usuário.
Figura 4.6: Lista de Identificadores.
Lista de Blocos Funcionais
O ambiente computacional permite visualizar os blocos funcionais disponíveis pelo fabricante do PLC para serem utilizados na modelagem do projeto de controle. A figura 4.7 mostra a tela de visualização da lista de blocos funcionais. Para cada bloco, é mostrado um diagrama geral com os argumentos de entrada e saída. Além disso, é apresentado uma descrição das variáveis de entrada e de saída do bloco, bem como uma breve descrição com as funcionalidades gerais do bloco. Os blocos devem ser definidos na etapa inicial do projeto e são considerados identificadores globais, ou seja, eles podem ser usados em qualquer uma das etapas e transições do projeto.
Figura 4.7: Lista de Blocos Funcionais.
Barra de Menu de Acesso Rápido Botão “Novo Projeto”
Ao criar um novo projeto (figura 4.5a), o ambiente solicita alguns parâmetros relevan- tes para o desenvolvimento do projeto como: o nome da empresa, o nome da aplicação, a versão do programa e o tipo de equipamento que deseja-se elaborar o controle (figura 4.8). Estas informações são guardadas no arquivo “.xml” juntamente com o diagrama SFC. Dentre as informações coletadas, a de maior relevância é o tipo de equipamento que será utilizado no projeto, pois a partir desta é possível consultar o arquivo técnico do PLC fornecido pelo fabricante e que contém informações sobre o mesmo como: a quantidade de memória do PLC, os tipos de dados e blocos de funções suportados pelo PLC. De posse das características do PLC, o ambiente é capaz de customizar a interface gráfica, impondo restrições ao usuário no momento da programação do controle.
Botão “Abrir Projeto”
Ao abrir um projeto (figura 4.5b), o usuário deverá selecionar o arquivo XML dese- jado. Em seguida, o ambiente executa um procedimento, transparente ao usuário, capaz
Figura 4.8: Tela Inicial de Parâmetros do Projeto.
de converter este arquivo XML no diagrama SFC o qual o mesmo representa. Este arquivo XML pode ter sido gerado na ferramenta em questão ou por qualquer outra ferramenta que siga o padrão da PLCOpen. Assim como na criação de um novo projeto, o ambiente é capaz adaptar sua interface gráfica ao equipamento utilizado através da identificação do mesmo no arquivo XML.
Botão “Salvar Projeto”
Ao salvar um projeto (figura 4.5c), o usuário deve especificar o nome e o local onde o arquivo .xml deve ser salvo. Em seguida, o ambiente executa um procedimento - transpa- rente ao usuário - capaz de converter o diagrama SFC gerado para o formato XML. Esta codificação segue a idéia mostrada na figura 4.1 e consiste, simplesmente, em guardar de forma organizada os atributos (posições x e y, nome, origem, destino, etc.) de cada objeto do SFC (etapas, transições, conexões, etc.) dos programas de controle em um arquivo com a extensão “.xml” do padrão da PLCOpen. Na figura 4.9 segue um trecho do código gerado a partir de um diagrama SFC visto na figura 4.10.
Botão “Salvar Projeto Como. . . ”
Ao clicar o botão “salvar um projeto como. . . ” (figura 4.5d), o usuário pode escolher um novo nome e um novo local para salvar o projeto atual de forma que modificações realizadas neste novo projeto não afetará o projeto anterior.
Botão “Fechar Projeto”
Ao clicar o botão “fechar projeto” (figura 4.5e), o ambiente verifica se o projeto atual está salvo e após esta confirmação, fechará o projeto atual. Caso contrário, aparecerá uma caixa de diálogo informando que o projeto atual não está salvo e perguntará ao usuário se deseja salvá-lo.
Figura 4.9: Trecho de código TC6 XML PLCOpen.
Botão “Copiar”
Ao clicar no botão “copiar” (figura 4.5f), o ambiente armazenará um ou mais compo- nentes selecionados na área de trabalho em um buffer temporário para permitir a utilização dos mesmos em um momento posterior.
Botão “Colar”
Ao clicar no botão “colar” (figura 4.5g), o ambiente criará os mesmos elementos ar- mazenados no buffer temporário com uma pequena distância dos componentes originais.
Botão “Imprimir Projeto”
O botão “Imprimir Projeto” (figura 4.5h) permite a impressão do projeto atual. Não implementado na versão atual da ferramenta.
Botão “Desfazer”
O botão “Desfazer” (figura 4.5i) permite que o usuário desfaça uma manipulação rea- lizada nos componentes do SFC na área de trabalho.
Botão “Refazer”
O botão “Refazer” (figura 4.5j) permite que o usuário refaça uma manipulação reali- zada pelo botão “Desfazer”.
Botão “Pré-Parser”
Esse botão (figura 4.5l) é responsável por executar o método de pré-parser global com o objetivo de analisar todas as etapas e transições do projeto. O pré-parser global foi criado para evitar inconsistências entre as declarações de identificadores feitas em uma etapa e o uso em outras etapas. Além disso, quando um projeto é aberto ele será analisado pelo pré-parser global, desta forma, as etapas e transições com erros ou inconsistências serão apresentadas na cor amarelo, como apresentado na figura 4.11.
Botão “Compilador”
O botão “Compilador” (figura 4.5m) tem a função de chamar o módulo de compilação, carga e comunicação passando o arquivo XML do projeto como parâmetro para que o mesmo seja compilado e carregado no PLC.
Botão “Depurador”
O botão “Depurador” (figura 4.5n) tem como função chamar o módulo de teste e vali- dação para depurar o controle implementado no ambiente de programação. Para habilitar
Figura 4.11: Erros encontrados no ST das ações e condições dos componentes SFC.
o botão “Depurador” e executar o mesmo, necessita-se que o controle já esteja carregado no PLC informado na criação do projeto e não tenha sofrido alterações no código imple- mentado. Se alguma alteração tiver sido realizada, será necessário uma nova carga do projeto no PLC.
Botão “Parar Depuração”
Esse botão (figura 4.5o) tem a função de parar a execução do módulo de teste e vali- dação. Em seguida, os botões de depuração serão desabilitados até que seja iniciada uma nova depuração.
Botão “Pausar Depuração”
Esse botão (figura 4.5p) tem a função de pausar a execução do módulo de teste e validação para possibilitar a análise dos valores das variáveis do PLC naquele instante de tempo.
Botão “Continuar Depuração”
Esse botão (figura 4.5q) tem a função de reiniciar a execução do módulo de teste e validação quando o mesmo encontra-se no estado “pausado”.
Botão “Executar um passo na Depuração”
Esse botão (figura 4.5r) tem a função de executar um simples passo na execução do módulo de teste e validação. Esse passo significa executar um ciclo de varredura no PLC conectado ao ambiente para verificar o comportamento das suas variáveis apenas neste ciclo.
Barra de Ferramentas
A barra de ferramentas foi criada com o objetivo de facilitar a inserção de compo- nentes do SFC na área de trabalho. A barra de ferramentas é composta por dez botões com ícones que representam os componentes do diagrama de funções sequenciais. Os botões da barra de ferramenta são auto-explicativos pois apresentam dicas com o passar do mouse. Para inserir componentes no controle, o usuário deve selecionar o componente desejado na barra de ferramentas e em seguida clicar com o botão esquerdo do mouse na região em branco da área de trabalho. A tabela 4.1 mostra a descrição dos componentes ordenados da esquerda para a direita na barra de ferramentas mostrada na figura 4.12.
Figura 4.12: Barra de Ferramentas
Além disso, abaixo da barra de ferramentas existem dois pequenos botões com a fun- ção de “ocultar” ou “exibir” a barra de ferramentas para aumentar a área de trabalho.
Área de Trabalho
A área de trabalho foi desenvolvida para possibilitar a organização dos componentes SFC de um projeto de aplicação. Ao criar ou abrir um projeto, será acrescentada uma nova guia/aba. As abas permitem a manipulação de vários arquivos ao mesmo tempo, sendo uma aba para o projeto criado ou aberto pelo usuário, e as demais sendo proce- dimentos encontrados nas macro-etapas definidas no projeto. É importante destacar que nesta versão da IDE, as macro-etapas não são disponibilizadas.
Na área de trabalho pode-se inserir, excluir, editar e mover os componentes do SFC construído. A inserção de objetos na área de trabalho se dá pela escolha do componente SFC na barra de ferramentas e um clique em qualquer região da área de trabalho. Para a programação das etapas e das transições do SFC utiliza-se um editor de texto estruturado
Tabela 4.1: Botões da Barra de Ferramentas.
Ícone Nome Descrição
Seleção Ferramenta para seleção e/ou movimentação dos componentes na área de trabalho. Com esta ferra- menta, o usuário pode selecionar mais de um ob- jeto.
Etapa Inicial Componente “etapa inicial”.
Etapa Componente “etapa”.
Macro Etapa Componente “macro etapa”.
Transição Componente “transição”.
Divergência Simultânea Componente “divergente simultâneo”. Convergência Simultânea Componente “convergente simultâneo”. Divergência Seletiva Componente “divergente seletivo”. Convergência Seletiva Componente “convergente seletivo”.
Conexão Ferramenta para conectar o componente de origem e, em seguida, o componente de destino; se a ori- gem e o destino estiverem de acordo com as regras de ligação do SFC apresentadas na Seção 3.2.3, a conexão será realizada.
(ST code) onde as palavras reservadas desta linguagem são destacadas com diversas co- res. O editor de texto estruturado encontra-se na janela de propriedades do componente “etapa”. Para acessar a janela de propriedades, o usuário deve clicar com o botão direito do mouse em cima do objeto em questão e escolher o item “Propriedades” no “Menu Pop-up” apresentado. A janela de propriedades também pode ser acessada através de um clique duplo sobre o componente SFC.
O uso da biblioteca NetBeans Visual Library foi de fundamental importância para o desenvolvimento da área de trabalho deste ambiente computacional. Com esta biblioteca
foi possível disponibilizar recursos gráficos na área de trabalho a fim de agilizar a progra- mação do controle SFC. Entre outros recursos desta biblioteca, podemos destacar o Zoom
in/out, o Align e o Menu Pop-up. Estes recursos aumentam a eficiência na organização de
toda a estrutura de controle e serão detalhados a seguir.
O recurso Zoom in/out, permite aumentar ou diminuir o campo de visualização dos objetos na área de trabalho. Assim, controles que excedam o tamanho da área de trabalho podem ser visualizados totalmente aplicando o zoom out (figura 4.13a). Já controles com pequenos detalhes e difíceis de visualizar no tamanho normal da área de trabalho, podem ser visualizados aplicando o zoom in (figura 4.13b). Este recurso é obtido através do botão
scroll do mouse sobre a área de trabalho, mantendo a tecla “Ctrl” pressionada (“Ctrl” + scroll);
Figura 4.13: Recurso Zoom in/out.
O recurso Align, permite alinhar os componentes do SFC na área de trabalho. Desta forma, ao movimentar os componentes na área de trabalho surgirão linhas tracejadas na cor azul indicando o alinhamento horizontal e vertical com os outros componentes do SFC ao redor. Além disso, este alinhamento faz uma aproximação precisa dos compo- nentes até a linha tracejada. Um exemplo da utilização deste recurso na área de trabalho é apresentado na figura 4.14.
O recurso Menu Pop-up permite o acesso às opções: “Excluir componente” e “Pro- priedades” para acessar ações/condições do componente SFC em questão. Sendo assim, visando facilitar a programação das ações nas etapas, foi criado um editor de ações com sintaxe highlight para o código ST. A sintaxe highlight destaca com diversas cores as pa-
Figura 4.14: Recurso Align.
lavras reservadas do ST escritas no editor de ações. Além disso, o editor de ações possui as seguintes características:
• Suporte à declaração de identificadores locais dos tipos básicos através da sintaxe:
var cond : bool; quantidade : int; media : real; msg : string; end_var
• Suporte à declaração de constantes dos tipos básicos através da sintaxe:
var constant
pi : real:= 3.14158;
end_var
• Suporte à declaração de identificadores globais dos tipos básicos e dos blocos fun- cionais especificados pelo PLC escolhido através da sintaxe:
var_global
filtroPT, filtroPF, pressao : real; msg : string;
pid1 : HI_PID;(* Bloco PID *)
end_var
• Suporte à declaração de funções dos tipos básicos através da sintaxe descrita abaixo. Neste caso, apenas a assinatura da função é verificada (a primeira e a última linha), ou seja, todos os tokens existentes entre o tipo da função e a palavra “end_function” são desconsiderados. As funções podem ser definidas em qualquer etapa, porém, as funções definidas na etapa inicial persistem por todas as outras etapas, pois serão consideradas globais. As funções sqrt (raiz quadrada), exp (exponenciação) e log (logaritmo base 10) são funções globais pré-definidas pelo pré-parser.
function F_Media :real
var_input
n1, n2 : int;
end_var
F_Media := (n1 + n2)/2;
end_function
• Comandos suportados: atribuição, if-then-else e chamada de função/blocos funcio- nais, conforme exemplos abaixo:
. . .
media := ((int1 + int2)/2) ∗ 10;
(* Definicao de Timers *)
t1(enable := t1_enable, limit := t1_limit); t1_enable :=true; if (t1.q) then cond :=true; else cond :=false; end_if
Obs: Na chamada de funções/blocos funcionais os argumentos não são verificados, ou seja, todos os tokens entre parênteses ( ... ) são desconsiderados.
Para facilitar a verificação das ações das etapas, foi criado o botão “Verificar” na janela de propriedades com a função de checar a corretude do código ST escrito. A princípio, esse processo consiste em uma pré-análise do texto estruturado. Como existe
a possibilidade de declarações de identificadores globais, a ordem de definição das ações das etapas é importante, uma vez que uma etapa pode usar um identificador declarado em outra etapa. Sempre que o botão “Verificar” for pressionado, uma pré-compilação é executada e, se a etapa for confirmada com algum erro, ela será apresentada em destaque no editor SFC na cor amarelo.
Para definir o qualificador que será utilizado na associação “etapa/ação”, o ambiente fornece uma lista dos qualicadores disponíveis para o usuário. Estes qualificadores podem ser observados na tabela 4.2.
Tabela 4.2: Qualificadores. Qualificador Descrição N Non-Stored R Reset S Set (Stored) L Time Limited D Time Delayed P Pulse P1 Pulse (Subida) P0 Pulse (Descida)
As figuras 4.15 e 4.16 apresentam as janelas de propriedades de uma etapa e de uma transição, respectivamente.