Você está na página 1de 69

APOSTILA DE

ELIPSE SCADA

Professor rick Arago Ribeiro


Instituto Federal de Educao, Cincia e Tecnologia

SUMRIO
1 PRTICA PG.1

Como criar um Tag Ram pg. 1.


Configurao de um Objeto Slider pg. 2.
Como adicionar um Tag ao Objeto pg.2
Configurao de um Objeto Gauge pg. 4.
Como inserir imagens usando o Objeto Bitmap pg. 5.
Como Utilizar o App Browser pg. 5.
Script WhileRunning pg.6
Significado do .fileName pg.7
Configurando um Objeto Texto pg. 9
Script OnStartRunning pg.9
Opo para um Objeto Bitmap aparecer atravs de um evento pg. 10
Significado .visible pg.10

2 PRTICA PG.11

pg.14

Como criar um Tag Demo pg.11


Configurao de um Objeto Trend Graph pg.11
Configurao de um Objeto Boto pg.13
Script OnPress pg.13
Script OnRelease pg.13
Opo para verificar os detalhes de um momento no grfico pg.14
Opo para aumentar o tamanho do Objeto Trend Graph e observar melhor os detalhes
Significado Tendncia1.height pg.14
Significado Tendncia1.width pg.14

3 PRTICA PG.16

Configurando um Objeto Display pg.16

Funcionalidades do Objeto Boto pg.16

Configurando uma Tela pg.17

Opo1 de criar um Boto com um Bitmap pg.18

Significado Aplicao.Login( ) pg.20

Significado .Activate( ) pg.20

Significado MessageBox pg.20

Como criar um usurio com login e senha pg.20

Opo para fazer um Boto mais sofisticado que, quando pressionado, desabilite um Tag
Demo pg.20

Significado.enabled pg.21

SignificadoIsMouseInside() pg.21

Opo para verificar os tipos de Botes pg.21

Opo 2 de criar um Boto com um Bitmap pg.22

Opo para criar um Menu Principal, que guie o usurio para as outras telas do sistema
pg.23

Significado Aplicao.Logout() pg.24


Acionando um Boto pelas teclas F1,F2,...F12 pg.24

4 PRTICA PG.25

Opo para criar 2 textos com letras de cores diferentes, j que no Script do Objeto Texto no
se tem acesso a cor da letra pg.25

Script OnValueChanged pg.25

Opo para que o Objeto Texto aparea aps um tempo quando o Tag Demo estiver acima do
limite mximo ou abaixo do limite mnimo. pg.25

Tag Crono pg.25

Siginificado .acum pg.25

Siginificado .Reset () pg.27

Script OnRButtonUp pg.28

Opo para destacar um texto. pg.28

Opo para destacar um texto quando o mouse estiver sobre ele. pg.29

Opo para que o Bitmap aparea quando o Tag Crono for maior que um tempo pg.30

Fluxo repet until pg.30

(Nome do Tag Ram) += 1 pg.30

Opo para fazer um objeto ficar visvel por um determinado tempo pg.30
5 PRTICA PG.32

Configurao do Objeto Bar Graph pg.32

Opo de usar o Bar Graph como indicao de nvel pg.32

Opo para colocar a mesma cor de fundo da Tela em um Objeto, pois ele no tem a opo
transparente pg.33

Tag Expresso pg.34

Opo para mostrar valores da escala de nvel visualmente, pelo menos o mximo e o mnimo
permitido pg.34

Como mostrar um alarme para quando o nvel estiver maior que o mximo definido ou menor
que o mnimo definido pg.35

Opo para farer o texto piscar pg.35

Opo para que a luz esteja sempre apagada e o texto esteja sempre invisvel quando a
aplicao iniciar pg.36

Como usar o comando While pg.37

Opo para gerar um tempo pg.37


6 PRTICA PG.39

Script OnKeyPress pg.39

Opo para o Objeto Texto se mover na Tela pg.40

Significado .x pg.40

Opo para que o texto caminhe na tela toda, desaparea no final gradualmente e aparea no

incio gradualmente pg.40

Podemos observar com outro tipo de Tag Demo o efeito causado no movimento o Objeto

Texto pg.40

Opo para que esse texto fique se movimentando horizontalmente no meio da tela pg.41

Opo para colocar o texto se movimentando na vertical pg.41

Significado .y pg.41

Opo para colocar numa das telas, o usurio que est logado no sistema pg.41

Opo para visualizar a hora atual pg.41

Nvel de acesso pg.42

Como realizar um evento de acordo com a hora pg.42

Objeto Animao pg.44

Opo para que a animao fique acionada por um evento e fique em movimento pg.44

Opo para que o Tag Animar comece desabilitado pg.44

Opo para mudar o sentido de rotao das ps pg.44

Animao para controlar se um reservatrio est sendo preenchido ou secado pg.44

Significado .highLimit pg.45

Significado .lowLimit pg.45

7 PRTICA PG.46

Configurao de um Objeto Set point pg.46

Opo para um evento desabilitar visualmente um Set Point ou uma Figura pg.48

Opo para criar uma tela com possibilidades para configurar parmetros para determinada

aplicao pg.48

Significado.Show ( ) pg.49

Significado .Hide ( ) pg.50

Opo para criar uma mensagem de aviso pg.50

Opo para mostrar mais uma mensagem para o administrador quando ele clica em Cancel

pg.51

Outras opes para usar o MessageBox pg.52

Script OnLButtonDown pg.52

Outro estilo de MessageBox com os Botes: Sim, No e Cancel pg.53

8 PRTICA PG.46

Configurao do Objeto alarme pg.56

Opo para criar uma tela de histrico de alarmes pg.58

Os valores do Tag para outros eventos pg.59

Tag Matriz pg.60

Significado .SetCell pg.60

Opo para ressetar as clulas no incio da aplicao pg.62

Opo para Utilizar o Tag Crono para mostrar uma visualizao de alarme pg.62

INTRODUO
O tutorial a seguir ensina a usar ferramentas bsicas do supervisrio Scada do Elipse,
Todas as aplicaes devem ser salvas em pasta no C.
Crie uma pasta com nome SCADA.
Coloque na pasta SCADA as pastas Figuras, Driver, Material auxiliar, Exerccio, Biblioteca e
Projetos finais.
1 PRTICA
1.0 RESUMO

Como criar um Tag Ram pg. 1.


Configurao de um Objeto Slider pg. 2.
Como adicionar um Tag ao Objeto pg.2
Configurao de um Objeto Gauge pg. 4.
Como inserir imagens usando o Objeto Bitmap pg. 5.
Como Utilizar o App Browser pg. 5.
Script WhileRunning pg.6
Significado do .fileName pg.7
Configurando um Objeto Texto pg. 9
Script OnStartRunning pg.9
Opo para um Objeto Bitmap aparecer atravs de um evento pg. 10
Significado .visible pg.10

1.1 APLICAO
Aps abrir o programa, crie uma nova aplicao
na pasta SCADA.

(Nome: Tutorial_Pratica1) e salve o aplicativo

1.2 TAG RAM


Definio:
Tag Ram uma varivel auxiliar no sistema, usada internamente para armazenar valores em
memria. Este tipo de tag voltil, portanto mantm seus valores somente enquanto a aplicao
est sendo executada.
A superviso de um processo com o Elipse SCADA ocorre atravs da leitura de variveis de
processos no campo. Os valores dessas variveis so associados a objetos do sistema chamados
tags.Os tags so todas as variveis (numricas ou alfanumricas) envolvidas numa aplicao.
Para uma melhor organizao da criao dessas variveis,crie um grupo de tags e em seguida crie
uma Tag Ram.
Sequncia:

Organizer
Aplicao TagsNovo Grupo (Nome: Tag_1)Novo Tag Tag Ram
(Nome: tag001)

1.3 OBJETO SLIDER


Definio:
O Objeto Slider usado para ler ou escrever valores no tag a ele associado.Voc pode atribuir
valores ao tag selecionado deslizando o potencimetro (boto deslizante) ou usando as setas de
direo 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 configuraes:

