7º PRÁTICA 7.0 RESUMO
7.2 OBJETO SET POINT E MESSAGE BO
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.
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 ( )
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 OrganizerAplicação.
Obs2. Opção para criar uma tela com possibilidades para configurar parâmetros para determinada aplicação.
Crie mais 5 Set Points com as configurações dada na tabela abaixo:
Set Point: Setpoint6 Setpoint7 Setpoint8 Setpoint9 Setpoint10 Tag para
adicionar: Crono1 Crono2 DEM RAM1 RAM2 Título: Tempo1 Tempo2 Velocidade Tensão Corrente
Crie outra Telacom Título: Parâmetros do Inversor, com Fundo: Cinza e na aba Estilo, em Estilo: Marque Janelada e Marque a opção: Botão de Fechar.
Crie mais 3 Tags Ram com os Nome: RAM1, RAM2 e RAM3.
Crie 5 Set Points na Tela2 e configure como a tabela abaixo:
Set Points: Setpoint1 Setpoint2 Setpoint3 Setpoint4 Setpoint5 Título: Freq.Mín. Freq.Máx. TempoAcel./Desacel. NovaTensão NovaCorrenteN Tags para
Adicionar: RAM3 RAM4 RAM5 RAM1 RAM2
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 GlobalMessageBox, 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.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.
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,
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
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
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