Modbus协议简介
文章目录
- Modbus协议简介
- 1、啥是Modbus协议?
- 2、Modbus模型
- 3、Modbus协议版本
- 4、Modbus通信
- 5、Modbus不同存储区介绍:
- 6、Modbus协议学习三个工具:
- 7、常用的数据类型转换:
- 8、总结
1、啥是Modbus协议?
1.1、Modbus协议介绍:
long long ago,有一家叫Modicon的公司开发了一种真正用于工业现场的总线协议,你看Mod+bus就是这样来的!Modicon公司本着更好普及和推动Modbus基于以太网(TCP/IP)分布式应用,将Modbus所有权移交给IDA,至此成了开源协议。
modbus协议:1、定义了一个控制器能够认识和使用的消息结构,而不管他们是经过何种网络进行通信的;2、而且描述了控制器请求访问其他设备的过程,如何应答来自其他设备的请求,以及怎样侦测错误并记录;3、制定了统一的消息域的结构和内容;
说白了,modbus协议同其他协议一样,就是约定,规约!===>>>通过格式,结构或者特定功能码告诉对方你想干啥!
1.2、Modbus协议的特点:
[1] Modbus协议标准开发,公开发表且无版权要求;开源免费好用,所以应用广泛;
[2] 支持多种电气接口,包括RS232,RS485,TCP/IP等,还可以在各种介质上面传输,如双绞线,光纤,红外,无线等;
[3] Modbus协议消息帧,格式简单,紧凑,通俗易懂。用户理解和使用简单,厂商容易开发和集成,方便形成工业控制网络。
2、Modbus模型
2.1、这是一个卡位的家伙:
Modbus是OSI模型第7层上的应用层报文传输协议,这层是针对特定应用的协议,你发的邮件,远程登录,传输的文件等等都是应用层协议;这么好用,又拥有大批粉丝,那后来的TCP/IP协议自然也得支持了,这是基于TCP的Modbus。
3、Modbus协议版本
3.1、关于变种的传说:
传说在遥远的东方,有一位长着天眼的战神,天眼一开,顿时可横扫宇内,斩杀各类妖魔鬼怪,不用说了,大家知道我说的是二郎神—杨戬!杨戬的宠物,哮天犬,就是一个变种:又能咬人,又能变形,又能当宠物狗!同样Modbus在不断的演变过程中,也出现了变异,演变出许多的变种,当然这是人为造成的!
3.2、串行链路上的变种:
Modbus在串行链路上有两个变种:Modbus RTU模式和Modbus ASCII模式,至于两个变种的差异,小二已经给您罗列好了,请细细品尝下表:(RT8,ASC7)
Modbus在串行链路上两种不同模式的对比:
特性 | RTU模式 | ASCII模式 |
编码 | 二进制 | ASCII(打印字符:0-9,a-z,A-Z) |
每个字符位数 | 起始位:1Bit | 起始位:1Bit |
数据位:8Bits | 数据位:7Bits | |
奇偶校验(可选):1位 | 奇偶校验(可选):1位 | |
停止位:1或2 | 停止位:1或2 | |
报文校验 | CRC(循环冗余校验) | LRC(纵向冗余校验) |
3.3、以太网链路上的变种:
这个真是百家齐放,以至于存在多个Modbus/TCP变种,这里不做介绍了。
4、Modbus通信
4.1、Modbus在串行链路的通用报文格式:看到了吗?帧报文之间间隔3.5个字符。
地址 | 功能码 | 数据 | CRC校验 | ||
小于3.5个字符的报文间隔时间 | 1*byte | 1*byte | N*byte | 2*byte | 小于3.5个字符的报文间隔时间 |
4.2、主/从有别:
Modbus协议是一个主/从架构的协议,就像电影长城里面的怪兽头==>>用触角发指令给其他下属怪兽==>> 同样下属怪兽==>>也可以通过触角给怪兽头进行通信==>>而且怪兽头可以同所有下属怪兽通信==>>下属怪兽只能直接同怪兽头通信===>>下属怪兽A和B不能直接通信==>>完美的modbus通讯!真怀疑张艺谋是学过modbus的!
5、Modbus不同存储区介绍:
5.1、神秘的小房子==寄存器:
您好,客官,笑傲江湖厅请,每次听到这个我都非常开心,我知道笑傲江湖厅这个神秘的小房子里面会有很多乐趣。同样的Modbus通讯中,数据都是放在寄存器中的,这就是Modbus的神秘小房子。而且还分了不同代号的好几个小房子。
【1】线圈状态小房子:
0X:输出端口,位,读/写,存储单元地址:00001-OXXXX;类比PLC中的DO;应用:电磁阀输出,LED显示灯等;
【2】离散输入状态小房子:
1X:线圈,位,只读,存储单元地址:10001-1XXXX; 类比PLC中的DI;应用:拨码开关,接近开关;
【3】保持寄存器小房子:
3X:输入寄存器,字,只读,存储单元地址:30001-3XXXX;类比PLC中的AO;应用:模拟量设定值;
【4】输入寄存器小房子:
4X:保持/输出寄存器,字,读/写,存储单元地址:40001-4XXXX;类比PLC中的AI;应用:模拟量输入;
6、Modbus协议学习三个工具:
6.1、Modbus Slave / Modbus Poll / VSPD
请自行搜索软件下载,小二不能提供帮助;
7、常用的数据类型转换:
数据类型 | C#简称 | 数据长度(位) | 数据范围 |
位 | Bit | 1 | 0-1 |
字节 | Byte | 8 | 0-255 |
有符号16位整数 | Short | 16 | -32768-32768 |
无符号16位整数 | UShort | 16 | 0-65535 |
有符号32位整数 | Int | 32 | -2E31-2E31 |
无符号32位整数 | UInt | 32 | 0-2E32 |
单精度浮点数 | Float | 32 | -3.4E38-3.4E38 |
有符号64位整数 | Long | 64 | -2E63-2E63 |
无符号64位整数 | ULong | 64 | 0-2E64 |
双精度浮点数 | Double | 64 | -1.79E308-1.79E308 |
字符串 | String | 64 | 无 |
8、总结
(1)重点掌握Modbus协议发展历程,明白RTU和ASCII的异同,熟悉modbus工具使用;