如何使用Python调用ZLG设备,ZLG CAN卡Python开发教程有哪些?

在 Python 中使用 ZLG CAN 适配器开发指南

ZLG (周立功) CAN 适配器是工业自动化和嵌入式开发中常用的总线通信工具,在 Python 中调用 ZLG 设备,可以实现自动化测试、数据记录和协议分析,通常有两种主要实现路径:使用 python-can 库或直接通过 ctypes 调用官方动态链接库 (DLL)。

准备工作

在开始编码前,请确保完成以下基础配置:

Python +pytest 做参数化,调用 CANoe 中自定义CAPL 函数,触发指令;获取总线信号进行断言   实现自动化测试
加载中
Python +pytest 做参数化,调用 CANoe 中自定义CAPL 函数,触发指令;获取总线信号进行断言 实现自动化测试
  • 安装驱动:确保计算机已正确安装 ZLG 官方提供的 USB-CAN 驱动程序。
  • 环境匹配:Python 解释器的位数(32位或64位)必须与 ControlCAN.dll 文件保持一致,DLL 是 32 位的,请使用 32 位 Python,否则会报错。
  • 获取库文件:从 ZLG 官网下载对应的开发包,获取 ControlCAN.dll (Windows) 或 libcontrolcan.so (Linux)。

使用 python-can 库(推荐)

python-can

如何使用Python调用ZLG设备,ZLG CAN卡Python开发教程有哪些?

是 Python 处理 CAN 总线的标准库,它通过接口插件支持 ZLG 设备,开发效率最高。

安装库

使用 pip 安装:

pip install python-can

代码示例

import can
# 配置 ZLG 接口参数
# channel: 通道号 (0, 1...)
# bustype: 使用 zlg
# bitrate: 波特率
bus = can.interface.Bus(bustype='zlg', channel=0, bitrate=500000)
# 发送消息
msg = can.Message(arbitration_id=0x123, data=[0x01, 0x02, 0x03], is_extended_id=False)
bus.send(msg)
# 接收消息
msg = bus.recv(timeout=1.0)
if msg:
    print(f"收到数据: {msg}")

使用 ctypes 直接调用 ControlCAN.dll

python-can 无法满足特定需求,或者需要调用 ZLG 提供的底层 API,可以使用 Python 的 ctypes 模块加载 DLL。

定义结构体

ZLG 的 API 需要定义对应的 C 语言结构体,VCI_CAN_OBJ。

如何使用Python调用ZLG设备,ZLG CAN卡Python开发教程有哪些?

import ctypes class VCI_CAN_OBJ(ctypes.Structure): _fields_ = [ ("ID", ctypes.c_uint), ("TimeStamp", ctypes.c_uint), ("TimeFlag", ctypes.c_byte), ("SendType", ctypes.c_byte), ("RemoteFlag", ctypes.c_byte), ("ExternFlag", ctypes.c_byte), ("DataLen", ctypes.c_byte), ("Data", ctypes.c_ubyte 8), ("Reserved", ctypes.c_ubyte 3) ]

调用流程

# 加载 DLL
zlg_dll = ctypes.windll.LoadLibrary("ControlCAN.dll")
# 核心流程
# 1. VCI_OpenDevice 打开设备
# 2. VCI_InitCAN 初始化通道
# 3. VCI_StartCAN 启动通道
# 4. VCI_Transmit 发送数据 / VCI_Receive 接收数据
# 5. VCI_CloseDevice 关闭设备

常见问题与注意事项

  • DLL 路径问题:如果程序找不到 DLL,请将 ControlCAN.dll 放置在 Python 脚本的同级目录,或者将其路径添加到系统环境变量

    如何使用Python调用ZLG设备,ZLG CAN卡Python开发教程有哪些?

    PATH 中。

  • 数据接收循环:CAN 通信是实时性要求很高的任务,建议将 接收逻辑放在独立的线程中,避免阻塞主程序。
  • 波特率设置:ZLG 设备的波特率设置通常需要参考官方手册中的定时器参数(Timing0 和 Timing1),如果使用 python-can,可以直接输入常用波特率数值(如 500000),库会自动转换。
  • 多通道支持:如果使用双通道适配器,channel 参数的索引(通常为 0 和 1),确保在初始化时正确配置对应的通道。

调试建议

  • 使用 ZLG 官方测试软件 先行测试硬件连接是否正常,如果官方软件无法通信,说明驱动或硬件连接存在问题,与 Python 代码无关。
  • 检查 终端电阻:如果通信报错或无数据,请确认 CAN 总线两端是否并联了 120 欧姆终端电阻。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/488216.html

赞 (0)
Linux系统怎么查看日志文件,Linux常用查看日志命令有哪些?
上一篇 2026年7月12日 18:50
服务器与手机客户端如何实现通信,两者连接常见问题有哪些?
下一篇 2026年7月12日 18:52

