帶你認識物聯網 Modbus 通訊協議 -- 補完計畫(二)

更新於 2024/09/19閱讀時間約 4 分鐘
Modbus Protocol

Modbus Protocol

在上一次的物聯網 Modbus 補完計畫(一)中,我們提到了 RTU 與 ASCII 兩種傳輸模式差異之處。接下來我們要繼續看第二個部分關於 Modbus TCP 的確認機制。

通訊就是不可靠

Line 通訊軟體有個神奇的「已讀」功能,代表傳送出去的訊息已經「順利送達」給對方且「已被讀取」,安全抵達與可被確認就是達成可靠通訊的要素。其他不具備「已讀」功能的通訊軟體,訊息送出後就會讓人在心裡一直產生「不知道對方有沒有收到」的不確定性,這種不確定性就是「很不可靠的感覺」。按照我們現在的 Serial 或是網路通訊架構來看,就會了解到通訊的不可靠不只是一種感覺而是一種必然會發生的現象,因為目前的通訊底層都是透過傳輸線的電位變化或是利用無線電磁波來傳遞訊號,這些乘載資訊的物理訊號非常脆弱,很容易遭受各種訊號干擾導致要傳輸資料內容損壞或通訊失效。

Modbus 是比 Ethernet (區域網路) 更簡單的通訊架構,走的是 Master-Slave 模式。協議有規定所有通訊活動只能靠 Master 作為溝通橋樑。而 Master 處理方式就是不斷輪詢對底下的 Slave 裝置來取得資訊,這種「連環 call 」的方法也叫做 Polling by poll。另一方面也是因為協議規定 Slave 裝置們都不可以主動回應,所以 Slave 們在通訊過程中遇到看不懂的、壞掉的資料封包,能做的處理方式就是直接丟掉,從外面看 Slave 裝置的行為就跟「已讀不回」一樣毫無反應。我們能做的也只能等 Master 啟動下一輪輪詢才有機會確認結果(還是有可能已讀不回直到 Timeout),因此 Master 反而成為 Modbus 的通訊的瓶頸,所有的 Slave 裝置們都讓人感覺很不可靠。

TCP 是可靠通訊關鍵

通訊不可靠還包含 Ethernet,Ethernet 就是我們熟知的區域網路。區域網路的設計是會盡力幫我們把資料封包往目的地送,但不保證一定能送到對方手上。而且網路的資料封包也會受各種訊號干擾,頻寬塞滿傳不出去,網路設備超載被丟包甚在網路上資料碰撞導致損毀的狀況,在雙向多工的網路通訊下,上述的各種不可靠的狀況隨時都在發生。既然網路通訊表現這麼糟糕,為什麼我們還是可以收到完整的檔案或圖片呢?這就得歸功於 TCP,Transmission Control Protocol 傳輸控制協定。TCP 是一個坐落在 OSI 網路七層架構的第四層的重要通訊協定,它的超能力是把不可靠網路通訊通訊變成絕對可靠。 (關於網路 OSI 7 層架構後續再找時間跟大家分享)。

由於 TCP 具備把通訊變可靠的超能力,只要是架構在 TCP 之上的通訊服務就都能享受到這個機制,當然也包含了 Modbus (over) TCP 。Modbus 既然要享受 TCP 帶來的好處,當然就要按照 TCP 的規矩來,把要傳輸的資料 PDU 封裝成 Modbus TCP 版本的 ADU (= MBAP + PDU) 的格式。

Modbus ADU

Modbus ADU

當 Client 端走 Modbus TCP 協議發送指令給 Server 端時候,就會觸發 Server 端的 TCP 的檢查機制,TCP 會把 MBAP header 裡的關鍵欄位全部檢查一遍,包含用來識別一收一送的 Transaction id , 代表 Modbus 通訊協議的 Protocol id 以及對接 Serial 的時候所需要的 Unit id,Unit id 也是 Slave 裝置 id。檢查的重點放在資料格式,確認格式沒有問題後就會把封包收下來並且傳回一個 ACK 訊號給 Client 端,被檢查出有問題後也會主動傳回一個 NACK 回去給 Client 端。反過來也一樣,當 Server 端處理完 Client 的需求後,要回覆給 Client 端訊息後也會觸發檢查機制,因此原本已讀不回的 Modbus 通訊模式變成了有問必答 Modbus TCP,從而保證了 Client 與 Server 兩邊資料的格式正確性。

Confirmation, Indication

Confirmation, Indication

另外,TCP 的保證機制並不能解決網路封包碰撞損毀、被丟包等問題,撞毀的資料一樣會被丟棄,TCP 要求重送直到收到正確的資料為止。

小結論

以上就是我這次要跟你分享的 Modbus TCP 確認機制。Modbus TCP 的出現改善了原本的 Master-Slave 這種低效率的通訊模式,升級成為 Client-Server 雙向多工的機制,有了 TCP 加持資料傳輸也變得非常可靠,上層使用者再也不用擔心資料會有收錯或收不到的問題了。可以說有了 Modbus TCP 的物聯網,才是真.物聯網的 Modbus。