Geral
Mnimo: 0
Mximo: 100
Passo: 2
Marcar: Limites do
slider
Marcar: Mostrar

Tamanho e
Pos
X: 100
Y: 100

Moldura

Tags

Efeito 3D: Fora


Espessura: 5

Associar ao Tag Ram

Largura: 250
Altura: 70

Ttulo
Texto: Teste

Sequncia:
TagsAplicao
TagsTag_1tag001
Adicionar

valor

1.4 OBJETO GAUGE


Para verificar as propriedades do Objeto Slider cria-se um Objeto Gauge,que tem a funo de
mostrar o valor de variveis analgicas, associadas a ele, de forma contnua.
Crie um Objeto Gauge

e ajuste as seguintes configuraes:

Geral
Mnimo: 0
Mximo: 100
Total Ticks: 5

Avanado
Marcar:
Grossas
Marcar:
Mostrar
moldura

Tamanho e Pos
X: 450
Y: 100
Largura: 250

Moldura

Ttulo:
Teste

Altura: 180

Rode a aplicao em Roda aplicao


resultados.

Tags
Associar ao Tag Ram
Sequncia:
TagsAplicao
TagsTag_1tag001
Adicionar

(F10) e altere os valores do slider, verificando os

1.5 OBJETO BITMAP


Definio:
Objeto Bitmap permite inserir imagens, figuras ou desenhos nas telas de sua aplicao, 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 transparncia, bastando habilitar e selecionar uma cor.
Grande aliados na criao e edio das figuras de animao ou de estado simples so o Paint e o
Photoshop.
Crie um objeto bitmap

e ajuste as seguintes configuraes:

Geral
Sequncia:
Localizar Figuras
BotStop.bmp
Click: Tamanho original

Tamanho e Pos

Moldura

X: 250

Desmarque:
Visvel

Y: 200

1.5.1 APPBROWSER
O AppBrowser uma importante ferramenta do Organizer. Ele composto de uma janela que
apresenta a rvore da aplicao com seus objetos.

Definio:
Clicando em qualquer objeto, podem-se visualizar as funes e atributos relacionados a este objeto.
Quando estamos escrevendo um script, um boto Copia no Script fica disponvel nesta janela,
permitindo a cpia do atributo ou funo em questo para as linhas de programao, facilitando essa
tarefa.
Entre no Organizer e na aba Scripts da Aplicao clique em novo e, em seguida, WhileRunning e
coloque a lgica abaixo:
IF nome da tag ram >= 50
nome do objeto bitmap.fileName = caminho para a figura start
ENDIF
Sequncia:
OrganizerAplicaoAba ScriptNovoWhileRunning

Vamos usar o App Browser para encontrar o nome da Tag Ram e do Objeto Bitmap.
Sequncia:
Na tela acima abra o App Browser

Aplicao TagsTag_1tag001Click

, com esse caminho aparecer o nome da Tag Ram no Script.

Para o nome do Bitmap similar, siga a sequncia abaixo:


Appbrowser

Aplicao TelasTela1Bitmap1Marque: AtributosfileNameClick

Logo, no Script deve est escrito assim:


IF tag001 >=50
Bitmap1.fileName = "C:\Treinamento\Figuras\BotStart.bmp"
ENDIF

Ou seja, se o valor da varivel for maior ou igual a 50, o Bitmap receber a Figura Start.

Rode a aplicao em Monitorar Tela

(F8).

Vejam que existe um erro. O bitmap no recebe a figura, porque esse modo de rodar o aplicativo
no aciona o Script WhileRunning.

Rode a aplicaoagora em Roda Aplicao

(F10)

Percebe-se que o Bitmap continua sempre na Figura Start. Podemos inserir outra lgica 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 aplicaoe verifique o Bitmap, alterando a faixa de valores no Slider.

O ELSE significa todos os outros caso diferentes da condio estabelecida.

1.6 OBJETO TEXTO


Definio:
O Objeto Texto permite atribuir mensagens a intervalos de valores dos tags, denominados Zonas.
Podem ser definidas diversas zonas cada uma delas contendo sua prpria mensagem.
Crie um Objeto Texto

abaixo ou ao lado do Bitmap e configure:


Zonas

Adicione: Zona 1

Adicione: Zona 2

Mnimo: 0
Mximo: 50
Mensagem: Parar
Fonte: 18

Mnimo: 51
Mximo: 100
Mensagem: Seguir
Fonte: 18

Moldura
Desmarque:
Ttulo
Efeito 3D:
Marque Fora
Espessura: 5

Tags

Adicione
Tag Ram

Rode a aplicao.

Obs1.Opo para iniciar a aplicao com o Bitmap Start


Sequncia:
OrganizerAplicaoAba ScriptNovoOnStartRunning
Escreva no Script OnStartRunning
tag001 = 51.

Rode a aplicao

Obs2. Opo para fazer um Bitmap aparecer atravs de um evento.


Crie um Bitmapcom as seguintes configuraes:
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:
Sequncia:
Appbrowser

Aplicao TelasTela1SigaMarque: AtributosvisibleClick

Rode a aplicao e verifique os resultados.

10

Este tempo que o bitmap leva para aparecer devido ao tempo de execuo do script, que pode ser
configurado no prprio script.
2 PRTICA
2.0 RESUMO
Como criar um Tag Demo pg.11
Configurao de um Objeto Trend Graph pg.11
Configurao de um Objeto Boto pg.13
Script OnPress pg.13
Script OnRelease pg.13
Opo para verificar os detalhes de um momento no grfico pg.14
Opo para aumentar o tamanho do Objeto Trend Graph e observar melhor os detalhes pg.14
Significado Tendncia1.height pg.14
Significado Tendncia1.width pg.14
2.1 APLICAO
Aps abrir o programa, crie uma nova aplicao
pasta SCADA.

(Nome: Tutorial_Pratica2) e salve o aplicativo na

2.2 TAG DEMO


Definio:
O Tag Demo um tag utilizado para simulao de valores, permitindo gerar curvas definidas como
seno, clock, utilizadas pra testar a aplicao ou para realizar uma animao.
Crie 1 Tag Demo e configure-o para seno, limite inferior 0 e limite superior 100.
Sequncia:
OrganizerAplicaoNovo Tagtag001
Crie mais 2 Tags Ram.
2.3 TREND GRAPH
Definio:
Trend Graph o objeto usado para visualizar um grfico de tendncia com at 16 tags. O grfico
constantemente atualizado medida que o processo evolui e os valores dos tags mudam. Usando
tendncias, voc pode fazer grficos como Valor x Tempo e Valor x Valor.
Crie um objeto Trend Graph
Grfico

e configure:
Tamanho e Pos

Penas

11

Eixo Y (vertical):
Lim. Super: 100
Lim. Inferior: 0

Largura: 300
Altura: 200

Explicar a diferena entre pena de desenho

Crie 3 penas de desenho


Label: Renomeie para
Tag1,Tag2,Tag3 Em Y axis:
adicione para Tag1, o Tag Demo
tag001(AplicaoTagstag001)
e assim por diante com os outros
Tags Ram

e marca de tendncia.

Crie outro objeto Trend Graph com as mesmas caractersticas do primeiro, porm mude na Aba Geral
o tipo do grfico para XY, retire as penas e adicione uma marca de tendncia
Tag Demo e o eixo Y um dos Tags Ram.

, em que o eixo X o

12

Rode a aplicao e verifique a diferena entre os grficos.


2.3 OBJETO BOTO
Definio:
Este objeto utilizado para acionamentos ou execues de tarefas especificadas pelo usurio atravs
do mouse ou teclado e seu funcionamento igual aos dos botes padro do Windows.
Crie um objeto boto

com ttulo Valores.

CrieumScript OnPress no boto e coloque a seguinte lgica:


tag001 = 71
Crie outro Script OnReleaseno boto e escreva:
tag001 = 27
Sequncia para OnPress ou OnRelease:
Click no botoAba ScriptsNovoOnPess ou OnRelease

13

No Script OnStartRunning da Aplicao coloque a seguinte lgica:


tag001 = 27
No Script WhileRunning da Aplicao:
IF tag001 > 35
tag002 = 52
ELSE
tag002 = 11
ENDIF
Rode a aplicao e pressione o boto, segurando e verificando os resultados.
Obs1. Opo para verificar os detalhes de um momento no grfico.
Crie outro boto (Nome: Boto2) com ttulo Aumentar e na aba Geral do mesmo, coloque a
funcionalidade no modo Liga/Desliga.
No Script OnPressdeste boto,coloque a seguinte lgica:
Tendncia1.enableDataRec = 0
No Script OnRelease do boto,coloque a seguinte lgica:
Tendncia1.enableDataRec = 1
Relembrando o uso do App Browser:
Sequncia:

14

ScriptsNovoOnPressApp Browser

TelasTela1Tendncia1Marque:

AtributosenableDataRec

Nessa lgica, quando o boto pressionado o grfico deixa de receber novos valores e quando o boto
solto, passa a receber novos valores.
Obs2. Opo para aumentar o tamanho do Trend Graph e observar melhor os detalhes.
Complemente o Script do segundo boto (Nome: Boto2):
Script OnPress:
Tendncia1.height = 400
Tendncia1.width = 600
Script OnRelease:
Tendncia1.height = 200
Tendncia1.width = 300
Rode a aplicao e verifique os resultados, clicando no boto.
Obs3: Opo para plotar um grfico do tempo em funo do fator de potncia.
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 configuraes do primeiro Trend Graph, mas retire as
penas do primeiro grfico e coloque uma pena com label tag4 e Y axis tag004 e na aba Grfico, Eixo
Y(vertical), troque a escala normal pelo fator de potncia, coloque o Lim. Super: 0 e o Lim. Inferior: 0.
Rode a aplicao e verifique os resultados.

15

Uma das boas funes do Trend Graph a demonstrao grfica 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 aplicao e verifique o comportamento dos tipos de Tags Demo. Geralmente atravs dessa
visualizao que decidimos qual tipo de Tag Demo utilizar.

3 PRTICA
3.0 RESUMO

Configurando um Objeto Display pg.16


Funcionalidades do Objeto Boto pg.16
Configurando uma Tela pg.17
Opo1 de criar um Boto com um Bitmap pg.18
Significado Aplicao.Login( ) pg.20
Significado .Activate( ) pg.20
Significado MessageBox pg.20
Como criar um usurio com login e senha pg.20
Opo para fazer um Boto mais sofisticado que, quando pressionado, desabilite um Tag
Demo pg.20
Significado.enabled pg.21
SignificadoIsMouseInside() pg.21
Opo para verificar os tipos de Botes pg.21
Opo 2 de criar um Boto com um Bitmap pg.22
Opo para criar um Menu Principal, que guie o usurio para as outras telas do sistema
pg.23
Significado Aplicao.Logout() pg.24
Acionando um Boto pelas teclas F1,F2,...F12 pg.24

3.1 APLICAO
Aps abrir o programa, crie uma nova aplicao
na pasta SCADA.

(Nome: Tutorial_Pratica3) e salve o aplicativo

3.2 OBJETO DISPLAY


Crie1 Tag Demo e 1 Tag Ram, nesta coloque na aba Geral, Valor Inicial: 10.
Crie um boto(Nome: Boto1) e configure na aba Geral, Funcionalidade: Momentneo e na aba
Tags: associe ao Tag Ram.
Como j vimos o objeto boto utilizado em acionamentos e execuo de tarefas, assim como, o
pressionamento de botes tambm gera eventos que podem ser tratados por scripts.

16

Crie um display

e associe o Tag Ram.

Rode a aplicao.

Note que esse tipo de boto apenas resseta o Tag.


Mude a Funcionalidade do boto para Liga/Desliga.

Rode a aplicao.

Perceba que o Tag fica em 1 quando est ligado e 0 quando desligado.


Agora, mude a Funcionalidade do boto para Jog.
Crie outro boto (Name = Boto2) com Funcionalidade: Momentneo, desta vez com a funo de
controlar um evento.
Coloque no Script OnPress do Boto2:
(Nome da Tag Ram) = 1

Rode a aplicao.

Note que quando o Boto1 pressionado, o Tag vai pra 1 e quando solto o Tag vai pra 0.
Quando o Boto2 pressionado, o Tag vai pra 1 e oBoto1 aparece pressionado.
Isso acontece porque o Boto1est associado diretamente com o Tag e seria diferente se estivesse
associado por Scripts.
3.3 TELA
Geralmente, nas aplicaes, cria-se uma tela de apresentao, que pode ser um grande boto.
Na tela atual mude o Nome e o Ttulo: Tela1
Sequncia:
Aba TelaPropriedadesNome: ou Ttulo:

17

Crie outra tela

com Nome: e Ttulo: Apresentao.

Crie um terceiro boto (Nome: Boto3) com Funcionalidade: Momentneo, 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 ttulo, sem moldura, posio X= 150 e Y= 80 e coloque na aba Zonas,
a mensagem Click para iniciar, marque Zona Padro, fonte tamanho 14, cor vermelha.
Recorte o Objeto Texto e cole na Tela: Apresentao.
Perceba que o Objeto Texto fica atrs do Boto3, logo no menu principal, click em
ArranjarTrazer para frente.
Note, tambm, que a mensagem aparece com fundo branco, objetivando melhorar a esttica de
apresentao, siga a sequncia abaixo para colocar o fundo do Objeto Texto para o mesmo fundo do
Objeto Boto3
Sequncia:

18

Abra a figura fundotela.jpg no PaintUtilize a ferramenta Selecionador de Cores


no fundo de
tela Editar coresAnote os parmetro Matiz, Sat., Lum, Vermelho, Verde, AzulClick no
Objeto TextoZonasFundoOutrosColoque os parmetros anotados nos respectivos locais.

Configure a Tela: Apresentao para Tela Inicial.


Sequncia:
TelaPropriedadesEstiloMarque: Tela Inicial

Crie um Script no Boto3 desta tela.

19

Script OnPress:
IF Aplicao.Login( )
Tela1.Activate( )
ELSE
MessageBox(O login no foi executado com sucesso, Ateno)
ENDIF
Crie um usurio com login: a e senha: a.
Sequncia:
OrganizerUsuriosNovoPropriedadesLogin: ou Senha:

Rode a aplicao.

Obs1. Opo para fazer um boto mais sofisticado que, quando pressionado, desabilite um Tag
Demo.
Na Tela1, crie um boto ( Nome: B1) de Funcionalidade: Liga/Desliga do tipo Bitmap.
Coloque na aba MensagensNormalLocalizar a figura Bdesliga1.bmp e na mesma
abaPressionado Localizar a figura Bliga.bmp.eclick em

20

Crie um Objeto Texto (Nome: Texto1), na aba Zona marque:Transparente e Zona Padro e
Alinhamento: Direita, insira a Mensagem: Parar. Coloque o Objeto Texto atrs do boto acima de
acordo com a figura abaixo:

Crie um display,associando ao Tag Demo (Nome: tag001).


No Script OnPress do boto B1coloque:
(Nome do Tag Demo).enabled = 0
No Script OnRelease do boto B1coloque:
(Nome do Tag Demo).enabled = 1

Rode a aplicao e clique no boto.

Obs2.Opo para destacar algum objeto quando o mouse ficar em cima dele.
Crie um Script WhileRunning na Aplicao:
IF Tela1.Texto1.IsMouseInside() == 1
B1.bitmap0 = "C:\Treinamento\Figuras\Bdesliga1.bmp"
ELSE
B1.bitmap0 = "C:\Treinamento\Figuras\Bdesliga.bmp"
ENDIF

Rode a aplicao e verifique os resultados.

Obs3. Opo para verificar os tipos de botes.


Crie 6 botes (Nome: Boto3 a Boto8) com aparncias que ainda no foram vistas, menos o boto
que possui um retngulo pontilhado transparente.

21

Rode a aplicao e perceba os estados dos botes.

Obs4. Outra opo de criar um Boto com um Bitmap.


Crie um Bitmap, localize a figura computer.bmp e click em