相关推荐

  • 服务器带宽使用情况怎么看?服务器带宽实时监控方法

    服务器带宽直接决定业务承载能力与用户体验,优化带宽使用情况是降低运营成本、提升服务稳定性的核心策略,高效的管理不仅意味着节省开支,更代表着服务器资源利用率的最大化,企业必须从监控、分析、优化三个维度建立闭环体系,确保每一兆带宽都服务于有效流量,避免资源浪费与业务瓶颈,服务器带宽使用情况的精准监控与评估掌握带宽现……

    2026年4月4日
    9200
  • 服务器怎么弄临时域名?临时域名设置方法详解

    服务器配置临时域名的核心在于利用本地Hosts文件重定向、部署动态DNS服务或配置Web服务器虚拟主机,这三种方式能够以最低成本实现域名与IP的绑定,从而在正式域名解析生效前完成环境搭建与程序调试,对于开发者和运维人员而言,掌握这一技能不仅能大幅提升工作效率,还能有效解决因DNS解析延迟导致的业务中断问题,是服……

    2026年3月19日
    13700
  • 服务器搭建网易云破版权教程,网易云怎么破解版权限制

    通过自建服务器部署开源音乐API项目,配合系统级代理配置,能够有效突破网易云音乐的版权地域限制,实现全曲库无损播放与下载,这是目前技术门槛适中且稳定性最高的解决方案,核心在于服务器环境的搭建与协议转换的精准配置,核心原理与技术优势网易云音乐的版权限制主要基于IP地址识别与数字版权保护协议,通过在境外服务器或具备……

    2026年3月2日
    11400
  • 服务器开启命令方块怎么操作?我的世界命令方块开启教程

    在Minecraft服务器运维与高级玩法搭建中,开启命令方块是实现自动化、自定义规则与复杂游戏逻辑的核心前提,核心结论是:服务器开启命令方块的本质并非简单的开关切换,而是一个涉及服务器性能优化、权限安全配置与游戏版本适配的系统工程,必须在server.properties文件中修改核心参数,并结合控制台权限管理……

    2026年3月28日
    14800
  • 服务器怎么更新?Windows服务器系统更新详细步骤

    服务器更新的核心在于确保数据安全前提下的系统迭代与软件升级,成功的更新流程必须遵循“备份-测试-执行-验证”的闭环逻辑,任何忽略备份或测试环节的操作都可能导致业务中断或数据丢失,服务器更新不仅仅是点击“更新”按钮,而是一项系统性的运维工程,涉及操作系统内核、应用程序依赖、安全补丁以及配置文件的同步,高效的服务器……

    2026年3月15日
    11300
  • 个人网站备案如何取名称,个人网站备案名称怎么取

    强相关,严禁包含“中国”、“中华”、“全球”、“新闻”、“博客”(部分省份限制)等敏感或商业词汇,建议采用“昵称+领域/爱好”的组合方式,如“张三的技术笔记”或“李四的生活随笔”,以确保审核通过率并符合工信部规范,备案名称不仅是网站在ICP备案系统中的唯一标识,更是审核人员判断网站性质的重要依据,很多用户在提交……

    2026年5月25日
    8800
  • 如何进行服装网站建设,服装电商网站搭建需要多少钱?

    服装品牌电商网站建设全指南在时尚行业,网站不仅是销售渠道,更是品牌形象的数字化延伸,一个优秀的服装网站需要兼具视觉美感、流畅的购物体验和强大的功能支撑,前期规划与品牌定位在动手开发之前,必须明确网站的核心灵魂:目标受众画像:明确你的客户是追求快时尚的 Z 世代、高端定制人群,还是功能性运动爱好者,品牌视觉风格……

    2026年7月13日
    6000
  • 高级格式化不丢失数据库吗,服务器数据安全恢复方法

    通过底层扇区级快照隔离、事务日志连续性与云原生分布式架构的深度协同,在存储介质重构时实现数据零丢失与业务零中断,破除迷思:高级格式化与数据库的底层博弈重新定义2026年的“高级格式化”在当前存储演进周期,高级格式化早已超越传统的“清空文件系统”范畴,根据【分布式存储系统】2026年最新权威数据,全球超过78%的……

    2026年4月24日
    5200
  • 防火墙在多出口环境中如何有效配置与优化?

    构建智能、可靠、高效的企业网络边界多出口网络架构(拥有多个互联网接入线路)已成为现代企业提升网络可靠性、优化访问速度和实现业务连续性的关键策略,在此环境中,防火墙的核心价值在于通过集中化的策略控制、智能流量调度、统一的安全防护以及精细化的可视化监控,解决多出口带来的路由复杂性、安全策略一致性、带宽利用率及故障切……

    2026年2月3日
    14710
  • 防DDoS攻击防火墙怎么选择,哪个品牌最好?

    游戏服务器防DDoS防火墙怎么选?游戏服务器是DDoS攻击的重灾区,攻击者常利用UDP Flood和CC攻击导致游戏卡顿甚至掉线,选择游戏服务器防DDoS防火墙时,需要关注以下几个关键点:清洗能力与延迟:游戏对延迟敏感,防火墙必须能在毫秒级完成流量清洗,避免影响玩家体验,多数情况下,云清洗方案比硬防更适合,因为……

    2026年7月28日
    1100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注