建立自訂的無線可編程邏輯控制器 (PLC)

作者:Jacob Beningo

資料提供者:DigiKey 北美編輯群

工業 IoT 成長迅速,傳統可編程邏輯控制器 (PLC) 提供的自訂彈性與連線能力,無法滿足工業工程師的需求。然而,建置一個自訂解決方案可能既昂貴又耗時,而且在實作微控制器架構型的全嵌入式解決方案方面,有實戰經驗的工業工程師更是少之又少。

本文先概述 PLC,接著再說明開發人員該如何自行建立可使用梯狀邏輯實作應用程式的無線 PLC。

可編程邏輯控制器 (PLC) 簡介

PLC 是一種耐用的電腦,用於在工業應用中將特定流程自動化。要實現自動化的流程範圍很廣,諸如製造廠房內的裝配線,以及 IoT 建築照明控制系統等。

典型的 PLC 架構包括 (圖 1):

  • 內建 RAM 與 ROM 的中央處理單元
  • 數位與類比輸入
  • 數位與類比輸出
  • 工業額定電源供應器
  • 執行所需行為的邏輯應用程式

具有一系列類比與數位輸入的典型 PLC 架構圖片

圖 1:典型的 PLC 架構包含一系列類比與數位輸入,這些輸入會按照邏輯應用程式處理和執行,然後驅動針對其類比與數位輸出的行為。(圖片來源:Unitronics)

市面上雖然有多種傳統 PLC 選項,但開發人員可能還是希望自訂 PLC 行為或自行建立自訂元件。要實現這一目的,有各式各樣不同的方式,不過傳統嵌入式系統工程師不妨嘗試看看 STM32 開放式開發環境 (ODE) 這種簡單的方法。

建置無線 PLC

開發人員自行建置無線 PLC 時,需要以下這三種主要硬體元件:

  • CPU
  • 輸入/輸出訊號調整板
  • Wi-Fi 模組

開發人員可以從頭設計以上所有元件,也可以利用現有的生態系統。STMicroelectronics 推出的 STM32 開發人員套件包含上述所有元件,還提供開發梯狀邏輯應用程式的基線軟體,簡化了建立 PLC 的過程。

接下來,我們來探討這些主要元件,及其在工業環境中運作時需要達到哪些條件。

首先探討的元件是 CPU,本案例採用的是 STMicroelectronicsSTM32F401RE。STM32F401RE 是 32 位元的 Arm® Cortex®-M4 處理器,以 84 MHz 運作,應用程式碼快閃記憶體空間為 512 Mb,RAM 為 96 Kb。STM32F401RE 是以 Nucleo-401RE 評估板的方式提供,該板件還包含 Arduino 排針座,可與其他硬體介接,另外具有對嵌入式軟體進行編程的 ST-Link。所有 PLC 程式碼在 Nucleo-401RE 上執行。

STMicroelectronics Nucleo-401RE 開發板的圖片

圖 2:Nucleo-401RE 開發板是 PLC 控制器的基礎,包含 512 Mb 應用程式碼空間和資料用的 96 Kb RAM。(圖片來源:STMicroelectronics)

建置 PLC 需要的第二個元件是輸入和輸出用的訊號調整板。開發人員有兩種訊號調整板可以選擇,或者如果應用需要時可以兩種並用。

第一個是 X-Nucleo-PLC01A1 工業 I/O 擴展板 (圖 3)。X-Nucleo-PLC01A1 包含經由 CLT01-38SQ7 高速數位輸入限制器的八個調節式輸入。CLT01-38SQ7 會限制輸入引腳可消耗的電流,為 PLC 提供數位輸入保護。另外還有利用 VNI8200XP 單晶片八通道驅動器進行調節的八個工業輸出。該驅動器具有極低電源電流、整合式 SPI 介面以及高能效 100 mA 微功率降壓開關。VNI8200XP 提供八個晶片式固態繼電器,每個最高可驅動 0.7 A。X-Nucleo-PLC01A1 還有 LED 指示燈,肉眼即可判斷各輸入與輸出的狀態,另外有三個警報燈,會透過訊號指示過溫與其他訊號調整板故障。X-Nucleo-PLC01A1 會透過 SPI 通訊鏈路與 Nucleo-401RE 通訊。

