Page 1 of 1

Como manipular tag opc de instancia via script de tela

Posted: Thu Nov 03, 2016 8:02 pm
by WSL
Olá,

Não estou conseguindo acessar e altera o valor de um tag opc de instância do tipo boolean através de um script associado à um objeto de tela. Segui o exemplo abaixo, que encontrei na documentação substituindo os nomes, mas não funcionou, parece que não é bem isso que eu preciso.

Code: Select all

   1  -- exemplo de chamada de abertura de tela utiliznado modelos
   2  local x = Screens.Open("ModeloXY1", "Viewers.Screens.grupo1.xTela_ModeloXY1", {xRefBM1 = "AR147", xRefGLI1 = "MG012"})
   3 
   4  -- exemplo de acesso a Tags definidos no modelo
   5   inst_BM  = Instances.Get("InstanceGroup_001.Instance_001")
   6 
   7   list_models = Instances.ListModels() -- lista todos os modelos instanciados
   8 
   9   -- recuperação de Tag de Instância do Modelo
  10   local scr = Screens.Get("ModeloXY1")
  11   local scr_inst_BM = scr.GetInstance("BM1")  -- obtém o objeto da instância de modelo associado à tela corrente
  12   inst_path = inst_BM.Group .. "." .. inst_BM.Name
  13   pressão_fundo = Tags.Get("Instances." .. inst_path .. ".Tags.Local.group1.pressão_fundo")
Isto é possível? Daria pra postar um exemplo que faz isso?

Desde já agradeço.

Wilson Lima

Re: Como manipular tag opc de instancia via script de tela

Posted: Fri Nov 04, 2016 7:20 pm
by daniel kantor
Boa tarde, Wilson,

Se você só quer saber o nome da instância que será usada no momento, mas já tem o nome do grupo que ela pertence, você pode usar o seguinte:

Code: Select all

scr= Screens.Get('Screen_001')
inst = scr.Instances
nome = inst.RefModel_001.Name
print(nome)
tag = Tags.Get('Instances.InstanceGroup_001.' .. nome .. '.Tags.Local.TagLocalGroup_001.TagLocal_001')
tag.Value = false
tag:WriteValue()
print(tag.Value)
http://forum.hitecnologia.com.br/downlo ... view&id=77

a Tag tipo boolean você pode escrever nela true ou -1, false ou 0.

Caso o que você precisa é um pouco mais complicado, por favor, nos explique o cenário para melhor entender o que precisa.

Att,

Daniel Kantor