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

閱讀時間約 7 分鐘
Modbus Protocol

Modbus Protocol

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

經過了兩次的補完計畫,不知道你是否又對物聯網 Modbus 協議有更進一步了解呢? 接下來我們繼續聊聊要補完計畫的第三部分。如果你有機會翻閱官網的 Modbus 協議白皮書的話,在第 6 頁的地方有提到 Modbus 有 4 個 Modbus 資料模型 (Data Model) ,在它的說明欄位告訴我們跟 I/O 系統與應用有關,然後,然後就沒有了!包含我自己,我相信第一次看到書上這段落的朋友也是一頭霧水?!這 4 個資料模型究竟要表達什麼意思? 所謂的對應 IO 系統具體指的又是甚麼?這次我們就來接著來說個明白吧。

I/O 就是輸入與輸出

所謂物聯網的 I/O 模組指的是把 Input/Output (輸入/輸出) 的數據通道集成起來的功能模塊,這些數據通道就是物聯網裝置們與世界溝通的介面。具備 IO 能力的物聯網裝置還蠻多元的,從構造相對簡單的 IO 卡、功能強一點 PLC (可程式化邏輯控制單元),強調高速通訊能力的 Controller (控制器) 以及強調平台化擴充能力強大 IPC(工業電腦) 等等… 。它們的硬體底層設計都與 x86 的電腦架構類似,有負責運算的晶片,負責存儲資料的記憶體。

教科書上習慣把電腦與人腦相互類比,這裡也稍微借用一下這個觀念,不妨暫時把 IO 模組想像成我們的手腳、眼耳鼻舌。我們來想一下當想要拿起一個桌上的蘋果時會發生甚麼事?首先,眼睛會接收到桌上的蘋果反射過來的光線(訊號輸入),大腦判斷並記住蘋果的位置、大小、距離等資訊後(CPU 計算 + 記憶體),接著開始伸手拿蘋果(訊號輸出)。物聯網裝置的 IO 模組運作慨念就像我們的手眼一樣,都是透過先訊號輸入,再用計算器計算,最後按照計算結果執行訊號輸出,我們可以肯定物聯網裝置就是虛擬世界與實體世界互動、也是資訊數位化的關鍵。

Data Model 本質是記憶體

物聯網裝置跟電腦一樣處理資料過程仰賴記憶體,不同類型的資料必須放在不同的記憶體空間。記憶體空間是一種抽象化的概念,就暫時把它視為類似於我們 building,一開始裡面都是連續的尚未分隔的空間,有點像剛蓋好的毛胚屋。RD 會按照功能需求去規劃這些數據儲存空間,就像設計師規劃客廳、廚房、衛浴與臥室等居住空間一樣。各個空間的規劃原則上不會允許重疊,如此才能確保不同資料間不會發生互相覆蓋導致記憶體錯誤發生。按照 Modbus 白皮書的說明,Data Model 總共有 4 類,分別是 Discretes Inputs(讀取輸入), Coils(讀寫線圈), Input Registers(讀取輸入暫存器) 跟 Holding Registers(讀寫持有暫存器),按照數據處理的規模大小還可以區分為兩組 bit(位元)跟 Word(字),前面兩種負責bit 類型的資料,後面兩個負責字(Word, 2bytes) 等級以上的資料。

Modbus 4 Data Models

Modbus 4 Data Models

Discretes Inputs(讀取輸入)

Discretes Inputs 中文翻譯叫做讀取輸入,它只能處理 0 或 1 這類只有兩種資料變化數據並且要求資料輸入後只能「唯讀」,只能看不能改。所謂的兩種狀態的資料類型指的是 0 或 1,“有”或“沒有”,“開”與“關”等。在 DIgital IO 卡或是在 PLC 上都能看到處理這種訊號的通道叫做 Digital Input (DI),它會偵測輸入來源的電壓變化轉換成數值 (0 或 1) 寫入定義好的 Discretes Inputs 的記憶體區間裡面,接著上層應用系統就透過通訊下指令來取得資料。

電腦很會處理這種只要 1 個 bit 就能處理兩種狀態的資料,為了提高存儲效率還會把 8 個連續的 Discretes Input bits 集合成 1 個 byte 處理,對於 Digital IO 卡產品而言,本來 8 個 DI 通道 (DI0, DI1,… DI7),需要經過 8 次的問答才能得到,現在只要經過一次通訊就能拿回 8 個通道的數據,有效節省傳輸成本。

Coils(讀寫線圈)

