大家好,我是讯享网,大家多多关注。
什么是Modbus通信协议?
至于Mod,这个协议最早是用在PLC控制器上,准确的说是Modicon公司的PLC控制器,这也是Mod-Bus这个名字的由来。后来Modicon被施耐德收购。Modbus协议被广泛应用于工业控制器、人机界面和传感器,并逐渐被其他厂商接受,成为与外围设备通信的主流通信协议。
Modbus协议作为工业控制领域的通用通信协议,在众多物联网产品中得到了应用,在工业、农业等物联网解决方案中均有发现。ModBus网络是由智能终端的可编程控制器和计算机组成的工业通信系统,通过公用线路或本地专线连接。该系统结构包括硬件和软件,适用于各种数据采集和过程监控。
Modbus网络体系Modbus网络系统
通过Modbus协议,控制器可以通过网络(如以太网)相互通信或与其他设备通信。Modbus协议采用主从式通信技术,即主设备主动查询和操作从设备。一般主设备使用的协议称为Modbus Master,从设备使用的协议称为Modbus Slave。典型的主要设备包括工业计算机和工业控制器等。典型的从设备如PLC可编程控制器等。Modbus通信物理接口可以选择串口(包括RS232和RS485)或以太网口。
在Modbus 7层OSI参考模型中,属于7层应用层,有两个数据链路层:基于标准串口协议和TCP协议,物理层可以使用3线232、2线485、4线422,也可以使用光纤、网线、无线等传输介质。
ModBus网络只有一个发送通信信号的主机和几个从机。该网络可支持多达247个远程从属控制器,但实际支持的从属控制器数量取决于所使用的通信设备。通过该系统,每台PC可以与中央主机交换信息,而不影响每台PC执行自己的控制任务。
Modbus协议包括ASCII、RTU、TCP等。,但是没有物理层。该协议定义了控制器可以识别和使用的消息结构,而不管它们通过什么网络进行通信。
Modbus协议目前有支持互联网协议的串行端口、以太网和其他网络版本。
大多数Modbus设备通过串口EIA-485物理层进行通信。
对于串行连接,有两种变体,在数字数据表示和协议细节上略有不同。
三种传输模式
1979年,Modicon首次推出串行Modbus标准。后来由于网络的普及,需要更高的传输速度。1997年,制定了基于TCP网络的Modbus标准。
因此可以分为两种传输方式:基于串行链路的传输方式和基于以太网TCP/IP的传输方式。但我个人习惯了三种传播模式:
基于串口的Modbus-RTU数据按照标准串口协议编码,标准串口协议是应用最广泛的Modbus协议,采用CRC-16_Modbus校验算法。
基于串口的Modbus-ASCII所有数据都是ASCII格式,一个字节的原始数据需要两个字符来表示,效率很低。采用LRC验证算法。
基于网络端口的Modbus-TCP Modbus-TCP基于TCP/IP协议,占用502端口。数据帧主要包括两部分:MBAP(消息头)+PDU(帧结构)。数据块与串行链路一致。
所以我们提到Modbus协议,就要确定是哪种模式:RTU,ASCII还是TCP。三种模式还是有很大区别的。
有些设备支持多种Modbus模式,有些设备只支持其中一种。实际使用要看设备的用户手册来选择采用哪种模式。
这三种通信协议在数据模型和函数调用上都是相同的,只是封装方法不同。
Modbus有扩展版Modbus Plus(Modbus+或MB+),但这个协议是Modicon专有的,与Modbus不同。它需要一个特殊的协处理器来处理高速令牌旋转,就像HDLC一样。它使用1Mbit/s的双绞线,每个节点都有一个开关隔离装置。它是一种使用开关/边沿触发而不是电压/电平触发的器件。将Modbus Plus连接到计算机需要特殊的接口,通常是支持ISA(SA85)、PCI或PMCIA总线的板。
标准Modicon控制器使用RS232C实现串行Modbus。
Modbus的ASCII和RTU协议规定了消息和数据的结构、命令和应答方式。数据通信采用主/从模式,主终端发送数据请求消息。在接收到正确的消息后,从终端可以向主终端发送数据以响应请求。
主机也可以直接发送消息修改从机的数据,实现双向读写。
Modbus协议需要检查数据。串行协议中,除奇偶校验外,ASCII模式使用LRC校验,RTU模式使用16位CRC校验。但是,TCP模式不需要额外的检查,因为TCP是一种可靠的面向连接的协议。
此外,Modbus使用主从模式定期发送和接收数据。在实际使用中,如果从站断线(如故障或关机),主终端可以进行诊断,故障修复后可以自动连接网络,因此Modbus协议的可靠性较好。
对于Modbus的ASCII、RTU和TCP协议,其中TCP和RTU协议非常相似,只需去掉RTU协议的两个字节的校验码,然后在RTU协议开头加五个0和一个6,通过TCP/IP网络协议发送出去。
Modbus RTU协议
在Modbus 7层OSI参考模型中,属于7层应用层,有两个数据链路层:基于标准串口协议和TCP协议,物理层可以使用3线232、2线485、4线422,也可以使用光纤、网线、无线等传输介质。
Modbus RTU协议是一种开放的串行协议,广泛应用于当今的工业监控设备中。该协议使用RS-232或RS-485串行接口进行通信,并被市场上几乎所有的商用SCADA、HMI、OPC服务器和数据采集软件程序所支持。
Modbus RTU协议使用主/从技术在设备之间进行通信。这意味着任何使用Modbus RTU协议的应用程序都将有一个Modbus主站和至少一个Modbus从站。主设备通常是运行软件的主机监控计算机,它将与一个或多个Modbus从设备通信。
Modbus从设备是执行系统参数测量和控制系统中设备开/关的设备。为了执行这些任务,主站向Modbus从站发送一条消息,请求执行特定的任务。
Modbus RTU协议使用格式化的消息在主机和从机之间进行通信。该消息由系统主设备发起,并发送给从设备。然后,从站用所请求的数据进行响应,或者确认它已经执行了所请求的功能。进出主站的所有消息都包含一个双字节(16位)CRC(循环冗余校验)校验和值,用于错误检查。如果向Modbus从站发送了无效请求,将返回一个字节(8位)错误代码值,解释请求错误的原因。
Modbus消息包含几个重要信息。每条消息都以接收该消息的设备的从机地址开始。接下来是要执行的功能号(或命令)。随后是正确执行指定功能所需的任何数据。从机地址是单字节(8位)值,可用值范围为0至247。Modbus功能号也是一个字节值,协议中定义了很多标准化的功能号。支持所请求的功能所需的任何数据值的长度将是一个或多个字节。Modbus从机响应消息将包含从机地址、功能号和主机请求的任何必要数据。
Modbus通信协议的特点
(1)标准开放,用户可以免费放心使用Modbus协议,无需支付许可费,也不侵犯知识产权。
(2)Modbus可以支持多种电气接口,如RS-232、RS-485等。也可以在各种介质上传输,如双绞线、光纤、无线等。
(3)Modbus帧格式简单、紧凑,易于理解。用户使用方便,厂商开发简单。
Modbus4数据类型
根据Modbus协议,根据读写属性和类型,读写数据类型可分为以下四种:
离散量输入(Discretes Input ):1位,只读
2.线圈:1位,可读写。
3.输入寄存器):16位,只读。
4.保持寄存器):16位,可读写。
常见MODBUS通信模式
有两种,一种是MODBUS ASCII,一种是MODBUS RTU。每个设备必须具有相同的传输模式。所有设备都支持RTU模式,ASCII传输模式是一个选项。
++ASCII传输模式
当Modbus link的设备被配置为以ASCII模式通信时,消息中的每个8位字节用两个ASCII字符发送。例如:字节0X5B将被编码成两个字符:0x35和0x42用于传输(ASCII编码0x35 = & # 345″,0x42 = & # 34B&第34名;),这样传输效率会降低。
在ASCII模式下,消息使用特殊字符来区分帧的开头和结尾。消息必须以“冒号”(:)(ASCII十六进制3A)开始,以“回车换行”(CRLF)对(ASCII十六进制0D和0A)结束。设备连续监控总线上的“冒号”字符。收到该字符后,每个设备解码后续字符,直到帧结束。消息中字符之间的时间间隔可以长达一秒。如果存在更大的间隔,则接收设备认为发生了错误。
++RTU传输模式
当设备使用RTU(远程终端Lunit)模式在Modbus串行链路上通信时,消息中的每个8位字节包含两个4位十六进制字符。这种模式的主要优点是数据密度更高,在相同的波特率下比ASCII模式传输效率更高。每个消息必须以连续的字符流传输。
Modbus连接方法
RS485应用广泛,可以支持ModBus协议。由于其简单、廉价、可靠和成熟,被广泛应用于工业控制、智能仪器和电力通信等领域。
1.让我们来看看RS485的典型网络结构:
理论上,RS485总线的传输距离可以达到1200米。但由于通信芯片、波特率、导线、干扰等因素的影响,在实际应用中远远达不到这个数值。
理论上,一条RS485总线可以连接254个设备,但事实上,这远远不够。在一般应用中,大约是30个设备。
RS485总线应采用上述手拉手总线结构,坚决杜绝星形连接和分叉连接,如下图所示:
+关于电线的选择
通信电缆选用双芯屏蔽双绞线,线径不小于0.5平方米。双绞线是因为485通信采用差模通信原理,双绞线的抗干扰性能最好。一些用非屏蔽双绞线甚至网线铺设485通信线路的野办法是极其错误的。
+保证通信质量的几种方法
1.共地法:用一根线或屏蔽线连接所有485设备的GND地,避免所有设备之间产生影响通信的电位差。
2.端接电阻法:在最后一个485器件的485+和485-上并联120欧姆的端接电阻,提高通信质量。
3.如果通信距离过长,超过500m建议使用直放站或485HUB解决。如果负载太多,一条总线上超过30个,建议使用485HUB解决。
+场景应用-Modbus物联网云平台
Modbus物联网云平台在设备和用户之间建立开箱即用的云平台和云应用,实现数据采集、实时控制、数据可视化和开放API,构建灵活强大的物联网应用。Modbus云平台支持接入市场上99%以上的Modbus设备,如工业仪表、工业传感器、Modbus PLC设备等。用户可以在任何地方远程访问Modbus设备,对天猫精灵和萧艾学生进行实时数据采集和监控、远程控制、智能音频系统、语音控制、诊断、通信和调试。
Modbus物联网云平台是一个开放的物联网云平台。用户只需一步一步完成注册,即可免费使用Modbus物联网云平台。支持PC、Android、iOS多平台终端。用户可以在任何地方远程访问串行设备,实时采集和监控远程设备的数据,进行远程控制、诊断、通信和调试。Modbus物联网云平台支持微信连接,用户可以借助手机上的微信微信官方账号,远程查看设备的运行状态、通信数据和报警信息,实现随时随地轻松控制,方便快捷。
总结
总的来说,简单是Modbus如此受欢迎的主要原因。检查消息是Modbus如此流行的另一个原因。CRC和LRC校验意味着校验传输错误的准确率达到99%。总的来说,Modbus是一种用于工业控制的协议,具有免费使用、易操作、易修改三大特点,得到了广泛的应用。
该协议支持传统的RS-232、RS-485、RS-422和以太网设备。许多工业设备,包括PLC、DCS、智能仪表和变频器,都采用Modbus协议作为它们的通信标准。有了它,不同厂家生产的控制设备可以连接成一个工业网络进行集中监控。
你还想知道什么?请给我留言!关注小咖的技术加持,学习技术增加加持!请帮忙点赞和分享,你的支持是我们最大的动力!
本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://51itzy.com/25388.html