一、RS-485总线

RS-485总线技术只是规定了接口的电气标准,并没有规定RS-485接口的电缆,插件以及通信协议,只是OSI规范中物理层的一个标准,RS-485总线采用差分平衡传输方式。由于RS-485总线并没有规定通信协议,有很多厂家自己推出基于RS-485总线的通信协议。RS-485总线支持点对多点通信模式,而其没有数据冲突检测解决机制,所以数据冲突的问题都是依靠主机来解决,通过主机对整个系统进行全方位的控制,避免数据冲突的产生,一般而言,由于必须通过主机进行控制以避免数据冲突,所以由于RS485总线组网,在通信协议中是使用一主多从的通信方式。
1、RS-485通信距离:
RS-485最大的通信距离约为1219m,最大传输速率为10Mbps,传输速率与传输距离成反比,在100KbpS的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需要加485中继器。
2、RS-485支持结点:
RS-485通讯中一个串口可以控制多少个设备的问题是与该485网络中的电气特性和协议特性所决定的。 所谓电气特性就是指的是要保证485网络中的特征阻抗在允许的范围内,应该是120欧姆左右,连接的设备越多,特征阻抗越小,所以一般在485网络中一般都要加120欧姆的终端电阻。

二、Modbus通信协议

Modbus通信协议是由modicon公司推出的,定义了一种数据传输的规范。协议采用的是主从通信模式(Master/Slave通信模式)。协议的应用主要有三种:Modbus RTU,Modbus ASCII 和Modbus TCP三种,其中Modbus RTU与Modbus ASCII均为支持RS-485总线的通信协议,Modbus TCP是支持以太网的通信协议,在工业现场一般都是采用Modbus RTU协议,一般而言,大家说的基于串口通信的Modbus通信协议都是指Modbus RTU通信协议。
1、Modbus RTU通信协议格式:
RTU协议中的指令由地址码(一个字节),功能码(一个字节),起始地址(两个字节),数据(N个字节),校验码(两个字节)五个部分组成,其中数据又由数据长度(两个字节,表示的是寄存器个数,假定内容为M)和数据正文(M乘以2个字节)组成,而RTU协议是采用3.5个字节的空闲时间作为指令的起始和结束。

由于协议中地址码是一个字节,则理论上modbus最大可支持的结点为1~255个,但协议官网文档中说明最大只支持247个结点。

三、RS-485与Modbus的关系

RS-485总线只是规定了接口的电气标准,并没有规定应用层的通信协议,所以很多公司都是自定义基于RS-485总线的应用层通讯协议。而modbus通信协议则是基于RS-485总线上的标准应用层的协议。

四、参考文档

http://blog.csdn.net/derryzhang/article/details/5004761
http://www.modbustools.com/modbus.html
http://www.cnblogs.com/dengxiaojun/p/4399232.html
https://github.com/aguegu/stm32-modbus //在github上边有基于STM32的源代码,还没有时间去研究。

by 羊羊得亿
2017-11-04 ShenZhen

