Operações Aritméticas com script LUA

Post Reply
Wallacy
Posts: 24
Joined: Thu May 30, 2019 8:05 pm

Operações Aritméticas com script LUA

Post by Wallacy »

Vinicius, bom dia!

Estamos desenvolvendo uma aplicação com o RION e o HIScada e estou com dúvida de como realizar um script matemático (Adição, subtração e uma média durante um período) com duas variáveis OPC e o resultando sendo uma variável local, teria algum material ou exemplo para nos auxiliar?

Desde já agradeço a atenção.
User avatar
ViniciusMoraes
Administrador
Posts: 36
Joined: Sat Oct 22, 2016 1:48 am
Contact:

Re: Operações Aritméticas com script LUA

Post by ViniciusMoraes »

Prezado, bom dia!

Elaboramos um programa de exemplo do HIscada Pro que ilustra alguns cálculos básicos para te ajudar nessa demanda. Programa de exemplo encontra-se ao final do tópico para download.

Math_Operations_View.png
Math_Operations_View.png (43.39 KiB) Viewed 1107 times

O programa é bem simples é funciona da seguinte maneira:

Os parâmetros dos cálculos são variáveis OPC e os resultados são atribuídos em variáveis locais do Kernel com a formatação float. Neste caso, eu optei por apresentar os valores nos objetos Display e, com isso, não permite a edição dos valores OPC... Apenas leituras. Mas, fique a vontade para escolher o objeto ideal para sua aplicação.


----------------------------------------------------------------------------------------------------------------------
Configurações


1) Declaração das 8 tags OPC que serão utilizadas como parâmetros para os cálculos:

Tags_OPC.png
Tags_OPC.png (36.94 KiB) Viewed 1106 times



2) Declaração das 4 tags Locais que serão utilizadas para atribuir os resultados de cada operação:


Tags_Local.png
Tags_Local.png (35.81 KiB) Viewed 1105 times



3) Em seguida, foi criado um script do kernel que será responsável por executar as operações:

Kernel_Script.png
Kernel_Script.png (23.04 KiB) Viewed 1104 times


O código do script é o seguinte...

Code: Select all

--[[- - - - - - - - - - - - - - - - - - - - - - - - - -

    Ambiente: HIscada_Pro
    Projeto: Math_Operations
    Empresa: HI Tecnologia
     Versão: V.0.0.01
Responsável: Vinícius de Moraes e Jean Bortolon
       Data: 23/12/2021

\b Descrição:  \brief
  ... função do script

- - - - - - - - - - - - - - - - - - - - - - - - - - - -]]

-- Obtém acesso aos tags OPC que serão utilizados como parâmetro nos cálculos básicos

local a_add = Tags.Get("Kernel.Tags.Opc.TagOpcGroup_001.TagOpc_001")
local b_add = Tags.Get("Kernel.Tags.Opc.TagOpcGroup_001.TagOpc_002")

local a_sub = Tags.Get("Kernel.Tags.Opc.TagOpcGroup_001.TagOpc_003")
local b_sub = Tags.Get("Kernel.Tags.Opc.TagOpcGroup_001.TagOpc_004")

local a_mul = Tags.Get("Kernel.Tags.Opc.TagOpcGroup_001.TagOpc_005")
local b_mul = Tags.Get("Kernel.Tags.Opc.TagOpcGroup_001.TagOpc_006")

local a_div = Tags.Get("Kernel.Tags.Opc.TagOpcGroup_001.TagOpc_007")
local b_div = Tags.Get("Kernel.Tags.Opc.TagOpcGroup_001.TagOpc_008")


-- Obtém acesso aos tags locais que serão utilizados para receber os resultados

local add_result = Tags.Get("Kernel.Tags.Local.TagLocalGroup_001.TagLocal_001")
local sub_result = Tags.Get("Kernel.Tags.Local.TagLocalGroup_001.TagLocal_002")
local mul_result = Tags.Get("Kernel.Tags.Local.TagLocalGroup_001.TagLocal_003")
local div_result = Tags.Get("Kernel.Tags.Local.TagLocalGroup_001.TagLocal_004")



-- Realiza as operações básicas

add_result.Value = a_add.Value + b_add.Value
add_result:WriteValue()


sub_result.Value = a_sub.Value - b_sub.Value
sub_result:WriteValue()


mul_result.Value = a_mul.Value * b_mul.Value
mul_result:WriteValue()


div_result.Value = a_div.Value / b_div.Value
div_result:WriteValue()


4) Em seguida, foi criado um timer cíclico que vai ficar "chamando" o script para ser executado de tempo em tempo (Ao invés de ser um timer, poderia ser através de um evento OnTagChange - Fique a vontade para modificar):



Kernel_Timer.png
Kernel_Timer.png (31.5 KiB) Viewed 1101 times


----------------------------------------------------------------------------------------------------------------------


Acredito que com o exemplo você conseguirá implementar o cálculo da média tranquilamente. Caso precisar de ajuda nós podemos cotar algumas horas de engenharia para te ajudar a resolver a sua demanda.

E-mail de Vendas - HI Tecnologia: vendas@hitecnologia.com.br


Download do programa de exemplo abaixo:
Math_Operations.H7G
(604.05 KiB) Downloaded 72 times
Vinícius de Moraes
Vendas | Suporte Técnico Comercial

E-mail de contato: suporte@hitecnologia.com.br
Telefone: (19)2139-1700 - (Opção 2 - Suporte Técnico).
Post Reply