买MODBUS通讯协议上1688,Modbus通讯协议

买MODBUS通讯协议上1688,Modbus通讯协议

Modbus协议基本概念是什么?

朋友们好,我是电子及工控技术,我来回答这个问题。现在工业现场通信方式非常丰富,因此每种通信方式都对应着一种通信协议,我在学习可编程控制器(PLC)控制技术和变频器控制技术的时候,往往需要这两者进行通讯,在这些工控设备中可以走很多通信协议,其中Modbus通信是比较常用的一种通信方式。今天我们来说说关于Modbus通信的一些内容。

Modbus的由来我们平时在日常生活中进行交流主要是通过听和说来完成,这里主要是通过语言来传达信息。在说者和听者之间是遵循着一些约定成俗的“约定”,因此双方是能够听懂对方所讲的内容。下面我们要说的Modbus通信协议其实它也是一个约定,这个“约定”其实就是一种通信协议,这个通信协议是由当时莫迪康(Modicon)公司于1979年开发的,现在这个公司已经被施耐德( Schneider)电气公司收购了。

Modbus通信协议刚开发之初就是专门为可编程控制器(PLC)通讯准备的,到目前为止它已经成为现代工业控制领域的通讯标准,它已经广泛应用在工控设备与设备之间的通讯上了。Modbus的优点Modbus之所以被广泛使用,我认为是由于它具有以下几个方面的优点吧。首先是Modbus通信协议标准是一个开放性的,没有版权要求,大家可以免费使用,这是它被广泛使用的主要原因之一;其次是它支持多种物理通讯接口,比如我们常用的RS232接口、RS485接口以及基于工业以太网的TCP/IP接口;再次是在使用RS485两线制的时候,可以在两根总线上实现一个主站多个从站的通讯方式,如果我们使用处理速度快的芯片时,在理论上可以挂接255个从站;最后是Modbus通信协议格式非常简单,我们在学习和理解时都比较容易。

另外要注意,在硬件连接的时候,在总线的开头和结尾都需要接一个120欧姆的电阻,否则是无法进行通信的,这也是Modbus通信协议所给定的,如下图所示。Modbus的特点Modbus是一个串行通信协议,在架构组成上它是一个主/从架构,主站可以根据站地址向各个从站发出命令,从站也可以向主站返回命令,但是从站之间是不能相互传达命令的,只有通过主站才能相互传达命令,这是Modbus通信协议的规定。

因此在Modbus通信中,只能由主机发出请求从机进行应答,而不能由从机主动发起通讯,从机之间也是不能互相发起通信的。Modbus的分类及报文Modbus是一种基于串口通信的方式,它可以分为Modbus RTU 和Modbus ASCII两类。一般来说Modbus RTU比较常用,对于支持Modbus ASCII通信方式的设备也一定支持Modbus RTU通信模式。

另外现在使用基于以太网的Modbus TCP也使用非常广泛了,比如我在工作中使用的西门子和施耐德的工控产品都是采用了Modbus TCP通信模式。关于Modbus的报文是指在Modbus的通信协议中几个约定好内容的字节,比如一号设备向二号设备发送的8个字节,二号设备接收到了这8个字节后,它就会根据Modbus通信协议约定的功能去执行相应的动作。

什么是ModBusRTU通讯协议?

M-bus简称仪表总线, 它具有两总线无极性,布线无拓扑要求,总线自供电,抗干扰能力强、中继级数多、带终端级数多,简单、可靠等一 系列优点,是目前抄表系统应用的最好的总线。M-BUS 系统采用半双工异步通讯,传输速率:300Bps—9600Bps。传输距离较远,由超声波热量表内独立锂电 池供电,外部电源断电不影响其独立工作。

Modbus协议RTU格式中通信格式字一定有起始位吗?

Modbus-RTU协议中,不用判断起始位。这种通信采用的是主机轮询、从机应答式的通讯方式,从机通过地址来判断主机的通信对象是否为自己,所以不用判断起始位。1MODBUS-RTU的通讯格式RS485接口在工业自动化中应用非常广泛,该接口为双总线通信方式,只有RSA和RSB两根线,可以走MODBUS TCP/IP协议,也可以走MODBUS-RTU协议,通讯距离可达数公里,是一种标准的通讯接口,而MODBUS-RTU是工业现场一种标准的通信协议,大多数的PLC和组态屏都支持该通讯协议。

其数据格式是由如下几部分构成的:1)从机地址;2)功能码;3)数据;4)校验码。采用一问一答式通讯方式,主机定时查询从机状态,从机收到主机的轮询命令后回复相应的数据。常用的功能码有01读线圈状态、03读保持寄存器、06预置单个寄存器、16预置多个寄存器等。203功能码举例解析以03功能码为例,介绍一条具体的数据格式,主机的命令格式为:01 03 00 04 00 02 85 CA,从机回复的数据格式为:01 03 04 00 00 00 00 FA 33。

如下图所示。该条命令的含义为:主机要读取01号地址的从设备的寄存器内容,读取从00 04寄存器开始往后2个寄存器的内容,即00 04和00 05寄存器中的内容。从机收到命令后,将这两个寄存器中的数据发送给主机,每个寄存器存放两个字节的数据,两个寄存器共存放4个字节的数据,所以返回数据字节的个数为4个。

306功能码举例解析06功能码是用来写从机寄存器的内容的,比如主机向改写从机其中一个寄存器的数据,就可以通过06功能码来实现。主机发送的数据如下:01 06 00 00 00 0A 09 CD,从机返回的数据如下:01 06 00 00 00 0A 09 CD。如下图所示。该数据所代表的含义为:主机要将01号从机的00 00寄存器写入两个字节的数据,数据为00 0A。

写入成功后,从机返回该寄存器的状态。06功能码只要改写一个寄存器的内容,如果要改写多个寄存器的内容需要用到16预置多个寄存器功能码。4常用的通信参数Modbus在通讯之前,先要确认通信参数,这些通信参数包括:1)波特率;2)数据位数;3)停止位4)校验方式等。波特率是指每秒所传送的数据的位数,数值越大通信速度越快,常用的波特率有4800、9600、19200、115200等,两台设备在通讯时,通讯波特率必须一致,否则通讯无法建立。

数据位数,一般为8位。停止位有1位,2位等,校验方式有奇校验、偶校验和无校验等。总之,通过上述描述可以看出,MODBUS-RTU通讯协议中并未规定起始位的信息,而是规定了从机地址、功能码之类的信息。所以不需要起始位。以上就是这个问题的回答,感谢留言、评论、转发。更多电子设计、硬件设计、单片机等内容请关注本头条号:玩转嵌入式。

  • 姓名:
  • 专业:
  • 层次:
  • 电话:
  • 微信:
  • 备注:
文章标题:买MODBUS通讯协议上1688,Modbus通讯协议
本文地址:http://www.oh.55jiaoyu.com/show-729888.html
本文由合作方发布,不代表展全思梦立场,转载联系作者并注明出处:展全思梦

热门文档

推荐文档