Crie um Boto com dimenses um pouco maiores que o bitmap e configure sua aparncia para o um
retngulo pontilhado transparente, Funcionalidade: Liga/Desliga emude o nome do Boto para
Comp.
Coloque o Boto (Nome: Comp) em cima do Bitmap1 no ArranjarTrazer para frente

Crie uma Tag Demo (Nome = tag003) e um display, associando a Tag Demo (Nome = tag003).
No Boto (Nome: Comp), coloque no Script OnPress:
tag003.enabled=0
Script OnRelease:
tag003.enabled=1

Rode a aplicao.

Dessa forma o Boto tem a aparncia de um Bitmap.


Escolha um dos botes (Nome: Boto3 a Boto8),mude a Funcionalidade: Liga/Desliga e coloque
no Script:

22

Script OnPress:
Comp.enabled = 0
Script OnRelease:
Comp.enabled = 1

Rode a aplicao.

Verifique que quando o boto (Nome: Boto3 ou/a Boto8) pressionado o boto (Nome: Comp)
fica desabilitado.
Obs5. Opo para criar umMenu Principal, que guie o usurio para as outras telas do sistema.
Crie uma tela com Nome: e Ttulo: 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 botes do tipo bitmap, posicionando em 3 linhas e 2 colunas, adicione a cada boto a figuras
de Nome:Befluentes.bmp, BENERGIA.BMP, Blayout.bmp, BLOGIN.BMP, Bquarent.bmp,
bred.bmp e click em

No Script do boto (Name: Boto3) localizado na Tela: Apresentao escreva:


Script OnPress:
Mude Tela1.Activate( ) para a Menu_Principal.Activate( ) .
O boto com o Bitmap: Logout da Tela: Menu Principal deve fazer o logout do usurio e ir
paraTela: Apresentao.
1 Opo: Na aba Geral do boto com o Bitmap: LogoutIr para tela: Apresentao.
2 Opo: Escreva no Script do boto com o Bitmap: Logout :

23

OnPress:
Aplicao.Logout()
Apresentao.Activate()
O primeiro comando faz o logout do usurio e o segundo comando chama a Tela: Apresentao.

Rode a aplicao e tecle em logout.

Obs6.Um boto tambm pode ser configurado para ser acionado pelas teclas de funes F1, F2, etc.
Configure oboto com o Bitmap: Logout na aba GeralTecla de Funo: F1.

Rode a aplicao e tecle F1.

4 PRTICA
4.0 RESUMO

Opo para criar 2 textos com letras de cores diferentes, j que no Script do Objeto Texto no
se tem acesso a cor da letra pg.25

Script OnValueChanged pg.25

Opo para que o Objeto Texto aparea aps um tempo quando o Tag Demo estiver acima do
limite mximo ou abaixo do limite mnimo. pg.25

Tag Crono pg.25

Siginificado .acum pg.25

Siginificado .Reset () pg.27

Script OnRButtonUp pg.28

Opo para destacar um texto. pg.28

Opo para destacar um texto quando o mouse estiver sobre ele. pg.29

Opo para que o Bitmap aparea quando o Tag Crono for maior que um tempo pg.30

Fluxo repet until pg.30

(Nome do Tag Ram) += 1 pg.30

Opo para fazer um objeto ficar visvel por um determinado tempo pg.30
4.1 APLICAO
Aps abrir o programa, crie uma nova aplicao
na pasta SCADA.

(Nome: Tutorial_Pratica4) e salve o aplicativo

4.2 OBJETO GAUGE, OBJETO TEXTO E TAG CRONO


Vamos criar uma animao que pode ser utilizada para indicar visualmente um alarme, atravs da
mudana 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 Mnimo:0 eValor Mximo: 100, na aba
Avanado em cores, coloque Limite baixo: 25 e Limite alto: 75 ambos de cor vermelho e no Limite
normal, escolha outra cor, sem ttulo e associe ao Tag Demo criado.
Obs1: Opo para criar 2 textos com letras de cores diferentes, j que no Script do Objeto Texto no
se tem acesso a cor da letra.
Crie 2 Objetos Textos,sem ttulo, 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 aplicao

Obs2: Opo para que o Objeto Texto Alarme aparea aps 10s que a Tag Demo esteja acima do
limite mximo ou abaixo do limite mnimo.
Crie um Tag Crono(Nome: tag002) e um Objeto Display, associando o Display ao acumulador do
Tag Crono.
Sequncia:
Aba TagsAplicaoObjetos: tag002Propriedades: acumAdicionar

25

Para que esse Tag inicie a contagem necessrio habilitar seu enable.
A lgica a ser seguida: Se o acumulador for maior ou igual a 10, deixaremos o TextoVermelho
visvel e o TextoPreto invisvel. Se o valor do Tag Demo estiver dentro da faixa do alarme. O Tag
Crono deve ser habilitado, caso contrrio, 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

26

TextoVermelho.visible = 0
TextoPreto.visible = 1
(Nome do Tag Crono).enable = 0
(Nome do Tag Crono).Reset ()
ENDIF

Rode a aplicao.

Observe que a variao da Tag Demo mais rpida que a variao do Tag Crono, logo este no
chega aos 10s para poder mudar os Objetos Texto.
Para reparar, faa cada uma das opes abaixo:

Diminuir o tempo da Tag Crono Coloque no Script OnValueChanged do Tag Demo


tag002.acum >= 1.

Aumentar a faixa do alarme.

Aumentar o perodo do Tag Demo Coloque na aba Geral: Perodo: 1000


A 3 opo a mais indicada, pois geralmente o Objeto Gauge associado a um Tag PLC que
recebe valores de sensores, que diferente dos Tags Demo, no mudambruscamente de valores.
necessrio, tambm, reset o Tag Crono, faa uma das opes abaixo:

Reset no incio da aplicao Organizer Aplicao Script


OnStartRunningtag002.Reset()

Marcar a opo Zerar acumulador ao ligar cronmetro.

27

Quando o alarme ativado, preciso que o operador reconhea que o alarme foi ativado, por isso,
crie um boto com mensagem Reconhecimento de alarme e no Script OnPress do mesmo, coloque:
tag002.Reset()

Rode a aplicao e tecle nesse boto, quando o alarme for acionado.

O problema que muitas vezes o Tag associado a esse Gauge responsvel por comandar outros
processos. Ento necessrio parar o envio do sinal desse Tag.O alarme e o Tag Crono devem ser
resetados quando o boto for pressionado, reiniciando aps o operador ter resolvido o problema e
clicado com o boto direito no mesmo boto.
No Script do boto (Nome: Boto1) 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 aplicao fazendo esse procedimento.

Perceba que os valores do Tag Demo e Crono so paralisados e retornam quando o boto direito
pressionado.
Obs3. Opo para destacar um texto.
Crie outro Objeto Texto, sem ttulo, com 2 zonas e Mensagem:Teste, uma das zona com cor do
Texto: preta, Mximo: e Mnimo:0, a outra com a cor do Texto: vermelha, Mximo: e Mnimo: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 contrrio, 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

28

..
..
(Nome do Tag Ram)= 0
ENDIF
Quando o alarme for reconhecido o texto deve estar preto tambm, portanto:
No script do boto Reconhecimento de alarme:
Script OnPress:
Adicione (Nome do Tag Ram) = 0

Rode a aplicao e reconhea o alarme quando ele for ativado, verificando os resultados.

Essa maneira de mudar o texto bem mais fcil, porm a primeira maneira foi mostrada para que
possamos destacar um texto com outra cor em algum evento.
Obs4: Opo para destacar um texto quando o mouse estiver sobre ele.
Crie novamente um Objeto Texto com Nome: TextoPreto2, sem ttulo, adicione uma zona com Cor
do Texto: preta, Cor do Fundo: cinza e Mensagem: Aprender e Marque: Zona Padro
Copie esse objeto e cole. O objeto foi criado atrs 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 Padro.
Agora click em Levar para o fundo

, ou seja, o TextoPreto2 fica na frente do TextoVerde.

