libmodbus协议栈4—— 总结

    通过前面三篇文章,基本上可以了解基于libmodbus库的开发流程,而libmodbus比较牛的地方,不仅仅可以实现modbus RTU的支持,它还支持modbus TCP,而且由于采用了所谓的后端函数,也就是提供了 标准 通用的 API接口,所以开发modbus TCP的主从设备,与开发modbus RTU的流程基本上是一致的,不同的地方也只是一些 细微的函数区别,这个可以参考libmodbus源文件中的test文件夹提供的几个案例框架。

     总结:libmodbus这个modbus协议库,对于进行linux应用下的modbus通信开发,简直就是一款神器,能够极大的 方便应用程序的开发,当我们了解了其中的构造原理后,我们能够很容易的开发各种modbus通信应用程序,在抛开稳定性的前提下,它的优势是比 freemodbus要强很多的,freemodbus需要对源码理解的特别深才行,因为需要将freemodbus的源码嵌入到我们的系统代码中,而且freemodbus目前还只是支持 modbus slave,也就是从机。而libmodbus最擅长的就是modbus master,如果libmodbus稳定性也可以的话,我们就可以在一些复杂的 modbus 网关中使用libmodbus,实现一些复杂的modbus应用场景。

   libmodbus不适合应用于非Linux/Windows 环境下的开发,比如就不适合小型嵌入式硬件STM32开发,为什么呢?这个跟大小关系反而不大,主要是因为libmodbus的各种API函数的实现是通过Linux、Windows的各种API函数,比如说在Linux进行modbus rtu开发时,串口的接收采用了select机制的,而STM32的IDE环境,很显然是不支持这个的,所以在小型系统中,还是老老实实的使用freemodbus吧,这也算是freemodbus的优点了,freemodbus之所以既能在非linux下使用,又能在linux下移值,是通过不同的代码函数来实现的,比如,非linux下,通过定时器计时+串口中断接收数据,而linux下则是通过select机制。这个看它的源码就 很容易发现了,所以需要程序员对源码很熟悉。

你可能感兴趣的:(Linux)