如何在 CODESYS 中建立範例自動化專案

作者:Aharon Etengoff

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

採用新的自動化平台可能會有陡峭的學習曲線,還需擔心供應商鎖定。CODESYS 透過 IEC 61131-3 架構且獨立於硬體的開發環境因應這些挑戰。可針對跨多重硬體平台的程式設計、I/O 映射、視覺化、部署提供統一的工作流程。

本文展示如何在 CODESYS 中建立一個完整的自動化專案,從初始設定到執行期測試。讀者將配置裝置樹、映射 I/O 通道、使用 Structured Text 編寫程式邏輯、設計視覺化、連接到執行期環境,並運用偵錯策略驗證作業。除實務指導,本文還會加強介紹專案組織、資料庫管理、安全部署的最佳實務。

雖然本教學使用 CODESYS 的內建模擬器,但相同的流程也適用於 DigiKey 提供的硬體平台,例如支援 CODESYS 的 PLC、工業 Raspberry Pi 控制器 (如 SeeedEdgeBox-RPI-200),以及具有整合式執行期的 HMI。讀者將建立一個清晰的框架,在 CODESYS 中打造一個功能完善的自動化應用,並深入瞭解支援工業環境中擴展性和可靠性的技術。

專案設定

首先,在 CODESYS 開發系統中建立一個新專案。從範本清單中選擇「標準專案 (Standard Project)」,並指派一個描述性名稱,例如「MotorControlDemo」。在彈出視窗中選擇 CODESYS Control Win V3 裝置,可提供一個 Windows 架構模擬執行期環境,無需專用硬體。這樣就可以在部署到 PLC 或工業 Raspberry Pi 模組等平台前,測試完整的工作流程。

以裝置樹開始發展專案:組織控制器、I/O 通道、通訊鏈路。在此例中,此裝置樹包含一個控制器項目、啟動和停止按鈕的數位輸入,以及馬達和指示燈的數位輸出。若要將這些訊號連接到控制邏輯,請在全域變數清單或程式編輯器中宣告布林變數,例如 StartButton、StopButton、MotorOn、LampOn。在模擬中切換這些值以模擬硬體行為。硬體則直接綁定到實體 I/O 點。

馬達控制 I/O 的布林變數宣告圖片圖 1:馬達控制 I/O 的布林變數宣告。(圖片來源:作者)

在這一階段中,需要清楚、一致的命名,才能大幅減少偵錯工作量,並在添加新功能或裝置時簡化擴充。

程式設計邏輯

專案結構已經到位,下一步是以 Structured Text (ST) 實作控制邏輯。ST 是 CODESYS 支援的 IEC 61131-3 語言之一。ST 使用類似 Pascal 的語法,兼具可讀性和表達能力,支援實作清楚的序列例程和基於狀態的邏輯。

此示範專案需要一個簡單的啟動/停止閂鎖:按下啟動按鈕即可為馬達和燈供電,按下停止按鈕即可為兩者斷電。在 ST 中的表示如圖 2 所示。

Structured Text 實作啟動/停止閂鎖邏輯的圖片圖 2:Structured Text實作的啟動/停止閂鎖邏輯。(圖片來源:作者)

本範例闡述 ST 的基本原理,包括條件語句、布林邏輯、變數賦值。由於變數是在專案設定期間定義,因此直接對應到 I/O 通道,連接硬體訊號和程式執行。

對於更大型專案,組織是關鍵。初始化程式碼可以設定預設狀態,而循環任務監控輸入並驅動輸出。功能塊和資料庫有助於封裝邏輯、減少冗餘、提高可讀性。在模擬中開發的相同 ST 程式碼,只需稍作修改,即可部署到 DigiKey 提供的硬體上,例如緊湊型 PLC 或 PAC。這種可移植性強調 CODESYS 硬體獨立環境的價值。請注意,將初始化、循環監控、錯誤處理分開是最佳實務,可以提升程式碼可讀性,並確保隨著專案擴展,可預測執行效果。

配置裝置和 I/O 映射

專案結構和變數確定後,下一步是透過 I/O 映射連接變數與硬體 (或模擬 I/O)。在 CODESYS 中,在裝置編輯器 (Device Editor) 的 I/O 映射 (I/O Mapping) 標籤中處理,此時每個通道都與一個專案變數配對。

首先,在裝置樹下插入控制器及其 I/O 模組。例如,新增一個具有兩個數位輸入和兩個數位輸出的模組。若有含 I/O 功能的裝置,就會啟用 I/O 對映標籤,顯示輸入和輸出通道表,表中包含變數名稱、位址、資料類型等列。裝置描述通常會提供預設名稱和位址,但可以進行修改以配合系統佈線或命名規範。

在 I/O 映射標籤中,可以透過三種方式將變數映射至通道:連結現有變數 (如 StartButton、MotorOn)、在介面中產生新的隱式全域變數,或直接編輯位址以符合專案要求。根據定義,映射到輸入的變數是唯讀,並且每個變數只能對應一個通道。

在生產環境中,映射也需要注意電氣介面規範,包括訊號位準、模組額定值、接地。這些因素超出本教程的範圍,但對於硬體部署仍然相當重要。

映射可以匯出或匯入為 CSV 檔案,以進行記錄或大量編輯。將映射資料匯出為 CSV 格式是最佳方式,如此提供審核檔案,並為團隊協作提供可靠的參考。

視覺化和 HMI

邏輯部分完成後,下一步是建立控制和監控系統的使用者介面。CODESYS 提供一套整合式視覺化工具集,支援多種部署模式 (WebVisu、TargetVisu、CODESYS HMI),允許在網路瀏覽器、本機顯示器、專用裝置上執行視覺化。

