?

基于AVR單片機的物聯網可編程邏輯控制器設計

2022-02-25 03:46陳永昕
技術與教育 2022年4期
關鍵詞:圖形化編程語言電路設計

陳永昕

(吉林工業職業技術學院智能制造學院,吉林 吉林 132013)

1 引言

目前,市場上可編程邏輯控制器(PLC)的品類繁多,如信捷、匯川等國內主流品牌在性價比和穩定性上具有一定的優勢,是很多控制技術人員首選控制器。然而,在面對一些點數較少的開關量數據采集和控制應用上,通用型PLC 無論是從成本還是從功能上考慮都存在大材小用的癢點,尤其是加上需要通過無線通信方式進行數據傳輸,更凸顯了通用PLC 的系統臃腫、投入成本較高。

為此,設計了一種以單片機為主控芯片的簡易可編程邏輯控制器,并具有無線通信組網功能。該設計方案可使用多種編程方式進行程序設計,降低了應用推廣門檻,非常適合在少量開關量采集和控制方面運用物聯網技術。

2 設計總體方案

圖1為硬件電路總體設計框圖。系統核心部分共分為四個單元:主控單元、輸入單元、輸出單元和通信單元,所有單元均通過供電單元進行統一供電。從理論上而言,通信單元可以選擇任何具有TTL 電平UART 串口的無線通信模塊,以實現無線通信甚至組網功能,但是基于無線通信組網難度和普適性的考慮,后續設計首選ZigBee和LoRa 兩方面技術。

圖1 控制器電路總體框圖

3 硬件電路設計

3.1 主控單元電路設計

控制器主控芯片采用AVR 單片機Atmega328 作為主控芯片。該芯片閃存容量32 KB,集成了I2C、SPI、USART 接口,共三個定時器(其中一個16 位,兩個8 位),芯片總共28 個引腳,芯片I/O 接口數量足夠支持8 輸入和8 輸出開關量接口使用。與其他8 位單片機相比,該芯片能夠使用的編程語言種類較多。具體最小系統電路原理圖如圖2所示。

圖2 單片機最小系統原理圖

最小系統電路是單片機芯片能夠工作的基本電路結構,包括復位電路、時鐘電路和電源三部分。單片機最小系統屬于固定模式的電路,一般不需要使用者具體了解其功能就可以直接使用,因此本文對其具體功能不再贅述。

為輔助控制進行程序調試和運行狀態顯示,使用電阻和LED 串聯設計了運行狀態指示電路。由電源直接進行供電,由于Atmega328P 芯片I/O 口內部有20KΩ 的上拉電阻,LED 負極端連接至單片機PC4 引腳上,通過拉低電平驅動LED 發光,具體如圖3所示。

圖3 運行狀態指示電路

3.2 輸入單元電路設計

輸入接口電路設置8 路開關量輸入通道,CN2 為輸入接口端子,可對外提供24 V 直流電源并作為傳感器電源接口使用;輸入端使用光耦作為隔離,將輸入外設24 V 電路同控制核心單片機5V 電路進行隔離;每個信號輸入端配有一個LED 作為信號指示,具體如圖4所示。

圖4 輸入接口電路

3.3 輸出單元電路設計

CN1 為輸出端接線端子,端子上可提供24 V 直流電壓,用于輸出端負載供電使用;每個輸出端口使用光耦進行隔離,將5 V 電路系統和24 V 電路系統進行光電隔離;每個輸出口上配有一個LED 用于輸出接口信號指示,具體如圖5所示。

圖5 輸出接口電路

3.4 通信單元電路設計

AVR 單片機可通過UART 串口進行程序下載,電路板上預留的程序下載接口U2 可作為通信模塊的接口使用;通過串行口同ZigBee 或者LoRa 等無線模塊進行通信,以實現控制器的無線通信功能,具體如圖6所示。

圖6 通信接口電路設計

3.5 供電單元電路設計

3.5.1 電源電路設計

控制器主電源采用24 V 直流電源供電,主控芯片和通信模塊均使用直流5 V 電源供電,因此需要對電源電壓進行降壓,本設計則采用LM2596S 降壓模塊進行降壓調壓,具體如圖7所示。IN+和IN- 為電壓輸入端,輸入直流電壓范圍3.2~46 V,輸入電壓必須比輸出電壓高1.5 V 以上;OUT+和OUT- 為電壓輸出端,輸出直流電壓范圍1.25~35 V,電壓連續可調,轉化效率高,最大輸出電流為3 A。通過電位器調節模塊電壓,逆時針方向調節時為降壓,順時針方向調節時則為升壓。

3.5.2 電源上電指示電路

電源上電指示電路使用電阻和LED 串聯5 V 供電,電源上電則LED 發光指示,具體電路如圖8所示。

圖8 電源上電指示電路

4 支持多種編程語言進行程序設計

本設計中的控制器可使用的編程語言較多,其中圖形化語言和梯形圖編程是本設計重點推薦的。圖形化編程語言的適用年齡段較寬,即使是具備少兒編程圖形化語言編程基礎的兒童都可使用該控制器編寫程序,而對于習慣PLC 梯形圖編程的技術員而言,可繼續直接使用梯形圖進行程序編寫。

4.1 傳統編程語言

AVR 程序編寫應用最廣泛的編程語言是C語言和匯編語言,其中C 語言在單片機嵌入式系統開發領域具有更多的用戶群。這兩種語言均要求程序員具有較高程序編寫經驗,并且學習難度相對較大。

4.2 圖形化編程語言

4.2.1 ArduBlock 等類似圖形化語言

以ArduBlock 為代表的圖形化編程語言大幅度降低了程序編寫難度,因而比較適合程序設計零基礎的人員使用。近幾年,該程序設計的技術方案更是被大量優化升級為少兒編程的主流語言。

Atmega328 芯片被用于ArduinoUno 模塊的主芯片設計,因此本設計中控制器也使用ArduinoUno 的所有開發資源進行程序設計,圖形化編程界面如圖9所示。

圖9 圖形化編程界面

4.2.2 FlowCode 流碼語言

FlowCode 適用于電子和機電系統開發的高度集成開發環境(IDE),并且無論是專業人員還是學術人員,都可以快速掌握單片機嵌入式系統的程序開發。此外,FlowCode 還允許全仿真(包括C 代碼仿真),用戶可以將C 代碼轉換成流程圖和其它編程語言。圖10是FlowCode 軟件的編程界面。

圖10 FlowCode流碼程序界面

圖10中類似程序流程圖的結構即為FlowCode 流碼程序,因此只要能夠看懂程序流程圖,就可以進行嵌入式程序設計。

4.2.3 Proteus 可視化編程

Proteus 軟件是單片機開發人員熟知的一款仿真軟件,從8.6 版本開始增加了可視化程序設計功能Visual,該功能是面向Arduino 平臺進行程序設計的一種圖形化語言,因此也可以用于本控制器的程序開發,Proteus 仿真界面和Visual程序設計界面如圖11所示。

從圖11可以看出,該圖形化程序與FlowCode 流碼程序設計思路類似,均是類似于程序流程圖的編程語言,因此該方法對于程序員程序設計基礎要求不高,非常容易掌握。

圖11 Proteus仿真界面和Visual程序設計界面

4.3 梯形圖語言

LDMicro 是一款可用于AVR 和PIC 單片機的編程軟件,LDMicro 梯形圖編程界面如圖12所示。

圖12 LDMicro梯形圖編程界面

該軟件使用梯形圖進行程序設計,能夠將梯形圖邏輯編譯生成適用于AVR 和PIC 單片機的HEX 文件?;谠摴δ苁褂肞LC 的自動化工程師,因此較為容易掌握程序設計方法。LDMicro軟件部分版本的源代碼有開源版本,因此程序設計工程師可以結合本控制器硬件設計方案和LDMicro 源代碼來進一步完善上下位機系統,以形成更為完善的產品。

5 通信協議設計

本設計中的控制器功能較為簡單,適合簡單邏輯控制應用,具有成本低、搭建系統迅速的優點。由于在無線通信方面使用常見的工業通信協議,會使得程序開發變得復雜,因此結合上述軟硬件設計方案設計出一種既簡單實施又可以保障通信可靠穩定的通信協議方案。該協議方案的協議幀由包頭、地址、命令幀、數據幀、校驗幀和包尾6 部分組成,如表1所示。

表1 協議幀數據格式

包頭、地址和包尾均為一個字節的十六進制數,數據幀和校驗幀可以根據實際需要定義數據長度,校驗幀存儲的是地址和命令幀所有十六進制數的求和值。通信發送端和接收端同時使用該協議,接收端接收完包頭和包尾所有數據后,再進行校驗對比,如果收到的數據校驗和同接收到的數據幀中交驗幀一致,則說明接收數據正確。

6 通信組網方式

目前,物聯網技術工程實踐以無線通信為主,這使得物聯網終端具有安裝簡單、便于移動狀態使用等優點,因此為大量的多終端實施數據集中采集和管理提供了技術上的可行性和工程安裝的便利性。對于本設計中的控制器,推薦使用ZigBee 和LoRa 技術來實現無線組網功能,通過圖6預留的串行通信接口即可實現有線組網通信,也可直接掛接Zigbee 和LoRa 無線通信模塊。通常ZigBee 用于近距離通信,而LoRa 則用于遠距離通信。

6.1 ZigBee 組網

ZigBee 是基于IEEE802.15.4 標準的低功耗局域網協議,作為一種近距離、低復雜度、低功耗、低速率和低成本的雙向無線通訊技術,主要用于距離短、功耗低且傳輸速率不高的各種電子設備之間進行數據傳輸,以及典型的有周期性數據、間歇性數據和低反應時間數據傳輸的應用,可工作在2.4 GHz(全球流行)、868 MHz(歐洲流行)和915 MHz(美國流行)三個頻段上,分別具有最高250 kbit/s、20 kbit/s 和40 kbit/s 的傳輸速率,其傳輸距離在10~75 m 范圍內且可以繼續增加。本設計在實際應用中主要采用ZigBee 網絡結構,具體如圖13所示。

圖13 ZigBee組網網絡結構

6.2 LoRa 組網

LoRa 是一種LPWAN 通信技術,也是美國Semtech 公司采用和推廣的一種基于擴頻技術的超遠距離無線傳輸方案。該方案改變了以往關于傳輸距離與功耗的折衷考慮方式,而是為用戶提供一種簡單且能夠實現遠距離、低功耗(電池壽命長)、多節點、低成本和大容量的系統,進而擴展傳感網絡。目前,LoRa 主要在全球免費頻段運行,包括433 MHz、868 MHz、915 MHz 等。圖14為本設計在實際應用中所使用的LoRa 網絡結構。

圖14 LoRa組網網絡結構

7 結語

本設計中的這種可用于物聯網領域的小型可編程邏輯控制器產品,不僅可以進行網絡終端簡單地開關量邏輯控制,還降低了邏輯控制成本,并為不同程序設計技術水平的工程技術人員提供了適合的程序設計方案,設計人員可根據實際需要對硬件系統進行增減I/0 點配置。目前,本設計方案主要應用在開關量輸入輸出狀態需要遠距離傳輸顯示或者控制的場所,如生產線上開關量報警狀態、開關量傳感器信號、多開關量輸入和多開關量輸出的邏輯控制等遠距狀態顯示或輸出控制。

猜你喜歡
圖形化編程語言電路設計
基于Arduino圖形化編程的教學應用研究
基于JavaScript編程語言之 閉包技術在焦點輪播上的應用
一種車用醉駕檢測電路設計
Java編程語言的特點與應用
Altium Designer在電路設計中的應用
負反饋放大電路設計
LKJ自動化測試系統圖形化技術研究
淺談不同編程語言對計算機軟件開發的影響
開漏輸出比較器的峰值檢測電路設計
面向對象Web開發編程語言的的評估方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合