Académique Documents
Professionnel Documents
Culture Documents
Para verificar as propriedades do objeto Slider crie um objeto gauge, que tem a
função de mostrar o valor de variáveis analógicas, associadas a ele, de forma contínua.
Cria-se um objeto Gauge e ajusta-se as seguintes configurações:
Geral Avançado Tamanho Moldura Tags
Mínimo: 0 x Marcas grossas X: 450 Título: Teste Tag Ram
Máximo: 100 x Mostrar moldura Y: 100
Total tickts - 5 Largura: 250
Altura: 180
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 script ‘WhileRunning’, adiciona-se:
IF Tag001 < 50
Bitmap.fileName = (“caminho para a figura stop”)
ENDIF
Rode a aplicação e verifique o bitmap, alterando a faixa de valores no slider.
OU
Pode-se colocar o ELSE em vez do segundo IF com a condição, tirar o 1º ENDIF e
Rodar a aplicação.
O ‘ELSE’ significa todos os outros caso diferentes da condição estabelecida.
Digamos agora que operador é daltônico e não sabe inglês, ou seja, é necessário
um texto em português.
Vamos colocar uma lógica p/ alterar os valores dos tags de acordo com um evento.
Apague o gráfico da marca de tendência.
No script da aplicação ‘On Start Running’ coloque a seguinte lógica:
tag001 = 27
No script da aplicação ‘While Running’:
IF tag001 > 35
tag002 = 52
ELSE
tag002 = 11
ENDIF
Para verificar os detalhes de um momento no gráfico, crie outro botão com título
“aumentar” e colocá-lo no modo Liga/Desliga.
Uma das boas funções do Trend Graph é a demonstração gráfica dos tipos de Tag
Demo.
Retorne o 1º Trend Graph para a escala normal, limite superior ‘100’ e limite inferior
‘0’.
Retorne o Tag Demo para limite inferior ‘0’ e superior ‘100’
Cria-se mais 5 tags demo de tipos diferentes, com limites de 0 a 100.
Cria-se mais 5 Trend Graph com limites de 0 a 100, cada um com uma pena
relacionada a um dos Tags criados, com cores visíveis.
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 : Objeto Botão
Mude o botão para Jog e crie outro, desta vez com a função de controlar um
evento.
No script ‘On Press’ desse botão coloque:
Tag001 = 1
Rode a aplicação.
Note que quando o botão é pressionado, o Tag vai pra 1 e quando é solto o Tag vai
pra 0.
Quando o outro botão é pressionado, o Tag vai pra 1 e o botão 1 aparece
pressionado.
Isso acontece porque o 1º botão está associado diretamente com o Tag e seria
diferente se estivesse associado por scripts.
Geralmente, nas aplicações, cria-se uma tela de apresentação, que pode ser um
grande botão.
Para fazer um botão mais sofisticado que, quando pressionado, desabilite um tag
demo.
Na primeira tela criada, crie um botão do tipo Liga/Desliga no estilo Bitmap, com
nome B1.
No campo mensagens, adicione a figura ‘bdesliga’ em normal e a figura ‘bliga’
em pressionado.
OBS: A extensão do arquivo da figura é essencial.
Clique em ‘tamanho original’
Crie um texto com o nome ‘Parar’, transparente e localizado atrás do botão,
cobrindo-o.
Crie um display, associando ao Tag Demo.
No script do botão ‘B1’.
OnPress On Release
tag demo.enable = 0 tag demo.enable = 1
Rode a aplicação e clique no botão.
Rode a aplicação.
Verifique que quando o botão é pressionado o outro fica desabilitado.
O botão Logout da tela ‘Menu Principal’ deve fazer o logout do usuário e ir pra tela
de apresentação.
Pode-se habilitar q ele vá pra tela de apresentação e no script mandar fazer logout
ou colocar o seguinte script:
On Press:
Aplicação.Logout()
Apresentação.Activate()
O primeiro comando faz o logout do usuário e o segundo comando chama a tela de
apresentação.
Rode a aplicação e tecle em logout.
Um botão também pode ser configurado para ser acionado pelas teclas de funções
F1, F2, etc.
Configure o botão logout na aba ‘Geral’ para ser acionado pela tecla de função
F1.
Rode a aplicação e tecle F1.
4ª Prática : 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 1 Demo, do tipo seno, de 0 a 100.
Crie um objeto Gauge de limite 0 a 100, sem título, associado ao Tag demo e, em
‘avançado’, coloque um limite baixo de 25 e limite alto de 75 de vermelho e outra cor no
limite normal.
OBS.: No script do objeto texto não se tem acesso a cor da letra, portanto é
necessário criar 2 textos com letras diferentes.
Crie 2 objetos textos s/ título, com fundo verde ou azul claro. Um deles com letra
preta e nome (Texto preto) e mensagem ‘Alarme’, e outro com letra vermelha e nome
(Texto vermelho) e mensagem ‘Alarme’. Os 2 com letras grandes.
Para que esse alarme seja disparado após 30s que a variável esteja acima do limite
máximo ou abaixo do limite mínimo, deve-se:
Crie um Tag crono e um display na tela, associado ao acumulador do tag.
OBS.: Para que esse Tag inicie a contagem é necessário habilitar seu enable.
Rode a aplicação.
OBS.: Lembrando que em um projeto mesmo a variação de valores não seria tão
rápida, pois percebam que não dar tempo de chegar aos 30s.
Para continuar-mos testando, existem algumas opções:
Diminuir o tempo
Aumentar a faixa de alarme
Aumentar o período do Tag
A 3ª opção é a mais indicada, pois geralmente esse gauge é associado a um Tag
PLC que recebe valores de sensores, que, diferente dos tags demo, não ficam mudando
bruscamente de valores. Coloque o período do tag para 5000.
OBS.: Lembrando também de ressetar o tag crono no início da aplicação, ou
habilitar a opção ‘Zerar acumulador ao ligar cronômetro’
Quando o alarme é ativado, é preciso que o operador reconheça esse alarme, por
isso, crie um botão, com mensagem ‘Reconhecimento de alarme’ e no script “On Press”,
resset o tag crono.
Rode a aplicação e tecle nesse botão, quando o alarme for acionado.
Problema: 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 deve ser ressetado e o tag crono também, quando o botão for
pressionado, reiniciando após o operador ter resolvido o problema e clicar com o botão
direito no mesmo botão.
No script do botão ‘Reconhecimento do alarme’:
On Press
Tag crono.enable = 0
Tag demo.enabled = 0
Texto_preto.visible = 1
On RButton UP
Tag demo.enabled = 1
Quando o alarme for reconhecido o texto deve estar preto também, portanto:
No script do botão ‘Reconhecimento de alarme’:
On Press
Adicione tag Ram = 0
OBS: 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.
Por exemplo, quando o mouse estiver sobre o texto ele deve ficar destacado, por
razões estéticas. Veremos um exemplo.
Crie um objeto texto com letra preta, com nome “Texto preto2”, com mensagem
“aprender”, sem título, com fundo cinza.
Copie esse objeto e cole. O objeto foi criado atrás do original, por esse motivo
Esse comando (tag Ram += 1) significa (tag Ram = tag Ram + 1).
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.Exemplo:
Escreva no script:
REPEAT
tag Ram += 1
Gauge1.visible = 1
UNTIL tag Ram == 50000
Gauge1.visible = 0
Rode a aplicação.
Perceba que o gauge fica visível até determinado tempo, 4s no caso.
Crie 2 tags Ram e um Tag Demo com faixa de 0 a 100 e tipo seno.
Crie um Bar Graph com faixa de 0 a 100, espaçamento de 10, sem 3D e coloque o
título do Bar Graph “Gráfico das Variáveis”.
Associe os 3 Tags ao Bar Graph e, na aba ‘cores das barras’, marque a opção
‘Mostrar Labels’ e coloque 3 cores diferentes.
Crie 2 sliders de 0 a 100, associando 1 deles a um Tag Ram e o segundo a outro
Tag Ram.
Rode a aplicação e mova os botões do slider, verificando a coluna do Tag Demo.
OBS.: Mais alguns detalhes do Bar Graph serão mostrados em outras práticas.
Rode a aplicação.
Observe que o fundo do Bar Graph está numa cor diferente do fundo da tela.
Pergunta: Como colocar a mesma cor de fundo no Bar Graph, considerando que ele
não tem a opção ‘transparente’?
Resposta: Abra a figura no Paint e observe as configurações desse verde de fundo.
Matiz: 65 Vermelho: 240
Sat: 202 Verde: 253
Lum: 228 Azul: 232
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 bitmap e adicione a figura ‘BT_Iluminação_apagado.
Pergunta: Como deve ser o script que, quando o nível estiver na faixa de alarme
acenda essa lâmpada e mostra um texto dizendo ‘Perigo’ piscando até que o nível seja
normalizado?
Resposta: Crie um texto com mensagem ‘Perigo’ e nome perigo também.
Crie um script no ‘While Running’:
IF tag Ram >= nível máximo OR tag Ram <= nível mínimo
Bitmap1.fileName = ('C:\Treinamento\Figuras\BT_Iluminacao.bmp')
(1)
ELSE
(2)
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 ‘While Running’ em (1), os comandos:
IF Perigo.visible == 1
Perigo.visible = 0
ELSE
Perigo.visible = 1
ENDIF
Em (2) os comandos:
Perigo.visible = 0
Faça com que a luz esteja sempre apagada e o texto esteja sempre invisível
quando a aplicação iniciar.
OBS: Para fazer isso utilize o ‘Start Running’:
Bitmap1.fileName = ('C:\Treinamento\Figuras\BT_Iluminacao_apagado.bmp')
Perigo.visible = 0
Tag Ram = um valor na faixa normal
Crie um Tag Demo do ‘tipo dente de serra crescente’ com limite inferior 200,
superior 500 e nome “Passo”.
No script “On Value Changed” do tag demo:
Texto1.x = Passo
Rode a aplicação.
Observe que está muito lento então altere o período para 10.
Rode a aplicação.
Pergunta: Como fazer para que o texto caminhe a tela toda, desapareça no final
gradualmente e apareça no início gradualmente? Tentem fazer.
Resposta: Quando o limite inferior for – 220 e o superior 1020 esta condição é
satisfeita.
Crie outro Tag Demo com nome “Visual” do tipo seno, limite inferior 0 e superior
800.
Recorte o script do tag passo e copie para o ‘On Value Changed’ do Tag Visual,
trocando o nome passo pelo nome visual no APP Browser.
Rode a aplicação.
Na maioria dos projetos é colocado numa das telas o usuário que está logado no
sistema.
Para fazer isso associe ao display criado na Tela 2 o atributo
‘Aplicação.UserLogin’, colocando o display no formato texto, com fonte 14 e crie um
objeto Texto com nome “Usuário:”, s/ moldura e com fundo branco.
Deixe os objetos um ao lado do outro.
Rode a aplicação.
Experimente também deletar o objeto texto e no prefixo do display escrever
“Usuário:”.
100
O 100
Rode a aplicação e entre com usuário de nível 100, depois o de nível 1. Observe
a que objetos eles terão acesso.
50
90
1 20
Crie mais 2 usuários. Um com nível de acesso 18 e outro com nível de acesso 61.
Rode a aplicação e entre com os 4 usuários, observando os resultados.
No script ‘On Start Running’, coloque esse botão criado como invisível.
Botão associado.visible = 0
Crie outro botão na tela 2 com mensagem ‘Próxima’ no canto superior direito.
Crie uma nova tela com título Tela 3.
Volte à Tela 2 e configure o botão criado para ir para a tela 3.
Volte à Tela 3 e crie um objeto de animação, adicionando 4 zonas com os nomes
agita 0 até agita 3, configurando o mínimo e o máximo do agita 0 como 0, do agita 1 como
1, do agita 2 como 2 e do agita 3 como 3.
Pergunta: Para que o tag animar comece desabilitado o que se deve fazer?
Resposta: No script ‘On Start Running’ coloque o seu enable = 0.
Rode a aplicação.
Pergunta: Observe que as pás estão girando da direita para a esquerda. Como as
fazer girar da esquerda para direita?
Resposta: A maneira mais simples é trocar o tipo do tag animar para dente de serra
decrescente.
Outro tipo de animação é, a partir de um evento, controlar se um reservatório está
enchendo ou secando, c/ animação, através da mudança do limites, alto e baixo do Tag
demo.
Por exemplo pode-se fazer o cano alterar suas cores quando for encher ou secar.
Para que o tanque comece no estado normal, copie o que está escrito no script
‘OnRelease’ e cole no script ‘On Start Running’.
Rode a aplicação e tecle nos botões.
7ª Prática : Objeto Set Point e Message Box
Crie 2 tags Ram com nomes ‘RAM1’ e ‘RAM2’, 1 tag Demo de 0 a 100 com nome
Dem, período 1000 e do tipo seno.
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.
Então, coloque o título dos 3 set points associados aos Tags RAM1, RAM2 e
DEM, respectivamente, ‘Tensão’, ‘Corrente’ e ‘Velocidade’.
Nos 2 outros set points, coloque o título de ‘Tempo’.
Crie outra tela com título ‘Parâmetros do Inversor’, com fundo cinza, e na aba
‘Estilo’, marque a opção ‘janelada’ e a opção ‘botão fechar’.
Coloque a tela na posição X = 500, Y = 100, com tamanho suficiente para criar 5
set points. Crie 5 set pints.
Coloque no set point os títulos: Frequência mínima, Frequência máxima, Tempo
de acel/desacel, Nova tensão e Nova Corrente N.
Nos set points ‘Nova tensão’ e ‘Nova corrente N.’, associe aos tags RAM1 e RAM2.
Crie mais 3 tags Ram, com nomes RAM3, RAM4 e RAM5, e associe aos 3 set
points restantes.
No centro da tela 1, crie um Bitmap, add a figura ‘Motores’ e clique em ‘tamanho
original’.
No script ‘On Press’ do botão ‘Parâmetros do Inversor’:
Tela 2. Show ( )
Rode a aplicação e clique no botão, verificando os resultados.
Rode a aplicação.
Verifique que, para qualquer atitude sua, a continuação do script ‘On Press’ será
executada. Isto é um problema.
Vamos 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”.
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 ‘Frequência máxima’.
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 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, habilite em algum lugar 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 ‘Start Running’.
Então, coloque no botão ‘Parâmetros do Inversor’. No script ‘On Press’, o Set
point (Frequência máxima). Enable = 1
Rode a aplicação e perceba a diferença.
Veremos outro estilo de message Box, onde aparece os botões ‘Sim’, ‘Não’ e
‘Cancel’.
No mesmo script 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.
WHILE MessageBox(“Esse .... ) == 4
SetPoint (Tempo de acel/desacel).enable = 0
WEND
O repetir retorna 4.
Esse script significa que enquanto a mensagem retornar 4 (REPETIR), o setpoint
estará desabilitado, e quando outro botão for pressionado ele permanecerá desabillitado.
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 Message
Box’.
8ª Prática : Objeto alarme, Objeto Bitmap e Tag Matriz
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 add a figura ‘bmbd.bmp’
Crie um botão c/ mensagem ‘liga motor’.
Crie um script no botão ‘On Press’:
Bitmap1.fileName = (“figuras\bmb.bmp”)
Quando clica-se, o bitmap recebe a figura do motor ligado.
Outra lógica importante é que o motor só poderá estar ligado quando o Tag estiver
em seu estado normal.
OBS: 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.
Em seguida a estas linhas de comando, de acordo com o valor do setor, uma das
células receberá o valor desejado.
TagMatriz.SetCell (1, setor, 3)
Prática 5
Coloca-se o seguinte script no ‘While Running’:
IF tag001(nível) >= 90
Bitmap1.visible = 1
WHILE tag001 >= 60
tag001 -= 1
tag005 = 12500
WHILE tag005 >= 100
tag005 -= 1
WEND
WEND
Bitmap ‘lig motor’.visible = 0
ENDIF
Prática 6
Fase 2:
Devem ser associados 2 tags para os botões tag3 e tag4 (B1 e B2).
No script do botão B1 ‘On Press’:
IF tag004 == 1 Se o botão B2 estiver acionado
tag002 = 2 Aciona-se as 2 bombas.
ELSE Caso contrário
tag002 = 0 Aciona-se somente a bomba B1.
ENDIF
‘On Release’:
IF tag004 == 1 Se o botão B2 estiver acionado
tag002 = 1 Deixa somente a bomba 2 acionada
ELSE Caso contrário
tag002 = 3 Desaciona as 2 bombas
ENDIF
‘On Release’:
IF tag003 == 1 Se o botão B1 estiver acionado
tag002 = 0 Deixa somente a bomba 1 acionada
ELSE Caso contrário
tag002 = 3 Desaciona as 2 bombas
ENDIF
Resolução dos exercícios do Ladder
3)
4) a)
b)