專利名稱:通用小型可編程控制器及其控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種工業(yè)通用自動控制裝置,尤其涉及一種基于CAN現(xiàn)場總 線、嵌入式微處理器ARM+FPGA組成的通用小型可編程控制器(PLC)及其 控制方法。
技術(shù)背景目前,小型PLC是開關(guān)量輸入輸出為256點以下的PLC,是一種主要用于 工業(yè)設(shè)備順序控制的通用自動控制裝置,通常以各公司專門設(shè)計的Soc芯片或 應(yīng)用單片機為控制核心,用戶根據(jù)被控對象的需要靈活配置和選擇各種輸入輸 出擴展模塊,小型PLC具有強大的順序邏輯控制功能;但由于生產(chǎn)小型PLC 的各公司在小型PLC主機與各種擴展模塊之間的連接采用各自的總線標(biāo)準(zhǔn),使 得其擴展的各種輸入輸出擴展模塊必須安裝在各自公司設(shè)計的導(dǎo)軌上、或與小 型PLC的CPU模塊必須是近距離的,小型PLC主機及其擴展的各種輸入輸出 擴展模塊只能夠安裝在一個電柜中,如果一臺小型PLC控制的被控對象的檢測 點和控制點在設(shè)備中比較分散,部分檢測點和控制點距離電柜較遠,將會導(dǎo)致 被控對象的檢測點和控制點到小型PLC的連接導(dǎo)線長; 一臺小型PLC只能配 置一個人機界面模塊;另外,雖然大部分小型PLC可以與各自公司的PLC集 成控制系統(tǒng)通過現(xiàn)場總線連接,作為下位機用于現(xiàn)場控制裝置,其輸入輸出擴 展模塊可以配置A/D、 D/A模塊實現(xiàn)PID算法控制,但小型PLC難以將更為復(fù) 雜的控制算法嵌入到PLC程序中來實現(xiàn)對復(fù)雜控制對象的自動控制。 發(fā)明內(nèi)容本發(fā)明的目的在于提供一種能夠?qū)崿F(xiàn)對復(fù)雜對象的控制、靈活配置輸入輸 出擴展模塊、各功能模塊可以安裝在不同的電柜中、在被控對象的檢測點與控 制點距離較遠的情況下方便地實現(xiàn)多點監(jiān)控、并可配置多個人機界面模塊的通 用小型可編程控制器,以克服上述已有技術(shù)的不足;本發(fā)明還提供了上述通用 小型PLC的控制方法,其中,編制專用子程序向FPGA可重構(gòu)控制算法協(xié)處理 器傳輸控制參數(shù)和控制FPGA可重構(gòu)控制算法協(xié)處理器中的控制算法結(jié)果的輸 出,使得控制算法的計算時間不占用通用小型PLC執(zhí)行程序的時間。
為解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是 一種基于CAN現(xiàn)場 總線、嵌入式微處理器ARM+FPGA組成的通用小型可編程控制器,包括可編 程裝置、PLC主機、人機界面模塊和CAN總線;PLC主機包括嵌入式微處理器ARM、模擬量輸入輸出模塊、數(shù)字量輸入 輸出模塊、FLASH存儲器、SDRAM存儲器、EEPROM存儲器和FPGA可重 構(gòu)控制算法協(xié)處理器,嵌入式微處理器ARM作為控制核心,分別與模擬量輸 入輸出模塊、數(shù)字量輸入輸出模塊、FLASH存儲器、SDRAM存儲器、EEPROM 存儲器和FPGA可重構(gòu)控制算法協(xié)處理器連接,F(xiàn)PGA可重構(gòu)控制算法協(xié)處理 器與嵌入式微處理器ARM的輸入輸出I/O端口連接,嵌入式微處理器ARM向 FPGA可重構(gòu)控制算法協(xié)處理器提供控制設(shè)置值、數(shù)據(jù)采集值及控制參數(shù),并 從FPGA可重構(gòu)控制算法協(xié)處理器獲得控制輸出驅(qū)動參數(shù);FPGA可重構(gòu)控制 算法協(xié)處理器中配置有多種控制算法,這些控制算法作為子程序模塊嵌入到小 型可編程控制器的程序中作為功能模塊調(diào)用;FLASH存儲器用于固化系統(tǒng)程 序、PLC指令解釋程序以及固化的數(shù)據(jù)表格;SDRAM存儲器是閃存儲器,用 作輸入輸出映像寄存器、元件映像寄存器、元件寄存器,并存儲中間計算結(jié)果、 用戶程序;EEPROM存儲器存儲各種需要失電保持的數(shù)據(jù)和PLC主機的運行 狀態(tài);PLC主機通過其CAN接口與CAN總線連接,CAN接口由順序連接的 收發(fā)器、光隔和CAN控制器組成,嵌入式微處理器ARM通過CAN總線獲得 用戶編寫的指令程序和監(jiān)控命令、從人機界面模塊獲得被控對象設(shè)備的運行控 制參數(shù)和控制命令、并傳輸PLC主機用戶編寫的指令程序和控制參數(shù)、向人機 界面模塊傳輸被控對象設(shè)備運行的數(shù)字量和模擬量狀態(tài)參數(shù)和控制驅(qū)動參數(shù);包括上位機和手持編程器的可編程裝置通過其內(nèi)置的CAN接口與CAN總 線連接,從而將用戶在可編程裝置上編寫的用戶指令程序下載到PLC主機的 ARM微處理器中,并從CAN總線獲取PLC主機的運行狀態(tài)、讀取PLC主機 的用戶程序、向PLC主機系統(tǒng)發(fā)送控制指令以實現(xiàn)對通用小型可編程控制器的 監(jiān)控;人機界面模塊通過其內(nèi)置的CAN接口與CAN總線連接,從而與嵌入式微 處理器ARM相互傳輸信息,以獲得被控對象設(shè)備的運行狀態(tài)信息、并通過CAN 總線傳輸被控對象設(shè)備的運行控制參數(shù)和控制命令、顯示系統(tǒng)實時運行參數(shù)、 參數(shù)狀態(tài)曲線、以及顯示設(shè)置系統(tǒng)運行參數(shù)、控制參數(shù)、控制命令,人機界面 模塊配置數(shù)量為n, Kn《4;CAN總線是PLC主機、可編程裝置、人機界面模塊各組成部分之間互相 傳輸、交換數(shù)據(jù)的中間媒體,各模塊通過其內(nèi)置的CAN接口與CAN總線連接, 所述的各CAN接口均由順序連接的收發(fā)器、光隔和CAN控制器組成,各收發(fā) 器一端與CAN總線連接,各CAN控制器的另一端分別與PLC主機、可編程 裝置和人機界面模塊相連,從而使得各功能模塊能夠安裝在同一個電柜中或不 同的電柜中或安裝在被控設(shè)備的不同部位上;PLC主機的數(shù)字量輸入輸出模塊由FPGA擴展1/0、光電隔離器、16 64 點數(shù)字量輸入、16 64點數(shù)字量輸出組成;嵌入式微處理器ARM與FPGA擴 展I/0連接,F(xiàn)PGA擴展I/0與光電隔離器連接,光電隔離器通過接線端子分別 與16 64點數(shù)字量輸入和16 64點數(shù)字量輸出連接;所述FPGA擴展I/O的 FPGA能夠靈活配置數(shù)字量的輸入輸出點數(shù),數(shù)字量輸入點數(shù)以16點為單位配 置,可以配置為16或32或48或64;數(shù)字量輸出點數(shù)以16點為單位配置,可 以配置為16或32或48或64,最大配置達到數(shù)字量輸入輸出128點。PLC主機的模擬量輸入輸出模塊由A/D輸入接口、 8路模擬量放大輸入、 D/A芯片、4路模擬量驅(qū)動輸出組成;嵌入式微處理器ARM、 A/D輸入接口、 8路模擬量放大輸入順序連接,8路模擬量放大輸入通過接線端子與被控對象檢 測與驅(qū)動電路連接,從而構(gòu)成數(shù)據(jù)采集通道;嵌入式微處理器ARM、 D/A芯片、 4路模擬量驅(qū)動輸出順序連接,4路模擬量驅(qū)動輸出通過接線端子與被控對象檢 測與驅(qū)動電路連接,從而構(gòu)成控制驅(qū)動輸出通道;FPGA可重構(gòu)控制算法協(xié)處 理器與嵌入式微處理器ARM連接,構(gòu)成控制器;模擬量輸入輸出模塊和嵌入 式微處理器ARM,以及FPGA可重構(gòu)控制算法協(xié)處理器組成閉環(huán)控制電路。本發(fā)明還提供了該通用小型PLC的控制方法,即是利用本發(fā)明上述由嵌入 式微處理器ARM+FPGA組成的通用小型可編程控制器,應(yīng)用嵌入式微處理器 ARM、模擬量輸入輸出模塊、數(shù)字量輸入輸出模塊、FLASH存儲器、SDRAM 存儲器、EEPROM存儲器和FPGA可重構(gòu)控制算法協(xié)處理器,對存儲器進行分 配,應(yīng)用C語言編制系統(tǒng)程序、用戶程序的編譯程序、CAN總線數(shù)據(jù)通訊子 程序,針對FPGA可重構(gòu)控制算法協(xié)處理器,設(shè)置FPGA可重構(gòu)控制算法協(xié)處 理器的命令;編制專用子程序?qū)崿F(xiàn)向FPGA可重構(gòu)控制算法協(xié)處理器傳輸控制 參數(shù)和控制FPGA可重構(gòu)控制算法協(xié)處理器中的控制算法結(jié)果的輸出;在FPGA 可重構(gòu)控制算法協(xié)處理器中編制智能控制算法或其它的控制算法,使得控制算 法的計算時間不占用通用小型PLC執(zhí)行程序的時間;其步驟包括
步驟l、控制程序初始化對PLC主控制器、用于配置擴展I/0口的FPGA和 用于實現(xiàn)智能控制算法的FPGA進行初始化;步驟2、控制程序執(zhí)行數(shù)據(jù)準(zhǔn)備對存儲器進行分配;將D數(shù)據(jù)寄存器、部 分M特殊輔助繼電器值從EEPROM拷貝到SDRAM中,然后將用戶編寫的梯形圖 程序從Norflash拷貝到SDRAM中,最后讀入外部數(shù)字量輸入1/0 口元件狀態(tài)并將 它寫入輸入映象寄存器中;步驟3、控制程序執(zhí)行CPU對用戶程序進行編譯,其中根據(jù)判斷條件進 行PLC對FPGA的參數(shù)傳輸控制;調(diào)用FPGA控制算法及其他控制算法,將輸出 映象區(qū)的內(nèi)容送到數(shù)字量瑜出I/0口對應(yīng)的寄存器中,驅(qū)動執(zhí)行機構(gòu)實現(xiàn)控制;步驟4、控制數(shù)據(jù)傳輸將系統(tǒng)運行的狀態(tài)參數(shù)通過CAN總線傳輸?shù)奖O(jiān)控 系統(tǒng)中。由于采用以上結(jié)構(gòu),本發(fā)明之通用小型可編程控制器及其控制方法具有以 下有益效果一、 能夠?qū)崿F(xiàn)復(fù)雜被控對象的自動控制本發(fā)明是基于CAN現(xiàn)場總線、嵌入式微處理器ARM+FPGA組成的通用 小型可編程控制器,該小型可編程控制器以嵌入式微處理器ARM為控制核心, 以FPGA為可重構(gòu)控制算法協(xié)處理器,F(xiàn)PGA可重構(gòu)控制算法協(xié)處理器與嵌入 式微處理器ARM的輸入輸出I/O端口連接,嵌入式微處理器ARM向FPGA可 重構(gòu)控制算法協(xié)處理器提供控制設(shè)置值、數(shù)據(jù)采集值及控制參數(shù),并從FPGA 可重構(gòu)控制算法協(xié)處理器獲得控制輸出驅(qū)動參數(shù);在FPGA中配置先進的控制 算法,如先進的PID、模糊控制,神經(jīng)網(wǎng)絡(luò)算法等,這些控制算法作為子程序 模塊嵌入到PLC的程序中作為功能模塊調(diào)用;并且,F(xiàn)PGA可重構(gòu)控制算法協(xié) 處理器的控制算法的運算不會占用PLC程序的執(zhí)行時間,因此能夠輕松實現(xiàn)對 復(fù)雜控制對象的自動控制。二、 靈活配置輸入輸出擴展模塊,輸入輸出擴展模塊可以安裝在不同的電 柜中在本發(fā)明中,CAN總線是各組成模塊之間互相傳輸、交換數(shù)據(jù)的中間媒體, 各模塊通過其內(nèi)置的CAN接口與CAN總線連接,并通過CAN總線實現(xiàn)數(shù)據(jù) 交換和通訊,同時在控制方法中采用了 CAN通訊中斷處理過程,使得擴展的 輸入輸出功能模塊通過CAN總線與系統(tǒng)連接,每個擴展模塊能夠安裝在不同 的電柜中或安裝在靠近被控對象控制點和檢測點的部位上,大大減少連接導(dǎo)線
的長度和數(shù)量,并很好的解決了在被控對象的檢測點與控制點距離較遠的情況 下的多點監(jiān)控問題。三、 可以配置多個人機界面模塊由于本發(fā)明之通用小型可編程控制器中各功能模塊均通過CAN總線實現(xiàn) 數(shù)據(jù)交換和通訊,使得人機界面模塊通過CAN總線與系統(tǒng)連接,因此用戶可 以根據(jù)被控對象現(xiàn)場的需求來選擇多個人機界面模塊,便于用戶監(jiān)控被控對象 控制系統(tǒng)的運行狀態(tài)。四、 系統(tǒng)性價比高本發(fā)明以嵌入式微處理器ARM為控制核心,F(xiàn)PGA為可重構(gòu)控制算法協(xié) 處理器,在FPGA中配置先進的控制算法,應(yīng)用FPGA配置數(shù)字量輸入輸出口 , 并且各功能模塊通過CAN現(xiàn)場總線與系統(tǒng)連接起來,各模塊通過其內(nèi)置的 CAN接口與CAN總線連接,CAN總線是各模塊之間互相傳輸、交換數(shù)據(jù)的中 間媒體,使得各功能模塊能夠安裝在同一個電柜中或不同的電柜中或安裝在被 控設(shè)備的不同部位上,大大提高了各功能模塊安裝位置的靈活性,使得該小型 可編程控制器的控制功能與性能增強,具備較高的性價比。下面結(jié)合附圖和實施例對本發(fā)明之通用小型可編程控制器及其控制方法 之技術(shù)特征作進一步的說明。
圖1:本發(fā)明之通用小型可編程控制器的系統(tǒng)結(jié)構(gòu)框圖; 圖2:本發(fā)明之通用小型可編程控制器的硬件連接圖; 圖3:本發(fā)明之通用小型可編程控制器的控制方法的系統(tǒng)總體流程圖; 圖4:本發(fā)明之通用小型可編程控制器的控制方法的存儲器分配框圖;-圖5:本發(fā)明之通用小型可編程控制器的控制方法的A/D定時中斷數(shù)據(jù)采 集流程圖;圖6:本發(fā)明之通用小型可編程控制器的控制方法的CAN通訊中斷處理流 程圖;圖7:本發(fā)明之通用小型可編程控制器的控制方法的PLC用戶程序編譯流 程圖;圖8:本發(fā)明之通用小型可編程控制器的控制方法的PLC對FPGA參數(shù)傳 輸控制流程圖;圖9:本發(fā)明之通用小型可編程控制器的控制方法的FPGA控制算法流程
圖;圖10:本發(fā)明之通用小型可編程控制器的控制方法的PLC對FPGA參數(shù) 傳輸控制的梯形圖; 圖中I一上位機,II一PLC主機,III—手持編程器,IV—人機界面模塊, V—擴展模塊,VI—CAN總線,IIA—模擬量輸入輸出模塊, IIB—數(shù)字量輸入輸出模塊,VIA—CAN接口 , 1—嵌入式微處理器ARM, 2—FLASH存儲器,3—SDRAM存儲器, 4一A/D輸入接口, 5—8路模擬量放大輸入,6—D/A芯片, 7—4路模擬量驅(qū)動輸出,8、 12—接線端子,9一被控對象檢測與驅(qū)動電路, 10—FPGA擴展I/0, 11—光電隔離器,13—16 64點數(shù)字量輸入, 14一16 64點數(shù)字量輸出,15—CAN控制器,16—光隔,17—CAN收發(fā)器, 18—FPGA可重構(gòu)控制算法協(xié)處理器,19—EEPROM;PLC—Programmable Logical Controller,可編程邏輯控制器,簡稱可編程控制器; CAN—Controller Area Network,控制器局域網(wǎng), 一種現(xiàn)場總線; FPGA—Field Programmable Gate Array,現(xiàn)場可編程門陣列; ARM—Advanced RISC Machines, —種微處理器;SPI—Service Provider Interface,服務(wù)提供商接口 ,滿足某種服務(wù)標(biāo)準(zhǔn)的供應(yīng)商提供的符合該標(biāo)準(zhǔn)的應(yīng)用程序接口。
具體實施方式
實施例一一種通用小型可編程控制器,包括上位機I、 PLC主機II、手持編程器III、 人機界面模塊IV和CAN總線V。PLC主機II包括嵌入式微處理器ARM1、模擬量輸入輸出模塊IIA、數(shù)字 量輸入輸出模塊IIB、 FLASH存儲器2、 SDRAM存儲器3、 EEPROM存儲器 19和FPGA可重構(gòu)控制算法協(xié)處理器18,嵌入式微處理器ARMl作為控制核 心,分別與模擬量輸入輸出模塊IIA、數(shù)字量輸入輸出模塊IIB、 FLASH存儲 器2、 SDRAM存儲器3、 EEPROM存儲器19和FPGA可重構(gòu)控制算法協(xié)處 理器18連接,F(xiàn)PGA可重構(gòu)控制算法協(xié)處理器18與嵌入式微處理器ARMl的 輸入輸出I/O端口連接,嵌入式微處理器ARMl向FPGA可重構(gòu)控制算法協(xié)處 理器18提供控制設(shè)置值、數(shù)據(jù)采集值及控制參數(shù),并從FPGA可重構(gòu)控制算 法協(xié)處理器18獲得控制輸出驅(qū)動參數(shù);FPGA可重構(gòu)控制算法協(xié)處理器18中 配置有多種控制算法,如先進的PID、模糊控制,神經(jīng)網(wǎng)絡(luò)算法等,這些控制 算法作為子程序模塊嵌入到PLC的程序中作為功能模塊調(diào)用,F(xiàn)PGA可重構(gòu)控 制算法協(xié)處理器18的控制算法的運算不占用PLC程序的執(zhí)行時間;PLC主機 II通過其CAN接口 VIA與CAN總線VI連接,CAN接口 VIA由順序連接的 收發(fā)器17、光隔16和CAN控制器15組成,嵌入式微處理器ARM1通過CAN 總線VI獲得用戶編寫的指令程序和監(jiān)控命令、從人機界面模塊IV獲得被控對 象設(shè)備的運行控制參數(shù)和控制命令、并傳輸PLC主機II用戶編寫的指令程序和 控制參數(shù)、向人機界面模塊IV傳輸被控對象設(shè)備運行的數(shù)字量和模擬量狀態(tài) 參數(shù)和控制驅(qū)動參數(shù);嵌入式微處理器ARM1的總線與FLASH存儲器2連接, FLASH存儲器2用于固化系統(tǒng)程序、PLC指令解釋程序以及固化的數(shù)據(jù)表格; 嵌入式微處理器ARM1的總線與SDRAM存儲器3連接,SDRAM存儲器3是 閃存儲器,用作輸入輸出映像寄存器、元件映像寄存器、元件寄存器,并存儲 中間計算結(jié)果、用戶程序;EEPROM存儲器存儲各種需要失電保持的數(shù)據(jù)和 PLC主機II的運行狀態(tài);PLC主機II的模擬量輸入輸出模塊IIA由A/D輸入接口 4、 8路模擬量放 大輸入5、 D/A芯片6、 4路模擬量驅(qū)動輸出7組成;嵌入式微處理器ARM1、 A/D輸入接口 4、 8路模擬量放大輸入5順序連接,8路模擬量放大輸入5通過 接線端子8與被控對象檢測與驅(qū)動電路9連接,從而構(gòu)成數(shù)據(jù)采集通道;嵌入 式微處理器ARM1、 D/A芯片6、 4路模擬量驅(qū)動輸出7順序連接,4路模擬量 驅(qū)動輸出7通過接線端子8與被控對象檢測與驅(qū)動電路9連接,從而構(gòu)成控制 驅(qū)動輸出通道;FPGA可重構(gòu)控制算法協(xié)處理器18與嵌入式微處理器ARM1 連接,構(gòu)成控制器;模擬量輸入輸出模塊IIA和嵌入式微處理器ARM1,以及 FPGA可重構(gòu)控制算法協(xié)處理器18組成閉環(huán)控制電路。PLC主機n的數(shù)字量輸入輸出模塊IIB由FPGA擴展1/010、光電隔離器 11、 16 64點數(shù)字量輸入13、 16 64點數(shù)字量輸出14組成;嵌入式微處理器 ARM1與FPGA擴展I/O10連接,F(xiàn)PGA擴展I/O10與光電隔離器11連接,光 電隔離器11通過接線端子12分別與16 64點數(shù)字量輸入13和16 64點數(shù)字 量輸出14連接;所述FPGA擴展I/O10的FPGA能夠靈活配置數(shù)字量的輸入輸 出點數(shù),數(shù)字量輸入點數(shù)以16點為單位配置,可以配置為16或32或48或64; 數(shù)字量輸出點數(shù)以16點為單位配置,可以配置為16或32或48或64,最大配
置達到數(shù)字量輸入輸出128點。上位機I、手持編程器UI都是一種可編程裝置。上位機I通過其內(nèi)置的CAN接口與CAN總線VI連接,從而將用戶在上 位機I上編寫的用戶指令程序下載到PLC主機II的嵌入式微處理器ARM1中、 并從CAN總線VI獲取PLC主機n的運行狀態(tài)、讀取PLC主機n的用戶程序,以及向PLC主機n系統(tǒng)發(fā)送控制指令,以實現(xiàn)對小型可編程控制器的監(jiān)控;上位機I不與CAN總線VI連接,不影響小型可編程控制器的運行。手持編程器III通過其內(nèi)置的CAN接口與CAN總線VI連接,手持編程器 III是提供給用戶編制指令程序,修改指令程序,監(jiān)控小型可編程控制器運行狀 態(tài)的功能模塊,手持編程器m向CAN總線VI傳輸用戶編寫的指令程序和監(jiān) 控命令,并從CAN總線VI獲得小型可編程控制器的運行狀態(tài)信息,如果手持 編程器III不與CAN總線VI連接,不影響小型可編程控制器的運行。人機界面模塊IV是監(jiān)控整個被控對象設(shè)備運行狀況的功能模塊;人機界 面模塊IV通過其內(nèi)置的CAN接口與CAN總線VI連接,從而與嵌入式微處理 器ARM1相互傳輸信息,以獲得被控對象設(shè)備的運行狀態(tài)信息、并通過CAN 總線VI傳輸被控對象設(shè)備的運行控制參數(shù)和控制命令、顯示系統(tǒng)實時運行參 數(shù)、參數(shù)狀態(tài)曲線、以及顯示設(shè)置系統(tǒng)運行參數(shù)、控制參數(shù)、控制命令,用戶 可以根據(jù)需要配置多個人機界面模塊,人機界面模塊IV可以配置n個,l《n 《4,即人機界面模塊IV1、人機界面模塊IV2、人機界面模塊IV3、人機界面 模塊IV4,每個人機界面模塊的功能相同,能夠安裝在同一個電柜中或不同的 電柜中或安裝在被控設(shè)備的不同部位上。CAN總線VI是PLC主機II、上位機I、手持編程器III、人機界面模塊IV 互相傳輸、交換數(shù)據(jù)的中間媒體,CAN總線VI與上位機I、手持編程器III、 人機界面模塊IV通過各個模塊內(nèi)置的CAN接口連接,使得小型可編程控制器 的各功能模塊能夠安裝在同一個電柜中或不同的電柜中或安裝在被控設(shè)備的不 同部位上。所述的各CAN接口均由順序連接的收發(fā)器17、光隔16和CAN控制器15 組成,各收發(fā)器17—端與CAN總線VI連接,各CAN控制器15的另一端分 別與PLC主機II、上位機I、手持編程器III和人機界面模塊IV相連。以上是本發(fā)明的實施方式之一。作為本發(fā)明實施例的一種變換,該小型可編程控制器的可編程裝置也可以 是只有上位機I或只有手持編程器III,當(dāng)只有上位機I時,對于用戶在現(xiàn)場修 改程序不太方便,而只有手持編程器III,雖然方便用戶在現(xiàn)場修改程序,但由 于受手持編程器III本身功能制約,其編程的速度及功能受限。作為本發(fā)明實施例的又一種變換,該小型可編程控制器還可通過增加擴展模塊V來增加模擬量輸出模塊路數(shù),所述擴展模塊V通過其內(nèi)置的CAN接口 與CAN總線VI連接,使得該模塊能夠安裝在同一個電柜中或不同的電柜中或 安裝在被控設(shè)備的不同部位上,以減少連接導(dǎo)線的長度和數(shù)量,擴展模塊V可 配置數(shù)量為m, l《m《10,即擴展模塊V1、…、擴展模塊Vi、…、擴展模塊 V10;擴展模塊V是擴展小型可編程控制器的數(shù)字量輸入輸出點數(shù)以及模擬量 輸入輸出路數(shù)的功能模塊,其可以是數(shù)字量輸入模塊或數(shù)字量輸出擴展功能模 塊,也可以是模擬量輸入模塊或模擬量輸出模塊,若是數(shù)字量輸入擴展功能模 塊,數(shù)字量輸入點數(shù)以16點為單位配置,可以配置為16或32或48或64或 80或96或112或128;若是數(shù)字量輸出擴展功能模塊,數(shù)字量輸出點數(shù)以16 點為單位配置,可以配置為16或32或48或64或80或96或112或128;小 型可編程控制器數(shù)字量輸入輸出的點數(shù)k-數(shù)字量輸入輸出模塊IIB的輸入輸出 點數(shù)+擴展模塊V數(shù)字量的輸入輸出點數(shù),所述小型可編程控制器模擬量輸 入路數(shù)h耐莫擬量輸入輸出模塊IIA的輸入路數(shù)+擴展模塊V的模擬量輸入模 塊路數(shù),小型可編程控制器模擬量輸出路數(shù)§=模擬量輸入輸出模塊IIA的輸 出路數(shù)+擴展模塊V的模擬量輸出模塊路數(shù),上述參數(shù)中,k《256點、h《24、 g《12。PLC主機II的嵌入式微處理器ARM1的SPI與CAN接口 VIA連接,CAN 接口 VIA與CAN總線VI連接,嵌入式微處理器ARM1通過CAN總線VI從 上位機I或手持編程器III獲得用戶編寫的指令程序和監(jiān)控命令、從人機界面模 塊IV獲得被控對象設(shè)備的運行控制參數(shù)和控制命令、從擴展模塊V獲得數(shù)字 量輸入狀態(tài)和模擬量采集的數(shù)據(jù);嵌入式微處理器ARM1通過CAN總線VI 向上位機I或手持編程器III傳輸PLC主機II的用戶編寫的指令程序和控制參 數(shù);向人機界面模塊IV傳輸被控對象設(shè)備運行的數(shù)字量和模擬量狀態(tài)參數(shù)和 控制驅(qū)動參數(shù);向擴展模塊V傳輸數(shù)字量輸出狀態(tài)和模擬量控制驅(qū)動參數(shù)。實施例二一種通用小型PLC的控制方法,是利用本發(fā)明上述由嵌入式微處理器ARM 十FPGA組成的通用小型可編程控制器,應(yīng)用嵌入式微處理器ARM、模擬量輸
入輸出模塊、數(shù)字量輸入輸出模塊、FLASH存儲器、SDRAM存儲器、EEPROM 存儲器和FPGA可重構(gòu)控制算法協(xié)處理器,對存儲器進行分配;應(yīng)用C語言編制 系統(tǒng)程序、用戶程序的編譯程序、CAN總線數(shù)據(jù)通訊子程序,針對FPGA可重 構(gòu)控制算法協(xié)處理器,設(shè)置FPGA可重構(gòu)控制算法協(xié)處理器的命令;編制專用 子程序?qū)崿F(xiàn)向FPGA可重構(gòu)控制算法協(xié)處理器傳輸控制參數(shù)和控制FPGA可重 構(gòu)控制算法協(xié)處理器中的控制算法結(jié)果的輸出;在FPGA可重構(gòu)控制算法協(xié)處 理器中編制智能控制算法或其它的控制算法,使得控制算法的計算時間不占用 通用小型PLC執(zhí)行程序的時間。該控制方法包括以下步驟步驟l、控制程序初始化對PLC主控制器、用于配置擴展I/0口的FPGA和 用于實現(xiàn)智能控制算法的FPGA進行初始化;步驟2、控制程序執(zhí)行數(shù)據(jù)準(zhǔn)備對存儲器進行分配;將D數(shù)據(jù)寄存器、部 分M特殊輔助繼電器值從EEPROM拷貝到SDRAM中,然后將用戶編寫的梯形圖 程序從Norflash拷貝到SDRAM中,最后讀入外部數(shù)字量輸入1/0口元件狀態(tài)并將 它寫入輸入映象寄存器中;步驟3、控制程序執(zhí)行CPU對用戶程序進行編譯,其中根據(jù)判斷條件進行 PLC對FPGA的參數(shù)傳輸控制。調(diào)用FPGA控制算法及其他控制算法,將輸出映 象區(qū)的內(nèi)容送到數(shù)字量輸出1/0口對應(yīng)的寄存器中,驅(qū)動執(zhí)行機構(gòu)實現(xiàn)控制;步驟4、控制數(shù)據(jù)傳輸將系統(tǒng)運行的狀態(tài)參數(shù)通過CAN總線傳輸?shù)奖O(jiān)控 系統(tǒng)中。具體步驟為(參見圖3):Sl: PLC主控制器啟動,完成初始化;S2:將保存在主控制器、用來配置FPGA啟動工作的配置文件傳輸?shù)接脕?配置擴展I/0口的FPGA和用來實現(xiàn)智能控制算法的FPGA中,完成兩個FPGA的 初始化工作;S3:將D數(shù)據(jù)寄存器、部分M特殊輔助繼電器值從EEPROM拷貝到SDRAM中;S4:將用戶編寫的梯形圖程序從Norflash拷貝到SDRAM中; S5:讀入外部數(shù)字量輸入I/0口元件狀態(tài),并將它寫入輸入映象寄存器中; S6- CPU對用戶程序進行編譯,其中根據(jù)判斷條件進行PLC對FPGA的參數(shù) 傳輸控制;S7:調(diào)用FPGA控制算法及其他控制算法,將輸出映象區(qū)的內(nèi)容送到數(shù)字
量輸出I/0口對應(yīng)的寄存器中,驅(qū)動執(zhí)行機構(gòu)實現(xiàn)控制;S8:將系統(tǒng)運行的狀態(tài)參數(shù)通過CAN總線傳輸?shù)奖O(jiān)控系統(tǒng)中;S9:判斷系統(tǒng)是否停止運行,如果否,則跳轉(zhuǎn)回步驟S5; S10:結(jié)束。其中,在步驟2—控制程序執(zhí)行數(shù)據(jù)準(zhǔn)備、步驟3 —控制程序執(zhí)行和步驟4 一控制數(shù)據(jù)傳輸,即在控制方法具體步驟S2至S9中的A/D定時中斷數(shù)據(jù)采集 過程的具體步驟如下(參見圖5):Sah定時時間到進入中斷子程序;Sa2:關(guān)中斷;Sa3: A/D采集外部數(shù)據(jù),進行模數(shù)轉(zhuǎn)換,并把轉(zhuǎn)換得到的數(shù)字量傳送到 FPGA中進行處理;Sa4:開中斷并返回。在步驟2—控制程序執(zhí)行數(shù)據(jù)準(zhǔn)備、步驟3—控制程序執(zhí)行和步驟4一控制 數(shù)據(jù)傳輸,即在控制方法具體步驟S2至S9中的CAN通訊中斷處理過程的具 體步驟如下(參見圖6):SM:關(guān)中斷;Sb2:接收手持編程器通過CAN總線發(fā)過來的數(shù)據(jù); Sb3:接收完畢后,開中斷并返回。在步驟3—控制程序執(zhí)行,即控制方法具體步驟S6中的CPU對用戶程序進行編譯的步驟如下(參見圖7):Scl: CPU從SDRAM用戶程序第一條指令地址處讀指令;Sc2:判斷指令編碼是否等于LD編碼,如果是,則調(diào)用LD的子程序并進入步驟Sc5;Sc3:判斷指令編碼是否等于AND編碼,如果是,則調(diào)用AND的子程序并進入步驟Sc5;Sc4:判斷指令編碼是否等于ORB編碼,如果是,則調(diào)用ORB的子程序并進入步驟Sc5;Sc5:判斷指令編碼是否等于其他的基本指令編碼或功能指令編碼,如果是, 則調(diào)用相應(yīng)的指令子程序并進入步驟Sc6,如果否,則繼續(xù)進行判斷直至所有 基本指令編碼和功能指令編碼判斷完畢;Sc6:取下一條指令的編碼;Sc7:判斷指令編碼是否等于END編碼,如果否,則跳轉(zhuǎn)回步驟Sc2; Sc8:判斷指令編碼是否等于FPGA控制編碼,如果是,調(diào)用PLC對FPGA 參數(shù)傳輸控制子程序,如果否,調(diào)用END子程序; Sc9:返回步驟Scl。上述的END子程序包括輸出元件處理、定時器、計數(shù)器或功能指令處理 的子程序,上述四個子程序為所屬領(lǐng)域技術(shù)人員所公知的程序,此處不再贅述。 在步驟3—控制程序執(zhí)行,即控制方法具體步驟S6中的PLC對FPGA的參數(shù)傳輸控制的步驟如下(參見圖8):Sdh判斷指令編碼是否為FPGA控制編碼,如果否,跳轉(zhuǎn)到步驟Sd6; Sd2:調(diào)用傳輸子程序,將控制給定設(shè)置值傳輸?shù)娇刂茀?shù)存儲器; Sd3:調(diào)用傳輸FPGA子程序,將控制給定設(shè)置值傳輸?shù)紽PGA; Sd4:調(diào)用傳輸子程序,將控制參數(shù)設(shè)置值傳輸?shù)娇刂茀?shù)存儲器; Sd5:調(diào)用傳輸FPGA子程序,將控制參數(shù)設(shè)置值傳輸?shù)紽PGA;Sd6:執(zhí)行其它指令解釋程序;(執(zhí)行其它的程序指令,例如多個完整的邏輯運算和輸出指令,即向FPGA傳輸輸入數(shù)據(jù)后,F(xiàn)PGA還有計算時間,插 入其它指令保證FPGA計算完成之后才取結(jié)果。)Sd7:判斷指令編碼是否為FPGA控制編碼,如果否,跳轉(zhuǎn)到步驟Sd9;Sd8:調(diào)用控制結(jié)果控制子程序,啟動控制結(jié)果存儲器的數(shù)據(jù)傳輸;Sd9:返回。在步驟3—控制程序執(zhí)行,即控制方法具體步驟S7中的FPGA控制算法步 驟如下(參見圖9):Sel:接收PLC主控制器傳輸過來的控制參數(shù)和A/D采樣后傳輸過來的數(shù)據(jù);Se2:根據(jù)控制參數(shù)和A/D采樣的數(shù)據(jù)進行邏輯操作和控制算法計算; Se3:將控制結(jié)果輸出到控制結(jié)果存儲器;Se4:在控制結(jié)果參數(shù)的傳輸命令作用下,將控制算法結(jié)果通過D/A驅(qū)動外 部執(zhí)行機構(gòu)實施控制。
權(quán)利要求
1.一種通用小型可編程控制器,其特征在于所述小型可編程控制器包括可編程裝置、PLC主機(II)、人機界面模塊(IV)和CAN總線(VI);所述的PLC主機(II)包括嵌入式微處理器ARM(1)、模擬量輸入輸出模塊(IIA)、數(shù)字量輸入輸出模塊(IIB)、FLASH存儲器(2)、SDRAM存儲器(3)、EEPROM存儲器(19)和FPGA可重構(gòu)控制算法協(xié)處理器(18),嵌入式微處理器ARM(1)作為控制核心,分別與模擬量輸入輸出模塊(IIA)、數(shù)字量輸入輸出模塊(IIB)、FLASH存儲器(2)、SDRAM存儲器(3)、EEPROM存儲器(19)和FPGA可重構(gòu)控制算法協(xié)處理器(18)連接,F(xiàn)PGA可重構(gòu)控制算法協(xié)處理器(18)與嵌入式微處理器ARM(1)的輸入輸出I/O端口連接,嵌入式微處理器ARM(1)向FPGA可重構(gòu)控制算法協(xié)處理器(18)提供控制設(shè)置值、數(shù)據(jù)采集值及控制參數(shù),并從FPGA可重構(gòu)控制算法協(xié)處理器(18)獲得控制輸出驅(qū)動參數(shù);FPGA可重構(gòu)控制算法協(xié)處理器(18)中配置有多種控制算法,這些控制算法作為子程序模塊嵌入到小型可編程控制器的程序中作為功能模塊調(diào)用;FLASH存儲器(2)用于固化系統(tǒng)程序、PLC指令解釋程序以及固化的數(shù)據(jù)表格;SDRAM存儲器(3)是閃存儲器,用作輸入輸出映像寄存器、元件映像寄存器、元件寄存器、并存儲中間計算結(jié)果和用戶程序;EEPROM存儲器存儲各種需要失電保持的數(shù)據(jù)和PLC主機(II)的運行狀態(tài);PLC主機(II)通過其CAN接口(VIA)與CAN總線(VI)連接,CAN接口(VIA)由順序連接的收發(fā)器(17)、光隔(16)和CAN控制器(15)組成,嵌入式微處理器ARM(1)通過CAN總線(VI)獲得用戶編寫的指令程序和監(jiān)控命令、從人機界面模塊(IV)獲得被控對象設(shè)備的運行控制參數(shù)和控制命令、并傳輸PLC主機(II)用戶編寫的指令程序和控制參數(shù)、向人機界面模塊(IV)傳輸被控對象設(shè)備運行的數(shù)字量和模擬量狀態(tài)參數(shù)和控制驅(qū)動參數(shù);所述的可編程裝置通過其內(nèi)置的CAN接口與CAN總線(VI)連接,從而將用戶在可編程裝置上編寫的用戶指令程序下載到PLC主機(II)的ARM微處理器(1)中,并從CAN總線(VI)獲取PLC主機(II)的運行狀態(tài)、讀取PLC主機(II)的用戶程序、向PLC主機(II)系統(tǒng)發(fā)送控制指令以實現(xiàn)對通用可編程控制器的監(jiān)控;所述的人機界面模塊(IV)通過其內(nèi)置的CAN接口與CAN總線(VI)連接,從而與嵌入式微處理器ARM(1)相互傳輸信息,以獲得被控對象設(shè)備的運行狀態(tài)信息、并通過CAN總線(VI)傳輸被控對象設(shè)備的運行控制參數(shù)和控制命令、顯示系統(tǒng)實時運行參數(shù)、參數(shù)狀態(tài)曲線、以及顯示設(shè)置系統(tǒng)運行參數(shù)、控制參數(shù)、控制命令,人機界面模塊(IV)配置數(shù)量為n,1≤n≤4;所述的CAN總線(VI)是可編程裝置、PLC主機(II)、人機界面模塊(IV)各組成部分之間互相傳輸、交換數(shù)據(jù)的中間媒體,各模塊通過其內(nèi)置的CAN接口與CAN總線(VI)連接,使得PLC主機(II)和人機界面模塊(IV)能夠安裝在同一個電柜中或不同的電柜中或安裝在被控設(shè)備的不同部位上。
2. 根據(jù)權(quán)利要求1所述的通用小型可編程控制器,其特征在于所述的可 編程裝置是上位機(1),所述上位機(I)通過其內(nèi)置的CAN接口與CAN總線(VI)連接。
3. 根據(jù)權(quán)利要求1所述的通用小型可編程控制器,其特征在于所述的可 編程裝置是手持編程器(III),所述手持編程器(III)通過其內(nèi)置的CAN接口 與CAN總線(VI)連接。
4. 根據(jù)權(quán)利要求1所述的通用小型可編程控制器,其特征在于所述的可編程裝置(i)是上位機(i)和手持編程器(m),上位機(i)和手持編程器(in)均通過其內(nèi)置的CAN接口與CAN總線(VI)連接。
5. 根據(jù)權(quán)利要求1或2或3或4所述的通用小型可編程控制器,其特征在 于所述PLC主機(II)的數(shù)字量輸入輸出模塊(IIB)由FPGA擴展I/0 (10)、 光電隔離器(11)、 16 64點數(shù)字量輸入(13)、 16 64點數(shù)字量輸出(14)組 成;嵌入式微處理器ARM (1)與FPGA擴展I/0 (10)連接,F(xiàn)PGA擴展I/O(10)與光電隔離器(11)連接,光電隔離器(11)通過接線端子(12)分別 與16 64點數(shù)字量輸入(13)和16 64點數(shù)字量輸出(14)連接;所述FPGA 擴展I/O (10)的FPGA能夠靈活配置數(shù)字量的輸入輸出點數(shù),數(shù)字量輸入點 數(shù)以16點為單位配置,可以配置為16或32或48或64;數(shù)字量輸出點數(shù)以16 點為單位配置,可以配置為16或32或48或64,最大配置達到數(shù)字量輸入輸 出128點。
6. 根據(jù)權(quán)利要求1、 2、 3或4所述的通用小型可編程控制器,其特征在于 所述PLC主機(II)的模擬量輸入輸出模塊(IIA)由A/D輸入接口 (4)、 8路 模擬量放大輸入(5)、 D/A芯片(6)、 4路模擬量驅(qū)動輸出(7)組成;嵌入式 微處理器ARM (1)、 A/D輸入接口 (4)、 8路模擬量放大輸入(5)順序連接,8路模擬量放大輸入(5)通過接線端子(8)與被控對象檢測與驅(qū)動電路(9) 連接,從而構(gòu)成數(shù)據(jù)采集通道;嵌入式微處理器ARM (1)、 D/A芯片(6)、 4 路模擬量驅(qū)動輸出(7)順序連接,4路模擬量驅(qū)動輸出(7)通過接線端子(8) 與被控對象檢測與驅(qū)動電路(9)連接,從而構(gòu)成控制驅(qū)動輸出通道;FPGA可 重構(gòu)控制算法協(xié)處理器(18)與嵌入式微處理器ARM (1)連接,構(gòu)成控制器; 模擬量輸入輸出模塊(IIA)和嵌入式微處理器ARM (1),以及FPGA可重構(gòu) 控制算法協(xié)處理器(18)組成閉環(huán)控制電路。
7.根據(jù)權(quán)利要求l、 2、 3或4所述的通用小型可編程控制器,其特征在于 所述小型可編程控制器還包括擴展模塊(V),所述擴展模塊(V)通過其內(nèi)置 的CAN接口與CAN總線(VI)連接,使得該模塊能夠安裝在同一個電柜中或 不同的電柜中或安裝在被控設(shè)備的不同部位上,擴展模塊(V)可配置數(shù)量為 m, 1《m《10;所述擴展模塊(V)是擴展小型可編程控制器的數(shù)字量輸入輸 出點數(shù)以及模擬量輸入輸出路數(shù)的功能模塊,其可以是數(shù)字量輸入模塊或數(shù)字 量輸出擴展功能模塊,也可以是模擬量輸入模塊或模擬量輸出模塊,數(shù)字量輸 入輸出擴展功能模塊,數(shù)字量輸入點數(shù)以16點為單位配置,可以配置為16或 32或48或64或80或96或112或128;數(shù)字量輸出點數(shù)以16點為單位配置, 可以配置為16或32或48或64或80或96或112或128;所述小型可編程控 制器數(shù)字量輸入輸出的點數(shù)1^數(shù)字量輸入輸出模塊(IIB)的輸入輸出點數(shù)+ 擴展模塊(V)數(shù)字量的輸入輸出點數(shù),所述小型可編程控制器模擬量輸入路 數(shù)11=模擬量輸入輸出模塊(IIA)的輸入路數(shù)+擴展模塊(V)的模擬量輸入 模塊路數(shù),所述小型可編程控制器模擬量輸出路數(shù)§=模擬量輸入輸出模塊 (IIA)的輸出路數(shù)+擴展模塊(V)的模擬量輸出模塊路數(shù),上述參數(shù)中,k 《256點、h《24、 g《12。
8.根據(jù)權(quán)利要求5所述的通用小型可編程控制器,其特征在于所述小型 可編程控制器還包括擴展模塊(V),所述擴展模塊(V)通過其內(nèi)置的CAN 接口與CAN總線(VI)連接,使得該模塊能夠安裝在同一個電柜中或不同的 電柜中或安裝在被控設(shè)備的不同部位上,擴展模塊(V)可配置數(shù)量為m, l《 m《10;所述擴展模塊(V)是擴展小型可編程控制器的數(shù)字量輸入輸出點數(shù)以 及模擬量輸入輸出路數(shù)的功能模塊,其可以是數(shù)字量輸入模塊或數(shù)字量輸出擴 展功能模塊,也可以是模擬量輸入模塊或模擬量輸出模塊,數(shù)字量輸入輸出擴 展功能模塊,數(shù)字量輸入點數(shù)以16點為單位配置,可以配置為16或32或48或64或80或96或112或128;數(shù)字量輸出點數(shù)以16點為單位配置,可以配 置為16或32或48或64或80或96或112或128;所述小型可編程控制器數(shù) 字量輸入輸出的點數(shù)k-數(shù)字量輸入輸出模塊(IIB)的輸入輸出點數(shù)+擴展模 塊(V)數(shù)字量的輸入輸出點數(shù),所述小型可編程控制器模擬量輸入路數(shù)h—莫 擬量輸入輸出模塊(IIA)的輸入路數(shù)+擴展模塊(V)的模擬量輸入模塊路 數(shù),所述小型可編程控制器模擬量輸出路數(shù)g二模擬量輸入輸出模塊(IIA)的 輸出路數(shù)+擴展模塊(V)的模擬量輸出模塊路數(shù),上述參數(shù)中,k《256點、h
9. 根據(jù)權(quán)利要求6所述的通用小型可編程控制器,其特征在于:所述小型 可編程控制器還包括擴展模塊(V),所述擴展模塊(V)通過其內(nèi)置的CAN 接口與CAN總線(VI)連接,使得該模塊能夠安裝在同一個電柜中或不同的 電柜中或安裝在被控設(shè)備的不同部位上,擴展模塊(V)可配置數(shù)量為m, l《 m《10;所述擴展模塊(V)是擴展小型可編程控制器的數(shù)字量輸入輸出點數(shù)以 及模擬量輸入輸出路數(shù)的功能模塊,其可以是數(shù)字量輸入模塊或數(shù)字量輸出擴 展功能模塊,也可以是模擬量輸入模塊或模擬量輸出模塊,數(shù)字量輸入輸出擴 展功能模塊,數(shù)字量輸入點數(shù)以16點為單位配置,可以配置為16或32或48 或64或80或96或112或128;數(shù)字量輸出點數(shù)以16點為單位配置,可以配 置為16或32或48或64或80或96或112或128;所述小型可編程控制器數(shù) 字量輸入輸出的點數(shù)1^數(shù)字量輸入輸出模塊(IIB)的輸入輸出點數(shù)+擴展模 塊(V)數(shù)字量的輸入輸出點數(shù),所述小型可編程控制器模擬量輸入路數(shù)h—莫 擬量輸入輸出模塊(IIA)的輸入路數(shù)+擴展模塊(V)的模擬量輸入模塊路 數(shù),所述小型可編程控制器模擬量輸出路數(shù)g二模擬量輸入輸出模塊(IIA)的 輸出路數(shù)+擴展模塊(V)的模擬量輸出模塊路數(shù),上述參數(shù)中,k《256點、h
10. —種通用小型可編程控制器的控制方法,其特征在于該控制方法是 利用本發(fā)明上述由嵌入式微處理器ARM+FPGA組成的通用小型可編程控制 器,應(yīng)用嵌入式微處理器ARM、模擬量輸入輸出模塊、數(shù)字量輸入輸出模塊、 FLASH存儲器、SDRAM存儲器、EEPROM存儲器和FPGA可重構(gòu)控制算法 協(xié)處理器,對存儲器進行分配;應(yīng)用C語言編制系統(tǒng)程序、用戶程序的編譯程 序、CAN總線數(shù)據(jù)通訊子程序,針對FPGA可重構(gòu)控制算法協(xié)處理器,設(shè)置 FPGA可重構(gòu)控制算法協(xié)處理器的命令;編制專用子程序?qū)崿F(xiàn)向FPGA可重構(gòu) 控制算法協(xié)處理器傳輸控制參數(shù)和控制FPGA可重構(gòu)控制算法協(xié)處理器中的控 制算法結(jié)果的輸出;在FPGA可重構(gòu)控制算法協(xié)處理器中編制智能控制算法或 其它的控制算法,使得控制算法的計算時間不占用通用小型PLC執(zhí)行程序的時 間;其步驟包括步驟l、控制程序初始化對PLC主控制器、用于配置擴展I/O口的FPGA和 用于實現(xiàn)智能控制算法的FPGA進行初始化;步驟2、控制程序執(zhí)行數(shù)據(jù)準(zhǔn)備對存儲器進行分配;將D數(shù)據(jù)寄存器、部 分M特殊輔助繼電器值從EEPROM拷貝到SDRAM中,然后將用戶編寫的梯形圖 程序從Norflash拷貝到SDRAM中,最后讀入外部數(shù)字量輸入1/0 口元件狀態(tài)并將它寫入輸入映象寄存器中;步驟3、控制程序執(zhí)行CPU對用戶程序進行編譯,其中根據(jù)判斷條件進行 PLC對FPGA的參數(shù)傳輸控帝U;調(diào)用FPGA控制算法及其他控制算法,將輸出映 象區(qū)的內(nèi)容送到數(shù)字量輸岀I/0口對應(yīng)的寄存器中,驅(qū)動執(zhí)行機構(gòu)實現(xiàn)控制;步驟4、控制數(shù)據(jù)傳輸將系統(tǒng)運行的狀態(tài)參數(shù)通過CAN總線傳輸?shù)奖O(jiān)控 系統(tǒng)中。
11.根據(jù)權(quán)利要求10所述的通用小型可編程控制器的控制方法,其特征在 于所述控制方法的具體步驟為Sl: PLC主控制器啟動,完成初始化;S2:將保存在主控制器、用來配置FPGA啟動工作的配置文件傳輸?shù)接脕?配置擴展I/0口的FPGA和用來實現(xiàn)智能控制算法的FPGA中,完成兩個FPGA的 初始化工作;S3:將D數(shù)據(jù)寄存器、部分M特殊輔助繼電器值從EEPROM拷貝到SDRAM中;S4:將用戶編寫的梯形圖程序從Norflash拷貝到SDRAM中; S5:讀入外部數(shù)字量輸入I/0口元件狀態(tài),并將它寫入輸入映象寄存器中; S6: CPU對用戶程序進行編譯,其中根據(jù)判斷條件進行PLC對FPGA的參數(shù) 傳輸控制;S7:調(diào)用FPGA控制算法及其他控制算法,將輸出映象區(qū)的內(nèi)容送到數(shù)字 量輸出I/0口對應(yīng)的寄存器中,驅(qū)動執(zhí)行機構(gòu)實現(xiàn)控制;S8:將系統(tǒng)運行的狀態(tài)參數(shù)通過CAN總線傳輸?shù)奖O(jiān)控系統(tǒng)中; S9:判斷系統(tǒng)是否停止運行,如果否,則跳轉(zhuǎn)回步驟S5;S10:結(jié)束。
12. 根據(jù)權(quán)利要求11所述的通用小型可編程控制器的控制方法,其特征在 于:在所述控制方法的具體步驟S2至S9中包括有A/D定時中斷數(shù)據(jù)采集過程, 其步驟如下Sah定時時間到進入中斷子程序;Sa2:關(guān)中斷;Sa3: A/D采集外部數(shù)據(jù),進行模數(shù)轉(zhuǎn)換,并把轉(zhuǎn)換得到的數(shù)字量傳送到 FPGA中進行處理;Sa4:開中斷并返回。
13. 根據(jù)權(quán)利要求11所述的通用小型可編程控制器的控制方法,其特征在 于在所述控制方法的具體步驟S2至S9中包括有CAN通訊中斷處理過程, 其步驟如下SM:關(guān)中斷;Sb2:接收手持編程器通過CAN總線發(fā)過來的數(shù)據(jù); Sb3:接收完畢后,開中斷并返回。
14. 根據(jù)權(quán)利要求11所述的通用小型可編程控制器的控制方法,其特征在 于所述控制方法的具體步驟S6中,CPU對用戶程序進行編譯的步驟如下Scl: CPU從SDRAM用戶程序第一條指令地址處讀指令;Sc2:判斷指令編碼是否等于LD編碼,如果是,則調(diào)用LD的子程序并進入步驟Sc5;Sc3:判斷指令編碼是否等于AND編碼,如果是,則調(diào)用AND的子程序 并進入步驟Sc5;Sc4:判斷指令編碼是否等于ORB編碼,如果是,則調(diào)用ORB的子程序 并進入步驟Sc6;Sc5:判斷指令編碼是否等于其他的基本指令編碼或功能指令編碼,如果是,則調(diào)用相應(yīng)的子程序并進入步驟Sc6,如果否,則繼續(xù)進行判斷直至所有的基 本指令編碼和功能指令編碼判斷完畢; Sc6:取下一條指令的編碼;Sc7:判斷指令編碼是否等于END編碼,如果否,則跳轉(zhuǎn)回步驟Sc2; Sc8:判斷指令編碼是否等于FPGA控制編碼,如果是,調(diào)用PLC對FPGA 參數(shù)傳輸控制子程序,如果否,調(diào)用END子程序,END子程序包括輸出元件處理、定時器、計數(shù)器或功能指令處理的子程序; Sc9:返回步驟Scl。
15. 根據(jù)權(quán)利要求11或14所述的通用小型可編程控制器的控制方法,其 特征在于所述控制方法的具體步驟S6中,PLC對FPGA的參數(shù)傳輸控制的步驟如下Sdh判斷指令編碼是否為FPGA控制編碼,如果否,跳轉(zhuǎn)到步驟Sd6; Sd2:調(diào)用傳輸子程序,將控制給定設(shè)置值傳輸?shù)娇刂茀?shù)存儲器;Sd3:調(diào)用FPGA傳輸子程序,將控制給定設(shè)置值傳輸?shù)紽PGA; Sd4:調(diào)用傳輸子程序,將控制參數(shù)設(shè)置值傳輸?shù)娇刂茀?shù)存儲器; Sd5:調(diào)用傳輸FPGA子程序,將控制參數(shù)設(shè)置值傳輸?shù)紽PGA; Sd6:執(zhí)行其它指令解釋程序;Sd7:判斷指令編碼是否為FPGA控制編碼,如果否,跳轉(zhuǎn)到步驟Sd9; Sd8:調(diào)用控制結(jié)果控制子程序,啟動控制結(jié)果存儲器的數(shù)據(jù)傳輸; Sd9:返回。
16. 根據(jù)權(quán)利要求ll所述的通用小型可編程控制器的控制方法,其特征在 于所述控制方法的具體步驟S7中,F(xiàn)PGA控制算法步驟如下Sel:接收PLC主控制器傳輸過來的控制參數(shù)和A/D采樣后傳輸過來的數(shù)據(jù);Se2:根據(jù)控制參數(shù)和A/D采樣的數(shù)據(jù)進行邏輯操作和控制算法計算;Se3:將控制結(jié)果輸出到控制結(jié)果存儲器;Se4:在控制結(jié)果參數(shù)的傳輸命令作用下,將控制算法結(jié)果通過D/A驅(qū)動外部執(zhí)行機構(gòu)實施控制。
全文摘要
一種通用小型可編程控制器及其控制方法,該可編程控制器包括可編程裝置、PLC主機、1~4個人機界面模塊、擴展模塊和CAN總線,PLC主機由嵌入式微處理器ARM、模擬量輸入輸出模塊、數(shù)字量輸入輸出模塊、FLASH存儲器、SDRAM存儲器、EEPROM存儲器、FPGA可重構(gòu)控制算法協(xié)處理器組成,配置的I/O點數(shù)最大到256,A/D最大路數(shù)24路,D/A最大路數(shù)12路;其控制方法是通過控制程序初始化、控制程序執(zhí)行數(shù)據(jù)準(zhǔn)備、控制程序執(zhí)行和控制程序數(shù)據(jù)傳輸步驟,并在FPGA中編制智能控制算法,實現(xiàn)復(fù)雜被控對象的自動控制、靈活配置輸入輸出擴展模塊、使控制算法的計算時間不占用通用小型PLC執(zhí)行程序的時間。
文檔編號G05B19/05GK101162389SQ20071005294
公開日2008年4月16日 申請日期2007年8月7日 優(yōu)先權(quán)日2007年8月7日
發(fā)明者李克儉, 田小剛, 蔡啟仲, 袁海英, 覃永新, 郭毅鋒, 陳文輝, 黃捷峰, 娜 黎 申請人:廣西工學(xué)院