modbus - 适用于 CANopen 和 Modbus 的 EDS

标签 modbus opc canopen

我正在开发的设备必须支持 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/

相关文章:

c - libmodbus : modbus_mapping_new() not working correctly?

python - 多个服务器 pymodbus 连接问题 Modbus TCP

java - 使用 milo 与具有安全连接的 OPC UA 服务器创建 java opc 客户端

c++ - 使用CanFestival的CanOpen同时进行多个药膏

modbus - 我可以写入输入寄存器吗?通讯总线

python - Pymodbus TCP `read_holding_registers` 返回陈旧/旧数据

java - 如何通过Utgard批量访问OPC DA服务器数据(一次100个信号)?

python - 如何让opcua在python中更加高效?

can-bus - 如何设置PDO映射?

canopen - EDS 和对象字典