Page 1 of 1

Viewer.Timer

Posted: Tue Apr 25, 2017 8:04 pm
by fdavid
Como devo usar, gostaria que a cada 50000 ms uma atualização na tela fosse realizada, mas não esta dando certo não sei que é algum erro no script ou se o Timer não esta sendo disparado.

Ele tem alguma limitação, pode alterar componentes de qualquer Screen?

Re: Viewer.Timer

Posted: Thu Apr 27, 2017 7:23 pm
by daniel_bable
Caro David, boa tarde!

Você poderia me informar como esta a configuração do seu timer e como esta seu script?

Nesta página, Você pode verificar algumas informações sobre o Timer.

Em caso de novas dúvidas, basta utilizar nosso fórum!

Fico no aguardo.
Obrigado.

Re: Viewer.Timer

Posted: Fri Apr 28, 2017 1:26 pm
by fdavid
Timer criado:
Viewer.Timers.updStock

Iniciar habilitado Sim
Ciclico Sim
Tempo 5000
On Script=Viewer.Scripts.Script_Group.Script_001

Para testar eu só estou tentando mudar o Caption de um Static_Text
Mas ai volta a outra dúvida que coloquei no forum, como informar o caminho completo.
http://forum.hitecnologia.com.br/viewto ... creen#p255

Re: Viewer.Timer

Posted: Fri Apr 28, 2017 2:00 pm
by fdavid
Conseguir fazer o Timer funcionar abrindo uma tela em 5 segundos, então no meu caso não esta executando por conta de um Tags.Get no script.
Tem alguma restrição o Timer do Viewers só acessa Tags do Viewers ?

local stock = Tags.Get(Kernel.Tags.....)

Mas se for isso, fiz um Timer em Kernel e também não executou essa linha no debug.

Re: Viewer.Timer

Posted: Fri Apr 28, 2017 2:30 pm
by daniel_bable
Caro David, bom dia!

Legal que você conseguiu.

Respondendo sua pergunta o Timer do Viewer consegue acessar Tags do Viewer e do Kernel e o Timer do Kernel consegue acessar apenas Tags do Kernel.

Lembrando que você não pode esquecer de colocar o caminho do Tag entre aspas.
local stock = Tags.Get("Kernel.Tags.....")

Em caso de novas dúvidas, basta utilizar nosso fórum!

Re: Viewer.Timer

Posted: Fri Apr 28, 2017 2:36 pm
by fdavid
Então não sei o que esta acontecendo de errado, o script abaixo funciona em outras situações e só no Timer que não.

Code: Select all

-- Setting variables
-------------------------
local con = Database.Get('Globals.DataBases.PostgreSQL')

-- Index of array: 1 Water, 2 Ciment, 3 Additive 
local Stock = Tags.Get("Viewers.Tags.Local.ViewerTagGroup_Display.ViewerTag_Stock")

-- Index 1 of array: Capacity
local WaterSet    = Tags.Get("Kernel.Tags.Local.TagLocalGroup_Config.TagLocal_WaterSet")
local CimentSet   = Tags.Get("Kernel.Tags.Local.TagLocalGroup_Config.TagLocal_CimentSet")
local AdditiveSet = Tags.Get("Kernel.Tags.Local.TagLocalGroup_Config.TagLocal_AdditiveSet")


Depurando, Saída LUA

Script_UpdStock:[string "-- Setting variables
..."]:7: attempt to index global 'Tags' (a nil value)
Executando __interactive__


Depurando em nível ele sai do debug na linha 2.

Re: Viewer.Timer

Posted: Fri Apr 28, 2017 2:49 pm
by daniel kantor
David,

O seu Timer está no Kernel ou no Viewer?
Pois se o Timer está no Kernel, ele rodará o Script pelo Kernel e, com isso, você não conseguirá ler uma Tag do Viewer.

Re: Viewer.Timer

Posted: Fri Apr 28, 2017 7:57 pm
by fdavid
Ele esta no Viewer mas não estou conseguindo acessar os objetos das telas, estou fazendo dessa forma:

Timer_001
OnScript = Viewer.Script.Script_001

Script_001

Code: Select all

Viewers.Screens.ScreenGroup.Screen_001.StaticText_001.Caption = "teste"
Quando o Script é disparado na mesma tela do objeto nao tenho problemas, como acessar esses objetos pelo script do Timer?