我正在开发的设备必须支持 CANopen 和 Modbus(RTU 和 TCP)通信。是否有任何格式的电子数据表(例如 EDS 或 XDD)可用于定义两者?
我尝试使用几种工具(Vector CANeds 和 ODVA EZ-EDS)来生成与这两种工具兼容的简单 EDS 文件,甚至在文本编辑器中手动编辑文件,但每个工具的输出都出现相似,但从根本上不兼容。
理想情况下,我想使用 CiA XDD 格式,因为从我的桌面主应用程序中“反序列化”相对简单。然而,这似乎完全是面向 CANopen 的。
任何人都可以提供的任何信息、提示、提示或指示将不胜感激。
最佳答案
到目前为止我想到的最好的:
OPC Foundation指定用于定义设备的数据属性、服务、事件等的 XML 格式(请参阅 OPC Unified Architecture eBook - 映射部分 - 了解更多信息),然后服务器可以对其进行映射,以便为客户端提供对远程的访问设备支持的属性和方法。然而,这不是一个直接的解决方案,因为它实际上是第三种替代方案,并且与 EDS 和 XDD 格式完全不兼容。
另一方面,它确实提供了最终客户常用的“标准”格式,我可以用它来定义我的设备,我可以在桌面应用程序中轻松地序列化和反序列化并使用它来生成“对象”我的嵌入式应用程序的字典 C 源代码。然后,我需要定义一个包含用于序列化设备描述对象的方法的接口(interface),并在每个 Modbus 和 CANopen 程序集中提供该接口(interface)的实现。
这需要比我最初希望的更多的工作,但这就是我得到的报酬。 :-)
关于modbus - 适用于 CANopen 和 Modbus 的 EDS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23389132/