在工业控制、电力通讯、智能仪表等领域,通常情况下是采用串口通信的方式进行数据交换。最初采用的方式是RS232接口,由于工业现场比较复杂,各种电气设备会在环境中产生比较多的电磁干扰,会导致信号传输错误。

1979年施耐德电气制定了一个用于工业现场的总线协议Modbus协议,现在工业中使用RS485通信场合很多都采用Modbus协议,所以今天我们来了解下RS485通信和Modbus通信协议。

【RS485通信】

实际上在RS485之前RS232就已经诞生,但是RS232也有不足:

1、接口的信号电平值较高,达到十几V,容易损坏接口电路的芯片,而且和TTL电平不兼容,因此和单片机电路接起来的话必须加转换电路。

2、接口使用的信号线与其他设备形成共地模式的通信,这种共地模式传输容易产生干扰,并且抗干扰性能也比较弱。

3、传输距离、速率都有限,最多只能通信几十米;只能两点之间进行通信,不能够实现多机联网通信。

针对RS232接口以上不足,出现了RS485等新的接口标准,RS485具备以下的特点:

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

2、RS485通信速度快,数据最高传输速率为10Mbps以上;其内部的物理结构,采用的是平衡驱动器和查分接收器的组合,抗干扰能力大大增加。

3、传输距离最远可达到1200米左右,但传输速率和传输距离是成反比的,只有在100KB/s以下的传输速率,才能达到最大的通信距离,如果需要传输更远距离可以使用中继。

4、可以在总线上进行联网实现多机通信,总线上允许挂多个收发器,从现有的RS485芯片来看,有可以挂32、64、128、256等不同个设备的驱动器。

RS485有两线制和四线制,四线制只能实现点对点的通信方式,现很少采用。两线制这种接线方式为总线式拓朴结构,在同一总线上最多可以挂接32个结点。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。

很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。而忽略了信号地的连接,这种连接方法在许多场合是能正常工作的,但却埋下了很大的隐患,这有2个原因:

共模干扰问题:RS-485接口采用差分方式传输信号方式,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差就可以了。但人们往往忽视了收发器有一定的共模电压范围,RS-485收发器共模电压范围为-7~+12V,只有满足上述条件,整个网络才能正常工作。当网络线路中共模电压超出此范围时就会影响通信的稳定可靠,甚至损坏接口。

EMI问题:发送驱动器输出信号中的共模部分需要一个返回通路,如没有一个低阻的返回通道(信号地),就会以辐射的形式返回源端,整个总线就会像一个巨大的天线向外辐射电磁波。

由于PC机默认的只带有RS232接口,以下方法可以得到PC上位机的RS485电路:

1、通过RS232/RS485转换电路将PC机串口RS232信号转换成RS485信号,对于情况比较复杂的工业环境最好是选用防浪涌带隔离的产品。

2、通过PCI多串口卡,可以直接选用输出信号为RS485类型的扩展卡。

【Modbus通信协议】

Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。

此协议定义了一个控制器能认识使用的消息结构,描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。

Modbus具有以下几个特点:

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

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

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

一、Modbus 寄存器种类说明

1— 线圈状态:输出端口,可设定端口的输出状态,也可以读取该位的输出状态

2— 离散输入状态:输入端口,通过外部设定改变输入状态,可读但不可写

3— 保持寄存器:控制器运行时被设定的某些参数,可读可写

4— 输入寄存器:控制器运行时从外部设备获得的某些参数,可读不可写

二、Modbus 通讯数据格式

单个写入:

多个写入:

读取:

三、Modbus 功能码简述

功能码可以分为位操作和字节操作,位操作的最小单位是Bit,字节操作的最小单位为2个字节(Byte)。

1— 位操作指令:读线圈状态01H、读离散输入状态02H、写单个线圈05H、写多个线圈0FH.

2— 字节操作指令:读保存寄存器03H、读输入寄存器04H、写单个保存寄存器06H、写多个保存寄存器10H.

四、Modbus功能码

