CAN 通信节点 【CAN-请求/CAN-监听】_物联网平台_边缘计算网关

概述

云腾一体机自带2路隔离CAN口。CAN口是双向通信,【CAN-请求】节点会根据配置生成对应的信息并下发,CAN-监听则会构造一个进程监听通道中的响应消息。

PS-1:如果CAN-请求节点有具体配置,则inject节点不应该包含payload信息,仅作激活作用。如果CAN-请求节点无配置,则inject节点可以新增msg.payload(报文)、msg.canid(报文标识符)。

PS-2:建议就在CAN-请求节点配置,便捷性更高。后续有两种方式的操作视频,请自行抉择。

输入

#如果CAN有具体配置,所以inject节点不应该包含payload信息,仅作激活作用。
msg.payload

输出

#标准CAN通道响应信息
msg.payload

#Modbus格式的应答帧(无校验)
msg.data

#应答帧长度
msg.dlc

#报文标识符
msg.canid

【CAN-请求】节点功能配置项

【CAN-请求】节点报文配置:

CAN通道信息配置:

【CAN-监听】节点配置

具体配置请参照厂家提供的设备说明书

示例

接入一个CAN通信的温湿度传感器

节点接线图:

const buf = msg.data;//得到的数据是buffer[7]
// var test = "";
var jsonObj ={};
if(buf == undefined || buf.length ==8){
 return ;
}else{
 //如果等于7;数据为[01,03,04,0D,98,0D,70]
 var wenduStr = (buf[3]).toString(16).toUpperCase()
 +(buf[4]).toString(16).toUpperCase();
 var wendu = parseInt(wenduStr,16)/100;

 var shiduStr = (buf[5]).toString(16).toUpperCase()
 +(buf[6]).toString(16).toUpperCase();
 var shidu = parseInt(shiduStr,16)/100;
 // test = shiduStr;
 
 jsonObj = {
 "wendu":wendu,
 "shidu":shidu
 }

}
msg.payload = jsonObj
// msg.payload = test;

return msg;

演示视频

此处为语雀视频卡片,点击链接查看:AIoTedge-CAN通道.mp4

node-red完整流程代码

[{"id":"d41c8282958b8b21","type":"cansend","z":"65e54bc73a653e5d","name":"","config":"70a7bf7f85179807","canid":"","payload":"","x":720,"y":260,"wires":[]},{"id":"1f7ffc0334bdc243","type":"candump","z":"65e54bc73a653e5d","name":"","vconfig":"70a7bf7f85179807","x":400,"y":380,"wires":[["02a22a5319554bf6","e909ef8ddf6522b4"]]},{"id":"435561bff8680058","type":"inject","z":"65e54bc73a653e5d","name":"","props":[{"p":"payload"},{"p":"canid","v":"001","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[1,3,0,0,2,0,0,0]","payloadType":"bin","x":430,"y":260,"wires":[["d41c8282958b8b21"]]},{"id":"02a22a5319554bf6","type":"debug","z":"65e54bc73a653e5d","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":700,"y":380,"wires":[]},{"id":"e909ef8ddf6522b4","type":"function","z":"65e54bc73a653e5d","name":"function 1","func":"const buf = msg.data;//得到的数据是buffer[7]n// var test = "";nvar jsonObj ={};nif(buf == undefined || buf.length ==8){n return ;n}else{n //如果等于7;数据为[01,03,04,0D,98,0D,70]n var wenduStr = (buf[3]).toString(16).toUpperCase()n +(buf[4]).toString(16).toUpperCase();n var wendu = parseInt(wenduStr,16)/100;nn var shiduStr = (buf[5]).toString(16).toUpperCase()n +(buf[6]).toString(16).toUpperCase();n var shidu = parseInt(shiduStr,16)/100;n // test = shiduStr;n n jsonObj = {n "wendu":wendu,n "shidu":shidun }nn}nmsg.payload = jsonObjn// msg.payload = test;nnreturn msg;n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":550,"y":480,"wires":[["3364cf2d39e1538d"]]},{"id":"3364cf2d39e1538d","type":"debug","z":"65e54bc73a653e5d","name":"debug 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":710,"y":480,"wires":[]},{"id":"70a7bf7f85179807","type":"canconfig","channel":"can0","canchannel":"can1","bitrate":"250000"}]
本文通过 YUQUE WORDPRESS 同步自语雀
云腾五洲-AI助理