

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