如何使用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://idctop.com/%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8python%e8%b0%83%e7%94%a8zlg%e8%ae%be%e5%a4%87%ef%bc%8czlg-can%e5%8d%a1python%e5%bc%80%e5%8f%91%e6%95%99%e7%a8%8b%e6%9c%89%e5%93%aa%e4%ba%9b%ef%bc%9f/

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

相关推荐

  • git如何提交到公司服务器?git提交代码到远程仓库

    将代码提交到公司服务器是团队协作的基础,核心在于理解分支策略、遵循Git Flow工作流,并严格配置SSH密钥以保障安全,在2026年的软件开发环境中,代码管理早已不是简单的“上传下载”,而是一套严密的工程规范,很多开发者,尤其是刚入职的新人,往往因为对服务器权限、分支合并冲突处理不熟悉,导致提交失败或代码污染……

    2026年6月23日
    1900
  • 服务器怎么注销么?服务器注销步骤详解

    服务器注销并非简单的“关机”操作,而是一套严谨的资源释放与安全断开流程,核心结论是:服务器注销必须根据操作系统类型(Windows或Linux)选择正确的指令或操作路径,其本质是结束当前会话、释放内存与CPU资源,同时确保数据安全,严禁在注销前忽略正在运行的关键任务, 正确的注销操作能有效释放系统资源,避免远程……

    2026年3月15日
    12100
  • 个人网站html代码怎么写?免费个人网站模板源码

    个人网站HTML代码并非复杂的编程任务,掌握基础结构后,通过简单的文本编辑即可搭建出符合现代审美且利于搜索引擎收录的静态页面,对于许多希望建立个人品牌、展示作品集或记录生活的初学者而言,直接复制粘贴现成的模板往往导致网站加载缓慢、代码冗余且难以维护,真正的高排名网站,其核心在于代码的纯净度与语义化的精准运用,H……

    2026年5月25日
    16900
  • 服务器搭建git详细教程,服务器怎么搭建git?

    在服务器上搭建私有Git仓库是企业实现代码资产安全管控、提升团队协作效率的最佳实践,相比于第三方托管平台,自建Git服务不仅能够完全掌控数据主权,还能根据团队规模灵活配置硬件资源,规避数据泄露风险,并在内网环境下实现极速的代码推送与拉取,核心结论在于:通过搭建Git服务器,企业能够以最低的成本构建一套安全、高效……

    2026年3月6日
    11800
  • 免验证的服务器有哪些?,哪个平台最稳定可靠

    免验证服务器通常指免备案服务器,但选择时必须认准持有增值电信业务经营许可证的正规服务商,例如简米科技和酷番云,才能兼顾速度与合规,免验证服务器到底是什么很多用户听到“免验证”三个字,第一反应是“不需要实名认证”,行业里说的“免验证服务器”绝大部分是指免备案服务器——即接入商不要求网站必须通过工信部备案,就能直接……

    2026年8月23日
    500
  • 分布式优化技术原理是什么,常用算法有哪些?

    分布式优化通过将计算任务分配到多个节点协同处理,显著提升了大规模数据分析和模型训练的效率,是解决现代计算瓶颈的关键技术,分布式优化算法对比:同步与异步谁更优?分布式优化算法的核心在于节点间参数更新的同步策略,同步与异步是两种主流模式,它们在收敛速度、吞吐量和实现复杂度上各有侧重,理解这些差异,是选择优化方案的第……

    2026年7月21日
    1100
  • 如何查看Tomcat服务器状态?详细配置步骤教程

    要高效、准确地在服务器上查看Tomcat的状态、运行情况和相关信息,核心在于掌握多种监控、诊断和管理工具及方法的综合运用,这不仅是运维的基本功,也是保障应用稳定运行的关键,以下是从专业运维角度出发的详细指南,涵盖核心场景和解决方案: 实时监控:掌握Tomcat运行脉搏实时监控是了解Tomcat当前健康状态的最直……

    2026年2月13日
    18300
  • LOL哪些服务器归拳头管,分别都是什么区

    拳头游戏直接管辖的服务器包括北美、欧洲西部、欧洲东部、韩国、巴西、拉丁美洲、土耳其、俄罗斯、大洋洲、日本、东南亚以及PBE测试服,中国服务器由腾讯代理运营,拳头全球服务器布局概览《英雄联盟》的服务器架构由拳头游戏统一规划,但运营权分为直营和代理两种模式,拳头直接管辖的服务器覆盖了全球主要地区,这些地区的玩家账号……

    2026年8月25日
    1200
  • 服务器架构类型怎么选?,哪种架构性价比高?

    服务器架构没有绝对的好坏,核心在于根据业务场景匹配最合适的类型,目前主流架构包括单体、分布式、微服务和云原生架构,其中云原生架构正成为越来越多企业的首选,服务器架构类型有哪些?主流方案一览选择服务器架构前,先摸清市面上常见的几种类型,每种架构都有其诞生背景和适用边界,了解它们才能做出合理判断,单体架构:简单直接……

    2026年8月5日
    1400
  • 虚拟机centos 7.2安装失败怎么办?

    虚拟机CentOS 7.2安装失败,多数情况不是系统包损坏,而是ISO校验不过、虚拟机类型错选、内存低于2GB、磁盘控制器不匹配、网络源失效这五类原因,对照下文逐项排查,大部分卡死都能在安装界面里直接修复,虚拟机装CentOS 7.2卡在安装界面怎么办?先看五类高发场景CentOS 7.2属于较早的发行版本,在……

    2026年9月13日
    200

发表回复

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