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?