Buscar

Apostila de Elipse SCADA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 69 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 69 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 69 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

APOSTILA DE 
ELIPSE SCADA 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Professor Érick Aragão Ribeiro 
Instituto Federal de Educação, Ciência e Tecnologia 
 
 
2 
SUMÁRIO 
1º PRÁTICA – PÁG.1 
 Como criar um Tag Ram – pág. 1. 
 Configuração de um Objeto Slider – pág. 2. 
 Como adicionar um Tag ao Objeto – pág.2 
 Configuração de um Objeto Gauge – pág. 4. 
 Como inserir imagens usando o Objeto Bitmap – pág. 5. 
 Como Utilizar o App Browser – pág. 5. 
 Script WhileRunning – pág.6 
 Significado do .fileName – pág.7 
 Configurando um Objeto Texto – pág. 9 
 Script OnStartRunning – pág.9 
 Opção para um Objeto Bitmap aparecer através de um evento – pág. 10 
 Significado .visible – pág.10 
 
2º PRÁTICA – PÁG.11 
 
 Como criar um Tag Demo – pág.11 
 Configuração de um Objeto Trend Graph– pág.11 
 Configuração de um Objeto Botão– pág.13 
 Script OnPress– pág.13 
 Script OnRelease– pág.13 
 Opção para verificar os detalhes de um momento no gráfico– pág.14 
 Opção para aumentar o tamanho do Objeto Trend Graph e observar melhor os detalhes– 
pág.14 
 Significado Tendência1.height – pág.14 
 Significado Tendência1.width – pág.14 
3º PRÁTICA – PÁG.16 
 Configurando um Objeto Display – pág.16 
 Funcionalidades do Objeto Botão – pág.16 
 Configurando uma Tela– pág.17 
 Opção1 de criar um Botão com um Bitmap – pág.18 
 Significado Aplicação.Login( ) – pág.20 
 Significado .Activate( )– pág.20 
 Significado MessageBox– pág.20 
 Como criar um usuário com login e senha – pág.20 
 Opção para fazer um Botão mais sofisticado que, quando pressionado, desabilite um Tag 
Demo – pág.20 
 Significado.enabled – pág.21 
 SignificadoIsMouseInside() – pág.21 
 Opção para verificar os tipos de Botões – pág.21 
 Opção 2 de criar um Botão com um Bitmap – pág.22 
 Opção para criar um Menu Principal, que guie o usuário para as outras telas do sistema – 
pág.23 
 
 
3 
 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 
 Configuração do Objeto Bar Graph – pág.32 
 Opção de usar o Bar Graph como indicação de nível– pág.32 
 Opção para colocar a mesma cor de fundo da Tela em um Objeto, pois ele não tem a opção 
transparente– pág.33 
 Tag Expressão– pág.34 
 Opção para mostrar valores da escala de nível visualmente, pelo menos o máximo e o mínimo 
permitido– pág.34 
 Como mostrar um alarme para quando o nível estiver maior que o máximo definido ou menor 
que o mínimo definido– pág.35 
 Opção para farer o texto piscar– pág.35 
 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 
6º PRÁTICA – PÁG.39 
 Script OnKeyPress – pág.39 
 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 
 
 
4 
 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 
 
 Configuração de um Objeto Set point – pág.46 
 Opção para um evento desabilitar visualmente um Set Point ou uma Figura– pág.48 
 Opção para criar uma tela com possibilidades para configurar parâmetros para determinada 
aplicação– pág.48 
 Significado.Show ( )– pág.49 
 Significado .Hide ( )– pág.50 
 Opção para criar uma mensagem de aviso– pág.50 
 Opção para mostrar mais uma mensagem para o administrador quando ele clica em Cancel– 
pág.51 
 Outras opções para usar o MessageBox– pág.52 
 Script OnLButtonDown– pág.52 
 Outro estilo de MessageBox com os Botões: Sim, Não e Cancel– pág.53 
 
 
 
 
 
 
5 
8º PRÁTICA – PÁG.46 
 
 Configuração do Objeto alarme – pág.56 
 Opção para criar uma tela de histórico de alarmes– pág.58 
 Os valores do Tag para outros eventos– pág.59 
 Tag Matriz– pág.60 
 Significado .SetCell– pág.60 
 Opção para ressetar as células no início da aplicação– pág.62 
 Opção para Utilizar o Tag Crono para mostrar uma visualização de alarme– pág.62 
 
 
1 
INTRODUÇÃO 
O tutorial a seguir ensina a usar ferramentas básicas do supervisório Scada do Elipse, 
Todas as aplicações devem ser salvas em pasta no C. 
Crie uma pasta com nome SCADA. 
Coloque na pasta SCADA as pastas Figuras, Driver, Material auxiliar, Exercício, Biblioteca e 
Projetos finais. 
1ª PRÁTICA 
1.0 RESUMO 
 Como criar um Tag Ram – pág. 1. 
 Configuração de um Objeto Slider – pág. 2. 
 Como adicionar um Tag ao Objeto – pág.2 
 Configuração de um Objeto Gauge – pág. 4. 
 Como inserir imagens usando o Objeto Bitmap – pág. 5. 
 Como Utilizar o App Browser – pág. 5. 
 Script WhileRunning – pág.6 
 Significado do .fileName – pág.7 
 Configurando um Objeto Texto – pág. 9 
 Script OnStartRunning – pág.9 
 Opção para um Objeto Bitmap aparecer através de um evento – pág. 10 
 Significado .visible – pág.10 
 
1.1 APLICAÇÃO 
Após abrir o programa, crie uma nova aplicação (Nome: Tutorial_Pratica1) e salve o aplicativo 
na pasta SCADA. 
1.2 TAG RAM 
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. 
A supervisão de um processo com o Elipse SCADA ocorre através da leitura de variáveis de 
processos no campo. Os valores dessas variáveis são associados a objetos do sistema chamados 
tags.Os tags são todas as variáveis (numéricas ou alfanuméricas) envolvidas numa aplicação. 
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: 
 
 
2 
Organizer Aplicação TagsNovo Grupo (Nome: Tag_1)Novo Tag Tag Ram
(Nome: tag001) 
 
 
1.3 OBJETO SLIDER 
Definição: 
O Objeto Slider é usado para ler ou escrever valores no tag a ele associado.Você podeatribuir 
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. 
Cria um objeto Slider e ajuste as seguintes configurações: 
 
