Olá joaopve,
Também tive bastante dificuldade na primeira vez que fui escrever um scripting, nunca acionei nenhum dos meus via eventos, os que eu uso são sempre acionados por botões, eles meio que tomam conta de um roteiro para a execução de um ensaio de motores.
Vamos por partes, primeiro entre em scripting, crie um novo, dê o nome e aí em “pontos do contexto” você pode selecionar os DataPoints que vc deseja recuperar o valor deles no meio do scripting (atenção, só é preciso adicionar esses pontos de contexto se precisa ler e utilizar algum valor de algum datapoint, caso precise apenas escrever em um datapoint não precisa adicionar nada de pontos do contexto, veremos abaixo), caso tenha adicionado algum datapoint, vai aparecer da frente dele um campo chamado “Var” aí vc vai escrever um apelido pelo qual deseja chamar esse datapoint no meio do scripting.
Em “Objetos do Contexto”, vc tem 2 opções:
-Comandos para DataSource, aqui caso tenha interesse marque a caixa “Add”, isso serve apenas para o caso de habilitar e desabilitar um DataSource, bem simples assim;
-Comandos para DataPoint, aqui se marcar “Add” vc vai poder habilitar e desabilitar um datapoint e também vai poder escrever em um datapoint, no meu caso eu fiz escrita, por isso marquei essa caixa e no campo “Var” vc dá um apelido para o recurso que se chama DataPoint, no meu caso eu coloquei com “dp” o apelido, no exemplo abaixo fica mais claro, sempre que quiser escrever em um datapoint vai ter que dar um comando que começa com esse apelido assim: “dp.write…”
Bom, feito isso, arregace as mangas que vai ter que escrever, para te ajudar vou colocar um exemplo aqui em baixo do que eu fiz em um dos meus scriptings. Só para ficar mais claro, a linguagem é JavaScript, não sei nada dessa linguagem tb, mas é importante saber que comentários são inseridos utilizando “//” então o que ver na frente disso é explicação ok?!
Nesse scripting abaixo não foi necessário adicionar nenhum “ponto do contexto” porque eu não to usando nenhum valor de datapoint (não faço leituras), eu só escrevo valores em datapoints, para escrever vc só precisa saber usar a sintaxe certa, saber o número do XID do DataPoint (sempre que cria um novo datapoint ele gera automaticamente um XID, é só ir no DataSource, abrir os DataPoints, clicar em editar o datapoint que vc vai descobrir o valor do XID) e saber o valor que vai escrever no Data Point aí fica assim:
dp.writeDataPoint(‘XID’,VALOR);
-------------------------------------------------------------------Início do Scripting-----------------------------------------------------
dp.writeDataPoint(‘DP_392414’,100);
//Aqui estou escrevendo o valor “100” em um datapoint de XID=DP_392414
dp.writeDataPoint(‘DP_350022’,‘Bloqueando Motor’);
//Também é possível escrever texto, só tem q configurar o datapoint para alfanumérico
dp.writeDataPoint(‘DP_936911’,‘Bloqueado’);
dp.writeDataPoint(‘DP_663288’,1);
var inicio = new Date().getTime();
var atual = new Date().getTime();
while((atual - inicio) < 10000)
{
atual = new Date().getTime();
}
//Essas 6 linhas são só para fazer o scripting ficar parado 10s, descobri aqui no fórum isso aí, mas parece que só para ficar parado tem uma função mais simples que tem na sintaxe dela algo de “delay” mas não lembro. Lembrando que está em milisegundos por isso dos 10000.
dp.writeDataPoint(‘DP_392414’,0);
dp.writeDataPoint(‘DP_350022’,‘Desbloqueando Motor’);
dp.writeDataPoint(‘DP_936911’,‘Parado’);
dp.writeDataPoint(‘DP_663288’,0);
var inicio = new Date().getTime();
var atual = new Date().getTime();
while((atual - inicio) < 5000)
{
atual = new Date().getTime();
}
//Aqui espera só 5segundos
dp.writeDataPoint(‘DP_350022’,‘Ensaio Concluído’);
-------------------------------------------------------------------Fim do Scripting-----------------------------------------------------
Bom, esse scripting é bem simples mas já dá para ter uma idéia. Aqui só estou usando variáveis virtuais por isso não me importei tanto em fazer leituras
Tenho outro scripting bem curtinho também mas já tem mais sintaxes para te ajudar, este scripting serve para aumentar a carga em um motor, cada vez que dou um clique no botão que aciona o scripting, ele aumenta em “10” o valor da Carga, porém, como estou medindo esse valor em porcentagem, não queria que o valor passasse de 100%, então coloquei uma condição para a partir de 100 não somar mais.
Usei um “Vertical Level” para mostrar o valor da Carga e coloquei um botão em cima do level e outro em baixo, cada um acionava um scripting, o de cima aumentava a carga em 10% e o de baixo diminuia a carga em 10%, deu um resulto muito legal.
Nesse scripting eu precisei ter acesso ao valor atual da variável (fazer leitura) então eu precisei adicionar o DataPoint ao “Ponto do Contexto” e dei apelido para ele de “carga”
Abaixo está esse scripting como mais um exemplo:
-------------------------------------------------------------------Início do Scripting-----------------------------------------------------
B = carga.value;
//Aqui eu carreguei um variável “B” com o valor do datapoint “carga”.
if (B != 100) A = B+10;
;
// Se B for diferente de 100 -> Então faça A=B+10 , senão, não faça nada, com lógica acho q não funciona usar direto o carga.value , por isso usei a variável “B” e “A”, parece que não precisa declarar elas antes.
dp.writeDataPoint(‘DP_392414’,A);
//Por fim carrega o valor de A no DataPoint “carga” que tem o XID=DP_392414.
-------------------------------------------------------------------Fim do Scripting-----------------------------------------------------
Por fim, fique com esses 2 links, tem praticamente todas as informações que precisa para realizar contas em JavaScript nos scriptings:
http://www.mspc.eng.br/info/jscriptMath.shtml
http://www.mspc.eng.br/info/jscriptOper.shtml#aritm
É isso aí, acho que com esses passos, já dá para começar um scripting né, espero ter ajudado.
Abraço e paz!