

Modbus的前世
我們平時在日常生活中進(jìn)行交流主要是通過聽和說來完成,這里主要是通過語言來傳達(dá)信息。在說者和聽者之間是遵循著一些約定成俗的“約定”,因此雙方是能夠聽懂對方所講的內(nèi)容,就好比上海人說上海話,浙江人福建人說閩南語,各地區(qū)有不同的方言,而我們?nèi)珖y(tǒng)一的標(biāo)準(zhǔn)語言是普通話,不管哪里人,說普通話大家都能很好的溝通,要是你用方言跟別人講,好好的說話,還可能意思理解不對,要擰巴打起來。下面我們要說的Modbus通信協(xié)議其實它也是一種“普通話”,這個“約定”其實就是一種通信協(xié)議,這個通信協(xié)議是由當(dāng)時莫迪康(Modicon)公司于1979年開發(fā)的,現(xiàn)在這個公司已經(jīng)被施耐德( Schneider)電氣公司收購了。Modbus通信協(xié)議剛開發(fā)之初就是專門為可編程控制器(PLC)通訊準(zhǔn)備的,到目前為止它已經(jīng)成為現(xiàn)代工業(yè)控制領(lǐng)域的通訊標(biāo)準(zhǔn),它已經(jīng)廣泛應(yīng)用在工控設(shè)備與設(shè)備之間的通訊上了。
Modbus的優(yōu)點(diǎn)
Modbus之所以被廣泛使用,我認(rèn)為是由于它具有以下幾個方面的優(yōu)點(diǎn)。首先是Modbus通信協(xié)議標(biāo)準(zhǔn)是一個開放性,免費(fèi)的,沒有版權(quán)要求,不需要交納許可證費(fèi),這是它被廣泛使用的主要原因之一;其次是它支持多種物理通訊接口,比如我們常用的RS232接口、RS485接口以及基于工業(yè)以太網(wǎng)的TCP/IP接口;再次是可在各種介質(zhì)上傳送,如雙絞線、光纖、無線,如果我們使用處理速度快的芯片時,在理論上可以掛接255個從站;最后是Modbus幀格式簡單格式非常簡單,用戶使用容易,廠商開發(fā)簡單。這也是Modbus通信協(xié)議所給定的,如下圖所示。
Modbus的特點(diǎn)
Modbus是一個串行通信協(xié)議,在架構(gòu)組成上它是一個主/從架構(gòu),主站可以根據(jù)站地址向各個從站發(fā)出命令,從站也可以向主站返回命令,但是從站之間是不能相互傳達(dá)命令的,只有通過主站才能相互傳達(dá)命令,這是Modbus通信協(xié)議的規(guī)定。因此在Modbus通信中,只能由主機(jī)發(fā)出請求從機(jī)進(jìn)行應(yīng)答,而不能由從機(jī)主動發(fā)起通訊,從機(jī)之間也是不能互相發(fā)起通信的。
Modbus的分類及報文
Modbus是一種基于串口通信的方式,它可以分為Modbus RTU 和Modbus ASCII兩類。一般來說Modbus RTU比較常用,對于支持Modbus ASCII通信方式的設(shè)備也一定支持Modbus RTU通信模式。另外現(xiàn)在使用基于以太網(wǎng)的Modbus TCP也使用非常廣泛了,比如我在工作中使用的西門子和施耐德的工控產(chǎn)品都是采用了Modbus TCP通信模式。
關(guān)于Modbus的報文是指在Modbus的通信協(xié)議中幾個約定好內(nèi)容的字節(jié),比如一號設(shè)備向二號設(shè)備發(fā)送的8個字節(jié),二號設(shè)備接收到了這8個字節(jié)后,它就會根據(jù)Modbus通信協(xié)議約定的功能去執(zhí)行相應(yīng)的動作。而這8個字節(jié)就是我們所說的報文了。一般我們可以用串口調(diào)試助手就可以發(fā)送Modbus報文了。