什么是ModBus?如何学习ModBus?
最近由于项目需要重新接触ModBus这个网络协议,ModBus这个协议的内容在网络上有很多,如果是刚接触这个协议的新手需要将这个协议的主要参数了解清楚,比如从机的IP地址和端口,从机的slaveid,功能码,寄存器地址等,了解清楚这些主要参数的作用后可以下载ModBus的模拟器进行测试,可以参考下面这篇文章学习模拟器的使用,点击访问。
ModBus的模拟器分为Poll端和Slave端,Poll端相当于TCP中的客户端(Client),Slave端相当于服务端(Server),因此网络上也有人将ModBus分为Client端和Server端。对TCP了解的人应该知道服务端Server是根据客户端Client的请求进行发送数据(这里可能说的不是很专业),ModBus的Slave端也是根据Poll端的一些请求进行发送数据,但是它的命令格式有些不一样,根据功能码的不同而不同,我的下一篇博客会详细介绍。关于ModBus模拟器的下载可以百度进行搜索,这是官网地址,点击下载,另外也可以访问我的博客资源下载,博客资源下载。
Java实现ModBus从机Slave
这篇博客的重点是介绍如何用Java实现modbus tcp从机通信,从机需要实现的功能是实时监听主机发送过来的命令,然后根据主机的命令进行对应的操作,如果是查询读命令,返回对应寄存器地址的值,如果是写命令,则修改对应寄存器地址的值。
如果要通过自己个人的能力将这些通信机制利用Java来实现使很困难的,我查询了大量的资料和考察了很多不同的Java开源库,最后采用了jlibmodbus,之所以选择这个是因为它的doc文档写的很好,一些example写的很全,这里可以附上我在一个modbus的官方网站上找到该库网站,点击访问,它上面包含很多modbus的开源库,大家都可以进行下载使用,这里再附上我博客资源,点击下载jlibmodbus。
下载jlibmodb