Olá, eu possuo uma IHM que me entrega dados modbus com valores numéricos quando leio a tag no HIscada Pro, porém eu preciso converter este valor para tempo, na imagem abaixo existe a correlação do valor modbus que a IHM me envia e o do valor em tempo, eu preciso chegar neste valor com o script lua do HIscada, poderiam me ajudar por favor ?
Conversão de valores para tempo
- Jean Bortolon
- Administrador
- Posts: 22
- Joined: Wed Oct 07, 2020 1:00 pm
Re: Conversão de valores para tempo
Olá prezado,
Para realizar esta conversão você irá trabalhar com 2 funções, são elas: DateTime e GetFormatString, acesse a documentação clicando nos links.
A função DateTime converte um valor númerico para Data Hora e a função GetFormatString pega este valor convertido e apresenta no formato que você deseja, ou seja, você não deseja data, apenas hora minuto e segundo,
Primeiramente vamos analisar o valor númerico que você está recebendo, de acordo com sua imagem a sua IHM está enviando o valor em Segundos vezes 1000:
900 segundos = 15 minutos
120 segundos = 2 minutos
14400 segundos = 4 horas
Após definir que iremos trabalhar com a base em segundos, vamos realizar o script para converter o seu valor para segundos, aplicar a função DateTime no valor convertido e depois aplicar a função GetFormatString para retirarmos a data desta estrutura, observe o script abaixo:
Observe abaixo o resultado realizado área de trabalho para edição de scripts LUA no IDE:
Para realizar esta conversão você irá trabalhar com 2 funções, são elas: DateTime e GetFormatString, acesse a documentação clicando nos links.
A função DateTime converte um valor númerico para Data Hora e a função GetFormatString pega este valor convertido e apresenta no formato que você deseja, ou seja, você não deseja data, apenas hora minuto e segundo,
Primeiramente vamos analisar o valor númerico que você está recebendo, de acordo com sua imagem a sua IHM está enviando o valor em Segundos vezes 1000:
900 segundos = 15 minutos
120 segundos = 2 minutos
14400 segundos = 4 horas
Após definir que iremos trabalhar com a base em segundos, vamos realizar o script para converter o seu valor para segundos, aplicar a função DateTime no valor convertido e depois aplicar a função GetFormatString para retirarmos a data desta estrutura, observe o script abaixo:
Code: Select all
ValorIHM = 14400000 -- Valor Recebido pela IHM
ValorEmSegs = ValorIHM/1000/24/3600 -- Valor Recebido divido por 1000 para tirar 3 casas, divido por 24 horas, divido por 3600 segundos por hora
ValorEmDataHora = DateTime(ValorEmSegs) -- Aplica a conversão do valor em segundos para Data Hora
ValorFinal = ValorEmDataHora:GetFormatString('hh:mm:ss') -- Aplica a formatação para horas,minutos para retirar a Data e manter apenas Hora, Minuto e Segundo
print(ValorFinal)
Observe abaixo o resultado realizado área de trabalho para edição de scripts LUA no IDE: