Modicon 公司首次推出了Modbus協議,Modbus RTU和Modbus ASCII誕生于此。后來施耐德電氣在1997年推出了ModbusTCP協議。2004年,中國國家標準委員會正式把Modbus作為了國家標準,開啟了Modbus為中國工業通信做貢獻的時代。
通過此協議,控制器相互之間、控制器經由網絡和其它設備之間可以通信。Modbus協議具有標準、開放,可以支持多種電氣接口,數據幀格式簡單緊湊,數據傳輸量大、實時性好等特點,在工業控制系統中得到了廣泛的應用,已經成為通用工業標準。深入分析Modbus協議實現原理和其安全性對提高工控系統安全性有著重要的現實意義。Modbus RTU和Modbus ASCII主要用于串行通信領域,而Modbus TCP則常用于以太網通信。現在,Modbus已經成為工業領域通信協議標準,并且現在是工業電子設備之間相當常用的連接方式。

Modbus使用一種簡單的Master and Slave主從協議(客戶機/服務器協議)進行通信。客戶機作為主站,向服務器發送請求;服務器(從站)接到請求后,對請求進行分析并作出應答。其中使用的通信幀被稱為應用數據單元(Application Data Unit,ADU),它包括通信地址段、功能代碼段、數據段和校驗段。
基于串口的Modbus-RTU 數據按照標準串口協議進行編碼,是使用最廣泛的一種Modbus協議,采用CRC-16_Modbus校驗算法。
基于串口的Modbus-ASCII 所有數據都是ASCII格式,一個字節的原始數據需要兩個字符來表示,效率低,采用LRC校驗算法。
基于網口的Modbus-TCP Modbus-TCP基于TCP/IP協議,占用502端口,數據幀主要包括兩部分:MBAP(報文頭)+PDU(幀結構),數據塊與串行鏈路是一致的。
所以當我們提及Modbus協議時,要確定是哪種模式:RTU、ASCII或TCP,3種模式區別還是很大的。

ModBus RTU和ModBus TCP的主要區別在于ModBus RTU使用菊花鏈網絡,因此可以通過兩條線連接整個網絡,并通過為每個節點提供唯一的地址來與每個設備進行通信。ModBus TCP使用星形網絡,其中每個節點都有一條稱為Cat 5或Cat 6的單獨電纜。它們可以使用路由器連接。它們還帶有網絡上每個節點唯一的個人地址。地址可以是 1 到 255,這意味著理論上,我們可以在同一網絡上擁有 254 臺設備。也可以通過互聯網使用ModBus TCP。
在ModBus RTU和ModBus ASCII中,通信是通過串行接口進行的,這意味著它們只能在較短的距離內進行通信。因此,如果需要在較遠的距離進行通信,則需要使用ModBus TCP。另一方面,ModBus RTU和ModBus ASCII使用二進制和ASCII碼分別進行數據傳輸,因此它們的傳輸效率和可讀性存在差異。在選擇ModBus通信方式時,需要考慮多種因素,包括通信距離、傳輸效率和可讀性。對于短距離通信,ModBus RTU和ModBus ASCII均可作為選擇。如果需要更高的傳輸效率,則可以選擇ModBus RTU;如果需要更好的可讀性,則可以選擇ModBus ASCII。對于遠距離通信,則只能使用ModBus TCP。