modbus协议-01

       modbus协议是工业上常用的一种通信协议,特别是在要求一个主机系统与多个从机设备系统进行数据通信时,使用modbus协议特别方便。在之前的项目经历中,做了一个主控系统,带动两扇屏蔽门驱动系统的主从控制。关于对于modbus的使用做个简要总结 。在Modbus协议中理论上可以有0到255个功能码,实际上常用的也就那么几个。

 0x01: 读线圈寄存器      

       线圈寄存器,实际上笔者认为叫位开关比较合适,主要用来存储“0”和“1”的两个开关状态。一个bit都对应一个信号的开关状态。所以一个byte就可以同时存储8路的信号。 线圈寄存器可读可写,可分为写单个线圈寄存器和写多个线圈寄存器。例如,0x05 :写单个线圈寄存器 ; 0x0f:写多个线圈寄存器 。

  0x02: 读离散输入寄存器

       离散输入寄存器(0x02,离散输入寄存器相当于线圈寄存器的只读模式,他每个bit表示一个开关量,而他的开关量只能读取不能写入。

    0x03: 读保持寄存器    

      保持寄存器,这个寄存器的单位不再是bit而是两个byte,可以存放具体的数据量的,并且是可读写的。写也分为单个写和多个写,所以功能码有对应的三个:0x03: 读保持寄存器 , 0x06: 写单个保持寄存器,0x10: 写多个保持寄存器。

   0x04: 读输入寄存器

      输入寄存器,该寄存器只支持读而不能写。一个寄存器也是占据两个byte的空间。

猜你喜欢

转载自blog.csdn.net/enjoybocai/article/details/98074631