RS-485总线和Modbus通信协议的关系的更多相关文章

  1. 多平台下Modbus通信协议库的设计(一)

    1.背景 1.1.范围 MODBUS 是 OSI 模型第 7 层上的应用层报文传输协议, 它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信. 自从 1979 年出现工业串行链路的事实标准以 ...

  2. 泓格WINPAC主机与第三方模块rs 485 modbus rtu通信测试

    开发语言:C# 开发环境:VS2008(支持WINCE开发的最后一个版本) 运行环境:Windows CE 5.0~7.0 项目说明:多台涨格winpac系列的主机,原来使用泓格SDK开发的程序,采集 ...

  3. Modbus通信协议的压力测试

    最近物联网都比较的火,因此,特别为各位兄弟姐妹们,奉上一款Mobus协议的测试软件,可以用来做设备的压力测试,和通信测试. 起初软件开发缘由是我们最近在开发一款设备,需要将多个DS18B20并联起来, ...

  4. Modbus通信协议详解

    附:http://www.360doc.com/content/14/0214/13/15800361_352436989.shtml 一.Modbus 协议简介 Modbus 协议是应用于电子控制器 ...

  5. ModBus通信协议的【Modbus RTU 协议使用汇总】

    1.RTU模式 当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符.这种方式的主要优点是:在同样的波特率下,可比ASCII方式传 ...

  6. ModBus通信协议的【传输方式】

    1.Modbus 传输方式 标准的Modbus口是使用一RS-232C兼容串行接口,它定义了连接口的针脚.电缆.信号位.传输波特率.奇偶校验.控制器能直接或经由Modem组网.     控制器通信使用 ...

  7. Modbus 通信协议详解

    一.Modbus 协议简介     Modbus 协议是应用于电子控制器上的一种通用语言.通过此协议,控制器相互之间.控制器经由网络(例如以太网)和其它设备之间可以通信.它已经成为一通用工业标准.有了 ...

  8. ModBus通信协议的【功能码】

    Modbus的功能码    ModBus 功能码与数据类型对应表:   RTU 方式读取整数据的例子: 解析一下:主机发送指令,访问从站地址为1,使用功能码03(读保持寄存器),起始地址高8位.低8位 ...

  9. ModBus通信协议的【主从模式】

    主从模式 (1) 至少且只有一个主机,其他的都是从机 (2) 不管任何时候,从机都不能主动向主机发送数据 (3) 主机具有访问从机的权限,从机不可以主动访问从机,任何一次数据交换,都要由主机发起 (4 ...

随机推荐

  1. 4.graph.h

    #pragma once #include <stdio.h> #include <graphics.h> #include <mmsystem.h> #pragm ...

  2. BZOJ 3224 平衡树模板题

    Treap: //By SiriusRen #include <cstdio> #include <algorithm> using namespace std; int n, ...

  3. Cisco交换机端口安全

    Cisco交换机端口安全       通过端口设置,可以限制允许访问交换机上某个端口的MAC地址以及IP(可选)来实现严格控制对该端口的输入,最终确保网络接入安全.配置网络安全时应该注意如下问题: 1 ...

  4. Lambda表达式相当于一个函数

    看来你对Lambda完全不懂.Lambda表达式相当于一个函数. 比如model => model.Name相当于string 一个函数(Model的类型 model) {     return ...

  5. SQL函数_Floor和Celling

    1 floor()函数用于获得小于或者等于数值表达式的最大整数,也就是向下取整;celling()函数用于获得大于或者等于数值表达式的最小整数,也就是向上取整: 2 floor()函数和round函数 ...

  6. vmware-images

    https://virtualboxes.org/images/centos/ https://www.osboxes.org/vmware-images/

  7. Bootstrap概览

    摘选自runnoob.com,bootstrap4所有api概览: 一.安装: 弹性盒子(flexbox) Bootstrap 3 与 Bootstrap 4 最大的区别就是 Bootstrap 4 ...

  8. 分享《Python 游戏编程快速上手(第3版)》高清中文版PDF+高清英文版PDF+源代码

    通过编写一个个小巧.有趣的游戏来学习Python,通过实例来解释编程的原理的方式.14个游戏程序和示例,介绍了Python基础知识.数据类型.函数.流程控制.程序调试.流程图设计.字符串操作.列表和字 ...

  9. ajax提交转码解码

    js 文字传输加密 encodeURI(encodeURI(distName)) java 解密 URLDecoder.decode(request.getParameter("distNa ...

  10. Mysql第八天 分区与分表

    分区表 主要提供例如以下的特性,或者适合如此场景: 数据量非常大, 或者仅仅有表中最后的部分有热点数据.其它均为历史数据 分区表数据更easy维护,能够对独立的分区删除等操作 分区表的数据能够分布在不 ...