Prévia do material em texto
LAquis 3.0LAquis 3.0
Software Supervisório
Introdução para utilização e desenvolvimento de aplicativosIntrodução para utilização e desenvolvimento de aplicativos
Apostila 17/7/2008
Leão Consultoria e Desenvolvimento de Sistemas LtdaLeão Consultoria e Desenvolvimento de Sistemas Ltda
http//:www.lcds.com.br
leao@lcds.com.br
2
ÍndiceÍndice
Introdução.................................................................................................... 4
Passo a passo ............................................................................................. 5
1 – Pontos de leitura e escrita (tags). ........................................................ 5
2 – Arquivo / Relatório ............................................................................... 9
3 – Objetos visuais .................................................................................. 12
4 – “Script” visual e texto ......................................................................... 19
Planilha de pontos de Leitura e Escrita (Tags)........................................... 21
Configuração da Comunicação................................................................ 24
Fórmula na planilha de “tags” .................................................................. 25
Definição do arquivo................................................................................ 26
Drivers ....................................................................................................... 27
Selecionar um Driver ............................................................................... 29
Campos especiais do equipamento......................................................... 30
Relatório / Histórico.................................................................................... 31
Relatório principal.................................................................................... 31
Criar relatórios a partir do modelo ........................................................... 31
Planilhas para relatório e análise............................................................. 32
Fórmulas e comandos para planilhas LGX .............................................. 34
Bancos LB ............................................................................................... 35
Opção LB (ODBC)................................................................................... 36
Campos (estrutura).................................................................................. 36
Conexão/Tipo do banco de dados ........................................................... 37
Editar (Abrir tabela) ................................................................................. 38 Rede .......................................................................................................... 39
Servidor................................................................................................... 39
Cliente ..................................................................................................... 40
Comunicação em Rede ........................................................................... 41
Objetos Visuais .......................................................................................... 42
Objetos para desenhos vetoriais ............................................................. 44
Inserir Objeto Visual ................................................................................ 45
Configuração do Painel ........................................................................... 46
Exemplos de objetos visuais ................................................................... 47
Criação e alteração de objetos visuais 2D (personalizar) ........................ 52
Janela da interface 3D ............................................................................... 54
Objetos da planta 3D............................................................................... 55
Objeto (arquivo 3D) ................................................................................. 56
Parede..................................................................................................... 57
Painel 3D................................................................................................. 57
Cano 3D .................................................................................................. 58
Objeto Visual 3D...................................................................................... 58
Criação e alteração de objetos visuais 3D (personalizar) ........................ 59
Menu principal............................................................................................ 60
Opções (Preferências) ............................................................................... 63
Senha ........................................................................................................ 64
Script (texto e visual).................................................................................. 65
3
Eventos ................................................................................................... 69
“Browser”................................................................................................. 70
Acessando os "tags" da planilha de E/S (Objeto TAG) ............................ 71
Variáveis.................................................................................................. 72
Operações básicas.................................................................................. 73
Comandos e expressões básicas............................................................ 74
Objetos Visuais........................................................................................ 78
Objeto Painel........................................................................................... 79
Objeto Planilha ........................................................................................ 80
Exemplo (OnDepoisVarreduras).............................................................. 81
Exemplo - Evento Global (script texto)..................................................... 82
Funções e objetos de memória................................................................ 83 Objeto Tabela.......................................................................................... 87
Funções e objetos de arquivos e banco de dados................................... 89
Funções de texto..................................................................................... 95
Funções matemáticas............................................................................ 103
Funções de bits ..................................................................................... 107
Funções de tempo................................................................................. 108
Funções de aplicativo............................................................................ 112
Funções de comunicação...................................................................... 114
Funções de janelas de mensagens ....................................................... 117
Objeto GRID.......................................................................................... 118
Comandos principais da planilha de relatórios....................................... 119
Outras funções e objetos....................................................................... 120
Declare (script texto) ............................................................................. 121
4
IntroduçãoIntrodução
No LAquisLAquis é possível tanto realizar aquisições de dados como também desenvolver programas
específicos para as mais diversas aplicações.
A tela principal se divide em duas partes: a parteinferior, onde fica a planilha de pontos de entrada eplanilha de pontos de entrada e
saída ("tags")saída ("tags") e a parte superior, painelpainel onde se programam os objetos visuaisobjetos visuais.
Na planilha de "tags" são definidas as variáveis, arquivos, equipamentos, fórmulas, escalas ou outras
proprieades e parâmetros criados pelo usuário para cada caso.
Os objetos visuais podem ser usados tanto para o desenvolvimento de sistemas específicos através de
"script" como também para o acompanhamento simples de uma aquisição de dados. Cada objeto pode
estar relacionado a uma linha da planilha (tags).
Para a geração de relatórios e gráficos de leituras armazenadas basta "clicar" sobre o botão ou
selecionar uma das opções do "menu" "Dados e Relatórios""Dados e Relatórios".
É possível utilizar interface em 3D. Veja em no capítulo “Planta 3D (introdução)”.
Exemplos úteis:Exemplos úteis:
Alguns exemplos de aplicativos podem usados para entender o uso do software supervisório LAquis.
Estes exemplos estão disponíveis na pasta principal do LAquis (LAquis\Apls\Exemplos\*.lqs).
Para acessar estes exemplos selecione, no LAquis, a opção “Abrir” do menu “Arquivo”.
Alguns deles:
- planta3d.lqsplanta3d.lqs (exemplo de planta 3D)
- modeloteste.lqsmodeloteste.lqs e modeloteste2.lqsmodeloteste2.lqs (exemplos simples para teste das funções básicas do sistema)- modbus_teste.lqsmodbus_teste.lqs (exemplo para teste de um ponto de leitura usando o protocolo modbus rtu)
- simularelatório5.lqssimularelatório5.lqs (exemplo de uso de objetos visuais, telas e relatórios)
PainelPainel
(objetos visuais)(objetos visuais)
Script / opçõesScript / opções
dos objetosdos objetos
Planilha dePlanilha de
pontos de leiturapontos de leitura
e escrita (“tags”)e escrita (“tags”)
5
Passo a passoPasso a passo
Serão apresentados 4 passos básicos:
11 – Definição dos pontos de E/S (tags).
22 – Arquivo / Relatório
33 – Objetos Visuais
44 – “Scripts” visual e texto
1 – Pontos de leitura e escrita (tags).1 – Pontos de leitura e escrita (tags).
Defina os pontos de leitura e escrita na planilha de “tags” situada na parte inferior da tela principal.
Esta planilha contém as informações necessárias para definir as informações que serão lidas ou escritas
nos equipamentos. Estes “tags” podem ser também variáveis genéricas. Alguns dos campos principais
para cada “tag” são: NomeNome, TítuloTítulo, ValorValor, “Driver” (Equipamento)“Driver” (Equipamento), ArquivoArquivo, Param1Param1, Param2Param2, etc....
Escolha os “drivers” dos equipamentos a serem usados na coluna “Driver” (Equipamento)“Driver” (Equipamento).
O “driver” pode ser definido arrastando o ponteiro do “mouse” com o botão esquerdo pressionado sobre a
coluna “Driver”“Driver”, ou clicando sobre o título da coluna “Driver”“Driver” para selecionar todos os “tags” desejados.
Ao soltar o botão do “mouse” a janela “driver” será mostrada:
O “driver” a ser escolhido depende do equipamento (“hardware”) utilizado.
Para testar o funcionamento do software sem equipamento utilize, por exemplo, o “driver” DEMODEMO.
Planilha de pontos de leitura e escrita ou “tags”.
6
Se, por exemplo, desejar comunicar com um equipamento que utilize o protocolo “Modbus rtu” escolha o
“driver” MODBUS RTU.ldriver. O Param1Param1 fica sendo o número do registro e o Param2Param2 o número do nó
(Exemplo: Param1=400001. Param2=1). Veja a descrição dos parâmetros do “driver” Modbus no capítulo
“Drivers”.
Configure a comunicação (porta, velocidade, temporização, etc....) no botão “Config” da janela “Driver” ou
na coluna ConfigConfig da planilha.
Ao pressionar o botão “Config” da janela “Driver” a seguinte janela será mostrada para configuração da
porta serial:
Configure as características da comunicação. Exemplo de configuração para porta serial COM1:
1:9600,N,8,1. (porta serial 1, velocidade 9600, paridade nenhuma, bits de dados 8, bits de “stop” 1).
Se o “driver” for OPC, ao “clicar” sobre o botão “Config” será apresentada uma janela para definição do
ProgIDProgID e Item IDe Item ID do servidor OPC (opcionalmente para conexões remotas coloque o IP do servidor no
campo ServidorServidor):
- Defina as outras características do “tag”.Neste exemplo foram colocados o nome (valor1), título (Valor 1), unidade (°C), Param1 (400001) e
Param2 (1):
7
Exemplo com quatro “tags”: (serão lidos os quatro primeiro registros “holding” do equipamento do nó 1
através do protocolo Modbus)
Se desejar testar o software e não tiver equipamento conectado ao computador utilize, por exemplo, o
“driver” DEMODEMO:
Para iniciar a leitura dos valores e testar a comunicação “clique” sobre o botão (“play” – Iniciar
aplicação). Na barra inferior será apresentada uma mensagem de atualização dos “tags”. Os valores
deverão ser mostrados na coluna ValorValor. Se houver erro de comunicação aparecerá nesta coluna a
mensagem “ERRO” e na coluna “Status”“Status” “Erro de leitura”.
Para fins de melhor visualização neste teste, clique no botão para mostrar os visores no painel
situado na parte superior do software.
Para desligar a comunicação pressione o botão (“stop” – Parar aplicação).
8
Para testar a alteração de algum valor no equipamento associado ao “tag” utilize a coluna “Set”. Tecle
“enter” ou saia da célula para efetuar a alteração.
Os “tags” podem ser também variáveis para diversos fins. Utilize, por exemplo, o “driver” VAR.
Opcionalmente, os “tags” podem possuir outras características personalizáveis conforme a aplicação.
Para isso utilize o botão ou a opção do menu “Editar” – “Pontos de leitura e escrita (Tags)” –
“Personalizar colunas de parâmetros”.
Novas colunas podem ser criadas para os “tags”. Estas colunas são colocadas no final (à direita) da
planilha. Neste exemplo foram criados dois campos a mais LILI, LSLS, AlarmeAlarme, AcaoAcao, OcorrênciaOcorrência e RespResp.
Para adicionar o campo digite o nome do campo ou selecione na lista à direita e “clique” sobre o botão
“Adicionar”. Não é necessário que o campo exista na lista à direita. É possível criar quaisquer nomes de
campos que desejar, desde que não contenham espaços ou caracteres especiais. Estes campos poderão
ser armazenados no arquivo que será mostrado na seção a seguir. Todavia os campos LILI, LSLS e AlarmeAlarme,
usados neste exemplo, têm significados pré-definidos no LAquis. LILI e LSLS são respectivamente um limite
superior e um limite inferior. AlarmeAlarme é um campo que retorna a condição do valor ter ultrapassados os
limites. Entretanto, não é necessário utilizar estes campos para limites. Pode-se criar outras maneiras de
fazer a mesma coisa. Por exemplo, pode-se criar campos como LSCriticoLSCritico, LSSegurancaLSSeguranca, LICriticoLICritico,
LISegurancaLISeguranca, etc.... e a partir disso programar o aplicativo para respeitar os valores conforme as
especificações do processo.
Mais detalhes veja o capítulo Planilha de Pontos de E/S(Tags)Planilha de Pontos de E/S(Tags).
9
2 – Arquivo / Relatório2 – Arquivo / Relatório
Os valores lidos e controlados nos “tags” podem ser gravados em arquivo. Para isso “clique” sobre a
coluna ArquivoArquivo. Da mesma forma que o “driver”, o arquivo pode ser definido arrastando o ponteiro do
“mouse” com o botão esquerdo pressionado sobre a coluna ArquivoArquivo, ou clicando sobre o título da coluna
ArquivoArquivo para selecionar todos os “tags” desejados.
Neste exemplo, os valores dos quatro “tags” serão armazenados no banco de dados TESTE.LB:
O intervalo de tempo em que os valores serão armazenados é definido na coluna IntervaloIntervalo:
Clique no botão para iniciar a leitura com a gravação no banco de dados.
Observação: os dados (leituras), como padrão, são gravados na sub-pasta “dados” dentro da pasta do
aplicativo lqs. O nome dos arquivos, como padrão, fica sendo <nome do arquivo><data>.LBX. Neste
exemplo TESTE060608.LBX.Note que será possível reconfigurar o banco para outros tipos de banco de
dados. Para alterar a configuração do banco de dados utilize a opção do menu “Dados e Relatórios”“Dados e Relatórios” –
“Banco de dados / Arquivo (LB/ODBC) / Exportação”“Banco de dados / Arquivo (LB/ODBC) / Exportação”.
10
Se os campos Resp , Ocorrencia e Acao forem criados neste exemplo, eles poderão ser do tipo texto.
Para isso faça o seguinte:
1 – Pressione o botão para parar a execução.
2 – Selecione o menu Dados e Relatórios – Banco de dados / Arquivo (LB/ODBC) .
3 – Pressione o botão Campos .
4 – Vá até os campos Resp , Ocorrencia e Acao . Na coluna Tipo coloque 1 – Texto .
5 – Pressione o botão OK e confirme a conversão.
Tendo alguns dados já gravados no banco de dados já é possível criar os relatórios. Um dos relatóriospode ser considerado o principal, e é o que será mostrado a seguir.
Para gerar um relatório dos dados gravados, clique sobre o botão ou no menu “Dados e RelatóriosDados e Relatórios”
– “Abrir relatório principal (Histórico / Leituras)Abrir relatório principal (Histórico / Leituras)”.
Na primeira vez, nesta fase de desenvolvimento, aparecerá uma janela para escolha do modelo do
formato de relatório:
11
Cada modelo de relatório tem um fim específico. Os formatos também podem ser criados e modificados
conforme a necessidade da aplicação. Veja mais sobre os formatos de relatório no capítulo “Geração deGeração de
RelatóriosRelatórios”.
Exemplo de modelo “AmostragemAmostragem”: Exemplo de modelo “Limites e ocorrênciasLimites e ocorrências” (se os campos
RespResp, AcaoAcao e OcorrenciaOcorrencia forem usados como texto, neste
caso é possível inserir informação de ocorrências e ações
no próprio relatório e armazená-las no arquivo):
Exemplo de modelo “Individual SimplesIndividual Simples”:
Se desejar fazer o gráfico clique sobre o
botão GráficoGráfico. Se quiser imprimir com
várias colunas para economizar folha,
utilize a opção colunas no botão Imprimir.
Exemplo de modelo “Individual SimplesIndividual Simples” visualizando
apenas o gráfico:
O nome do formato do relatório principal fica sendo Conexão <nome do arquivo>.lgxConexão <nome do arquivo>.lgx. Neste exemplo
fica sendo Conexão TESTE.lgxConexão TESTE.lgx.
Novos relatórios:Novos relatórios:
Para criar novos relatórios utilize a opção do menu “Dados e Relatórios”“Dados e Relatórios” – “Criar relatório...”“Criar relatório...”. Para abri-
los utilize o menu “Dados e Relatórios”“Dados e Relatórios” – “Abrir relatório...”“Abrir relatório...” ou crie um botão associado ao relatório
criado (Veja o próximo passo – objetos visuais).
Novos formatos de relatórios:Novos formatos de relatórios:
É possível também personalizar os relatórios e também criar novos modelos.
Opção do Menu “Dados e Relatórios”“Dados e Relatórios” – “Editar/desenvolver relatório”“Editar/desenvolver relatório” ou botão .
Veja mais detalhes sobre os relatórios no capítulo “Geração de RelatóriosGeração de Relatórios” e sobre os arquivos/banco
de dados em “Opção LB (ODBC)Opção LB (ODBC)”.
12
3 – Objetos visuais3 – Objetos visuais
Na parte superior da janela principal do software está situado o painel de objetos visuais. Neste painel são
programados os objetos e controles visuais que poderão servir de “interface” para o usuário.
Selecione o objeto desejado e coloque no painel. Para isso “clique” sobre o ícone do objeto na barra debarra de
ferramentasferramentas ou escolha o objeto na janela à direita, na aba Objeto, quando nenhum objeto estiver sendo
selecionado. “Clique” sobre o painel ou arraste o ponteiro do “mouse” com o botão esquerdo pressionado
para desenhar o objeto.
No exemplo acima foi adicionado um objeto “displaytext”, para visualização de valores, e um objeto
“LEditar” para alteração de valores.
Cada objeto visual pode estar associado a um “tag”. Para isso “clique” duas vêzes sobre o objeto ou
selecione a propriedade “Fórmula” do objeto.
Selecione o “tag” a ser associado ao objeto. No exemplo acima, o “tag” valor2.
Ob eto ddiiss llaa tteexxtt visualiza ão
Ob eto LEditarLEditar altera ão de valores
13
Os objetos visuais têm diversas propriedades. No exemplo a seguir foi incluído um botão . Ao “clicar”
uma vez sobre o botão aparecerão suas propriedades na janela à direita.
No exemplo acima foram alteradas as seguintes as propriedades TextoTexto (com o valor “Relatório”) e
RelatórioRelatório (com o valor 1 – Relatório do tag). A propriedade TextoTexto, neste caso, é o título do botão. A
propriedade RelatórioRelatório com o valor 1 significa que ao pressionar o botão, será mostrado o relatório
principal do aplicativo atual associado ao “tag” do botão.
Outra propriedade importante do botão é ComandoComando. Quando o botão for pressionado o valor do tag
relacionado será o valor da propriedade ComandoComando. Veja também as propriedades PaginaPagina, PopupPaginaPopupPagina
e AlterarTagAlterarTag. Veja as propriedades do botão no tópico Exemplos de Objetos Visuais.
Exemplo de objeto visual termômetro. Os limites superior e inferior podem ser associados à planilha.
14
Exemplo de objeto visual FiguraFigura. Este objeto visual pode ter diversas finalidades. Botões de dois estados,
informação de estado, simples ilustração, etc....
No exemplo abaixo a FiguraFigura é configurada como botão de duplo estado (propriedade Duplo estadoDuplo estado):
Quando o aplicativo for executado este objeto visual se tornará como um botão (propriedade “Clique”
altera). Ao clicar sobre este objeto, o estado do “tag” associado será alterado para valores que alternam
entre 0 e 1. Sua visualização é alterada conforme a propriedade “Estado atual”. O nome da figura deve tero formato <nome><estado>.emf ou bmp. Neste caso, válvulaazul1.emf e válvulaazul2.emf. O número de
estados neste caso é 2.
15
No exemplo abaixo a FiguraFigura é configurada conforme um botão com animação (propriedade Duplo estadoDuplo estado
desmarcada):
Quando o aplicativo for executado este objeto visual também se tornará como um botão (propriedade
“Clique” altera).“Clique” altera). Ao clicar sobre este objeto, o estado do “tag” associado será alterado para valores que
alternam entre 0 e 1. Mas quando a propriedade estado atualestado atual se torna 1 então o objeto entra em estado
de animação variando de 1 até o número de estadosestados. O nome da figura também deve ter o formato
<nome><estado>.emf ou bmp. Neste caso, motorverde11.emf e motorverde22.emf.
Para todos os casos se for desejada apenas a visualização do sinal, sem a intervenção do usuário, então
a propriedade “Clique” altera“Clique” altera deve ser desmarcada.
Para utilização dos objetos 3D veja o capítulo Janela da Interface 3DJanela da Interface 3D .
Veja os exemplos modeloteste2.lqsmodeloteste2.lqs e grupospáginas.lqsgrupospáginas.lqs para conhecer o objeto ObjetoPaginaObjetoPagina.
Para criar novos objetos visuais utilize um dos três editores: Script, 2D ou 3D.
Mais detalhes sobre objetos visuais veja o capítulo Objetos VisuaisObjetos Visuais.
16
Para desenhar no painel utilizando objetos vetoriais “clique” sobre o botão .
Clique duas vezes sobre o objeto para editar suas propriedades. Será mostrada a seguinte janela:
É possível também associar o valor de tags para algumas das propriedades do objeto.
Por exemplo, desenhe um objeto escalaescala e desenhe um objeto polígonopolígono conforme abaixo:
Clique duas vezes sobre o objeto polígono para abrir suas propriedades. Clique sobre a célula da coluna
tag associada à coordenada MY (ponto médio no eixo vertical do objeto). Selecione o tag e clique em OK.
Ao executar o aplicativo, a posição do polígono vai variar conforme o tag dentro da escala definida.
Mais detalhes dos objetos vetoriais veja o tópico Objetos para desenhos vetoriaisObjetospara desenhos vetoriais .
17
É possível definir grupos de objetos baseados em um painel padrão. Uma das formas de fazer isso é
utilizando o objeto ObjetoPaginaObjetoPagina .
1 – Defina objetos em uma das páginas do painel (a partir da página 1)
2 – Associe os objetos aos tags. Podem ser tags dentro de um grupo.
3 – Coloque (na página 0) o objeto ObjetoPaginaObjetoPagina.
4 – Associe o objeto ObjetoPaginaObjetoPagina a um tag ou grupo.
Mais detalhes veja os exemplos modeloteste2.lqsmodeloteste2.lqs e grupospáginas.lqsgrupospáginas.lqs.
Como editar ou criar novos objetos visuais?Como editar ou criar novos objetos visuais?
Existem 3 formas principais de se criar ou editar objetos visuais:
1 – Script.
2 – Editor 2D.
3 – Editor 3D.
1 – Script:1 – Script: Selecione o objeto. Clique sobre o botão “Opções do Objeto”.
Para editar clique em “Código fonte”. Para criar clique em “Novo...”.
2 – Editor 2D:2 – Editor 2D: Menu Editar - Painel – “Editor de objetos 2D simples”. Veja os exemplos disponíveis no
menu Arquivo – Abrir.
3 – Editor 3D:3 – Editor 3D: Menu Editar – Interface 3D – “Editor de objetos 3D”. Veja os exemplos disponíveis no
menu Arquivo – Abrir. Os objetos 3D também podem ser arquivos do tipo X3D.
Mais detalhes sobre objetos visuais veja o capítulo Objetos VisuaisObjetos Visuais.
18
Para edição de uma interface simples de planta em 3D, faça o seguinte:
1 – Defina os painéis colocando os objetos visuais a partir da página 1.
2 – Na página 0 coloque os objetos vetoriais 3D para definir a planta.
3 – Clique sobre o botão . A interface ficará desta forma:
Mais detalhes sobre a utilização dos objetos 3D veja o capítulo Janela da Interface 3D .
Veja também o exemplo planta3d.lqsplanta3d.lqs.
Mais detalhes sobre objetos visuais veja o capítulo Objetos VisuaisObjetos Visuais.
Parede 3D
Painel 3D
19
4 – “Script” visual e texto4 – “Script” visual e texto
“Scripts” são seqüências de instruções ou programas usados para personalizar as ações do aplicativo
para atender o processo. Eles são executados dentro dos eventos disponíveis no sistema.
Existem dois tipos principais de “script” no LAquis: visual e texto. O “script” visual é uma linguagem que
funciona de forma gráfica, análoga a um fluxograma. Já o “script” texto é uma linguagem semelhante ao
Basic.
Exemplo de Script VisualExemplo de Script Visual
Exemplo de simples atribuição de valor a um tag usando o “script” visual (note que uma operação simples
como a que será usada neste exemplo não requer necessariamente o uso de “script” – este exemplo será
apresentado apenas para entender o princípio do script).
Coloque um botão no painel. Escolha a aba Linguagem Visual e selecione o evento OnClickOnClick.Selecione a opção comandoscomandos situada na barra de ferramentas:
Clique sobre a área quadriculada. Será mostrada uma janela com uma lista de comandos, funções e
variáveis disponíveis. Selecione então o TAG motor.
Clique em OK.
20
O editor da linguagem visual terá uma caixa relacionada ao tag motor. Ficará assim:
Selecione agora a opção número situada na barra de ferramentas:
Clique sobre a área quadriculada. Será colocada uma caixa relacionada a uma constante numérica:
Clique duas vezes sobre a constante, coloque o número 1 e tecle enter. A constante será 1.
Agora, para associar o valor da constante ao tag motor faça a seqüência de dois passos:
1 – Clique sobre a ponta no lado direito da constante 1.
2 – Clique sobre a ponta no lado esquerdo do tag motor.
Vai ficar desta forma:
Está pronto o exemplo. O que vai ocorrer na execução do aplicativo será o seguinte. No momento que o
usuário pressionar o botão, o tag motor terá o seu valor 1.
Exemplo de Script textoExemplo de Script texto
Selecione a aba Script texto. Digite motormotor = 1= 1.
Note que uma operação simples como esta, usada neste exemplo, não requer necessariamente o uso de
“script” – este exemplo foi colocado apenas para entender o princípio do script. A mesma coisa poderia ser
feita, apenas colocando no objeto botão o valor 1 na sua propriedade Comando .
As possibilidades que o “script” oferece são muitas. Operações, condições, iterações, etc...
Para conhecê-las estude o capítulo ScriptsScripts.
21
Planilha de pontos de Leitura e Escrita (Tags)Planilha de pontos de Leitura e Escrita (Tags)
A programação de uma aquisição simples pode ser feita na planilha situada na parte inferior do programa.
Cada linha desta planilha pode ser um “tag” relacionado a um ponto de entrada ou saída conectado ao
instrumento, fórmula, variável, etc... dependendo do driver.
A planilha contém os seguintes campos (colunas) como "default" (podem-se criar quantas colunas forem
necessárias a mais*):
Canal:Canal: Número do canal relacionado à linha da planilha. Pode ser o nó ou endereço físico do equipamento
ou apenas um identificador númerico. Opcionalmente defina o nó ou endereço do equipamento na coluna
Param1 com a sintaxe n=<número>;. Veja a coluna Param1.
Nome:Nome: Nome do "tag". Será o nome da variável utilizada pela fórmula, objeto visual ou script para acessar
o seu valor. Se não houver nome o "tag" será acessado por x<número da linha>. (Exemplo: x1) Para
acessar outras colunas do mesmo tag utilize o ponto. (Exemplos: x1.setpoint, temperatura1 = x1.Fator*x2 )
Título:Título: Título ou descrição do significado do "tag". Se o título não estiver em branco este será enviado
para todos os objetos visuais relacionados à linha. Esta descrição também será armazenada ao lado de
cada leitura armazenada no arquivo AQ ou LB separado no campo título. Pode ser usado também comoum comentário de eventos no decorrer do processo de aquisição.
[...][...] Unidade da grandeza ValorValor.
Valor:Valor: Valor do "tag".
Set:Set: Valor do "Set Point" do instrumento ou entrada para alteração do valor do "tag".
Param1 e Param2Param1 e Param2 Valores numéricos de dois principais parâmetros do instrumento. (Exemplo: Alarme1,
Alarme2, Endereço, etc...). (Exemplo do Param1 no caso MODBUS: 400001)
Status:Status: Descrição do status atual da leitura. (Exemplo: Erro de leitura)
Arquivo:Arquivo: Nome do arquivo ou banco onde as leituras serão armazenadas. Para alterar todos os arquivos
no grupo selecionado clique sobre o cabeçalho "Arquivo". Mais detalhes sobre o arquivo veja aqui.
Driver:Driver: Nome do "driver" ou instrumento conectado ao sistema ou, se o "tag" for apenas uma variável,
utilize VARVAR. Ao selecionar o "driver" é possível definir a configuração para comunicação. Veja a coluna
"config" abaixo. Para alterar todos os drivers na planilha ou no grupo selecionado clique sobre o cabeçalho
"Driver".
Varreduras:Varreduras: Número máximo de leituras que serão armazenadas no arquivo.
Tempo:Tempo: Tempo máximo permitido de aquisição no arquivo.
Intervalo:Intervalo: Intervalo de tempo entre cada gravação ou leitura (dependendo da opção definida em "Leitura
contínua").
Inter. Alarme:Inter. Alarme: Intervalo de tempo entre cada leitura de alarme.
Início:Início: (opcional) Hora de início da aquisição no formato hh:mm:ss. (ex: 9:00:00)
Fim:Fim: (opcional) Hora de término da aquisição no formato hh:mm:ss. (ex: 12:00:00)
Fórmula:Fórmula: Fórmula ou escala relacionada ao tag. O resultado da fórmula será constantemente atualizado
em ValorValor. Se quiser utilizar uma simples escala utilize o símbolo * (Exemplo: *0.01). Para saber mais
sobre o uso da fórmula clique aqui.
Config:Config: Configuração da comunicação relacionada ao "tag". Se nada for preenchido então é adotada a
configuração "default" definida no menu "Configuração" - "Porta". Caso seja OPC então o formato é
servidor->item.
Formato da configuração na coluna "config" para porta de comunicação: porta ou
dispositivo:velocidade,paridade,bits de dados,bits de stop. Exemplo: COM1:9600,N,8,1. Esta configuração
pode ser definida no momento em que for selecionadoo "driver".
22
Indica se o "tag" estará em pausa ou não. Para desligar basta clicar novamente sobre o botão.
Inicia a gravação do "tag" no arquivo relacionado. Para desligar basta clicar novamente sobre o botão.
Parar a aquisição em todas as linhas da planilha.
Colunas opcionais:
*Se for necessário é possível criar colunas personalizadas definindo outras propriedades para os
"tags". Estas colunas também podem ser gravadas no arquivo de aquisição se os campos tiverem sido
criados. Exemplos: limites de segurança, nome do produto, ocorrência, não conformidade, etc...
Para criar novas colunas utilize a opção no menu "Editar" - "Colunas de parâmetros".
Estes nomes devem ser sucintos e de preferência sem acento para que sejam fáceis de acessar
através de fórmulas ou "scripts".
Importante: Alguns dos nomes de colunas personalizadas estão reservados:
- AlarmeAlarme: Define valor do alarme para o "tag". "Default": 0 = Desligado; 1 = Maior que LS; 0 - Menor
que LI. As colunas LI e LS são usadas como "default" para os limites. Opcionalmente para criar um
outro critério de alarme através de uma fórmula digite o símbolo = e escreva a fórmula nesta coluna.
Exemplo 1: "=(x<10)+(x>30)". Neste exemplo o alarme será acionado se o valor do "tag" for menor
que 10 ou maior que 30. Exemplo 2: "=(x<.LIE)+(x>.LSE)". Neste exemplo o alarme será acionado se
o valor do "tag" for menor que o valor na coluna LIE ou maior que o valor na coluna LSE.
Para definir valores para cada expressão opcionalmente faça como este exemplo:
=(x<10)+(x>30)#3 (x>10)*(x<15)#5 (para x<10 ou x>30 o valor do alarme é 3, para valores entre 10 e
15 o alarme é 5)
Para casos mais avançados se desejar utilize o "script" para alterar o valor do alarme.- AlarmeTextoAlarmeTexto: Define um texto descritivo opcional a ser colocado na coluna status relacionado ao
alarme. Exemplo: 1="Ligado"0="Desligado"
- TextoLBTextoLB: Define um texto, que pode ser usado como um código, que será colocado no título do
arquivo LBX associado a um banco LB. Por exemplo: se cada arquivo de aquisição deve estar
relacionado e separado por produto, processo ou lote que tenha um código, utilize este coluna para
definí-lo. No nome da tabela definido no banco LB coloque, por exemplo, o seguinte texto "LOTE
<texto>.LBX". Cada lote será gravado em um arquivo separado com o nome definido na coluna
TextoLB, por exemplo, LOTE XYZ12345.LBX. Veja o exemplo de como utilizar este recurso e gerar
relatórios em LOTE.LQS.
- AtualizaçãoAtualização: Data e hora da última atualização feita pelo "driver" do valor do "tag".
- TempoLeituraTempoLeitura: Intervalo de tempo a ser usado para a atualização das leituras caso a opção "Leitura
contínua" esteja desabilitada. Exemplo: 1s. Se esta coluna não estiver adicionada então é usada a
coluna "Intervalo".
- AlterouValorAlterouValor: Retorna 1 se o valor do "tag" sofreu alteração. Deve sempre ser "resetado" para 0
toda vez que é usado.
- ValorInicialValorInicial: Valor inicial do "tag". O "default" é vazio.
No script e na fórmula é possível acessar os "tags" definidos na planilha através de seus nomes.Exemplos: Pressão , Temperatura1.setpoint.
Se não houver nome definido na planilha utilize x<número da linha>. (Exemplo x1) Se desejar acessar
outras colunas (propriedades) dos "tags" utilize o ponto. (Exemplo x1.setpoint)
23
GruposGrupos
A planilha pode ser dividida em grupos. Na aba existente abaixo de planilha, ou na lisa em árvore à
esquerda, "clique" o botão direito do "mouse". Escolha a opção do menu:
- Novo grupoNovo grupo: para criar novo grupo.
- Renomear grupoRenomear grupo: para renomear o grupo selecionado.
- Apagar grupoApagar grupo: para apagar o grupo selecionado.
- Duplicar grupoDuplicar grupo: para duplicar conteúdo do grupo selecionado em um novo grupo.
Acrescentar um "tag" no grupo selecionado pode ser feito várias maneiras:
- “clique” sobre o botão para adicionar o “tag” selecionando o “driver”.
- “clique” sobre o botão para adicionar o “tag” como variável.
- "clique" com o botão direto do "mouse" sobre a planilha e selecione a opção: Acrescentar linha (tag)Acrescentar linha (tag)
para adicionar o “tag” selecionando o “driver”.
- "clique" com o botão direto do "mouse" sobre a planilha e selecione a opção: Acrescentar linha (VAR)Acrescentar linha (VAR)
para adicionar o “tag” como variável.
24
Configuração da ComunicaçãoConfiguração da Comunicação
Para configurar os "tags" individualmente utilize a coluna "config" na planilha ou, na janela para selecionar
o "driver", defina a configuração. Na janela “driver” utilize o botão “Config”.
Se quiser selecionar uma configuração para todos os tags (ou todos os tags da página atual) clique sobre
o título da coluna "Driver". Na janela “driver” utilize o botão “Config”.
Formato da configuração: porta:configuração (Exemplo: 1:9600,N,8,1)
Caso seja OPC então o formato é servidor->item.
Ao pressionar o botão "Config" a seguinte janela é apresentada::
25
Fórmula na planilha de “tags”Fórmula na planilha de “tags”
A fórmula pode ser usada na planilha (coluna fórmula) ou em objetos visuais.
Tanto no script como na fórmula é possível acessar os "tags" definidos na planilha através de seus nomes.
Exemplos: Pressão , Temperatura1.setpoint.
Os "tags" que não possuem nomes definidos, seus valores relacionados às linhas e colunas da planilha
podem ser usados através de variáveis pré-definidas do tipo:
xx<número da linha>[.coluna]
Exemplo de variáveis pré-definidas:Exemplo de variáveis pré-definidas:
xx - Valor da mesma linha.
x1x1 - Valor da primeira linha.
x2x2 - Valor da segunda linha.
x1.setpointx1.setpoint - Setpoint do "tag" da primera linha.
x3.produtox3.produto - Coluna produto (criada pelo usuário) do "tag" da terceira linha.......
Exemplos de fórmulas:Exemplos de fórmulas:
x1*1.7 + 3x1*1.7 + 3
Celsius + 273.16Celsius + 273.16
Farenheit > 100Farenheit > 100
O nome da variável relativo ao "tag" é também o mesmo definido na coluna NomeNome da planilha de
programação.
Ex:Ex: Celsius + 273.16
Fórmulas em geral:Fórmulas em geral:
Os operadores são: + - * / > < >= <= = <> ^.
Algumas funções e comandos da fórmula na planilha:
- Bit(x,b1,b2)Bit(x,b1,b2): Retorna o valor dos bits escolhidos. Exemplo: "Bit(x1,3,3)" retorna o terceiro bit do valor x1.
- play ifplay if expressão : Habilita a leitura do tag se a condição for verdadeira. Exemplo: "play if x5>10".
- Int(x)Int(x): Retorna a parte inteira do valor. Exemplo: Int(x*1000)/1000
- Abs(x)Abs(x): Retorna o valor absoluto.
- Log(x)Log(x): Logaritmo na base 10.
- Ln(x)Ln(x): Logaritmo na base e.
- Exp(x)Exp(x): Exponencial.
- Sqr(x)Sqr(x): Raiz quadrada.
Fórmula nos objetos visuais:Fórmula nos objetos visuais: Objetos Visuais.
Fórmula na planilha:Fórmula na planilha:
Para relacionar uma fórmula com a linha desejada basta escrevê-la na coluna fórmula da planilha de
"tags".
Exemplo:Exemplo:
Escala:Escala:
26
Para definição de uma escala com fator multiplicativo e aditivo utilize a sintaxe: *a+b onde a é o fator
multiplicativo e b o fator aditivo. Exemplo: *1000+3. Tanto a leitura como a alteração de valores será
baseada nestes fatores. A escala pode ser usada como conversão ou até mesmo calibração.
Observações importantes:Observações importantes:
1-1- Se o nome contiver espaços em branco então na variável estes serão substituídos por _
("underline").
Exemplo:Exemplo: Nome: ab cd , variável: ab_cd.
2-2- Se o nome tiver mais que 10 caracteres então a variável será somente os 10 primeiros caracteres.
Exemplo:Exemplo: Nome: abcdefghijklmn, variável: abcdefghij
Definição do arquivoDefinição do arquivo
Para definir o nome do arquivo ou banco onde as leituras serão armazenadas clique sobre a célula da
coluna Arquivo. Para definir todos os arquivos no grupo selecionado clique sobre o cabeçalho "Arquivo".
A janela será mostrada:
Selecione ou digite o nomedo arquivo ou banco. Se este não existir será automaticamente criado naSe este não existir será automaticamente criado na
primeira gravaçãoprimeira gravação. Os campos serão criados a partir dos "tags" definidos na planilha.
Usuários avançados: para criar o banco manualmente utilize a opção do Menu "Dados e Relatórios" -
"Banco de Dados LB/ODBC" - "Arquivo" - "Novo".
O armazenamento pode ser feito no formato LB Separado, LB Geral ou AQ.
Formato LB:Formato LB:
Neste formato é possível incluir num registro quantos campos forem necessários. Além disso, é possível
também gravar as outras colunas (ou linhas relacionadas) da planilha de "tags".
Existem dois tipos de gravação: LB geral e o LB separado. O LB geralLB geral registra todostodos os "tags"
relacionados de uma varredura em um registro. O LB separadoLB separado armazena umum "tag" (e seus respectivos
dados relacionados) por registro. Neste caso é possível gravar "tags" com diferentes períodos de
amostragem no mesmo banco. Para ambos os casos existem formatos de relatórios prontos que montam
até planilhas gerais de amostragem com os "tags" disponíveis. Mais detalhes de bancos LB aqui.
Formato AQ e TXT:Formato AQ e TXT:
Estes formatos permitem utilizar algumas funções antigas do LAquis. O valor do tag, setpoint, param1 e
param2 são gravados em um registro. Os relatórios podem ser planilhas e gráficos gerais ou individuais
por "tag". Pode-se utilizar no nome do arquivo, o formato nome<ddmmaa>.aq para manutenção de
histórico (inclusive com pastas diárias criadas automaticamente).
Na primeira geração de relatório para o formato LB (Menu "Dados e Relatórios" - "Leituras" ou botão )
será apresentada a seguinte janela:
27
Escolha o modelo de relatório (Exemplo: Individual com gráfico.lgx). O relatório será gerado com base no
modelo escolhido. Será gerado um nome para o formato escolhido que será como "default" Conexão
<nomedoarquivolqs>.lgx. O formato deste tipo de relatório é LGX e será gravado na mesma pasta que o
arquivo LQS. Veja mais detalhes sobre as planilhas para relatório e análise LGX. Para criar ou alterar
modelos de relatórios que possam ser usados como formatos genéricos como os exemplos acima, grave o
arquivo LGX na pasta do LAquis\RELS\RELI ou RELG ou RELAQ.
DriversDrivers
O "driver" permite ao computador se comunicar com o equipamento.
No LAquis, estes "drivers" podem ser desenvolvidos através da uma linguagem script simples semelhante
ao "Basic" ou através de uma linguagem interpretada "LDriver".
Alguns "drivers" prontos disponíveis:
- Modbus.ldriverModbus.ldriver: protocolo serial MODBUS RTU. Utilizado para comunicação com uma grande variedade
de equipamentos.
- VARVAR: tag como variável ou memória (número ou texto).
- DEMODEMO: demonstração (senoidal variando de "Param1" até "Param2")
- OPCOPC: Conexão OPC cujo endereço é definido no "Config".
- TIMERTIMER: Contador em milissegundos. Para utilizar o formato "double" utilize TIMERFORMAT.
- SOFTSOFT: Valor varia logaritmicamente até o "set" especificado.
- LINEARLINEAR: Valor varia linearmente até o "set" especificado.
Alguns exemplos de drivers também estão disponíveis como para os controladores NOVUS, clps OMRON,
módulos ADAM da ADVANTECH (ou LR - IMPAC), controladores WEST, Modbus genérico (RTU, Ascii e
TCP), etc....
Existem dois tipos de drivers: LD e LDriver.
- LDriver: Drivers para comunicação serial (COM, TCP, etc ....).
28
- LD: Casos especiais (placas, cálculos, etc...).
Para listar os "drivers" disponíveis clique na coluna "Drivers" da planilha de tags.
Os "drivers" estão no subdiretório CTRLS (na pasta LAquis) com a extensão LD(x) ou LDriver.
O nome de um driver MODBUS desenvolvido em "ldriver" é o Modbus RTU.ldriver.
Selecione o "driver" Modbus RTU.ldriver. Defina a porta e as configurações de comunicação.
Na coluna Param1Param1 defina o endereço* do parâmetro. Exemplo: "400001".
Na coluna Param2Param2 defina número do nó.
Exemplo: endereço do valor 1 dos "holding registers" (param1=40001)
nó físico 1 (param2=1)
* Formato do endereço dos parâmetros MODBUS:
- Holding registers: 4xxxxx
- Input registers: 3xxxxx
- Input status: 1xxxxx
- Coil: 0xxxxx
onde xxxxx é o número do registro.
Veja o código fonte completo no arquivo c:\Arquivos de Programas\LAquis\Ctrls\Modbus RTU.ldriver.
29
Selecionar um DriverSelecionar um Driver
Selecione o "driver" clicando na célula correspondente à linha do "tag" desejado e da coluna "driver". Se
desejar selecionar várias linhas arraste o "mouse" com o botão esquerdo pressionado.
Escolha o "driver" desejado e clique sobre o botão OK.
30
Campos especiais do equipamentoCampos especiais do equipamento
É possível acessar as diversas propriedades dos equipamentos dependendo do "driver" disponível. Esta
opção encontra-se no Menu "ConfiguraçãoConfiguração".
Estas variáveis podem ser usadas na planilha de “tags” através das colunas especiais. Menu “Editar” –
“Pontos de leitura e escrita” – “Personalizar colunas de parâmetros”.
31
Relatório / HistóricoRelatório / Histórico
As opções relacionadas a este tópico estão no menu "Dados e Relatórios""Dados e Relatórios":
- Abrir relatório principal (histórico/leituras):- Abrir relatório principal (histórico/leituras): Abre/cria relatório principal para o aplicativo.
- Criar relatório...:- Criar relatório...: Cria outros formatos de relatórios baseados em modelos.
- Abrir relatório:- Abrir relatório: Abre relatórios criados a partir do formato LGX escolhido.
- - Editar/desenvolver Editar/desenvolver relatório relatório (planilhas (planilhas para para análise):análise): Altera/Cria formato de relatórios LGX.
Estes formatos de relatórios são gravados no formato LGX. Os valores (dados) propriamente ditos são
gravados no banco LB (mais detalhes no capítulo banco LB).
Relatório principalRelatório principal
Opção do menu: "Dados e Relatórios" - "Abrir Relatório (Histórico/Leituras)", botão .
Na primeira geração de relatório será apresentada a seguinte janela para escolher o modelo de relatóriopara criação do seu formato:
Escolha o modelo de relatório (Exemplo: Individual com gráfico.lgx). O relatório será gerado com base no
modelo escolhido.
Será automaticamente criado um nome para o formato: Conexão<nomedoarquivolqs>.lgxConexão<nomedoarquivolqs>.lgx. Este formato
será o "default" para o arquivo LB do aplicativo. É gravado na mesma pasta que o arquivo LQS.
Se desejar criar outros formatos de relatórios baseados nos modelos acima utilize a opção do menu
"Dados e Relatórios" - "Criar relatório a partir do modelo" descrito no capítulo a seguir.
Criar relatórios a partir do modeloCriar relatórios a partir do modelo
Esta opção permite criar outros formatos de relatório além do formato padrão descrito capítulo anterior.
Menu "Relatórios e Dados" - "Criar relatório...". Será apresentada a janela para a escolha do modelo de
relatório.
Escolha o modelo de relatório (Exemplo: Individual com gráfico.lgx). O relatório será gerado com base no
modelo escolhido e um arquivo LGX será gerado. O formato deste tipo de relatório é LGX e pode ser
gravado na mesma pasta que o arquivo LQS. Para alterar este formato veja mais detalhes sobre as
planilhas para relatório e análise.
Para abrir o relatório utilize o menu “Dados e Relatórios” – “Abrir relatório...”. Se desejar crie um botão no
painel e indique o nome do relatório na propriedade RelatórioRelatório.
(Para criar ou alterar modelos de relatórios que possam ser usados como formatos grave o arquivo LGX
na pasta do LAquis\RELS\RELI ou RELG.)
32
Planilhas para relatório e análisePlanilhas para relatório e análise
Opção do menu: "Dados e Relatórios" - "Editar/desenvolver relatórioEditar/desenvolver relatório (Planilhas para relatório e análise)"
ou botão .
As planilhas para relatório e análise são genéricas e podem ser usadas para diversos tipos de relatório,
inclusive sobre os dadosarmazenados em bancos LB. Esta planilha possui funções voltadas para
construção de relatórios com cálculos, gráficos e tabelas baseadas nos dados armazenados.
Os formatos de relatório deste tipo de planilha são arquivos gravados com extensão LGX.
Os arquivos, de formato "LGX", podem ser criados ou alterados conforme a necessidade do usuário. São
diversas as funções disponíveis neste tipo de planilha. Consulte algumas fórmulas e comandos
disponíveis dentro da planilha. Utilize o "script" para desenvolver relatórios. Consulte exemplos disponíveis
(opção do menu "Arquivo" - "Abrir" da janela planilha LGX).
Alguns exemplos de formatos de relatório LGX:
- Amostragem.lgxAmostragem.lgx: Permite calcular a média ou amostragem dos valores por intervalo de tempo dispondo
os "tags" desejados numa mesma planilha.
- Estatística do período com LI LS Ocorrência.lgxEstatística do período com LI LS Ocorrência.lgx: Calcula, dentro de um período de datas, os
percentuais de valores dentro e fora dos limites especificados.
- Limites e ocorrências.lgxLimites e ocorrências.lgx: Lista as leituras com possibilidade de edição de ações, ocorrências e não
conformidades relacionadas com os valores e seus limites especificados .
A planilha LGX possui dois modos: Apresentação e Edição. No modo apresentação a planilha fica pronta
para utilização ou impressão. A listagem automática de dados de bancos LB é ativada e os botões de
comando e edição definidos na planilha também são ativados.
É possível chamar um relatório LGX, diretamente no modo apresentação, através de objetos botõesutilizando a propriedade "Relatório". Veja mais detalhes no objeto visual botão.
Consulte algumas fórmulas e comandos disponíveis dentro da planilha.
BotõesBotões
Abrir:Abrir: Abre um arquivo formato LGX.
Salvar:Salvar: Salva um arquivo formato LGX. Se não houver arquivo nenhum aberto então é necessário
digitar o seu nome.
Imprimir:Imprimir: Abre a janela de impressão do relatório ou gráfico no formato LGX.
33
Modo apresentação:Modo apresentação: Passa a planilha para o modo apresentação (sem as linhas das células e
os cabeçalhos).
Executa:Executa: Executa a variável de execução (se houver) utilizada para operações mais demoradas.
Veja o exemplo estatística período LB.lgx .
Gráfico:Gráfico: Passa para a janela de edição do gráfico somente (definido ou não dentro da planilha
LGX)
Formatar (células):Formatar (células): Formatação das células selecionadas.
Copiar:Copiar: Copia as células selecionadas para a área de transferência.
Colar:Colar: Cola as células da área de transferência para a planilha.
Inserir coluna:Inserir coluna: Insere uma coluna na posição da célula selecionada.
Apagar coluna:Apagar coluna: Apaga uma coluna na posição da célula selecionada.
Inserir linha:Inserir linha: Insere uma linha na posição da célula selecionada.
Apagar linha:Apagar linha: Apaga uma linha na posição da célula selecionada.
Fórmula:Fórmula: Abre um "browser" de algumas das fórmulas possíveis de serem usadas na
planilha.
Menu:Menu:
ArquivoArquivo
Novo:Novo: Apaga a planilha e prepara para edição de novo formato de relatório LGX.
Abrir:Abrir: Abre um arquivo formato LGX.
Salvar:Salvar: Salva um arquivo formato LGX. Se não houver arquivo nenhum aberto então é necessário
digitar o seu nome.
Salvar como:Salvar como: Salva um arquivo formato LGX obrigando a digitação do seu caminho e nome.
Imprimir:Imprimir: Abre a janela de impressão do relatório ou gráfico no formato LGX.
Imprimir com gráfico:Imprimir com gráfico: Se houver um gráfico não disposto sobre a planilha, utilize esta opção
para imprimí-lo junto.
"Wizard" LB:"Wizard" LB: Assistente para criar um relatório LGX de um banco LB.
EditarEditar
Copiar:Copiar: Copia as células selecionadas para a área de transferência.
Colar:Colar: Cola as células da área de transferência para a planilha.
Selecionar tudo:Selecionar tudo: Seleciona todas as células da planilha.
Formatar (células):Formatar (células): Formatação das células selecionadas.
Formatar gráfico:Formatar gráfico: Formatação do gráfico selecionado na planilha.
Apresentação:Apresentação: Passa a planilha para o modo apresentação (sem as linhas das células e os
cabeçalhos) e vice-versa.
Executa:Executa: Executa a variável de execução (se houver) utilizada para operações mais demoradas.
Veja o exemplo estatística período LB.lgx .
Fórmula:Fórmula: Abre um "browser" de algumas das fórmulas possíveis de serem usadas na
planilha.
Veja também o capítulo Comandos principais da planilha de relatóriosComandos principais da planilha de relatórios.
34
Fórmulas e comandos para planilhas LGXFórmulas e comandos para planilhas LGX
Algumas das fórmulas disponíveis para o uso na planilha do formato LGX de relatório:
=GRAFICO(dados)=GRAFICO(dados)
Desenha um gráfico nas células mescladas utilizando os valores no intervalo de células definido em
dados. Exemplos: =GRAFICO(D32)
=GRAFICO(D32;E32;J32)
A coluna do eixo X é sempre a primeira à esquerda. Veja o exemplo Conexão LEITURAACOES.lgx.
=GRAFICOSEPARADO(dados)=GRAFICOSEPARADO(dados)
O mesmo que GRAFICO exceto pelo fato de que é invisível na planilha. Para visualização ou impressão
selecione a opção Gráfico.
=TAG("coluna","linha")=TAG("coluna","linha")
Retorna o valor da planilha referente à coluna e a linha especificada. A coluna pode ser "VALOR", "SET",
"PARAM1", "PARAM2", "TITULO", "NOME", etc... A linha pode ser o nome ou o número da linha.
=TAGCANAL("coluna",canal)=TAGCANAL("coluna",canal)Retorna o valor da planilha de tags referente à coluna e o canal especificado. A coluna pode ser "VALOR",
"SET", "PARAM1", "PARAM2", "TITULO", "NOME", etc...
=PLANILHA("coluna","linha")=PLANILHA("coluna","linha")
Retorna o valor da planilha referente à coluna e a linha especificada. A coluna pode ser "VALOR", "SET",
"PARAM1", "PARAM2", "TITULO", "NOME", etc... A linha pode ser o nome ou o número da linha.
=MEDIA(células)=MEDIA(células)
Média dos valores no intervalo definido em células.
=SOMA(células)=SOMA(células)
Soma dos valores no intervalo definido em células.
=CONTA(células)=CONTA(células)
Contagem do número de itens no intervalo definido em células.
=DESVPAD(células)=DESVPAD(células)
Desvio padrão dos valores no intervalo definido em células.
=MAXIMO(células)=MAXIMO(células)
Valor máximo no intervalo definido em células.
=MINIMO(células)=MINIMO(células)
Valor mínimo no intervalo definido em células.
=AMPLITUDE(células)=AMPLITUDE(células)
Amplitude dos valores no intervalo definido em células.=TSTUD(células)=TSTUD(células)
"TStudent" dos valores no intervalo definido em células.
=MVT(células)=MVT(células)
Converte tensão em "milivolt" para °C de termopar tipo T
=MVJ(células)=MVJ(células)
Converte tensão em "milivolt" para °C de termopar tipo J
=MVK(células)=MVK(células)
Converte tensão em "milivolt" para °C de termopar tipo K
=MVS(células)=MVS(células)
Converte tensão em "milivolt" para °C de termopar tipo S
=MVR(células)=MVR(células)
Converte tensão em "milivolt" para °C de termopar tipo R
=SLOPE(célulasx,célulasy)=SLOPE(célulasx,célulasy)
=SLOPEI(célulasx,célulasy)=SLOPEI(célulasx,célulasy)
=INTERCEPT(célulasx,célulasy)=INTERCEPT(célulasx,célulasy)
=INTERCEPTI(célulasx,célulasy)=INTERCEPTI(célulasx,célulasy)
=CORRELACAO(célulasx,célulasy)=CORRELACAO(célulasx,célulasy)
=SSDEV(células)=SSDEV(células)=SMEDIAX(células)=SMEDIAX(células)
Comandos utilizados no modo apresentação:
@BOTAO(texto)@BOTAO(texto)
Desenha um botão para ser pressionado pelo usuário no modo apresentação. Utilize o evento "OnClick" e
as variáveis ColClicked e RowClicked no "script" do LGX. Veja o exemplo Conexão LEITURAACOES.lgx.
@COMBO(item1;item2;item3;...)@COMBO(item1;item2;item3;...)
Coloca um botão de "combo" para ser pressionado pelo usuário no modo apresentação. A célula à
esquerda recebe os dados selecionados pelo usuário. Veja o exemploConexão LEITURAACOES.lgx.
LDB_LBANCO(nome do banco)LDB_LBANCO(nome do banco)
Cria uma listagem dos dados armazenados no banco LB especificado do formato LBX no modo
apresentação. Veja o exemplo Conexão LEITURAACOES.lgx.
35
Bancos LBBancos LB
O banco LB é uma estrutura flexível onde são gravadas informações, podendo ser dados de aquisição ou
não.
Os campos podem ser personalizados de acordo com a aplicação. É possível criar ou editar campos
manualmente ou através da primeira gravação (veja como criar os campos automaticamente na primeira
gravação em planilhas para relatório e análise).
Os arquivos com extensão LB definem a estrutura do banco. Os dados podem ser gravados em arquivos
com formato LBX (padrão binário), DBF ou ODBC. O LBanco, com extensão LBX, é um formato padrão do
LAquis. Possui flexibilidade na estrutura de campos e podem ser utilizadas as ferramentas de relatório e
análise do LAquis.
No formato LB, além da manutenção de histórico, é possível incluir num registro quantos campos forem
necessários. Além disso é possível também gravar as outras colunas (ou linhas relacionadas) da planilha
de "tags".
Existem dois tipos de gravação: LB geral e o LB separado. O LB geral registra todos os "tags"
relacionados de uma varredura em um registro. O LB separado armazena um "tag" (e seus respectivosdados relacionados) por registro. Para este caso existem formatos de relatórios prontos que montam
planilhas de amostragem e estatísticas gerais.
Se for necessário é possível criar colunas personalizadas definindo outras propriedades para os "tags".
Estas colunas também podem ser gravadas no arquivo de aquisição se os campos tiverem sido criados.
Exemplos: limites de segurança, nome do produto, ocorrência, não conformidade, etc... Para criar novas
colunas utilize a opção no menu "Editar" - "Colunas de parâmetros". Estes nomes devem ser sucintos e de
preferência sem acento.
O banco LB pode manter um histórico por quantos anos forem necessários. Os arquivos LBX, por
"default", são internamente separados por dia. Esta definição é feita no nome da tabela. Exemplo
nome<ddmmaa>.LBX. Veja mais detalhes aqui.
Um campo importante que pode ser adicionado na planilha é TextoLB.TextoLB. Este campo define um texto, que
pode ser usado como um código, que será colocado no título do arquivo LBX associado a um banco LB.
Por exemplo: se cada arquivo de aquisição deve estar relacionado e separado por produto, processo ou
lote que tenha um código, utilize este coluna para definí-lo. No nome da tabela definido no banco LB
coloque, por exemplo, o seguinte texto "LOTE <texto>.LBX". Cada lote será gravado em um arquivo
separado com o nome definido na coluna TextoLB, por exemplo, LOTE XYZ12345.LBX. Veja o exemplo
de como utilizar este recurso e gerar relatórios em LOTE.LQS.
36
Opção LB (ODBC)Opção LB (ODBC)
Escolha o banco LB a ser editado:
Menu:
ArquivoArquivo
Editar (Abrir tabela)Editar (Abrir tabela)
Edita, pesquisa, exporta, importa ou imprime os dados armazenados no banco LB selecionado.
Campos (estrutura)Campos (estrutura)
Altera a estrutura de campos do banco LB selecionado.
NovoNovo
Cria novo banco LB.
EliminarEliminar
Elimina o banco LB selecionado.
Campos (estrutura)Campos (estrutura)
Altera a estrutura de campos do banco LB selecionado:
A configuração física do banco é definida na caixa de texto "Banco".
O formato padrão é o LBanco. Possui flexibilidade na estrutura de campos e podem ser utilizadas as
ferramentas de relatório e análise do LAquis.
37
Utilize o botão para alterar a configuração do Tipo da conexão do
banco de dados.
Colunas para definição dos campos da tabela:
- NomeNome: Nome do campo. Não deve possuir espaços. Evite os acentos.
- TipoTipo: Tipo do campo:
0 - Número0 - Número: Campo numérico. Defina seu tipo na coluna tamanho:
vazio ou 8: Tipo "double" (8 - bytes) com ponto flutuante.
1: Tipo byte.
2: Tipo inteiro (2 - bytes) com sinal.
4: Tipo inteiro longo (4 - bytes) com sinal.
1 - Texto1 - Texto: Campo texto. Seu tamanho é definido na coluna tamanho.
- TamanhoTamanho: Veja a coluna Tipo para cada caso.- FormatoFormato: Formato do número. Exemplo: hh:nn:ss (trata o número "double" como tempo).
Conexão/Tipo do banco de dadosConexão/Tipo do banco de dados
Utilize o botão para alterar a configuração do tipo da conexão do
banco de dados.
Prov/driv:Prov/driv: Para o caso do LBanco (banco proprietário do LAquis) é o nome da pasta onde estarão os
arquivos de dados. Exemplo: c:\temp\. Para indicar a pasta principal do sistema então use <.>. Exemplos:
<.> <.>banco\
Para o caso de ODBC é o nome do banco de dados. Exemplo: c:\temp\arquivo.mdb
Tabela:Tabela: Para o caso do LBanco é o nome do arquivo binário LBX. Se desejar separar os arquivos por datautilize <ddmmyy>. Exemplo: PRENSA<ddmmyy>.LBX.
Se desejar separar na troca de turno coloque a hora de início. Exemplo PRENSA<ddmmyy,-19:30>.LBX
Se desejar utilizar uma indentificação externa utilize <texto>. Exemplo: "LOTE <texto>.LBX.
Para o caso de ODBC é o nome da tabela do banco de dados.
Usuário:Usuário: Nome do usuário opcional do banco de dados se for usado ODBC.
Senha:Senha: Senha opcional do banco de dados.
DSN:DSN: Opcionalmente defina o texto completo do DSN para a conexão ODBC.
LB Geral:LB Geral: Se estiver ativado então cada registro do banco contém todas as leituras da varredura dos tags.
38
Se estiver desativado então cada registro esta relacionado a um tag. Veja outros detalhes aqui.
Editar (Abrir tabela)Editar (Abrir tabela)
Edita, pesquisa, exporta, importa ou imprime os dados armazenados no banco LB selecionado:
Menu
ArquivoArquivoPesquisar:Pesquisar: Abre a janela de pesquisa para filtrar os dados do banco.
Exportar:Exportar: Exporta os dados para TXT ou CSV.
Importar:Importar: Importa dados a partir de arquivos TXT ou CSV.
Imprimir:Imprimir: Imprime os dados do banco.
EditarEditar
Novo:Novo: Cria novo registro.
Apagar:Apagar: Apaga registro selecionado.
Copiar:Copiar: Copia as células selecionadas para a área de transferência.
Selecionar tudo:Selecionar tudo: Seleciona todos os dados.
Copiar tudo:Copiar tudo: Copia todos os dados e cabeçalho para a área de transferência.
39
RedeRede
O servidor principal é o microcomputador conectado aos aparelhos do servidor e podem até mesmo enviar
ordens para os equipamentos através da rede.
(um cliente pode ser também um servidor e vice-versa)
Configuração da rede:
1- Servidor1- Servidor
Nome do servidor, diretório de comunicação, linhas a serem compartilhadas da planilha, etc..
2- Cliente2- Cliente
Conexão do cliente, diretório de comunicação, IP, comandos, etc..
A comunicação em rede pode ser também implementada através de OPC.
ServidorServidor
O servidor pode ser configurado de duas formas:
1 - Comunicação via TCP através da opção do menu Arquivo - Servidor TCP.
2 - Comunicação através de arquivo em diretório comum, através da opção Cliente&Servidor no "menu"
Arquivo:
Clique sobre a opção "Servidor""Servidor".
Escreva um nome qualquer para o servidor (no máximo 8 caracteres sem espaços).
O tempotempo em segundos para o servidor indica o intervalo entre cada atualização dos dados na rede.
Defina um diretório comum de comunicação em rede através do botão Avançado.
Planilha de aquisição:Planilha de aquisição:
Para definir quais serão as linhas a serem compartilhadas em rede clique sobre a primeira coluna
40
relacionada com o botão direito do “mouse” e selecione a opção CompartilharCompartilhar. Aparecerão alguns
símbolos como na planilha abaixo:
Significado dos símbolos:
A linha será compartilhada e o cliente poderá ler e alterar seus dados.
A linha será compartilhada, mas o cliente nãonão poderá ler ou alterar seus dados.
ClienteCliente
Nos microcomputadores clientes, ou seja, aqueles não conectados ao equipamento e que devem receber
as informaçõesdo servidor, escolha a opção Cliente&Servidor no "menu" Arquivo para abrir esta janela:
Escolha a opção "Cliente""Cliente".
O cliente pode ser configurado de duas formas:
1 - Clique sobre o "combo" "Cliente conectado à""Cliente conectado à" e escolha o nome do servidor do qual deseja receber
os dados.
O tempotempo em segundos para o cliente indica o intervalo entre cada leitura da rede.
Defina também o diretório de comunicação em rede comum ao servidor.
2 - Coloque o número do IP do servidor se for utilizada a comunicação via TCP.
Planilha de aquisição:Planilha de aquisição:
As linhas serão recebidas automaticamente. A planilha será como segue abaixo:
Significado dos símbolos:
Toda a linha está compartilhada e o cliente poderá ler e alterar seus dados.
41
Somente os valores, "Set Points" e alarmes da linha estão compartilhados. O cliente pode ler e
alterar somente estes valores.
Toda a linha está compartilhada, mas o cliente nãonão pode ler ou alterar seus dados.
Somente os valores, "Set Points" e alarmes da estão compartilhados. O cliente nãonão pode ler nem
alterar estes valores.
Comunicação em RedeComunicação em Rede
Existem duas formas para configurar a comunicação em rede:
1 - Clique sobre o botão "Avançado>>" ("Avançado>>" (na janela Cliente&ServidorCliente&Servidor do "menu" "Arquivo"Arquivo"). Escolha um
diretório na rede que seja comum entre os microcomputadores clientes e servidor. Todos os micros
deverão ser capazes de ler e gravar neste diretório. O nome do diretório será armazenado no arquivo
LAquis.INI do "Windows" local ou no INI do LQS atual.
2 - Utilize o número do IP para comunicação via TCP. No servidor utilize a opção que se encontra no
menu Arquivo - Servidor TCP. No cliente coloque o valor do IP ao invés de selecionar o nome.
42
Objetos VisuaisObjetos Visuais
Os objetos visuais são dispostos no painel para o desenvolvimento de aplicativos específicos e também
para o acompanhamento e controle dos "tags".
Consulte os Principais objetos visuais
Consulte os Objetos para desenho vetorial .
Para associar o objeto a um "tag" (ou sua propriedade) clique duas vêzes sobre o objeto, ou com o botão
direito do "mouse" escolha a opção "Tag" do objeto (digite, se necessário, uma fórmula):
Se desejar associar o valor do "tag" utilize apenas "x1" ou o nome do "tag" (Exemplo: P1 ou nivel). Se
quiser associar valores de outras colunas do mesmo "tag" utilize o ponto ou o "combo" ao lado do
nome. (Exemplo: x1.param1 ou x1.setpoint). Se necessário digite uma fórmula.
Consulte os Principais objetos visuais
43
Para alterar suas propriedades, clique sobre o botão "Opções do objeto" ou utilize a janela ao lado do
painel.
Para cada tipo de objeto, diferentes características poderão ser alteradas como: cores, tamanhos de letra,
casas visíveis, alarmes, etc.
Os títulos dos objetos são definidos pela coluna "Título" da planilha de "tags". Se a célula do título
correspondente a um objeto estiver vazia então a indicação será "x<número da linha na planilha de"tags">". Exemplo: "x30", ou seja, este objeto está relacionado à linha 30. Este nome (x30) poderá ser
usado em fórmulas (x30*2 + 10).
Para alterar o código fonte do objeto visual utilize o botão Editar.
Consulte os Principais objetos visuais
Para se alternar entre a visualização automática e manual dos objetos visuais utilize o botão .
Visão automática
44
Objetos para desenhos vetoriaisObjetos para desenhos vetoriais
Objetos usados para desenhos vetoriais. Os objetos para desenhos vetoriais são tratados de forma
diferente dos objetos visuais normais.
A edição de objetos para desenhos vetoriais é ativada através do botão .
Utilização:Utilização:
1 - Podem ser combinados para geração de novos objetos visuais
2 - Plantas para geração de interfaces em 3D.
3 - Animações.
4 - Simples ilustrações.
Tipos de objetos para desenhos vetoriais:
Geral:
Cano ou fio. (O cano pode ser usado na planta para interface em 3D também)
Polígono.
Elipse.
Cubo (projetado em 2D).
Cilindro (projetado em 2D).
Retângulo com borda arredondada.
Planta para interface em 3D:
Parede 3D.
Painel 3D.
Objeto (arquivo) 3D.
Geração de objetos:
Escala
Texto simples
Clique duas vêzes sobre o objeto para editar seus atributos.
45
Atributos dos objetos para desenhos vetoriais:Atributos dos objetos para desenhos vetoriais:
NomeNome: Nome do objeto para desenho vetorial.
VisívelVisível: Visibilidade do objeto vetorial.
LinhaLinha: Existência da linha de contorno principal.
CorCor (da linha): Cor da linha de contorno principal.EspessuraEspessura: Espessura da linha de contorno principal.
EstiloEstilo: Estilo da linha de contorno principal.
PreenchimentoPreenchimento: Existência do preenchimento do objeto.
CorCor (do preenchimento): Cor do preenchimento do objeto vetorial.
PadrãoPadrão (do preenchimento): Padrão do preenchimento do objeto vetorial.
Preenchimento 2Preenchimento 2 (para gradiente): Existência de gradiente de cor no preenchimento do objeto.
CorCor (do preenchimento 2):: Cor destino do gradiente de cor no preenchimento do objeto.
Dimensões:Dimensões:
Através destas propriedades é possível associar as dimensões e posições do objeto aos "tags". A relação
matemática do valor da dimensão e o "tag" pode ser definida nas colunas "e.x1", "e.y1", "e.x2", "e.y2" ou
na coluna escala.
X1:X1: Posição do lado esquerdo do objeto.
Y1:Y1: Posição do lado superior do objeto.
Largura:Largura: Largura do objeto.
Altura:Altura: Altura do objeto.
X2:X2: Posição do lado direito do objeto. Y2:Y2: Posição do lado inferior do objeto.
MX:MX: Posição média do objeto na horizontal.
MY:MY: Posição média do objeto na vertical.
Inserir Objeto VisualInserir Objeto Visual
1 -1 - Escolha um objeto da parte superior da tela, logo abaixo do menu, "clicando" no mesmo. Para um
primeiro contato com o programa, recomendamos o visor com ponteiro ou o termômetro.
2 -2 - Na área limpa entre o "menu" e a planilha, segure o botão do "mouse" e arraste, gerando um
46
retângulo, soltando botão o "mouse" após o término. O objeto escolhido deverá aparecer dentro do
retângulo.
3 -3 - Ajuste a altura e a largura do objeto para melhor visualização.
4 -4 - Crie outros objetos, de forma similar. A cada objeto criado, o programa irá associá-lo a um canal de
forma seqüencial.
5 -5 - Para associar manualmente o objeto visual a um dos canais da planilha: selecione o objeto, "clique"
duas vezes sobre este e escolha o "tag".
6 -6 - Para alterar as propriedades do objeto selecione o objeto, utilize a janela ao lado ou "clique" duas
vezes sobre este e "clique" no botão "Opções do objeto...".
Todo o objeto visual possui a propriedade Fórmula. Exemplo: x1*2+5x1*2+5 onde x1 é o valor da primeira linha
da planilha de "tags". O valor apresentado pelo objeto será o resultado da fórmula.
Se desejar associar o próprio valor do "tag" utilize apenas "x1" ou o nome do "tag" (Exemplo:
temperatura1). Se quiser associar valores de outras colunas do mesmo "tag" utilize o ponto (Exemplo:
x1.param1 ou x1.setpoint)
Para alternar entre a visualização automática e manual dos objetos visuais utilize o botão .
Configuração do PainelConfiguração do Painel
Configuração do painel de objetos visuais do LAquis:
Figura:Figura: esta opção permite selecionar uma figura de fundo para o painel (tela) atrás dos objetos visuais.
Lado a lado:Lado a lado: se esta opção estiver ativada, a figura é disposta na tela lado a lado repetidamente. Se
desativada, a figura será disposta no canto superior esquerdo.
Janela:Janela: Largura e Altura - é possível definir o tamanho da tela (em pixels) quando a aplicação for
executada.
Pré visualização:Pré visualização: se esta opção estiver ativada, é possível visualizar a figura selecionada na área de
trabalho no momento em que está sendo escolhida.
Fundo normal:Fundo normal:se esta opção estiver ativada, a cor da tela de fundo se torna cinza. Se desativada, o
fundo recebe o preenchimento de um padrão.
47
Exemplos de objetos visuaisExemplos de objetos visuais
São estes alguns dos principais objetos visuais:
- DisplayText- DisplayText
Mostrador de valores.
- LEditar- LEditar
Editor de valores.
- Figura- Figura
Figura para fundo, duplo estado ou animação.
- Botão- Botão
Botão de ativação de evento.
- LTexto- LTexto
Texto explicativo.
- LCombo- LCombo
Editor de valores com combo.
- MGráfico- MGráfico
Gráfico para acompanhamento em tempo real.
- Barra- Barra
Barra com limites.
- TChave- TChave
Chave de duplo estado.
- Check- Check
Chave de duplo estado em formato de botão e luz.
- Acrescenta- Acrescenta
Botão para acrescenta novo registro LB.
- Lista- Lista
Botão para listar registros LB.
- Tanque- TanqueTanque de nível.
- Funil- Funil
- Tanquefechado- Tanquefechado
- PID- PID
Botão para controle PID sobre o "tag" relacionado.
- Receita- Receita
Botão para execução de receita (tempos e "setpoints") sobre o "tag" relacionado.
- Gauge- Gauge
Gauge ponteiro analógico.
- Termometro- Termometro
Termômetro com escala.
- - Mostrador Mostrador digitaldigital
Mostrador de valores numéricos imitando LCD.
DisplayTextDisplayText
DisplayTextDisplayText
Mostrador de valores (ou texto).
- Principais- Principais:
Nome:Nome: Nome do objeto.
48
Fórmula (tag):Fórmula (tag): Nome do "tag" ou fórmula indicando o valor associado ao objeto.
Título:Título: Título opcional do objeto.
Cor:Cor: Cor do texto ou valor.
Cor de fundo:Cor de fundo: Cor de fundo do objeto.
Visibilidade:Visibilidade: se 0 o objeto está invisível, caso contrário estará visível. Pode ser incluída uma fórmula.
(Exemplo x7>30)
Atualização:Atualização: Menor intervalo de tempo, em milissegundos, da atualização do objeto.
- Específicas- Específicas:
Tamanho título:Tamanho título: Tamanho do título do objeto.
Borda:Borda: 1 - Utilizar borda ao redor do objeto. 0 - Não utilizar borda.
Formato:Formato: Formato do texto ou valor a ser visualizado no objeto. Exemplo: 0.2f
Alinhamento:Alinhamento: Alinhamento do texto. 0 - esquerda. 1 - centro. 2 - direita. 3 - preenchimento.
Mostra Erro:Mostra Erro: 1 - Mostra informação de erro de leitura. 0 - Fica invisível se houver erro de leitura.
LEditarLEditar
LEditarLEditar
Editor de valores (ou texto).
Propriedades:Propriedades:
- Principais- Principais:
Nome:Nome: Nome do objeto.
Fórmula (tag):Fórmula (tag): Nome do "tag" ou fórmula indicando o valor associado ao objeto.
Título:Título: Título opcional do objeto.
Cor:Cor: Cor do texto ou valor.
Cor de fundo:Cor de fundo: Cor de fundo do objeto.Visibilidade:Visibilidade: se 0 o objeto está invisível, caso contrário estará visível. Pode ser incluída uma fórmula.
(Exemplo x7>30)
Atualização:Atualização: Menor intervalo de tempo, em milissegundos, da atualização do objeto.
- Específicas- Específicas:
Texto:Texto: Texto do editor de valores.
Tamanho:Tamanho: Tamanho do texto. Se 0 o tamanho fica sendo proporcional à altura do editor.
Transparente:Transparente: Se 1 o fundo é transparente.
Alinhamento:Alinhamento: Alinhamento do texto. 0 - esquerda. 1 - centro. 2 - direita. 3 - preenchimento.
Fonte:Fonte: Fonte do texto.
Bold:Bold: 1 - Texto em negrito. 0 - Texto normal.
Itálico:Itálico: 1 - Texto em itálico. 0 - Texto normal.
Borda3D:Borda3D: Se 1 desenha uma borda ao redor do objeto.
Editar:Editar: Se 0 não permite a editar o valor. Normalmente está em 1.
EditarTexto:EditarTexto: Texto que aparece na janela opcional de edição (dois cliques).
Comando:Comando: Comando interno a ser enviado para a planilha de "tags".
Formato:Formato: Formato do texto a ser visualizado no objeto. Exemplo: %0.2f
Planilha:Planilha: Se 0 o valor objeto não é atualizado conforme o "tag" na planilha. Normalmente está em 1.
Máximo:Máximo: Máximo valor numérico permitido. Mínimo:Mínimo: Mínimo valor numérico permitido..
Passo:Passo: Passo numérico a ser usado no "spin" da janela opcional de edição (dois cliques).
Editor:Editor: Se 0 não é utilizado o editor no painel e sim apenas a janela de edição. Normalmente está em
1.
49
FiguraFigura
FiguraFigura
Figura para fundo, duplo estado ou animação.
Se a figura estiver associada a um "tag" então seu valor 1 ou 0 irá determinar se a figura estará em estado
de animação, duplo estado ou parada.
Para definir uma animação ou duplo estado, utilize arquivos com valores numéricos após seus nomes.
Exemplo: Motor001.emf, Motor002.emf e Motor003.emf. A propriedade Estados define o número máximo
de estados ou quadros para animação. Veja o exemplo canos1.lqs.
Propriedades:Propriedades:
Nome:Nome: Nome do objeto.
Fórmula (tag):Fórmula (tag): Nome do "tag" ou fórmula indicando o valor associado ao objeto.
Transparente:Transparente: Se selecionado o fundo é transparente.
Tamanho fixo:Tamanho fixo: A figura mantém seu tamanho srcinal fixo.
Borda:Borda: Desenha uma borda ao redor da figura.
Visibilidade:Visibilidade: se 0 o objeto está invisível, caso contrário estará visível. Pode ser incluída uma fórmula.
(Exemplo x7>30)
Estados:Estados: Número máximo de estados habilitados para a figura. (0 .. n)
Estado atual:Estado atual: Número do estado atual (se houver mais de um estado).
Duplo estado:Duplo estado: Define se os estados compreendem uma animação ou apenas dois estados.
"Clique" altera:"Clique" altera: Alterna o valor do "tag" associado ao objeto em 1 ou 0 se o usuário clicar sobre
figura.
Antialias:Antialias: Suaviza as linhas do "metafile".
Utilize a caixa abaixo das propriedades para escolher a figura.
50
BotãoBotão
ButtonButton
Botão de ativação de evento.
Propriedades:Propriedades:
- Principais- Principais:
Nome:Nome: Nome do botão.
Fórmula (tag):Fórmula (tag): Nome do "tag" ou fórmula indicando a linha da planilha de "tags" associada ao botão.
Cor:Cor: Cor do botão.Visibilidade:Visibilidade: se 0 o botão está invisível, caso contrário estará visível. Pode ser incluída uma fórmula.
(Exemplo x7>30)
- Específicas- Específicas:
Texto:Texto: Texto que será mostrado no botão.
Comando:Comando: Valor que será colocado no "tag" associado ao botão.
Margem:Margem: Largura da borda em alto relevo do botão.
Letra:Letra: Tamanho da fonte que será usada no texto mostrado no botão.
Cor do texto:Cor do texto: Cor do texto mostrado no botão.
Bold:Bold: Tipo da letra do texto mostrado no botão: 1 - Negrito. 0 - Normal.
Pagina:Pagina: Numero da página que será selecionada no painel de objetos visuais quando o botão for
pressionado. É o mesmo que usar o comando script Painel.Pagina = página.
Relatório:Relatório: Se for preenchido pode assumir dois tipos valores:
a) Se for 1 então ao pressionar o botão será mostrado o relatório .lgx "default" da linha da planilha de
"tags" associada ao botão.
b) Nome do relatório .lgx que será apresentado pressionar o botão.
PopupPagina:PopupPagina: Numero da página do painel que será acionada como “popup” quando o botão for
pressionado. É o mesmo que usar o comando script Painel.Popup(página). AlterarTag:AlterarTag: Altera os tags dos objetos da página escolhida para o tag ou grupo do botão. A página
pode ser escolhida na propriedade PaginaPagina ou PopupPaginaPopupPagina. É o mesmo que usar o comando script
Painel.AlteraTodosOsTagsDaPagina(página,nome).
MGráficoMGráfico
MGraficoMGrafico
Gráfico para acompanhamento em tempo real.
Propriedades:Propriedades:
- Principais- Principais:
Nome:Nome: Nome do objeto.
Fórmula (tag):Fórmula (tag): Nome do "tag" ou fórmula indicando o valor associado ao objeto.
Título:Título: Título opcional do objeto.
51
Cor:Cor: Cor da primeira curva.
Cor de fundo:Cor de fundo: Cor de fundo do gráfico.
Visibilidade:Visibilidade:se 0 o objeto está invisível, caso contrário estará visível. Pode ser incluída uma fórmula.
(Exemplo x7>30)
Atualização:Atualização: Deve ser sempre 0. No caso do gráfico utilize a propriedade "Sampling".
- Específicas- Específicas:
Máximo:Máximo: Máximo valor superior da escala no eixo Y.
Mínimo:Mínimo: Mínimo valor inferior da escala no eixo Y.
Auto Escala:Auto Escala: Se 1 a escala é automática. Senão os limites Máximo e Mínimo serão usados.
Cor da Grade:Cor da Grade: Cor da grade na parte interior do gráfico.
DivisõesX:DivisõesX: Número de divisões na escala do eixo X.
DivisõesY:DivisõesY: Número de divisões na escala do eixo Y.
Pontos:Pontos: Número máximo de pontos permitidos no gráfico.
Reinicia:Reinicia: Se 1 as curvas são apagadas e o gráfico pode reiniciar o acompanhamento.
FormatoTempo:FormatoTempo: Formato em que os valores de tempo no eixo X serão mostrados. Exemplo: hh:nn:ss DeltaTempo:DeltaTempo: Intervalo máximo de tempo que os valores serão mostrados no gráfico.
CorTexto:CorTexto: Cor dos números e textos no gráfico.
Sampling:Sampling: Menor intervalo de tempo, em milissegundos, da atualização do gráfico. Somente no caso
deste gráfico de acompanhamento deixe a propriedade Atualização em 0 e utilize o "Sampling".
Espessura:Espessura: Espessura das linhas do gráfico.
Borda:Borda: Se 1 é desenhada uma borda 3D ao redor do gráfico.
TamanhoLetra:TamanhoLetra: Tamanho das letras e dos números colocados no gráfico.
TamanhoTítulo:TamanhoTítulo: Tamanho do título colocado sobre o gráfico.
Cor2:Cor2: Cor da curva 2.
Cor3:Cor3: Cor da curva 3.
Cor4:Cor4: Cor da curva 4.
Cor5:Cor5: Cor da curva 5.
UsarLegenda:UsarLegenda: Se 1 a legenda (definida nas propriedades abaixo) é mostrada.
Legenda1:Legenda1: Texto da legenda para curva 1.
Legenda2:Legenda2: Texto da legenda para curva 2.
Legenda3:Legenda3: Texto da legenda para curva 3.
Legenda4:Legenda4: Texto da legenda para curva 4.
Legenda5:Legenda5: Texto da legenda para curva 5.
FixoX:FixoX: Se 1 fixa o eixo X, senão realiza a rolagem como se fosse um papel.
52
Criação e alteração de objetos visuais 2D Criação e alteração de objetos visuais 2D (personalizar)(personalizar)
Existem duas maneiras de se criar ou editar objetos e controles visuais 2D:
- Editor de objetos visuais 2D simplesEditor de objetos visuais 2D simples: Menu Editar – Painel – Editor de objetos visuais 2D simples.
- Editor de objetos script textoEditor de objetos script texto: Clique duas vezes sobre o objeto. Selecione opções do objeto. Clique
em Código fonte.
Os arquivos de objetos 2D ficam preferencialmente dentro da pasta objs (c:\Arquivos de
Programas\LAquis\objs\....\..).
53
Planta 3DPlanta 3D (introdução)(introdução)
O LAquis oferece a possibilidade de gerar interfaces em 3 dimensões.
Defina uma planta em 2 dimensões e associe os tags correspondentes:
A planta então é transformada em uma interface 3D: (botão )
54
Janela da interface 3DJanela da interface 3D
Para acessar a janela da interface 3D utilize o botão . Se desejar iniciar a tela automaticamente ao
iniciar o aplicativo marque a opção “Mostrar planta 3D ao iniciar”Mostrar planta 3D ao iniciar” no menu ConfiguraçãoConfiguração – OpçõesOpções.
No modo geral, onde a câmera está posicionada de forma a ter um panorama geral da planta 3D, "clique"
com o botão esquerdo do "mouse" sobre a área da qual se deseja aproximar. Se desejar, utilize
opcionalmente o "Mapa" para posicionar a câmera.
Para mover a câmera arraste com o ponteiro do "mouse" sobre a interface 3D com o botão do "mouse"
pressionado quando o cursor estiver sobre o chão ou pressionando o botão direito.
Durante a execução, para "clicar" sobre um objeto utilize o botão esquerdo do "mouse". No exemplo
planta3d.lqsplanta3d.lqs, disponível na pasta do LAquis, é possível "clicar" sobre os motores, válvulas, chaves e
painéis.
Botões principais:
Grava (ou edita) posições pré-definidas da câmera.
Geral:Geral: Posiciona a câmera para um panorama geral da planta 3D. Para se aproximar de alguma área
específica "clique" com o botão esquerdo do "mouse" sobre a interface 3D ou clique sobre o botão de
posição da câmera pré-definida.
Mapa:Mapa: Planta em 2D para posicionar a câmera.
<< ou >:>: Vira a câmera para esquerda ou para a direita.
Atualização:Atualização: Seleciona o intervalo de tempo em milissegundos entre cada atualização da interface 3D
durante a execução.
Gerais:
Inicia o aplicativo.
Pára o aplicativo.
Inicia o aplicativo com a opção de gravação em arquivo ou banco de dados.
Relatório dos dados gravados no banco.
55
Objetos da planta 3DObjetos da planta 3D
Os objetos de desenho vetorial para a planta 3D são:
Parede 3D. (obrigatório para a geração de interfaces 3D)
Painel 3D.
Objeto 3D.
Cano.
Objetos visuais 3D também podem ser gerados a partir de script texto conforme os objetos visuais
normais.
Veja também:Veja também:
Exemplo disponível na pasta do LAquis: "planta3d.lqs"Exemplo disponível na pasta do LAquis: "planta3d.lqs"
56
Objeto (arquivo 3D)Objeto (arquivo 3D)
Objeto (arquivo) 3D: Define um objeto lido de um arquivo. O arquivo pode ser .objeto3d, padrão .x3d
ou .lobj3d.
Para criar novos objetos 3D utilize o programa editordeobjetos3D.exeeditordeobjetos3D.exe na pasta do LAquis. Se desejar
utilizar outros softwares para criação de objetos 3D utilize o formato X3D (exemplo Blender).
Para escolher o arquivo ou alterar outras propriedades clique duas vêzes sobre o objeto 3D.
Arquivo:Arquivo: Nome do arquivo objeto3d ou x3d.
Cor base:Cor base: Altera a cor principal do objeto 3D.
Tag (opcional):Tag (opcional): Associa o objeto 3D ao tag escolhido.
Estados:Estados: Número de estados para animação. Os estados são definidos pelo número no nome do arquivo(exemplo válvula1.x3d e válvula2.x3d).
Estado:Estado: Número do estado atual do objeto. Varia de 1 a número de estadosestados.
Se o valor do tag for diferente de 0 o objeto estará em animação.
Duplo estado:Duplo estado: Altera entre estado 1 e 2 quando o objeto 3D for "clicado" (alterando também o tag). Se
não estiver ativado então é utilizada a animação de 1 até o número de estadosestados.
Se o valor do tag for 0 o objeto estará em estado 1. Se não seu estado será 2.
Página para edição do tag (opcional):Página para edição do tag (opcional):Associa o objeto 3D a uma página (tela) do painel.
Veja também:Veja também:
Exemplo disponível na pasta do LAquis: "planta3d.lqs"Exemplo disponível na pasta do LAquis: "planta3d.lqs"
57
ParedeParede
Parede 3D: Define as paredes na interface 3D. Obrigatório para a geração de interfaces em 3D.
As paredes também delimitam o tamanho da planta.
Painel 3DPainel 3D
Painel 3D:
Define um painel com os objetos visuais definidos em uma das páginas ou telas do painel principal. Para
escolher a tela/página ou alterar outras propriedades clique duas vêzes sobre o painel 3D.
58
Tela a ser associada ao bloco 3D:Tela a ser associada ao bloco 3D: Esta página será colocada em um cubo 3D representando o painel.
Tag (opcional):Tag (opcional): Associa os objetos visuais da página ao tag (ou grupo) especificado.
Cano 3DCano 3D
Cano. Define um cano 3D conforme a figura abaixo. Para alterar a cor ou espessura clique duas
vêzes sobre o cano 3D.
Objeto Visual 3DObjeto Visual 3D
Objetos visuais 3D podem ser gerados através de script texto da mesma forma que os objetos visuais
normais.
Exemplo Pasta3D\tanque3dPasta3D\tanque3d:
59
Criação e alteração de objetos visuais 3D Criação e alteração de objetos visuais 3D (personalizar)(personalizar)
Existem duas maneiras de se criar ou editar objetos e controles visuais 3D:
- Editor de objetos 3DEditor de objetos 3D: Menu Editar – Painel – Interface 3D - Editor de objetos 3D. (formato lobj3d)
- X3DX3D: O software aceita objetos no formato X3D. Este formatopode ser gerado por diversos aplicativos
de “design” 3D. (Exemplo Blender).
Os arquivos de objetos 3D ficam preferencialmente dentro da pasta Plan3D (c:\Arquivos de
Programas\LAquis\Plan3D\....\..).
60
Menu principalMenu principal
ArquivoArquivo
NovoNovo
AbrirAbrir
Abre o arquivo LQS. Este arquivo (em conjunto com ELS INI LQX) contém todas as informações
específicas de uma aplicação.
SalvarSalvar
Salva o arquivo LQS. Se não houver arquivo nenhum aberto então é necessário digitar o seu nome.
Salvar ComoSalvar Como
Salva o arquivo LQS obrigando a digitação do seu caminho e nome.
Distribuição/ExecutávelDistribuição/Executável
Geração de executável para distribuição da aplicação.
Cliente ServidorCliente ServidorOpções para comunicação em rede através de arquivos ou cliente TCP.
Servidor TCPServidor TCP
Servidor de comunicação em rede através de TCP.
EditarEditar
CopiarCopiar
Copia para a área de transferência as células selecionadas na planilha de "tags" ou os objetos visuais
marcados.
ColarColar
Cola da área de transferência sobre a planilha de "tags" ou objetos visuais, dependendo de quem está
selecionado no momento.
Personalizar colunas de ParâmetrosPersonalizar colunas de Parâmetros
Insere colunas a mais na planilha de "tags". Estas colunas podem ser novas propriedades ou outras
variáveis do mesmo "driver". Veja mais detalhes sobre a Planilha de "Tags".
Acrescentar linha (tag)Acrescentar linha (tag)
Acrescenta uma linha na planilha de tags. Pode ser feito manualmente na própria planilha.
"Driver" / Equipamento do tag"Driver" / Equipamento do tag
Altera o "driver" ou tipo do tag da linha selecionada. Pode ser feito manualmente na própria planilha
clicando sobre a(s) célula(s) na coluna "driver" correspondente ao tag desejado.
"Driver" / Equipamento do grupo"Driver" / Equipamento do grupo Altera o "driver" ou tipo do tag do grupo selecionado ou de todos os tags. Pode ser feito manualmente
na própria planilha clicando sobre o título da coluna "driver".
Bloquear "split"Bloquear "split"
Bloqueia o "split" que divide o painel de objetos visuais e a planilha de "tags".
Outras opções da planilha de tagsOutras opções da planilha de tags
Abre um menu com opções de edição da planilha de "tags". Se desejar utilize o botão direito do
"mouse" sobre a planilha.
Outras opções da grupo de tagsOutras opções da grupo de tags
Abre um menu com opções de edição do grupo de "tags". Se desejar utilize o botão direito do "mouse"
sobre as abas abaixo da planilha.
Desenho (Objetos vetoriais / Planta para interface 3D)Desenho (Objetos vetoriais / Planta para interface 3D)
Passa para o modo de edição dos objetos de desenho. Estes podem ser usados para criar a planta
3D.
Para trásPara trás
Passa o objeto visual marcado para trás dos outros objetos.
Para frentePara frente
Passa o objeto visual marcado para frente dos outros objetos.
Selecionar TudoSelecionar TudoSeleciona todos os objetos visuais.
Trancar objetosTrancar objetos
Bloqueia ou desbloqueia no painel a movimentação dos objetos visuais na edição.
Trancar figurasTrancar figuras
Bloqueia ou desbloqueia no painel a movimentação das figuras. Estas ficam em segundo plano
permitindo editar os outros objetos visuais.
Apagar objeto do painelApagar objeto do painel
Apaga o objeto visual marcado.
GradeGrade
Define o tamanho da grade no painel para desenho dos objetos visuais.
PáginaPágina
61
Seleciona a página do painel de objetos visuais. Podem ser utilizadas as abas abaixo da barra de
ferramentas.
Tabela de objetos visuaisTabela de objetos visuais
Passa do modo de visualização por painel de objetos visuais para tabela automática (e vice-versa).
Nomes dos objetosNomes dos objetos
Permite editar em uma planilha os nomes, associações e posições dos objetos visuais do painel.
Janela da interface 3D...Janela da interface 3D...
Abre a janela da interface 3D se houver planta definida.
Editor de objetos 3DEditor de objetos 3D
Abre o editor de objetos 3D para serem usados na interface 3D. Para usar os objetos criados utilize na
planta 3D o objeto 3D.
Opções do objeto visualOpções do objeto visual
Seleciona a pasta de opções e propriedades do objeto visual no canto direito do painel.
Script visual (Linguagem visual)Script visual (Linguagem visual)
Seleciona a pasta da linguagem (script) visual no canto direito do painel. Script textoScript texto
Seleciona a pasta do "script" texto no canto direito do painel.
Selecionar "driver" ou tipo do tagSelecionar "driver" ou tipo do tag
Altera o "driver" ou tipo do tag da linha selecionada. Pode ser feito manualmente na própria planilha
clicando sobre a(s) célula(s) na coluna "driver" correspondente ao tag desejado.
Desenvolver novo driver (ldriver)Desenvolver novo driver (ldriver)
Abre o editor LDriver para desenvolvimento de "drivers".
Drivers (Script texto e ldriver)Drivers (Script texto e ldriver)
Abre o editor de "drivers" no formato "script" texto e ldriver.
Janelas da linguagem visual (LVarObj)Janelas da linguagem visual (LVarObj)
Mostra todas as janelas do script visual "LVarObj" ativas na aplicação. Mais detalhes sobre "script"
visual aqui.
Fecha todas as janelas (LVarObj)Fecha todas as janelas (LVarObj)
Fecha todas as janelas do script visual "LVarObj" ativas na aplicação.
Compilar tudo (script texto)Compilar tudo (script texto)
Compila o script texto de toda aplicação atual gerando um arquivo compilado LQX.
ExecuçãoExecução
Iniciar aplicaçãoIniciar aplicaçãoInicia a aplicação atual (sem necessariamente ligar a gravação em arquivo).
Iniciar gravaçãoIniciar gravação
Inicia a aplicação atual ligando automaticamente a gravação em arquivo se houver.
Parar aplicaçãoParar aplicação
Pára a aplicação atual.
OPC ClienteOPC Cliente
Mostra uma janela com as conexões atuais OPC cliente.
Dados e RelatóriosDados e Relatórios
Abrir Relatório (Histórico / Leituras)Abrir Relatório (Histórico / Leituras)
Abre a janela de relatórios ou planilha de leituras gravadas em arquivo.
Criar relatório...Criar relatório...
Cria relatórios a partir de modelos pré-definidos.
Abrir outro relatório....Abrir outro relatório....
Abre o relatório com o formato (planilha LGX) especificado.
Editar/desenvolver relatório (Planilhas para análise)Editar/desenvolver relatório (Planilhas para análise)
Abre a janela da planilha LGX para edição de modelos de relatório e análise de dados.
Banco de Dados / Arquivo (LB / ODBC) / ExportaçãoBanco de Dados / Arquivo (LB / ODBC) / ExportaçãoAbre a janela para edição manual das estruturas de bancos LB e ODBC.
ConfiguraçãoConfiguração
Equipamento (driver)Equipamento (driver)
Abre uma janela contendo as variáveis disponíveis no driver da linha selecionada na planilha de "tags"
Alteração de senhaAlteração de senha
Permite criar ou alterar senha para proteção da edição da aplicação atual.
ProtegidoProtegido
Protege a aplicação atual impedindo digitação na planilha de "tags" e outras opções.
Tempo entre varredurasTempo entre varreduras
Define um intervalo de tempo adicional em milissegundos entre as varreduras. Este intervalo de tempo
é geralmente 0 (inexistente).
Tempo da animaçãoTempo da animação
62
Define o intervalo de tempo em milissegundos entre cada quadro das animações.
Tempo do evento "OnTimer"Tempo do evento "OnTimer"
Define o intervalo de tempo em milissegundos em que o evento "OnTimer" será executado
novamente.
Número máximo de pontos (tags)Número máximo de pontos (tags)
Define o número máximo de pontos da planilha de "tags".
PainelPainel
Configuração de propriedades visuais do painel.
PortaPorta
Configuração da comunicação global para todos "tags" na planilha que não tiverem sido configurados.
Utilize a coluna "config" na planilha para configurar individualmente.
OpçõesOpções
Opções e preferências gerais.
Botões:Botões:Abrir:Abrir: Abre o arquivo LQS. Este arquivo (em conjunto com ELS INI LQX) contém todas as
informações específicas de uma aplicação.
Salvar:Salvar: Salva o arquivo LQS. Se não houver arquivo nenhum aberto então é necessário digitar o
seu nome.
Abrir relatório/histórico principal:Abrir relatório/histórico principal: Abre a janela de relatórios ou planilha de leituras gravadas
em arquivo.
Editar/desenvolver relatório - planilhas para análise:Editar/desenvolver relatório - planilhas para análise: Abre a janela da planilha LGX para
relatório e análise de dados.
Iniciar aplicação:Iniciar aplicação: Inicia a aplicação atual (sem necessariamente ligar a gravação em arquivo).
Parar aplicação:Parar aplicação: Pára a aplicação atual.
Iniciar gravação:Iniciar gravação: Inicia a aplicação atual ligando automaticamente a gravação em arquivo se
houver.
Tabela de objetos visuais (automática):Tabela de objetos visuais (automática): Passa do modo de visualização por painel de objetos
visuais para tabela automática (e vice-versa).
Desenho (objetos vetoriais e 3D):Desenho (objetos vetoriais e 3D): Modo de edição usando objetos vetoriais para desenho
ou planta 3D.
63
Opções (Preferências)Opções (Preferências)
Menu "Configuração" - "Opções"Menu "Configuração" - "Opções"
Estas opções devem ser alteradas com muito cuidadocuidado. As alterações podem alterar o desempenho do
sistema.
- Armazenar dimensões do gráfico:- Armazenar dimensões do gráfico:
Mantem as últimas dimensões das janelas do gráfico após seu fechamento.
Padrão: Ativada.
- Utilizar arquivo compilado:- Utilizar arquivo compilado:
Se existir o arquivo LQX correspondente à aplicação atual então este é usado para sua execução.
Senão a compilação é realizada a cada início da aplicação.
Padrão: Ativada.
- Arquivo referenciado pelo canal:- Arquivo referenciado pelo canal:Define a chave primária dos arquivos de leitura como sendo o número do canal do "tag". Senão é
usado o nome do "tag"
Padrão: Ativada.
- Armazenar colunas especiais:- Armazenar colunas especiais:
Armazena nos arquivos de leitura as colunas de parâmetros especiais se existirem os campos no
banco LB. Estas colunas são definidas no menu "Editar" - "Colunas de Parâmetros".
Padrão: Ativada.
- Todos os processos em paralelo:- Todos os processos em paralelo:
Toda a comunicação com o equipamento externo definido nos "drivers" é executada em tarefa "thread"
separada. Além de melhorar o desempenho do sistema é possível utilizar mais de uma porta de
comunicação no mesmo instante.
Padrão: Ativada.
- Aguardar leitura após algum "set":- Aguardar leitura após algum "set":
Marca o "tag" no estado "Aguarde" durante o período de tempo em que esta sendo "setado".
Padrão: Ativada.
- Ler valor após algum “set”:- Ler valor após algum “set”:
Força leitura do “tag” logo após toda vez que for alterado.
Padrão: Ativada.
- Forçar o “set” síncrono:- Forçar o “set” síncrono:Executa a alteração dos “tag” entre as varreduras sem interromper as tarefas em paralelo.
Padrão: Desativada.
- Forçar o “set” assíncrono:- Forçar o “set” assíncrono:
Força a execução da alteração dos “tag” imediatamente interrompendo as tarefas em paralelo.
Padrão: Desativada.
- Não realizar primeira gravação:- Não realizar primeira gravação:
Esperar o tempo definido na coluna "Tempo" para gravar a primeira varredura no arquivo de leituras.
Senão em todo início de aplicação é gravada uma varredura.
Padrão: Desativada.
- Alterar dados dos subitens conforme "tag" principal:- Alterar dados dos subitens conforme "tag" principal:
Ao alterar um "tag" que possui subitens identados abaixo, seus dados correspondentes são alterados
para o mesmo valor também.
Padrão: Desativada.
- LOG das alterações:- LOG das alterações:
Grava no arquivo LOG.TXT as ações realizadas pelo usuário ou "sets" realizados pelo sistema.
Padrão: Desativada.
- Mostrar posição da varredura:- Mostrar posição da varredura:
Mostra o "tag" sendo atualizado no momento na planilha.
Padrão: Desativada.- Mostrar planta 3D ao iniciar:- Mostrar planta 3D ao iniciar:
Mostrar a janela com a planta 3D no início da execução do aplicativo.
Padrão: Desativada.
- Objeto invisível se houver erro na comunicação:- Objeto invisível se houver erro na comunicação:
Torna o objeto invisível quando ocorre erro de comunicação no “tag” associado.
Padrão: Ativada.
64
SenhaSenha
Para proteger algumas opções do "LAquis" é possível utilizar uma senha. Esta senha é definida na opção
"Alteração de senhaAlteração de senha" no menu "ConfiguraçãoConfiguração".
Para alterar a senha:Para alterar a senha:
Digite a senha antiga no texto superior. Se esta não existe deixe em branco.
Digite a senha nova repetindo-a nos dois espaços reservados abaixo.
65
Script (texto e visual)Script (texto e visual)
LCDS - Basic ScriptLCDS - Basic Script
Para criar aplicações avançadas o LAquis oferece duas opções de desenvolvimento:
- Script Visual: linguagem visual (LVAROBJ).
- Script Texto: linguagem semelhante ao Basic.
Script Visual:
- Script Texto:
Nestas linguagens é possível acessar os "tags" definidos na planilha através de seus nomes. No script
texto se não houver nome definido na planilha utilize x<número da linha>. (Exemplo x1) Se desejar
acessar outras colunas dos "tags" utilize o ponto. (Exemplo x1.setpoint)
ExemploExemplo:
Crie um botão. Programe sua ação através do script.
Execute a aplicação. Ao clicar neste botão o script programado será executado.
OBSOBS: Os "drivers" de comunicação também podem ser desenvolvidos através de "script" ou da linguagem
"ldriver".
66
Script VisualScript Visual
O script visual (LVAROBJ) permite desenvolver programas através de uma linguagem visual.
Cada objeto visual corresponde a um comando, operação, constante, variável, etc...
No exemplo abaixo o valor 7 é colocado no tag x2. A sintaxe equivalente no script texto é x2=7.
Os pinos de saídas dos valores sempre ficam à direita do objeto. Os pinos de entrada ficam à esquerda.
67
Objetos principais disponíveis para utilização:
Acessa os objetos e comandos do LAquis. Escolha através do "browser".
"Browser" de objetos:"Browser" de objetos:
"Browser" de comandos:
68
Constante numérica.
Constante texto.
Invoca um outro arquivo .LVAROBJ
Variável número (pode ser utilizada como parâmetro de entrada ou saída de um arquivo
LVAROBJ)
Variável texto (pode ser utilizada como parâmetro de entrada ou saída de um arquivo
LVAROBJ)
Vai para (ou GoTo). Flecha que aponta para o próximo passo ou comando.
Comentário simples.
Operações matemáticas básicas:
Realiza a operação entre as duas entradas e retorna o resultado.
Executa a função matemática sobre a entrada e
retorna o resultado.
Executa a fórmula digitada. As variáveis antes do simbolo "=" são saídas e as outras variáveis são
entradas.
Executa uma função desenvolvida em "script" texto no evento <Global>. Digite o nome da função
(parâmetros).
Outras operações:
Concactena as duas entradas texto.
Define um bloco condicional. Se a entrada recebe 1 então o interior do bloco é executado.
Define um bloco de repetição. Possui duas entradas opcionais.
- Se a primeira entrada recebe 1 então o bloco de repetição continua. Se receber 0 então pára.
- A segunda entrada recebe o número de vêzes que o bloco será repetido.
Pára a execução do script visual atual.
Retorna 1 se a comparação entre as duas entradas for
verdadeira.
Executa a operação lógica entre as duas entradas e retorna 1 se for verdadeiro.
Inverte a entrada entre 1 e 0.
69
EventosEventos
Para editar um programa através de script clique sobre o botão LSLS ou selecione um objeto e utilize a
janela ao lado.
No script é possível acessar os "tags" definidos na planilha através de seus nomes. Se não houver nomedefinido na planilhautilize x<número da linha>. (Exemplo x1) Se desejar acessar outras colunas
(propriedades) dos "tags" utilize o ponto. (Exemplo x1.setpoint)
Existem dois tipos de eventos onde os scripts podem ser executados: eventos gerais e eventos nos
objetos.
No item "Evento" encontram-se as seguintes opções para os eventos gerais:
<Global><Global>
define as funções que serão usadas em toda sua aplicação;
OnStartOnStart
define o que acontece no início da aplicação;
OnAntesVarredurasOnAntesVarreduras
define o que acontece antes das varreduras na planilha;
OnDuranteVarredurasOnDuranteVarreduras
define o que acontece durante as varreduras;
OnDepoisVarredurasOnDepoisVarreduras
define o que acontece depois das varreduras;
OnFinishOnFinish
define o que acontece na hora que termina.
Para acessar os eventos de cada objeto então selecione o nome respectivo no item Objeto. No momento
em que o objeto desejado for selecionado a lista de eventos será atualizada para:
OnClickOnClick
define o que acontece quando o usuário clica sobre o objeto.
OnMouseDownOnMouseDown
define o que acontece quando o botão do mouse é pressionado sobre o objeto.
OnMouseMoveOnMouseMove
define o que acontece quando o mouse é arrastado sobre o objeto (pressionado).
OnMouseUpOnMouseUp
define o que acontece quando o botão do mouse é "despressionado" sobre o objeto.
OnKeyDownOnKeyDown
define o que acontece quando uma tecla é pressionado sobre o objeto.
OnKeyPressOnKeyPress
define o que acontece quando uma tecla é pressionado sobre o objeto.
OnKeyUpOnKeyUp define o que acontece quando uma tecla é "despressionado" sobre o objeto.
OnCommandOnCommand
define o que acontece quando ocorre um evento específico do objeto.
Observações:Observações:
Nos eventos OnKeyDown, OnKeyPress e OnKeyUp o programador pode utilizar a variável KeyKey para
retornar a tecla pressionada. O número é o código da tabela ANSI.
No evento OnCommand o programador recebe as informações no objeto Event: Event.Value,
Event.Object, Event.Command e Event.Pointer. O significado de cada uma destas propriedades é
determinada pelo objeto.
70
“Browser”“Browser”
Para consultar os tags, objetos e comandos disponíveis utilize a opção browserbrowser.
Na janela do script texto clique no botão "F4 - Browser" ou tecle F4. Na janela do script visual selecione o
objeto .
Selecione o tag, objeto ou comando desejado.
Dica: Se quiser, digite o início do nome do comando. Uma janela apresentará uma pesquisa dosDica: Se quiser, digite o início do nome do comando. Uma janela apresentará uma pesquisa dos
comandos disponíveis.comandos disponíveis.
71
Acessando os "tags" da planilha de Acessando os "tags" da planilha de E/S (Objeto TAG)E/S (Objeto TAG)
Como ler ou escrever em um "tag" da planilha de pontos de leitura e escrita (ou suasComo ler ou escrever em um "tag" da planilha de pontos de leitura e escrita (ou suas
propriedades):propriedades):
Script visual:Script visual:
Selecione o objeto "comandos" e clique sobre o editor. Aparecerá uma janela com "tags",
objetos e comandos. Escolha o "tag" desejado (ou também sua propriedade) e clique em OK.
Exemplos:
(associa o valor 1 ao “tag” x1)
(retorna, na variável y, o LI do “tag” valor4)
Script texto:Script texto:
É possível acessar os "tags" definidos na planilha simplesmente através de seus nomes, sem utilizar o
nome objeto tag, (pode-se utilizar o browser - tecla F4). Exemplo: niveldoliquidoniveldoliquido. Se não houver nome
definido na planilha utilize x<número da linha>. (Exemplo x1x1) Se desejar acessar outras colunas
(propriedades) dos "tags" utilize o ponto. (Exemplo x1.param1x1.param1).
Exemplos:
xx = x1x1 (retorna o valor do “tag” x1 na variável x) x5x5 = xx (associa o valor x no “tag” x5)
tt = Temperatura1Temperatura1**100100 (retorna na variável t o valor do “tag” Temperatura1 x 100 )
xx = x7.LimiteSuperiorx7.LimiteSuperior (retorna na variável x o valor da propriedade LimiteSuperior do tag x7)
xx = TagTag((33)) (retorna o valor do “tag” da linha 3 da planilha na variável x)
ss = Tag$Tag$((77)) (retorna o valor texto do “tag” da linha 7 da planilha na variável s)
cc = TagTag((77))..CanalCanal (retorna o valor do “tag” da linha 7 da planilha na variável c)
Se desejar forçar a leitura do "tag" executando o "driver" correspondente execute a propriedade atualiza.
Exemplo: x1.atualizax1.atualiza
Para utilizar um "tag" como uma simples variável, sem um equipamento externo, utilize o "driver" VAR.
72
VariáveisVariáveis
Variáveis podem ser criadas e utilizadas livremente dentro do script em atribuições de valores ou como
parâmetros de funções. Os “tags” também podem ser usados como variáveis (genéricas ou associadas a
um equipamento).
Existem dois tipos de variáveis:
- TextoTexto
- NúmeroNúmero
Script visual:Script visual:
Variáveis:
Variável número (pode ser utilizada como parâmetro de entrada ou saída de um arquivo
LVAROBJ)
Variável texto (pode ser utilizada como parâmetro de entrada ou saída de um arquivo
LVAROBJ)
Constantes:
Constante numérica.
Constante texto.
Concactenação de texto:
Concactena as duas entradas texto.
Exemplo:
Script texto:Script texto:
Para criar variáveis numéricasvariáveis numéricas:
Inicialize a variável como número.
Exemplo: xx == 00
yy == 7.436757.43675
ww == &HEEBBFF&HEEBBFF ' em hexa' em hexa
ii == &B011010011101111111&B011010011101111111 ' em binário' em binário
yy == yy ++ 11
As variáveis número podem ser calculadas através dos operadores + - * / ou através de diversas funçõesmatemáticas pré-definidas.
Para criar variáveis textovariáveis texto:
Inicialize a variável como texto.
Exemplo: ss = ""= ""
texto1texto1 == "supervisório""supervisório"
Converte número em texto: s =s = CStrCStr(( xx ))
Converte texto em número: x =x = ValVal(( ss ))
As constantes de texto são definidas entre aspas. Os textos podem ser concactenados utilizando o
73
operador +. Exemplo de concatenação de texto: ss == "Realizados ""Realizados " ++ CStrCStr(( xx ) +) + " teste(s). "" teste(s). " (Para usar
variáveis texto no comando IfIf utilize o operador ====. - veja Expressão If)
As variáveis texto também podem funcionar como memórias ou pacotes de bytes. Podem ser usadas para
comunicação ou tratamento de dados binários. (veja funções como BytesToStr)
Diversos tipos de manipulação de texto (string) podem ser realizados através de funções pré-definidas
(veja as funções para manipulação de strings no capítulo Texto).
Atenção: os nomes dos "tags" já são variáveis pré-definidas. Veja o tópico Acessando os "tags".
Operações básicasOperações básicas
Variáveis numéricas:Variáveis numéricas:
Script texto: == : Associa. Ex: yy == 11 .Script visual: . Ex: .
Script texto: ++ : Soma. Ex: yy == yy ++ 11 .Script visual: Ex: .
Script texto: -- : Subtração. Ex: yy == yy – – 11 .Script visual: Ex: .
Script texto: ** : Multiplicação. Ex: yy == yy**22 .Script visual: Ex: .
Script texto: // : Divisão. Ex: yy == yy // 22 .Script visual: Ex: .
Variáveis texto:Variáveis texto:
Script texto: == : Associa. Ex: ss == “texto”“texto” .Script visual: . Ex: .
Script texto: ++ :: Concactena texto (“string”). Exemplo: ss == ss ++ “ texto”“ texto” .
Script visual:
.
Exemplo: .
74
Comandos e expressões básicasComandos e expressões básicas
Expressão If (Condição)Expressão If (Condição)
A expressão IfIf indica uma decisão baseada numa condição.
Exemplo1:Exemplo1:
Script visual:
Script texto:
If <expressão> ThenIf <expressão> Then
......
End IfEnd If
IfIf (( x1x1 == 22 )) ThenThen
mensagem1mensagem1 == "valor é 2""valor é 2"
End IfEnd If
Se x1 é igual a dois então mensagem1 será: "valor é 2".
Exemplo2:Exemplo2:
Script visual:
Script texto:
No caso de uma variável texto no script texto utilize o operador "==".IfIf NotNot (( resposta1resposta1 ==== "ERR""ERR" )) ThenThen
x8x8 == 33
End IfEnd If
Se resposta1 é igual a "ERR" então x7 será 3.
75
Exemplo3:Exemplo3:
Script visual:
Script texto:
Expressão com ElseElse e ElseIfElseIf:
IfIf x1x1 >> 33 ThenThen
x8x8 == 33
ElseIfElseIf x1x1 == 11 ThenThen
x8x8 == 11
ElseElse
x8x8 == 22
End IfEnd If
ForFor
Script texto:Script texto:
O comando ForFor indica uma repetição onde a variável recebe valores de n1 até n2.
No exemplo acima o valor de i varia de 1 até 10. A expressão s = s + Chr( i ) será executada 10 vezes.
Script visual:Script visual:
76
Expressão While (repetição, loop, iteração)Expressão While (repetição, loop, iteração)
A expressão WhileWhile indica uma repetição baseada numa condição.
Sintaxe:Sintaxe:
WhileWhile <condição>
...
WEndWEnd
Exemplo:Exemplo:
leituraleitura == 11 xx == 00
WhileWhile (( leituraleitura == 11 )) AndAnd (( xx <=<= 2020 ))
......
x1.atualizax1.atualiza
leituraleitura == x1x1
......
xx == xx ++ 11
WEndWEnd
No exemplo acima, enquanto a leitura realizada por um equipamento for igual a 1 e xx for menor ou igual a
20 então a repetição permanece.
Script visual:Script visual:
No exemplo acima, enquanto a leitura realizada por um equipamento for igual a 1 e xx for menor ou igual a
20 então a repetição permanece. Note que quando a entrada for 1 então a execução sai do bloco de
repetição.
77
GoToGoTo
Script texto:Script texto:
O comando GoToGoTo (ir para) direciona a execução do programa para a linha referenciada pelo "label".
No exemplo o programa não executará a linha onde x = 1.
O programa executará a partir da linha referenciada pelo label, ou seja, x = 2.
Script visual:Script visual:
Utilize o objeto e coloque a flecha apontando o destino (e a srcem).
78
Objetos VisuaisObjetos Visuais
Utilize o objeto PainelPainel para acessar os objetos visuais.
Script texto:Script texto:
PainelPainel..<nome do objeto>..<propriedade> [ = valor ]
Para cada objeto existem propriedades comuns e específicas. Para consultar as propriedades específicas
é necessário abrir a ajuda especializada do objeto.
Script visual:Script visual:
Selecione o objeto "comandos" e clique sobre o editor. Aparecerá uma janela com "tags",
objetos e comandos. Escolha Painel. e em seguida o objeto desejado (ou também sua propriedade) eclique em OK.
Propriedades comuns:Propriedades comuns:
RefreshRefresh
Redesenha o objeto de forma a atualizar apenas os itens necessários.
SetPointSetPoint
Valor usado para o retorno da informação para o Set da planilha. Geralmente usado o envio de dados
para o equipamento.
ValorValor
Valor principal do objeto. Geralmente usado como leitura do equipamento. Obj.gauge7.Valor = 0
UpdateUpdate
Redesenha o objeto de forma completa. Painel.texto2.UpdatePainel.texto2.Update.
ExemplosExemplos:
Painel.Led2.EstadoPainel.Led2.Estado == 11 o estado do objeto "Led2" será igual a 1, ou seja, ligado
ss == Painel.texto1.TEXTOPainel.texto1.TEXTO
s recebe o texto digitado no objeto "texto1"
Propriedade especial: UpdateModeUpdateMode:
A propriedade UpdateMode do objeto Obj define a forma de como os objetos serão atualizados quando
associados a algum valor.
Valores possíveis:
0 - Atualiza-o completamente redesenhando todas as partes do objeto.
1 - Não redesenha o objeto apenas os dados internos são alterados.
2 (default) - Atualiza somente as partes necessárias do objeto para a visualização.
Exemplo:Exemplo: Painel.UpdateModePainel.UpdateMode == 22
Veja outras propriedades do objeto Painel: Objeto Painel
79
Objeto PainelObjeto Painel
O objeto PainelPainel possui propriedades que acessam a configuração da tela, além dos objetos visuais. (veja
como acessar os objetos visuais do painel em Objetos Visuais)
Propriedades e métodos disponíveis no objeto PainelPropriedades e métodos disponíveis no objeto Painel:
PaginaPagina:
Número da página atual. Painel.Pagina=0
PopupPopup ( página ):
Abre a página como uma janela "popup". Painel.Popup(1)
AlteraTodosOsTagsDaPaginaAlteraTodosOsTagsDaPagina ( página, nome do tag ou grupo ):
Altera todos os “tags” ou grupo dos tags dos objetos visuais da página.
Painel.AlteraTodosOsTagsDaPagina(1, "x7" )
TagTag:
Nome do tag do objeto visual atual. Tag(Painel.Tag) = 1.GrupoGrupo:
Nome do grupo do objeto visual atual. Tag(Painel.Grupo+”_temp”) = 1.
ReDesenhaReDesenha:
Redesenha o painel. Painel.ReDesenha
FocoFoco:
Seleciona o foco do windows para o painel. Painel.Foco
TelaCheiaTelaCheia:
Define se o painel é uma janela que preenche toda a tela.
JanelaJanela ( [x ,y ,] largura , altura ):
Define o painel como uma janela. Painel.Janela(600,400)
MenuMenu:
Habilita ou desabilita o menu com o botão direito do mouse no painel de objetos.
BordaBorda:
Define se a janela contém borda. Painel.Borda = True
FiguraFigura:
Define o nome do arquivo BMP para a figura de fundo no painel. Painel.Figura =
"figura.bmp"
FiguraLadoaLadoFiguraLadoaLado:
Se True então a figura de fundo é repetida e disposta lado a lado no painel. CorCor:
Define a cor de fundo no painel.
Tipo:Tipo:
0 - Painel normal com os objetos visuais. 1 - Tabela de visores.
ExemploExemplo:
Explicação:
1 - A página visualizada será a de número 1;
2 - Painel preencherá a tela inteira;
3 - Será mostrada a página 0 e o tamanho da janela será 640 por 480.
80
Objeto PlanilhaObjeto Planilha
O objeto PlanilhaPlanilha permite ao script acessar diretamente a planilha de pontos de leitura e escrita "tags".
Veja também o objeto TAGTAG (tópico Acessando os “tags” da planilha de pontos de E/S).
Script visual:Script visual: Objeto "comandos" . Tipo Objetos. Item Planilha.
Propriedades e métodos disponíveis no objeto PlanilhaPropriedades e métodos disponíveis no objeto Planilha:
LinhaCujoNomeLinhaCujoNome (nome_do_tag ):
Retorna a linha da planilha cujo nome é o nome_do_tag.
GravaGrava [(linha )]:
Inicia a leitura em todas as linhas ou na linha especificada. Planilha.Grava.
PararGravacaoPararGravacao [(linha )]:
Pára a gravação em todas as linhas ou na linha especificada.
Planilha.PararGravacao(7) ClienteServidorClienteServidor:
Mostra a janela Cliente&Servidor.
GravaAgora (linha):GravaAgora (linha):
Força gravação do “tag” no arquivo especificado na planilha.
NomeDoTagNomeDoTag (linha ):
Retorna o nome do “tag” da linha especificada.
LinhaDoTagLinhaDoTag (nome_do_tag ):
Retorna a linha do “tag” relativo ao nome especificado.
LinhaCujoCanalLinhaCujoCanal (canal ):
Retorna o número da linha cujo canal é o número especificado.
AtualizaAtualiza (linha):
Força a leitura do “tag” da linha da planilha. Planilha.Atualiza (<linha>)
LigaLiga (linha ):
Inicia a leitura na linha especificada. Planilha.Liga(3)
PausaPausa (linha ):
Pausa a leitura na linha especificada. Planilha.Pausa(3)
DesLigaDesLiga (linha ):
Desliga a leitura/gravação na linha especificada. Planilha.Desliga(3)
LinhaAtualLinhaAtual:
Linha atual da planilha que esta sendo lida. l =Planilha.LinhaAtual
VarreduraAtualVarreduraAtual (linha ):
Varredura atual da leitura na linha especificada.
TagsTags ou CanaisCanais:
Número de canais (ou "tags") definidos na planilha.
LigadoLigado (linha ):
Seta/Retorna se a linha especificada está realizando leitura.
GravandoGravando (linha ):
Seta/Retorna se a linha especificada está realizando gravação.
TempoAtualTempoAtual (linha ):
Retorna o tempo da leitura/gravação da linha especificada.
TempoAtualAlarmeTempoAtualAlarme (linha ):
Retorna o tempo da leitura do alarme na linha especificada.
ApagaApaga:
Apaga toda a planilha.
AbreLQSAbreLQS (arquivo):
Abre um arquivo de extensão LQS ( ) dentro da planilha.
Planilha.AbreLQS ( arquivo.lqs ) SalvaLQSSalvaLQS (arquivo):
Salva um arquivode extensão LQS ( ) dentro da planilha.
Planilha.SalvaLQS ( arquivo.lqs )
SalvaColunaSalvaColuna (arquivo, nome_da_coluna ):
Exporta os dados de uma coluna da planilha em um arquivo texto.
AbreColunaAbreColuna (arquivo, nome_da_coluna ):
Importa os dados de uma coluna da planilha de um arquivo texto.
SalvaColunasEspeciaisSalvaColunasEspeciais [(arquivo )]:
Exporta os dados de todas as colunas especiais para um arquivo texto.
AbreColunasEspeciaisAbreColunasEspeciais (arquivo, nome_da_coluna ):
Importa os dados de todas as colunas especiais a partir de um arquivo texto.
81
Exemplo Exemplo (OnDepoisVarred(OnDepoisVarreduras)uras)
Este é um exemplo simples de utilização de scripts no LAquis usando o evento OnDepoisVarreduras.
Script visual:Script visual:
Script texto:Script texto:
ifif x1x1 >> 2020 thenthen
painel.texto2.valorpainel.texto2.valor=="Ultrapassou 20""Ultrapassou 20"
elseelse
painel.texto2.valorpainel.texto2.valor==""""
end ifend if
Explicação do script acima: Se o "Valor" lido no primeiro tag (x1), ou seja, na linha 1 da planilha, for maior
que 20, então o texto do objeto "texto2" será "Ultrapassou 20". Senão (se "Valor" não for maior que 20) o
texto do objeto "texto 2" será vazio.
82
Exemplo - Evento Global (script texto)Exemplo - Evento Global (script texto)
Script texto:Script texto:
Exemplo de utilização do evento <Global>.
No evento "Global" criamos a função dobro(x), especificando que: "dobro" é igual a duas vezes a variável
x.
x2x2 == dobrodobro((x1x1))
Por exemplo, no evento OnClick de um botão programamos:
- x é igual ao valor do texto do objeto "textcontrol"
- y é igual ao dobro de x.
- O valor do objeto "texto1" será o valor de y, ou seja, o resultado da função dobro(x).
Ou seja; se x (valor do objeto "textcontrol1") for igual a 5, y (valor do objeto "texto1") será igual a 10.
83
Funções e objetos de memóriaFunções e objetos de memória
Objeto globalObjeto global
O objeto GlobalGlobal permite criar variáveis que podem ser acessadas em todos os eventos do LAquis.
Script visual:Script visual: Objeto "comandos" . Tipo Objetos. Item Memória.
Sintaxe:Sintaxe:
Global.Global.<nome da variável> [ = valor ]
Exemplo:Exemplo:
Global.VariavelGlobal.Variavel = 5= 5 Global.TesteGlobal.Teste = 2= 2
' Em outro local da aplicação:' Em outro local da aplicação:
xx == Global.VariavelGlobal.Variavel
yy == Global.TesteGlobal.Teste
Observação:Observação: Global.VariavelGlobal.Variavel = 5= 5 é o mesmo que StoreValueStoreValue((55,, "Variavel""Variavel"))
Objeto MemoryObjeto Memory
O objeto MemoryMemory contém as propriedades e métodos necessários para a acessar e manipular dados
numa área de memória. É possível criar blocos de dados, arrays e campos especiais tendo como base um
ponteiro de memória.
Script visual:Script visual: Objeto "comandos". Tipo Objetos. Item Memória.
Exemplo 1:Exemplo 1:
Exemplo 2:Exemplo 2:
Propriedades e métodos disponíveis no objeto MemoryPropriedades e métodos disponíveis no objeto Memory:
AllocAlloc (tamanho ):
Aloca uma área de memória com o tamanho especificado. p = Memory.Alloc ( 255 )
FreeFree (p , tamanho ):
Libera a área de memória apontada pelo ponteiro p . Memory.Free ( p, 255 )
84
ReAllocReAlloc (p , tamanho ):
Realoca a área de memória p para outro tamanho sem perder os dados.
ByteByte (p , posição ):
Lê ou escreve um byte numa posição da memória apontada pelo ponteiro p .
DoubleDouble (p , posição ):
Lê ou escreve um double (8 bytes) numa posição da memória apontada pelo ponteiro p .
LongLong (p , posição ):
Lê ou escreve um long (4 bytes) numa posição da memória apontada pelo ponteiro p .
IntegerInteger (p , posição ):
Lê ou escreve um integer (2 bytes) numa posição da memória apontada pelo ponteiro p .
WordWord (p , posição ):
Lê ou escreve um word (2 bytes) numa posição da memória apontada pelo ponteiro p .
PCharPChar (p , posição ):
Lê ou escreve um pchar (texto) numa posição da memória apontada pelo ponteiro p .
Comandos de alta velocidade:Comandos de alta velocidade:
MemoryWriteLongMemoryWriteLong ( p , posicao )
Escreve um long (4 bytes) numa posição apontada pelo ponteiro p .
MemoryWriteByteMemoryWriteByte ( p , posicao )
Escreve um byte (1 byte) numa posição apontada pelo ponteiro p .
MemoryWriteDoubleMemoryWriteDouble ( p , posicao )
Escreve um double (8 bytes) numa posição apontada pelo ponteiro p .
MemoryWriteWordMemoryWriteWord ( p , posicao )
Escreve um word (2 bytes) numa posição apontada pelo ponteiro p .
MemoryReadLongMemoryReadLong ( p , posicao )
Retorna um long (4 bytes) de uma posição apontada pelo ponteiro p .
MemoryReadByteMemoryReadByte ( p , posicao )
Retorna um byte (1 byte) de uma posição apontada pelo ponteiro p .
MemoryReadDoubleMemoryReadDouble ( p , posicao )
Retorna um double (8 bytes) de uma posição apontada pelo ponteiro p .
MemoryReadWordMemoryReadWord ( p , posicao )
Retorna um word (2 bytes) de uma posição apontada pelo ponteiro p .
StoreValueStoreValue
Comando StoreValueStoreValue ( valor , nome )
Armazena um valor numérico dentro de uma área de memória global referenciada por um nome . A função
RestoreValue é usada para acessar este número. Opcionalmente utilize o objeto GlobalGlobal para acessar
estes valores. (Objeto Global)
Script visual:Script visual: Objeto "comandos". Tipo Objetos. Item Memória.
Parâmetros:
valor :
Número a ser armazenado na memória global.
nome:
Nome que será usado como referência para acessar o número através da função RestoreValue.
Exemplo:Exemplo:
"""" StoreValueStoreValue (( 3030,, "teste""teste" )) ......
xx == RestoreValueRestoreValue (( "teste""teste" )) """"
No exemplo acima a variável xx recebe o valor 30.
85
RestoreValueRestoreValue
valor = RestoreValueRestoreValue ( nome )
Lê um valor numérico armazenado numa área de memória global referenciado por um nome . O comando
StoreValue é usado para armazenar este número. Opcionalmente utilize o objeto GlobalGlobal para acessar
estes valores.(Objeto Global)
Script visual:Script visual: Objeto "comandos". Tipo Objetos. Item Memória.
Exemplo:Exemplo:
StoreValueStoreValue (( 3030,, "teste""teste" ))
......
xx == RestoreValueRestoreValue (( "teste""teste" ))
No exemplo acima a variável xx recebe o valor 30.
ExistsValueExistsValue
x = ExistsValueExistsValue ( nome )
Retorna True se o número referenciado pelo nome existe na memória global gravado pelo comando
StoreValue .
Script visual:Script visual: Objeto "comandos". Tipo Objetos. Item Memória.
Exemplo:Exemplo:
......
If ExistsValueIf ExistsValue (( "teste""teste" )) ThenThen
xx == RestoreValueRestoreValue (( "teste""teste" ))
............
End IfEnd If
ClearValueClearValue
Comando ClearValueClearValue ( nome )
Desassocia a variável referenciada pelo nome da memória global. Para fins de desempenho a área de
memória não é desalocada e pode servir de espaço para novos armazenamentos pelo comando
StoreValue. Se desejar desalocar a parte da memória global que não está sendo utilizada basta invocar o
comando CompactStoredValues.
Script visual:Script visual: Objeto "comandos". Tipo Objetos. Item Memória.
Exemplo:Exemplo:
StoreValueStoreValue (( 3030,, "teste1""teste1" ))
StoreValueStoreValue (( 4040,, "teste2""teste2" ))
StoreValueStoreValue (( 5050,, "teste3""teste3" )) ......
ClearValueClearValue (( "teste2""teste2" ))
......
CompactStoredValuesCompactStoredValues
FreeStoredValuesFreeStoredValues
Comando FreeStoredValuesFreeStoredValues
Libera a memória global utilizada para armazenar as variáveis através do comando StoreValue.
86
Script visual:Script visual: Objeto "comandos". Tipo Objetos. Item Memória.
Exemplo:Exemplo:
StoreValueStoreValue (( 3030,, "teste""teste" ))
......
xx == RestoreValueRestoreValue(( "teste""teste" ))
......
FreeStoredValuesFreeStoredValues
CompactStoredValuesCompactStoredValues
Comando CompactStoredValuesCompactStoredValues
Compacta a memória global utilizada para armazenar as variáveis através do comando StoreValue. A
compactação só é útil se algumas das variáveis forem eliminadas da memória através do comando
ClearValue. As lacunas que não foram preenchidas depois são desalocadas da memória global.
Script visual:Script visual: Objeto "comandos". Tipo Objetos. Item Memória.
Exemplo:Exemplo:
StoreValueStoreValue (( 3030,, "teste1""teste1" ))
StoreValueStoreValue (( 4040,, "teste2""teste2" ))
StoreValueStoreValue (( 5050,, "teste3""teste3" ))
......
ClearValueClearValue (( "teste2""teste2" ))
......
CompactStoredValuesCompactStoredValues
87
Objeto TabelaObjeto Tabela
O objeto TabelaTabela contém as propriedades e métodos para a manipulação de uma tabela em formato de
planilha. Nesta tabela podem ser apresentados os resultados de operações realizadas na aplicação ou até
mesmo servir de entrada de dados. Uma vez criada a tabela é possível gerar relatórios na tela, impressos
ou para exportação.
Script visual:Script visual: Objeto "comandos". Tipo Objetos. Item Tabela.
O título da tabela: "Relatório"
O número de colunas: 3
O número de linhas: NumLeituras + 1
O valor de determinada célula (seguindo a sequência - linha,coluna):Linha 0, coluna 0 = "#" , e assim
sucessivamente.
Tabela.Mostra: é o que define o tamanho, ou seja, a resolução da tabela, no exemplo - 320 por 480.
Propriedades e métodos disponíveis no objeto ArquivoTextoPropriedades e métodos disponíveis no objeto ArquivoTexto:
NomeNome:
Nome da tabela.
88
TituloTitulo:
Título da janela onde será apresentada a tabela.
ColunasColunas:
Número de colunas da tabela.
LinhasLinhas:
Número de linhas da tabela.
ColunasFixasColunasFixas:
Número de colunas fixas (em cinza) à esquerda da tabela.
LinhasFixasLinhasFixas:
Número de linhas fixas (em cinza) no topo da tabela.
CelulaCelula (coluna , linha ):
Lê ou escreve o conteúdo da célula na coluna e linha especificada.
CorTextoCorTexto (coluna , linha ):
Cor do texto na célula correspondente à coluna e linha especificada.
CorCor (coluna , linha ):
Cor do fundo da célula correspondente à coluna e linha especificadaLarguraLargura (coluna ):
Largura em pixels da coluna especificada na tabela.
AlturaAltura (linha ):
Altura em pixels da linha especificada na tabela.
VisivelVisivel:
Torna a tabela visível ou não.
MostraMostra ( [x1, y2,] dx , dy ):
Apresenta a tabela para o usuário e não permite eventos no plano inferior.
MostraNormalMostraNormal ( [x1, y2,] dx , dy ):
Apresenta a tabela para o usuário.
SalvaSalva ( arquivo ):
Grava os dados da tabela em arquivo texto.
AbreAbre ( [ y [, x ],] arquivo, [ajusta] ):
Abre o arquivo texto e dispõe os dados na tabela nas posições especificadas.
ApagaLinhaApagaLinha (linha):
Apaga a linha especificada da tabela.
InsereLinhaInsereLinha (linha):
Insere uma linha na posição especificada.
LiberaLibera:Libera a memória alocada para a tabela atual.
LiberaTodasLiberaTodas:
Libera a memória alocada para todas as tabelas criadas.
ColunaColuna:
Lê ou define a posição da coluna do cursor na tabela.
LinhaLinha:
Lê ou define a posição da linha do cursor na tabela.
SomenteLeituraSomenteLeitura:
Se True a tabela não poderá ser alterada pelo usuário.
BordaFixaBordaFixa:
Se True o tamanho da janela onde está a tabela não poderá ser ajustado.
89
Funções e objetos de arquivos e banco de Funções e objetos de arquivos e banco de dadosdados
Objeto LBObjeto LB
Propriedades:Propriedades:
LB.DataLB.Data
Determina a data relacionada do banco para o caso de arquivos BANCO<DDMMYYYY>.LDB. Caso
contrário LB.Data = 0.
Ex: LB.Data=int(now)
LB.Abre(arquivo_ldb)LB.Abre(arquivo_ldb)
Abre o arquivo .ldb indicado e retorna opcionalmente um número relacionadp ao banco.Ex: banco = LB.Abre("TESTE.LDB")
LB.BancoNumero(banco)LB.BancoNumero(banco)
Seleciona o banco aberto através do seu número.
Ex: LB.BancoNumero(banco)
LB.Filtro(sql_ou_critério)LB.Filtro(sql_ou_critério)
Filtra e seleciona os registros de acordo com o comando SQL ou o critério no formato LBanco. Para
selecionar todos os registros basta fazer LB.Filtro("").
Ex: LB.Filtro("VALOR > 30")
LB.RegistrosLB.Registros
Retorna o número de registros selecionados pelo Filtro.
Ex: x = LB.Registros
LB.PosicaoLB.Posicao
Retorna ou determina a posição atual do banco em função do filtro. Varia de 0 até Registros-1.
Ex: LB.Posicao=0
LB.PosicaoRealLB.PosicaoReal
Retorna ou determina a posição real física atual do banco. Varia de 0 até Registros-1 quando o filtro é
vazio.
Ex: x=LB.PosicaoReal
LB.NovoRegistroLB.NovoRegistro
Posiciona o banco para acrescentar novo registro.
Ex: LB.NovoRegistro
LB.LeLB.Le
Lê o registro apontado pela posição atual. Os dados podem ser retornados pelos métodos Campo e
CampoN.
Ex: LB.Le
LB.GravaLB.Grava
Grava os dados no registro apontado pela posição atual. Os dados são definidos pelos métodos Campo e
CampoN.
Ex: LB.Grava
LB.Campo(nome_do_campo)LB.Campo(nome_do_campo)
Retorna ou define o valor do campo no formato texto.
Ex: LB.Campo("OBS")="Acima do limite"
LB.CampoN(nome_do_campo)LB.CampoN(nome_do_campo)
Retorna ou define o valor do campo no formato numérico.
Ex: LB.CampoN("TEMPO")=now
LB.Titulo(nome_do_campo)LB.Titulo(nome_do_campo)
Retorna o título do campo.
Ex: s=LB.Titulo("CODIGO")
90
LB.Tipo(nome_do_campo)LB.Tipo(nome_do_campo)
Retorna o tipo do campo. Os tipos são: 0-Número,1-Texto,2-AutoInc,3-Data/Hora,4-Binário.
Ex: x=LDB.Tipo("VALOR")
LB.Formato(nome_do_campo)LB.Formato(nome_do_campo)
Retorna o formato do campo.
Ex: s=LB.Formato("VALOR")
LB.CamposLB.Campos
Retorna o número de campos do banco atual.
Ex: n=LB.Campos
LB.NomeDoCampo(indice_do_campo)LB.NomeDoCampo(indice_do_campo)
Retorna o nome do campo a partir do índice que varia de 0 até LB.Campos-1.
Ex: s=LB.NomeDoCampo(0)
LB.Ordena(campo_de_ordenação)LB.Ordena(campo_de_ordenação)
Ordena os registros filtrados utilizando o campo de ordenação especificado.
Ex: LB.Ordena("TEMPO")
LB.FechaBanco(banco)LB.FechaBanco(banco)
Fecha o banco especificado.
Ex: LB.FechaBanco(banco)
LB.FechaLB.Fecha
Fecha o banco atual.
Ex: LB.Fecha
LB.TabelaLB.Tabela
Apresenta a tabela de edição do banco.
Ex: LB.Tabela
LB.TabelaDoLB(banco,texto,data)LB.TabelaDoLB(banco,texto,data)
Retorna o nome da tabela do LB sem abrir o banco. Texto e data são parâmetros opcionais para o nome
da tabela.Ex: s=LB.TabelaDoLB("Banco.LB","",0)
LB.PastaDoLB(banco,pastadefault)LB.PastaDoLB(banco,pastadefault)
Retorna a pasta dos arquivos de dados sem abrir o banco. Pastadefault é a pasta que será colocada no
lugar de "<.>".
Ex: s=LB.PastaDoLB("Banco.LB",App.AplPath)
LB.Mostra(largura,altura,campos,pesquisa,alterar,adicionar,imprimir,utilizarpesquisa)LB.Mostra(largura,altura,campos,pesquisa,alterar,adicionar,imprimir,utilizarpesquisa)
Mostra a janela para listagem ou edição dos dados de um banco.
Ex: LB.Mostra(565,383,"TESTE.LB","",0,0,1,0)
91
Objeto IniObjeto Ini
Ini.ReadNumberIni.ReadNumber
A função Ini.ReadNumberIni.ReadNumber ( arquivoini , sessão , campo , valordefault )
O método ReadNumberReadNumber do objeto IniIni lê um valor numérico dentro de um campo numa sessão do
arquivoini .
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Ini.
Exemplo:Exemplo:
xx == Ini.ReadNumberIni.ReadNumber (( App.PathApp.Path ++ "TESTE.INI""TESTE.INI",, "CONFIGURAÇÃO""CONFIGURAÇÃO",, "Altura""Altura",, 00 ))
Ini.ReadStringIni.ReadString
texto = Ini.ReadStringIni.ReadString ( arquivoini , sessão , campo , valordefault )
O método ReadStringReadString do objeto IniIni retorna o valor texto lido a partir de um campo dentro de um sessão
no arquivoini .
Script visual:Script visual:Objeto "comandos". Tipo Comandos. Item Ini.
Exemplo:Exemplo:
ss == Ini.ReadStringIni.ReadString (( App.PathApp.Path ++ "TESTE.INI""TESTE.INI",, "CONFIGURAÇÃO""CONFIGURAÇÃO",, "Título""Título",, """" ))
Ini.WriteStringIni.WriteString
Comando Ini.WriteStringIni.WriteString ( arquivoini , sessão , campo , valor )
O método WriteStringWriteString do objeto IniIni escreve um valor texto dentro de um campo numa sessão do
arquivoini .
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Ini.
Exemplo:Exemplo:
Ini.WriteStringIni.WriteString (( App.PathApp.Path ++ "TESTE.INI""TESTE.INI",, "CONFIGURAÇÃO""CONFIGURAÇÃO",, "Título""Título",, "Aplicação X""Aplicação X" ))
Ini.WriteNumberIni.WriteNumber
Comando Ini.WriteNumberIni.WriteNumber ( arquivoini , sessão , campo , valor )
O método WriteNumberWriteNumber do objeto IniIni escreve um valor numérico dentro de um campo numa sessão do
arquivoini .
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Ini.
Exemplo:Exemplo:
Ini.WriteNumberIni.WriteNumber (( App.PathApp.Path ++ "TESTE.INI""TESTE.INI",, "CONFIGURAÇÃO""CONFIGURAÇÃO",, "Altura""Altura",, 100100 ))
92
Objeto ArquivoTextoObjeto ArquivoTexto
O objeto ArquivoTextoArquivoTexto contém as propriedades e métodos necessários para a manipulação de arquivos
texto.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item ArquivoTexto.
Exemplo 1:Exemplo 1:
Exemplo 2:Exemplo 2:
Propriedades e métodos disponíveis no objeto ArquivoTextoPropriedades e métodos disponíveis no objeto ArquivoTexto:
AbreAbre (arquivo ):
Abre o arquivo e retorna seu handle. n = ArquivoTexto.Abre("teste.txt")
FechaFecha (harquivo ):
Fecha o arquivo. ArquivoTexto.Fecha( n )
EofEof [(harquivo )]:
Retorna True se chegou o fim do arquivo texto. Fim = ArquivoTexto.Eof
LeLe [(harquivo )]:
Lê e retorna uma linha de texto. texto = ArquivoTexto.Le
GravaGrava ( [harquivo,] texto ):
Grava uma linha de texto.
AcrescentaAcrescenta ( [harquivo,] texto ):
Acrescenta (append) uma linha de texto.
93
Objeto ArquivoBinObjeto ArquivoBin
O objeto ArquivoBinArquivoBin contém as propriedades e métodos necessários para a manipulação de arquivos
binários de formato livre. É possível ler ou gravar blocos de memória de qualquer tamanho.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item ArquivoBin.
Exemplo 1:Exemplo 1:
Exemplo 2:Exemplo 2:
Propriedades e métodos disponíveis no objeto ArquivoBinPropriedades e métodos disponíveis no objeto ArquivoBin:
AbreAbre (arquivo ):
Abre o arquivo e retorna seu handle. n = ArquivoBin.Abre("teste.bin")
FechaFecha (harquivo ):
Fecha o arquivo. ArquivoBin.Fecha( n ) RegistrosRegistros (harquivo ):
Retorna o número de bytes do arquivo. r = ArquivoBin.Registros( n )
PosicaoPosicao (harquivo ):
Posiciona o arquivo no byte especificado. ArquivoBin.Posicao (n) = 31
LeBlocoLeBloco ( harquivo, ponteiro , tam ):
Lê um bloco de bytes e armazena na memória apontada pelo ponteiro.
GravaBlocoGravaBloco ( harquivo, ponteiro , tam ):
Grava um bloco de bytes armazenados na memória apontada pelo ponteiro.
LeLe (harquivo ):
Lê e retorna apenas um byte.
GravaGrava (harquivo ):
Grava apenas um byte.
94
Objeto DialogObjeto Dialog
O objeto DialogDialog contém as janelas para a entrada de nomes de arquivos por parte do usuário.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Arquivos.
Métodos disponíveis no objeto DialogMétodos disponíveis no objeto Dialog:
OpenOpen [ (caminhoinicial [, filtro ] ) ]:
Apresenta uma janela para a entrada de um arquivo a ser aberto.
SaveSave [ (caminhoinicial [, filtro ] ) ]:
Apresenta uma janela para a entrada de um arquivo a ser gravado.
Tando o método OpenOpen como o método SaveSave retornam o nome do arquivo digitado ou escolhido. Se o textoretornado for vazio então significa que o usuário cancelou a operação.
Exemplo:Exemplo:
DimDim nomenome
nome =nome = Dialog.OpenDialog.Open (( App.Path,App.Path, "Arquivos Texto (*.txt)|*.txt|Todos os Arquivos (*.*)|*.*""Arquivos Texto (*.txt)|*.txt|Todos os Arquivos (*.*)|*.*" ))
If NotIf Not (( nome ==nome == """" )) ThenThen ' Se o usuário não cancelou
ArquivoTexto.AbreArquivoTexto.Abre (( nomenome )) ' Utiliza o arquivo definido pela variável nomenome
......
......
End IfEnd If
FileExistsFileExists
valor = FileExistsFileExists ( arquivo )
Retorna True se o arquivo especificado existe.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Arquivos.
Exemplo:Exemplo:
xx == FileExistsFileExists (( App.PathApp.Path ++ "arquivo.dat""arquivo.dat" ))
se este arquivo existe então xx recebe o valor True.
KillKill
Comando KillKill ( arquivo )
Apaga o arquivo especificado do disco.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Arquivos.
Exemplo:Exemplo:
KillKill (( App.PathApp.Path ++ "arquivo.dat""arquivo.dat" ))
95
Funções de textoFunções de texto
Função ValFunção Val
x = ValVal ( texto )
A função ValVal retorna o valor numérico correspondente ao texto.
Script visual:Script visual: Objeto "comandos" . Tipo Comandos. Item Texto.
Exemplo:Exemplo:
Função CStrFunção CStr
texto = CStrCStr ( número )
A função CStrCStr retorna o texto correspondente a um valor numérico.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
Exemplo:Exemplo:
96
Função MidFunção Mid
texto resultante = MidMid ( texto, posição inicial, posição final )
A função MidMid retorna uma parte do texto. Exemplo: MidMid ("Palavra",3,5) retorna os caracteres de 3 a 5, ou
seja, "lav".
A posição 1 é o primeiro caracter, a posição 2 é o segundo, e assim por diante.
Exemplo:Exemplo:
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
Função CopyStringFunção CopyString
texto resultante = CopyStringCopyString ( texto, posição inicial, n )
A função CopyStringCopyString retorna uma cópia dos n caracteres à partir da posição inicial indicada.
Exemplo:Exemplo:
ss == CopyStringCopyString (( "Teste da função CopyString""Teste da função CopyString",, 1010,, 66 ))
Retorna em ss a palavra "função".
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
Função LeftSFunção LeftS
texto resultante = LeftSLeftS ( texto, n )
A função LeftSLeftS retorna uma cópia dos n caracteres à esquerda do texto.
Exemplo:Exemplo:
ss == LeftSLeftS (( "Teste da função left""Teste da função left",, 55 ))
Retorna em ss a palavra "Teste".
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
97
Função RightSFunção RightS
texto resultante = RightSRightS ( texto, n )
A função RightSRightS retorna uma cópia dos n caracteres à direita do texto.
Exemplo:Exemplo:
ss == RightSRightS (( "Teste da função""Teste da função",, 66 ))
Retorna em ss a palavra "função".
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
Função DeleteStringFunção DeleteString
texto resultante = DeleteStringDeleteString ( texto, posição inicial, n )
A função DeleteStringDeleteString retorna uma cópia do texto eliminando n caracteres à partir da posição inicial.
Exemplo:Exemplo:
ss == DeleteStringDeleteString (( "Teste da função""Teste da função",, 77,, 33 ))
Retorna em ss o texto "Teste função".
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
Função BytesToStrFunção BytesToStr
string = BytesToStrBytesToStr ( byte1, byte2, byte3, ... )
A função BytesToStrBytesToStr retorna um texto (string) com os bytes indicados. Este string funciona como uma
memória ou um pacote de bytes. É usado para comunicação ou tratamento de dados binários.
Exemplo:Exemplo:
ss == BytesToStrBytesToStr (( 00,, 55,, canalcanal,, &HF3&HF3,, 1313,, 1010 ))
Script visual:Script visual: Objeto "comandos". Tipo Comandos.Item Texto.
98
Função LenFunção Len
A função LenLen retorna o número caracteres na variável texto.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
Exemplo:Exemplo:
Função InStrFunção InStr
posição = InStrInStr ( texto, expressão )
A função InStrInStr retorna a posição de uma expressão dentro de uma variável ou constante texto .
Se a expressão não for encontrada então a posição é 0.
A posição 1 é o primeiro caracter, a posição 2 é o segundo, e assim por diante.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
Exemplo:Exemplo:
Se desejar procurar a partir de uma posição inicial use:
posição = InStrPosInStrPos ( posição inicial, texto, expressão )
Função StrToNumberFunção StrToNumber
número = StrToNumberStrToNumber ( texto, posição inicial, posição final )
A função StrToNumberStrToNumber converte parte de um texto (string como seqüência de bytes) para número byte,
word ou long.
Exemplo:Exemplo:
xx == StrToNumberStrToNumber (( ss,, 55,, 66 ))
Retorna em xx no formato word (2 bytes) o valor determinado pelos bytes 5 e 6 do string ss.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
99
Função NumberToStrFunção NumberToStr
string = NumberToStrNumberToStr ( número [,bytes] )
A função NumberToStrNumberToStr converte um número para texto (string) como uma seqüência de bytes, word ou
long. Este string funciona como uma memória ou um pacote de bytes. É usado para comunicação ou
tratamento de dados binários.
Exemplo:Exemplo:
ss == """"
ss == NumberToStrNumberToStr (( xx,, 22 ))
Retorna em ss dois bytes do valor xx no formato wordword.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
Função FormatFunção Format
texto = FormatFormat ( número, formato )
A função FormatFormat retorna, a partir de um número, um texto no formato especificado.
Exemplo: x = now (agora), mas a variável s receberá a número x no formato dd/mm/yyyy (dia, mês e ano).
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
Exemplos:Exemplos:
100
Função IntToHexFunção IntToHex
A função IntToHexIntToHex retorna um número no formato hexa-decimal (texto).
No caso, 12408767 com seis dígitos equivale a "CC99FF".
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
Exemplo:Exemplo:
IntToBinIntToBin
s = IntToBin (IntToBin ( número, dígitos ))
A função IntToBinIntToBin retorna um número no formato binário em texto.
No caso, 12408767 com 24 dígitos (bits) equivale a "101111010101011110111111".
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
Exemplo:Exemplo:
ss == """"
ss == IntToBinIntToBin (( 1240876712408767,, 2424 ))
A variável ss fica sendo 101111010101011110111111.
Função HexToIntFunção HexToInt
A função HexToIntHexToInt retorna o valor numérico correspondente ao número no formato hexa-decimal (texto).
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
Exemplo:Exemplo:
Se quiser digitar diretamente no código utilize &H&H. Exemplo xx == &HCC99FF&HCC99FF
101
Função ChrFunção Chr
caracter = ChrChr ( número )
A ChrChr retorna o caracter texto correspondente ao seu número ANSI (1 a 255).
Exemplo: 65 equivale a "A".
Script visual:Script visual: Selecione o objeto "comandos" e clique sobre o editor. Aparecerá uma janela com "tags",
objetos e comandos. Escolha o tipo Comandos. Depois escolha Texto e em seguida o comando desejado.
Clique em OK.
Exemplos:Exemplos:
Função OrdFunção Ord
A função OrdOrd retorna o número ANSI correspondente ao caracter especificado.
Exemplo: "A" equivale a 65.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
Exemplo:Exemplo:
Função TrimFunção Trim
texto = TrimTrim ( expressão )
A função TrimTrim retorna um texto retirando todos os espaços em branco à direita e à esquerda da expressão
texto.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
Exemplo:Exemplo:
102
Função UpCaseFunção UpCase
TextoMaiúsculo = UpCaseUpCase ( texto )
A função UpCaseUpCase retorna o texto com suas letras maiúsculas.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
TextoBytesTextoBytes
texto = TextoBytesTextoBytes ( expressão )
A função TextoBytesTextoBytes (ou HexTextHexText) retorna um texto como uma seqüência de números no formato
hexadecimal (com dois dígitos cada um) representando os bytes correspondentes aos caracteres da
expressão .
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Texto.
Exemplo:Exemplo:
103
Funções matemáticasFunções matemáticas
F1GF1G
y = F1GF1G ( x1, y1, x2, y2, x )
Retorna o valor y correspondente ao x conforme uma função do primeiro grau definida pelos dois pontos
(x1,y1) e (x2,y2).
Script visual:Script visual: Objeto "comandos" . Tipo Comandos. Item Matemática.
Exemplo:Exemplo:
xx == F1GF1G (( 00,, 2020,, 100100,, 4040,, 5050 ))
no exemplo acima a variável xx recebe o valor 30.
RndRnd
A função RndRnd retorna um valor aleatório de 0 a 1.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
Exemplo 1:Exemplo 1:
Exemplo 2:Exemplo 2:
RandomizeRandomize
O comando RandomizeRandomize é opcional. Este comando inicializa uma variável interna para a geração de
números aleatórios através da função Rnd.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
104
IntInt
valor = IntInt ( x )
A função IntInt retorna a parte inteira do número especificado "x".
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
Exemplo 1:Exemplo 1:
Exemplo 2:Exemplo 2:
FracFrac
valor = FracFrac ( x )
A função FracFrac retorna a parte fracionária de x.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
Exemplo:Exemplo:
yy == FracFrac (( 5.436721235.43672123 ))
no exemplo acima a variável yy recebe o valor 0.43672123.
RoundRound
valor = RoundRound ( x )
A função RoundRound retorna o número especificado "x" arredondado para o próximo inteiro.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
Exemplo 1:Exemplo 1:
yy == RoundRound (( 7.855247897.85524789 ))
no exemplo acima a variável yy recebe o valor 8.
GetDecimalsGetDecimals
valor = GetDecimalsGetDecimals ( x )
A função GetDecimalsGetDecimals retorna o número de casas decimais do número x.
Exemplo 1:Exemplo 1:
yy == GetDecimalsGetDecimals (( 7.12347.1234 ))
no exemplo acima a variável yy recebe o valor 4.
105
ModMod
A função ModMod retorna o resto de uma divisão entre os dois números especificados.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
PIPI
A função PIPI retorna o valor do número pi (3,14...).
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
SinSin
A função SinSin retorna o seno do número especificado em radianos.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
CosCos A função CosCos retorna o cosseno do número especificado em radianos.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
PowerPower
resultado = Power ( x, y )
A função PowerPower retorna o resultado do número "x" elevado a "y".
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
SqrtSqrt
valor = SqrtSqrt ( x )
Retorna o valor da raiz quadrada de x.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
Exemplo:Exemplo:
xx == SqrtSqrt (( 44 ))
no exemplo acima a variável xx recebe o valor 2.
106
ExpExp
resultado = ExpExp ( x )
A função ExpExp retorna o resultado do número ee (2,71828183) elevado a "x".
Scriptvisual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
Exp10Exp10
valor = Exp10Exp10 ( x )
A função Exp10Exp10 retorna o resultado de 10 elevado a x.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
Exemplo:Exemplo:
xx == Exp10Exp10 (( 33 ))
no exemplo acima a variável xx recebe o valor 1000.
LogLog
resultado = LogLog ( x )
A função LogLog retorna o resultado do logaritmo de x na base dez.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
LnLn
resultado = LnLn ( x )
A função LnLn retorna o resultado do logaritmo neperiano de x.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
SgnSgn
valor = SgnSgn ( x )
A função SgnSgn retorna o sinal de x. Se x é negativo então SgnSgn retorna -1. Se x é positivo então SgnSgn retorna
1.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
Exemplo:Exemplo:
yy == 00 -- 44
xx == SgnSgn (( yy ))
no exemplo acima a variável xx recebe o valor -1.
TrocaTroca
resultado = TrocaTroca ( valoratual,valor1,valor2 )
A função TrocaTroca retorna alternadamente o valoratual trocado entre valor1 e valor2. Os valores, assim como
o resultado, podem ser números ou textos.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Matemática.
107
Funções de bitsFunções de bits
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Bits.
Bits(número, bit [, bit2])Bits(número, bit [, bit2])
A função BitsBits retorna o valor do bit ou da faixa de bits sobre um número.
Exemplo:Exemplo: xx == BitsBits((yy,, 33)) (retorna o bit 3 da variável y)
Bytes(número, n)Bytes(número, n)
A função BytesBytes retorna ennésimo byte do número.
Exemplo: xx == BytesBytes((ylongylong,, 11)).
BitsAND(número1, número2)BitsAND(número1, número2)
A função BitsANDBitsAND retorna o resultado da operação AND sobre dois números.
BitsOR(número1, número2)BitsOR(número1, número2)
A função BitsORBitsOR retorna o resultado da operação OR sobre dois números.
BitsSHL(número, número de bits)BitsSHL(número, número de bits)
A função BitsSHLBitsSHL retorna o resultado da operação SHL sobre um número.
BitsSHR(número, número de bits)BitsSHR(número, número de bits)
A função BitsSHRBitsSHR retorna o resultado da operação SHR sobre um número.
BitsNOT(número)BitsNOT(número)
A função BitsNOTBitsNOT retorna o resultado da operação NOT sobre um número.
BitsXOR(número1, número2)BitsXOR(número1, número2)
A função BitsXORBitsXOR retorna o resultado da operação XOR sobre dois números.
108
Funções de tempoFunções de tempo
Objeto TimerObjeto Timer
O objeto TimerTimer é um contador que retorna o número correspondente ao tempo em milisegundos a partir
de um Timer.ResetTimer.Reset. Esta função é muito útil para fazer contagem de tempo como no exemplo abaixo:
Timer.ResetTimer.Reset
......
While TimerWhile Timer << 70007000 ' Enquanto Timer for menor que 7 segundos' Enquanto Timer for menor que 7 segundos
...... ' Processo' Processo
WEndWEnd
Pode-se criar vários Timers atribuindo nomes:
x = TimerTimer.<nome>[.Reset.Reset]
Exemplo:
Timer.Relogio1.ResetTimer.Relogio1.Reset
......
While Timer.Relogio1While Timer.Relogio1 << 70007000 ' Enquanto Timer for menor que 7 segundos' Enquanto Timer for menor que 7 segundos
...... ' Processo' Processo
WEndWEnd
Script visual:Script visual: Objeto "comandos" . Tipo Comandos. Item Tempo.
Objeto ClockObjeto Clock
O objeto ClockClock é um contador semelhante ao Timer, mas retorna a data/hora em formato double. A
contagem é disparada a partir de um Clock.ResetClock.Reset. Esta função é muito útil para fazer contagem de tempo
como no exemplo abaixo:
Clock.ResetClock.Reset
...... ' Processo' Processo
xx == ClockClock
ss == """"
ss == FormatFormat ( x,( x, "hh:nn:ss""hh:nn:ss" )) ' Retorna o tempo corrido' Retorna o tempo corrido
' no ' no formato formato hora minuto hora minuto segundosegundo
Pode-se criar vários Timers atribuindo nomes:
x = ClockClock.<nome>[.Reset.Reset]
Exemplo:
Clock.Relogio1.ResetClock.Relogio1.Reset
......
If Clock.Relogio1If Clock.Relogio1 << StrToTimeStrToTime (( "03:07:00""03:07:00" )) ThenThen ' Se Clock for menor que' Se Clock for menor que
' 3 horas e 7 minutos' 3 horas e 7 minutos
...... ' Processo' Processo
End IfEnd If
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Tempo.
109
NowNow
A função NowNow retorna o dia, mês, ano, hora, minuto, segundo e milisegundo atual em apenas um número
(double).
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Tempo.
xx == NowNow
MsgBoxMsgBox (( FormatFormat (( x,x, "dd/mm/yyyy hh:nn:ss""dd/mm/yyyy hh:nn:ss" )) )) ' Mostra a data hora no formato' Mostra a data hora no formato
' exemplo: 01/07/2006 03:10:07' exemplo: 01/07/2006 03:10:07
...
A parte inteira é o número de dias. A parte fracionária contém as horas minutos e segundos.
1 hora é 1 / 24 = 0.0416....
1 minuto é 1 / 24 / 60 = 6.94... E-4
1 segundo é 1 / 24 / 60 / 60 = 1,157407...E-5
1 milissegundo é 1 / 24 / 60 / 60 / 1000 = 1,157407...E-8
...
Day(datanúmero)Day(datanúmero)
A função DayDay retorna o número correspondente ao dia a partir de uma variável tempo conforme o exemplo
abaixo.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Tempo.
xx == DayDay((nownow))
Month(datanúmero)Month(datanúmero)
A função MonthMonth retorna o número correspondente ao mês a partir de uma variável tempo conforme o
exemplo abaixo.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Tempo.
xx == MonthMonth((nownow))
Year(datanúmero)Year(datanúmero)
A função YearYear retorna o número correspondente ao ano a partir de uma variável tempo conforme o
exemplo abaixo.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Tempo.
xx == YearYear((nownow))
110
HourHour
A função HourHour retorna o número correspondente à hora a partir de uma variável tempo conforme o
exemplo abaixo.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Tempo.
MinuteMinute
A função MinuteMinute retorna o número correspondente ao minuto a partir de uma variável tempo conforme o
exemplo abaixo.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Tempo.
xx == MinuteMinute((nownow))
SecondSecond
A função SecondSecond retorna o número correspondente ao segundo a partir de uma variável tempo conforme
o exemplo abaixo.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Tempo.
xx == SecondSecond((nownow))
ObservaçãoObservação: Da mesma forma é possível retornar o tempo em milisegundos com a função MiliSecondMiliSecond.
WeekDayWeekDay
A função WeekDayWeekDay retorna o número correspondente ao dia da semana a partir de uma variável tempo
conforme o exemplo abaixo.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Tempo.
xx == WeekDayWeekDay((nownow))
StrToTimeStrToTime
A função StrToTimeStrToTime retorna o número correspondente ao horario a partir de uma variável texto.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Tempo.
Se a variável texto s for um horário (exemplo "15:03:05") ou uma data (exemplo "01/01/2006") a função
retorna um número no formato tempo double.
tt == StrToTimeStrToTime (( ss ))
111
DateToNumberDateToNumber
x = DateToNumber (x = DateToNumber ( dia,mês,ano ))
A função DateToNumberDateToNumber retorna o número correspondente à data definida pelos valores dia, mês e ano.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Tempo.
Exemplo:Exemplo:
tt == DateToNumberDateToNumber (( 11,, 77,, 66 ))
A variável t recebe a data 01/07/2006 no formato double.
Delay ou SleepDelay ou Sleep
O comandoDelayDelay ou SleepSleep força um pausa durante um tempo especificado em milisegundos.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Tempo.
112
Funções de aplicativoFunções de aplicativo
App.StopApp.Stop
Método App.StopApp.Stop
O método StopStop do objeto AppApp interrompe a execução do LAquis e fecha o programa.
Script visual:Script visual: Objeto "comandos" . Tipo Comandos. Item Aplicativo.
App.PathApp.Path
caminho = App.PathApp.Path
A propriedade PathPath do objeto AppApp retorna a pasta onde se encontra o executável do LAquis.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Aplicativo.
App.ExeNameApp.ExeName
caminho = App.ExeNameApp.ExeName
A propriedade ExeNameExeName do objeto AppApp retorna o nome completo mais a pasta de onde foi executado o
LAquis.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Aplicativo.
App.APLNameApp.APLName
caminho = App.APLNameApp.APLName
A propriedade APLNameAPLName do objeto AppApp retorna o nome do arquivo APL ou LQS (aplicação) que está
sendo utilizado.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Aplicativo.
App.APLPathApp.APLPath
caminho = App.APLPathApp.APLPath
A propriedade APLPathAPLPath do objeto AppApp retorna a pasta do arquivo APL ou LQS (aplicação) que está sendo
utilizado.Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Aplicativo.
113
App.TitleApp.Title
caminho = App.TitleApp.Title
A propriedade TitleTitle do objeto AppApp define o título ou o nome da aplicação. Este nome será escrito sobre o
ícone na barra de tarefas e na lista de tarefas do Windows.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Aplicativo.
App.PriorityApp.Priority
Propriedade App.PriorityApp.Priority
A propriedade PriorityPriority do objeto AppApp define a prioridade do programa LAquis em relação aos outros
aplicativos que estão sendo executados ao mesmo tempo no sistema operacional.
Se Priority for 0 então o LAquis tem prioridade normal. Se for de nível 1 então o LAquis terá uma
prioridade um pouco maior em relação aos outros aplicativos que estão sendo executados ao mesmo
tempo. Se a propriedade Priority for 2 então o LAquis terá grande prioridade sobre os outros programas e
estes comprometerão bem menos o desempenho do LAquis.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Aplicativo.
App.PortConfigApp.PortConfig
caminho = App.PortConfigApp.PortConfig
A propriedade PortConfigPortConfig do objeto AppApp invoca a janela de configuração da porta serial.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Aplicativo.
App.ContinuousReadingApp.ContinuousReading
caminho = App.ContinuousReadingApp.ContinuousReading
A propriedade ContinuousReadingContinuousReading do objeto AppApp indica se a opção leitura contínua está ativada.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Aplicativo.
DoEventsDoEvents
Comando DoEventsDoEvents
O comando DoEventsDoEvents permite que o sistema operacional execute as operações e mensagens pendentes.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Aplicativo.
114
Funções de comunicaçãoFunções de comunicação
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Comunicação.
Planilha.ExecuteDriver(linha, parametro)Planilha.ExecuteDriver(linha, parametro)
Execute o driver associado à linha especificada da planilha de “tags” utilizando o parâmetro informado.
Retorna o valor lido.
Ex: xx == planilha.ExecuteDriverplanilha.ExecuteDriver((77,,128128))
Planilha.ExecuteDriverIndependente(Planilha.ExecuteDriverIndependente(
nome nome do do driver, driver, config, config, param1, param1, param2,param2,
reservado, comando, canal, parâmetro, valor )reservado, comando, canal, parâmetro, valor )
Executa o driver especificado independentemente do “tag” ou linha da planilha e retorna o valor lido.
Parâmetros:
driver :
Nome do driver que será executado. Exemplo "MODBUS.ldriver".
config :
Configuração da comunicação. Exemplo porta:velocidade,paridade,dados,stop.
Param1:
Depende do driver. Geralmente indica qual a variável que será lida ou escrita no
equipamento.
Param2 :
Depende do driver. Geralmente indica qual o nó ou endereço da rede do
equipamento.
comando : Número correspondente ao tipo de ação do driver. Os comandos básicos são:
0: Inicialização do driver
1: Leitura
2: Escrita
3: Número de parâmetros
1000: Finalização do driver
outros comandos existentes são específicos de cada driver.
canal :
Endereço do equipamento quando ldriver25 ou ld versão < 2.5.
parâmetro :
Variável lida ou escrita no equipamento quando ldriver25 ou ld versão < 2.5.
valor :
O valor a ser enviado ao driver. Geralmente o valor a ser gravado na variável
especificada no equipamento.
Ex:
xx==planilha.ExecuteDriverIndependenteplanilha.ExecuteDriverIndependente(("MODBUS.ldriver""MODBUS.ldriver",,"1:9600,N,8,1""1:9600,N,8,1",,"400001""400001",,00,,"""",,11,,11,,00,,00))
Opcionalmente à estes comandos acesse diretamente os "tags" para esta operação, ou execute o
comando de atualização (Exemplo x1.atualizax1.atualiza) para forçar a leitura do equipamento relativo ao “tag”.+
115
As funções a seguir são usadas principalmente para drivers LD em script texto:
OpenComOpenCom
O comando OpenComOpenCom é usado para abrir a porta de comunicação COM utilizando o sistema operacional.
Uma vez usando este comando todas as leituras e gravações na porta serão realizadas através das
funções API do sistema. Este comando é útil, por exemplo, quando o sistema operacional é NT e existe
um bloqueio no acesso direto às portas. Também, às vezes as portas COM 3 e 4 estão disponíveis
apenas através do comando OpenCom. O número da porta é definido na variável PortaPorta. Para fechar o uso
da porta é necessário utilizar o comando CloseComCloseCom.
OpenDevice(nome)OpenDevice(nome)
O comando OpenDeviceOpenDevice é parecido com OpenComOpenCom. A diferença é que o nome do dispositivo é
informado. Para fechar o uso da porta é necessário utilizar o comando CloseDeviceCloseDevice.
Exemplo: OpenDeviceOpenDevice((“COM3”“COM3”))
ConfComConfCom
O comando ConfComConfCom configura a porta (definida na variável PortaPorta) no que diz respeito à velocidade
(Baud), paridade, bits de dados e bits de stop.
Exemplo: ConfComConfCom(("9600,N,8,1""9600,N,8,1"))
PoeCom (WriteCom)PoeCom (WriteCom)
Comando PoeComPoeCom ( texto )
O comando PoeComPoeCom (WriteCom) envia um conjunto de bytes (texto ) para uma porta de comunicação
definida pela variável PortaPorta conforme o exemplo abaixo.
116
LeCom (ReadCom)LeCom (ReadCom)
resposta = LeComLeCom ( número máximo de bytes )
A função LeComLeCom (ReadComReadCom) retorna um conjunto de bytes lidos de uma porta de comunicação definida
pela variável PortaPorta conforme o exemplo abaixo:
CloseComCloseCom
O comando CloseComCloseCom fecha e libera a porta de comunicação aberta pelo comando OpenComOpenCom.
CloseDevice(nome)CloseDevice(nome)
O comando CloseDeviceCloseDevice fecha e libera a porta de comunicação aberta pelo comando OpenDeviceOpenDevice.
CloseAllDeviceCloseAllDevice
Fecha todos os dispositivos abertos
x = DeviceID(nome)x = DeviceID(nome)
Retorna e torna "default" o handle do nome do "device" atual ou do informado nome informado.Ex: idid==DeviceIDDeviceID(("COM3""COM3")).
IO.PortIO.Port
A propriedade IO.PortIO.Port lê ou envia um byte diretamente a uma porta externa do computador.
117
Funções de janelas de mensagensFunções de janelas de mensagens
InputInput
A função InputInput apresenta uma janela simples para entrada de dados e retorna o texto digitado pelo
usuário.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Especial.Exemplo 1:Exemplo 1:
Exemplo 2:Exemplo 2:
AskAsk
A função AskAsk apresenta uma caixa de mensagem com os botões Sim e Não . Retorna True ou False
dependendo da resposta dada pelo usuário.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Especial.
MsgBoxMsgBox
O comando MsgBoxMsgBox apresenta uma caixa de texto para informações ao usuário.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Saída.
Exemplo 1:Exemplo 1:
Exemplo 2:Exemplo 2:
118
Objeto GRIDObjeto GRID
O objeto GridGrid permite acessar a planilha LGX da janela de relatórios.
Grid.Abre(arquivoLGX[,x,y])Grid.Abre(arquivoLGX[,x,y])
Abre uma janela com a planilha LGX.
DesligaDesliga
Fecha a janela com a planilha LGX.
Prepara(arquivo)Prepara(arquivo)
Prepara sem mostrar a janela com a planilha LGX. É usado para permitir a utilização do comando Cells.
Grid.Mostra(x,y[,z])Grid.Mostra(x,y[,z])
Mostra a janela com a planilha LGX.
Grid.Cells(x,y)Grid.Cells(x,y)
Valor da célula em formato texto da coluna X e da linha Y da planilha LGX.
Grid.Cellsn(x,y)Grid.Cellsn(x,y)
Valor da célula em formato númerico da coluna X e da linha Y da planilha LGX.
Grid.ColGrid.Col
Coluna atual do cursor na planilha LGX.
Grid.RowGrid.Row
Linha atual do cursor na planilha LGX.
CalculaCalcula
Executa o cálculo da planilha LGX.
Grid.TipoModalGrid.TipoModal
Se TipoModal for 1 a janela, quando aparecer não permitirá que o processo continue, até sair da mesma.
119
Comandos principais da planilha de relatóriosComandos principais da planilha de relatórios
Celula(coluna,linha)Celula(coluna,linha): Lê ou altera o valor da célula texto.
CelulaN(coluna,linha)CelulaN(coluna,linha): Lê ou altera o valor da célula número.
Colunas:Colunas: Retorna o número de colunas.
LinhasLinhas: Retorna o número de linhas.
Largura(coluna):Largura(coluna): Largura da coluna.
Altura(linha):Altura(linha): Altura da linha.
Coluna:Coluna: Número da coluna atual do cursor.
Linha:Linha: Número da linha atual do cursor.
LimparPlanilha(coluna1,linha1,coluna2,linha2) :LimparPlanilha(coluna1,linha1,coluna2,linha2) :Limpa as células da faixa especificada na planilha.
LimparFormato(coluna1,linha1,coluna2,linha2) :LimparFormato(coluna1,linha1,coluna2,linha2) :Limpa o formato das células da faixa especificada.
Apagalinha(linha) :Apagalinha(linha) : Elimina a linha especificada.
InsereColuna(coluna) :InsereColuna(coluna) : Insere uma coluna vazia no local especificado.
InsereLinha(linha) :InsereLinha(linha) : Insere uma linha vazia no local especificado.
DesenhaSempre:DesenhaSempre: Propriedade da planilha 1 ou 0. Se 1 a planilha é redesenhada a cada alteração.
ReDesenha:ReDesenha: Força o desenho da planilha.
PausaCalculo:PausaCalculo: Pára de executar o cálculo. Calcula:Calcula: Força a execução do cálculo.
LarguraDoTexto(texto):LarguraDoTexto(texto): Retorna a largura do texto especificado.
CelulaNome(nome):CelulaNome(nome): Lê ou altera o valor da célula texto pelo nome.
CelulaNNome(nome):CelulaNNome(nome): Lê ou altera o valor da célula número pelo nome.
Color(coluna,linha):Color(coluna,linha): Cor da célula.
Font.Color(coluna,linha):Font.Color(coluna,linha): Cor da fonte da célula.
Font.Size(coluna,linha):Font.Size(coluna,linha): Tamanho da fonte da célula.
Font.Bold(coluna,linha):Font.Bold(coluna,linha): Célula em negrito.
Formato(coluna,linha):Formato(coluna,linha): Retorna ou define o formato da célula especificada.
Alignment(coluna,linha):Alignment(coluna,linha): Retorna ou define o alinhamento da célula especificada.
Bloqueado(coluna,linha):Bloqueado(coluna,linha): Retorna ou define se a célula está bloqueada.
Calendario(coluna,linha) :Calendario(coluna,linha) : Executa o calendário para alteração do valor da célula especificada.
Formula(coluna,linha):Formula(coluna,linha): Retorna ou define a fórmula da célula especificada.
Borda(coluna1,linha1,coluna2,linha2,borda,cor) :Borda(coluna1,linha1,coluna2,linha2,borda,cor) :Atributos das bordas de uma faixa de células.
RowSelect:RowSelect: Tipo do cursor como seleção de linha. (1 ou 0)
LinhaAlterada:LinhaAlterada: Número da linha alterada (exemplo: ao sair da célula – evento OnSairDaCelula).
ColunaAlterada:ColunaAlterada: Número da coluna alterada (exemplo: ao sair da célula – evento OnSairDaCelula).
AceitarAlteracao:AceitarAlteracao: Define se a alteração da célula deve ser efetivada (1 ou 0).
ColunaClicada:ColunaClicada: Retorna o número da coluna clicada (evento OnClick).
LinhaClicada:LinhaClicada: Retorna o número da linha clicada (evento OnClick).
ColunaTexto:ColunaTexto: Retorna o número da coluna do texto a ser alterado no evento OnTexto.
LinhaTexto:LinhaTexto: Retorna o número da linha do texto a ser alterado no evento OnTexto.
CelulaTexto:CelulaTexto: Retorna ou define o valor do texto a ser alterado no evento OnTexto.
Ordena(coluna,tipo,coluna1,linha1,coluna2,linha2) :Ordena(coluna,tipo,coluna1,linha1,coluna2,linha2) :Executa a ordenação de uma faixa de células.
ImportarTxt(arquivo,coluna,linha) :ImportarTxt(arquivo,coluna,linha) : Importa texto de um arquivo.
ExportarTxt(arquivo,coluna,linha,colunas,linhas) :ExportarTxt(arquivo,coluna,linha,colunas,linhas) :Exporta texto de um arquivo.
ColarTexto(texto,coluna1,linha1,coluna2,linha2) :ColarTexto(texto,coluna1,linha1,coluna2,linha2) :Cola texto separado por ”tabs” e “enters”
Veja também o capítulo Planilha para relatórios e análisePlanilha para relatórios e análise.
120
Outras funções e objetosOutras funções e objetos
Execute EventExecute Event
Script texto:Script texto:
ExecuteEvent ( <evento>, <objeto> )ExecuteEvent ( <evento>, <objeto> )
Executa o evento do objeto visual ou script especificado.
EscPressedEscPressed
A função EscPressedEscPressed retorna True se o usuário digitou a tecla ESC .Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item Especial.
VRel.ExecuteVRel.Execute
Comando VRel.ExecuteVRel.Execute [(nome)]
Executa a janela de impressão utilizando opcionalmente como formato de relatório o arquivo .rlvrlv
especificado.
Script visual:Script visual: Objeto "comandos". Tipo Comandos. Item VREL.
Parâmetro:
nome:
Nome do arquivo .rlv.rlv a ser utilizado como formato de relatório.
Exemplo:Exemplo:
VRel.ExecuteVRel.Execute (( "Arquivo1.rlv""Arquivo1.rlv" ))
121
Declare (script texto)Declare (script texto)
Script texto:Script texto:
Declare FunctionDeclare Function <nome> LibLib <dll> AliasAlias <nomeusado> ((<parâmetros>)) AsAs <tipo>
O comando DeclareDeclare permite utilizar bibliotecas DLL dentro do script no LAquis. O formato dos comandos
deve ser stdcall .
Nesta versão do LAquis todas as funções devem retornar algum valor.
ParâmetrosParâmetros:
nome :
Nome da função srcinal.
dll : Nome da biblioteca dll. Pode ser o nome do arquivo entre aspas ou somente o nome principal.
nomeusado :
Nome da função que será usada no script.
parâmetros :
Variáveis com os seus respectivos tipos separadas por vírgula conforme o exemplo.
tipo :
Tipo do retorno da função.
Exemplo:Exemplo:
DeclareDeclare FunctionFunction PoePoe LibLib CCALCCCALC AliasAlias Poe1Poe1 (( ByValByVal canalcanal As WordAs Word,, ByValByVal valorvalor As DoubleAs Double )) AsAs
LongLong
DeclareDeclare FunctionFunction MessageBoxAMessageBoxA LibLib USER32USER32 AliasAlias MessageBoxMessageBox (( ByValByVal Handle1Handle1 AsAs LongLong,, ByValByVal p1p1
AsAs StringString,, ByValByVal p2p2 AsAs StringString,, ByValByVal Handle2Handle2 AsAs LongLong )) AsAs LongLong
DimDim ss
MB_ICONEXCLAMATIONMB_ICONEXCLAMATION = &H30= &H30
x =x = 4040 textotexto == MessageBoxMessageBox (( 00,, "Teste de MessageBox""Teste de MessageBox",, "Título""Título", MB_ICONEXCLAMATION, MB_ICONEXCLAMATION ))
Poe1Poe1 (( 55, x, x ))
Para funções que retornam valores nos parâmetros, declare estas variáveiscom o tipo LongLong e trate-o da
mesma forma que um ponteiro. Utilize o objeto Memory para acessar esta área de memória. Veja um
exemplo abaixo:
Note que o parâmetro texto deveria ser StringString mas na verdade é encarado como se fosse um ponteiro.