Faremos uma lgica que estabelece que, se o mouse estiver sobre o objeto, o TextoVerde torna-se
visvel e o preto invisvel.Caso contrrio volta-se a situao inicial.
No Script While Running do Organizer Aplicao:
IF TextoVerde.IsMouseInside() == 1

29

TextoVerde.visible = 1
TextoPreto2.visible = 0
ELSE
TextoVerde.visible = 0
TextoPreto2.visible = 1
ENDIF

Rode a aplicao e aproxime o mouse do texto.

No Script While Running do Organizer Aplicao mude o tempo de Rodar a cada: 100msec

Rode a aplicao e aproxime o mouse do texto.

4.3 FLUXO REPET UNTIL


Esse comando executa uma instruo at que uma condio seja verdadeira, por esse motivo ele no
utilizado pelos programadores.
Crie um Bitmap com Nome: Alarme e Localize:Bot alarme.bmp.

Para que o Bitmap aparea 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 aplicao.

Verifique que a aplicao 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, faa o pedido abaixo.
Apague o comando de Repeat Until do Script OnValueChanged do Tag Demo e crie um Boto
com Nome: Boto2.
No Script OnPress do Boto2 escreva:

30

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 aplicao 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 esto dentro do fluxo.
Escreva no Script OnPess do Boto1:
REPEAT
tag003 += 1
Gauge1.visible =1
UNTIL tag003 == 50000
Gauge1.visible =0

Salve e Rode a aplicao.

Perceba que o Gauge1 fica visvel por um determinado tempo, 4s no caso.


Obs5: Opo para fazer o Gauge1 ficar visvel por 10s.
Mude no Script OnPess do Boto1:
tag003 == 50000 para tag003 == 125000
5 PRTICA
5.0 RESUMO

Configurao do Objeto Bar Graph pg.32

Opo de usar o Bar Graph como indicao de nvel pg.32

Opo para colocar a mesma cor de fundo da Tela em um Objeto, pois ele no tem a opo
transparente pg.33

Tag Expresso pg.34

Opo para mostrar valores da escala de nvel visualmente, pelo menos o mximo e o mnimo
permitido pg.34

Como mostrar um alarme para quando o nvel estiver maior que o mximo definido ou menor
que o mnimo definido pg.35

Opo para farer o texto piscar pg.35

31


Opo para que a luz esteja sempre apagada e o texto esteja sempre invisvel quando a
aplicao iniciar pg.36

Como usar o comando While pg.37

Opo para gerar um tempo pg.37


5.1 APLICAO
Aps abrir o programa, crie uma nova aplicao
na pasta SCADA.

(Nome: Tutorial_Pratica5) e salve o aplicativo

5.2 OBJETO BAR GRAPH


usado para visualizao 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 Mnimo: 0 e Limite Mximo: 100,

Espaamento: 10, Desmarque: 3D, na aba Moldura, coloque Ttulo: Grfico das Variveis. 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 Mnimo: 0 e Valor
Mximo: 100, na aba Tags, adicione ao Slider1 o Tag Ram:tag001 e ao Slider2 o Tag Ram: tag002.

Rode a aplicao e mova os botes do Slider, verificando a coluna do Tag Demo.

Na aba Geraldo Bar Graph, existe outros tipos de orientao, rode a aplicao verificando cada um
deles.
Obs1.Opo de usar o Bar Graph como indicao de nvel.
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 configuraes abaixo:


Aba Geral

Aba Tamanho

Aba Moldura

Aba Tags

e Pos

Aba Cores das

Aba rgua

Barras

Mnimo: 0

Largura: 300

Efeito 3D :

Adicione:

Mximo: 100

Altura: 200

Nada

tag001

Espaamento: 0

X: 124

Desmarque:

Y:344

Visvel

Cor: azul

Desmarque:
Habilita

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 aplicao.

Observe que o fundo do Bar Graph est numa cor diferente do fundo da Tela2.
Obs2.Opo para colocar a mesma cor de fundo da Tela2 no Bar Graph, pois ele no tem a opo
transparente.
Abra a figura c1.bmp.no paint e observe as configuraes do fundo.
Matiz: 65

Vermelho: 240

Sat: 202

Verde: 253

Lum: 228

Azul: 232

33

Na aba Geral do Bar Graph, configure a cor do fundo com as mesmas configuraes.
Crie outro Bar graph (Barra2), com as mesmas caractersticas do Barra1, colocando a Cor do
Fundo: azul , mudando o X: 449 e o Y:344 na aba Tamanho e Pos e retirando a associao com o
Tag Ram

Rode a aplicao.

5.3 TAG EXPRESSO


O objetivo dessa Tag criar uma expresso entre Tags que ser associado a um objeto.
Crie um Tag Expresso (tag004), agora vamos criar uma expresso para ser associada ao nvel do
segundo Bar Graph, lembrando que esse reservatrio da direita controlado pela abertura da
comporta, e, geralmente, o da esquerda est mais cheio que o da direita, e esse no pode estar vazio
porque existe uma bomba que fica 24h bombeando gua, e no pode ficar em vazio.
Coloque a expresso (Nome da Tag Expresso) = (Nome da Tag Ram que est associado ao Bar
Graph: Barra2)*(2/3) + 5 em OrganizerTagstag004Expresso e adicione o Tag Expresso 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 Expresso.

Rode a aplicao e observe os valores.

Obs3. Opo para mostrar valores da escala de nvel visualmente, pelo menos o mximo e o
mnimo permitido.
Crie outro Bar Graph (Barra3), na aba Geral coloqueCor do Fundo: vermelho, Desmarque: 3D,
Limite Mnimo: 25, Limite Mximo: 50; na aba Tamanho e Pos coloque Largura: 15 e Altura: 50,
X: Ao lado do Bar Graph (Barra2), Y: 444; na aba Rgua, Desmarque: Habilita; Na aba Moldura,
Desmarque: Visvel.

34

Em seguida, crie 2 Objetos Textos e escreva em um a Mensagem: 50 e em outro a Mensagem:25,


Marque: Transparente e Zona Padro, coloque Cor da Fonte: vermelho na aba Zonas, Desmarque:
visvel na aba Moldura em ambos os Objetos Texto.

Rode a aplicao.

Obs4. Agora mostremos um alarme para quando o nvel estiver maior que o mximo definido ou
menor que o mnimo definido.
Crie um Objeto Bitmap e Localize: BT_ILUMINACAO_apagado.bmp.

Criaremos um Script para quando o nvel estiver na faixa de alarme, acenda essa lmpada e mostre
um texto escrito Perigo piscandoat que o nvel seja normalizado.
Crie um Objeto Textocom Mensagem: Perigo e Nome: Perigo.
Crie um Script WhileRunning no OrganizerAplicao:
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 aplicao.

Veja que esse script acende e apaga a lmpada conforme o valor do nvel.
Agora faremos o texto piscar.
Adicione ao Script WhileRunning:

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 frequncia, diminua o tempo de Rodar a cada para
100 msec em OrganizerAplicaoAba ScriptWhileRunningRodar a cada.

Rode a aplicao e coloque o Slider1 na faixa de alarme.

Obs5. Opo para que a luz esteja sempre apagada e o texto esteja sempre invisvel quando a
aplicao iniciar.
No Script OnStarRunning em OrganizerAplicaoAba Script:
Bitmap1.fileName = ('C:\Treinamento\Figuras\BT_Iluminacao_apagado.bmp')
Perigo.visible = 0
tag001 = 40

36

5.4 COMANDO WHILE


Na maioria das aplicaes este comando est associado com alguma varivel.
Crie outro Tag Ram (tag005) e em Valor Inicial coloque 50000.
Crie um Objeto Boto (Boto1) e no Script OnPress do mesmo, escreva:
WHILEtag005>= 100
tag005 += 1
END
Essa expresso tag005 += 1 significa que tag005= tag005+ 1
Esse Script gera um loop infinito.

Salve e rode a aplicao.

Obs6. Opo paragerar um tempo. Esse tempo importantssimo para algumas animaes.
Coloque no Valor Inicial do tag005: 0 e no Script OnPress do Boto (Boto1), apague a
programao existente e escreva:
WHILEtag005<= 50000
tag005 += 1
WEND
Crie um Objeto Display e associe a tag005 para visualizar o tempo.

