一、介绍

Modbus由MODICON公司于1979年开发,是一种工业现场总线协议标准。后被施耐德收购,1996年施耐德公司推出基于以太网TCP/IP的Modbus协议:ModbusTCP。一经面世因其简单开放的通信方式逐渐成为工业系统中流行的标准,是全球第一个真正用于工业现场的总线协议,广泛应用于工业控制和自动化领域。

modbus rtu java主从站开发 modbus tcp主从站_TCP

二、特点
①协议标准开放、公开发布且无版税要求,可以免费使用,不需要缴纳许可证费;
②Modbus使用RS232,RS485,网口等接口,采用主从站(master/slave)方式通信。也就是请求/应答的意思,主站发出请求,从站响应回答,并且从站不会主动发送通信主站,从站之间也不会有通讯,从站的地址范围为 0 - 247,其中0为广播地址,从站的实际地址范围为1 - 247。这样成本低,而且布线也简单方便,易于部署和维护,满足基本工业设备需求。
③Modbus是应用层协议,位于OSI模型第七层。其协议格式简单、通俗易懂,便于开发和集成,方便形成工业控制网络。

三、种类

Modbus协议包括ASCII、RTU、TCP三种报文类型。有何区别呢?

简单来说,Modbus协议使用串口传输时可以选择RTU或ASCII模式,ASCII 模式采用LRC校验,RTU模式采用16 位CRC校验。通过以太网传输时使用TCP,这种模式不使用校验,因为TCP协议是一个面向连接的可靠协议。对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。

modbus rtu java主从站开发 modbus tcp主从站_从站_02

另外,在实际的应用过程中,为了解决某一个特殊问题,工业厂商喜欢修改MODBUS规约来满足实际需求。但这并不影响网关使用,钡铼技术网关可以根据厂商自己的modbus协议来定制产品,在相关网关产品说明书内都有注明协议使用方法。

四、MODBUS协议格式

数据包主要是由四个模块组成,从机地址,功能码,数据,校验。

modbus rtu java主从站开发 modbus tcp主从站_从站_03

从机地址:(占用1字节)Modbus总线上有很多的从机,用不同地址来标识,如若是主机发出,则可以发送到相应的采集,如果是从机应答,主机也可以清楚识别判断信息来自哪个从机。

功能码:(占用1字节)功能码类型大致就是读和写功能,根据需要,填写不同功能码即可。常见的八种功能码:

modbus rtu java主从站开发 modbus tcp主从站_网络_04

数据:(根据功能码占用多个字节)功能码不同,数据便不同。

校验:(占用2个字节)为了保持数据的稳定性,Modbus协议使用可靠的CRC校验。

在这需要注意,数据包正确无误地发送到相应的从机时,从机执行相应操作,并发送反馈数据给主机,如果发送从机地址或功能码是错误的,从机不会有任何响应,其他错误即会发送相应错误码。

弄清楚了MODBUS协议规范,数据上传也就简单多了,并且钡铼技术的Modbus采集网关都有寄存器地址数据处理功能,从modbus寄存器中提取所需数据,转换成MQTT数据上云。

modbus rtu java主从站开发 modbus tcp主从站_网络_05

至此,要使用 Modbus 实现远程数据采集和控制,可以按照以下步骤进行:

A.确定通信协议:感知设备使用的是Modbus RTU还是TCP协议,也就是使用串口还是网口。

B.确定数据采集和控制类型:一般的采集类型有工厂信息管理数据、生产设备数据等等,以及是该类型是16bit、32bit还是按位读写方式,然后选用相应的寄存器地址。

C.配置 Modbus 主站:将采集网关( Modbus 主站)连接到感知设备,配置网关的通信协议和参数。

D.配置感知设备:配置感知设备的 Modbus 通信协议和通信参数

E.读取和写入数据:通过网关(主站)向感知设备发送读取和写入数据的命令,根据需要进行数据查看状态或控制操作。

这里补充几点,首先采集数据上云,则是网关作为Modbus主站,将Modbus从站数据采集上来之后转换成MQTT协议对接华为云、亚马逊云、阿里云、ThingsBoard、Sparkplug B、钡铼云平台。其次,网关绝大多数支持数据TSL/SSL、X .509证书、密钥加密、OpenVPN、APN专用网络、离线缓存等安全功能,大大提高Modbus设备到云端通信的安全性,防止数据泄露或通信故障等问题。

最后,网关多种多样,在实际应用中,要根据具体的数据采集和控制需求,选择合适的 Modbus 网关设备,以实现远程数据采集和控制。

modbus rtu java主从站开发 modbus tcp主从站_数据_06