Bom dia, qual o melhor método para acionamentos em grupo ou em lotes de saídas?
Estou usando “POINT LINKS” para isso, alguém saberia de uma outra forma?
Vlw.
Bom dia, qual o melhor método para acionamentos em grupo ou em lotes de saídas?
Estou usando “POINT LINKS” para isso, alguém saberia de uma outra forma?
Vlw.
Isso mesmo. De forma rápida eu costumo resumir assim:
Como sempre nos ajudando com grandes ideias.
Tenho outro desafio no mesmo assunto, no codigo abaixo irei acionar um conjunto de válvulas pneumáticas e algumas obrigatóriamente precisarão estar fechadas, em todas terão fim de curso em seus atuadores para o scadabr saber quais abriram e quais estarão fechadas, tem como enxergar os sinais dos fim de curso pelo SCRIPTING?
Se sim, centraliso a lógica em um unico lugar, sem a nescessidade de ficar criando DATA POINT META?
//DATA POINTS AC01
//VERIFICA SE TODAS VÁLVULAS ESTÃO FECHADAS
dp.writeDataPoint(“DP_294158”, 0); //FV 01 SAÍDA TANQUE
dp.writeDataPoint(“DP_268459”, 0); //FV 02 ENTRADA BOMBA 01
dp.writeDataPoint(“DP_201902”, 0); //FV 03 SAÍDA BOMBA 01
dp.writeDataPoint(“DP_000678”, 0); //FV 04 ENTRADA BOMBA 02
dp.writeDataPoint(“DP_869632”, 0); //FV 05 SAÍDA BOMBA 02
dp.writeDataPoint(“DP_948150”, 0); //FV 06 ENTRADA TANQUE/RECIRCULAÇÃO
dp.writeDataPoint(“DP_216025”, 0); //FV 07 BALANÇA DE SOLVENTES
//dp.writeDataPoint(“DP_919358”, 0); //FV 08 RESERVA
dp.writeDataPoint(“DP_146430”, 0); //P 01 BOMBA 01
dp.writeDataPoint(“DP_955221”, 0); //P 02 BOMBA 02
// Função para aguardar 5000 milissegundos (5 segundos)
function aguardar(milliseconds) {
var start = new Date().getTime();
var end = start;
while (end < start + milliseconds) {
end = new Date().getTime();
}
}
aguardar(5000); // Aguarda 5000 milissegundos antes de acionar as válvulas
//LÓGICA DE CONTROLE PARA RECIRCULAÇÃO DO TANQUE
dp.writeDataPoint(“DP_268459”, 1); //FV 02 ENTRADA BOMBA 01
dp.writeDataPoint(“DP_201902”, 1); //FV 03 SAÍDA BOMBA 01
dp.writeDataPoint(“DP_000678”, 0); //FV 04 ENTRADA BOMBA 02
dp.writeDataPoint(“DP_869632”, 0); //FV 05 SAÍDA BOMBA 02
dp.writeDataPoint(“DP_948150”, 1); //FV 06 ENTRADA TANQUE/RECIRCULAÇÃO
dp.writeDataPoint(“DP_216025”, 0); //FV 07 BALANÇA DE SOLVENTES
//dp.writeDataPoint(“DP_919358”, 0); //FV 08 RESERVA
dp.writeDataPoint(“DP_294158”, 1); //FV 01 SAÍDA TANQUE
aguardar(2000); // Aguarda 2000 milissegundos antes de ligar a bomba
dp.writeDataPoint(“DP_146430”, 1); //P 01 BOMBA 01
dp.writeDataPoint(“DP_955221”, 0); //P 02 BOMBA 02
Para ler o valor atual de um data point, não se usa na verdade a função writeDataPoint
, mas sim o recurso de adicionar pontos ao contexto. Depois disso, você consegue pegar o valor atual do data point através de “nome da variável criada + .value
”. Na foto fica mais claro:
Última dica: você pode escrever a sua função aguardar()
de uma forma muito mais reduzida e que mantém uma boa performance:
function aguardar(milliseconds) {
return java.lang.Thread.sleep(milliseconds);
}
Aviso importante: o uso de java.lang.Thread.sleep() não funciona no Scada-LTS por padrão!
@Celso vlw pelas dicas
Fiz o codigo com os acionamento em lote, checagem das válvulas abertas e fechadas.
Testei e funcionou bem, código ficou um pouco grande mas irei otimiza-lo
//01 01 AC01_RECIRCULAÇÃO_P 01
//BOMBA 01
//VERIFICA SE TODAS VÁLVULAS ESTÃO FECHADAS
dp.writeDataPoint("DP_294158", 0); //FV 01 SAÍDA TANQUE
dp.writeDataPoint("DP_268459", 0); //FV 02 ENTRADA BOMBA 01
dp.writeDataPoint("DP_201902", 0); //FV 03 SAÍDA BOMBA 01
dp.writeDataPoint("DP_000678", 0); //FV 04 ENTRADA BOMBA 02
dp.writeDataPoint("DP_869632", 0); //FV 05 SAÍDA BOMBA 02
dp.writeDataPoint("DP_948150", 0); //FV 06 ENTRADA TANQUE/RECIRCULAÇÃO
dp.writeDataPoint("DP_216025", 0); //FV 07 BALANÇA DE SOLVENTES
//dp.writeDataPoint("DP_919358", 0); //FV 08 RESERVA
dp.writeDataPoint("DP_146430", 0); //P 01 BOMBA 01
dp.writeDataPoint("DP_955221", 0); //P 02 BOMBA 02
// Função para aguardar em milissegundos
function aguardar(milliseconds) {
return java.lang.Thread.sleep(milliseconds);
}
aguardar(2000); // Aguarda 2000 milissegundos antes de acionar as válvulas
//LÓGICA DE CONTROLE PARA RECIRCULAÇÃO DO TANQUE
dp.writeDataPoint("DP_268459", 1); //FV 02 ENTRADA BOMBA 01
dp.writeDataPoint("DP_201902", 1); //FV 03 SAÍDA BOMBA 01
dp.writeDataPoint("DP_000678", 0); //FV 04 ENTRADA BOMBA 02
dp.writeDataPoint("DP_869632", 0); //FV 05 SAÍDA BOMBA 02
dp.writeDataPoint("DP_948150", 1); //FV 06 ENTRADA TANQUE/RECIRCULAÇÃO
dp.writeDataPoint("DP_216025", 0); //FV 07 BALANÇA DE SOLVENTES
//dp.writeDataPoint("DP_919358", 0); //FV 08 RESERVA
dp.writeDataPoint("DP_294158", 1); //FV 01 SAÍDA TANQUE
//AGUARDAR UM PERIODO PARA DESLOCAMENTO DAS VÁLVULAS
aguardar(2000); // Aguarda 2000 milissegundos
// FIM DE CURSOS VÁLVULAS
var PS_FV_01 = p187.value;
var PS_FV_02 = p189.value;
var PS_FV_03 = p191.value;
var PS_FV_04 = p193.value;
var PS_FV_05 = p195.value;
var PS_FV_06 = p197.value;
var PS_FV_07 = p199.value;
var PS_FV_08 = p201.value;
var CR_P01 = p206.value;
var CR_P02 = p207.value;
// LÓGICA CONDICIONAL DE CHECAGEM DE VÁLVULAS ABERTAS E FECHADAS
if (PS_FV_02 == 1 && PS_FV_03 == 1 && PS_FV_06 == 1 && PS_FV_01 == 1 &&
PS_FV_04 == 0 && PS_FV_05 == 0 && PS_FV_07 == 0 && PS_FV_08 == 0) {
dp.writeDataPoint("DP_268459", 1); // FV 02 ENTRADA BOMBA 01
dp.writeDataPoint("DP_201902", 1); // FV 03 SAÍDA BOMBA 01
dp.writeDataPoint("DP_000678", 0); // FV 04 ENTRADA BOMBA 02
dp.writeDataPoint("DP_869632", 0); // FV 05 SAÍDA BOMBA 02
dp.writeDataPoint("DP_948150", 1); // FV 06 ENTRADA TANQUE/RECIRCULAÇÃO
dp.writeDataPoint("DP_216025", 0); // FV 07 BALANÇA DE SOLVENTES
// dp.writeDataPoint("DP_919358", 0); // FV 08 RESERVA
dp.writeDataPoint("DP_294158", 1); // FV 01 SAÍDA TANQUE
aguardar(2000); // Aguarda 2000 milissegundos
dp.writeDataPoint("DP_146430", 1); //P 01 BOMBA 01
dp.writeDataPoint("DP_955221", 0); //P 02 BOMBA 02
} else {
dp.writeDataPoint("DP_294158", 0); // FV 01 SAÍDA TANQUE
dp.writeDataPoint("DP_268459", 0); // FV 02 ENTRADA BOMBA 01
dp.writeDataPoint("DP_201902", 0); // FV 03 SAÍDA BOMBA 01
dp.writeDataPoint("DP_000678", 0); // FV 04 ENTRADA BOMBA 02
dp.writeDataPoint("DP_869632", 0); // FV 05 SAÍDA BOMBA 02
dp.writeDataPoint("DP_948150", 0); // FV 06 ENTRADA TANQUE/RECIRCULAÇÃO
dp.writeDataPoint("DP_216025", 0); // FV 07 BALANÇA DE SOLVENTES
// dp.writeDataPoint("DP_919358", 0); // FV 08 RESERVA
dp.writeDataPoint("DP_146430", 0); // P 01 BOMBA 01
dp.writeDataPoint("DP_955221", 0); // P 02 BOMBA 02
}
Vlw pelas dicas, Deus abençoe
Boa noite, compartilhando com voces um projeto simples para aperfeiçoamento de programação!
É um projeto para aprendizado e aperfeiçoamento em sistemas de automação.
Segue imagens, deu um trabalho mas ficou como o esperado.
A idéia foi tentar criar toda a lógica no SCRIPTING para concentrar num unico lugare tentar reduzir ao máximo a criação de DATAPOINT META.
// NESTE CÓDIGO CONTÉM ESCRITA EM DATAPOINTS; LEITURA DE DATASOURCE; TEMPO DE ESPERA E LOOP DE REPETIÇÃO.
//01 01 AC01_BALANÇA_SOLVENTES_P 01
//SISTEMA 01
// VÁLVULAS PNEUMÁTICAS
var FV01 = p186.value;
var FV02 = p188.value;
var FV03 = p190.value;
var FV04 = p192.value;
var FV05 = p194.value;
var FV06 = p196.value;
var FV07 = p198.value;
var FV08 = p200.value;
var P01 = p205.value;
var P02 = p208.value;
// FIM DE CURSOS VÁLVULAS
var PS_FV_01 = p187.value; // Estado da válvula 01
var PS_FV_02 = p189.value; // Estado da válvula 02
var PS_FV_03 = p191.value; // Estado da válvula 03
var PS_FV_04 = p193.value; // Estado da válvula 04
var PS_FV_05 = p195.value; // Estado da válvula 05
var PS_FV_06 = p197.value; // Estado da válvula 06
var PS_FV_07 = p199.value; // Estado da válvula 07
var PS_FV_08 = p201.value; // Estado da válvula 08
var CR_P01 = p206.value; // Contator bomba 01
var CR_P02 = p207.value; // Contator bomba 02
// Leitura das variáveis BOMBA e SAÍDA
var BOMBA = p213.value;
var SAÍDA = p212.value;
// Variáveis para estados das válvulas e bombas
var MANUTENÇÃO = -1;
var OFF = 0;
var ON = 1;
// FUNÇÃO PARA AGUARDAR UM PERÍODO
function aguardar(milliseconds) {
return java.lang.Thread.sleep(milliseconds);
}
// LÓGICA 01
if (SAÍDA == 1 && BOMBA == 1) {
// LÓGICA DE CONTROLE PARA RECIRCULAÇÃO DO TANQUE
dp.writeDataPoint("DP_294158", ON); // FV 01 SAÍDA TANQUE
dp.writeDataPoint("DP_268459", ON); // FV 02 ENTRADA BOMBA 01
dp.writeDataPoint("DP_201902", ON); // FV 03 SAÍDA BOMBA 01
dp.writeDataPoint("DP_000678", OFF); // FV 04 ENTRADA BOMBA 02
dp.writeDataPoint("DP_869632", OFF); // FV 05 SAÍDA BOMBA 02
dp.writeDataPoint("DP_948150", ON); // FV 06 ENTRADA TANQUE/RECIRCULAÇÃO
dp.writeDataPoint("DP_216025", OFF); // FV 07 BALANÇA DE SOLVENTES
dp.writeDataPoint("DP_919358", OFF); // FV 08 RESERVA
// AGUARDAR UM PERÍODO PARA DESLOCAMENTO DAS VÁLVULAS
aguardar(10000); // Aguarda 10000 milissegundos
// VERIFICA NOVAMENTE A CONDIÇÃO DAS VÁLVULAS APÓS O TEMPO DE ESPERA
while (true) {
PS_FV_01 = p187.value;
PS_FV_02 = p189.value;
PS_FV_03 = p191.value;
PS_FV_04 = p193.value;
PS_FV_05 = p195.value;
PS_FV_06 = p197.value;
PS_FV_07 = p199.value;
PS_FV_08 = p201.value;
SAÍDA = p212.value;
BOMBA = p213.value;
// LÓGICA DE CONFIRMAÇÃO CONDICIONAL DAS VÁLVULAS
if (PS_FV_01 == ON && PS_FV_02 == ON && PS_FV_03 == ON && PS_FV_04 == OFF &&
PS_FV_05 == OFF && PS_FV_06 == ON && PS_FV_07 == OFF && PS_FV_08 == OFF &&
SAÍDA == 1 && BOMBA == 1) {
// AGUARDA UM TEMPO ANTES DE LIGAR A BOMBA
aguardar(3000);
dp.writeDataPoint("DP_146430", ON); // P 01 BOMBA 01
dp.writeDataPoint("DP_955221", OFF); // P 02 BOMBA 02
} else {
// SE A CONDIÇÃO FOR FALSA DESLIGARÁ TODAS AS VÁLVULAS
dp.writeDataPoint("DP_294158", OFF); // FV 01 SAÍDA TANQUE
dp.writeDataPoint("DP_268459", OFF); // FV 02 ENTRADA BOMBA 01
dp.writeDataPoint("DP_201902", OFF); // FV 03 SAÍDA BOMBA 01
dp.writeDataPoint("DP_000678", OFF); // FV 04 ENTRADA BOMBA 02
dp.writeDataPoint("DP_869632", OFF); // FV 05 SAÍDA BOMBA 02
dp.writeDataPoint("DP_948150", OFF); // FV 06 ENTRADA TANQUE/RECIRCULAÇÃO
dp.writeDataPoint("DP_216025", OFF); // FV 07 BALANÇA DE SOLVENTES
dp.writeDataPoint("DP_146430", OFF); // P 01 BOMBA 01
dp.writeDataPoint("DP_955221", OFF); // P 02 BOMBA 02
// AGUARDA UM TEMPO ANTES DE VERIFICAR NOVAMENTE
aguardar(2000);
break; // Sai do loop
}
}
}
// LÓGICA 02
if (SAÍDA == 1 && BOMBA == 2) {
// LÓGICA PARA CONDIÇÃO DE BOMBA LIGADA E SAÍDA DESLIGADA
dp.writeDataPoint("DP_294158", ON); // FV 01 SAÍDA TANQUE
dp.writeDataPoint("DP_268459", OFF); // FV 02 ENTRADA BOMBA 01
dp.writeDataPoint("DP_201902", OFF); // FV 03 SAÍDA BOMBA 01
dp.writeDataPoint("DP_000678", ON); // FV 04 ENTRADA BOMBA 02
dp.writeDataPoint("DP_869632", ON); // FV 05 SAÍDA BOMBA 02
dp.writeDataPoint("DP_948150", ON); // FV 06 ENTRADA TANQUE/RECIRCULAÇÃO
dp.writeDataPoint("DP_216025", OFF); // FV 07 BALANÇA DE SOLVENTES
dp.writeDataPoint("DP_919358", OFF); // FV 08 RESERVA
// AGUARDAR UM PERÍODO PARA DESLOCAMENTO DAS VÁLVULAS
aguardar(10000); // Aguarda 10 SEGUNDOS
// VERIFICA NOVAMENTE A CONDIÇÃO DAS VÁLVULAS APÓS O TEMPO DE ESPERA
while (true) {
PS_FV_01 = p187.value;
PS_FV_02 = p189.value;
PS_FV_03 = p191.value;
PS_FV_04 = p193.value;
PS_FV_05 = p195.value;
PS_FV_06 = p197.value;
PS_FV_07 = p199.value;
PS_FV_08 = p201.value;
SAÍDA = p212.value;
BOMBA = p213.value;
// LÓGICA DE CONFIRMAÇÃO CONDICIONAL DAS VÁLVULAS
if (PS_FV_01 == ON && PS_FV_02 == OFF && PS_FV_03 == OFF && PS_FV_04 == ON &&
PS_FV_05 == ON && PS_FV_06 == ON && PS_FV_07 == OFF && PS_FV_08 == OFF &&
SAÍDA == 1 && BOMBA == 2) {
// AGUARDA UM TEMPO ANTES DE LIGAR A BOMBA
aguardar(2000);
dp.writeDataPoint("DP_146430", OFF); // P 01 BOMBA 01
dp.writeDataPoint("DP_955221", ON); // P 02 BOMBA 02
} else {
// SE A CONDIÇÃO FOR FALSA DESLIGARÁ TODAS AS VÁLVULAS
dp.writeDataPoint("DP_294158", OFF); // FV 01 SAÍDA TANQUE
dp.writeDataPoint("DP_268459", OFF); // FV 02 ENTRADA BOMBA 01
dp.writeDataPoint("DP_201902", OFF); // FV 03 SAÍDA BOMBA 01
dp.writeDataPoint("DP_000678", OFF); // FV 04 ENTRADA BOMBA 02
dp.writeDataPoint("DP_869632", OFF); // FV 05 SAÍDA BOMBA 02
dp.writeDataPoint("DP_948150", OFF); // FV 06 ENTRADA TANQUE/RECIRCULAÇÃO
dp.writeDataPoint("DP_216025", OFF); // FV 07 BALANÇA DE SOLVENTES
dp.writeDataPoint("DP_146430", OFF); // P 01 BOMBA 01
dp.writeDataPoint("DP_955221", OFF); // P 02 BOMBA 02
// AGUARDA UM TEMPO ANTES DE VERIFICAR NOVAMENTE
aguardar(2000);
break; // Sai do loop
}
}
}
// LÓGICA 03
if (SAÍDA == 2 && BOMBA == 1) {
// LÓGICA PARA CONDIÇÃO DE BOMBA DESLIGADA E SAÍDA LIGADA
dp.writeDataPoint("DP_294158", ON); // FV 01 SAÍDA TANQUE
dp.writeDataPoint("DP_268459", ON); // FV 02 ENTRADA BOMBA 01
dp.writeDataPoint("DP_201902", ON); // FV 03 SAÍDA BOMBA 01
dp.writeDataPoint("DP_000678", OFF); // FV 04 ENTRADA BOMBA 02
dp.writeDataPoint("DP_869632", OFF); // FV 05 SAÍDA BOMBA 02
dp.writeDataPoint("DP_948150", OFF); // FV 06 ENTRADA TANQUE/RECIRCULAÇÃO
dp.writeDataPoint("DP_216025", ON); // FV 07 BALANÇA DE SOLVENTES
dp.writeDataPoint("DP_919358", OFF); // FV 08 RESERVA
// AGUARDAR UM PERÍODO PARA DESLOCAMENTO DAS VÁLVULAS
aguardar(10000); // Aguarda 10 SEGUNDOS
// VERIFICA NOVAMENTE A CONDIÇÃO DAS VÁLVULAS APÓS O TEMPO DE ESPERA
while (true) {
PS_FV_01 = p187.value;
PS_FV_02 = p189.value;
PS_FV_03 = p191.value;
PS_FV_04 = p193.value;
PS_FV_05 = p195.value;
PS_FV_06 = p197.value;
PS_FV_07 = p199.value;
PS_FV_08 = p201.value;
SAÍDA = p212.value;
BOMBA = p213.value;
// LÓGICA DE CONFIRMAÇÃO CONDICIONAL DAS VÁLVULAS
if (PS_FV_01 == ON && PS_FV_02 == ON && PS_FV_03 == ON && PS_FV_04 == OFF &&
PS_FV_05 == OFF && PS_FV_06 == OFF && PS_FV_07 == ON && PS_FV_08 == OFF &&
SAÍDA == 2 && BOMBA == 1) {
// AGUARDA UM TEMPO ANTES DE DESLIGAR A BOMBA
aguardar(2000);
dp.writeDataPoint("DP_146430", ON); // P 01 BOMBA 01
dp.writeDataPoint("DP_955221", OFF); // P 02 BOMBA 02
} else {
// SE A CONDIÇÃO FOR FALSA DESLIGARÁ TODAS AS VÁLVULAS
dp.writeDataPoint("DP_294158", OFF); // FV 01 SAÍDA TANQUE
dp.writeDataPoint("DP_268459", OFF); // FV 02 ENTRADA BOMBA 01
dp.writeDataPoint("DP_201902", OFF); // FV 03 SAÍDA BOMBA 01
dp.writeDataPoint("DP_000678", OFF); // FV 04 ENTRADA BOMBA 02
dp.writeDataPoint("DP_869632", OFF); // FV 05 SAÍDA BOMBA 02
dp.writeDataPoint("DP_948150", OFF); // FV 06 ENTRADA TANQUE/RECIRCULAÇÃO
dp.writeDataPoint("DP_216025", OFF); // FV 07 BALANÇA DE SOLVENTES
dp.writeDataPoint("DP_146430", OFF); // P 01 BOMBA 01
dp.writeDataPoint("DP_955221", OFF); // P 02 BOMBA 02
// AGUARDA UM TEMPO ANTES DE VERIFICAR NOVAMENTE
aguardar(2000);
break; // Sai do loop
}
}
}
// LÓGICA 04
if (SAÍDA == 2 && BOMBA == 2) {
// LÓGICA PARA CONDIÇÃO DE BOMBA DESLIGADA E SAÍDA DESLIGADA
dp.writeDataPoint("DP_294158", ON); // FV 01 SAÍDA TANQUE
dp.writeDataPoint("DP_268459", OFF); // FV 02 ENTRADA BOMBA 01
dp.writeDataPoint("DP_201902", OFF); // FV 03 SAÍDA BOMBA 01
dp.writeDataPoint("DP_000678", ON); // FV 04 ENTRADA BOMBA 02
dp.writeDataPoint("DP_869632", ON); // FV 05 SAÍDA BOMBA 02
dp.writeDataPoint("DP_948150", OFF); // FV 06 ENTRADA TANQUE/RECIRCULAÇÃO
dp.writeDataPoint("DP_216025", ON); // FV 07 BALANÇA DE SOLVENTES
dp.writeDataPoint("DP_919358", OFF); // FV 08 RESERVA
// AGUARDAR UM PERÍODO PARA DESLOCAMENTO DAS VÁLVULAS
aguardar(10000); // Aguarda 10 SEGUNDOS
// VERIFICA NOVAMENTE A CONDIÇÃO DAS VÁLVULAS APÓS O TEMPO DE ESPERA
while (true) {
PS_FV_01 = p187.value;
PS_FV_02 = p189.value;
PS_FV_03 = p191.value;
PS_FV_04 = p193.value;
PS_FV_05 = p195.value;
PS_FV_06 = p197.value;
PS_FV_07 = p199.value;
PS_FV_08 = p201.value;
SAÍDA = p212.value;
BOMBA = p213.value;
// LÓGICA DE CONFIRMAÇÃO CONDICIONAL DAS VÁLVULAS
if (PS_FV_01 == ON && PS_FV_02 == OFF && PS_FV_03 == OFF && PS_FV_04 == ON &&
PS_FV_05 == ON && PS_FV_06 == OFF && PS_FV_07 == ON && PS_FV_08 == OFF &&
SAÍDA == 2 && BOMBA == 2) {
// AGUARDA UM TEMPO ANTES DE DESLIGAR A BOMBA
aguardar(2000);
dp.writeDataPoint("DP_146430", OFF); // P 01 BOMBA 01
dp.writeDataPoint("DP_955221", ON); // P 02 BOMBA 02
} else {
// SE A CONDIÇÃO FOR FALSA DESLIGARÁ TODAS AS VÁLVULAS
dp.writeDataPoint("DP_294158", OFF); // FV 01 SAÍDA TANQUE
dp.writeDataPoint("DP_268459", OFF); // FV 02 ENTRADA BOMBA 01
dp.writeDataPoint("DP_201902", OFF); // FV 03 SAÍDA BOMBA 01
dp.writeDataPoint("DP_000678", OFF); // FV 04 ENTRADA BOMBA 02
dp.writeDataPoint("DP_869632", OFF); // FV 05 SAÍDA BOMBA 02
dp.writeDataPoint("DP_948150", OFF); // FV 06 ENTRADA TANQUE/RECIRCULAÇÃO
dp.writeDataPoint("DP_216025", OFF); // FV 07 BALANÇA DE SOLVENTES
dp.writeDataPoint("DP_146430", OFF); // P 01 BOMBA 01
dp.writeDataPoint("DP_955221", OFF); // P 02 BOMBA 02
// AGUARDA UM TEMPO ANTES DE VERIFICAR NOVAMENTE
aguardar(2000);
break; // Sai do loop
}
}
}
vlw.