PN4800-TCP接入ThingsKit
1、准备工作
1-1、硬件设备准备
本次测试所需硬件为北京畅维达通PN4800网关,普锐森社温湿度变送器(扁卡轨壳485型)以及各类线材
普锐森社温湿度变送器(扁卡轨壳485型),型号:PR-3008-WS-N01
购买地址:
北京畅维达通网关(本次测试使用),型号:PN4800-N1NN
购买地址:
准备好设备后按照相关说明书接线,该网关以及传感器主要接入一组12VDC电源以及AB数据线,本次测试组网方式为以太网。
2、ThingsKit配置
2-1、新增转换脚本
根据设备实际情况需要新增网关上行脚本和网关子设备解析脚本:
2-1-1、网关上行脚本
💡 提示
本次测试网关上传平台数据不包含传感器地址码,所以将网关上行脚本获取网关子设备id写入子设备地址码。
var teleData = {};
teleData.source = params;
slaveDevice = "02"; //调用平台默认网上行脚本后将slaveDevice赋值为地址码(字符串)
teleData[slaveDevice] = params;
out.datas = teleData;
out.telemetry = true;
💡 注意
每次创建脚本,脚本状态默认关闭,将脚本状态改为开启才能被调用。
💡 注意
本次修改网关上行脚本会导致,网关数据在线网关子设备就在线,原脚本则会保证网关即使在线但没有传对应网关子设备返回数据,网关子设备不会上线。
2-1-2、网关子设备解析脚本
💡 提示
本次测试网关只上传寄存器返回字节,网关子设备解析脚本要根据实际情况做调整。
var teleData = {};
teleData.source = params;
tempVal = params;
teleData.wendu = (parseInt('0x'+tempVal.substr(4, 4))*0.1).toFixed(2);
teleData.shidu = (parseInt('0x'+tempVal.substr(0, 4))*0.1).toFixed(2);
out.datas = teleData;
out.telemetry = true;
//本次网关返回数据示例:01d1011e
💡 注意
每次创建脚本,脚本状态默认关闭,将脚本状态改为开启才能被调用。
本次测试传感器相关说明:
2-2、创建产品配置》》网关设备【TCP】方式
💡 提示
如果需要查看网关上传至平台的原数据,请在网关产品添加标识符为source,类型为text的物模型。
2-3、创建产品》网关子设备
💡 提示
本处创建物模型中标识符需要与网关子设备解析处一致,物模型是返回数据展示界面。
2-4、创建设备》网关设备
创建设备:
💡 提示
若无组织可直接新增。
修改设备凭证:
💡 提示
访问令牌需要与网关处一致,凭据类型必须为Access Token。
2-5、创建设备》网关子设备
💡 提示
网关子设备组织需与网关设备一致。
3、PN4800网关配置
3-1、通过路由器查询设备ip
由于本网关设备第一次使用动态ip,所以需要将网关和电脑接入局域网,再由路由器等设备对照网关MAC地址查询其分配的ip地址
3-2、通过PC访问网关后台
确定网关当前ip后,在PC上使用ssh远程连接工具对设备linux后台进行访问
💡 提示
设备默认登录账号为root,默认登录密码为1,本次测试使用ssh远程连接工具为xshell。
进入设备linux后台后为了使用方便将动态ip修改为静态ip:
nmcli connection show
//显示当前所有连接过的网络信息,找到eth0
nmcli connection modify 'Wired connection 2' connection.autoconnect yes ipv4.method manual ipv4.address 192.168.10.136/24 ipv4.gateway 192.168.10.1 ipv4.dns 8.8.8.8
//根据返回结果将eth0所属连接修改为静态ip,所有参数根据本地网络修改,本处只为参照
3-3、登录Node-red界面
确定网关ip后,使用浏览器登录网关Node-red界面:
💡 提示
图中包含流程中已写好的流程,第一次使用只有厂家预设流程。
3-4、设置TCP通讯
💡 提示
填写设备凭证的内容必须与平台一致,且每一个设备都有单独的凭证。
💡 提示
服务器的地址以及端口要根据实际情况填写平台的ip以及TCP端口。
💡 注意
本次测试在编辑inject节点时勾选了立刻执行于0.1秒后,所以部署流程设备立刻就上线了,如果不勾选此功能,则需要手动启用。
3-5、设置数据上报
该章节讲解如何用网关获取测试传感器数据并将数据发送给服务器
💡 注意
连接modbus-read节点是第二个,每一个节点输出结果可以用debug节点打印,在debug节点查看。
msg.payload = msg.payload.buffer;
return msg;
💡 提示
使用该方法将modbus-red第二个节点返回的buffer数组封装了一次,如果不使用该方法传递到平台则为返回值的ASCCII转HEX的结果。
本次测试传感器相关说明:
💡 提示
本次测试已将传感器波特率设置为9600,地址位02,连接串口是网关RS485-1。
网关串口对应关系:
4、验证数据
💡 注意
如果操作以上步骤设备不上线,请检查网关和平台的相关设备,排查接线是否出错,最后重启网关。