485通信少发一个字节_一文搞懂Modbus与RS485通信协议相关推荐

  1. 中文只占一个字符_一文搞懂字符和字节的含义

    前言 我们在数据库建表时,经常会困扰某个字段应该选择什么数据类型,以及填写什么长度.选择数据类型方面一般没什么大问题,但是在填写对应的长度的时候,很多人就会困扰,对应长度填写的数字到底是什么含义,以及 ...

  2. python语言语句快的标记是什么_一文搞懂Python程序语句

    原标题:一文搞懂Python程序语句 程序流 Python 程序中常用的基本数据类型,包括: 内置的数值数据类型 Tuple 容器类型 String 容器类型 List 容器类型 自然的顺序是从页面或 ...

  3. 生命周期共有那几个阶段_一文搞懂ReactNative生命周期的进化

    前言 React 15生命周期函数 Mounting阶段:组件初始化渲染 Updating阶段:组件更新 Unmounting阶段:组件卸载 进化:React 16生命周期函数 Mounting阶段: ...

  4. java吵醒线程_一文搞懂 Java 线程中断

    在之前的一文<如何"优雅"地终止一个线程>中详细说明了 stop 终止线程的坏处及如何优雅地终止线程,那么还有别的可以终止线程的方法吗?答案是肯定的,它就是我们今天要分 ...

  5. java sleep方法_一文搞懂 Java 线程中断!

    在之前的一文<如何"优雅"地终止一个线程>详细说明了 stop 终止线程的坏处及如何优雅地终止线程,那么还有别的可以终止线程的方法吗?答案是肯定的,它就是我们今天要分享 ...

  6. 红黑树和平衡二叉树的区别_一文搞懂红黑树

    文章参考 | https://segmentfault.com/a/1190000012728513 前言 当在10亿数据进行不到30次比较就能查找到目标时,不禁感叹编程之魅力! 二叉树 在了解红黑树 ...

  7. mqtt 多个订阅者 只允许一个接收_一文读懂物联网的灵魂MQTT

    名词释义: MQTT--Message Queuing Telemetry Transport消息队列遥测传输 SUB--Subscribe订阅 PUB--Publish发布 QoS--Quality ...

  8. oracle 时间减去一个月_一文看懂教孩子时间问题的进阶过程

    01 认识时间 说起时间,孩子们通常首先会想到钟表.而这里,象爸建议,我们要先让孩子们了解用什么来表达时间,只有清楚了时间的基本概念和度量方式,孩子们才能从小建立时间观念,培养积极健康的人格.因此,家 ...

  9. mysql 字节与字符_一文搞懂字符和字节的含义

    前言 我们在数据库建表时,经常会困扰某个字段应该选择什么数据类型,以及填写什么长度.选择数据类型方面一般没什么大问题,但是在填写对应的长度的时候,很多人就会困扰,对应长度填写的数字到底是什么含义,以及 ...

最新文章

  1. toad for oracle xpert edition,Toad for oracle 软件产品模块对比,方便大家选型
  2. 效率神器!开源快捷启动工具
  3. 水题Kattis Temperature Confusion小学数学
  4. MySQL使用GROUP_CONCAT分组拼接
  5. docker报错:Unable to get pid of LinuxThreads manager thread及openjdk-alpine镜像无法打印线程堆栈和内存堆栈问题
  6. myeclipse2014删除antlr-2.7.2.jar--解决struts和hibernate包冲突
  7. 产线数字化软件源码_品质笔记⑥丨卢宇聪:把握数字化趋势,坚定创新发展道路...
  8. PAT乙级(1022 D进制的A+B )
  9. java 字符串的编码与C#的区别
  10. Javascript设置对象的ReadOnly属性
  11. 手机wap网站制作教程
  12. ios描述文件安装的问题
  13. mybatis处理xml大于小于号报异常
  14. Protobuf 介绍与实战21:如何生成一维数组、二维数组(repeated数组类型介绍)
  15. QRCode.js:使用 JavaScript 生成二维码
  16. 再读《架构即未来》有感
  17. GoogleMap获取地图中心点位置信息
  18. 表格维护生成器-部分字段不能修改或不能看见
  19. 异步FIFO设计原理及Verliog源代码
  20. Elasticsearch:集群配置及异常解决

热门文章

  1. Winform开发框架中工作流模块的动态处理
  2. redis详细配置文件
  3. 移动端UI自动化Appium测试——Appium server两种启动方式
  4. Linux发邮件之mail命令
  5. 调试一个Ext打开的window窗口内嵌Iframe的form提交问题
  6. 速度提升2倍,超强悍CPU级骨干网络PP-LCNet出世!
  7. 旷视周而进:人脸识别简史与距离对齐技术的应用
  8. 地平线开源轻量级、有效可变组卷积的人脸识别网络VarGFaceNet
  9. TensorFlow深度自动编码器入门实践
  10. CVPR2021 | 北航商汤耶鲁口头报告