工业通讯应用中主流的常用协议Modbus协议

描述

智联物联技术分享,本期为大家介绍工业通讯常用的主流协议Modbus协议。

Modbus协议的前身叫做Mod协议,常被用于Modicon公司的PLC控制器中,后来Modicon被Schneider收购后随之改名为我们如今所熟悉的modbus协议,现如今广泛应用在物联网的控制器、HMI和传感器中与其他工控终端设备进行通讯,Modbus已然成为了工业通讯应用中主流的常用协议。

通过Modbus协议可以使控制器之间经由网络(例如以太网)和其他设备之间进行通信。Modbus协议还可以让不同品牌的控制设备进行组网,方便运营商对设备进行集中监控管理。

Modbus协议定义了控制器能认识使用的消息结构,描述控制器对其它设备的请求访问过程,对来自其它设备的请求进行回应,以及侦测错误数据并记录。Modbus协议制定了内容的公共格式与消息域格局。

MODBUSModbus协议

Modbus协议功能码

Modbus协议的功能码用于表示信息帧的功能,03、04、06、16最为常用。

功能码03的名称是读取保持寄存器内容,在一个或多个保持寄存器中取得当前的二进制值。

功能码04的名称是读取输入寄存器内容,在一个或多个输入寄存器中取得当前的二进制值。

功能码06的名称是预置单寄存器,把具体二进制值装入一个保持寄存器。

功能码16的名称是预置多个寄存器,把具体的二进制值装入一串连续的保持寄存器。

MODBUSModbus协议功能码

Modbus协议03、04功能码

03读取保持寄存器内容和04读取输入寄存器内容两者之间到底存在着哪些功能差异呢?Modbus协议被常用于PLC通信的输入输出数字量信号以及模拟量信号。Modbus协议的04功能码输入寄存器就是从模拟量信号输入引申出来的,即输入寄存器只能从模拟量信号输入端改变寄存器,而主机则不能通过下发指令改变输入寄存器的数据;而保持寄存器则是用于输出模拟量信号的,主机是可以改变寄存器数据,对于主机来说输入寄存器是只读的,而保持寄存器是可以读写的。当主机用06、16功能码的指令去预置输入寄存器的时候,设备会返回一个代码为0x81的错误代码,即企图写只读寄存器。

 

MODBUSModbus协议

Modbus协议的TCP、RTU、ASCII

Modbus RTU和Modbus ASCII协议基于串口通讯,如RS232或RS485等工业串口进行数据透传。

Modbus TCP协议则基于以太网通信,如双绞线、光纤、无线上传送。

常见应用在PLC可编程逻辑控制器之间的通信中,由于PLC的开放性,可应用于现场设备、智能终端、仪器仪表中。

Modbus协议的映射地址

在使用Modbus协议经常会遇到3xxxx,4xxxx的寄存器数据类型,Modbus映射地址都是从0开始的,比如30009代表的是输入寄存器,这样的映射地址格式常用于PLC系统与组态软件中。

MODBUSModbus协议映射地址
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分