Geral 
Tamanho e 
Pos 
Moldura Tags 
Mínimo: 0 X: 100 Efeito 3D: Fora 
Espessura: 5 
Associar ao Tag Ram 
Máximo: 100 Y: 100 
Sequência: 
TagsAplicação 
TagsTag_1tag001 
Adicionar 
Passo: 2 
Largura: 250 
Altura: 70 
Título 
Texto: Teste 
Marcar: Limites do 
slider 
Marcar: Mostrar 
 
 
3 
valor 
 
 
 
 
4 
 
 
 
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. 
Crie um Objeto Gauge e ajuste as seguintes configurações: 
 
 
5 
 
Geral Avançado Tamanho e Pos Moldura Tags 
Mínimo: 0 Marcar: 
Grossas 
Marcar: 
Mostrar 
moldura 
X: 450 
Título: 
Teste 
Associar ao Tag Ram 
Máximo: 100 Y: 100 
Sequência: 
TagsAplicação 
TagsTag_1tag001 
Adicionar 
Total Ticks: 5 
Largura: 250 
Altura: 180 
 Rode a aplicação em Roda aplicação (F10) e altere os valores do slider, verificando os 
resultados. 
1.5 OBJETO BITMAP 
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. 
Crie um objeto bitmap e ajuste as seguintes configurações: 
 
Geral Tamanho e Pos Moldura 
Sequência: 
Localizar Figuras  
BotStop.bmp 
X: 250 Desmarque: 
Visível 
Click: Tamanho original Y: 200 
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. 
 
 
6 
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. 
Entre no Organizer e na aba Scripts da Aplicação clique em novo e, em seguida, WhileRunning e 
coloque a lógica abaixo: 
IF “nome da tag ram” >= 50 
 “nome do objeto bitmap”.fileName = “caminho para a figura start” 
ENDIF 
Sequência: 
OrganizerAplicaçãoAba ScriptNovoWhileRunning 
 
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 TagsTag_1tag001Click 
, com esse caminho aparecerá o nome da Tag Ram no Script. 
 
 
7 
 
Para o nome do Bitmap é similar, siga a sequência abaixo: 
Appbrowser  Aplicação TelasTela1Bitmap1Marque: AtributosfileNameClick 
 
 
Logo, no Script deve está escrito assim: 
IF tag001 >=50 
Bitmap1.fileName = "C:\Treinamento\Figuras\BotStart.bmp" 
ENDIF 
 
 
 
8 
Ou seja, se o valor da variável for maior ou igual a 50, o Bitmap receberá a Figura Start. 
 
 Rode a aplicação em Monitorar Tela (F8). 
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. 
 Rode a aplicaçãoagora em Roda Aplicação (F10) 
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. 
No mesmo Script WhileRunning anterior, adicione: 
IF tag001 < 50 
Bitmap1.fileName = “C:\Treinamento\Figuras\BotStop.bmp” 
ENDIF 
OU 
Modifique o Script para: 
IF tag001 >=50 
Bitmap1.fileName = "C:\Treinamento\Figuras\BotStart.bmp" 
ELSE 
Bitmap1.fileName = "C:\Treinamento\Figuras\BotStop.bmp" 
ENDIF 
 Rode a aplicaçãoe verifique o Bitmap, alterando a faixa de valores no Slider. 
 
O ELSE significa todos os outros caso diferentes da condição estabelecida. 
 
 
9 
 
 
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. 
Crie um Objeto Texto abaixo ou ao lado do Bitmap e configure: 
Zonas Moldura Tags 
Adicione: Zona 1 Adicione: Zona 2 
Desmarque: 
Título 
Adicione 
Tag Ram 
Mínimo: 0 Mínimo: 51 
Efeito 3D: 
Marque Fora 
Espessura: 5 
Máximo: 50 Máximo: 100 
Mensagem: Parar Mensagem: Seguir 
Fonte: 18 Fonte: 18 
 Rode a aplicação. 
 
Obs1.Opção para iniciar a aplicação com o Bitmap Start 
 
Sequência: 
OrganizerAplicaçãoAba ScriptNovoOnStartRunning 
 
Escreva no Script OnStartRunning 
 
tag001 = 51. 
 
 Rode a aplicação 
 
 
 
10 
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 
Em seguida, adicione ao Script WhileRunning: 
IF tag001 >= 50 
 Siga.visible = 1 
ELSE 
 Siga.visible = 0 
ENDIF 
Usando o App Browser: 
Sequência: 
Appbrowser  Aplicação TelasTela1SigaMarque: AtributosvisibleClick 
 
 
 Rode a aplicação e verifique os resultados. 
 
 
11 
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 
 Como criar um Tag Demo – pág.11 
 Configuração de um Objeto Trend Graph– pág.11 
 Configuração de um Objeto Botão– pág.13 
 Script OnPress– pág.13 
 Script OnRelease– pág.13 
 Opção para verificar os detalhes de um momento no gráfico– pág.14 
 Opção para aumentar o tamanho do Objeto Trend Graph e observar melhor os detalhes– pág.14 
 Significado Tendência1.height – pág.14 
 Significado Tendência1.width – pág.14 
 
2.1 APLICAÇÃO 
Após abrir o programa, crie uma nova aplicação (Nome: Tutorial_Pratica2) e salve o aplicativo na 
pasta SCADA. 
2.2 TAG DEMO 
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: 
OrganizerAplicaçãoNovo Tagtag001 
Crie mais 2 Tags Ram. 
2.3 TREND GRAPH 
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. 
Crie um objeto Trend Graph e configure: 
Gráfico Tamanho e Pos Penas 
 
 
12 
Eixo Y (vertical): 
Lim. Super: 100 
Lim. Inferior: 0 
Largura: 300 
Altura: 200 
Crie 3 penas de desenho  
Label: Renomeie para 
Tag1,Tag2,Tag3 Em Y axis: 
adicione para Tag1, o Tag Demo 
tag001(AplicaçãoTagstag001) 
e assim por diante com os outros 
Tags Ram 
 
 
 
