Associação de Tags via script não funciona com Tags de Comunicação

Boa Noite,
Estou desenvolvendo uma aplicação onde preciso alternar associações de um Tag interno com varios Tags de comunicação e mostrar o valor em um display em Runtime. Consegui que funcionasse alternando associações com Tags internos, porém, ao utilizar tags de comunicação, nada acontece. Segue um exemplo de algumas linhas do Script:

If Application.GetObject("[Tags Link].Setup2306").Value = 2 then '180g
If Application.GetObject("[Tags RunTime].TurnoAtual").Value = “Turno 1” then
Application.GetObject("[Tags link].QtdeTotal2306").Links.CreateLink “Value”, “[Modbus Master].Teste.Value”, 0
Application.GetObject("[Tags Link].QtdeBoa2306").Links.CreateLink “Value”, “[Omron FINS].QtdeBoa2306_180g_T1.Value”, 0
ElseIf Application.GetObject("[Tags RunTime].TurnoAtual").Value = “Turno 2” then
Application.GetObject("[Tags Link].QtdeTotal2306").Links.CreateLink “Value”, “[Omron FINS].QtdeTotal2306_180g_T2.Value”, 0
Application.GetObject("[Tags Link].QtdeBoa2306").Links.CreateLink “Value”, “[Omron FINS].QtdeBoa2306_180g_T2.Value”, 0
ElseIf Application.GetObject("[Tags RunTime].TurnoAtual").Value = “Turno 3” then
Application.GetObject("[Tags Link].QtdeTotal2306").Links.CreateLink “Value”, “[Omron FINS].QtdeTotal2306_180g_T3.Value”, 0
Application.GetObject("[Tags Link].QtdeBoa2306").Links.CreateLink “Value”, “[Omron FINS].QtdeBoa2306_180g_T3.Value”, 0
End If
End If

Alguém pode me ajudar?

Acredito que desta forma se, por exemplo, o TagDemo1 for um inteiro, e estiver com o valor 42 a associação será a constante 42, conforme:

Propriedade Conexão Fonte
Value < 42

Talvez então seja o case de fazer algo como:

' Concatenar PathName com .Value
.Links.CreateLink "Value", Application.GetObject("Dados.TagDemo1").PathName & ".Value", 0

Porém, eu testei o código do @Clairton e funcionou corretamente, o que pode estar ocorrendo é do script estar sendo disparado em runtime e não estar sendo utilizado o método .Save().


' Depois de executar o codigo utilizar o metodo save ...

Application.GetObject("[Tags link]").Save()

Feito isso, ao voltar ao Studio, no organizer >> explorer, antes de começar a editar o .prjonde se encontra o [Tags link], clicar com o botão direito e “Atualizar”, então conferir se os links foram criados corretamente.

Olá @Clairton,

O recomendado, é sempre que possível, utilizar associações, e nesse caso, indico que seja utilizado uma Conexão Múltipla, conforme exemplo:

Pelo que entendi, será utilizado dois displays, correto? Então para cada um, é necessário aplicar a lógica sugerida acima.

Atenciosamente,

Olá @leandrobpedro,

Bem observado, realmente, da forma que mencionei, será mostrado o valor de forma estática, a forma correta é a que você mencionou.

Atenciosamente,

Primeiramente, Obrigado @LucasSantos e @leandrobpedro

Inseri no código o método .save() e os displays atualizaram em runtime conforme os eventos programados disparavam.

O que me vem a cabeça outra questão: porque utilizar este método para tags de comunicação sendo que com tags internas funciona normalmente? Esta pergunta é apenas para eu entender melhor estes objetos, pois sou iniciante em projetos elipse… :thinking:

Agradeço mais uma vez (Salvaram minha pele, pois preciso entregar este projeto em 3 dias e não conseguia testá-lo… :hot_face:)…