如果不考虑Modbus over TCP/IP,个人觉得uc/Modbus是目前开源MODBUS协议最好的一款,值得拥有。
开源的canopen协议我用折腾过CANopenNode、Canfestival和uc/CANopen。其中CANopenNode、Canfestival已用过实际项目,uc/CANopen源码放出来那会儿也折腾了几天,我本是很有兴趣想去研究一下的,可是当我看了它的文档介绍发现它只支持CiA301规范的一些功能,而且对CiA301功能的实现也不完整。没兴趣再搞它了,放弃了。。。
以下是uc/CANopen文档中提到的不支持的一些功能,要用的朋友们可以参考一下再选择,别浪费了时间最后发现不是自己想要的。
No support for NMT error control known as node guarding (specification CiA 301). NMT node guarding is not recommended by CiA for new designs. Since the CANopen stack already supports NMT heartbeat, node guarding is not required.
No support for SDO client (specification CiA 301).
No support for SDO block transfer (specification CiA 301).
No support for EMCY consumer (specification CiA 301).
No support for PDO remote transfer (specification CiA 301).
No support for LSS used to configure the node-ID and the bit rate via the CAN network (specification CiA 305).
No support for Time Stamp object (specification CiA 301).