KB-108454: Alterando mensagens de subcondições de um alarme Discreto em tempo de execução.

Descrição:

Como posso alterar, em tempo de execução (run time), as mensagens de entrada e retorno das sub-condições de um alarme discreto do Elipse E3 dentro de um XObject? Por exemplo, dentre as mensagens de sub-condições, é possível inserir a propriedade Name do XObject instanciado?

Solução:

Antes de mais nada, XObjects são bibliotecas de dados a partir das quais pode-se definir uma estrutura de dados a ser executada no servidor. Tal estrutura poderá realizar cálculos, associações, comunicações, verificação de alarmes, registro histórico, etc.; estes independem de qualquer interface gráfica (Viewer) aberta ou em execução naquele momento. Para criar um XObject, clique com o botão direito sobre o arquivo .lib no Organizer e então escolha a opção Inserir–XObject.

Para atrelar o nome do XObject às mensagens de sub-condições (entrada/retorno), é possível utilizar uma associação na propriedade DiscreteReturnMessageText.

A propriedade DiscreteReturnMessageText representa a mensagem de retorno deste alarme.

DiscreteReturnMessageText <- "Falha Motor_" & XOMotor.Name

As mensagens de entrada das sub-condições podem receber um valor fixo diretamente na janela de propriedades do Alarme; para isso, acesse a aba Discreto, e edite a coluna Texto da mensagem.

alterar mensagens de subcondições em tempo de execução

Para alterar as mensagens de sub-condições em tempo de execução, será necessário realizar estas alterações via scripts. A propriedade SubConditions de uma fonte de alarme discreto retorna um objeto que é uma coleção das sub-condições deste alarms.

Exemplo:

For each obj in Application.GetObject("Dados1.AlarmeDiscreto1").SubConditions
msgbox obj.Message
Next

Portanto, uma alternativa seria editar o texto de todas as mensagens das sub-condições diretamente no evento Constructor do XObject:

Sub XOMotor_Constructor()

Set Alarme = Item("cfgAlarm").Item("cav").Item("AlarmeDiscreto").SubConditions

For each obj in Alarme
obj.Message = Name & " – " & obj.Message
Next

End Sub

Artigos Relacionados:


 

Este artigo foi útil? Was this post helpful?
Yes0
No0

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *