SCADA之JS脚本

2 篇文章 0 订阅

产生虚拟数据

//产生随机数函数
function randomNum(minNum,maxNum){ 
    switch(arguments.length){ 
        case 1: 
            return parseInt(Math.random()*minNum+1,10); 
        break; 
        case 2: 
            return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10); 
        break; 
            default: 
                return 0; 
            break; 
    } 
}

var sNodeIdArr1 =new Array();//电流
var sNodeIdArr2 =new Array();//电压
var sNodeIdArr3 =new Array();//焊接速度
var sNodeIdArr4 =new Array();//焊弧状态
var sNodeIdArr5 =new Array();//设备状态


for (var i=0;i<63;i++){ 
 sNodeIdArr1[i]="ns=128;s=EQ_00"+(i+1)+".Current.PV";//电流
 sNodeIdArr2[i]="ns=128;s=EQ_00"+(i+1)+".Voltage.PV";//电压
 sNodeIdArr3[i]="ns=128;s=EQ_00"+(i+1)+".WireSpeed.PV";//焊接速度
 sNodeIdArr4[i]="ns=128;s=EQ_00"+(i+1)+".WeldDetect.PV";//焊弧状态
 sNodeIdArr5[i]="ns=128;s=EQ_00"+(i+1)+".State.PV";//设备状态
     }
var retVal1 = GetMulItemValue(sNodeIdArr1,0);//电流
var retVal2 = GetMulItemValue(sNodeIdArr2,0);//电压
var retVal3 = GetMulItemValue(sNodeIdArr3,0);//焊接速度
var retVal4 = GetMulItemValue(sNodeIdArr4,0);//焊弧状态
var retVal5 = GetMulItemValue(sNodeIdArr5,0);//设备状态


WriteDataToFile ("D:\\sNodeIdArr1.txt",sNodeIdArr1+"\r\n");
WriteDataToFile ("D:\\retVal1.txt",retVal1+"\r\n");


 for (var j=0;j<63;j++){
  var k=j*1;
  var run_id=k*3+1;

  var run5=retVal5[run_id];//设备状态
  
  var Current;//电流
  var Voltage;//电压
  var WireSpeed;//焊接速度
  var WeldDetect;//焊弧状态
  
  if(run5==1){
      Current=randomNum(294,310);
	  Voltage=randomNum(25,29);
	  WireSpeed=randomNum(7,10);
	  WeldDetect=1;
   }
   else {
      Current=0;
	  Voltage=0;
	  WireSpeed=0;
	  WeldDetect=0;
      }
var Current_node="ns=128;s=EQ_00"+(j+1)+".Current.PV";
var Voltage_node="ns=128;s=EQ_00"+(j+1)+".Voltage.PV";
var WireSpeed_node="ns=128;s=EQ_00"+(j+1)+".WireSpeed.PV";
var WeldDetect_node="ns=128;s=EQ_00"+(j+1)+".WeldDetect.PV";

WriteDataToFile ("D:\\Current.txt",Current_node+":"+Current+"\r\n");

SetOneItemValue(Current_node,Current);
SetOneItemValue(Voltage_node,Voltage);
SetOneItemValue(WireSpeed_node,WireSpeed);
SetOneItemValue(WeldDetect_node,WeldDetect);
 }
WriteDataToFile ("D:\\Current.txt","循环完成"+"\r\n");

JS延迟

var sleep = function(time) {
    var startTime = new Date().getTime() + parseInt(time, 10);
    while(new Date().getTime() < startTime) {}
};





sleep(1000); // 延时函数,单位ms

延迟+权限控制

var acookie=document.cookie.split(";");
console.log(acookie);
var user = getUser(acookie);
console.log(user);
function getUser(acookie){
  for(var i = 0;i < acookie.length;i ++){ 
    acookie[i]=acookie[i].trim(); 
    if(acookie[i].indexOf("_usr=")>=0){                      
      return acookie[i].split("_usr=")[1]
    }
  }
};

let arr = ['Admin', 'O管理员1'];
let index = arr.indexOf(decodeURI(user));
console.log(index) //结果是2


let dm = data.getDataModel();
dm.getDataByTag("Text_4").s("text",decodeURI(user));
dm.getDataByTag("Text_10").s("text",index);

if (index != -1){
var write0=writePointValue("ns=113;s=EQ_001.DI_001.PV",1);
console.info(write0);
setTimeout(function(){
    writePointValue("ns=113;s=EQ_001.DI_001.PV",0);
},500);}

多点拼接写值

console.log("****************************");

var read_value_1=readPointValue(["ns=115;s=EQ_008.EQ_001.AI_001.PV"]);
//console.log(read_value_1);
var read_value_2=readPointValue(["ns=115;s=EQ_008.EQ_001.AI_002.PV"]);
var read_value_3=readPointValue(["ns=115;s=EQ_008.EQ_001.AI_003.PV"]);
var read_value_4=readPointValue(["ns=115;s=EQ_008.EQ_001.AI_004.PV"]);

var hex_read_value=new Array();
var v=new Array();
hex_read_value[0]=read_value_1[0].toString(16);

//console.log(read_value_1[0]);
//console.log(read_value_1[0].toString(16));
hex_read_value[1]=read_value_2[0].toString(16);
hex_read_value[2]=read_value_3[0].toString(16);
hex_read_value[3]=read_value_4[0].toString(16);
//console.log(hex_read_value);

var str_2='00';
var str_3='000';

for (var i=0;i<4;i++){
	if(parseInt(hex_read_value[i])<10){
		v[i]=str_3+hex_read_value[i];
	}
    else{
		v[i]=str_2+hex_read_value[i];
		}

	
}
//console.log(v);

var str_4='0001';
var str_value=v[0]+v[1]+v[2]+v[3]+str_4+str_4

//console.log(str_value);


var code = prompt("请输入:");
//console.log(code);
var n=code.toString(16);
if (parseInt(n)<10){
    v[0]=str_3+n;
    }
else {
    v[0]=str_2+n;
    }

//writePointValue("ns=102;s=AI_002_001.PV",n);

//console.log(v[0]);
var str_value=v[0]+v[1]+v[2]+v[3]+str_4+str_4
writePointValue("ns=102;s=FieldPoint_001",str_value);
//console.log(str_value);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值