Modicon SA85 Linux驱动开发指南:PCI-85工业通信卡驱动移植

Modicon SA85 / PCI-85 简介

Modicon SA85 是施耐德电气(Schneider Electric)旗下 Modicon 品牌生产的两款工业通信接口卡:ISA 总线的 SA85 和 PCI 总线的 PCI-85。这些卡用于在 PC 上实现 Modbus Plus(MB+)网络通信,是 1990 年代至 2000 年代工业自动化系统中连接 Schneider PLC(如 Quantum、Momentum 系列)到上位机 PC 的常用硬件方案。

modbus.org 推荐的开源 Linux 驱动项目托管在 SourceForge:sourceforge.net/projects/modp-driver。许可证为 BSD 协议,包含完整的驱动源码和使用示例。

驱动支持的硬件和内核版本

  • 支持硬件:Modicon ISA SA85 和 PCI-85 两种接口卡
  • Linux 内核版本:2.2.19 及以上、2.4.7 及以上
  • 许可证:BSD License
  • 包含内容:驱动程序源码 + 示例客户端程序

编译与安装驱动

驱动源码需要在目标 Linux 系统上编译。以下步骤使用老版本内核(2.4.x)的命令,现代内核(5.x/6.x)需要适配:

# 下载源码
git clone https://git.code.sf.net/p/modp-driver/code modp-driver
cd modp-driver

# 编译(需要内核头文件)
make

# 加载驱动模块
insmod sa85.o

# 或对于 PCI 版本
insmod pci85.o

# 检查驱动是否加载成功
dmesg | tail -20
lsmod | grep -E 'sa85|pci85'

# 查看设备节点
ls -la /dev/sa85* /dev/pci85*

关于 Modbus Plus 协议

Modbus Plus(MB+)是施耐德电气在 Modbus 基础上发展的一种专有令牌传递网络,运行速率 1 Mbps,采用双绞线物理层。与标准的 Modbus RTU/TCP 不同,Modbus Plus 使用点对点(Peer-to-Peer)令牌传递方式,网络上没有主从之分——每个节点在获得令牌时都可以主动发送数据。

⚠️ 当前状态:Modbus Plus 已被施耐德官方列入逐步淘汰(phase-out)的协议。新的 Schneider PLC 产品线(如 M580、M340)已全面转向 Modbus TCP 和 Ethernet/IP 等基于以太网的通信方式。除非你在维护仍在运行的旧 Modicon Quantum 系统,否则不需要关注 Modbus Plus 和 SA85 驱动。

现代化的替代方案

如果你正在搭建新的工业控制系统,不应该再使用 Modbus Plus 和 SA85 卡。现代化的替代方案包括:

旧方案新方案优势
Modbus Plus (MB+)Modbus TCP标准以太网,无需专用硬件,速率更高(100M/1G)
SA85 ISA 卡标准网卡成本低,随处可得
Modicon Quantum + MB+M580 ePAC + Modbus TCP原生以太网,支持环网冗余(RSTP/HSR)
专用驱动开发Socket 编程跨平台,无需内核模块

总结

SA85 Linux 驱动是一个具有历史意义的开源项目,它展示了 Linux 内核驱动在工业通信领域的早期应用。该驱动在 2000 年代初的工业控制系统中扮演过重要角色,帮助用户在 Linux 环境下连接 Modicon PLC。如今,随着 Modbus TCP 和工业以太网的全面普及,新项目不再需要使用 Modbus Plus 网络和 SA85 硬件。但对于仍在维护老旧 Modicon 系统的工程师来说,理解这个驱动的工作原理仍然有实用价值。

把这篇资料用于真实项目?

进入工具中心进行报文解析、CRC 校验和设备调试,或提交需求获取选型与接入建议。

发表回复

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