avatar-img
14會員
61內容數
WarrenLo's 軟體設計武功祕笈
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Warren Lo的沙龍 的其他內容
當 Modbus 通訊模式可以選 RTU 或 ASCII 這兩種傳輸模式,不過因為兩者的運作機制不一樣,所以通訊時只能選擇其中一種來使用且傳輸端與接收端都必須使用相同的傳輸模式,才不會發生數據解讀錯誤變成一堆亂碼、兩邊雞同鴨講的狀況。關於這兩種傳輸模式的差異之處,主要有三點
我們在上一篇文章聊到了測試左移所需的 8 大能力中的前面 4 個,包含學習研究、反應回饋、作戰計畫、追溯管理的能力,這四個能力也是我們平常工作與生活上遇到困難時的解決問題的核心能力,建議還沒看過第一篇的朋友,可以先回第一篇了解一下。那麼接下來我們要就繼續聊聊測試左移的另外四個能力。
當我們有往左邊看並且嘗試為每一個開發階段設置一個檢查站來把關的想法時,就有了思考方向。原則上所有設計階段的驗證都要通過才能進入量產,因此只要中間有卡關,就不能放行進入下一個階段。
Modbus TCP 可視為一種 Modbus 分支,是跑在實體通訊介面 TCP/IP 上的 Modbus 通訊協議,TCP/IP 就是我們熟悉的網路。現代的網路讓我們的電腦、手機與其他可以上網等裝置連上互聯網,每一個網路上的裝置都被分配一個不同的 IP 位址,這是網路上用來識別每一台裝置的機制
以前當 RD 在開發系統產品的時候需要控制很多硬體設備,韌體工程師有說硬體控制可以走自定義的通訊格式,需要搭配一張指令對照表,按表組成命令下給終端設備,設備們接收到正確的指令後才會做出正確的回應(對於不認識的指令,設備會只會已讀不回!)
Modbus 是一種定義在通訊應用層的協議,會根據資料跑在不同的實體介面上而有不同的「版本」,例如:應用在 RS232/RS485 串列埠介面的就是 Modbus RTU/ASCII,應用在 TCP/IP 的就是 Modbus TCP 也 SCADA 的主要應用協議。
當 Modbus 通訊模式可以選 RTU 或 ASCII 這兩種傳輸模式,不過因為兩者的運作機制不一樣,所以通訊時只能選擇其中一種來使用且傳輸端與接收端都必須使用相同的傳輸模式,才不會發生數據解讀錯誤變成一堆亂碼、兩邊雞同鴨講的狀況。關於這兩種傳輸模式的差異之處,主要有三點
我們在上一篇文章聊到了測試左移所需的 8 大能力中的前面 4 個,包含學習研究、反應回饋、作戰計畫、追溯管理的能力,這四個能力也是我們平常工作與生活上遇到困難時的解決問題的核心能力,建議還沒看過第一篇的朋友,可以先回第一篇了解一下。那麼接下來我們要就繼續聊聊測試左移的另外四個能力。
當我們有往左邊看並且嘗試為每一個開發階段設置一個檢查站來把關的想法時,就有了思考方向。原則上所有設計階段的驗證都要通過才能進入量產,因此只要中間有卡關,就不能放行進入下一個階段。
Modbus TCP 可視為一種 Modbus 分支,是跑在實體通訊介面 TCP/IP 上的 Modbus 通訊協議,TCP/IP 就是我們熟悉的網路。現代的網路讓我們的電腦、手機與其他可以上網等裝置連上互聯網,每一個網路上的裝置都被分配一個不同的 IP 位址,這是網路上用來識別每一台裝置的機制
以前當 RD 在開發系統產品的時候需要控制很多硬體設備,韌體工程師有說硬體控制可以走自定義的通訊格式,需要搭配一張指令對照表,按表組成命令下給終端設備,設備們接收到正確的指令後才會做出正確的回應(對於不認識的指令,設備會只會已讀不回!)
Modbus 是一種定義在通訊應用層的協議,會根據資料跑在不同的實體介面上而有不同的「版本」,例如:應用在 RS232/RS485 串列埠介面的就是 Modbus RTU/ASCII,應用在 TCP/IP 的就是 Modbus TCP 也 SCADA 的主要應用協議。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
UART 轉換完成的 Serial 訊號已經可以用來傳輸通訊了,那為什麼還要把 UART 轉出來的訊號再轉換成成其他的 Serial 介面,像是 RS232/RS485 再進行傳輸呢?原因是 UART 的 Serial 訊號傳輸的距離實在太短了
Thumbnail
Serial 通訊數據必須先在 UART 元件把 Parallel 轉成 Serial,EIA Driver 會把 Serial 轉成特定的 Serial 訊號。UART 數據轉換要考慮兩個關鍵點,如何讓資料從直行變橫列(躺平)的方法,還要考慮如何控制 Serial 訊號輸出
Thumbnail
聊到 Serial 通訊就一定會提到 COM Port,它是微軟定義的一個經典 Serial 通訊實作。COM Port 在筆電還不普及的年代可以很輕鬆在 PC(桌機)的主機板上找到有標示 COM1 或者 COM2 的通訊接口,這些就是最常見的 COM Port 通常搭載的都是 R232 的通訊規格
Thumbnail
問題來了,如果在一組 Master-Slave 在通訊過程中出現其他的裝置「插嘴」的狀況會怎麼樣?因為迴路只有一條,所以只要在同一個通訊迴路上同時有兩台裝置發出訊號,結果就是兩個資料封包互相對撞雙雙損毀…
Thumbnail
物聯網裝置跟電腦一樣處理資料過程仰賴記憶體,不同類型的資料必須放在不同的記憶體空間。RD 會按照功能需求去規劃這些數據儲存空間,就像設計師規劃客廳、廚房、衛浴與臥室等居住空間一樣。各個空間的規劃原則上不會允許重疊,如此才能確保不同資料間不會發生互相覆蓋導致記憶體錯誤發生。
Thumbnail
感謝謐時光心理諮商所及張力尤臨床心理師的邀請,至桃園市向各位心理師夥伴分享我在醫學中心從事失智症照護工作的相關經驗。
Thumbnail
Figma是一個主要用來設計網頁的矢量設計軟件,與Wordpress,Shopify, Webflow等不同,Figma做出來的並不是實際的網站,而是一個雛型(Prototype)。 那你或許會想:“為什麼不直接使用類似Wordpress的工具呢?’’ 試想想以下這一個情況: 你用Wordpress
Thumbnail
近期台灣各地區,可以看見夾娃娃機台再度如雨後春筍般出現。只是,這次除了不同於店面的完整度外,還有機台的內容物:是零食而不再是娃娃!
Thumbnail
從短篇文中教你認識會計之四大財務報表 在會計學當中,有固定之四大正式報表,分別為「資產負債表」、「綜合損益表」、「權益變動表」以及「現金流量表」,今天帶大家簡單認識會計當中的四大財務報表分別要帶給大家何種資訊價值。 資產負債表,又稱財務狀況表,從名字就可得知,其主要表達的資訊即一家公司在「某一時點」
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
UART 轉換完成的 Serial 訊號已經可以用來傳輸通訊了,那為什麼還要把 UART 轉出來的訊號再轉換成成其他的 Serial 介面,像是 RS232/RS485 再進行傳輸呢?原因是 UART 的 Serial 訊號傳輸的距離實在太短了
Thumbnail
Serial 通訊數據必須先在 UART 元件把 Parallel 轉成 Serial,EIA Driver 會把 Serial 轉成特定的 Serial 訊號。UART 數據轉換要考慮兩個關鍵點,如何讓資料從直行變橫列(躺平)的方法,還要考慮如何控制 Serial 訊號輸出
Thumbnail
聊到 Serial 通訊就一定會提到 COM Port,它是微軟定義的一個經典 Serial 通訊實作。COM Port 在筆電還不普及的年代可以很輕鬆在 PC(桌機)的主機板上找到有標示 COM1 或者 COM2 的通訊接口,這些就是最常見的 COM Port 通常搭載的都是 R232 的通訊規格
Thumbnail
問題來了,如果在一組 Master-Slave 在通訊過程中出現其他的裝置「插嘴」的狀況會怎麼樣?因為迴路只有一條,所以只要在同一個通訊迴路上同時有兩台裝置發出訊號,結果就是兩個資料封包互相對撞雙雙損毀…
Thumbnail
物聯網裝置跟電腦一樣處理資料過程仰賴記憶體,不同類型的資料必須放在不同的記憶體空間。RD 會按照功能需求去規劃這些數據儲存空間,就像設計師規劃客廳、廚房、衛浴與臥室等居住空間一樣。各個空間的規劃原則上不會允許重疊,如此才能確保不同資料間不會發生互相覆蓋導致記憶體錯誤發生。
Thumbnail
感謝謐時光心理諮商所及張力尤臨床心理師的邀請,至桃園市向各位心理師夥伴分享我在醫學中心從事失智症照護工作的相關經驗。
Thumbnail
Figma是一個主要用來設計網頁的矢量設計軟件,與Wordpress,Shopify, Webflow等不同,Figma做出來的並不是實際的網站,而是一個雛型(Prototype)。 那你或許會想:“為什麼不直接使用類似Wordpress的工具呢?’’ 試想想以下這一個情況: 你用Wordpress
Thumbnail
近期台灣各地區,可以看見夾娃娃機台再度如雨後春筍般出現。只是,這次除了不同於店面的完整度外,還有機台的內容物:是零食而不再是娃娃!
Thumbnail
從短篇文中教你認識會計之四大財務報表 在會計學當中,有固定之四大正式報表,分別為「資產負債表」、「綜合損益表」、「權益變動表」以及「現金流量表」,今天帶大家簡單認識會計當中的四大財務報表分別要帶給大家何種資訊價值。 資產負債表,又稱財務狀況表,從名字就可得知,其主要表達的資訊即一家公司在「某一時點」