STMicroelectronics X-Nucleo-PLC01A1 圖片

圖 3:X-Nucleo-PLC01A1 是工業級訊號調整板,設計用於提供具有八個數位輸入與八個數位輸出的 PLC 應用程式。(圖片來源:STMicroelectronics)

PLC 可能還需要控制高電流與類比訊號。X-Nucleo-PLC01A1 是專為數位訊號而設計。若要控制其他訊號,開發人員可以使用 X-Nucleo-OUT01A1 (圖 4)。X-Nucleo-OUT01A1 包含 STMicroelectronics 的 ISO8200BQ 電流隔離八通道高側智慧型電源固態繼電器。將這類輸出與 PLC01A1 相比時最大的差異就是,該訊號調整板可以運作的電壓介於 10.5 至 33 V,而且類比與數位訊號之間有電流隔離。另外,該訊號調整板同樣有數個 LED 指示燈,會顯示是否發生了通訊故障或熱保護事件。

STMicroelectronics X-Nucleo-OUT01A1 圖片

圖 4:X-Nucleo-OUT01A1 是工業級訊號調整板,設計用於提供具有八個繼電器輸出的 PLC 應用程式,每個繼電器最高可處理 0.7 A。(圖片來源:STMicroelectronics)

無線晶片是最後一個元件,可用來提供無線編程機制,或是用來建立與 IoT 連接的 PLC。開發人員可以使用同樣由 STMicroelectronics 出品的 X-Nucleo-IDW01M1,這款 Wi-Fi 擴展模組符合 802.11 b/g/n (圖 5)。X-Nucleo-IDW01M1 經 FCC、IC 與 CE 認證,具備整合式天線,可直接用於生產系統。

STMicroelectronics X-Nucleo-IDW01M1 圖片

圖 5:X-Nucleo-IDW01M1 是工業級 Wi-Fi 模組,可整合到 PLC 中以提供無線連線能力。(圖片來源:STMicroelectronics)

備妥上述各元件之後,開發人員便可遵照圖 6 顯示的順序,自行組裝 PLC 硬體。也可以按相反的順序安裝,不會損傷板件,不過會導致額外的偵錯。如果需要在 PLC 新增任何自訂的硬體,例如 RS-485 晶片,開發人員可以使用 Arduino 原型擴展板,比如 OlimexProto ShieldAdafruit Proto Shield

STMicroelectronics 開發板組裝順序圖片

圖 6:STMicroelectronics 開發板組裝順序,以締造正常運作的 PLC。(圖片來源:Beningo Embedded Group)

設定 PLC 軟體

設定 PLC 時需要用到好幾種軟體。包括:

  • PLC 嵌入式軟體
  • 嵌入式編譯器
  • 梯狀邏輯應用程式

PLC 嵌入式軟體 FP_IND_PLCWIFI1 由 STMicroelectronics 開發,從 STM 網站即可下載。該軟體包含讓 STM32F401RE 正常運轉需要用到的所有程式碼,並包含數種預設設定,具體取決於所需硬體堆疊。該嵌入式軟體隨附為 STM System Workbench、IAR Workbench 與 Keil MDK 預先設定的三種專案,從 http://www.st.com/en/embedded-software/fp-ind-plcwifi1.html 即可下載 (圖 7)。開發人員使用其中任何一個都可以在 PLC 上編譯和部署該嵌入式軟體。

嵌入式 PLC 軟體應用程式套件圖片

圖 7:執行 PLC 需要使用的嵌入式 PLC 應用程式套件。(圖片來源:Beningo Embedded Group)

