1、简介
ModBus是一种免费的、易于维护的总线通信协议,广泛应用于工业电子化设备通信中,我们日常接触较为频繁的是RS485协议与ModBus-RTU协议,RS-485为硬件层,ModBus为软件层协议。
各种设备只要遵循该协议,我们就可以按照该协议制定设备数据接入方案。本文主要从一个Java应用开发者初次接入Modbus协议的角度来基本阐述该协议的基本特征,以便在应用中接入该类设备,并从中读取相应的数据,提供相应的开发思路(数据网关)。
本文只提供相应的开发思路,面向有一定基础的开发人员,具体的代码实现可GPT。
2、特点
从使用角度来说,Modbus具有免费、简单轻便、易于开发等特征。而从技术角度来看,Modbus在通信模式上主要为主从模式(master/slave),或者理解为半双工模式(双方在一条总线上进行数据交互,同一时刻只允许一个方向的信息流),同时ModBus是面向寄存器进行数据交互的,在信息帧上有特定的规则。
3、常见的名词及解释
1)主站从站:也有叫主机从机的,由一台主站及多个从站组成,主站可进行单播或广播模式通信,从站有自己特定的设备标识1-255,主站通过特定的标识由特定的信道向从站发送请求,从站在接收到请求后,由该信道向主站发送请求结果,地址码为0时为广播,从站不作答,并且从站不向主站主动发送请求。
2)信息帧:也叫数据帧,由特定规则组成的数据帧,包括地址码、功能码、数据区、CRC冗余循环码等,具体规则见下文
3)波特率:串口通信频率,指每秒传输的Bit数量,比如,波特率9600,指每秒可以传输9600个字节,双方通信要指定相同的波特率,否则无法正常的通信
4、信息帧规则
Modbus与RS485一样,都拥有自己的信息帧规则,具体的如下
4.1、地址位
从站的设备标识,0-255的范围ÿ