一、什么是协议?
协议,网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。
为了使数据在网络上从源到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议(protocol),它最终体现为在网络上传输的数据包的格式。
二、Modbus协议介绍
1. Modbus协议是不是开源的,免费的?
标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。
2. 怎么传输,有线还是无线?
既可以有线传输如双绞线、光纤,也可以无线传输
3. Modbus的数据格式?
4. Modbus和RS485什么关系?
首先RS485是硬件层的协议,而Modbus是在这个硬件层之上的软件层协议,是应用层报文传输协议。
5. 什么是主从机?
Modbus规约了主从机,主机要分别发送什么命令给从机。ModBus规定主从机之间数据的交互,需要遵循什么样的格式,如何保证数据在传输过程中不发生冲突。只要都遵循这个协议,那么不同厂家的主从机就可以共用了。Modbus协议包括RTU、ASCII、TCP。其中MODBUS-RTU最常用,比较简单。ModBus一般是工作在一主多从的场景,如下图:
6. 为什么不直接使用java接入Modbus协议?
java可以接入Modbus,但是不适合搭建服务器(尤其是分布式),更适合拿来做一个exe软件进行调试(利用Socket编程)。Modbus协议的报文都是二进制的,上手比较困难,java程序员更喜欢json格式的数据,还有Modbus不适合远距离传输(协议局限性、安全性)。
7. Modbus协议和MQTT协议的关系?
Modbus是多年前成为行业标准的协议,特别是在工业行业对实时要求比较高,工业都是本地通信,保证设备之间有序调度。而MQTT多用于分布式的云系统,传输距离远比工业现场远的多。
Modbus协议是请求/应答通信协议,mqtt是订阅发布协议。MQTT协议最少会用账号验证、鉴权、tls加密传输,还有QoS机制保证消息质量。
8. 如何将Modbus协议转为MQTT协议?
使用MQTT网关设备(硬件),串口服务器和DTU。串口服务器是通过网线接到路由器上实现数据传输的,DTU是通过运营商的网络来实现数据传输的。应用场合不同,现场方便布网,可以用串口服务器。现场不方便建设网络,可以用DTU。