--- title: 工業基本控制程式設計(RS-485串列埠篇) tags: IIoT 4.0 image: https://i.imgur.com/ZPZqA4h.png --- # 工業基本控制程式設計(RS-485串列埠篇) ![](https://i.imgur.com/tGLYir6.png) :::info * 工業 4.0 系列的第一本書,主要是運用 RS-485 與 Modbus RTU (Remote Terminal Unit) 通訊協定。 ::: [toc] * 控制電器電路一般都是電壓 100V ~ 250V,甚至更高電壓,所以不太可能直接使用開發板驅動電路控制電器電路。 ---> ==繼電器模組== * RS-485 通訊是產業界常用的通訊協定,其中以 Modbus RTU 更是架構在 RS-485 通訊上的企業級通訊。 * 雖然 RS-485 可支援 253 組位址,但實際上因為電力供應與訊號等因素,只建議支援 32 組裝置 (每一組通訊位址需不同, DIP SW)。 * 不同的非同步傳輸介面有不同的取向,例如: - RS-232 追求實現方式簡單低廉 - RS-422 追求**較長距離**的傳輸 - RS-485 追求**較多的裝置**連接數目等 ## What is Modbus? :::info Modbus 起於西元 1979 年 Modicon 公司 (已被 Schneider Electric 併購,成為旗下子品牌),為全球最早用於工業現場的匯流排規約,免費公開發行,使用該協議的廠商無需繳納任何費用。 Modbus 協議採用 Master / Slave 通信模式,其在分散控制方面應用極其廣泛,從而使得 Modbus 協議在全球得到了廣泛的應用。 * Master 裝置多半為人機介面 (HMI) 或監控與資料擷取系統 (SCADA)。 * Slave 裝置則為感測器、程式化邏輯控制器 (PLC) 或程式化自動控制器 (PAC)。 ::: ![](https://i.imgur.com/oC5mPic.png) * **RS-485** --- 工業現場,一般都是採用 Modbus RTU 協議。 * **Modbus RTU** 是一種使用二進位表示法來進行資料的傳遞與交換,通信效率高,應用廣,傳遞資料的結尾需要加上 CRC (錯誤檢查機制)。 * **Modbus ASCII** 採用 ASCII 碼傳輸,利用特殊字元作為其位元組的開始與結束標識,傳輸效率遠低於 Modbus RTU,一般只有在通信資料量較小的情況下,才會考慮採用此協議。傳遞資料的結尾需要加上 CRC (錯誤檢查機制)。 * **Ethernet** * **Modbus TCP** 是一種藉由 Ethernet TCP/IP 方式進行資料傳遞,此種通訊格式不需計算 CRC,而是使用識別碼 (Transaction ID) 方式進行資料驗證。 ![](https://i.imgur.com/rXztsxI.png) ### Modbus Serial > Modbus serial 為基礎的單一協定,無法像 TCP/IP 有七層協議,主要定義了 PDU (Protocol Data Unit) 與 ADU (Application Data Unit)。 * Modbus PDU * Modbus ADU ### Modbus TCP / IP ### Modbus Plus ## How does Modbus work? ## References * [Modbus Organization](https://modbus.org/) * [MODBUS over Serial Line Specification and Implementation Guide V1.02](https://modbus.org/docs/Modbus_over_serial_line_V1_02.pdf) * [What is a MAC address?](https://www.globalknowledge.com/ca-en/resources/resource-library/articles/does-a-mac-address-mean-apple-invented-it/) * https://dotblogs.com.tw/Leo_CodeSpace/2018/12/26/185411