Geração de Valores Graduais

Boa tarde a todos,

Estou na seguinte situação, eu necessito gerar valores de forma aleatória, porém escalar.
Necessito que o operador insira um valor máximo e um valor mínimo, e preciso que o valor
“Aleatório” apresente valores escalares, por exemplo o operador coloca um valor mínimo de 1 e
um máximo de 2, necessito que a variação apresente valores como: 1,1…1,2…1,3…1,2…1,3 o mais
próximo possível disso.

O problema do Aleatório que estou enfrentando é devido a variação brusca de valores por exemplo de 1,1 à 1,8 de maneira repentina.

Desde já agradeço a atenção.

Boa tarde Matheus,

Os parâmetros de Mínimo e Máximo do tag demo podem limitar esta variação.
Sobre a variação repentina, basta configurar o período e o scan para uma verificação melhor dos valores.

2 Likes

Bom dia,

Eu fiz a tentativa utilizando a Tag demo, porém me problema agora
é que a tag demora muito para variar mesmo com o período e o scan
configurados.

Meu script tem que funcionar da seguinte maneira:
Ele tem que gerar valores aleatórios, mais precisamente
144 valores aleatórios, num click de um botão.

segue abaixo um trecho do script desenvolvido no click do botão.

do
vTemperatura= Round(Rnd() * ( Application.GetObject(“Dados.InserirDatasIntervalo.TemperaturaMAX”).Value - Application.GetObject (“Dados.InserirDatasIntervalo.TemperaturaMIN”).Value ) + Application.GetObject(“Dados.InserirDatasIntervalo.TemperaturaMIN”).Value,2)
Insert1.SetVariableValue “iData”, CDate(vDataGravar)
Insert1.SetVariableValue “iCamara”,
CStr(Application.Item(“BDSYS_MIN_Sala”).Value)
Insert1.SetVariableValue “iCam_Temp”, CDbl(vTemperatura)
Insert1.SetVariableValue “iCarc_Temp”, CDbl(0)
Insert1.SetVariableValue “iVenti_01”, CStr(“Ligado”)
Insert1.SetVariableValue “iVenti_02”, CStr(“Desligado”)
Insert1.SetVariableValue “iVenti_03”, CStr(“Não utilizado”)
Insert1.SetVariableValue “iValvLiq”, CStr(“Ligada”)
Insert1.SetVariableValue “iValvGas”, CStr(“Desligada”)
Insert1.SetVariableValue “iValvSuc”, CStr(“Desligada”)
Insert1.SetVariableValue “iValvAgua”, CStr(“Desligada”)
Insert1.SetVariableValue “iTempSPAlarme”, CDbl(0)
Insert1.Execute()
vDataGravar= DateAdd(“n”,10,CDate(vDataGravar)) ’ Proxima data
loop while (CDate(vDataGravar) <= CDate(CDate(vDataFinal)))

obs: o looping ocorre muito rápido não permitindo que a variação da tag ocorra.
obs2: esse script acima os valores aleatórios ainda são gerados por uma fórmula interna.

Caro @Matheus,

Realmente, o tag interno não vai conseguir variar tantas vezes durante a execução deste script.
Desta forma, você está no caminho certo executando uma fórmula dentro do próprio script, calculando assim o número de variações necessárias.
Qual o resultado que você está tendo com este script?

1 Like

Bom dia,

Eu consigo uma variação dentro do intervalo relativamente satisfatória, o meu problema é que os
valores alteram de maneira brusca, eu preciso de alguma maneira filtrar esses dados para que seus valores não sofram uma variação tão alta. Segue uma foto do gráfico gerado com os dados até o momento, perceba que o gráfico acaba ficando bastante serrilhado.

Agradeço a atenção.

Caro @Matheus,

Não existe no E3 uma ferramenta para ‘arredondamento’ da curva traçada pela pena.
Para diminuir estes distúrbios, acho que aumentar o tempo entre os pontos pode ajudar a não ficar tão poluído este gráfico.
Outra solução seria fazer este filtro no próprio cálculo.

Exato, estou trabalhando esse filtro por meio do script, porém não estou obtendo sucesso até o momento.