Alterar propriedade configuração de alarmes

Boa Tarde!
É possível alterar o texto da mensagem da propriedade de alarmes em runtime?
Se sim, qual a forma?
Obrigado!
image

Olá Wanderson,

Sim, basta alterar a propriedade DigitalMessageText do alarme:

Application.GetObject("ServidorAlarmes1.AlarmeDigital").DigitalMessageText = "Nova Mensagem"

Para salvar o valor, execute o método Save() onde o alarme se encontra (ex.: pasta de dados ou Servidor de alarmes/Configurador de Alarmes):

Application.GetObject("ServidorAlarmes1").Save()

Bom Dia Délio,
Estou tendo dificuldade para acessar o caminho do servidor de alarme dentro da biblioteca. O Script não está achando o caminho.
Poderia me auxiliar.
Caminho Xobject onde se encontra o servidor de alarme
image
image
Propriedade do XControls
image
Erro apresentado.
image
Script

Wanderson,

Você está executando esse script em um objeto de tela?
Bom, você pode alterar a mensagem da instância inserida no servidor de dados, ou na classe (desta maneira alteraria para todas as instâncias).

Alterando a mensagem para uma instância específica:

Application.GetObject("Dados.XObjectAlarme").Item("ConfigAlarmes1").Item("AlarmeDigital").DigitalMessageText = "Nova Mensgem"

Alterando a mensagem na classe:

XControl1.Fonte.Item("ConfigAlarmes1").Item("AlarmeDigital").DigitalMessageText = "Nova Mensagem"

Se tiver dúvidas, por gentileza envie a sua aplicação para o meu e-mail (delio@elipse.com.br).

Boa Tarde Délio,
Consegui como seguinte script!


Uma outra duvida é quando eu saio da aplicação e executo ela novamente essa nova mensagem não se mantem salva, isso é norma?

Wanderson,

Atributos e/ou propriedades nativas, como a propriedade DigitalMessageText, sempre serão atualizadas com o valor original da classe pai, mesmo utilizando o método Save()
Portanto, a alternativa seria criar propriedades, conforme artigo http://kb.elipse.com.br/pt-br/questions/3100, em conjunto com o método Save().

Depois execute o método Save() na pasta de dados onde o XObject está inserido.
Exemplo:

XControl1.Fonte.MessageText = "Nova Mensagem"
Application.GetObject("Dados").Save()

Délio,
Fiz o seguinte Script e associei a uma propriedade do XObject ao DigitalMessageText do alarme.
image


Essa mensagem tem hora que salva e hora não salva na propriedade do XObject na pasta dados e também não consigo substituir a mensagem já salva por outra nova.
image
Outro problema que essa mensagem aparece em outras telas de instancia diferente de mesmos Xobjets mas ela não fica salva na propriedade do Xobject em questão na pasta dados dessas telas e quando encerro a aplicação as mensagem que se salva não retorna para o display que associei a essa propriedade porem ela esta salva nas propriedade.
O que pode estar acontecendo?

Wanderson,

Não consegui reproduzir o problema mencionado.

image

O texto inserido no setpoint é enviado para a instância correta, e ao parar e iniciar a aplicação o valor é exibido normalmente:

image

Se preferir, envie a aplicação que reproduz o problema para o meu e-mail (delio@elipse.com.br).

Sobre não conseguir substituir a mensagem já salva por outra, após executar o Save() em runtime, para que a nova mensagem apareça na propriedade da instância do XO, você deve atualizar o arquivo PRJ onde objeto está inserido.