python的CANOpen

我是在虚拟机中用VSCode配置anaconda环境,并利用anaconda创建的虚拟环境(python38:是python3.8版本)

1、首先进入python虚拟环境(pyhton38)

  1. 首先进入python虚拟环境(pyhton38)
    在这里插入图片描述
    pip list 查看目前的虚拟环境python38安装的库
    在这里插入图片描述

2. 创建一个文件夹pyCanopen,

下面的操作都在这个文件夹下执行。

mkdir pyCanopen

3. 安装virtualenv库,并创建python项目环境

这个库可以为各项目提供一个独立的虚拟运行环境,互不干扰。

pip install virtualenv

//创建python项目的虚拟环境,命名为venv
virtualenv venv

在这里插入图片描述

激活项目环境

source venv/bin/activate

在这里插入图片描述

4. 安装canopen库

pip install canopen

查看安装的库
在这里插入图片描述

5. 创建一个虚拟can设备,叫vcan0

$ sudo modprobe vcan	//加载vcan模块
$ sudo ip link add dev vcan0 type vcan	//添加vcan0网卡
$ sudo ip link set up vcan0		//开启vcan0

在这里插入图片描述
查看vcan0

ifconfig -a

在这里插入图片描述

sudo ip link set dev can0 down		//关闭can0
sudo ip link del dev can0		//删除can0

6. CAN 通信测试工具 canutils

6.1. 安装can-utils
can-utils工具有5个独立的程序:

  • canconfig:
    用于配置CAN总线接口的参数,主要是波特率和模式;
  • candump:
    从CAN总线接口接收到的所有数据重新发送到CAN总线接口;
  • canecho:
    把CAN总线接口接收到的所有数据重新发送到CAN总线接口;
  • cansend:
    往指定的CAN总线接口发送指定的数据;
  • cansequence:
    往指定的CAN总线接口自动重复递增数字,也可以指定接收模式并校验检查接收的递增数字。
sudo apt-get install can-utils

//监控van0
 candump -t d vcan0

在这里插入图片描述
在这里插入图片描述

7. 写一个test代码

其中用到的CANopenSocket.eds,可以找下下载下来,放到代码同一目录中。

#!/usr/bin/python3
import time
import canopen

running = True

# def sigint_handler(singnum,frame):
#     global running
#     print("")
#     running = False
#     exit(0)
if __name__ == '__main__':
    network = canopen.Network()
    network.connect(bustype = 'socketcan', channel = 'vcan0')

    node = network.create_node(6, 'CANopenSocket.eds')
    node.nmt.send_command(0)
    node.nmt.state = 'PRE-OPERATIONAL'
    node.nmt.start_heartbeat=(1000)

    while running:
        print("hello")
        pass
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值