Você está na página 1de 69

APOSTILA DE

ELIPSE SCADA

Professor Érick Aragão Ribeiro


Instituto Federal de Educação, Ciência e Tecnologia
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

2
 Significado Aplicação.Logout() – pág.24
 Acionando um Botão pelas teclas F1,F2,...F12 – pág.24

4º PRÁTICA – PÁG.25

 Opção para criar 2 textos com letras de cores diferentes, já que no Script do Objeto Texto não
se tem acesso a cor da letra – pág.25
 Script OnValueChanged– pág.25
 Opção para que o Objeto Texto apareça após um tempo quando o Tag Demo estiver acima do
limite máximo ou abaixo do limite mínimo.– pág.25
 Tag Crono– pág.25
 Siginificado .acum– pág.25
 Siginificado .Reset ()– pág.27
 Script OnRButtonUp– pág.28
 Opção para destacar um texto.– pág.28
 Opção para destacar um texto quando o mouse estiver sobre ele.– pág.29
 Opção para que o Bitmap apareça quando o Tag Crono for maior que um tempo– pág.30
 Fluxo repet – until– pág.30
 (Nome do Tag Ram) += 1– pág.30
 Opção para fazer um objeto ficar visível por um determinado tempo– pág.30

5º PRÁTICA – PÁG.32

 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

3
 Podemos observar com outro tipo de Tag Demo o efeito causado no movimento o Objeto
Texto– pág.40
 Opção para que esse texto fique se movimentando horizontalmente no meio da tela– pág.41
 Opção para colocar o texto se movimentando na vertical– pág.41
 Significado .y – pág.41
 Opção para colocar numa das telas, o usuário que está logado no sistema– pág.41
 Opção para visualizar a hora atual– pág.41
 Nível de acesso– pág.42
 Como realizar um evento de acordo com a hora– pág.42
 Objeto Animação– pág.44
 Opção para que a animação fique acionada por um evento e fique em movimento– pág.44
 Opção para que o Tag Animar comece desabilitado– pág.44
 Opção para mudar o sentido de rotação das pás – pág.44
 Animação para controlar se um reservatório está sendo preenchido ou secado– pág.44
 Significado .highLimit – pág.45
 Significado .lowLimit – pág.45

7º PRÁTICA – PÁG.46

 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

4
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

5
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:

1
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ê pode atribuir
valores ao tag selecionado deslizando o potenciômetro (botão deslizante) ou usando as setas de
direção nas extremidades do Slider. O valor vai variar conforme uma escala definida no objeto.
Você pode editar as propriedades do Slider dando um duplo clique sobre o mesmo.

Cria um objeto Slider e ajuste as seguintes configurações:

Tamanho e
Geral Moldura Tags
Pos
Mínimo: 0 X: 100 Efeito 3D: Fora Associar ao Tag Ram
Máximo: 100 Y: 100 Espessura: 5
Sequência:
Passo: 2
TagsAplicação
Marcar: Limites do Largura: 250 Título
TagsTag_1tag001
slider Altura: 70 Texto: Teste
Adicionar
Marcar: Mostrar

2
valor

3
1.4 OBJETO GAUGE

Para verificar as propriedades do Objeto Slider cria-se um Objeto Gauge,que tem a função de
mostrar o valor de variáveis analógicas, associadas a ele, de forma contínua.

Crie um Objeto Gauge e ajuste as seguintes configurações:

4
Geral Avançado Tamanho e Pos Moldura Tags
Mínimo: 0 Marcar: X: 450 Associar ao Tag Ram
Máximo: 100 Grossas Y: 100
Sequência:
Largura: 250 Título:
TagsAplicação
Marcar: Teste
Total Ticks: 5 TagsTag_1tag001
Mostrar Altura: 180 Adicionar
moldura

 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  X: 250 Desmarque:
BotStop.bmp 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.

5
Definição:

Clicando em qualquer objeto, podem-se visualizar as funções e atributos relacionados a este objeto.
Quando estamos escrevendo um script, um botão Copia no Script fica disponível nesta janela,
permitindo a cópia do atributo ou função em questão para as linhas de programação, facilitando essa
tarefa.

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.

6
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

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

8
1.6 OBJETO TEXTO

Definição:

O Objeto Texto permite atribuir mensagens a intervalos de valores dos tags, denominados Zonas.
Podem ser definidas diversas zonas cada uma delas contendo sua própria mensagem.

Crie um Objeto Texto abaixo ou ao lado do Bitmap e configure:

Zonas Moldura Tags


Desmarque:
Adicione: Zona 1 Adicione: Zona 2
Título
Mínimo: 0 Mínimo: 51 Adicione
Efeito 3D:
Máximo: 50 Máximo: 100 Tag Ram
Marque Fora
Mensagem: Parar Mensagem: Seguir Espessura: 5
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

