新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM和CAN總線的嵌入式PLC設(shè)計(jì)

基于ARM和CAN總線的嵌入式PLC設(shè)計(jì)

作者: 時(shí)間:2012-04-10 來源:網(wǎng)絡(luò) 收藏

0 前言

可編程邏輯控制器(),一種數(shù)字運(yùn)算操作的電子系統(tǒng),專為在工業(yè)環(huán)境應(yīng)用而設(shè)計(jì)。它采用一類可編程的存儲(chǔ)器,用于其內(nèi)部存儲(chǔ)程序,執(zhí)行邏輯運(yùn)算、順序控制、定時(shí)、計(jì)數(shù)與算術(shù)操作等面向用戶的指令,并通過數(shù)字或模擬輸入/輸出控制各種類型的機(jī)械或生產(chǎn)過程,是工業(yè)控制的核心部分。隨著工業(yè)技術(shù)的發(fā)展以及規(guī)模的不斷擴(kuò)大,傳統(tǒng)的面臨著IO點(diǎn)數(shù)增多、通訊功能需要增強(qiáng)等諸多方面的挑戰(zhàn),已無法滿足個(gè)性化、差異化的需求。

現(xiàn)有的設(shè)計(jì)主要有工控機(jī)、單片機(jī)板等。工控機(jī)在互連、表達(dá)、算法等方面優(yōu)勢(shì)明顯,但其實(shí)時(shí)性、穩(wěn)定性難以滿足連續(xù)控制的苛刻要求,通常用于監(jiān)控。單片機(jī)系統(tǒng)在成本控制上更加靈活,可是沒有操作系統(tǒng)使其只能應(yīng)用于低端場(chǎng)合。具有嵌入式操作系統(tǒng)的將能結(jié)合兩者的優(yōu)點(diǎn),成為PLC領(lǐng)域的主要研究方向。本文介紹以嵌入式芯片STM32和相結(jié)合的方式進(jìn)行嵌入式PLC設(shè)計(jì),并采用μC/OS-II實(shí)時(shí)操作系統(tǒng),利用其開放性、模塊化和可擴(kuò)展性的系統(tǒng)結(jié)構(gòu)特性來達(dá)到高實(shí)時(shí)要求的PLC控制,在保證實(shí)時(shí)性的同時(shí),實(shí)現(xiàn)多點(diǎn)位、復(fù)雜功能的PLC系統(tǒng)控制目標(biāo)。

1 系統(tǒng)總體設(shè)計(jì)

系統(tǒng)總體設(shè)計(jì)框圖如圖1所示。本設(shè)計(jì)采用ST公司生產(chǎn)STM32F103RCT6作為系統(tǒng)的主處理器。STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的 Cortex-M3內(nèi)核,它集成了兩個(gè)CAN控制器,并為每個(gè)CAN控制器分配了256字節(jié)的SRAM,每個(gè)CAN控制器有3個(gè)發(fā)送郵箱和兩個(gè)接收FIFO。它主要負(fù)責(zé)采集、處理開關(guān)量和模擬量輸入,控制開關(guān)量輸出,同時(shí)通過完成與上位機(jī)的通信。

基于ARM和CAN總線的嵌入式PLC設(shè)計(jì)

開關(guān)量的輸入,為了減少外部開關(guān)對(duì)系統(tǒng)的干擾,首先在輸入端用光電耦合器隔離,再由IO口分別讀取12路通道的輸入,讀取的開關(guān)量可以存儲(chǔ)在的存儲(chǔ)器內(nèi)。對(duì)開關(guān)量數(shù)據(jù)進(jìn)行處理,一方面通過將數(shù)據(jù)傳輸?shù)缴衔粰C(jī);另一方面將開關(guān)狀態(tài)由LED實(shí)時(shí)顯示輸入開關(guān)量狀態(tài)。對(duì)于13路的開關(guān)量輸出,ARM通過CAN總線得到上位機(jī)傳來的開關(guān)量輸出數(shù)據(jù),并且將數(shù)據(jù)進(jìn)行處理,一方面通過控制繼電器的鎖存器將數(shù)據(jù)鎖存,完成對(duì)繼電器的開關(guān)控制;另一方面將開關(guān)狀態(tài)由LED實(shí)時(shí)顯示輸出開關(guān)量狀態(tài)。模擬量的采樣則通過信號(hào)放大調(diào)理電路及相應(yīng)的控制電路,然后對(duì)其進(jìn)行A/D轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)字量讀入PLC系統(tǒng)的輸入映像緩沖區(qū),從而完成對(duì)模擬量的采集。


上一頁 1 2 3 下一頁

關(guān)鍵詞: ARM CAN總線 PLC

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