Coil 中文翻譯叫做線圈,原意是電線繞圈後的電子元件,具體的可以先簡單想成就像牆壁上的一個電燈開關。在 Digital IO 卡上看到的 DO (Digital Output) 或是 PLC 上的 Y 點位都是,這些 DO 通道可以接受上層系統的指令來決定自己的開關狀態。 Coils 也是處理 1 個 bit 的資料型態與 Discretes Inputs 的差別是 Coils 的數值是可以被讀寫的,上層系統可以按照需求來改寫 DO 的對應的 Coils 數值。假設我們在某一張 Digital IO 卡的第一個 DO 通道上並接了一個 LED 電泡,只要對所在的記憶體位址寫入 1 或 0 就能打開裡面的繼電器開關,做到遠程控制電燈開關的效果了。

Input Registers (讀取輸入暫存器)

在計算機裡的 Registers 就是暫存器。Input 的意思跟前面的 Discretes Input 一樣,都具備「唯讀輸入」意思。相對 Discretes Input 跟 Coil 是處理只有兩種型態的資料,Input Registers 跟 Output registers 就可以運用在類比 Analog 輸入與輸出的資料處理上。類比的訊號例如自然界的光線、溫度、壓力、電波等電腦無法直接處理,必須量測到還要經過取樣才能進來電腦裡,產品的 Input Registers 大小會影響到要存儲的數據量與精度,在 IO 卡上或 PLC 上負責接收類比訊號的通道是 Analog Input (AI)。另外,由於 Input register 具備唯讀特性,所以也會被廠商設計用來存放產品資訊,例如產品的名稱、韌體版本、出廠日期等基本資訊。

Holding Registers (讀寫持有暫存器)

看到這裡你大概也猜到 Holding register 的用途了,跟 Input Register 類似可以處理 Analog Output 是一塊可以讀寫記憶體空間。類比訊號輸出的過程與訊號上述的類比訊號輸入相反,必須提供要輸出類比訊號的特徵給裝置的 Holding Register 裏面,例如電壓範圍、頻率等。負責數位轉類比的元件看到後就會知道要如何盡可能地還原出我們想要的類比訊號。為什麼會說盡可能?因為連續的訊號對數位裝置來說可以被視為解析度無限大的訊號,數位訊號都是取樣過跟原始的類比訊號相比永遠會有落差,所以在類比訊號重建的時候就得靠演算技術來"猜測"兩點之間的樣子。一斑而言取樣率越高、算法越好輸出的類比訊號自然就會更漂亮,比較不會有刺刺的感覺。

Signal Transformation, data source

Signal Transformation, data source

小結論

簡單來說,在 Modbus 協議規範的 4 個 Data Model 都是 4 種不同用途的記憶體暫存器,都是物聯網裝置與上層系統的數據緩衝區(Buffer)。而 Modbus 協會不能把話說死,只能白皮書給出的是一個設計指導原則讓廠商來 follow,所以並沒有嚴格規定一定要在哪個記憶體位置放置哪一種資料,讓廠商們按照自己的產品需求規劃暫存器的記憶體空間,所以廠商就算要把 1 bit 的資料放到 1 byte 裡面來處理是沒問題。對於我們使用者來說,只要能確定知道自己想讀寫的數據放在哪個暫存器位址就可以了。


