Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila de Elipse SCADA
Apostila de Elipse SCADA
ELIPSE SCADA
1º PRÁTICA – PÁG.1
2º PRÁTICA – PÁG.11
3º PRÁTICA – PÁG.16
2
Significado Aplicação.Logout() – pág.24
Acionando um Botão pelas teclas F1,F2,...F12 – pág.24
4º PRÁTICA – PÁG.25
Opção para criar 2 textos com letras de cores diferentes, já que no Script do Objeto Texto não
se tem acesso a cor da letra – pág.25
Script OnValueChanged– pág.25
Opção para que o Objeto Texto apareça após um tempo quando o Tag Demo estiver acima do
limite máximo ou abaixo do limite mínimo.– pág.25
Tag Crono– pág.25
Siginificado .acum– pág.25
Siginificado .Reset ()– pág.27
Script OnRButtonUp– pág.28
Opção para destacar um texto.– pág.28
Opção para destacar um texto quando o mouse estiver sobre ele.– pág.29
Opção para que o Bitmap apareça quando o Tag Crono for maior que um tempo– pág.30
Fluxo repet – until– pág.30
(Nome do Tag Ram) += 1– pág.30
Opção para fazer um objeto ficar visível por um determinado tempo– pág.30
5º PRÁTICA – PÁG.32
6º PRÁTICA – PÁG.39
3
Podemos observar com outro tipo de Tag Demo o efeito causado no movimento o Objeto
Texto– pág.40
Opção para que esse texto fique se movimentando horizontalmente no meio da tela– pág.41
Opção para colocar o texto se movimentando na vertical– pág.41
Significado .y – pág.41
Opção para colocar numa das telas, o usuário que está logado no sistema– pág.41
Opção para visualizar a hora atual– pág.41
Nível de acesso– pág.42
Como realizar um evento de acordo com a hora– pág.42
Objeto Animação– pág.44
Opção para que a animação fique acionada por um evento e fique em movimento– pág.44
Opção para que o Tag Animar comece desabilitado– pág.44
Opção para mudar o sentido de rotação das pás – pág.44
Animação para controlar se um reservatório está sendo preenchido ou secado– pág.44
Significado .highLimit – pág.45
Significado .lowLimit – pág.45
7º PRÁTICA – PÁG.46
4
8º PRÁTICA – PÁG.46
5
INTRODUÇÃO
Coloque na pasta SCADA as pastas Figuras, Driver, Material auxiliar, Exercício, Biblioteca e
Projetos finais.
1ª PRÁTICA
1.0 RESUMO
1.1 APLICAÇÃO
Após abrir o programa, crie uma nova aplicação (Nome: Tutorial_Pratica1) e salve o aplicativo
na pasta SCADA.
Definição:
Tag Ram é uma variável auxiliar no sistema, usada internamente para armazenar valores em
memória. Este tipo de tag é volátil, portanto mantém seus valores somente enquanto a aplicação
está sendo executada.
Para uma melhor organização da criação dessas variáveis,crie um grupo de tags e em seguida crie
uma Tag Ram.
Sequência:
1
Organizer Aplicação TagsNovo Grupo (Nome: Tag_1)Novo Tag Tag Ram
(Nome: tag001)
Definição:
O Objeto Slider é usado para ler ou escrever valores no tag a ele associado.Você pode atribuir
valores ao tag selecionado deslizando o potenciômetro (botão deslizante) ou usando as setas de
direção nas extremidades do Slider. O valor vai variar conforme uma escala definida no objeto.
Você pode editar as propriedades do Slider dando um duplo clique sobre o mesmo.
Tamanho e
Geral Moldura Tags
Pos
Mínimo: 0 X: 100 Efeito 3D: Fora Associar ao Tag Ram
Máximo: 100 Y: 100 Espessura: 5
Sequência:
Passo: 2
TagsAplicação
Marcar: Limites do Largura: 250 Título
TagsTag_1tag001
slider Altura: 70 Texto: Teste
Adicionar
Marcar: Mostrar
2
valor
3
1.4 OBJETO GAUGE
Para verificar as propriedades do Objeto Slider cria-se um Objeto Gauge,que tem a função de
mostrar o valor de variáveis analógicas, associadas a ele, de forma contínua.
4
Geral Avançado Tamanho e Pos Moldura Tags
Mínimo: 0 Marcar: X: 450 Associar ao Tag Ram
Máximo: 100 Grossas Y: 100
Sequência:
Largura: 250 Título:
TagsAplicação
Marcar: Teste
Total Ticks: 5 TagsTag_1tag001
Mostrar Altura: 180 Adicionar
moldura
Definição:
Objeto Bitmap permite inserir imagens, figuras ou desenhos nas telas de sua aplicação, desde que
estejam nos formatos BMP, GIF ou JPEG.Este objeto pode ser redimensionado para ter o mesmo
tamanho da figura e possui suporte a transparência, bastando habilitar e selecionar uma cor.
Grande aliados na criação e edição das figuras de animação ou de estado simples são o Paint e o
Photoshop.
1.5.1 APPBROWSER
O AppBrowser é uma importante ferramenta do Organizer. Ele é composto de uma janela que
apresenta a árvore da aplicação com seus objetos.
5
Definição:
Clicando em qualquer objeto, podem-se visualizar as funções e atributos relacionados a este objeto.
Quando estamos escrevendo um script, um botão Copia no Script fica disponível nesta janela,
permitindo a cópia do atributo ou função em questão para as linhas de programação, facilitando essa
tarefa.
ENDIF
Sequência:
OrganizerAplicaçãoAba ScriptNovoWhileRunning
Vamos usar o App Browser para encontrar o nome da Tag Ram e do Objeto Bitmap.
Sequência:
Na tela acima abra o App Browser Aplicação TagsTag_1tag001Click
, com esse caminho aparecerá o nome da Tag Ram no Script.
6
Para o nome do Bitmap é similar, siga a sequência abaixo:
IF tag001 >=50
Bitmap1.fileName = "C:\Treinamento\Figuras\BotStart.bmp"
ENDIF
7
Ou seja, se o valor da variável for maior ou igual a 50, o Bitmap receberá a Figura Start.
Vejam que existe um erro. O bitmap não recebe a figura, porque esse modo de rodar o aplicativo
não aciona o Script WhileRunning.
Percebe-se que o Bitmap continua sempre na Figura Start. Podemos inserir outra lógica para,
quando o Tag Ram for menor que 50, o Bitmap receber a Figura Stop.
IF tag001 < 50
Bitmap1.fileName = “C:\Treinamento\Figuras\BotStop.bmp”
ENDIF
OU
IF tag001 >=50
Bitmap1.fileName = "C:\Treinamento\Figuras\BotStart.bmp"
ELSE
Bitmap1.fileName = "C:\Treinamento\Figuras\BotStop.bmp"
ENDIF
8
1.6 OBJETO TEXTO
Definição:
O Objeto Texto permite atribuir mensagens a intervalos de valores dos tags, denominados Zonas.
Podem ser definidas diversas zonas cada uma delas contendo sua própria mensagem.
Rode a aplicação.
Sequência:
OrganizerAplicaçãoAba ScriptNovoOnStartRunning
tag001 = 51.
Rode a aplicação
9
Obs2. Opção para fazer um Bitmap aparecer através de um evento.
Crie um Bitmapcom as seguintes configurações:
Geral
Localizar figuras
aerador10.bmp
Click: Tamanho original
Nome: Siga
IF tag001 >= 50
Siga.visible = 1
ELSE
Siga.visible = 0
ENDIF
Sequência:
10
Este tempo que o bitmap leva para aparecer é devido ao tempo de execução do script, que pode ser
configurado no próprio script.
2ª PRÁTICA
2.0 RESUMO
2.1 APLICAÇÃO
Após abrir o programa, crie uma nova aplicação (Nome: Tutorial_Pratica2) e salve o aplicativo na
pasta SCADA.
Definição:
O Tag Demo é um tag utilizado para simulação de valores, permitindo gerar curvas definidas como
seno, clock, utilizadas pra testar a aplicação ou para realizar uma animação.
Crie 1 Tag Demo e configure-o para seno, limite inferior 0 e limite superior 100.
Sequência:
OrganizerAplicaçãoNovo Tagtag001
Definição:
Trend Graph é o objeto usado para visualizar um gráfico de tendência com até 16 tags. O gráfico é
constantemente atualizado à medida que o processo evolui e os valores dos tags mudam. Usando
tendências, você pode fazer gráficos como Valor x Tempo e Valor x Valor.
11
Crie 3 penas de desenho
Label: Renomeie para
Eixo Y (vertical): Tag1,Tag2,Tag3 Em Y axis:
Largura: 300
Lim. Super: 100 adicione para Tag1, o Tag Demo
Altura: 200
Lim. Inferior: 0 tag001(AplicaçãoTagstag001)
e assim por diante com os outros
Tags Ram
Crie outro objeto Trend Graph com as mesmas características do primeiro, porém mude na Aba Geral
o tipo do gráfico para XY, retire as penas e adicione uma marca de tendência , em que o eixo X é o
Tag Demo e o eixo Y é um dos Tags Ram.
12
Rode a aplicação e verifique a diferença entre os gráficos.
Definição:
Este objeto é utilizado para acionamentos ou execuções de tarefas especificadas pelo usuário através
do mouse ou teclado e seu funcionamento é igual aos dos botões padrão do Windows.
tag001 = 71
tag001 = 27
13
No Script OnStartRunning da Aplicação coloque a seguinte lógica:
tag001 = 27
IF tag001 > 35
tag002 = 52
ELSE
tag002 = 11
ENDIF
Crie outro botão (Nome: Botão2) com título Aumentar e na aba Geral do mesmo, coloque a
funcionalidade no modo Liga/Desliga.
Tendência1.enableDataRec = 0
Tendência1.enableDataRec = 1
Sequência:
14
ScriptsNovoOnPressApp Browser TelasTela1Tendência1Marque:
AtributosenableDataRec
Nessa lógica, quando o botão é pressionado o gráfico deixa de receber novos valores e quando o botão
é solto, passa a receber novos valores.
Obs2. Opção para aumentar o tamanho do Trend Graph e observar melhor os detalhes.
Script OnPress:
Tendência1.height = 400
Tendência1.width = 600
Script OnRelease:
Tendência1.height = 200
Tendência1.width = 300
Crie outra Tag Demo, configure-o para seno e coloque no limite inferior -1 e no limite superior 1.
Crie outro Objeto Trend Graph com as mesmas configurações do primeiro Trend Graph, mas retire as
penas do primeiro gráfico e coloque uma pena com label tag4 e Y axis tag004 e na aba Gráfico, Eixo
Y(vertical), troque a escala normal pelo fator de potência, coloque o Lim. Super: 0 e o Lim. Inferior: 0.
15
Uma das boas funções do Trend Graph é a demonstração gráfica dos tipos de Tag Demo.
Crie mais 5 Tags Demo e configure-os para cada tipo diferente do seno com limite inferior: 0 e limite
superior: 100.
Crie mais 5 Trend Graph com limite inferior: 0 e limite superior: 100, cada um com uma pena
relacionada a um dos Tags Demo criado, com cores diferentes.
Rode a aplicação e verifique o comportamento dos tipos de Tags Demo. Geralmente é através dessa
visualização que decidimos qual tipo de Tag Demo utilizar.
3ª PRÁTICA
3.0 RESUMO
3.1 APLICAÇÃO
Após abrir o programa, crie uma nova aplicação (Nome: Tutorial_Pratica3) e salve o aplicativo
na pasta SCADA.
Crie1 Tag Demo e 1 Tag Ram, nesta coloque na aba Geral, Valor Inicial: 10.
Como já vimos o objeto botão é utilizado em acionamentos e execução de tarefas, assim como, o
pressionamento de botões também gera eventos que podem ser tratados por scripts.
16
Crie um display e associe o Tag Ram.
Rode a aplicação.
Rode a aplicação.
Crie outro botão (Name = Botão2) com Funcionalidade: Momentâneo, desta vez com a função de
controlar um evento.
Rode a aplicação.
Note que quando o Botão1 é pressionado, o Tag vai pra 1 e quando é solto o Tag vai pra 0.
Isso acontece porque o Botão1está associado diretamente com o Tag e seria diferente se estivesse
associado por Scripts.
3.3 TELA
Geralmente, nas aplicações, cria-se uma tela de apresentação, que pode ser um grande botão.
Sequência:
17
Crie outra tela com Nome: e Título: Apresentação.
Crie um terceiro botão (Nome: Botão3) com Funcionalidade: Momentâneo, do tipo BITMAP
, na aba Tamanho e Pos configure, Largura: 1020, Altura: 770, x = 0, y=0, na aba
Mensagens: NormalLocalizar o bitmap fundotela.jpg e click em .
Na Tela1, crie um texto sem título, sem moldura, posição X= 150 e Y= 80 e coloque na aba Zonas,
a mensagem “Click para iniciar”, marque Zona Padrão, fonte tamanho 14, cor vermelha.
Perceba que o Objeto Texto fica atrás do Botão3, logo no menu principal, click em
ArranjarTrazer para frente.
Note, também, que a mensagem aparece com fundo branco, objetivando melhorar a estética de
apresentação, siga a sequência abaixo para colocar o fundo do Objeto Texto para o mesmo fundo do
Objeto Botão3
Sequência:
18
Abra a figura fundotela.jpg no PaintUtilize a ferramenta Selecionador de Cores no fundo de
tela Editar coresAnote os parâmetro Matiz, Sat., Lum, Vermelho, Verde, AzulClick no
Objeto TextoZonasFundoOutrosColoque os parâmetros anotados nos respectivos locais.
Sequência:
19
Script OnPress:
IF Aplicação.Login( )
Tela1.Activate( )
ELSE
ENDIF
Sequência:
OrganizerUsuáriosNovoPropriedadesLogin: ou Senha:
Rode a aplicação.
Obs1. Opção para fazer um botão mais sofisticado que, quando pressionado, desabilite um Tag
Demo.
20
Crie um Objeto Texto (Nome: Texto1), na aba Zona marque:Transparente e Zona Padrão e
Alinhamento: Direita, insira a Mensagem: Parar. Coloque o Objeto Texto atrás do botão acima de
acordo com a figura abaixo:
Obs2.Opção para destacar algum objeto quando o mouse ficar em cima dele.
IF Tela1.Texto1.IsMouseInside() == 1
B1.bitmap0 = "C:\Treinamento\Figuras\Bdesliga1.bmp"
ELSE
B1.bitmap0 = "C:\Treinamento\Figuras\Bdesliga.bmp"
ENDIF
Crie 6 botões (Nome: Botão3 a Botão8) com aparências que ainda não foram vistas, menos o botão
que possui um retângulo pontilhado transparente.
21
Rode a aplicação e perceba os estados dos botões.
Crie um Botão com dimensões um pouco maiores que o bitmap e configure sua aparência para o um
retângulo pontilhado transparente, Funcionalidade: Liga/Desliga emude o nome do Botão para
Comp.
Crie uma Tag Demo (Nome = tag003) e um display, associando a Tag Demo (Nome = tag003).
tag003.enabled=0
Script OnRelease:
tag003.enabled=1
Rode a aplicação.
22
Script OnPress:
Comp.enabled = 0
Script OnRelease:
Comp.enabled = 1
Rode a aplicação.
Verifique que quando o botão (Nome: Botão3 ou/a Botão8) é pressionado o botão (Nome: Comp)
fica desabilitado.
Obs5. Opção para criar umMenu Principal, que guie o usuário para as outras telas do sistema.
Na aba Geral, Propriedades da Tela, marque em Fundo: Bitmap e localize um fundo de tela que
você preferir dentro da pasta Projeto Fundo Tela.
Crie um Objeto Textocom Mensagem: Sistema de Controle por Telemetria, Fonte: Arial, Tamanho:
20 e da cor que você preferir.
Crie 6 botões do tipo bitmap, posicionando em 3 linhas e 2 colunas, adicione a cada botão a figuras
de Nome:Befluentes.bmp, BENERGIA.BMP, Blayout.bmp, BLOGIN.BMP, Bquarent.bmp,
bred.bmp e click em .
Script OnPress:
O botão com o Bitmap: Logout da Tela: Menu Principal deve fazer o logout do usuário e ir
paraTela: Apresentação.
1º Opção: Na aba Geral do botão com o Bitmap: LogoutIr para tela: Apresentação.
23
OnPress:
Aplicação.Logout()
Apresentação.Activate()
O primeiro comando faz o logout do usuário e o segundo comando chama a Tela: Apresentação.
Obs6.Um botão também pode ser configurado para ser acionado pelas teclas de funções F1, F2, etc.
4ª PRÁTICA
4.0 RESUMO
Opção para criar 2 textos com letras de cores diferentes, já que no Script do Objeto Texto não
se tem acesso a cor da letra – pág.25
Script OnValueChanged– pág.25
Opção para que o Objeto Texto apareça após um tempo quando o Tag Demo estiver acima do
limite máximo ou abaixo do limite mínimo.– pág.25
Tag Crono– pág.25
Siginificado .acum– pág.25
Siginificado .Reset ()– pág.27
Script OnRButtonUp– pág.28
Opção para destacar um texto.– pág.28
Opção para destacar um texto quando o mouse estiver sobre ele.– pág.29
Opção para que o Bitmap apareça quando o Tag Crono for maior que um tempo– pág.30
Fluxo repet – until– pág.30
(Nome do Tag Ram) += 1– pág.30
Opção para fazer um objeto ficar visível por um determinado tempo– pág.30
4.1 APLICAÇÃO
Após abrir o programa, crie uma nova aplicação (Nome: Tutorial_Pratica4) e salve o aplicativo
na pasta SCADA.
Vamos criar uma animação que pode ser utilizada para indicar visualmente um alarme, através da
mudança da cor de um texto, por exemplo.
Crie 1Tag Demo, do tipo seno, de Limite Inferior:0 e Limite Superior: 100.
24
Crie um Objeto Gauge, na aba Geral, coloque Valor Mínimo:0 eValor Máximo: 100, na aba
Avançado em cores, coloque Limite baixo: 25 e Limite alto: 75 ambos de cor vermelho e no Limite
normal, escolha outra cor, sem título e associe ao Tag Demo criado.
Obs1: Opção para criar 2 textos com letras de cores diferentes, já que no Script do Objeto Texto não
se tem acesso a cor da letra.
Crie 2 Objetos Textos,sem título, na aba Zona, coloque fundo azul claro, Mensagem: Alarme, com
Fonte: 18. Em um dosObjetos Textos, coloque letra do Texto: Preta e na aba Geral: Nome:
TextoPreto e no outro Objeto Texto, coloque letra do Texto: Vermelha e na aba Geral: Nome:
TextoVermelho.
TextoVermelho.visible = 1
TextoPreto.visible = 0
ELSE
TextoVermelho.visible = 0
TextoPreto.visible = 1
ENDIF
Rode a aplicação
Obs2: Opção para que o Objeto Texto Alarme apareça após 10s que a Tag Demo esteja acima do
limite máximo ou abaixo do limite mínimo.
Sequência:
25
Para que esse Tag inicie a contagem é necessário habilitar seu enable.
A lógica a ser seguida: Se o acumulador for maior ou igual a 10, deixaremos o TextoVermelho
visível e o TextoPreto invisível. Se o valor do Tag Demo estiver dentro da faixa do alarme. O Tag
Crono deve ser habilitado, caso contrário, deve ser desabilitado e ressetado.
TextoVermelho.visible = 1
TextoPreto.visible = 0
ELSE
TextoVermelho.visible = 0
TextoPreto.visible = 1
ENDIF
ELSE
26
TextoVermelho.visible = 0
TextoPreto.visible = 1
ENDIF
Rode a aplicação.
Observe que a variação da Tag Demo é mais rápida que a variação do Tag Crono, logo este não
chega aos 10s para poder mudar os Objetos Texto.
A 3ª opção é a mais indicada, pois geralmente o Objeto Gauge é associado a um Tag PLC que
recebe valores de sensores, que diferente dos Tags Demo, não mudambruscamente de valores.
É necessário, também, reset o Tag Crono, faça uma das opções abaixo:
27
Quando o alarme é ativado, é preciso que o operador reconheça que o alarme foi ativado, por isso,
crie um botão com mensagem Reconhecimento de alarme e no Script OnPress do mesmo, coloque:
tag002.Reset()
O problema é que muitas vezes o Tag associado a esse Gauge é responsável por comandar outros
processos. Então é necessário parar o envio do sinal desse Tag.O alarme e o Tag Crono devem ser
resetados quando o botão for pressionado, reiniciando após o operador ter resolvido o problema e
clicado com o botão direito no mesmo botão.
Script OnPress:
TextoPreto.visible = 1
Script OnRButtonUp:
Perceba que os valores do Tag Demo e Crono são paralisados e retornam quando o botão direito é
pressionado.
Crie outro Objeto Texto, sem título, com 2 zonas e Mensagem:Teste, uma das zona com cor do
Texto: preta, Máximo: e Mínimo:0, a outra com a cor do Texto: vermelha, Máximo: e Mínimo:1
Crie um Tag Ram e associe esse texto a ele.
Para fazer com que o texto fique de cor vermelha, atribua ao Tag Ram o valor 1 quando o Tag
Crono for maior que 10s e, caso contrário, deixe o texto de cor preta. Complemente no Script do
Tag Demo OnValueChanged:
..
..
ELSE
28
..
..
ENDIF
Quando o alarme for reconhecido o texto deve estar preto também, portanto:
Script OnPress:
Rode a aplicação e reconheça o alarme quando ele for ativado, verificando os resultados.
Essa maneira de mudar o texto é bem mais fácil, porém a primeira maneira foi mostrada para que
possamos destacar um texto com outra cor em algum evento.
Obs4: Opção para destacar um texto quando o mouse estiver sobre ele.
Crie novamente um Objeto Texto com Nome: TextoPreto2, sem título, adicione uma zona com Cor
do Texto: preta, Cor do Fundo: cinza e Mensagem: Aprender e Marque: Zona Padrão
Copie esse objeto e cole. O objeto foi criado atrás do original, por esse motivo click em “Trazer
para frente” .
No Objeto Texto copiado coloque o nome TextoVerde, na aba zona mude a Cor do Texto: verde e
Marque: Zona Padrão.
Agora click em “Levar para o fundo” , ou seja, o TextoPreto2 fica na frente do TextoVerde.
Faremos uma lógica que estabelece que, se o mouse estiver sobre o objeto, o TextoVerde torna-se
visível e o preto invisível.Caso contrário volta-se a situação inicial.
IF TextoVerde.IsMouseInside() == 1
29
TextoVerde.visible = 1
TextoPreto2.visible = 0
ELSE
TextoVerde.visible = 0
TextoPreto2.visible = 1
ENDIF
No Script While Running do Organizer Aplicação mude o tempo de Rodar a cada: 100msec
Esse comando executa uma instrução até que uma condição seja verdadeira, por esse motivo ele não
é utilizado pelos programadores.
Para que o Bitmap apareça quando o Tag Crono for maior que 30 programe:
REPEAT
Alarme.visible = 1
Verifique que a aplicação nem aparece, porque ele está executando sempre o comando, por isso
devemos ter o cuidado em usar os comandos de fluxo. Para verificar-mos uma das utilidades desse
comando, faça o pedido abaixo.
Apague o comando de Repeat – Until do Script OnValueChanged do Tag Demo e crie um Botão
com Nome: Botão2.
30
REPEAT
Esse comando (Nome do Tag Ram) += 1 significa (Nome do Tag Ram) = (Nome do Tag Ram) + 1.
Salve, Rode a aplicação e verifique que dessa forma o comando tem utilidade.
Esse script pode ser utilizado para um evento acontecer durante um determinado tempo (50000
equivale a 4s). Cuidado é preciso saber utilizá-lo, pois durante esse tempo só será executado os
comandos que estão dentro do fluxo.
tag003 += 1
Gauge1.visible =1
Gauge1.visible =0
5ª PRÁTICA
5.0 RESUMO
31
Opção para que a luz esteja sempre apagada e o texto esteja sempre invisível quando a
aplicação iniciar– pág.36
Como usar o comando While– pág.37
Opção para gerar um tempo– pág.37
5.1 APLICAÇÃO
Após abrir o programa, crie uma nova aplicação (Nome: Tutorial_Pratica5) e salve o aplicativo
na pasta SCADA.
Crie 2 Tag Ram e um Tag Demo do tipo seno com Limite Inferior: 0 e Limite Superior: 100.
Crie um Bar Graph e na aba Geral, coloque Limite Mínimo: 0 e Limite Máximo: 100,
Espaçamento: 10, Desmarque: 3D, na aba Moldura, coloque Título: Gráfico das Variáveis. Na aba
Tags, adicioneos 3 Tags (tag001, tag002 e tag003) e na aba Cores das Barras, Marque: Mostrar
labels e coloque 3 cores diferentes pra cada Tag..
Crie 2 Sliders (Slider1 e Slider2), na aba Geral de ambos, coloque Valor Mínimo: 0 e Valor
Máximo: 100, na aba Tags, adicione ao Slider1 o Tag Ram:tag001 e ao Slider2 o Tag Ram: tag002.
Na aba Geraldo Bar Graph, existe outros tipos de orientação, rode a aplicação verificando cada um
deles.
Crie outra tela e em Propriedades da Tela, na aba Geral, Marque: Bitmap e Localize: c1.bmp.
32
Nesta Tela, crie um Bar Graph com as configurações abaixo:
Aba Geral Aba Tamanho Aba Moldura Aba Tags Aba Cores das Aba régua
e Pos Barras
Mínimo: 0 Largura: 300 Efeito 3D : Adicione: Cor: azul Desmarque:
Máximo: 100 Altura: 200 Nada tag001 Habilita
Espaçamento: 0 X: 124 Desmarque:
Y:344 Visível
Desmarque: 3D
Copie da Tela1 o Slider1 que está associado ao respectivo Tag Ram: tag001 e cole na Tela2.
Rode a aplicação.
Observe que o fundo do Bar Graph está numa cor diferente do fundo da Tela2.
Obs2.Opção para colocar a mesma cor de fundo da Tela2 no Bar Graph, pois ele não tem a opção
transparente.
33
Na aba Geral do Bar Graph, configure a cor do fundo com as mesmas configurações.
Crie outro Bar graph (Barra2), com as mesmas características do Barra1, colocando a Cor do
Fundo: azul , mudando o X: 449 e o Y:344 na aba Tamanho e Pos e retirando a associação com o
Tag Ram
Rode a aplicação.
O objetivo dessa Tag é criar uma expressão entre Tags que será associado a um objeto.
Crie um Tag Expressão (tag004), agora vamos criar uma expressão para ser associada ao nível do
segundo Bar Graph, lembrando que esse reservatório da direita é controlado pela abertura da
comporta, e, geralmente, o da esquerda está mais cheio que o da direita, e esse não pode estar vazio
porque existe uma bomba que fica 24h bombeando água, e não pode ficar em vazio.
Coloque a expressão (Nome da Tag Expressão) = (Nome da Tag Ram que está associado ao Bar
Graph: Barra2)*(2/3) + 5 em OrganizerTagstag004Expressão e adicione o Tag Expressão ao
Bar Graph: Barra1. No Barra1, mude o fundo para branco na aba Geral e coloque uma cor
relacionada ao tag004 na aba Cores das Barras.
Obs3. Opção para mostrar valores da escala de nível visualmente, pelo menos o máximo e o
mínimo permitido.
Crie outro Bar Graph (Barra3), na aba Geral coloqueCor do Fundo: vermelho, Desmarque: 3D,
Limite Mínimo: 25, Limite Máximo: 50; na aba Tamanho e Pos coloque Largura: 15 e Altura: 50,
X: Ao lado do Bar Graph (Barra2), Y: 444; na aba Régua, Desmarque: Habilita; Na aba Moldura,
Desmarque: Visível.
34
Em seguida, crie 2 Objetos Textos e escreva em um a Mensagem: 50 e em outro a Mensagem:25,
Marque: Transparente e Zona Padrão, coloque Cor da Fonte: vermelho na aba Zonas, Desmarque:
visível na aba Moldura em ambos os Objetos Texto.
Rode a aplicação.
Obs4. Agora mostremos um alarme para quando o nível estiver maior que o máximo definido ou
menor que o mínimo definido.
Criaremos um Script para quando o nível estiver na faixa de alarme, acenda essa lâmpada e mostre
um texto escrito Perigo piscandoaté que o nível seja normalizado.
Bitmap1.fileName = ('C:\Treinamento\Figuras\BT_Iluminacao.bmp')
ELSE
Bitmap1.fileName = ('C:\Treinamento\Figuras\BT_Iluminacao_apagado.bmp')
ENDIF
Rode a aplicação.
Veja que esse script acende e apaga a lâmpada conforme o valor do nível.
35
IF tag001>= 50 OR tag001 <= 25
Bitmap1.fileName = ('C:\Treinamento\Figuras\BT_Iluminacao.bmp')
IF Perigo.visible == 1
Perigo.visible = 0
ELSE
Perigo.visible = 1
ENDIF
ELSE
Bitmap1.fileName = ('C:\Treinamento\Figuras\BT_Iluminacao_apagado.bmp')
Perigo.visible = 0
ENDIF
Para o Objeto Texto: Perigo piscar com maior frequência, diminua o tempo de Rodar a cada para
100 msec em OrganizerAplicaçãoAba ScriptWhileRunningRodar a cada.
Obs5. Opção para que a luz esteja sempre apagada e o texto esteja sempre invisível quando a
aplicação iniciar.
Bitmap1.fileName = ('C:\Treinamento\Figuras\BT_Iluminacao_apagado.bmp')
Perigo.visible = 0
tag001 = 40
36
5.4 COMANDO WHILE
Na maioria das aplicações este comando está associado com alguma variável.
WHILEtag005>= 100
tag005 += 1
END
Obs6. Opção paragerar um tempo. Esse tempo é importantíssimo para algumas animações.
WHILEtag005<= 50000
tag005 += 1
WEND
6ª PRÁTICA
6.0 RESUMO
37
Opção para o Objeto Texto se mover na Tela– pág.40
Significado .x – pág.40
Opção para que o texto caminhe na tela toda, desapareça no final gradualmente e apareça no
início gradualmente– pág.40
Podemos observar com outro tipo de Tag Demo o efeito causado no movimento o Objeto
Texto– pág.40
Opção para que esse texto fique se movimentando horizontalmente no meio da tela– pág.41
Opção para colocar o texto se movimentando na vertical– pág.41
Significado .y – pág.41
Opção para colocar numa das telas, o usuário que está logado no sistema– pág.41
Opção para visualizar a hora atual– pág.41
Nível de acesso– pág.42
Como realizar um evento de acordo com a hora– pág.42
Objeto Animação– pág.44
Opção para que a animação fique acionada por um evento e fique em movimento– pág.44
Opção para que o Tag Animar comece desabilitado– pág.44
Opção para mudar o sentido de rotação das pás – pág.44
Animação para controlar se um reservatório está sendo preenchido ou secado– pág.44
Significado .highLimit – pág.45
Significado .lowLimit – pág.45
6.1 APLICAÇÃO
Após abrir o programa, crie uma nova aplicação (Nome: Tutorial_Pratica5) e salve o aplicativo
na pasta SCADA.
Em Propriedades da Tela (Tela1) Fundo Marque: Bitmap e Localize: foto_dispa. ena Aba Estilo
Tamanho e Posição coloque X = 0 e o Y = 0.
38
Crie outra Tela (Tela2) com Título: Tela2 e crie na Tela2, um Display.
Em OrganizerAplicaçãoScriptsNovoSelecione OnKeyPressCombinação de
teclasAperte EnterOk
IF Aplicação.Login( )
Tela2.Activate( )
ELSE
39
ENDIF
Em OrganizerUsuáriosNovoPropriedadesLogin: a e Senha: a
Crie um Tag Demo do Tipo: Dente de serra crescente,Limite Inferior: 200 e Limite Superior: 500 e
Nome: Passo.
Texto1.x = Passo
Rode a aplicação.
Observe que o Objeto Texto está muito lento então altere o Período do Tag Demo (Passo) para 10.
Rode a aplicação.
Agora altere o Incremento do Tag Demo (Passo) para 2 e observe que o Objeto texto ficará mais
rápido.
Rode a aplicação.
Rode a aplicação.
Obs2. Opção paraque o texto caminhe na tela toda, desapareça no final gradualmente e apareça no
início gradualmente.
Coloque o Limite Inferior: – 220 e o Superior: 1020 do Tag Demo (Passo) e esta condição
serásatisfeita.
Obs3. Podemos observar com outro tipo de Tag Demo o efeito causado no movimento o Objeto
Texto.
40
Crie outro Tag Demo com Nome: Visual, Tipo: Seno, Limite Inferior:0 e Limite Superior: 800.
Recorte o Script do Tag Demo (Passo) e cole para o OnValueChanged do Tag Demo (Visual),
trocando o nome Passo pelo nome Visual no Script.
Rode a aplicação.
Obs4. Opção para que esse texto fique se movimentando horizontalmente no meio da tela.
Obs6. Opção para colocar numa das telas, o usuário que está logado no sistema.
Para fazer isso, na aba Tags do Display (Display1) criado na Tela 2, adicione AplicaçãouserLogin
em AplicaçãouserLogin; na aba Formato, Marque: Texto e na aba Geral, Fonte: 14.
Crie um Objeto Texto (Texto1) na Tela2, Mensagem: Usuário: , S/Moldura e com Fundo: branco.
Crie outro Display (Display2) na Tela2 e na aba Tags, Adicione: Gerenciador Global.currentTime (
Selecione Gerenciador GlobalcurrentTime; na aba Formato, Marque: Data/Hora, Formato:
hh:mm; Coloque Fundo: branco, S/Moldura, Fonte: 14.
Crie outro Objeto Texto (Texto2) na Tela2 com Mensagem: Hora Atual: , Fonte: 14.
Rode a aplicação.
Ao invés de criar um Objeto Texto com a Mensagem: Usuário, crie outro Objeto Display (
Display3) com as mesmas configurações do Display1, sendo que na aba Formato, coloque em
Prefixo: Usuário: .
Rode a aplicação.
41
6.3 NÍVEL DE ACESSO
Aba Tamanho e
Botão1 Botão2 Slider1 Slider2
Pos
Nível de Acesso: 0 100 1 100
Rode a aplicação e entre com o usuário de nível 100, depois o de nível 1 e observe quais
objetos eles terão acesso.
Agora, reconfigure o nível de acessibilidade para:
Aba Tamanho e
Botão1 Botão2 Slider1 Slider2
Pos
Nível de Acesso: 1 20 50 90
Crie mais 2 usuários, Usuário3 com Login e Senha: c e com Nível de Acesso: 18; Usuário4 com
Login e Senha: d e com Nível de Acesso: 61.
Para uma hora determinada do dia, essa opção irá atribuir o valor 35 a um Tag interno e aparecerá
um botão associado a esse mesmo Tag.
42
IF hour==15 AND minute== 3
ECA = 35
Botão1.visible = 1
ENDIF
Botão1.visible = 0
Para a hora ser mais específica, adicione um AND no Script WhileRunning e coloque os second ==
30
Crie outro Objeto Botão na Tela2com Mensagem: Próxima e coloque no canto superior direito.
Na Tela2, configure o Botão3 criado para ir para a Tela3, na aba Geral Ir para tela: Tela3
Volte à Tela3 e crie um Objeto Animation, na aba Zonas, adicione 4 zonas com os
nomesAGITA0.BMP, AGITA1.BMP, AGITA2.BMP, AGITA3.BMPem Figuras Animação.
Configure: AGITA0.BMP, Mínimo e o Máximo: 0; AGITA1.BMP, Mínimo e o Máximo: 1;
AGITA2.BMP, Mínimo e o Máximo: 2; AGITA3.BMP, Mínimo e o Máximo: 3. Na aba Geral click
Crie um Objeto Slider (Slider1) e adicione ao Tag ECA, na aba Geral, coloque Valor Mínimo: 0 e
Valor Máximo: 3.
43
Obs9. Opção para que a animaçãofique acionada por um evento e fique em movimento.
Crie um Tag Demo do tipo Dente de serra crescente, Nome: Animar e Limite Superior:40.Retire a
associação do Tag ECA da Animação1 e adicione ao Tag Demo (Animar) e reconfigure na aba
Zonas Zona1, Mínimo: 0 e Máximo: 10; Zona 2, Mínimo: 11 e Máximo: 20; Zona3,Mínimo: 21
e Máximo: 30; Zona 4, Mínimo: 31 e Máximo: 40.
Animar.enabled = 1
Animar.enabled = 0
Rode a aplicação.
Animar.enabled = 0
Rode a aplicação.
A maneira mais simples é trocar o tipo do Tag Animar para Dente de serra decrescente.
A partir de um evento e através da mudança dos limites, alto e baixo do Tag Demo. Pode-se,
também, fazer o cano alterar suas cores quando for encher ou secar.
44
Crie outro Objeto Animação com 3 zonas, adicionando as figuras a_quent.bmp, Limite Mínimo e
Máximo: 1;a_quent1.bmp, Limite Mínimo e Máximo: 0 e Limite Mínimo e Máximo: 2, na aba
Geral, click .
Crie outro Tag Demo do tipo Dente de serra crescente com Nome: Animar1, com Limite Inferior:0
e Limite Superior: 1, Período: 1000, adicione este Tag à Animação2.
Crie 2 Botões (Botão2 e Botão3)do tipo Liga/Desliga, Botão3 com Mensagem: ENCHER O
TANQUE e Botão2 com Mensagem:SECAR O TANQUE.
Animar1.highLimit = 1
Animar1.lowLimit = 0
Animar1.highLimit = 1
Animar1.lowLimit = 1
Animar1 = 1
Esses Scripts alteram os limites do Tag Demo. Estamos forçando o Tag a alternar entre os valores 0
e 1 quando pressionado e ao valor 1 quando no seu estado normal, forçando ainda o valor 1 ao Tag,
por segurança.
Animar1.highLimit = 2
Animar1.lowLimit = 1
Animar1.highLimit = 1
45
Animar1.lowLimit = 1
Para que o tanque comece no estado normal, copie o que está escrito no Script OnRelease do
Botão3 e cole no Script OnStartRunning do OrganizerAplicação.
7º PRÁTICA
7.0 RESUMO
7.1 APLICAÇÃO
Após abrir o programa, crie uma nova aplicação (Nome: Tutorial_Pratica5) e salve o aplicativo
na pasta SCADA.
O Objeto Set Point é semelhante ao display, mas permite editar o valor visualizado. Quando o Set
Point estiver associado a algum Tag, quando edita-se o valor mostrado, é como se houvesse uma
atribuição a esse Tag.
Ex:
1
46
Tag001 = 1
Quando um valor de um Tag Ram for atribuído através de um Set Point associado a ele, diversos
eventos ocorrem, como a parada do valor do Tag Demo ou um resset do Tag Crono.
Crie 2 Tags Ram com Nomes: RAM1 e RAM2, 1 Tag Demo do tipo Seno com Nome: DEM de 0 a
100, Período: 1000, crie 2 Tags Crono com Nomes: Crono1 e Crono2, marcando a Opção: Zerar o
acumulador ao ligar o cronômetro.
Crie 5 Set Points,um abaixo do outro, a esquerda e 5 displays, um abaixo do outro, a direita.
Associe os Tags aos Set Points e Displays, respectivamente, de cima pra baixo. No Tag Crono
associe o seu acumulador.
RAM1 = 3
DEM.enabled = 1
Crono1.enable = 1
Crono2.enable = 1
IF RAM1 == 4
RAM2 = 17
DEM.enabled = 0
Crono1.Reset ( )
ENDIF
47
Rode a aplicação e verifique qual dos Tags efetivamente são modificados, em seguida atribua
4 ao Tag RAM1.
Obs1. Opção para um evento desabilitar visualmente um Set Point ou uma Figura, para evitar que o
operador cometa erros graves.
O 1º comando atribui uma cor para o textoe o 2º comando atribui a mesma cor para a moldura.
Setpoint1.textColor = 0
Setpoint1.Moldura.titleColor = 0
Setpoint2.textColor = 0
Setpoint2.Moldura.titleColor = 0
Rode a aplicação.
Verifique que, se o botão for pressionado e a aplicação for tirada do modo Run, a aplicação e os Set
Points estarão desabilitados na próxima vez que rodar a aplicação.
48
Obs2. Opção para criar uma tela com possibilidades para configurar parâmetros para determinada
aplicação.
Crie outra Telacom Título: Parâmetros do Inversor, com Fundo: Cinza e na aba Estilo, em Estilo:
Marque Janelada e Marque a opção: Botão de Fechar.
49
Tela 2. Show ( )
Tela 2. Hide( )
Geralmente, quando se entrega um projeto ao cliente, um dos operadores ou o chefe deles, fica com
Nível de Acesso:1 (Administrador), exatamente para a necessidade de parametrização, porém é
preciso ter cuidado com enganos. Por esse motivo é importante criar uma mensagem de aviso.
Rode a aplicação.
Verifique que, para qualquer atitude sua, a continuação do Script OnPress será executada. Isto é um
problema.
Toda vez que clicamos num Botão dentro da Mensagem, um número retorna. O número que o botão
Ok retorna é 1. Portanto, para protegermos os comandos seguintes do Script, é necessário comparar
se o MessageBox retornou 1.
50
Tela1.Setpoint2.textColor = RGB (148, 148, 148)
Tela2.Show()
ENDIF
Rode a aplicação e verifique os resultados, apertando nos botões Ok, Cancel e Fechar „X‟.
Obs5. Opção para mostrar mais uma mensagem para o administrador quando ele clica em Cancel.
O número que o Botão: Cancel retorna é 2 e a Mensagem será: Os parâmetros não foram
modificados. Existe mais de uma maneira de fazer essa lógica.
Tela2.Show()
ENDIF
A 2ª forma seria trocar o ELSEIF pelo ELSE e colocar a função MessageBox na linha seguinte sem
igualdade.
51
Tela1.Setpoint1.Moldura.titleColor = RGB (148,148,148)
Tela2.Show()
ELSE
ENDIF
Podemos fazer uma lógica para quando o operador clicar no Set Point de Freq.Máx.,apareça uma
mensagem e se a frequência não mudar apareça outra mensagem dizendo que não mudou.
Tela2.Setpoint2.enabled = 1
Tela2.Setpoint2.enabled = 0
ENDIF
Nesse estilo a mensagem aparece com os Botões: Sim e Não. Para o Sim ela retorna 6 e para o Não
retorna 7. Por esse motivo faz-se a comparação com o 6. Abaixo habilita-se a entrada de dados no
Set Point.
Verifique que, se você disser Sim, o valor da variável pode ser alterado, mas se disser Não,
aparecerá outra mensagem. Clicando Ok nessa mensagem e parando a aplicação, na próxima vez o
52
Set Point estará desabilitado.Isso é um problema e acontece porque o Scada mantém o estado dos
objetos da última execução do aplicativo.Para solucionar esse problema, seráhabilitado esse objeto
Set point. Podemos lembrar que num projeto a idéia é iniciar a execução da aplicação e não parar
mais, portanto não se pode colocar o comando no StartRunning.
Tela2.Setpoint2.enabled = 1
...
ENDIF
Rode a aplicação e perceba a diferença.
Tela2.Setpoint3.enabled = 1
Tela2.Setpoint3.enabled = 0
ENDIF
53
Tela2.Setpoint2.enabled = 1
Tela2.Setpoint3.enabled = 1
...
ENDIF
Rode a aplicação.
Pode-se perceber um erro no Scada. Quando clica-se no Set Point TempoAcel./Desacele seleciona
Não aparece a mesma caixa de mensagem.O Scada mostra uma caixa de mensagem toda vez que
aparece o comando MessageBox. Então a maneira mais usada para comparar o retorno da
mensagem é uma comparação e um ELSE, que serve tanto para o Botão Não, quanto para o Botão
Cancel, quanto para o Fechar „X‟.
Tela2.Setpoint3.enabled = 1
ELSE
Tela2.Setpoint3.enabled = 0
ENDIF
No mesmo Script acima altere o estilo para 5h e a mensagem para Esse parâmetro não pode ser
alterado. E em vez de utilizar um IF utilize um While, logo o Script ficará:
Tela2.Setpoint3.enabled = 1
54
WHILE MessageBox("Esse parâmetro não pode ser alterado.","Cuidado",5h) == 4
Tela2.Setpoint3.enabled = 0
WEND
ELSE
Tela2.Setpoint3.enabled = 0
Esse Script significa que enquanto a mensagem retornar 4 (REPETIR), o Set Point estará
desabilitado, e quando outro Botão for pressionado ele permanecerá desabilitado.
Altere o mesmo Script para o estilo 35h e rode a aplicação, verificando que apareceu um ícone de
exclamação.
Em seguida altere para 15h, 25h, 45h, rodando a aplicação e verificando a mudança dos ícones.
8ª PRÁTICA
8.0 RESUMO
55
8.1 APLICAÇÃO
Geralmente, em todas as telas, cria-se um objeto alarme para mostrar as falhas ativas no sistema.
Crie 2 Tags Ram com Nome: RAM1 e RAM2 e 2 Tags Demo com Nome: DEMO1 e DEMO2.
Configure as faixas do alarme entre 0 e 100 para os Tags RAM1 e DEMO1 e entre 0 e 200 para os
Tags RAM2 e DEMO2 emOrganizerTagsRAM1/RAM2/DEMO1/DEMO2Alarmes. Mude
os Limites Superior dos Tags Demo para 100.
56
Crie 2 Objetos Slider associados aos Tags Ram.
Rode a aplicação e mova os Sliders e click em um dos Alarmes ativos e reconheça o alarme.
Crie um Objeto Bar Graph do Tipo: Bar Gauge com Limite Mínimo: 0 e Limite Máximo: 100,
Orientação: Da Esquerda para a Direita. Adicione os 4 Tags. Na aba Cores das Barras, Marque
Mostrar Label. Na aba Cores do Bar Gauge, configure os limites de acordo com cada Tag.
57
Rode a aplicação, movendo os Sliders e verificando os limites de alarme.
Crie um Alarme, Título: Falhas Ocorridas no Sistema, Efeito 3D: Dentro, Espessura: 2. Na aba
Geral, configure Tipo de Alarme: Histórico. Na aba Cores, configure as cores quando reconhecido,
ativo e as zonas, mas existe uma falha no Scada que ele só configura uma zona. Na aba Formato da
Mensagem, configure as colunas do alarme, Marque a opção: Comentário – Tamanho: 20.
58
Na aba Alarmes do Tags, coloque mensagens de alarme e retorno nos Tags. Esse tipo de alarme
registra de tempos em tempos todos os alarmes do grupo de alarmes criado.
Crie um Objeto Botão na Tela1 que vai para a Tela2 e copie os 2 Objetos Sliders da Tela1 e cole na
Tela2.
Os valores do Tag são importantes para outros eventos. Pode-se detectar uma situação de
emergência através dos alarmes, e desligar um motor, por exemplo.
Bitmap1.fileName = (“figuras\bmb.bmp”)
Tela1.Bitmap1.fileName = ("figuras\bmbe.jpg")
59
No Script OnAlarmReturndo Tag Ram(RAM1)::
Tela1.Bitmap1.fileName = ("figuras\bmbd.bmp")
Outra lógica importante é que o motor só poderá estar ligado quando o Tag estiver em seu estado
normal.
IFBitmap1.fileName == ("figuras\bmbd.bmp")
Bitmap1.fileName = ("figuras\bmb.bmp")
ENDIF
A função do Tag Matriz é facilitar o trabalho com vetores e com operações que utilizam
muitosTags.
O Scada não realiza operações entre matrizes, por conseqüência esse Tag serve pra alocar Tags ou
funciona associado ao valor dos Tags por Scripts.
Crie um Tag Matriz com Nome: Matriz, 5 Colunas e 1 Linha, em Associar, configure como na
figura abaixo.
60
A ideia é que estamos recebendo 5 sinais de sensores digitais de incêndio com saída 0 ou 1, onde
representaremos essas variáveis como Tags Ram.
De acordo com o Tag que for acionado, outra variável (Tag Ram), receberá um valor
correspondente a esse Tag.
Crie 5 Tags Ram e coloque os Nome: Andar1,.....,Andar5, dentro de um Grupo de Tags chamado
Incêndio.
IF Andar1 == 1
Setor = 1
ELSEIF Andar2 == 1
Setor = 2
ELSEIFAndar3 == 1
Setor = 3
61
ELSEIFAndar4 == 1
Setor = 4
ELSEIFAndar5 == 1
Setor = 5
ENDIF
Em seguida a estas linhas de comando, de acordo com o valor do setor, uma das células receberá o
valor desejado.
No Script OnPress do Botão Incêndio Controlado pode-se utilizar os comandos de fluxo para zerar
as células da Matriz, utilizando também uma variável declarada.
Dim i
FOR i = 1 to 5
Matriz.SetCell (1, i, 0)
Setor = 0
NEXT
Crie um botão na Tela1 com Mensagem: Incêndio, configurado para ir pra Tela Incêndio.
62
Se os botões são apertados e a aplicação é fechada, quando ela é aberta novamente os valores das
células não são ressetados.
Obs3. Opção para Utilizar o Tag Crono para mostrar uma visualização de alarme.
Cada Botão que simula o valor do alarme deve, quando pressionado, acionar o Tag Crono.
Após 10s de ligado o Tag Crono, a Figura Alarme.bmp deve aparecer, e sumir quando o Botão
Incêndio Controlado for pressionado.
IF Crono.acum>= 10
Crono.enable = 0
Crono.Reset ( )
Tela3.Bitmap1.visible = 1
ENDIF
Tela3.Bitmap1.visible = 0
Crono.resetAcum =0
63
Tela3.Bitmap1.visible = 0
Crie um Botão com Mensagem: Alarme e no Script OnPress desse Botão escreva:
Crono.enable=1
64