Demo 程序:
var send= new Array(); //定义 send 数组
send[0]=0x01; //站号
send[1]=0x03; //功能码
send[2]=0x00; //起始地址高字节
send[3]=0x0A; //起始地址低字节
send[4]=0x00; //长度高字节
send[5]=0x0A; //长度低字节
var crc = DoCRC16(0,5,send); //CRC 校验
send[6]=crc; //数组拼接完成
alert('发送:'+send);
var mes=SendTextToPort(3,9600,8,1,0,1000,send); //发送请求报文,返回 10 进制数组
alert('接收:'+mes); //打印数组
var data1_float=MakeFloat(mes[6],mes[5],mes[4],mes[3]); //算 32位单精度 Float
var data1_long=MakeLong(mes[10],mes[9],mes[8],mes[7]); //算 32 位长整数 Long
var data1_word=MakeWord(mes[12],mes[11]); //算 16 位Word
WriteToTag('s.Ch1.D1.test1',data1_float); //写给内部变量 1
WriteToTag('s.Ch1.D1.test2',data1_long); //写给内部变量 2
WriteToTag('s.Ch1.D1.test3',data1_word); //写给内部变量 3
Demo 程序说明:
通过 JS 脚本内的 SendTextToPort ( )函数操作串口发送 Modbus 命令,得到设备回应之后,取相应字节进行处理计算出当前值,并写给网关内部变量。