Salve e rode a aplicao.


6 PRTICA

6.0 RESUMO

Script OnKeyPress pg.39

37

Opo para o Objeto Texto se mover na Tela pg.40

Significado .x pg.40

Opo para que o texto caminhe na tela toda, desaparea no final gradualmente e aparea no

incio gradualmente pg.40

Podemos observar com outro tipo de Tag Demo o efeito causado no movimento o Objeto

Texto pg.40

Opo para que esse texto fique se movimentando horizontalmente no meio da tela pg.41

Opo para colocar o texto se movimentando na vertical pg.41

Significado .y pg.41

Opo para colocar numa das telas, o usurio que est logado no sistema pg.41

Opo para visualizar a hora atual pg.41

Nvel de acesso pg.42

Como realizar um evento de acordo com a hora pg.42

Objeto Animao pg.44

Opo para que a animao fique acionada por um evento e fique em movimento pg.44

Opo para que o Tag Animar comece desabilitado pg.44

Opo para mudar o sentido de rotao das ps pg.44

Animao para controlar se um reservatrio est sendo preenchido ou secado pg.44

Significado .highLimit pg.45

Significado .lowLimit pg.45

6.1 APLICAO
Aps abrir o programa, crie uma nova aplicao

(Nome: Tutorial_Pratica5) e salve o aplicativo

na pasta SCADA.
6.2 OBJETO DISPLAY E OBJETO ANIMAO
Em Propriedades da Tela (Tela1) Fundo Marque: Bitmap e Localize: foto_dispa. ena Aba Estilo
Tamanho e Posio coloque X = 0 e o Y = 0.

38

Crie outra Tela (Tela2) com Ttulo: Tela2 e crie na Tela2, um Display.
Na Tela1,crie um Objeto Texto com as configuraes mostradas na tabela abaixo.
Aba Zonas

Aba Tamanho e Pos

Aba Moldura

Mensagem: Tecle Enter

X: 380

Desmarque: Visvel

para Entrar
Fonte: Arial Tamanho: 16

Y: 230

Marque: Transparente e
Zona Padro
Cor do Texto: Amarelo
Em OrganizerAplicaoScriptsNovoSelecione OnKeyPressCombinao de
teclasAperte EnterOk

No Script OnKeyPressReturn criado acima, escreva:


IF Aplicao.Login( )
Tela2.Activate( )
ELSE
MessageBox(O login no foi executado com sucesso, Ateno)

39

ENDIF
Em OrganizerUsuriosNovoPropriedadesLogin: a e Senha: a

Rode a aplicao e tecle Enter.

Obs1. Opo 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 aplicao.

Observe que o Objeto Texto est muito lento ento altere o Perodo do Tag Demo (Passo) para 10.

Rode a aplicao.

Agora altere o Incremento do Tag Demo (Passo) para 2 e observe que o Objeto texto ficar mais
rpido.

Rode a aplicao.

Altere os Limites Inferior e Superior do Tag Demo (Passo) e observe.

Rode a aplicao.

Obs2. Opo paraque o texto caminhe na tela toda, desaparea no final gradualmente e aparea no
incio gradualmente.
Coloque o Limite Inferior: 220 e o Superior: 1020 do Tag Demo (Passo) e esta condio
sersatisfeita.
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 aplicao.

Obs4. Opo para que esse texto fique se movimentando horizontalmente no meio da tela.
Coloca-seo Limite Inferior: 200 e o Superior: 600 no Tag Demo (Visual).
Obs5. Opo para colocar o texto se movimentando na vertical.
Troque o atributo X pelo Y no Script do Tag Demo (Visual).
Obs6. Opo para colocar numa das telas, o usurio que est logado no sistema.
Para fazer isso, na aba Tags do Display (Display1) criado na Tela 2, adicione AplicaouserLogin
em AplicaouserLogin; na aba Formato, Marque: Texto e na aba Geral, Fonte: 14.
Crie um Objeto Texto (Texto1) na Tela2, Mensagem: Usurio: , S/Moldura e com Fundo: branco.
Deixe os Objetos Display1 e Texto1 um ao lado do outro.
Obs7. Opo para visualizar a hora atual.
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 aplicao.

Ao invs de criar um Objeto Texto com a Mensagem: Usurio, crie outro Objeto Display (
Display3) com as mesmas configuraes do Display1, sendo que na aba Formato, coloque em
Prefixo: Usurio: .

Rode a aplicao.

41

6.3 NVEL DE ACESSO


Define o grau de acessibilidade para os usurios.
Crie outro usurio (Usurio2) com o Login e Senha: b e Nvel de Acesso:1.
Na Tela2, crie 2 Objetos Botes (Boto1 e Boto2) e 2 Sliders (Slider1 e Slider2).
Configure o nvel de acessibilidade de acordo com a tabela abaixo:
Aba Tamanho e
Pos

Boto1

Boto2

Slider1

Slider2

100

100

Nvel de Acesso:

Rode a aplicao e entre com o usurio de nvel 100, depois o de nvel 1 e observe quais

objetos eles tero acesso.


Agora, reconfigure o nvel de acessibilidade para:
Aba Tamanho e
Pos
Nvel de Acesso:

Boto1

Boto2

Slider1

Slider2

20

50

90

Crie mais 2 usurios, Usurio3 com Login e Senha: c e com Nvel de Acesso: 18; Usurio4 com
Login e Senha: d e com Nvel de Acesso: 61.

Rode a aplicaoe entre com os 4 usurios, observando os resultados.

Observe que o usurio apenas acessa o objeto que possui o nvel de acesso maio ou igual ao seu.
Obs8. Realizar um evento de acordo com a hora.
Para uma hora determinada do dia, essa opo ir atribuir o valor 35 a um Tag interno e aparecer
um boto associado a esse mesmo Tag.
Crie um Tag Ram com Nome: ECA.
Associe o Boto1 ao Tag ECA, assim como o Slider1.
No Script WhileRunning do Organizer Aplicao:

42

IF hour==15 AND minute== 3


ECA = 35
Boto1.visible = 1
ENDIF
No Script OnStartRunning do Organizer Aplicao:
Boto1.visible = 0

Rode a aplicao e entre com o usurio de mximo acesso.

Para a hora ser mais especfica, adicione um AND no Script WhileRunning e coloque os second ==
30
6.4 OBJETO ANIMAO
Objeto queadiciona zonas de bitmaps sequenciados, dando ideia de movimento.
Crie outro Objeto Boto na Tela2com Mensagem: Prxima e coloque no canto superior direito.
Crie uma nova Tela com Nome e Ttulo: Tela3.
Na Tela2, configure o Boto3 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 Animao.
Configure: AGITA0.BMP, Mnimo e o Mximo: 0; AGITA1.BMP, Mnimo e o Mximo: 1;
AGITA2.BMP, Mnimo e o Mximo: 2; AGITA3.BMP, Mnimo e o Mximo: 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 Mnimo: 0 e
Valor Mximo: 3.

Rode a aplicao e troque os valores do Tag ECA no Slider1.

43

Obs9. Opo para que a animaofique 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
associao do Tag ECA da Animao1 e adicione ao Tag Demo (Animar) e reconfigure na aba
Zonas Zona1, Mnimo: 0 e Mximo: 10; Zona 2, Mnimo: 11 e Mximo: 20; Zona3,Mnimo: 21
e Mximo: 30; Zona 4, Mnimo: 31 e Mximo: 40.
Crie um Objeto Boto ( Boto1) do tipo Liga/Desliga.
No Script OnPress do Boto1:
Animar.enabled = 1
No Script OnRelease do Boto1:
Animar.enabled = 0

Rode a aplicao.

Obs10: Opo para que o Tag Animar comece desabilitado.


No Script OnStartRunning do OrganizerAplicao:
Animar.enabled = 0

Rode a aplicao.

Obs11.Opo para mudar o sentido de rotao das ps.


