智联物联技术分享,本期为大家介绍工业通讯常用的主流协议Modbus协议。
Modbus协议的前身叫做Mod协议,常被用于Modicon公司的PLC控制器中,后来Modicon被Schneider收购后随之改名为我们如今所熟悉的modbus协议,现如今广泛应用在物联网的控制器、HMI和传感器中与其他工控终端设备进行通讯,Modbus已然成为了工业通讯应用中主流的常用协议。
通过Modbus协议可以使控制器之间经由网络(例如以太网)和其他设备之间进行通信。Modbus协议还可以让不同品牌的控制设备进行组网,方便运营商对设备进行集中监控管理。
Modbus协议定义了控制器能认识使用的消息结构,描述控制器对其它设备的请求访问过程,对来自其它设备的请求进行回应,以及侦测错误数据并记录。Modbus协议制定了内容的公共格式与消息域格局。
Modbus协议Modbus协议功能码
Modbus协议的功能码用于表示信息帧的功能,03、04、06、16最为常用。
功能码03的名称是读取保持寄存器内容,在一个或多个保持寄存器中取得当前的二进制值。
功能码04的名称是读取输入寄存器内容,在一个或多个输入寄存器中取得当前的二进制值。
功能码06的名称是预置单寄存器,把具体二进制值装入一个保持寄存器。
功能码16的名称是预置多个寄存器,把具体的二进制值装入一串连续的保持寄存器。
Modbus协议功能码Modbus协议03、04功能码
03读取保持寄存器内容和04读取输入寄存器内容两者之间到底存在着哪些功能差异呢?Modbus协议被常用于PLC通信的输入输出数字量信号以及模拟量信号。Modbus协议的04功能码输入寄存器就是从模拟量信号输入引申出来的,即输入寄存器只能从模拟量信号输入端改变寄存器,而主机则不能通过下发指令改变输入寄存器的数据;而保持寄存器则是用于输出模拟量信号的,主机是可以改变寄存器数据,对于主机来说输入寄存器是只读的,而保持寄存器是可以读写的。当主机用06、16功能码的指令去预置输入寄存器的时候,设备会返回一个代码为0x81的错误代码,即企图写只读寄存器。
Modbus协议
Modbus协议的TCP、RTU、ASCII
Modbus RTU和Modbus ASCII协议基于串口通讯,如RS232或RS485等工业串口进行数据透传。
Modbus TCP协议则基于以太网通信,如双绞线、光纤、无线上传送。
常见应用在PLC可编程逻辑控制器之间的通信中,由于PLC的开放性,可应用于现场设备、智能终端、仪器仪表中。
Modbus协议的映射地址
在使用Modbus协议经常会遇到3xxxx,4xxxx的寄存器数据类型,Modbus映射地址都是从0开始的,比如30009代表的是输入寄存器,这样的映射地址格式常用于PLC系统与组态软件中。
Modbus协议映射地址全部0条评论
快来发表一下你的评论吧 !