在裝置樹的「應用程式 (Application)」節點下,新增一個「視覺化管理器 (Visualization Manager)」項目,然後新增一個或多個「視覺化 (Visualization)」螢幕,例如「MainVisu」。在每個螢幕上,拖曳使用者介面元素,如按鈕、指示燈/指示器、軌跡顯示、趨勢圖等。這些元素透過其屬性對話框與程式變數 (如 StartButton、LampOn) 連結。

例如,若要顯示馬達狀態,可放置一個指示燈項目,並將其變數連至 LampOn。當變數狀態為真 (TRUE) 時,燈會亮起;當變數為假 (FALSE) 時,燈不會亮。變數和元素之間直接綁定,可在執行期進行直覺式互動。

部署模式選項

介面設計完成後,接著決定如何將視覺化效果部署至操作工具或外部系統。CODESYS 支援多種部署模式,每種模式都符合不同的效能和網路要求:

  • WebVisu:在網頁瀏覽器中以 HTML5 執行,裝置可作為 HTTP/HTTPS 的網路伺服器。無需專用顯示器,即可進行遠端存取。
  • TargetVisu:在直接連接到控制器或裝置的顯示器上執行。適用於在單一單元中結合控制和人機介面的嵌入式系統。
  • CODESYS HMI:專用於視覺化的獨立執行期實體,能夠連接到多重控制器。

選擇部署模式時,需考量效能、顯示需求、網路拓撲。雖然 WebVisu 具有靈活性,但控制器可能需要支援 HTTP 伺服器和額外的負載。TargetVisu 可降低網路延遲,但需要本機顯示器支援,而 HMI 模式可擴充以適應多控制器系統。

實際硬體範例

DigiKey 提供 Maple Systems cMT3072XHT 7" HMI 作為硬體參考,具有整合式 CODESYS 執行期和顯示功能,可直接納入專案中建立的視覺化螢幕。

視覺化設計的最佳實務包括使用資料庫螢幕和參數介面,建立可重複使用的範本。設計人員還應配置警示和追蹤顯示,如此可只顯示關鍵變數,將控制器負載降至最低。 這能以文字清單和可變縮放,支援多重語言和單位轉換。此外,使用對齊線或容器鎖定元素位置,以便在各種尺寸的螢幕上保持版面一致。

此應用在連接視覺化功能後,即具備完整互動能力。使用者可以透過人機介面啟動和停止馬達、監控指示器,以及查看即時狀態。至此,視覺化階段完成,專案已準備好進行執行期測試。

部署和執行期測試

編程和視覺化完成後,專案必須部署到執行期環境。CODESYS 支援多種選擇,從內建的 Control Win SL 模擬器到工業硬體的授權執行期。

在開發系統 (Development System) 的線上 (Online) 選單中,選擇目標裝置或模擬器並建立連線。將編譯後的專案下載到執行期環境,IDE 會顯示傳輸狀態並以螢光底色標注任何不符合配置之處。載入後,將控制器切換到運作 (RUN) 模式以開始執行。

內建的 Windows 執行期無需硬體即可快速驗證,而 CODESYS 執行期也可在嵌入式 Linux 平台上運作,例如 DigiKey 提供的 KUNBUS Revolution Pi (RevPi) Connect 4。這款開源工業級 Raspberry Pi 模組展現同一個專案如何從模擬無縫延伸到現場部署。

偵錯和最佳實務

除了即時監控之外,CODESYS 還提供一個整合式偵錯環境,用於改進和維護專案。可以手動設定和執行斷點、單步驟執行邏輯,以及執行流程分析。Trace 工具可記錄變數歷史記錄,擴展診斷功能,以便進行後續分析,通常用於事件後審核。

CODESYS 可以產生強制變數 (圖 3),暫時覆蓋映射的訊號,進行故障排除。

CODESYS 的強制變數命名規範圖片圖 3:CODESYS 的強制變數命名規範。(圖片來源:作者)

這些功能對於調試或模擬情況 (如按下按鈕) 特別實際。在強制訊號啟用時,CODESYS 會將用此值覆蓋映射訊號。由於強制操作可能會中斷即時執行,因此應謹慎使用,並且只能在已映射的通道上使用。

長期可靠性取決於結構化的專案管理。資料庫管理器 (Library Manager) 支援模組化設計和集中式版本控制,而定義的佔位符可確保跨硬體目標的一致性。保持資料庫版本穩定,可以降低部署或升級時的相容性風險。

除了這些結構性保障措施之外,日常最佳實務也同樣重要。這些措施包括先在模擬器中驗證專案,再轉移到硬體上,以及在生產環境中謹慎使用斷點或強制執行,以避免擾亂即時週期。將已知良好的建置版本與資料庫歸檔,以便快速回滾;同時記錄變數映射並提供視覺化連結,以確保團隊交接的順暢。

結論

CODESYS 將專案設定、I/O 映射、邏輯編程、視覺化、偵錯統一到單一環境,能加速從設計到部署。此工作流程涵蓋 DigiKey 平台,包括支援 CODESYS 的 PLC、工業 Raspberry Pi 控制器和 HMI,為從概念到可擴展自動化的轉換提供實用的框架。

DigiKey logo

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

關於作者

Image of Aharon Etengoff

Aharon Etengoff

Aharon Etengoff is a technology writer with extensive experience in the semiconductor and telecom sectors. He develops white papers, technical articles, and high-level collateral for leading companies in both industries. His work has appeared in publications such as EE World Online, EV Engineering, and 5G Technology World. Aharon has written about HBM and GDDR memory, interface and security IP, AI-powered EDA tools, chiplets, 3DIC, and 5G wireless networks. Earlier in his career, he was the managing editor of TG Daily, where he led a team covering emerging tech trends.

關於出版者

DigiKey 北美編輯群