Modbus协议最初由Modicon公司开发出来,是针对PLC设备设计的基于串行总线的主从模式的应用层总线设备协议。ModbusTCP是封装在TCP包内的Modbus协议,虽然有一些变化,但是根本上还是主从模式。
关键字:Modbus 总线协议
引用地址: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)
上一篇:CC-Link的优势有哪些
下一篇:MODBUS 485与RS485区别
推荐阅读最新更新时间:2024-05-02 23:40
I2C总线时序模拟(一)-加深理解总线协议
view plain copy print ? #include reg52.h #define uchar unsigned char sbit sda=P2^0; sbit scl=P2^1;//用单片机的两个I/O口模拟I2C接口 uchar a; *************************************************************************** void delay()//简单延时函数 { ;; } *************************************************************
[单片机]
Microwire总线协议
Microwire串行接口是SPI的精简接口,能满足通常外设的需求。Microwire总线是美国国家半导体(NS)公司推出的三线同步串行总线。这种总线由一根数据输出线(SO)、一根数据输入线(SI)和一根时钟线(SK)组成 (但每个器件还要接一根片选线)。原始的Microwire总线上只能连接一片单片机作为主机,总线上的其它设备都是从机。此后,NS公司推出了8位的COP800单片机系列,仍采用原来的Microwire总线,但单片机上的总线接口改成既可由自身发出时钟,也可由外部输入时钟信号,也就是说,连接到总线上的单片机既可以是主机,也可以是从机。为了区别于原有的Microwire总线,称这种新产品为增强型的Microwire/PLU
[嵌入式]
20种PLC元件编号和Modbus编号地址对应表分享
曾经做过单片机和以下20种PLC的Modbus RTU串口通信,现将这20种PLC输入、输出和寄存器元件与Modbus编号地址对应表分享出来。 三菱FX3G-40MR/ES-A、西门子S7-200 CPU226 AC/DC/RLY、欧姆龙CP1H-X40DR-A、松下AFPX-C40R、台达DVP-12SA2、信捷XC5-48、永宏FBs-40MC、产电XBC-DR40S、汇川H2u-2416MT-XP、英威腾IVC2H-1616MAT6、基恩士KV-N40AR、施耐德电气TM218LDAE40DRPHN、海为H40S2R系列、维控LX3V1212MT系列、和利时LE5109、台安AP-340BR-A、罗克韦尔1766-L32
[嵌入式]
Modbus通讯注意事项及测试
很多同学在做Modbus通讯时,需要连续读取多个现场设备的数据,虽然也编写了Modbus轮询的程序,但是有时还是无法正常通讯。有时虽然能够保证通讯,但是所有现场设备的轮询周期很长。本文将从MBUS_CTRL的超时时间参数设置来说明超时时间设置的重要性。 答:Modbus通讯协议是单主多从的通讯协议,如果需要读取多个现场Modbus从站设备的数据时,很多 PLC 不支持对Modbus通讯功能块的自动排序,需要自己编写Modbus轮询程序来实现,轮询时每次只能激活一个Modbus的读写功能块。 以常见的主站读取从站的寄存器为例,主站发出请求需要8个字节,从站返回响应为5 2*n个字节。其中n为寄存器个数。 如果通讯速率为9600时,按照
[嵌入式]
s3c2440之IIS(3)I2S总线协议
I2S总线协议 一、I2S总线概述 音响数据的采集、处理和传输是多媒体技术的重要组成部分。众多的数字音频系统已经进入消费市场,例如数字音频录音带、数字声音处理器。对于设备和生产厂家来说,标准化的信息传输结构可以提高系统的适应性。I2S(Inter—IC Sound)总线是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之间的数据传输,广泛应用于各种多媒体系统。 二、I2S总线规范 I2S总线拥有三条数据信号线: 1、SCK: (continuous serial clock) 串行时钟 对应数字音频的每一位数据,SCK都有1个脉冲。SCK的频率=2×采样频率×采样位数 2、WS:
[单片机]
基于CPLD的PLC背板总线协议接口芯片设计
可编程逻辑控制器(PLC)主机是通过背板总线支持扩展模块的连接, 背板总线是PLC 主机同I/O扩展模块之间的高速数据通路,支持主机和扩展模块之间的I/O 数据刷新。背板总线的技术水平决定了PLC 产品的I/O 扩展能力,是PLC 设计制造的核心技术。目前,PLC 大多采用串行通信技术实现背板总线,串行总线引线少、硬件成本低,跟并行总线相比不容易受干扰,串行总线可以提高在恶劣的工厂和工业环境下自动化设备的可靠性。用于串行通信技术的可选类型包括I2C、UART、SPI、USB 和以太网等,一般来说,很多作为PLC 主芯片的单片机自身都集成了这些外设部件。但是单片机内部集成的I2C、UART、SPI 外设通信速率太慢,根本不能满足
[嵌入式]
SPI总线协议的通信原理及应用举例
SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。 (1)SDO – 主设备数据输出,从设备数据输入
(2)SDI – 主设备数据输入,从设备数据输出
(3)SCLK – 时钟信号,由主设备产生
(4)CS – 从设备使能信号,由主设备控制
其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。
[嵌入式]
基于Modbus的EPS应急电源监控系统的研究
1 引 言 随着环保和消防要求的提高,柴油发电机逐渐失去优势,而由于逆变技术的成熟发展,新型无公害、高可靠性、动力型的大型应急电源EPS(Emergency Power Supply)逐步成为代替柴油发电机组的“绿色电源”,目前已经在建筑领域得到大面积推广。同时,随着微处理器、计算机和数字通信技术的飞速发展,计算机控制已经扩展到了几乎所有的工业领域。将所有的功能集成于统一开放的平台上,通过人机界面可以使复杂的控制和数据处理变得更加简单。 2 监控系统设计 美国电子工业协会(EIA)制定的RS 485标准作为一种多点差分数据传输的电气规范,现已成为业界应用最为广泛的标准通信接口之一。这种通信接口允许在简单的一对双绞线上进行多点
[应用]