Skip to content

jiafenggit/modbus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modbus是一种串行通信协议,是Modicon于1979年为使用可编程逻辑控制器(PLC)而发表的。Modbus是工业领域通信协议的业界标准,并且现在是工业电子设备之间相当常用的连接方式。

Modbus协议包括ASCII、RTU、TCP等,但并没有规定物理层,标准的Modicon控制器使用RS232C实现串行的Modbus。

此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。

Modbus具有以下几个特点:

  • 标准、开放,用户可免费使用Modbus协议,目前支持Modbus的厂家超过400家,支持Modbus的产品超过600种。
  • Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。
  • Modbus的帧格式简单、紧凑,通俗易懂。

常用功能码

01H-读线圈状态

读从机线圈寄存器,位操作,可读单个或者多个;

02H-读离散输入状态

读离散输入寄存器,位操作,可读单个或多个,协议类似功能码0X01协议,此处省;

03H-读保持寄存器

读保持寄存器,字节指令操作,可读单个或者多个;

04H-读输入寄存器

读输入寄存器,字节指令操作,可读单个或者多个;

05H-写单个线圈

写单个线圈,位操作,只能写一个,写0xff00表示设置线圈状态为ON,写0x0000表示设置线圈状态为OFF

06H-写单个保持寄存器

写单个保持寄存器,字节指令操作,只能写一个;

0FH-写多个线圈

写多个线圈寄存器。若数据区的某位值为“1”表示被请求的相应线圈状态为ON,若某位值为“0”,则为状态为OFF。

10H-写多个保持寄存器

写多个保持寄存器,字节指令操作,可写多个;

包括协议相关文档

包括各种安装库文件

包括mcu实现相关代码

在树莓派上实现和相关代码

包括c的实现方式和相关代码

包括go的实现方式和相关代码

包括lua的实现方式和相关代码

包括py的实现方式和相关代码


锻造最美之器

sites

About

modbus协议相关

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 72.2%
  • Python 21.7%
  • Go 1.6%
  • Assembly 1.2%
  • C++ 0.9%
  • JavaScript 0.9%
  • Other 1.5%