9
Obs2. Opção para fazer um Bitmap aparecer através de um evento.
Crie um Bitmapcom as seguintes configurações:

Geral
Localizar  figuras
aerador10.bmp
Click: Tamanho original
Nome: Siga

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.

10
Este tempo que o bitmap leva para aparecer é devido ao tempo de execução do script, que pode ser
configurado no próprio script.

2ª PRÁTICA

2.0 RESUMO

 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

11
Crie 3 penas de desenho 
Label: Renomeie para
Eixo Y (vertical): Tag1,Tag2,Tag3 Em Y axis:
Largura: 300
Lim. Super: 100 adicione para Tag1, o Tag Demo
Altura: 200
Lim. Inferior: 0 tag001(Aplicaçã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 de tendência , em que o eixo X é o
Tag Demo e o eixo Y é um dos Tags Ram.

12
 Rode a aplicação e verifique a diferença entre os gráficos.

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

13
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:

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

15
Uma das boas funções do Trend Graph é a demonstração gráfica dos tipos de Tag Demo.

Crie mais 5 Tags Demo e configure-os para cada tipo diferente do seno com limite inferior: 0 e limite
superior: 100.

Crie mais 5 Trend Graph com limite inferior: 0 e limite superior: 100, cada um com uma pena
relacionada a um dos Tags Demo criado, com cores diferentes.

 Rode a aplicação e verifique o comportamento dos tipos de Tags Demo. Geralmente é através dessa
visualização que decidimos qual tipo de Tag Demo utilizar.

3ª PRÁTICA

3.0 RESUMO

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

16
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:

17
Crie outra tela com Nome: e Título: Apresentação.

Crie um terceiro botão (Nome: Botão3) com Funcionalidade: Momentâneo, do tipo BITMAP

, na aba Tamanho e Pos configure, Largura: 1020, Altura: 770, x = 0, y=0, na aba
Mensagens: 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:

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

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

20
Crie um Objeto Texto (Nome: Texto1), na aba Zona marque:Transparente e Zona Padrão e
Alinhamento: Direita, insira a Mensagem: Parar. Coloque o Objeto Texto atrás do botão acima de
acordo com a figura abaixo:

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.

21
 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:

22
Script OnPress:

Comp.enabled = 0

Script OnRelease:

Comp.enabled = 1

 Rode a aplicação.

Verifique que quando o botão (Nome: Botão3 ou/a Botão8) é pressionado o botão (Nome: Comp)
fica desabilitado.

Obs5. Opção para criar umMenu Principal, que guie o usuário para as outras telas do sistema.

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 :

23
OnPress:

Aplicação.Logout()

Apresentação.Activate()

O primeiro comando faz o logout do usuário e o segundo comando chama a Tela: Apresentação.

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

24
Crie um Objeto Gauge, na aba Geral, coloque Valor Mínimo:0 eValor Máximo: 100, na aba
Avançado em cores, coloque Limite baixo: 25 e Limite alto: 75 ambos de cor vermelho e no Limite
normal, escolha outra cor, sem título e associe ao Tag Demo criado.

Obs1: Opção para criar 2 textos com letras de cores diferentes, já que no Script do Objeto Texto não
se tem acesso a cor da letra.

Crie 2 Objetos Textos,sem título, na aba Zona, coloque fundo azul claro, Mensagem: Alarme, com
Fonte: 18. Em um dosObjetos Textos, coloque letra do Texto: Preta e na aba Geral: Nome:
TextoPreto e no outro Objeto Texto, coloque letra do Texto: Vermelha e na aba Geral: Nome:
TextoVermelho.

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

25
Para que esse Tag inicie a contagem é necessário habilitar seu enable.

A lógica a ser seguida: Se o acumulador for maior ou igual a 10, deixaremos o TextoVermelho
visível e o TextoPreto invisível. Se o valor do Tag Demo estiver dentro da faixa do alarme. O Tag
Crono deve ser habilitado, caso contrário, deve ser desabilitado e ressetado.

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

27
Quando o alarme é ativado, é preciso que o operador reconheça que o alarme foi ativado, por isso,
crie um botão com mensagem Reconhecimento de alarme e no Script OnPress do mesmo, coloque:

tag002.Reset()

 Rode a aplicação e tecle nesse botão, quando o 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

28
..

..

(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

29
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:

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

31
 Opção para que a luz esteja sempre apagada e o texto esteja sempre invisível quando a
aplicação iniciar– pág.36
 Como usar o comando While– pág.37
 Opção para gerar um tempo– pág.37

5.1 APLICAÇÃO

Após abrir o programa, crie uma nova aplicação (Nome: Tutorial_Pratica5) e salve o aplicativo
na pasta SCADA.

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.

32
Nesta Tela, crie um Bar Graph com as configurações abaixo:

Aba Geral Aba Tamanho Aba Moldura Aba Tags Aba Cores das Aba régua
e Pos Barras
Mínimo: 0 Largura: 300 Efeito 3D : Adicione: Cor: azul Desmarque:
Máximo: 100 Altura: 200 Nada tag001 Habilita
Espaçamento: 0 X: 124 Desmarque:
Y:344 Visível
Desmarque: 3D

Copie da Tela1 o Slider1 que está associado ao respectivo Tag Ram: tag001 e cole na Tela2.

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

33
Na aba Geral do Bar Graph, configure a cor do fundo com as mesmas configurações.

Crie outro Bar graph (Barra2), com as mesmas características do Barra1, colocando a Cor do
Fundo: azul , mudando o X: 449 e o Y:344 na aba Tamanho e Pos e retirando a associação com o
Tag Ram

 Rode a aplicação.

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.

34
Em seguida, crie 2 Objetos Textos e escreva em um a Mensagem: 50 e em outro a Mensagem:25,
Marque: Transparente e Zona Padrão, coloque Cor da Fonte: vermelho na aba Zonas, Desmarque:
visível na aba Moldura em ambos os Objetos Texto.

 Rode a aplicação.

Obs4. Agora mostremos um alarme para quando o nível estiver maior que o máximo definido ou
menor que o mínimo definido.

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:

35
IF tag001>= 50 OR tag001 <= 25

Bitmap1.fileName = ('C:\Treinamento\Figuras\BT_Iluminacao.bmp')

IF Perigo.visible == 1

Perigo.visible = 0

ELSE

Perigo.visible = 1

ENDIF

ELSE

Bitmap1.fileName = ('C:\Treinamento\Figuras\BT_Iluminacao_apagado.bmp')

Perigo.visible = 0

ENDIF

Para o Objeto Texto: Perigo piscar com maior frequência, diminua o tempo de Rodar a cada para
100 msec em 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

36
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

37
 Opção para o Objeto Texto se mover na Tela– pág.40
 Significado .x – pág.40
 Opção para que o texto caminhe na tela toda, desapareça no final gradualmente e apareça no
início gradualmente– pág.40
 Podemos observar com outro tipo de Tag Demo o efeito causado no movimento o Objeto
Texto– pág.40
 Opção para que esse texto fique se movimentando horizontalmente no meio da tela– pág.41
 Opção para colocar o texto se movimentando na vertical– pág.41
 Significado .y – pág.41
 Opção para colocar numa das telas, o usuário que está logado no sistema– pág.41
 Opção para visualizar a hora atual– pág.41
 Nível de acesso– pág.42
 Como realizar um evento de acordo com a hora– pág.42
 Objeto Animação– pág.44
 Opção para que a animação fique acionada por um evento e fique em movimento– pág.44
 Opção para que o Tag Animar comece desabilitado– pág.44
 Opção para mudar o sentido de rotação das pás – pág.44
 Animação para controlar se um reservatório está sendo preenchido ou secado– pág.44
 Significado .highLimit – pág.45
 Significado .lowLimit – pág.45

6.1 APLICAÇÃO

Após abrir o programa, crie uma nova aplicação (Nome: Tutorial_Pratica5) e salve o aplicativo
na pasta SCADA.

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.

38
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 X: 380 Desmarque: Visível
para Entrar
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”)

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

40
Crie outro Tag Demo com Nome: Visual, Tipo: Seno, Limite Inferior:0 e Limite Superior: 800.

Recorte o Script do Tag Demo (Passo) e cole para o OnValueChanged do Tag Demo (Visual),
trocando o nome Passo pelo nome Visual no Script.

 Rode a aplicação.
Obs4. Opção para que esse texto fique se movimentando horizontalmente no meio da tela.

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.

41
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
Botão1 Botão2 Slider1 Slider2
Pos
Nível de Acesso: 0 100 1 100

 Rode a aplicação e entre com o usuário de nível 100, depois o de nível 1 e observe quais
objetos eles terão acesso.
Agora, reconfigure o nível de acessibilidade para:

Aba Tamanho e
Botão1 Botão2 Slider1 Slider2
Pos
Nível de Acesso: 1 20 50 90

Crie mais 2 usuários, Usuário3 com Login e Senha: c e com Nível de Acesso: 18; Usuário4 com
Login e Senha: d e com Nível de Acesso: 61.

 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:

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

43
Obs9. Opção para que a animaçãofique acionada por um evento e fique em movimento.

Crie um Tag Demo do tipo Dente de serra crescente, Nome: Animar e Limite Superior:40.Retire a
associação do Tag ECA da Animação1 e adicione ao Tag Demo (Animar) e reconfigure na aba
Zonas  Zona1, Mínimo: 0 e Máximo: 10; Zona 2, Mínimo: 11 e Máximo: 20; Zona3,Mínimo: 21
e Máximo: 30; Zona 4, Mínimo: 31 e Máximo: 40.

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.

44
Crie outro Objeto Animação com 3 zonas, adicionando as figuras a_quent.bmp, Limite Mínimo e
Máximo: 1;a_quent1.bmp, Limite Mínimo e Máximo: 0 e Limite Mínimo e Máximo: 2, na aba

Geral, click .

Crie outro Tag Demo do tipo Dente de serra crescente com Nome: Animar1, com Limite Inferior:0
e Limite Superior: 1, Período: 1000, adicione este Tag à Animação2.

Crie 2 Botões (Botão2 e Botão3)do tipo Liga/Desliga, Botão3 com Mensagem: ENCHER O
TANQUE e Botão2 com Mensagem:SECAR O TANQUE.

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

45
Animar1.lowLimit = 1

Para que o tanque comece no estado normal, copie o que está escrito no Script OnRelease do
Botão3 e cole no Script OnStartRunning do 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
46
Tag001 = 1

Quando um valor de um Tag Ram for atribuído através de um Set Point associado a ele, diversos
eventos ocorrem, como a parada do valor do Tag Demo ou um resset do Tag Crono.

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 ao ligar o cronômetro.

Crie 5 Set Points,um abaixo do outro, a esquerda e 5 displays, um abaixo do outro, a direita.

Associe os Tags aos Set Points e Displays, respectivamente, de cima pra baixo. No Tag Crono
associe o seu acumulador.

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

47
 Rode a aplicação e verifique qual dos Tags efetivamente são modificados, em seguida atribua
4 ao Tag RAM1.

Obs1. Opção para um evento desabilitar visualmente um Set Point ou uma Figura, para evitar que o
operador cometa erros graves.

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.

48
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
Crono1 Crono2 DEM RAM1 RAM2
adicionar:
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
RAM3 RAM4 RAM5 RAM1 RAM2
Adicionar:

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

No Script OnPress do Botão Parâmetros do inversor, escreva:

49
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)

