ThingsKit设备接入案例-正泰电表_645协议_TCP边缘网关接入

正泰电表_645协议_TCP边缘网关接入

ThingsKit设备接入案例-正泰电表_645协议_TCP边缘网关接入

1、准备工作

本次测试所需硬件为正泰电表以及各类线材:

ThingsKit设备接入案例-正泰电表_645协议_TCP边缘网关接入

正泰电表,型号:DDSU666

购买地址:

https://b2b.baidu.com/land?url=https%3A%2F%2Fb2bwork.baidu.com%2Fland%3Flid%3D1780621057479602580&query=DDSU666&lattr=ot&xzhid=50356519&pi=b2b.s.main.6..4149464740662947&category=%E4%BB%AA%E5%99%A8%E4%BB%AA%E8%A1%A8%3B%E7%89%A9%E6%80%A7%E6%B5%8B%E8%AF%95%E4%BB%AA%E5%99%A8%E5%8F%8A%E8%AE%BE%E5%A4%87%3B%E6%B8%A9%E6%B9%BF%E5%BA%A6%E4%BB%AA%E8%A1%A8&fid=67174400%2C1701758973126&iid=39d74685c2044b113a2e86e47f3122d2&miniId=8469&jid=3820005125&prod_type=0

准备好设备后按照厂家相关说明书接线,正泰电表需要接入一组220VAC电源供电以及用双绞线连接边缘网关调试。

💡 补充

📎ZTY0.464.1036_DDSU666.004使用说明书-V5_20220715(中文).doc

2、边缘网关配置

2-1、配置串口

ThingsKit设备接入案例-正泰电表_645协议_TCP边缘网关接入

💡 提示

本次测试的设备串口配置为波特率2400、停止码2、数据位8、无校验位且连接边缘网关RS485口2,所以串口参数需要按照动图中填写,测试时需要按照实际情况调整。

2-2、请求数据

💡 提示

因为DLT645协议与Modbus协议近似,电表设备需要边缘网关主动发送请求帧才能返回数据。

ThingsKit设备接入案例-正泰电表_645协议_TCP边缘网关接入
var temp = msg.payload.replace(/ /g, "");
msg.payload = Buffer.from(temp, 'hex')
return msg;

💡 提示

动图中的注入节点写入的内容是“fefefefe68457403030623681104333434359D16”,这条命令是取电表设备A相电压。

💡 注意

动图中最后再右侧打印的值即电表设备返回的应答帧。

2-3、指向服务器

ThingsKit设备接入案例-正泰电表_645协议_TCP边缘网关接入

💡 提示

测试中使用服务器地址以及端口需要根据实际情况填写。

体验账号

服务器地址:demo.thingskit.com或101.133.234.90

端口号:8088

💡 提示

动图中注入节点的作用是注册包发送,注册包内容可以自定义,但需要与平台Access Token一致。

3、ThingsKit配置

3-1、创建脚本

ThingsKit设备接入案例-正泰电表_645协议_TCP边缘网关接入
var temp = params.substr(10, 12);
var arr = [];
var num = 10;
//倒序输出表号数组
for (i = 0;
  i < 6;
  i++) {
  arr[i] = temp.substr(num, 2);
  num -= 2;
}
//合并倒序输出的表号数组
var result = arr.join('');
var teleData = {};
teleData.source = params;
slaveDevice = result;
teleData[slaveDevice] = params;
out.datas = teleData;
out.telemetry = true;
//hex值减法函数
function hexSubtraction(hex1, hex2) {
  var dec1 = parseInt(hex1, 16);
  var dec2 = parseInt(hex2, 16);
  var result = dec1 - dec2;
  var hexResult = result.toString(16);
  return hexResult;
}

var tempVal = params;
var data1 = tempVal.substr(36, 2);
var data2 = tempVal.substr(38, 2);
var teleData = {};
teleData.source = params;
//提取数据标识
var mark = tempVal.substr(28, 8);
//A相电压
if (mark == "33343435") {
  data1 = hexSubtraction(data1, 33);
  data2 = hexSubtraction(data2, 33);
  teleData.aU = parseInt(data2 + data1)/10;
}
out.datas = teleData;
/*必填:true表示设备上报的遥测数据,false表示命令下发的响应数据*/
out.telemetry = true;

💡 提示

“TCP上行-正泰电表解析”应用于网关设备的数据上行脚本处,该脚本会将DLT645设备的表号作为设备标识。“智能网关-645协议接入”应用于网关子设备的数据上行脚本处,并取A相电压。

💡 注意

创建脚本后必须启用该脚本才可以使用。

3-2、创建产品

ThingsKit设备接入案例-正泰电表_645协议_TCP边缘网关接入

💡 补充

网关子设备物模型导入文件:

📎正泰电表-A相电压.json

ThingsKit设备接入案例-正泰电表_645协议_TCP边缘网关接入

3-3、创建设备

ThingsKit设备接入案例-正泰电表_645协议_TCP边缘网关接入

💡 提示

选择组织是没有组织选项可以自行新建。

💡 注意

网关设备的Access Token修改为了2-3处注入节点的内容test。

💡 注意

网关子设备的设备标识为本次测试电表的表号230603037445。

3-4、创建轮询

ThingsKit设备接入案例-正泰电表_645协议_TCP边缘网关接入

💡 提示

新建任务后,必须启用该任务才可以使用。