Elaboração de Script


#1

Ola estou com dificuldade em fazer um script para um cliente, nele eu preciso fazer um botão de esterilização aonde eu subo a temperatura em um valor determindado e depois conta um tempo e depois esfria.


#2

Bom dia,

O que você está querendo fazer é setar um data point, aguardar um tempo e em seguida setar novamente o data point com outro valor, certo? Para fazer isso você pode criar um script com temporização, utilizando a página de Scripting do ScadaBR.

Vou deixar um pequeno passo a passo de como criar um script básico usando temporização (veja a imagem abaixo).

Primeiramente, você deve acessar a página de Scripting (1) e clicar para adicionar um novo script (2). Para que você possa escrever valores em data points, é necessário habilitar uma variável de comandos para data points (3.1), e opcionalmente você pode alterar o nome que será dado a essa variável (3.2) (no nosso caso, alteramos o nome para dp).

Em seguida, você deve criar o script desejado (4). E é aqui que entra a mágica: o modo mais comum para criar uma temporização no ScadaBR é chamar a função Date().getTime() para pegar a hora do sistema e utilizar um loop while() para ficar aguardando até que se passe um determinado tempo em milissegundos. Essa estratégia irá fazer o script “pausar” enquanto o tempo não é atingido, permitindo que você faça um set point antes e depois dessa pausa (para setar valores você deve invocar o .writeDataPoint() da sua variável de comandos, passando o XID do data point e o valor a ser escrito).

Pronto seu script, salve-o (5) e clique no botão de executar para testá-lo (6). (Importante: para testar alterações no script você deve sempre salvá-lo antes)

Confira abaixo um exemplo de código que seta o valor do data point DP_204323 para 123, aguarda 5 segundos e em seguida seta o data point para 456.

// Escreve valor 123 no datapoint com XID "DP_204323"
dp.writeDataPoint("DP_204323", 123);

// Aguarda 5000 milissegundos (5 segundos)
var milissegundos = 5000;
var anterior = new Date().getTime();
var atual = new Date().getTime();

while ( (atual - anterior) < milissegundos) {
    // Atualiza o tempo atual
    atual = new Date().getTime();
}

// Escreve valor 456 no datapoint com XID "DP_204323"
dp.writeDataPoint("DP_204323", 456);

#3

Depois, para chamar esse script numa Representação Gráfica você pode adicionar um componente do tipo: Botão (script)


#4

Muito Obrigado Novamente


#5

O que eu preciso é setar esperar um tempo e depois resetar
Seria um botão de esterilização onde eu preciso tirar micro organimos de um tanque então eu subo a temperatura e depois eu esfrio para começar um processo


#6

Para isso provavelmente o script que eu passei irá servir.


#7

Está dando erro na execução do script


#8

Pode ser alguma coisa escrita errado. Se possível, poste um print da sua tela mostrando o script completo, para ficar mais fácil de perceber possíveis erros.