Explicar a diferença entre pena de desenho e marca de tendência. 
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 detendência , em que o eixo X é o 
Tag Demo e o eixo Y é um dos Tags Ram. 
 
 
13 
 
 Rode a aplicação e verifique a diferença entre os gráficos. 
2.3 OBJETO BOTÃO 
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. 
Crie um objeto botão com título Valores. 
 
CrieumScript OnPress no botão e coloque a seguinte lógica: 
tag001 = 71 
Crie outro Script OnReleaseno botão e escreva: 
tag001 = 27 
Sequência para OnPress ou OnRelease: 
Click no botãoAba ScriptsNovoOnPess ou OnRelease 
 
 
14 
 
No Script OnStartRunning da Aplicação coloque a seguinte lógica: 
tag001 = 27 
No Script WhileRunning da Aplicação: 
IF tag001 > 35 
 tag002 = 52 
ELSE 
 tag002 = 11 
ENDIF 
 Rode a aplicação e pressione o botão, segurando e verificando os resultados. 
Obs1. Opção para verificar os detalhes de um momento no gráfico. 
Crie outro botão (Nome: Botão2) com título Aumentar e na aba Geral do mesmo, coloque a 
funcionalidade no modo Liga/Desliga. 
No Script OnPressdeste botão,coloque a seguinte lógica: 
Tendência1.enableDataRec = 0 
No Script OnRelease do botão,coloque a seguinte lógica: 
Tendência1.enableDataRec = 1 
Relembrando o uso do App Browser: 
Sequência: 
 
 
15 
ScriptsNovoOnPressApp Browser TelasTela1Tendência1Marque: 
AtributosenableDataRec 
 
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. 
Complemente o Script do segundo botão (Nome: Botão2): 
Script OnPress: 
Tendência1.height = 400 
Tendência1.width = 600 
Script OnRelease: 
Tendência1.height = 200 
Tendência1.width = 300 
 Rode a aplicação e verifique os resultados, clicando no botão. 
Obs3: Opção para plotar um gráfico do tempo em função do fator de potência. 
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. 
 Rode a aplicação e verifique os resultados. 
 
 
16 
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 
 Configurando um Objeto Display – pág.16 
 Funcionalidades do Objeto Botão – pág.16 
 Configurando uma Tela– pág.17 
 Opção1 de criar um Botão com um Bitmap – pág.18 
 Significado Aplicação.Login( ) – pág.20 
 Significado .Activate( )– pág.20 
 Significado MessageBox– pág.20 
 Como criar um usuário com login e senha – pág.20 
 Opção para fazer um Botão mais sofisticado que, quando pressionado, desabilite um Tag 
Demo – pág.20 
 Significado.enabled – pág.21 
 SignificadoIsMouseInside() – pág.21 
 Opção para verificar os tipos de Botões – pág.21 
 Opção 2 de criar um Botão com um Bitmap – pág.22 
 Opção para criar um Menu Principal, que guie o usuário para as outras telas do sistema – 
pág.23 
 Significado Aplicação.Logout() – pág.24 
 Acionando um Botão pelas teclas F1,F2,...F12 – pág.24 
3.1 APLICAÇÃO 
Após abrir o programa, crie uma nova aplicação (Nome: Tutorial_Pratica3) e salve o aplicativo 
na pasta SCADA. 
3.2 OBJETO DISPLAY 
Crie1 Tag Demo e 1 Tag Ram, nesta coloque na aba Geral, Valor Inicial: 10. 
Crie um botão(Nome: Botão1) e configure na aba Geral, Funcionalidade: Momentâneo e na aba 
Tags: associe ao Tag Ram. 
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. 
 
 
17 
Crie um display e associe o Tag Ram. 
 
 Rode a aplicação. 
Note que esse tipo de botão apenas resseta o Tag. 
Mude a Funcionalidade do botão para Liga/Desliga. 
 Rode a aplicação. 
Perceba que o Tag fica em 1 quando está ligado e 0 quando desligado. 
Agora, mude a Funcionalidade do botão para Jog. 
Crie outro botão (Name = Botão2) com Funcionalidade: Momentâneo, desta vez com a função de 
controlar um evento. 
Coloque no Script OnPress do Botão2: 
(Nome da Tag Ram) = 1 
 Rode a aplicação. 
Note que quando o Botão1 é pressionado, o Tag vai pra 1 e quando é solto o Tag vai pra 0. 
Quando o Botão2 é pressionado, o Tag vai pra 1 e oBotão1 aparece pressionado. 
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. 
Na tela atual mude o Nome e o Título: Tela1 
Sequência: 
Aba TelaPropriedadesNome: ou Título: 
 
 
18 
 
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: NormalLocalizar 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. 
Recorte o Objeto Texto e cole na Tela: Apresentação. 
Perceba que o Objeto Texto fica atrás do Botão3, logo no menu principal, click em 
ArranjarTrazer 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: 
 
 
19 
Abra a figura fundotela.jpg no PaintUtilize a ferramenta Selecionador de Cores no fundo de 
tela Editar coresAnote os parâmetro Matiz, Sat., Lum, Vermelho, Verde, AzulClick no 
Objeto TextoZonasFundoOutrosColoque os parâmetros anotados nos respectivos locais. 
 
Configure a Tela: Apresentação para Tela Inicial. 
Sequência: 
TelaPropriedadesEstiloMarque: Tela Inicial 
 
Crie um Script no Botão3 desta tela. 
 
 
20 
Script OnPress: 
IF Aplicação.Login( ) 
Tela1.Activate( ) 
ELSE 
MessageBox(“O login não foi executado com sucesso”, “Atenção”) 
ENDIF 
Crie um usuário com login: a e senha: a. 
Sequência: 
OrganizerUsuáriosNovoPropriedadesLogin: ou Senha: 
 
 Rode a aplicação. 
Obs1. Opção para fazer um botão mais sofisticado que, quando pressionado, desabilite um Tag 
Demo. 
Na Tela1, crie um botão ( Nome: B1) de Funcionalidade: Liga/Desliga do tipo Bitmap. 
Coloque na aba MensagensNormalLocalizar a figura Bdesliga1.bmp e na mesma 
abaPressionado Localizar a figura Bliga.bmp.eclick em . 
 
 
 