50
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)

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

52
Set Point estará desabilitado.Isso é um problema e acontece porque o Scada mantém o estado dos
objetos da última execução do aplicativo.Para solucionar esse problema, seráhabilitado esse objeto
Set point. Podemos lembrar que num projeto a idéia é iniciar a execução da aplicação e não parar
mais, portanto não se pode colocar o comando no StartRunning.

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("Deseja realmente parametrizar o inversor?","Cuidado", 01h) ==1

53
Tela2.Setpoint2.enabled = 1

Tela2.Setpoint3.enabled = 1

...
ENDIF

 Rode a aplicação.

Pode-se perceber um erro no Scada. Quando clica-se no Set Point TempoAcel./Desacele seleciona
Não aparece a mesma caixa de mensagem.O Scada mostra uma caixa de mensagem toda vez que
aparece o comando MessageBox. Então a maneira mais usada para comparar o retorno da
mensagem é uma comparação e um ELSE, que serve tanto para o Botão Não, quanto para o Botão
Cancel, quanto para o Fechar „X‟.

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

54
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

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

56
Crie 2 Objetos Slider associados aos Tags Ram.

 Rode a aplicação e mova os Sliders e click em um dos Alarmes ativos e reconheça o alarme.

Crie um Objeto Bar Graph do Tipo: Bar Gauge com Limite Mínimo: 0 e Limite Máximo: 100,
Orientação: Da Esquerda para a Direita. Adicione os 4 Tags. Na aba Cores das Barras, Marque
Mostrar Label. Na aba Cores do Bar Gauge, configure os limites de acordo com cada Tag.

57
 Rode a aplicação, movendo os Sliders e verificando os limites de alarme.

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.

58
Na aba Alarmes do Tags, coloque mensagens de alarme e retorno nos Tags. Esse tipo de alarme
registra de tempos em tempos todos os alarmes do grupo de alarmes criado.

Crie um Objeto Botão na Tela1 que vai para a Tela2 e copie os 2 Objetos Sliders da Tela1 e cole na
Tela2.

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

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

60
A ideia é que estamos recebendo 5 sinais de sensores digitais de incêndio com saída 0 ou 1, onde
representaremos essas variáveis como Tags Ram.

De acordo com o Tag que for acionado, outra variável (Tag Ram), receberá um valor
correspondente a esse Tag.

Crie 5 Tags Ram e coloque os Nome: Andar1,.....,Andar5, dentro de um Grupo de Tags chamado
Incêndio.

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

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

62
Se os botões são apertados e a aplicação é fechada, quando ela é aberta novamente os valores das
células não são ressetados.

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:

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

64

Você também pode gostar