RS485通信和Modbus通信协议
一、RS485介绍
485
**1.在工业控制领域中, RS485总线因其结构简洁,布线简便以及通信范围广等优势而得到了广泛应用。
2.RS485与RS232同样基于串口通讯接口,其数据传输操作一致,因此采用了相同的WinCE底层驱动程序。然而它们的实际应用中通讯模式存在显著差异, RS485采用的是半双工模式,而RS232采用全双工模式。需要注意的是, RS485任何时候只能处于发送状态之一,因此发送电路需通过使能信号加以控制。
3.RS485构成的半双工网络通常采用两根导线(四线制技术已逐渐被淘汰),这种架构允许在一个总线上最多连接32个节点。在RS485通讯网络中通常采用主从型拓扑结构,即一个主控制器连接多个从机设备。
二、MODBUS介绍
1.1979年施耐德电气制定了一个用于工业现场的总线协议Modbus协议,现在工业中使用RS485通信场合很多都采用Modbus协议。
2.ModBus网络是一个 工业通信系统 ,由带智能终端的 可编程序控制器 和 计算机 通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种 数据采集 和过程 监控 。
3.Modbus可以支持多种电气接口,如RS-232、 RS-485 等,还可以在各种介质上传送,如双绞线、 光纤 、无线等。
三、RS485与MODBUS的区别
1.RS485是一种物理通信接口,在硬件层面上发挥作用。
2.MODBUS是一种标准化的通信协议,在工业应用中被用于不同厂商设备之间的数据交换(通常用于工业用途)。从本质上讲,“协议”也可以理解为人们常说的“语言”。简单来说,在这种协议下主机与从机之间需要执行起停电机的动作,并且规定了主机向从机发送命令的方式以及数据传输的具体格式和冲突预防措施。只要双方都遵循该协议,则不同厂商的主从机设备便能够实现兼容共用。
3.通常情况下,在通过MODBUS协议传输数据时:早期多采用RS232C作为硬件接口(即普通电脑上的串行通讯端口),随后也出现了使用RS422和较为常见的RS485的情况;后者的传输距离较远,在工业现场应用较为广泛。
4.MODBUS协议主要包括Modbus RTU、Modbus ASCII以及后来发展完善的Modbus TCP三种模式:其中前两种(Modbus RTU与Modbus ASCII)所使用的硬件接口均为串行通讯端口(包括RS232、RS422与RS485)。而Modbus TCP则是为了适应当今社会发展潮流而出现的新型模式——通过以太网或互联网进行设备连接传输数据;其对应的硬件接口则为网络端口(如常见的以太网口),这也是我们日常电脑上常用的网络接口类型之一。
**起始位与结束符的作用如下:它们必须处于前后至少相隔3.5个字符长度的空间内,并且实际操作中这些位置并未存储任何数据信息。通过序列标记T1至T4的方式,则可明确表示每个时间段均超过规定的最低时长限制(即每个区间均至少为3.5个字符长度)。值得注意的是,在此系统中第一个具有意义的数据编码即为设备标识码的唯一标识符。
- 设备地址:在多机通信时遇到的数据量很大,在这情况下我们如何判断一个数据帧属于哪个设备呢?答案就是看这个设备地址字节。每个设备都有自己的唯一地址码,在接收一帧数据后程序首先会对比该帧数据中的设备地址字节与各设备地址码是否一致:若不一致则丢弃该数据;若一致则进行后续解析并执行相应功能操作;若该字段值为0x00则表示这是一个广播指令,在这种情况下所有从机都需要执行相应的指令操作。
- 功能代码:在功能代码字段中Modbus规定了部分标准功能码同时也保留了一些备用或自定义的功能码这些功能码大家无需刻意记忆甚至不用去查看具体编码表直到实际需要用到的时候再去查阅即可。
- CRC校验:CRC校验是一种用于检测数据传输完整性的一种算法它通过将一帧数据除最后两个字节外的所有前部字节进行特定运算生成一个16位的数据作为校验码附加在该帧数据尾部发送方发送完数据后接收方会在收到数据后同样对前部的所有字节进行一次同样的运算得到的结果与接收到的数据中的校验码进行对比如果两者一致则判定传输过程正常否则判定存在传输错误并丢弃此次的数据重新发送。
