#fieldbus #profibus-dp #profibus #siemens

无需std profirust

纯Rust实现的PROFIBUS-DP兼容通信栈

3个不稳定版本

0.2.0 2024年5月9日
0.1.1 2023年12月28日
0.1.0 2023年12月28日

#291 in 嵌入式开发

MIT/Apache

210KB
4K SLoC

profirust
crates.io page docs.rs page
用Rust编写的PROFIBUS-DP兼容通信栈。

这是什么?

profirust 是一个纯Rust的 PROFIBUS-DP 兼容通信栈。PROFIBUS 是一种工业总线协议,用于与远程I/O、变送器、阀门、驱动器等现场设备通信。

如果您想了解更多信息,我建议阅读我的关于 profirust 或我的 PROFIBUS 初学者指南 的博客文章。

项目状态

profirust 对于它目前支持的功能表现良好,然而它还没有在实际应用中得到证明。还有一些功能缺失,这些功能对于生产使用是必需的。请查看下面的路线图。

目前,profirust 被作为一个业余项目开发。如果您对这个项目感兴趣,以下形式的热心帮助将受到欢迎

  • 代码贡献
  • 捐赠用于测试目的的PROFIBUS外设或其他设备
  • 资助获取所需的IEC标准以提高合规性
  • 报告在使用 profirust 时遇到的所有类型的问题

支持的硬件

profirust 被设计为尽可能减少硬件依赖。您需要的只是一个具有RS-485收发器的UART接口。然后您可以编写一个匹配的 ProfibusPhy 实现方案。鼓励提交此类实现方案以纳入 profirust

目前,以下实现方案可用

  • LinuxRs485Phy:非实时Linux UART设备的实现方案
  • Rp2040Phy:RP2040微控制器的实现方案
  • 计划:embedded-hal 支持的微控制器的通用实现方案

路线图

  • 单主站总线最高6 Mbit/s
  • 与DP-V0外设的循环通信
  • 基本诊断
  • 扩展诊断(DP-V0)
  • 多主站总线
  • 总线错误跟踪
  • 总线发现工具
  • 12 Mbit/s的可靠通信
  • 与DP-V1外设通信
  • 等距总线周期
  • 同步总线周期

入门指南

这是关于如何使用您的PROFIBUS外设启动通信的简要指南

  1. 找到您的外设的GSD(通用站描述)文件。通常,制造商会在某个地方提供这些文件的下载。
  2. 运行 gsdtool 来设置外围设备的配置和参数化
    cargo run -p gsdtool -- config-wizard path/to/peripheral.gsd
    
    配置向导将引导您完成所有必要的设置。在此阶段,您还需要设置外围设备的模块。然后向导将为您提供Rust代码,以便将外围设备选项配置为您选择的值。
  3. 修改针对您外围设备的示例。更新外围设备地址。然后粘贴 PeripheralOptions 块和 gsdtool 生成的I/O缓冲区。
  4. 运行示例,最好使用 RUST_LOG=trace 来查看总线通信。希望您现在能够与外围设备建立循环通信。

许可

在以下任一许可下发布

任选其一。

贡献

除非您明确说明,否则任何有意提交以包含在作品中的贡献,根据Apache-2.0许可证的定义,应按上述方式双许可,不附加任何额外条款或条件。

依赖

~1.1–2.3MB
~50K SLoC