嵌入式應用程式下載後,即可匯入所需的編譯器 IDE 進行編譯。開發人員應確保程式碼順利編譯。使用標準的 USB 連線至 PC,即可將編譯的應用程式下載至 PLC。

最後,STMicro 還建立了簡單的 PLC 應用程式,可用來建立梯狀邏輯應用程式。這個應用程式提供 iOS 和 Android 適用的版本。在行動裝置的應用程式商店搜尋 ST PLC App,即可將該應用程式下載至行動裝置。

簡單的範例應用程式

PLC 嵌入式軟體執行後,開發人員便可專心使用 ST PLC 應用程式自行開發應用程式碼。應用程式碼會使用梯狀邏輯進行開發。開發人員可啟動應用程式,並根據硬體堆疊中包含的自選開發板,建立新專案 (圖 8)。

ST PLC 應用程式圖片

圖 8:開發人員可以從 ST PLC 應用程式建立新專案 (左側紅色突出顯示)、選取專案名稱 (右側橘色),接著設定使用中的硬體 (右側綠色)。(圖片來源:Beningo Embedded Group)

專案設定妥當後,開發人員便可開始為應用程式建立梯級。第一個專案不妨單純測試是否可讀取輸入,以及是否可以根據該輸入設定輸出。開發人員按一下「新增梯級」,然後在應用程式實作需要的邏輯,即可建立這個測試。這一步完成後,開發人員便建立了類似圖 9 左側的梯級。

ST PLC 應用程式軟體圖片

圖 9:開發人員可以從 ST PLC 應用程式實作邏輯,視需要控制裝置 (左側)。應用程式建立後,按一下傳送應用程式按鈕 (右側),即可以無線方式推送至 PLC。(圖片來源:Beningo Embedded Group)

儲存梯級後,開發人員隨即返回主專案畫面。他們可以在此編輯梯級,或是在應用程式建立其他梯級。如果應用程式已備妥可供部署,按一下圖 9 右側的無線傳輸按鈕,即可連接及傳輸 PLC 應用程式。請注意,開發人員必須將行動裝置連線至 PLC 存取點,並且設定連接埠和 IP 位址,這樣應用程式傳輸才能成功。

建置無線 PLC 的秘訣和技巧

開發人員自行建立自訂的無線 PLC 時,有幾個秘訣和技巧可以參考。包括:

  • 如果無線開發板不能用,請確認無線開發板在堆疊的方向正確與否。(亦即放置的方向正確)
  • 為 SSID 新增安全金鑰,改善系統安全性。
  • 將預設的無線行為變更為基地台模式以更新 PLC,而且僅限在更新時切換至存取點。
  • 考慮新增工業通訊協定,例如 RS-485 與 Modbus。
  • 迅速熟悉 PLC 的最佳方式,就是先想個有趣的問題,然後嘗試用 PLC 解決該問題。
  • 使用 IAR Embedded Workbench for Arm 編譯 PLC 嵌入式軟體。工具鏈在 30 天內程式碼無限制。

結論

建置自訂的 PLC 未必棘手。如本文所示,有了 STMicroelectronics 提供的生態系統,開發人員得以讓基礎 PLC 軟體迅速運作。接著,應用程式便能配合各式各樣的應用和挑戰,輕鬆實現修改與自訂。

雖然主要目標是利用梯狀邏輯建立終端應用程式碼,但是如果開發人員具備經驗和知識,即可輕輕鬆鬆調整嵌入式軟體,擁有彈性更佳、更強大的混和式系統。

DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於作者

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo 是嵌入式軟體顧問,目前與超過十幾個國家的客戶合作,透過產品品質、成本和上市時間的改善,促成業務的大幅轉型。他曾在嵌入式軟體開發技術上發表超過兩百篇文章,是深思熟慮的講師和技術培訓師,共擁有三個學位,包括密西根大學的工程碩士學位。歡迎透過以下方法洽詢,電郵:[email protected]、網站:www.beningo.com,亦可登記取得他發行的Embedded Bytes 每月電子報

關於出版者

DigiKey 北美編輯群