多控制器之间互相通讯的实例 点击:140 | 回复:0



正运动技术

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:267帖 | 328回
  • 年度积分:50
  • 历史总积分:918
  • 注册:2020年9月10日
发表于:2021-12-06 09:47:24
楼主

可以实现多个控制器通过CAN总线来通讯,同一个CAN网络上只能有一个主端(CANIO_ADDRESS=32主端,CANIO_ADDRESS=0从端站号为1)采用一主多从的模式

 

接线如下图所示:CAN接线的首尾两端接上120电阻。


image.png

连接完成先设置主从端,再通过CAN指令接收/发送数据。

CAN(channel, function, tablenum)

channelCAN通道,0表示第一个通道,-1表示缺省通道

function:功能号

描述

6

接收,没有数据时,identifier<0

7

发送

16

需要升级固件

带扩展支持接收,没有数据时,identifier<0

17

需要升级固件

发送扩展数据,普通数据使用7发送

tablenum数据存储的TABLE位置


例一

'发送端:

TABLE(0,1,8,1,2,3,4,5,6,7,8) '发送cobid=18个字节,依次为1-8

CAN(0,7,0)                '发送

'接收端:

CANIO_ADDRESS=1      '设置为非主控,此参数设置一次即可

CAN(0,6,0)                '

?TABLE(0)

 

例二

'发送端

TABLE(0,1,10,8,1,2,3,4,5,6,7,8)  '发送cobid=1,扩展id108个字节,依次'1-8

CAN(0,17,0)                   '发送

'接收端:

CANIO_ADDRESS=1      '设置为非主控,此参数设置一次即可

CAN(0,16,0)                   '接收

?TABLE(0) 



楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师