21 
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:Crie um display,associando ao Tag Demo (Nome: tag001). 
No Script OnPress do botão B1coloque: 
(Nome do Tag Demo).enabled = 0 
No Script OnRelease do botão B1coloque: 
(Nome do Tag Demo).enabled = 1 
 
 Rode a aplicação e clique no botão. 
Obs2.Opção para destacar algum objeto quando o mouse ficar em cima dele. 
Crie um Script WhileRunning na Aplicação: 
IF Tela1.Texto1.IsMouseInside() == 1 
B1.bitmap0 = "C:\Treinamento\Figuras\Bdesliga1.bmp" 
ELSE 
B1.bitmap0 = "C:\Treinamento\Figuras\Bdesliga.bmp" 
ENDIF 
 Rode a aplicação e verifique os resultados. 
Obs3. Opção para verificar os tipos de botões. 
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. 
 
 
22 
 
 Rode a aplicação e perceba os estados dos botões. 
Obs4. Outra opção de criar um Botão com um Bitmap. 
Crie um Bitmap, localize a figura computer.bmp e click em . 
 
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. 
Coloque o Botão (Nome: Comp) em cima do Bitmap1 no ArranjarTrazer para frente 
 
Crie uma Tag Demo (Nome = tag003) e um display, associando a Tag Demo (Nome = tag003). 
No Botão (Nome: Comp), coloque no Script OnPress: 
tag003.enabled=0 
Script OnRelease: 
tag003.enabled=1 
 Rode a aplicação. 
Dessa forma o Botão tem a aparência de um Bitmap. 
Escolha um dos botões (Nome: Botão3 a Botão8),mude a Funcionalidade: Liga/Desliga e coloque 
no Script: 
 
 
23 
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. 
Crie uma tela com Nome: e Título: Menu Principal. 
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 . 
 
No Script do botão (Name: Botão3) localizado na Tela: Apresentação escreva: 
Script OnPress: 
Mude Tela1.Activate( ) para a Menu_Principal.Activate( ) . 
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: LogoutIr para tela: Apresentação. 
2º Opção: Escreva no Script do botão com o Bitmap: Logout : 
 
 
24 
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. 
 Rode a aplicação e tecle em logout. 
Obs6.Um botão também pode ser configurado para ser acionado pelas teclas de funções F1, F2, etc. 
Configure obotão com o Bitmap: Logout na aba GeralTecla de Função: F1. 
 Rode a aplicação e tecle F1. 
 
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. 
4.2 OBJETO GAUGE, OBJETO TEXTO E TAG CRONO 
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. 
 
 
25 
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. 
No Script OnValueChanged do Tag Demo: 
IF (Nome do Tag Demo) >= 75 OR (Nome do Tag Demo) <= 25 
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. 
Crie um Tag Crono(Nome: tag002) e um Objeto Display, associando o Display ao acumulador do 
Tag Crono. 
Sequência: 
Aba TagsAplicaçãoObjetos: tag002Propriedades: acumAdicionar 
 
 
26 
 
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. 
Sendo assim, no Script OnValueChanged do Tag Demo acrescente: 
IF (Nome do Tag Demo) >= 75OR (Nome do Tag Demo) <= 25 
(Nome do Tag Crono).enable = 1 
IF (Nome do Tag Crono).acum >= 10 
 TextoVermelho.visible = 1 
TextoPreto.visible = 0 
ELSE 
TextoVermelho.visible = 0 
TextoPreto.visible = 1 
ENDIF 
ELSE 
 
 
27 
TextoVermelho.visible = 0 
TextoPreto.visible = 1 
(Nome do Tag Crono).enable = 0 
(Nome do Tag Crono).Reset () 
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. 
Para reparar, faça cada uma das opções abaixo: 
 Diminuir o tempo da Tag Crono – Coloque no Script OnValueChanged do Tag Demo 
tag002.acum >= 1. 
 Aumentar a faixa do alarme. 
 Aumentar o período do Tag Demo – Coloque na aba Geral: Período: 1000 
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: 
 Reset no início da aplicação – Organizer Aplicação Script 
OnStartRunningtag002.Reset() 
 Marcar a opção Zerar acumulador ao ligar cronômetro. 
 
 
 
28 
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() 
 Rode a aplicação e tecle nesse botão, quandoo alarme for acionado. 
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. 
No Script do botão (Nome: Botão1) com mensagemReconhecimento do alarme: 
Script OnPress: 
(Nome do Tag Crono).enable = 0 
(Nome do Tag Demo).enabled = 0 
TextoPreto.visible = 1 
Script OnRButtonUp: 
(Nome do Tag Demo).enabled = 1 
 Rode a aplicação fazendo esse procedimento. 
Perceba que os valores do Tag Demo e Crono são paralisados e retornam quando o botão direito é 
pressionado. 
Obs3. Opção para destacar um texto. 
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: 
IF (Nome do Tag Crono). acum>= 10 
 .. 
 .. 
(Nome do Tag Ram) = 1 
ELSE 
 
 
29 
 .. 
 .. 
(Nome do Tag Ram)= 0 
ENDIF 
Quando o alarme for reconhecido o texto deve estar preto também, portanto: 
No script do botão Reconhecimento de alarme: 
Script OnPress: 
Adicione (Nome do Tag Ram) = 0 
 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. 
No Script While Running do Organizer  Aplicação: 
IF TextoVerde.IsMouseInside() == 1 
 
 
30 
 TextoVerde.visible = 1 
TextoPreto2.visible = 0 
ELSE 
TextoVerde.visible = 0 
TextoPreto2.visible = 1 
ENDIF 
 Rode a aplicação e aproxime o mouse do texto. 
 
No Script While Running do Organizer  Aplicação mude o tempo de Rodar a cada: 100msec 
 
 Rode a aplicação e aproxime o mouse do texto. 
 
4.3 FLUXO REPET – UNTIL 
Esse comando executa uma instrução até que uma condição seja verdadeira, por esse motivo ele não 
é utilizado pelos programadores. 
Crie um Bitmap com Nome: Alarme e Localize:Bot alarme.bmp. 
 
Para que o Bitmap apareça quando o Tag Crono for maior que 30 programe: 
No Script OnValueChangeddo Tag Demo: tag001 adicione: 
REPEAT 
 Alarme.visible = 1 
