首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >西门子PLC连接AGV电池和CANopen驱动器案例:两台PROFINET网关的配置方法

西门子PLC连接AGV电池和CANopen驱动器案例:两台PROFINET网关的配置方法

原创
作者头像
开疆智能控制技术
修改2026-08-18 13:27:08
修改2026-08-18 13:27:08
340
举报

西门子PLC连接AGV电池和CANopen驱动器案例:两台PROFINET网关的配置方法

项目背景

某AGV小车采用西门子S7-1200 PLC作为整车控制器。车载电池管理系统使用厂家自定义CAN协议,行走驱动器使用CANopen协议。

项目要求PLC统一完成以下控制任务:读取电池SOC、总电压、电流和温度;监控BMS故障及接触器状态,控制左右行走驱动器启动、停止和调速;读取驱动器状态、实际速度和故障代码;根据电池状态决定AGV继续运行、限速或者返回充电;在BMS、驱动器或通信异常时停止车辆运行。

微信图片_20260812175430_131_19
微信图片_20260812175430_131_19

西门子S7-1200本身没有可直接使用的CAN和CANopen接口,因此该项目分别配置两台协议网关:

CAN转PROFINET网关,连接电池BMS;

CANopen转PROFINET网关,连接行走驱动器。

两台网关在PROFINET侧均作为从站,西门子PLC作为PROFINET主站。

微信图片_20260812175432_132_19
微信图片_20260812175432_132_19

为什么需要两台协议网关?

电池BMS和驱动器虽然都采用CAN物理接口,但上层协议不同。

电池BMS使用厂家自定义CAN协议。报文ID、数据位置、比例系数、字节顺序及故障代码均由电池厂家定义。

驱动器使用CANopen协议,需要处理:

CANopen节点地址;

PDO实时数据交换;

SDO参数配置;

Heartbeat心跳监控;

EMCY紧急报文;

CiA 402驱动器状态机。

ChatGPT Image 2026年8月13日 17_17_40_副本
ChatGPT Image 2026年8月13日 17_17_40_副本

如果只使用普通CAN转换设备,虽然可能收到驱动器的CAN报文,但无法完整承担CANopen主站功能,也不能可靠管理驱动器节点。

因此,本项目使用两台功能不同的网关,将两套设备分别接入PLC:

电池BMS → CAN转PROFINET网关 → 西门子PLC

CANopen驱动器 → CANopen转PROFINET网关 → 西门子PLC

这种方案的关键不只是接口转换,而是由网关分别完成CAN报文解析、CANopen节点管理和PROFINET数据映射,使PLC获得可以直接使用的结构化数据。

使用步骤

西门子PLC一侧的配置

打开西门子PLC组态软件并新建项目。

导入GSD文件(网关设备描述文件,可找供应商索取)

添加网关模块,预先设置好网关的设备名称及IP地址并分配给网关

给网关分配Profinet网络中的输入输出数据长度及映射地址

确认配置无误后将组态下载进PLC,并将参数分配给网关后即完成网关在Profinet一侧的配置。

Canopen一侧的配置

首先打开网关配置软件“CANopen Configuration Studio”

新建项目,选择PN-Canopen

设置网关的Canopen参数如波特率,通讯周期等

在此处设置字节的发送顺序以及IP地址(新版本Profinet从站参数由Profinet主站软件进行分配,此处地址功能已改为下载配置地址,请勿与Profinet地址冲突)

将从站设备描述文件导入网关配置软件。

添加从站设备到工程并进行参数配置

点击错误控制设置主从站的心跳

设置好PDO包含的参数以及通讯类型,最后分配好通道偏移对应好1200plc的输入输出内存映射。

此处可分配canopen从站的一些启动参数,如一些参数的启动默认值等

确认无误后将配置下载到网关。

当网关OK等亮起说明Profinet通讯正常RUN常亮err灯灭说明Canopen物理层连接正常,即可对从站进行读写操作。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 西门子PLC连接AGV电池和CANopen驱动器案例:两台PROFINET网关的配置方法
    • 项目背景
    • 某AGV小车采用西门子S7-1200 PLC作为整车控制器。车载电池管理系统使用厂家自定义CAN协议,行走驱动器使用CANopen协议。
    • 项目要求PLC统一完成以下控制任务:读取电池SOC、总电压、电流和温度;监控BMS故障及接触器状态,控制左右行走驱动器启动、停止和调速;读取驱动器状态、实际速度和故障代码;根据电池状态决定AGV继续运行、限速或者返回充电;在BMS、驱动器或通信异常时停止车辆运行。
    • 西门子S7-1200本身没有可直接使用的CAN和CANopen接口,因此该项目分别配置两台协议网关:
    • CAN转PROFINET网关,连接电池BMS;
    • CANopen转PROFINET网关,连接行走驱动器。
    • 两台网关在PROFINET侧均作为从站,西门子PLC作为PROFINET主站。
    • 为什么需要两台协议网关?
    • 电池BMS和驱动器虽然都采用CAN物理接口,但上层协议不同。
    • 电池BMS使用厂家自定义CAN协议。报文ID、数据位置、比例系数、字节顺序及故障代码均由电池厂家定义。
    • 驱动器使用CANopen协议,需要处理:
    • CANopen节点地址;
    • PDO实时数据交换;
    • SDO参数配置;
    • Heartbeat心跳监控;
    • EMCY紧急报文;
    • CiA 402驱动器状态机。
    • 如果只使用普通CAN转换设备,虽然可能收到驱动器的CAN报文,但无法完整承担CANopen主站功能,也不能可靠管理驱动器节点。
    • 因此,本项目使用两台功能不同的网关,将两套设备分别接入PLC:
    • 电池BMS → CAN转PROFINET网关 → 西门子PLC
    • CANopen驱动器 → CANopen转PROFINET网关 → 西门子PLC
    • 这种方案的关键不只是接口转换,而是由网关分别完成CAN报文解析、CANopen节点管理和PROFINET数据映射,使PLC获得可以直接使用的结构化数据。
    • 使用步骤
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档