• Nenhum resultado encontrado

OBJETO SET POINT E MESSAGE BO

No documento APOSTILA DE ELIPSE SCADA (páginas 51-60)

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 OrganizerAplicaçã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 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.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

No documento APOSTILA DE ELIPSE SCADA (páginas 51-60)

Documentos relacionados