1

我将编写 Windows 应用程序(用于商业用途),它将发送/接收和跟踪 CANopen 消息。

问题是我不知道这个应用程序的用户将使用哪些设备。目前我有一个要求是只支持 USB-CAN 设备。但是有很多此类设备的供应商,每个人都有其他 api/library/dll 来使用他们的设备。

(顺便说一句,问题是因为我必须使用 Windows。据我所知,Linux 上是 SocketCAN,一切都更加标准化:-()

我不知道我应该使用哪个库。你能给我推荐一些东西吗?当然,这个库应该支持尽可能多的供应商(和驱动程序)。第二个要求是这个库应该编译成 IL 或者我可以在我的 C# 应用程序中使用这个库。

我做了一些小研究:

  • 最受欢迎的是 CAN Festival,但它是废弃的项目,但有一些分叉。
  • .NET 有 CANopen 但仅支持 PEAK 设备且状态为 prealpha
  • CANopen for Python 支持更多设备,但状态也是 alpha,我不知道我是否可以在我的 c# 应用程序中使用这个库。也许当我使用 IronPython 时。
  • 我还找到了这个库:http ://www.emtas.de/en/allgemein/csharpapi 。它是商业的,但如果支持许多设备,我可以购买它。有人用过吗??
4

1 回答 1

1

我们正在使用并已获得瑞典datalink.se CANopen 库的许可,它对我们非常有效。但老实说,我们只在 Windows 上使用 CAN 接口驱动层,用于访问一系列设备,如 Lawicel、Kvaser、IXXAT,因为我没有过多地研究 CANopen 部分。

那时我也查看了其他 CANopen SW 堆栈,但和你一样,我对 CAN Festival 不满意。因此,我们在Kickdrive 软件中所做的就是实现了我们真正需要的 CANopen 数量。请参阅我在如何对简单的 CANopen 层进行编程一文中的回答。

根据您的实际要求,这可能已经足够好,甚至是最好的方法。

于 2017-01-31T10:26:08.720 回答