UNTIL tag002.acum >= 30 
 Salve o programa e Rode a aplicação. 
 
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. 
 
No Script OnPress do Botão2 escreva: 
 
 
 
31 
REPEAT 
(Nome do Tag Ram) += 1 
UNTIL(Nome do Tag Ram) == 50000 
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. 
 
Escreva no Script OnPess do Botão1: 
REPEAT 
 tag003 += 1 
 Gauge1.visible =1 
UNTIL tag003 == 50000 
 Gauge1.visible =0 
 Salve e Rode a aplicação. 
 
Perceba que o Gauge1 fica visível por um determinado tempo, 4s no caso. 
Obs5: Opção para fazer o Gauge1 ficar visível por 10s. 
Mude no Script OnPess do Botão1: 
tag003 == 50000 para tag003 == 125000 
5ª PRÁTICA 
5.0 RESUMO 
 Configuração do Objeto Bar Graph – pág.32 
 Opção de usar o Bar Graph como indicação de nível– pág.32 
 Opção para colocar a mesma cor de fundo da Tela em um Objeto, pois ele não tem a opção 
transparente– pág.33 
 Tag Expressão– pág.34 
 Opção para mostrar valores da escala de nível visualmente, pelo menos o máximo e o mínimo 
permitido– pág.34 
 Como mostrar um alarme para quando o nível estiver maior que o máximo definido ou menor 
que o mínimo definido– pág.35 
 Opção para farer o texto piscar– pág.35 
 
 
32 
 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. 
5.2 OBJETO BAR GRAPH 
É usado para visualização de dados na forma de volume. 
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. 
 Rode a aplicação e mova os botões do Slider, verificando a coluna do Tag Demo. 
Na aba Geraldo Bar Graph, existe outros tipos de orientação, rode a aplicação verificando cada um 
deles. 
Obs1.Opção de usar o Bar Graph como indicação de nível. 
Crie outra tela e em Propriedades da Tela, na aba Geral, Marque: Bitmap e Localize: c1.bmp. 
 
 
33 
 
Nesta Tela, crie um Bar Graph com as configurações abaixo: 
Aba Geral Aba Tamanho 
e Pos 
Aba Moldura Aba Tags Aba Cores das 
Barras 
Aba régua 
Mínimo: 0 
Máximo: 100 
Largura: 300 
Altura: 200 
Efeito 3D : 
Nada 
Adicione: 
tag001 
Cor: azul Desmarque: 
Habilita 
Espaçamento: 0 X: 124 
Y:344 
Desmarque: 
Visível 
 
Desmarque: 3D 
Copie da Tela1 o Slider1 que está associado ao respectivo Tag Ram: tag001 e cole na Tela2. 
Na Tela2 em Propriedades da Tela, aba Estilo, Marque: Tela inicial. 
 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. 
Abra a figura c1.bmp.no paint e observe as configurações do fundo. 
Matiz: 65 Vermelho: 240 
Sat: 202 Verde: 253 
Lum: 228 Azul: 232 
 
 
34 
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. 
 
5.3 TAG EXPRESSÃ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 OrganizerTagstag004Expressã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. 
Crie 2 displays, um associado ao Tag Ram e o outro associado ao Tag Expressão. 
 Rode a aplicação e observe os valores. 
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. 
 
 
35 
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. 
Crie um Objeto Bitmap e Localize: BT_ILUMINACAO_apagado.bmp. 
 
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. 
Crie um Objeto Textocom Mensagem: Perigo e Nome: Perigo. 
Crie um Script WhileRunning no OrganizerAplicação: 
IF tag001>= 50 OR tag001 <= 25 
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. 
Agora faremos o texto piscar. 
Adicione ao Script WhileRunning: 
 
 
36 
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 OrganizerAplicaçãoAba ScriptWhileRunningRodar a cada. 
 Rode a aplicação e coloque o Slider1 na faixa de alarme. 
Obs5. Opção para que a luz esteja sempre apagada e o texto esteja sempre invisível quando a 
aplicação iniciar. 
No Script OnStarRunning em OrganizerAplicaçãoAba Script: 
Bitmap1.fileName = ('C:\Treinamento\Figuras\BT_Iluminacao_apagado.bmp') 
Perigo.visible = 0 
tag001 = 40 
 
 
 
37 
5.4 COMANDO WHILE 
Na maioria das aplicações este comando está associado com alguma variável. 
Crie outro Tag Ram (tag005) e em Valor Inicial coloque 50000. 
Crie um Objeto Botão (Botão1) e no Script OnPress do mesmo, escreva: 
WHILEtag005>= 100 
 tag005 += 1 
END 
Essa expressão tag005 += 1 significa que tag005= tag005+ 1 
Esse Script gera um loop infinito. 
 Salve e rode a aplicação. 
Obs6. Opção paragerar um tempo. Esse tempo é importantíssimo para algumas animações. 
Coloque no Valor Inicial do tag005: 0 e no Script OnPress do Botão (Botão1), apague a 
programação existente e escreva: 
WHILEtag005<= 50000 
 tag005 += 1 
WEND 
Crie um Objeto Display e associe a tag005 para visualizar o tempo. 
 Salve e rode a aplicação. 
6ª PRÁTICA 
6.0 RESUMO 
 Script OnKeyPress – pág.39 
 
 
38 
 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. 
6.2 OBJETO DISPLAY E OBJETO ANIMAÇÃO 
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. 
 
 
 
39 
Crie outra Tela (Tela2) com Título: Tela2 e crie na Tela2, um Display. 
Na Tela1,crie um Objeto Texto com as configurações mostradas na tabela abaixo. 
Aba Zonas Aba Tamanho e Pos Aba Moldura 
Mensagem: Tecle Enter 
para Entrar 
X: 380 Desmarque: Visível 
Fonte: Arial Tamanho: 16 Y: 230 
Marque: Transparente e 
Zona Padrão 
 
Cor do Texto: Amarelo 
Em OrganizerAplicaçãoScriptsNovoSelecione OnKeyPressCombinação de 
teclasAperte EnterOk 
 
No Script OnKeyPressReturn criado acima, escreva: 
IF Aplicação.Login( ) 
Tela2.Activate( ) 
ELSE 
MessageBox(“O login não foi executado com sucesso”, “Atenção”) 
 
 
40 
ENDIF 
Em OrganizerUsuáriosNovoPropriedadesLogin: a e Senha: a 
 Rode a aplicação e tecle Enter. 