A maneira mais simples trocar o tipo do Tag Animar para Dente de serra decrescente.
Obs12. Animao para controlar se um reservatrio est sendo preenchido ou secado.
A partir de um evento e atravs da mudana dos limites, alto e baixo do Tag Demo. Pode-se,
tambm, fazer o cano alterar suas cores quando for encher ou secar.

44

Crie outro Objeto Animao com 3 zonas, adicionando as figuras a_quent.bmp, Limite Mnimo e
Mximo: 1;a_quent1.bmp, Limite Mnimo e Mximo: 0 e Limite Mnimo e Mximo: 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, Perodo: 1000, adicione este Tag Animao2.
Crie 2 Botes (Boto2 e Boto3)do tipo Liga/Desliga, Boto3 com Mensagem: ENCHER O
TANQUE e Boto2 com Mensagem:SECAR O TANQUE.
No Script OnPress do Boto2:
Animar1.highLimit = 1
Animar1.lowLimit = 0
No Script OnReleasedo Boto2:
Animar1.highLimit = 1
Animar1.lowLimit = 1
Animar1 = 1
Esses Scripts alteram os limites do Tag Demo. Estamos forando o Tag a alternar entre os valores 0
e 1 quando pressionado e ao valor 1 quando no seu estado normal, forando ainda o valor 1 ao Tag,
por segurana.
No Script OnPress do Boto3:
Animar1.highLimit = 2
Animar1.lowLimit = 1
No Script OnRelease do Boto3:
Animar1.highLimit = 1

45

Animar1.lowLimit = 1
Para que o tanque comece no estado normal, copie o que est escrito no Script OnRelease do
Boto3 e cole no Script OnStartRunning do OrganizerAplicao.

Rode a aplicao e tecle nos botes.


7 PRTICA

7.0 RESUMO

Configurao de um Objeto Set point pg.46

Opo para um evento desabilitar visualmente um Set Point ou uma Figura pg.48

Opo para criar uma tela com possibilidades para configurar parmetros para determinada

aplicao pg.48

Significado.Show ( ) pg.49

Significado .Hide ( ) pg.50

Opo para criar uma mensagem de aviso pg.50

Opo para mostrar mais uma mensagem para o administrador quando ele clica em Cancel

pg.51

Outras opes para usar o MessageBox pg.52

Script OnLButtonDown pg.52

Outro estilo de MessageBox com os Botes: Sim, No e Cancel pg.53

7.1 APLICAO
Aps abrir o programa, crie uma nova aplicao

(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
atribuio a esse Tag.
Ex:
1

46

Tag001 = 1
Quando um valor de um Tag Ram for atribudo atravs 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 funo do Set Point implementando a seguinte lgica:
Crie 2 Tags Ram com Nomes: RAM1 e RAM2, 1 Tag Demo do tipo Seno com Nome: DEM de 0 a
100, Perodo: 1000, crie 2 Tags Crono com Nomes: Crono1 e Crono2, marcando a Opo: Zerar o
acumulador ao ligar o cronmetro.
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 Aplicao, escreva:
RAM1 = 3
DEM.enabled = 1
Crono1.enable = 1
Crono2.enable = 1
No Script WhileRunningdo Organizer Aplicao, escreva:
IF RAM1 == 4
RAM2 = 17
DEM.enabled = 0
Crono1.Reset ( )
ENDIF

47

Rode a aplicao e verifique qual dos Tags efetivamente so modificados, em seguida atribua

4 ao Tag RAM1.
Obs1. Opo para um evento desabilitar visualmente um Set Point ou uma Figura, para evitar que o
operador cometa erros graves.
Crie um boto do tipo Liga/Desliga,com Mensagem: Parmetros do inversor.
No Script OnPress do Boto:
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 Boto:
Setpoint1.textColor = 0
Setpoint1.Moldura.titleColor = 0
Setpoint2.textColor = 0
Setpoint2.Moldura.titleColor = 0
Nesse Script as cores voltam ao normal.

Rode a aplicao.

Verifique que, se o boto for pressionado e a aplicao for tirada do modo Run, a aplicao e os Set
Points estaro desabilitados na prxima vez que rodar a aplicao.
Copie o que est escrito no Script OnRelease do Boto e cole no OnStartRunning do
OrganizerAplicao.

48

Obs2. Opo para criar uma tela com possibilidades para configurar parmetros para determinada
aplicao.
Crie mais 5 Set Points com as configuraes dada na tabela abaixo:
Set Point:
Tag para
adicionar:
Ttulo:

Setpoint6

Setpoint7

Setpoint8

Setpoint9

Setpoint10

Crono1

Crono2

DEM

RAM1

RAM2

Tempo1

Tempo2

Velocidade

Tenso

Corrente

Crie outra Telacom Ttulo: Parmetros do Inversor, com Fundo: Cinza e na aba Estilo, em Estilo:
Marque Janelada e Marque a opo: Boto 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

Ttulo:

Freq.Mn.

Freq.Mx.

RAM3

RAM4

Tags para
Adicionar:

Setpoint3

Setpoint4

Setpoint5

TempoAcel./Desacel. NovaTenso NovaCorrenteN


RAM5

Na Tela 1, crie um Bitmap, Localize a figura: motores.bmp e click

RAM1

RAM2

No Script OnPress do Boto Parmetros do inversor, escreva:

49

Tela 2. Show ( )
No Script OnRelease do Boto Parmetros do inversor, escreva:
Tela 2. Hide( )

Rode a aplicao e click no boto, verificando os resultados.

Geralmente, quando se entrega um projeto ao cliente, um dos operadores ou o chefe deles, fica com
Nvel de Acesso:1 (Administrador), exatamente para a necessidade de parametrizao, porm
preciso ter cuidado com enganos. Por esse motivo importante criar uma mensagem de aviso.
Obs3. Opo para criar uma mensagem de aviso
No Script OnPress do Boto, siga o caminho:
APP Browser Gerenciador GlobalMessageBox, escrevano incio do Script:
MessageBox(Deseja realmente parametrizar o inversor?,Cuidado, 01h)

Rode a aplicao.

Verifique que, para qualquer atitude sua, a continuao do Script OnPress ser executada. Isto um
problema.
Obs4.Opo para que isso no ocorra.
Toda vez que clicamos num Boto dentro da Mensagem, um nmero retorna. O nmero que o boto
Ok retorna 1. Portanto, para protegermos os comandos seguintes do Script, necessrio comparar
se o MessageBox retornou 1.
Ento, 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)

50

Tela1.Setpoint2.textColor = RGB (148, 148, 148)


Tela1.Setpoint2.Moldura.titleColor = RGB (148,148,148)
Tela2.Show()
ENDIF

Rode a aplicao e verifique os resultados, apertando nos botes Ok, Cancel e Fechar X.

Obs5. Opo para mostrar mais uma mensagem para o administrador quando ele clica em Cancel.
O nmero que o Boto: Cancel retorna 2 e a Mensagem ser: Os parmetros no foram
modificados. Existe mais de uma maneira de fazer essa lgica.
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 parmetros no foram modificados.","Aviso",0h) == 2
ENDIF
A 2 forma seria trocar o ELSEIF pelo ELSE e colocar a funo MessageBox na linha seguinte sem
igualdade.
IF MessageBox("Deseja realmente parametrizar o inversor?","Cuidado", 01h) ==1
Tela1.Setpoint1.textColor = RGB (148, 148, 148)

51

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 parmetros no foram modificados.","Aviso",0h)
ENDIF
Obs6. Outras opes para usar oMessageBox.
Podemos fazer uma lgica para quando o operador clicar no Set Point de Freq.Mx.,aparea uma
mensagem e se a frequncia no mudar aparea outra mensagem dizendo que no mudou.
No Script OnLButtonDown do Set point da Freq.Mx., escreva:
IF MessageBox("Tem certeza que deseja mudar a frequncia mx?","Cuidado",4h) == 6
Tela2.Setpoint2.enabled = 1
ELSEIF MessageBox("A frequncia ainda a mesma.","Aviso", 0h) == 1
Tela2.Setpoint2.enabled = 0
ENDIF
Nesse estilo a mensagem aparece com os Botes: Sim e No. Para o Sim ela retorna 6 e para o No
retorna 7. Por esse motivo faz-se a comparao com o 6. Abaixo habilita-se a entrada de dados no
Set Point.

