天天看点

MODBUS和RS485的区别

作者:一个发芽的土豆

一、RS485介绍

在工业控制场合,RS485总线因其接口简单,组网方便,传输距离远等特点而得到广泛应用。RS485和RS232一样都是基于串口的通讯接口,数据收发的操作是一致的,所以使用的是同样WinCE的底层驱动程序。但是它们在实际应用中通讯模式却有着很大的区别,RS485接口为半双工数据通讯模式,而RS232接口为全双工数据通讯模式,数据的收发不能同时进行,为了保证数据收发的不冲突,硬件上是通过方向切换来实现的,相应也要求软件上必须将收发的过程严格地分开。

RS485是物理接口

1、可以实现串行通信,常用于连接扫描仪、条形码阅读器、支持Modbus协议的现场仪表和变频器等带有串口的设备。

2、以S7-1200系列的CM1241(RS422/485)通信模块为例,通信距离最长1000m,通信速率最大115.2K,RS485总线上支持最多32个设备;而CM1241(RS232),通信距离最长10m,且只能和1个设备进行连接。

MODBUS和RS485的区别

RS485引脚接线图

RS485接口组成的半双工网络,一般是两线制(以前有四线制接法,只能实现点对点的通信方式,现很少采用),多采用屏蔽双绞线传输。这种接线方式为总线式拓扑结构在同一总线上最多可以挂接32个结点。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。

RS485的特点

1、RS-485的电气特性:逻辑“0”以两线间的电压差为+(2—6)V表示;逻辑“1”以两线间的电压差为-(2—6)V表示。接口信号电平比RS-232降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。

2、RS-485的数据最高传输速率为10Mbps。

3、RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。

4、RS-485接口的最大传输距离标准值为4000英尺(约1219米),实际上可达3000英尺,另外RS-232接口在总线上只允许连接1个收发器,即单站能力。而RS-485接口在总线上是允许连接多达128个收发器。即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。

MODBUS和RS485的区别

RS-232转RS-485/422转换器

二、MODBUS介绍

Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。

ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。

Modbus是通信协议

1、它具有两种串行传输模式:分别为Modbus ASCIl和Modbus RTU

2、Modbus RTU通信以主从的方式进行数据传输,在传输的过程中Modbus RTU主站是主动方,即主站发送数据请求报文到从站,Modbus RTU从站返回响应报文。

3、S7-1200和S7-1500没有Modbus ASCI1通信的相关指令,如果需要可以根据点到点、或者PtP Communication通信指令集进行编程实现。

Modbus TCP通信

Modbus TCP通信是以太网通信的一种,是Modbus协议在TCP上的应用。可以使用S7-1200和S7-1500CPU本体上的以太网接口实现。

ModBus特点

1、标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。目前,支持Modbus的厂家超过400家,支持Modbus的产品超过600种。

2、Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。

3、Modbus的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开发简单。

MODBUS通讯传送方式

通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义也与MODBUSRTU通讯规约相兼容:

MODBUS和RS485的区别

初始结构=≥4字节的时间

地址码=1字节

功能码=1字节

数据区=N字节

错误校检=16位CRC码

结束结构=≥4字节的时间

地址码:地址码为通讯传送的第一个字节。这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。

功能码:通讯传送的第二个字节。ModBus通讯规约定义功能号为1到127。本仪表只利用其中的一部分功能码。作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的最高位为1(比如功能码大与此同时127),则表明从机没有响应操作或发送出错。

数据区:数据区是根据不同的功能码而不同。数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。

CRC码:二字节的错误检测码。

MODBUS和RS485的区别

三、RS485和MODBUS的区别

RS485是一个物理接口,简单的说是硬件。

MODBUS是一种国际标准的通讯协议,用于不同厂商之间的设备交换数据(一般是工业用途);所谓协议,也可以理解为上面有人说的“语言”吧,简单的说是软件。

一般情况下,两台设备通过MODBUS协议传输数据。

最早是用RS232C作为硬件接口,(也就是普通电脑上的串行通讯口(串口));也有用RS422的,也有常用的RS485,这种接口传输距离远,在一般工业现场用的比较多。

MODBUS协议又分MODBUS RTU,MODBUS ASCII和后来发展的MODBUS TCP三种模式:其中前两种(MODBUS RTU,MODBUS ASCII)所用的物理硬件接口都是串行(Serial)通讯口(RS232,RS422,RS485)。

而MODBUS TCP则是为了顺应当今世界发展潮流,什么都可以用Ethernet网或Internet来连接,传送数据。所以又称MODBUS TCP模式,该模式的硬件接口就是以太网(Ethernet)口了,也就是我们电脑上一般用的网络口了。