Modbus协议使用常见问题分析

时间:2023-03-20来源:佚名
Modbus协议最初由Modicon公司开发出来,是针对plc设备设计的基于串行总线的主从模式的应用层总线设备协议。ModbusTCP是封装在TCP包内的Modbus协议,虽然有一些变化,但是根本上还是主从模式。
  随着嵌入式技术的发展,国内很多系统的控制和采集单元部分为公司自主研发,一般建议这些公司的串行通讯协议采用Modbus协议,很多用户在modbus协议存在着理解错误,现在分析如下:
  一、modbus的保持和输入寄存器是以word(16bit)为单位的。
  比如4****(保持寄存器/输出寄存器)和3****(输入寄存器)是以字为单位的。所以,如果读40001寄存器开始的一个16位的无符号数,那么返回2个Byte,并可以从40002开始读下一个16位的无符号数。
  但是,如果读40001寄存器开始的一个32位浮点数,那么,返回4个Byte,而且,下一个32位浮点数必须从40003开始。
  常见问题:
  1)、将40001定义为一个Byte的数据;
  2)、将40001定义为32位浮点数,40002为下一个32位浮点数。
   二、寄存器最小地址为1,而报文起始地址为0。
  在数据报文中,所有的modbus地址都是从0开始的。也就是首次出现的数据项在报文中的地址为0。比如:
  1.在控制器中,“线圈1”在Modbus报文的地址域中的地址为00 00。
  2.线圈127的十六进制报文地址为007E hex(十进制的126)
  3.保持寄存器40001的报文地址为00 00。因为报文功能码明确要操作“保持寄存器”,所以,协议就以“4XXXX”代表这个寄存器。
  4.保持寄存器40108的报文地址为006B hex (十进制107)
  总之,Modbus地址一般指4****(保持寄存器/输出寄存器)和3****(输入寄存器),这时应用层面的:
  比如设备说明书可以简要说明设备支持Modbus RTU标准协议,并详细描述其地址对应关系为:40001 -- 模拟量采集通道1,16位有符号数,.....。比如组态软件的地址设置,一般为输出寄存器,从地址1开始,连续多少个。或者指明400001:16位有符号数。但是,在数据报文层面,寄存器起始地址从0开始。
  数据报文包括:设备地址 功能码 起始地址 寄存器个数 校验位。其中,起始地址是从0开始的。
  举例说明:从设备17读40001开始的2个寄存器数据的报文
  设备地址 功能码 起始地址 寄存器个数 校验
   11 03 00 00 00 02 --
  常见问题:
  1、使用和定义40000地址;
  2、分析报文时,直接将报文起始地址当作应用层寄存器地址。
  3、Modbus的写寄存器命令的不同。
  常用Modbus寄存器有:线圈(Coil)、输入(Input)、保持寄存器(Holding Registers)和输入寄存器(Input Registers)。
  从Modbus设备角度看,输入是上位机采集Modbus设备的信息,也就是这些寄存器是只读的,所以,Modbus协议没有写输入(Input)和输入寄存器(Input Registers)的命令。
  线圈(Coil)是状态量,对应Modbus设备的开关量输出(DO),保持寄存器(Holding Registers)是模拟量,对应Modbus设备模拟量输出(AO),这些寄存器需要Modbus设备的上位机进行设置,也就是为可以写的寄存器。
  在Modicon_Modbus协议 协议中,写线圈(Coil)和保持寄存器(Holding Registers)都有两种写命令:
  1)、写单个寄存器:
  置单线圈(Force Single Coil)功能码05(0x05)
  写单个寄存器(Preset Single Holding Register)功能码06(0x06)
  2)、写多个寄存器
  写多线圈(Force Multiple Coils)功能码15(0x0F)
  写多个寄存器(Preset Multiple Registers)功能码16(0x10)

相关阅读

G120变频器反转转速不显示?一个P0775参数彻底解决

在西门子G120变频器实训和日常调试里,一个超常见的问题困扰着很多人: PLC、触摸屏读取变频器模拟量转速,电机正转,转速显示正常;一反转,转速直接归零,完全不显示,查接线、查信号都没...
2026-04-25

PLC学习心得

plc 的工作过程其实也就是跟照明灯差不多一样的工作原理,只是PLC通过内部的一系列的系统程序开带动外负载而已,PLC输入信号必须通过采样才能接收、然后再到执行程序、最后才输出...
2023-03-21

稳压二极管的主要参数有哪些?

【免费下载】 PLC软件下载_PLC软件安装教程_PLC手册下载_PLC案例下载! 【免费学习】 变频器精品课程_西门子PLC精品教程_三菱PLC精品教程! 稳压管也是一种晶体二极管,它是利用PN结的...
2023-06-27

水电施工要谨慎,注意以下7点,不要再被坑了!

关于电线选购与电路布线 1.电路布线怎么做? 答:竖版开槽,横平竖直! 线槽开槽决定了布线走向,横平竖直,避免横向开槽,因为横版开槽会影响墙的承重力。需要横向布线时可以...
2023-06-11
水电施工要谨慎,注意以下7点,不要再被坑了!

步进电机和伺服电机的辨别方法

步进电机 和伺服电机 的辨别方法如下:力矩范围:步进电机系统一般为中小力矩(一般在40Nm以下)范围;伺服电机系统可实现全范围。 速度范围:步进电机系统速度低(一般在2000R...
2023-03-21

热销商品

EPDM配电箱机柜密封条三元乙丙橡胶半圆海绵自粘发泡胶条20*10mm

EPDM配电箱机柜密封条采用优质三元乙丙橡胶(EPDM)材质,具备优异的耐候性、耐臭氧、耐高低温(-40℃~+120℃)及抗老化性能,适用于户外及严苛环境。其半圆海绵结构设计,兼具...
1.08

加长球头内六角扳手L型六方棱套装万能2 2.5 3 4 5 6 8 10-30号mm

加长球头内六角扳手L型六方棱套装(22.5–30mm)专为高扭矩与深孔作业设计,适用于机械维修、工业装配及精密设备维护。套装涵盖22.5、3、4、5、6、8、10至30mm等多种规...
1.15

内六角扳手套装梅花螺丝刀6角六棱内六方六边形加长万能板手工具

内六角扳手套装是一款多功能精密工具,适用于拧紧或拆卸内六角螺丝,广泛应用于家具组装、自行车维修、机械设备及电子产品等领域。套装包含多种规格(如1.5mm至10mm)的6...
8.9

L型内六角扳手内六角螺丝刀单个内六方形匙套装0.9-2-3-4-5-6-8mm

L型内六角扳手套装,包含0.9、2、3、4、5、6、8mm共七种常用规格,适用于各类内六角螺丝的拧紧与拆卸。采用高强度合金钢制造,表面经防锈处理,坚固耐用,抗磨损性强。L型...
2.23

防静电塑料镊子93301-08硬质碳纤维合成镊子 尖头镊子 纤维镊子

防静电塑料镊子93301-08采用硬质碳纤维合成材料制成,具有优异的导电性和耐久性,能有效防止静电积聚,特别适用于精密电子元件、半导体、光学器件等对静电敏感的操作环...
0.3

网站栏目