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.
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: