如何使用梯形邏輯構(gòu)建無線PLC與實現(xiàn)應(yīng)用
雖然工業(yè) IoT 正在快速發(fā)展,但傳統(tǒng)可編程邏輯控制器 (PLC) 提供的定制靈活性和連接性,卻無法滿足工業(yè)工程師的需求。然而,構(gòu)建定制解決方案可能成本昂貴,而且非常耗時,同時在基于微控制器實現(xiàn)真正嵌入式解決方案方面,幾乎沒有工業(yè)工程師擁有相關(guān)的操作經(jīng)驗。
本文對 PLC進行了簡要介紹,然后說明了開發(fā)人員如何創(chuàng)建自己的無線 PLC,從而能夠使用梯形邏輯來實現(xiàn)應(yīng)用。
可編程邏輯控制器 (PLC) 簡介
PLC 是一種耐用的計算機,用于在工業(yè)應(yīng)用中實現(xiàn)特定流程的自動化。要實現(xiàn)自動化的流程非常廣泛,從制造工廠的裝配線到物聯(lián)網(wǎng)建筑照明控制系統(tǒng),以及中間涉及到的所有流程。
典型 PLC 架構(gòu)包括(圖 1):
帶有內(nèi)部 RAM 和 ROM 的中央處理單元
數(shù)字和模擬輸入
數(shù)字和模擬輸出
工業(yè)級電源
用于執(zhí)行所需特性的邏輯應(yīng)用程序
圖 1:典型 PLC 架構(gòu)包括一系列模擬和數(shù)字輸入,這些輸入按照邏輯應(yīng)用程序處理和執(zhí)行,然后驅(qū)動其用于模擬和數(shù)字輸出的特性。(圖片:Unitronics)
雖然市場上有很多傳統(tǒng) PLC 可供選擇,但開發(fā)人員可能還是希望定制 PLC 特性,或者定制構(gòu)建他們自己的器件。目前,多種不同的方式可用于實現(xiàn)此目的;但是,傳統(tǒng)嵌入式系統(tǒng)工程師可以采用其中一種非常有趣的簡單方式,也就是使用 STM32 開放式開發(fā)環(huán)境 (ODE)。
構(gòu)建無線 PLC
要構(gòu)建自己的無線 PLC,開發(fā)人員需要三個主要硬件組件:
CPU
輸入/輸出信號調(diào)節(jié)
Wi-Fi 模塊
開發(fā)人員可以從頭重新設(shè)計所有這些組件,或者也可以利用現(xiàn)有的生態(tài)系統(tǒng)。STMicroelectronics 推出了 STM32 開發(fā)人員工具包,包括所有這些組件,從而簡化了 PLC 創(chuàng)建過程,另外還提供了用于開發(fā)梯形邏輯應(yīng)用程序的基本軟件。
現(xiàn)在,我們將探討這些主要組件,以及讓它們在工業(yè)環(huán)境中運行必須達(dá)到的條件。
我們要探討的第一個組件是 CPU,本例中的 CPU 為 STM32F401RE,來自 STMicroelectronics。STM32F401RE 是一款 32 位 Arm® Cortex®-M4 處理器,并具有以下特點:工作頻率 84 MHz、應(yīng)用代碼閃存空間 512 MB、RAM 96 KB。Nucleo-401RE 評估板上提供了 STM32F401RE,還包括用于連接其他硬件的 Arduino 針座,以及用于為嵌入式軟件編程的 ST-Link。所有 PLC 代碼將在 Nucleo-401RE 上執(zhí)行。
圖 2:Nucleo-401RE 開發(fā)板構(gòu)成了 PLC 控制器的基礎(chǔ),它包含 512 MB 的應(yīng)用代碼空間,以及用于存儲數(shù)據(jù)的 96 KB RAM。(圖片:STMicroelectronics)
構(gòu)建 PLC 所必需的第二個組件是用于輸入和輸出的信號調(diào)節(jié)板。開發(fā)人員可以從兩種信號調(diào)節(jié)板中進行選擇,或者如果應(yīng)用需要,也可以組合使用。
第一個是 X-Nucleo-PLC01A1 工業(yè) I/O 擴展板(圖 3)。X-Nucleo-PLC01A1 包含通過 CLT01-38SQ7 高速數(shù)字輸入限流器的八個經(jīng)過調(diào)節(jié)的輸入。CLT01-38SQ7 可限制輸入引腳能夠消耗的電流,從而為 PLC 提供數(shù)字輸入保護。另外,還有采用 VNI8200XP 單片式 8 通道驅(qū)動器進行調(diào)節(jié)的八個工業(yè)輸出。這種驅(qū)動器具有極低供電電流、集成 SPI接口和高能效 100 mA 微功耗降壓型開關(guān)。VNI8200XP 提供八個片載固態(tài)繼電器,每個繼電器能夠驅(qū)動高達(dá) 0.7 安培的電流。X-Nucleo-PLC01A1 還包括 LED 指示燈,以便從直觀地查看每個輸入和輸出的狀態(tài),以及三個報警燈用于指示超溫和其他板故障。X-Nucleo-PLC01A1 通過 SPI 通信鏈路與 Nucleo-401RE 進行通信。
圖 3:X-Nucleo-PLC01A1 是一款工業(yè)級擴展板,可提供具有八個數(shù)字輸入和八個數(shù)字輸出的 PLC 應(yīng)用。(圖片:STMicroelectronics)
PLC 可能還需要能夠控制高電流和模擬信號。X-Nucleo-PLC01A1 專為數(shù)字信號設(shè)計。為了控制其他信號,開發(fā)人員可以使用 X-Nucleo-OUT01A1(圖 4)。X-Nucleo-OUT01A1 包含 STMicroelectronics 的 ISO8200BQ 電位隔離八通道高壓側(cè)智能電源固態(tài)繼電器。在將這些輸出與 PLC01A1 進行比較時,一個很大差異是該擴展板能夠在 10.5 至 33 伏特的電壓范圍內(nèi)工作,實現(xiàn)模擬信號和數(shù)字信號之間的電位隔離。此外,該擴展板上還有幾個 LED 指示燈,可用于指示是否發(fā)生了通信故障或熱保護事件。
圖 4:X-Nucleo-OUT01A1 是一款工業(yè)級擴展板,可提供具有八個繼電器輸出的 PLC 應(yīng)用,其中這些輸出能夠處理高達(dá) 0.7 安培的電流。(圖片:STMicroelectronics)
最后一個組件是無線芯片,可用于提供無線編程機制,或用于創(chuàng)建物聯(lián)網(wǎng)連接的 PLC。開發(fā)人員可以使用 X-Nucleo-IDW01M1,它是一款符合 802.11 b/g/n 標(biāo)準(zhǔn)的 Wi-Fi 擴展模塊,同樣來自 STMicroelectronics(圖 5)。X-Nucleo-IDW01M1 經(jīng)過 FCC、IC 和 CE 認(rèn)證,帶有集成天線,因而可隨時直接用于生產(chǎn)系統(tǒng)。
圖 5:X-Nucleo-IDW01M1 是一款工業(yè)級 Wi-Fi 模塊,能夠集成到 PLC 中以提供無線連接。(圖片:STMicroelectronics)
借助上述所有三個組件,開發(fā)人員可以按照圖 6 所示的順序組裝硬件 PLC。雖然也可以按照相反順序組裝開發(fā)板,這不會造成損壞,但將需要一些額外調(diào)試。萬一需要將任何定制硬件添加到 PLC(例如 RS-485 芯片),開發(fā)人員可以使用 Arduino 原型開發(fā)擴展板,例如 Proto Shield(來自 Olimex)或 Adafruit Proto Shield。
圖 6:組裝 STMicroelectronics 開發(fā)板以構(gòu)建功能 PLC 的順序。(圖片:Beningo Embedded Group)
設(shè)置 PLC 軟件
我們需要使用多個軟件來設(shè)置 PLC。其中包括:
PLC 嵌入式軟件
嵌入式編譯器
梯形邏輯應(yīng)用程序
PLC 嵌入式軟件 FP_IND_PLCWIFI1 由 STMicroelectronics 開發(fā),可從 STM 網(wǎng)站下載。它包含讓 STM32F401RE 投入運行所需的全部代碼,還包含多種預(yù)設(shè)配置,具體取決于需要哪些硬件堆棧。該嵌入式軟件附帶了已針對 STM System Workbench、IAR Workbench 和 Keil MDK 設(shè)置的三個項目,并且可從 http://www.st.com/en/embedded-software/fp-ind-plcwifi1.html 下載(圖 7)。開發(fā)人員可以使用其中任何一種設(shè)置,以便在 PLC 上編譯和部署嵌入式軟件。
圖 7:運行 PLC 必需的嵌入式 PLC 應(yīng)用程序包(圖片:Beningo Embedded Group)
下載嵌入式應(yīng)用程序之后,可將其導(dǎo)入所需的編譯器 IDE 并進行編譯。開發(fā)人員應(yīng)該確保代碼編譯沒有問題。然后,可通過與 PC 的標(biāo)準(zhǔn) USB 連接,將編譯的應(yīng)用程序下載到 PLC。
最后,STMicro 還創(chuàng)建了簡單的 PLC 應(yīng)用程序,可用于創(chuàng)建梯形邏輯應(yīng)用程序。該應(yīng)用程序適用于 iOS 和 Android。通過在移動設(shè)備的應(yīng)用商店中搜索“ST PLC App”,可將該應(yīng)用程序下載到移動設(shè)備上。
簡單的應(yīng)用程序示例
一旦 PLC 的嵌入式軟件運行之后,開發(fā)人員便可以專注于使用 ST PLC 應(yīng)用程序開發(fā)他們的應(yīng)用代碼。應(yīng)用代碼將使用梯形邏輯來開發(fā)。開發(fā)人員可以啟動應(yīng)用程序,并基于他們選擇要包括在硬件堆棧中的開發(fā)板來創(chuàng)建新項目(圖 8)。
圖 8:通過使用 ST PLC 應(yīng)用程序,開發(fā)人員可以創(chuàng)建新項目(左圖紅色突出顯示),選擇項目名稱(右圖橙色),然后配置將要使用的硬件(右圖綠色)。(圖片:Beningo Embedded Group)
配置項目之后,開發(fā)人員即可為應(yīng)用程序創(chuàng)建梯級。第一個項目不妨簡單地測試是否能夠讀取輸入,以及基于該輸入能否設(shè)置輸出。開發(fā)人員可以通過如下方法來創(chuàng)建此測試:單擊“Add rung”(添加梯級),然后實現(xiàn)在應(yīng)用程序中必需的邏輯。一旦完成此操作之后,開發(fā)人員應(yīng)該會創(chuàng)建一個類似圖 9 左側(cè)所示的梯級。
圖 9:通過使用 ST PLC 應(yīng)用程序,開發(fā)人員可以實現(xiàn)自己的邏輯,以便根據(jù)他們的需求來控制設(shè)備(左)。一旦創(chuàng)建應(yīng)用程序之后,便可通過單擊發(fā)送應(yīng)用程序按鈕(右),將其無線推送至 PLC。(圖片:Beningo Embedded Group)
保存梯級之后,開發(fā)人員將返回到主項目屏幕。在該屏幕上,他們可以在應(yīng)用程序中編輯梯級或創(chuàng)建更多梯級。如果準(zhǔn)備部署應(yīng)用程序,請單擊圖 9 右側(cè)所示的無線傳輸按鈕,這樣可進行連接并傳輸 PLC 應(yīng)用程序。請注意,開發(fā)人員必須將移動設(shè)備連接到 PLC 接入點,并配置端口和 IP 地址,這樣才能成功傳輸應(yīng)用程序。
構(gòu)建無線 PLC 的技巧和訣竅
在創(chuàng)建自己的定制無線 PLC 時,開發(fā)人員可以遵循一些技巧和訣竅。其中包括:
如果無線開發(fā)板不工作,請確認(rèn)開發(fā)板在堆棧上的方向正確。(即按正確的方向放置)
通過為 SSID 添加安全密鑰,提升系統(tǒng)安全性。
將默認(rèn)無線特性更改為站模式,并僅在更新過程中切換到接入點,從而更新 PLC。
考慮添加工業(yè)通信協(xié)議,例如 RS-485 和 Modbus。
快速構(gòu)建 PLC 的最佳方式是將它視為一個有趣的問題,然后嘗試使用 PLC 解決該問題。
使用 IAR Embedded Workbench for Arm 來編譯 PLC 嵌入式軟件。該工具鏈在 30 天內(nèi)代碼不受限。
結(jié)論
構(gòu)建定制 PLC 不一定就那么困難。如本文所示,STMicroelectronics 提供的生態(tài)系統(tǒng)讓開發(fā)人員能夠開發(fā)基本 PLC 軟件,并且極其快速地運行該軟件。然后,開發(fā)人員還能夠輕松地修改和定制該應(yīng)用程序,以滿足各種應(yīng)用的需求和應(yīng)對各種挑戰(zhàn)。
雖然主要目標(biāo)是使用梯形邏輯來創(chuàng)建最終應(yīng)用代碼,但如果開發(fā)人員擁有豐富的經(jīng)驗和知識,他們可以輕松地對嵌入式軟件進行調(diào)整,構(gòu)建更加強大和靈活的混合系統(tǒng)。