Modbus协议是什么 Modbus TCP/IP协议特点介绍
MODBUS/TCP是简单的(de)、中立(li)厂商的(de)用于(yu)管(guan)理和控制自(zi)动化设备的(de)MODBUS系列(lie)通(tong)讯协议的派生产品。显(xian)而易(yi)见,它覆盖了使用(yong)TCP/IP协议的 “Intranet”和“Internet”环(huan)境中MODBUS报文的用(yong)(yong)途。协议的最通用(yong)(yong)用(yong)(yong)途是为(wei)诸如PLC’s,I/O模块,以及(ji)连接其它简(jian)单域(yu)总线或 I/O模块的网(wang)关服(fu)务(wu)的。
MODBUS/TCP协议是作为一种(zhong)(实际的)自(zi)动(dong)化标准发行的。Modbus协议(yi)是一种已广泛应用于当今工业控制领(ling)域的通(tong)(tong)用通(tong)(tong)讯协议(yi)。通(tong)(tong)过(guo)此协议(yi),控制器相互之间、或控制器经由网络(luo)(如以(yi)太网)可(ke)以和其它(ta)设备(bei)之间进行通信(xin)。
Modbus协(xie)议(yi)使用(yong)的是主(zhu)从通(tong)讯(xun)技术,即由主(zhu)设备(bei)(bei)主(zhu)动查(cha)询(xun)和操(cao)作(zuo)从设备(bei)(bei)。一般将(jiang)主(zhu)控设备(bei)(bei)方所使用(yong)的协(xie)议(yi)称为Modbus Master,从设备方使用(yong)的协议称为Modbus Slave。典(dian)型的主设备包括工控机和工业控制器等;典(dian)型的从设备(bei)如PLC可编程控制(zhi)器等。Modbus通讯物理接口(kou)可以选用串口(kou)(包括(kuo)RS232和RS485),也可以(yi)(yi)选(xuan)择以(yi)(yi)太网口。其(qi)通信遵循以(yi)(yi)下的过程:
● 主设备向从设备发(fa)送请求
● 从设(she)(she)备(bei)分析并处(chu)理主(zhu)设(she)(she)备(bei)的(de)请求(qiu),然后向主(zhu)设(she)(she)备(bei)发送(song)结果
● 如果出(chu)现任何差错,从设备(bei)将返回一个异常功能码
Modbus协议具有以下几个特点:
(1)标准、开放,用(yong)户可(ke)以免费、放心地使用(yong)Modbus协议,不需要交纳许可证费,也不会侵犯(fan)知识产权。目前,支(zhi)持Modbus的厂家超过(guo)400家,支持Modbus的产品超过600种。
(2)Modbus可(ke)以支持多种电(dian)气接口,如RS-232、RS-485等,还(hai)可以在各种(zhong)介质上传送,如双(shuang)绞线(xian)、光纤、无线(xian)等。
(3)Modbus的帧(zhen)格式简(jian)单、紧凑,通俗(su)易懂。用户(hu)使用容(rong)易,厂(chang)商开发简(jian)单。
MODBUS支(zhi)持的(de)部分(fen)功能代码:
以十进制(zhi)表示(shi)。功能码可以分为(wei)位操(cao)作和字操(cao)作两类(lei)。位操(cao)作的最小单位为(wei)BIT,字(zi)操(cao)作的最小单位为两个字(zi)节(jie)。
【位操作指令】 读线圈状(zhuang)态01H,读(du)(离散)输入(ru)状态(tai)02H,写单个线圈06H和(he)写(xie)多个线圈0FH。
【字(zi)操作指令】 读(du)保持寄存(cun)器03H,写单个寄存器06H,写多个保持寄存(cun)器10H。
MODBUS报文模型
这里要明白两(liang)个缩略(lve)词:“ADU”“PDU”
ADU: 应(ying)用数据单元
PDU: 协议数据(ju)单(dan)元
Modbus协议(yi)两种传输方式
常(chang)用的MODBUS通讯规约有两种,一种是MODBUS ASCII,一(yi)种是MODBUS RTU。每(mei)个设备必须(xu)都有相同的传输模式。所有设备都支持RTU模(mo)式,ASCII传输模式(shi)是选项(xiang)。
(1)ASCII传输方式
Modbus串行链路(lu)的设备被配置(zhi)为(wei)使用ASCII模(mo)式通信时(shi),报文中(zhong)的每(mei)8位字节(jie)以(yi)两个ASCII字(zi)符发(fa)送。例:字(zi)节(jie)0X5B会被编码为两个字符:0x35和0x42进行传送(ASCII编(bian)码0x35="5",0x42="B"),这(zhei)样(yang)传输效(xiao)率会(hui)降低。
在ASCII模式,报(bao)文(wen)用(yong)特殊(shu)的字符区分帧起始(shi)和帧结束(shu)。一个报(bao)文(wen)必须(xu)以一个‘冒号’(:)(ASCII十六(liu)进制3A)起始(shi),以(yi)‘回车-换行’(CRLF)对(ASCII十六进制0D和0A)结束。设(she)备(bei)连续的监视总线上的‘冒号’字(zi)符。当收(shou)到这个字(zi)符后(hou),每个设备解码(ma)后(hou)续的字(zi)符一直到帧(zhen)结束。报文中字(zi)符间(jian)的时间(jian)间(jian)隔可以达一秒。如果有更大(da)的间(jian)隔,则接受(shou)设备认(ren)为发生了(le)错误。
(2)RTU传输(shu)方(fang)式
当设备使用RTU(RemoteTerminalUnit)模式在(zai)Modbus串(chuan)行(xing)链路通信,报文中每个8位字节(jie)含有(you)两个(ge)4位十六进制字符。这(zhei)种模(mo)式的(de)主要优(you)点是较高的(de)数据密度,在相同的(de)波(bo)特率(lv)下比ASCII模(mo)式有更高(gao)的传输效率。每个报文必须以(yi)连续(xu)的字符流传送。