Rode a aplicao e clique no Set Point Freq.Mx.

Verifique que, se voc disser Sim, o valor da varivel pode ser alterado, mas se disser No,
aparecer outra mensagem. Clicando Ok nessa mensagem e parando a aplicao, na prxima vez o

52

Set Point estar desabilitado.Isso um problema e acontece porque o Scada mantm o estado dos
objetos da ltima execuo do aplicativo.Para solucionar esse problema, serhabilitado esse objeto
Set point. Podemos lembrar que num projeto a idia iniciar a execuo da aplicao e no parar
mais, portanto no se pode colocar o comando no StartRunning.
Ento, coloque no Script OnPress do Boto Parmetros do inversor:
IF MessageBox("Deseja realmente parametrizar o inversor?","Cuidado", 01h) ==1
Tela2.Setpoint2.enabled = 1

...
ENDIF

Rode a aplicao e perceba a diferena.

Obs7. Outro estilo de MessageBox com os Botes: Sim, No e Cancel.


No Script ONLButtonDown do Set Point TempoAcel./Desacel., coloque a cpia do Script do Set
Point Freq.Mx.,mudando o Set Point para TempoAcel./Desacel., nas mensagens que tem escrito
Freq.Mx. 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 Boto acrescente:
IF MessageBox("Deseja realmente parametrizar o inversor?","Cuidado", 01h) ==1

53

Tela2.Setpoint2.enabled = 1
Tela2.Setpoint3.enabled = 1

...
ENDIF

Rode a aplicao.

Pode-se perceber um erro no Scada. Quando clica-se no Set Point TempoAcel./Desacele seleciona
No aparece a mesma caixa de mensagem.O Scada mostra uma caixa de mensagem toda vez que
aparece o comando MessageBox. Ento a maneira mais usada para comparar o retorno da
mensagem uma comparao e um ELSE, que serve tanto para o Boto No, quanto para o Boto
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

Faa essa alterao e rode a aplicao

No mesmo Script acima altere o estilo para 5h e a mensagem para Esse parmetro no 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

54

WHILE MessageBox("Esse parmetro no 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 Boto Repetir retorna a 4.
Esse Script significa que enquanto a mensagem retornar 4 (REPETIR), o Set Point estar
desabilitado, e quando outro Boto for pressionado ele permanecer desabilitado.

Rode a aplicao e observe essas propriedades.

Altere o mesmo Script para o estilo 35h e rode a aplicao, verificando que apareceu um cone de
exclamao.
Em seguida altere para 15h, 25h, 45h, rodando a aplicao e verificando a mudana dos cones.
Abra a pasta material auxiliar no CD, e verifique o arquivo Parmetros do MessageBox.
8 PRTICA
8.0 RESUMO

Configurao do Objeto alarme pg.56

Opo para criar uma tela de histrico de alarmes pg.58

Os valores do Tag para outros eventos pg.59

Tag Matriz pg.60

Significado .SetCell pg.60

Opo para ressetar as clulas no incio da aplicao pg.62

Opo para Utilizar o Tag Crono para mostrar uma visualizao de alarme pg.62

55

8.1 APLICAO
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 Ttulo: Falhas Ativas.
Crie um Grupo de Alarmes em OrganizerAlarmesNovo 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 emOrganizerTagsRAM1/RAM2/DEMO1/DEMO2Alarmes. Mude
os Limites Superior dos Tags Demo para 100.

56

Crie 2 Objetos Slider associados aos Tags Ram.

Rode a aplicao e mova os Sliders e click em um dos Alarmes ativos e reconhea o alarme.

Crie um Objeto Bar Graph do Tipo: Bar Gauge com Limite Mnimo: 0 e Limite Mximo: 100,
Orientao: 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 aplicao, movendo os Sliders e verificando os limites de alarme.

Obs1. Opo para criar uma tela de histrico 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, Ttulo: Falhas Ocorridas no Sistema, Efeito 3D: Dentro, Espessura: 2. Na aba
Geral, configure Tipo de Alarme: Histrico. 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 opo: Comentrio 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 Boto na Tela1 que vai para a Tela2 e copie os 2 Objetos Sliders da Tela1 e cole na
Tela2.

Rode a aplicao e verifique os registros do histrico.

Os valores do Tag so importantes para outros eventos. Pode-se detectar uma situao de
emergncia atravs dos alarmes, e desligar um motor, por exemplo.
Crie um Bitmap e Localize: BMBD.BMP
Crie um Boto com a Mensagem:Liga Motor.
No Script OnPress do boto:
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.

59

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 aplicao e verifique os resultados.

Outra lgica importante que o motor s poder estar ligado quando o Tag estiver em seu estado
normal.
No Script OnPress do Boto:
IFBitmap1.fileName == ("figuras\bmbd.bmp")
Bitmap1.fileName = ("figuras\bmb.bmp")
ENDIF
8.3 TAG MATRIZ
A funo do Tag Matriz facilitar o trabalho com vetores e com operaes que utilizam
muitosTags.
O Scada no realiza operaes entre matrizes, por conseqncia esse Tag serve pra alocar Tags ou
funciona associado ao valor dos Tags por Scripts.
Crie outra Tela com Ttulo: Incndio.
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 incndio com sada 0 ou 1, onde
representaremos essas variveis como Tags Ram.
De acordo com o Tag que for acionado, outra varivel (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
Incndio.
Crie um Tag Ram no mesmo Grupo Incndio com Nome: Setor
Coloque no Script WhileRunning em Organizer Aplicao:
IF Andar1 == 1
Setor = 1
ELSEIF Andar2 == 1
Setor = 2
ELSEIFAndar3 == 1
Setor = 3

61

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 clulas receber o
valor desejado.
Crie 5 Botes do Tipo: Liga/desliga, em cada um associe as 5 Tags Ram (Andar1,.....,Andar5).
Crie 5 Displays,cada um associado com uma clula do Tag Matriz.
Crie um Boto com Mensagem: Incndio Controlado, para ressetar os alarmes.
No Script OnPress do Boto Incndio Controlado pode-se utilizar os comandos de fluxo para zerar
as clulas da Matriz, utilizando tambm uma varivel declarada.
Dim i
FOR i = 1 to 5
Matriz.SetCell (1, i, 0)
Setor = 0
NEXT
Crie um boto na Tela1 com Mensagem: Incndio, configurado para ir pra Tela Incndio.

Rode a aplicao e verifique os resultados.

62

Se os botes so apertados e a aplicao fechada, quando ela aberta novamente os valores das
clulas no so ressetados.
Obs2. Opo para ressetar as clulas no incio da aplicao.
Copie o Script do Boto: Incndio Controlado e cole no Script OnStartRunning em Organizer
Aplicao.
Obs3. Opo para Utilizar o Tag Crono para mostrar uma visualizao de alarme.
Crie um Tag Crono com Nome: Crono dentro do Grupo Incndio.
Cada Boto que simula o valor do alarme deve, quando pressionado, acionar o Tag Crono.
Crie um Bitmap e Localize: Alarme.bmp click

Aps 10s de ligado o Tag Crono, a Figura Alarme.bmp deve aparecer, e sumir quando o Boto
Incndio Controlado for pressionado.
Para isso, no Script WhileRunning do Organizer Aplicao:
IF Crono.acum>= 10
Crono.enable = 0
Crono.Reset ( )
Tela3.Bitmap1.visible = 1
ENDIF
No Script OnStartRunningdo Organizer Aplicao:
Tela3.Bitmap1.visible = 0
Crono.resetAcum =0
No Script OnPressdo Boto Incndio Controlado:

63

Tela3.Bitmap1.visible = 0
Crie um Boto com Mensagem: Alarme e no Script OnPress desse Boto escreva:
Crono.enable=1
Crie um Display e adicione Crono.acum.

Rode a aplicao e verifique os resultados.

64