12會員
60Content count
WarrenLo's 軟體設計武功祕笈
留言0
查看全部
發表第一個留言支持創作者!
Warren Lo的沙龍 的其他內容
Modbus 是比 Ethernet 更簡單的通訊架構,走的是 Master-Slave 模式。協議規定 Slave 裝置們都不可以主動回應,所以 Slave 們在通訊過程中遇到看不懂的、壞掉的資料封包,能做的處理方式就是直接丟掉,從外面看 Slave 裝置的行為就跟「已讀不回」一樣毫無反應
當 Modbus 通訊模式可以選 RTU 或 ASCII 這兩種傳輸模式,不過因為兩者的運作機制不一樣,所以通訊時只能選擇其中一種來使用且傳輸端與接收端都必須使用相同的傳輸模式,才不會發生數據解讀錯誤變成一堆亂碼、兩邊雞同鴨講的狀況。關於這兩種傳輸模式的差異之處,主要有三點
我們在上一篇文章聊到了測試左移所需的 8 大能力中的前面 4 個,包含學習研究、反應回饋、作戰計畫、追溯管理的能力,這四個能力也是我們平常工作與生活上遇到困難時的解決問題的核心能力,建議還沒看過第一篇的朋友,可以先回第一篇了解一下。那麼接下來我們要就繼續聊聊測試左移的另外四個能力。
當我們有往左邊看並且嘗試為每一個開發階段設置一個檢查站來把關的想法時,就有了思考方向。原則上所有設計階段的驗證都要通過才能進入量產,因此只要中間有卡關,就不能放行進入下一個階段。
Modbus TCP 可視為一種 Modbus 分支,是跑在實體通訊介面 TCP/IP 上的 Modbus 通訊協議,TCP/IP 就是我們熟悉的網路。現代的網路讓我們的電腦、手機與其他可以上網等裝置連上互聯網,每一個網路上的裝置都被分配一個不同的 IP 位址,這是網路上用來識別每一台裝置的機制
以前當 RD 在開發系統產品的時候需要控制很多硬體設備,韌體工程師有說硬體控制可以走自定義的通訊格式,需要搭配一張指令對照表,按表組成命令下給終端設備,設備們接收到正確的指令後才會做出正確的回應(對於不認識的指令,設備會只會已讀不回!)
Modbus 是比 Ethernet 更簡單的通訊架構,走的是 Master-Slave 模式。協議規定 Slave 裝置們都不可以主動回應,所以 Slave 們在通訊過程中遇到看不懂的、壞掉的資料封包,能做的處理方式就是直接丟掉,從外面看 Slave 裝置的行為就跟「已讀不回」一樣毫無反應
當 Modbus 通訊模式可以選 RTU 或 ASCII 這兩種傳輸模式,不過因為兩者的運作機制不一樣,所以通訊時只能選擇其中一種來使用且傳輸端與接收端都必須使用相同的傳輸模式,才不會發生數據解讀錯誤變成一堆亂碼、兩邊雞同鴨講的狀況。關於這兩種傳輸模式的差異之處,主要有三點
我們在上一篇文章聊到了測試左移所需的 8 大能力中的前面 4 個,包含學習研究、反應回饋、作戰計畫、追溯管理的能力,這四個能力也是我們平常工作與生活上遇到困難時的解決問題的核心能力,建議還沒看過第一篇的朋友,可以先回第一篇了解一下。那麼接下來我們要就繼續聊聊測試左移的另外四個能力。
當我們有往左邊看並且嘗試為每一個開發階段設置一個檢查站來把關的想法時,就有了思考方向。原則上所有設計階段的驗證都要通過才能進入量產,因此只要中間有卡關,就不能放行進入下一個階段。
Modbus TCP 可視為一種 Modbus 分支,是跑在實體通訊介面 TCP/IP 上的 Modbus 通訊協議,TCP/IP 就是我們熟悉的網路。現代的網路讓我們的電腦、手機與其他可以上網等裝置連上互聯網,每一個網路上的裝置都被分配一個不同的 IP 位址,這是網路上用來識別每一台裝置的機制
以前當 RD 在開發系統產品的時候需要控制很多硬體設備,韌體工程師有說硬體控制可以走自定義的通訊格式,需要搭配一張指令對照表,按表組成命令下給終端設備,設備們接收到正確的指令後才會做出正確的回應(對於不認識的指令,設備會只會已讀不回!)
你可能也想看
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
感謝謐時光心理諮商所及張力尤臨床心理師的邀請,至桃園市向各位心理師夥伴分享我在醫學中心從事失智症照護工作的相關經驗。
Thumbnail
Figma是一個主要用來設計網頁的矢量設計軟件,與Wordpress,Shopify, Webflow等不同,Figma做出來的並不是實際的網站,而是一個雛型(Prototype)。 那你或許會想:“為什麼不直接使用類似Wordpress的工具呢?’’ 試想想以下這一個情況: 你用Wordpress
Thumbnail
近期台灣各地區,可以看見夾娃娃機台再度如雨後春筍般出現。只是,這次除了不同於店面的完整度外,還有機台的內容物:是零食而不再是娃娃!
Thumbnail
從短篇文中教你認識會計之四大財務報表 在會計學當中,有固定之四大正式報表,分別為「資產負債表」、「綜合損益表」、「權益變動表」以及「現金流量表」,今天帶大家簡單認識會計當中的四大財務報表分別要帶給大家何種資訊價值。 資產負債表,又稱財務狀況表,從名字就可得知,其主要表達的資訊即一家公司在「某一時點」
Thumbnail
​ 宗教影響人類生活,人類生活處處是宗教力量。不管你信仰甚麼宗教,參觀世界宗教博物館(英文簡稱:MWR)就能讓你認識、學習、領悟帶著宗教共同情懷。包容不同宗教教義、去異求同,達到和諧共處地世界大同精神。 世界宗教博物館相關資訊:: ​ 新北市永和區中山路一段236號1樓、6樓、7樓 ​ 02   
Thumbnail
洞石(Travertine)的學名叫「石灰華」,顧名思義是一種多孔的石頭,被歸類在大理石類。 洞石的使用年代很久遠,最能代表洞石的傑作你一定認識。
Thumbnail
在選定 SEO 服務前,判斷 SEO 公司的好壞是至關重要的,選錯 SEO 公司,不僅排名依舊沒起色,還有可能賠掉你苦心經營的網站。這篇文章將帶你了解不同階段的企業可以藉由 SEO 達到什麼樣的效益、SEO 服務有哪些以及如何選擇適合的 SEO 公司。
腸病毒治療的方法會因不同的病情狀況而不同,腸病毒通常會在夏季及秋季開始流行,而且麻煩的是,5 歲以下的孩童或新生兒是容易感染腸病毒的族群,腸病毒其實廣泛來說,不是單純的一種病毒,而是一群病毒的總稱,可再細分為小兒麻痺病毒、伊科病毒、腸病毒、A 型及B 型克沙奇病毒等類型,腸病毒在人傳人之間的傳播力很
Thumbnail
原本預期錄製170分鐘,但滿多人反應希望能夠多講解一些,因此也根據當初邀請大家填寫的問卷修改講綱。而在實際錄製時,又再補充了一些情緒困擾的核心因素與實際案例。最後每一堂課大約15-25分鐘,共300分鐘左右,較完整地解析了負面情緒和精神疾病的整體狀況。
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
感謝謐時光心理諮商所及張力尤臨床心理師的邀請,至桃園市向各位心理師夥伴分享我在醫學中心從事失智症照護工作的相關經驗。
Thumbnail
Figma是一個主要用來設計網頁的矢量設計軟件,與Wordpress,Shopify, Webflow等不同,Figma做出來的並不是實際的網站,而是一個雛型(Prototype)。 那你或許會想:“為什麼不直接使用類似Wordpress的工具呢?’’ 試想想以下這一個情況: 你用Wordpress
Thumbnail
近期台灣各地區,可以看見夾娃娃機台再度如雨後春筍般出現。只是,這次除了不同於店面的完整度外,還有機台的內容物:是零食而不再是娃娃!
Thumbnail
從短篇文中教你認識會計之四大財務報表 在會計學當中,有固定之四大正式報表,分別為「資產負債表」、「綜合損益表」、「權益變動表」以及「現金流量表」,今天帶大家簡單認識會計當中的四大財務報表分別要帶給大家何種資訊價值。 資產負債表,又稱財務狀況表,從名字就可得知,其主要表達的資訊即一家公司在「某一時點」
Thumbnail
​ 宗教影響人類生活,人類生活處處是宗教力量。不管你信仰甚麼宗教,參觀世界宗教博物館(英文簡稱:MWR)就能讓你認識、學習、領悟帶著宗教共同情懷。包容不同宗教教義、去異求同,達到和諧共處地世界大同精神。 世界宗教博物館相關資訊:: ​ 新北市永和區中山路一段236號1樓、6樓、7樓 ​ 02   
Thumbnail
洞石(Travertine)的學名叫「石灰華」,顧名思義是一種多孔的石頭,被歸類在大理石類。 洞石的使用年代很久遠,最能代表洞石的傑作你一定認識。
Thumbnail
在選定 SEO 服務前,判斷 SEO 公司的好壞是至關重要的,選錯 SEO 公司,不僅排名依舊沒起色,還有可能賠掉你苦心經營的網站。這篇文章將帶你了解不同階段的企業可以藉由 SEO 達到什麼樣的效益、SEO 服務有哪些以及如何選擇適合的 SEO 公司。
腸病毒治療的方法會因不同的病情狀況而不同,腸病毒通常會在夏季及秋季開始流行,而且麻煩的是,5 歲以下的孩童或新生兒是容易感染腸病毒的族群,腸病毒其實廣泛來說,不是單純的一種病毒,而是一群病毒的總稱,可再細分為小兒麻痺病毒、伊科病毒、腸病毒、A 型及B 型克沙奇病毒等類型,腸病毒在人傳人之間的傳播力很
Thumbnail
原本預期錄製170分鐘,但滿多人反應希望能夠多講解一些,因此也根據當初邀請大家填寫的問卷修改講綱。而在實際錄製時,又再補充了一些情緒困擾的核心因素與實際案例。最後每一堂課大約15-25分鐘,共300分鐘左右,較完整地解析了負面情緒和精神疾病的整體狀況。