【MYS-6ULX-IOT试用体验】工业协议Modbus的移植一 - 问答 - 电子技术论坛 - 最好最受欢迎电子论坛!

【MYS-6ULX-IOT试用体验】工业协议Modbus的移植一

这一节介绍一下如何移植工业协议Modbus
此处简单介绍一下Modbus协议。Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。在中国,Modbus已经成为国家标准GB/T19582-2008
Modbus协议目前用得比较多的有三种,分别为Modbus-RTUModbus-TCPModbus-ASCII。其中Modbus-TCP运行于以太网之上,其传输速度最快,是目前研究的热点。
MYS-6ULX-IOT上面带有一个以太网口,因此可以作为Modbus-TCP的节点,此处使用PC作为上位机,MYS-6ULX-IOT作为下位机,搭建一个简单的Modbus-TCP网络。
移植分为以下几个步骤:1、获取源码;2、源码的编译;3、动态库的部署;4、测试程序的应用。
6.1获取源码
目前,github上面有一个可用于linux下的Modbus库,名为libmodbus,下载地址为https://github.com/stephane/libmodbus,其页面如下图所示
点击绿色的按钮将整个工程下载下来,可以看到这个库是遵循LGPLGNULesser General Public License GNU 宽通用公共许可证)开源协议的,这个协议的意思是可以使用它的源码进行开发,而修改之后的程序不一定要求开源,可以是私有的。
下载完这个库之后将名为libmodbus-3.1.4.tar.gz的文件进行解压,解压命令为
tar -zxvf libmodbus-3.1.4.tar.gz
解压之后会得到一个包含下图所示文件的文件夹
6.2编译源码
执行./configure –help,可以查看一下帮助,注意到这里使用host来指定编译器,使用prefix来指定编译生成的目录
建立一个新的文件夹用于存放编译生成的文件,此处笔者使用的文件夹名为libmodbus-release,,编译器与上一章的一样,为arm-linux-gnueabihf,仍然是因此编译的指令为
./configure--host=arm-linux-gnueabihf --prefix=/home/aa1234/桌面/libmodbus-3.1.4/libmodbus-release
编译过程的第一步是检查相关的环境是否满足,如果这个工程内的文件完整且编译器存在则会生成提示信息,提示信息包括库文件相关的路径等信息,如下图所示。
随后执行编译指令 make & makeinstall,如果编译过程中有以下信息提示则说明编译成功了
打开编译的生成目录,再次确认一下编译生成的文件是ARM版本的,执行的命令为
filelibmodbus.so.5.1.0
提示的信息如下图所示,说明此文件确实是ARM版本的,编译完成

0个回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则


关闭

站长推荐上一条 /7 下一条

小黑屋|手机版|Archiver|电子发烧友 ( 湘ICP备2023018690号 )

GMT+8, 2024-12-28 17:36 , Processed in 0.591460 second(s), Total 67, Slave 47 queries .

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

微信扫描
快速回复 返回顶部 返回列表