Obs1. Opção para o Objeto Texto se mover na Tela. 
Crie um Tag Demo do Tipo: Dente de serra crescente,Limite Inferior: 200 e Limite Superior: 500 e 
Nome: Passo. 
No Script OnValueChanged do Tag Demo (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. 
Altere os Limites Inferior e Superior do Tag Demo (Passo) e observe. 
 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. 
 
 
41 
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 textofique se movimentando horizontalmente no meio da tela. 
Coloca-seo Limite Inferior: 200 e o Superior: 600 no Tag Demo (Visual). 
Obs5. Opção para colocar o texto se movimentando na vertical. 
Troque o atributo X pelo Y no Script do Tag Demo (Visual). 
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çãouserLogin; 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. 
Deixe os Objetos Display1 e Texto1 um ao lado do outro. 
Obs7. Opção para visualizar a hora atual. 
Crie outro Display (Display2) na Tela2 e na aba Tags, Adicione: Gerenciador Global.currentTime ( 
Selecione Gerenciador GlobalcurrentTime; 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. 
 
 
42 
6.3 NÍVEL DE ACESSO 
Define o grau de acessibilidade para os usuários. 
Crie outro usuário (Usuário2) com o Login e Senha: b e Nível de Acesso:1. 
Na Tela2, crie 2 Objetos Botões (Botão1 e Botão2) e 2 Sliders (Slider1 e Slider2). 
Configure o nível de acessibilidade de acordo com a tabela abaixo: 
Aba Tamanho e 
Pos 
Botão1 Botão2 Slider1 Slider2 
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 
Pos 
Botão1 Botão2 Slider1 Slider2 
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. 
 Rode a aplicaçãoe entre com os 4 usuários, observando os resultados. 
Observe que o usuário apenas acessa o objeto que possui o nível de acesso maio ou igual ao seu. 
Obs8. Realizar um evento de acordo com a hora. 
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. 
Crie um Tag Ram com Nome: ECA. 
Associe o Botão1 ao Tag ECA, assim como o Slider1. 
No Script WhileRunning do Organizer Aplicação: 
 
 
43 
IF hour==15 AND minute== 3 
 ECA = 35 
Botão1.visible = 1 
ENDIF 
No Script OnStartRunning do Organizer Aplicação: 
Botão1.visible = 0 
 Rode a aplicação e entre com o usuário de máximo acesso. 
Para a hora ser mais específica, adicione um AND no Script WhileRunning e coloque os second == 
30 
6.4 OBJETO ANIMAÇÃO 
Objeto queadiciona zonas de bitmaps sequenciados, dando ideia de movimento. 
Crie outro Objeto Botão na Tela2com Mensagem: Próxima e coloque no canto superior direito. 
Crie uma nova Tela com Nome e Título: Tela3. 
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 
 e na aba Tags, associe ao Tag ECA. 
Crie um Objeto Slider (Slider1) e adicione ao Tag ECA, na aba Geral, coloque Valor Mínimo: 0 e 
Valor Máximo: 3. 
 Rode a aplicação e troque os valores do Tag ECA no Slider1. 
 
 
44 
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. 
Crie um Objeto Botão ( Botão1) do tipo Liga/Desliga. 
No Script OnPress do Botão1: 
Animar.enabled = 1 
No Script OnRelease do Botão1: 
Animar.enabled = 0 
 Rode a aplicação. 
Obs10: Opção para que o Tag Animar comece desabilitado. 
No Script OnStartRunning do OrganizerAplicação: 
Animar.enabled = 0 
 Rode a aplicação. 
Obs11.Opção para mudar o sentido de rotação das pás. 
A maneira mais simples é trocar o tipo do Tag Animar para Dente de serra decrescente. 
Obs12. Animação para controlar se um reservatório está sendo preenchido ou secado. 
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. 
 
 
45 
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. 
No Script OnPress do Botão2: 
Animar1.highLimit = 1 
Animar1.lowLimit = 0 
No Script OnReleasedo Botão2: 
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. 
No Script OnPress do Botão3: 
Animar1.highLimit = 2 
Animar1.lowLimit = 1 
No Script OnRelease do Botão3: 
Animar1.highLimit = 1 
 
 
46 
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 OrganizerAplicação. 
 Rode a aplicação e tecle nos botões. 
7º PRÁTICA 
7.0 RESUMO 
 Configuração de um Objeto Set point – pág.46 
 Opção para um evento desabilitar visualmente um Set Point ou uma Figura– pág.48 
 Opção para criar uma tela com possibilidades para configurar parâmetros para determinada 
aplicação– pág.48 
 Significado.Show ( )– pág.49 
 Significado .Hide ( )– pág.50 
 Opção para criar uma mensagem de aviso– pág.50 
 Opção para mostrar mais uma mensagem para o administrador quando ele clica em Cancel– 
pág.51 
 Outras opções para usar o MessageBox– pág.52 
 Script OnLButtonDown– pág.52 
 Outro estilo de MessageBox com os Botões: Sim, Não e Cancel– pág.53 
7.1 APLICAÇÃO 
Após abrir o programa, crie uma nova aplicação (Nome: Tutorial_Pratica5) e salve o aplicativo 
na pasta SCADA. 
7.2 OBJETO SET POINT E MESSAGE BOX 
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 
 
 
47 
 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. 
Entenderemos melhor a função do Set Point implementando a seguinte lógica: 
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 aoligar 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. 
No Script OnStartRunning do Organizer Aplicação, escreva: 
RAM1 = 3 
DEM.enabled = 1 
Crono1.enable = 1 
Crono2.enable = 1 
No Script WhileRunningdo Organizer Aplicação, escreva: 
IF RAM1 == 4 
RAM2 = 17 
DEM.enabled = 0 
 Crono1.Reset ( ) 
ENDIF 
 
 
48 
 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. 
Crie um botão do tipo Liga/Desliga,com Mensagem: Parâmetros do inversor. 
No Script OnPress do Botão: 
Setpoint1.textColor = RGB (148, 148, 148) 
Setpoint1.Moldura.titleColor = RGB (148,148,148) 
Setpoint2.textColor = RGB (148, 148, 148) 
Setpoint2.Moldura.titleColor = RGB (148,148,148) 
O 1º comando atribui uma cor para o textoe o 2º comando atribui a mesma cor para a moldura. 
No Script OnRelease do Botão: 
Setpoint1.textColor = 0 
Setpoint1.Moldura.titleColor = 0 
Setpoint2.textColor = 0 
Setpoint2.Moldura.titleColor = 0 
Nesse Script as cores voltam ao normal. 
 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. 
Copie o que está escrito no Script OnRelease do Botão e cole no OnStartRunning do 
OrganizerAplicação. 
 
 
49 
Obs2. Opção para criar uma tela com possibilidades para configurar parâmetros para determinada 
aplicação. 
Crie mais 5 Set Points com as configurações dada na tabela abaixo: 
Set Point: Setpoint6 Setpoint7 Setpoint8 Setpoint9 Setpoint10 
Tag para 
adicionar: 
Crono1 Crono2 DEM RAM1 RAM2 
Título: Tempo1 Tempo2 Velocidade Tensão Corrente 
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. 
Crie mais 3 Tags Ram com os Nome: RAM1, RAM2 e RAM3. 
Crie 5 Set Points na Tela2 e configure como a tabela abaixo: 
Set Points: Setpoint1 Setpoint2 Setpoint3 Setpoint4 Setpoint5 
Título: Freq.Mín. Freq.Máx. TempoAcel./Desacel. NovaTensão NovaCorrenteN 
Tags para 
Adicionar: 
RAM3 RAM4 RAM5 RAM1 RAM2 
Na Tela 1, crie um Bitmap, Localize a figura: motores.bmp e click . 
 
No Script OnPress do Botão Parâmetros do inversor, escreva: 
 
 
50 
Tela 2. Show ( ) 
No Script OnRelease do Botão Parâmetros do inversor, escreva: 
Tela 2. Hide( ) 
 Rode a aplicação e click no botão, verificando os resultados. 
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. 
Obs3. Opção para criar uma mensagem de aviso 
No Script OnPress do Botão, siga o caminho: 
APP Browser Gerenciador GlobalMessageBox, escrevano início do Script: 
MessageBox(“Deseja realmente parametrizar o inversor?”,”Cuidado”, 01h) 
 Rode a aplicação. 
Verifique que, para qualquer atitude sua, a continuação do Script OnPress será executada. Isto é um 
problema. 
Obs4.Opção para que isso não ocorra. 
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. 
Então, coloca-se um IFantes do MessageBox. Se esse MessageBox == 1, os comandos dentro do IF 
será executado. 
IF MessageBox("Deseja realmente parametrizar o inversor?","Cuidado", 01h) ==1 
Tela1.Setpoint1.textColor = RGB (148, 148, 148) 
 Tela1.Setpoint1.Moldura.titleColor = RGB (148,148,148) 
 
 
51 
 Tela1.Setpoint2.textColor = RGB (148, 148, 148) 
 Tela1.Setpoint2.Moldura.titleColor = 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. 
A 1ª é usar o ELSEIF, acrescente no Script: 
IF MessageBox("Deseja realmente parametrizar o inversor?","Cuidado", 01h) ==1 
Tela1.Setpoint1.textColor = RGB (148, 148, 148) 
 Tela1.Setpoint1.Moldura.titleColor = RGB (148,148,148) 
 Tela1.Setpoint2.textColor = RGB (148, 148, 148) 
 Tela1.Setpoint2.Moldura.titleColor = RGB (148,148,148) 
Tela2.Show() 
ELSEIF MessageBox("Os parâmetros não foram modificados.","Aviso",0h) == 2 
ENDIF 
A 2ª forma seria trocar o ELSEIF pelo ELSE e colocar a função MessageBox na linha seguinte sem 
igualdade. 
IF MessageBox("Deseja realmente parametrizar o inversor?","Cuidado", 01h) ==1 
Tela1.Setpoint1.textColor = RGB (148, 148, 148) 
 
 
52 
 Tela1.Setpoint1.Moldura.titleColor = RGB (148,148,148) 
 Tela1.Setpoint2.textColor = RGB (148, 148, 148) 
 Tela1.Setpoint2.Moldura.titleColor = RGB (148,148,148) 
Tela2.Show() 
ELSE 
MessageBox("Os parâmetros não foram modificados.","Aviso",0h) 
ENDIF 
Obs6. Outras opções para usar oMessageBox. 
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. 
No Script OnLButtonDown do Set point da Freq.Máx., escreva: 
IF MessageBox("Tem certeza que deseja mudar a frequência máx?","Cuidado",4h) == 6 
Tela2.Setpoint2.enabled = 1 
ELSEIF MessageBox("A frequência ainda é a mesma.","Aviso", 0h) == 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. 
 Rode a aplicação e clique no Set Point Freq.Máx. 
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 
 
 
53 
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. 
Então, coloque no Script OnPress do Botão Parâmetros do inversor: 
IF MessageBox("Deseja realmente parametrizar o inversor?","Cuidado", 01h) ==1 
Tela2.Setpoint2.enabled = 1 
 ... 
ENDIF 
 Rode a aplicação e perceba a diferença. 
Obs7. Outro estilo de MessageBox com os Botões: Sim, Não e Cancel. 
No Script ONLButtonDown do Set Point TempoAcel./Desacel., coloque a cópia do Script do Set 
Point Freq.Máx.,mudando o Set Point para TempoAcel./Desacel., nas mensagens que tem escrito 
Freq.Máx. coloque TempoAcel./Desacel. e mude o estilo pra 3h. Acrescente: 
IF MessageBox("Tem certeza que deseja mudar a TempoAcel./Desacel. ?","Cuidado",3h) == 6 
Tela2.Setpoint3.enabled = 1 
ELSEIF MessageBox("Tem certeza que deseja mudar a TempoAcel./Desacel.","Aviso", 3h) == 7 
MessageBox("O tempo ainda é a mesma.","Cuidado",0000h) 
Tela2.Setpoint3.enabled = 0 
ENDIF 
No Script OnPress do Botão acrescente: 
IF MessageBox("Desejarealmente parametrizar o inversor?","Cuidado", 01h) ==1 
 
 
54 
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‟. 
O Script do Set Point TempoAcel./Desacel ficará: 
IF MessageBox("Tem certeza que deseja mudar a TempoAcel./Desacel. ?","Cuidado",3h) == 6 
Tela2.Setpoint3.enabled = 1 
ELSE 
MessageBox("O tempo ainda é a mesma.","Cuidado",0000h) 
Tela2.Setpoint3.enabled = 0 
ENDIF 
 Faça essa alteração e rode a aplicação 
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á: 
IF MessageBox("Tem certeza que deseja mudar a TempoAcel./Desacel. ?","Cuidado",3h) == 6 
Tela2.Setpoint3.enabled = 1 
 
 
55 
 WHILE MessageBox("Esse parâmetro não pode ser alterado.","Cuidado",5h) == 4 
Tela2.Setpoint3.enabled = 0 
 WEND 
ELSE 
MessageBox("O tempo ainda é a mesma.","Cuidado",0000h) 
Tela2.Setpoint3.enabled = 0 
ENDIFO Botão Repetir retorna a 4. 
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. 
 Rode a aplicação e observe essas propriedades. 
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. 
Abra a pasta material auxiliar no CD, e verifique o arquivo Parâmetros do MessageBox. 
8ª PRÁTICA 
8.0 RESUMO 
 Configuração do Objeto alarme – pág.56 
 Opção para criar uma tela de histórico de alarmes– pág.58 
 Os valores do Tag para outros eventos– pág.59 
 Tag Matriz– pág.60 
 Significado .SetCell– pág.60 
 Opção para ressetar as células no início da aplicação– pág.62 
 Opção para Utilizar o Tag Crono para mostrar uma visualização de alarme– pág.62 
 
 
56 
8.1 APLICAÇÃO 
8.2 OBJETO ALARME 
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. 
Crie um Objeto Alarme com Título: Falhas Ativas. 
Crie um Grupo de Alarmes em OrganizerAlarmesNovo Grupo de Alarmes. 
 
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 emOrganizerTagsRAM1/RAM2/DEMO1/DEMO2Alarmes. Mude 
os Limites Superior dos Tags Demo para 100. 
 
 
57 
 
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. 
 
 
58 
 
 Rode a aplicação, movendo os Sliders e verificando os limites de alarme. 
Obs1. Opção para criar uma tela de histórico de alarmes. 
Crie uma Tela com Nome: Alarmes e Cor de fundo: Claro. 
Crie um Objeto Texto, Mensagem: Alarmes e Cor de fundo: Escura. 
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. 
 
 
 
59 
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. 
 Rode a aplicação e verifique os registros do histórico. 
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. 
Crie um Bitmap e Localize: BMBD.BMP 
Crie um Botão com a Mensagem:Liga Motor. 
No Script OnPress do botão: 
Bitmap1.fileName = (“figuras\bmb.bmp”) 
No Script OnAlarm do Tag Ram(RAM1): 
Tela1.Bitmap1.fileName = ("figuras\bmbe.jpg") 
Quando o alarme está ativo, a figura do motor será vermelha. 
 
 
60 
No Script OnAlarmReturndo Tag Ram(RAM1):: 
Tela1.Bitmap1.fileName = ("figuras\bmbd.bmp") 
Quando o valor volta pra faixa normal, o motor aparecerá desligado. 
 Rode a aplicação e verifique os resultados. 
Outra lógica importante é que o motor só poderá estar ligado quando o Tag estiver em seu estado 
normal. 
No Script OnPress do Botão: 
IFBitmap1.fileName == ("figuras\bmbd.bmp") 
Bitmap1.fileName = ("figuras\bmb.bmp") 
ENDIF 
8.3 TAG MATRIZ 
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 outra Tela com Título: Incêndio. 
Crie um Tag Matriz com Nome: Matriz, 5 Colunas e 1 Linha, em Associar, configure como na 
figura abaixo. 
 
 
61 
 
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. 
Crie um Tag Ram no mesmo Grupo Incêndio com Nome: Setor 
Coloque no Script WhileRunning em Organizer Aplicação: 
IF Andar1 == 1 
 Setor = 1 
ELSEIF Andar2 == 1 
 Setor = 2 
ELSEIFAndar3 == 1 
 Setor = 3 
 
 
62 
ELSEIFAndar4 == 1 
 Setor = 4 
ELSEIFAndar5 == 1 
 Setor = 5 
ENDIF 
Matriz.SetCell (1, Setor, 3) 
Em seguida a estas linhas de comando, de acordo com o valor do setor, uma das células receberá o 
valor desejado. 
Crie 5 Botões do Tipo: Liga/desliga, em cada um associe as 5 Tags Ram (Andar1,.....,Andar5). 
Crie 5 Displays,cada um associado com uma célula do Tag Matriz. 
Crie um Botão com Mensagem: Incêndio Controlado, para ressetar os alarmes. 
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. 
 Rode a aplicação e verifique os resultados. 
 
 
63 
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. 
Obs2. Opção para ressetar as células no início da aplicação. 
Copie o Script do Botão: Incêndio Controlado e cole no Script OnStartRunning em Organizer 
Aplicação. 
Obs3. Opção para Utilizar o Tag Crono para mostrar uma visualização de alarme. 
Crie um Tag Crono com Nome: Crono dentro do Grupo Incêndio. 
Cada Botão que simula o valor do alarme deve, quando pressionado, acionar o Tag Crono.Crie um Bitmap e Localize: Alarme.bmp click . 
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. 
Para isso, no Script WhileRunning do Organizer Aplicação: 
IF Crono.acum>= 10 
 Crono.enable = 0 
 Crono.Reset ( ) 
Tela3.Bitmap1.visible = 1 
ENDIF 
No Script OnStartRunningdo Organizer Aplicação: 
Tela3.Bitmap1.visible = 0 
Crono.resetAcum =0 
No Script OnPressdo Botão Incêndio Controlado: 
 
 
64 
Tela3.Bitmap1.visible = 0 
Crie um Botão com Mensagem: Alarme e no Script OnPress desse Botão escreva: 
Crono.enable=1 
Crie um Display e adicione Crono.acum. 
 Rode a aplicação e verifique os resultados.

Outros materiais