陳 卓,陳柏金
(華中科技大學 材料成形與模具技術國家重點實驗室,湖北 武漢430074)
卷板機是金屬加工行業(yè)廣泛使用的加工裝備。卷板機數(shù)控系統(tǒng)可滿足方便、高效、高精的生產(chǎn)要求。目前廣泛應用于卷板機上的數(shù)控系統(tǒng)是基于工業(yè)控制計算機和PLC 開發(fā)的,技術已經(jīng)十分成熟。隨著電子行業(yè)技術的進步,嵌入式處理器憑借自身優(yōu)勢得到越來越多的應用。相對于傳統(tǒng)的基于PLC開發(fā)的數(shù)控系統(tǒng),嵌入式系統(tǒng)體積小,功耗低,成本低,同時能夠運行嵌入式操作系統(tǒng),多任務處理能力強,運算速度快。從近年的發(fā)展趨勢看,工業(yè)控制系統(tǒng)的嵌入式化將是工業(yè)控制系統(tǒng)發(fā)展的一個重要方向。
本文詳細介紹一套采用ARM926EJ 核的S3C2416處理器和Altera 公司MAX II 系列CPLD EPM570T 144C5 為控制核心的數(shù)控系統(tǒng)設計方案。該系統(tǒng)具有完備的用戶接口和控制接口、運行Linux 操作系統(tǒng)、擁有基于Qt 設計的友好觸控界面,可適用于常用的三輥或四輥卷板機控制。此系統(tǒng)具有一定的通用性,也可搭配合適的數(shù)控軟件應用于其他工業(yè)控制場合。
該數(shù)控系統(tǒng)硬件設計主要分為ARM 最小系統(tǒng)和CPLD 互聯(lián)以及基于CPLD 擴展各種I/O 接口兩大部分。該數(shù)控系統(tǒng)具有64MB DDRII 運行內存,256MB SLC NAND Flash 存儲器用于存儲系統(tǒng)軟件和數(shù)據(jù),ARM 處理器運行主頻為400MHz。ARM處理器是系統(tǒng)的控制核心,完成數(shù)據(jù)計算、系統(tǒng)控制、人機交互、通訊等任務。因ARM 芯片I/O 端口數(shù)量有限,而控制卷板機需要較多的I/O 端口,采用CPLD 擴展各類控制接口。ARM 通過16 位數(shù)據(jù)總線、8 位地址總線、控制總線(片選、讀、寫信號等)以并行總線方式與CPLD 實現(xiàn)互聯(lián)。
該數(shù)控系統(tǒng)電源電壓為5V,由于數(shù)控系統(tǒng)需要有不同的電壓確保各類器件正常工作,在系統(tǒng)電源模塊中分別采用LM2596、AD0515、AD587 等專用電源器件實現(xiàn)系統(tǒng)所需的5V、3.3V、±15V、±10V 等各種不同電壓。CPLD 運行時鐘由50MHz 的晶振提供。
卷板機數(shù)控系統(tǒng)需要對卷板機的工作輥、倒頭裝置等進行控制,根據(jù)卷板機液壓系統(tǒng)原理,對各種液壓控制元件進行控制,同時還需要對現(xiàn)場的各種傳感器、編碼器、開關量信號等進行采集以用于工作輥運動控制和監(jiān)測設備運行狀態(tài),系統(tǒng)采用2 片CPLD 芯片擴展了24/44 路開關量輸入/輸出接口、16/8 路模擬量輸入/輸出接口以及6 路增量式旋轉編碼器信號輸入接口以滿足控制需求,此外系統(tǒng)還具有觸摸屏LCD、USB、UART、以太網(wǎng)絡等接口。系統(tǒng)硬件部分設計成主控制電路板和各個接口電路板相分離的形式,便于構成不同配置的系統(tǒng)。
數(shù)控系統(tǒng)硬件接口整體結構如圖1 所示。
數(shù)控系統(tǒng)的各種硬件接口功能如下:
開關量輸出接口用于控制液壓電磁閥等控制元件,開關量輸入接口用于采集現(xiàn)場的各種開關量輸入值。采用PC817 光電耦合器實現(xiàn)開關信號的光電隔離,在數(shù)字量輸出時采用ULN2803 提高輸出功率。
增量式編碼器接口采集旋轉式編碼器信號,用于卷板機工作輥位移、角位移等的測量,需要將A+、A-、B+、B-、Z+、Z-差分信號轉為A、B、Z 單端信號,通過光電隔離以及信號整形來獲得良好的信號波形,再將信號電壓轉換為CPLD 引腳容許電壓即可送入CPLD。
圖1 基于ARM 的卷板機數(shù)控系統(tǒng)硬件結構
AD 轉換電路用來測量卷板機液壓系統(tǒng)的工作壓力以及部分位移信號,采用12 位的AD 轉換器AD1674 和多路模擬開關AD7506 實現(xiàn)。
對于一些控制精度要求高的卷板機,液壓缸的運動控制采用了電液比例閥,需要模擬量輸出接口來用于控制電液比例方向閥和比例壓力閥,采用12位4 通道DA 轉換器DAC7724 芯片實現(xiàn)。
LCD 觸摸屏接口用于外接8 寸觸摸屏、USB 接口可以用于外接鍵鼠、UART 接口用于與上位機進行通訊、以太網(wǎng)接口不僅可用于系統(tǒng)更新時的NFS掛載,同時也可用于實現(xiàn)控制系統(tǒng)網(wǎng)絡化,ARM JTAG 接口用于ARM 程序調試,CPLD 的JTAG 接口用于CPLD 程序的下載。
數(shù)控系統(tǒng)軟件實現(xiàn)人機交互、控制算法、分配和控制系統(tǒng)硬件資源、發(fā)出控制信號和設備狀態(tài)監(jiān)測等任務。卷板機數(shù)控系統(tǒng)軟件分為應用控制層、操作系統(tǒng)層和硬件層三部分。該數(shù)控系統(tǒng)運行Linux 操作系統(tǒng),其中操作系統(tǒng)層包括操作系統(tǒng)API、操作系統(tǒng)內核、設備驅動程序三部分。應用層軟件通過操作系統(tǒng)API 與系統(tǒng)層進行信息交互,系統(tǒng)層則通過設備驅動程序驅動CPLD 與其他外設,使信號通過硬件接口與被控設備產(chǎn)生交互以實現(xiàn)控制。系統(tǒng)軟件結構以及三者之間的關系如圖2 所示。
圖2 卷板機數(shù)控系統(tǒng)軟件層次結構
數(shù)控系統(tǒng)的應用控制軟件主要包括人機交互模塊、控制模塊、數(shù)據(jù)采集模塊和故障診斷模塊,其中人機交互模塊包括工藝參數(shù)計算、系統(tǒng)參數(shù)設置等功能模塊。
2.1.1 人機交互模塊
人機交互模塊基于Qt 開發(fā),以水平下調式三輥卷板機人機交互模塊為例,其主要包括工藝參數(shù)計算、工藝參數(shù)選擇、系統(tǒng)參數(shù)設置、動作狀態(tài)輸入、輔助可視化、故障提示等主要功能模塊。
工藝參數(shù)計算模塊依據(jù)輸入板材尺寸和工件參數(shù),按工藝計算算法計算獲得對應的加工工藝參數(shù),并將此工件參數(shù)和工藝參數(shù)分別保存到數(shù)據(jù)庫中的工件參數(shù)表和工藝參數(shù)表中。
加工工藝參數(shù)選擇是從數(shù)據(jù)庫中調出保存的工件參數(shù)所對應的工藝參數(shù)進行加工,同時加工工藝參數(shù)將在主界面工序列表中顯示,可對列表中的工藝參數(shù)進行編輯修改并保存。
系統(tǒng)參數(shù)設置提供一些加工常用的參數(shù)值或極限值,可用于加工或限定部分輸入?yún)?shù)值大小以保證卷板機的加工精度,保存在數(shù)據(jù)庫的系統(tǒng)參數(shù)表中,可以根據(jù)具體情況進行參數(shù)的修改。
動作狀態(tài)輸入是對卷板機進行一系列手動調節(jié)。輔助可視化將直觀地顯示出上輥左、右主缸壓力和液壓電磁閥狀態(tài),由OpenGL 設計的模擬工作輥可模擬加工時工作輥狀態(tài)及位置變化。故障顯示是對設備運行的故障作出提示。三輥卷板機數(shù)控系統(tǒng)界面如圖3 所示。
2.1.2 控制模塊
控制模塊實現(xiàn)卷板機加工的自動控制,使卷板機按照設定的加工參數(shù)對卷板機工作輥進行運動控制,完成一定規(guī)格工件的加工??刂瞥绦蛲ㄟ^中斷方式實現(xiàn),由CPLD 提供中斷信號。
對于多數(shù)采用液壓傳動系統(tǒng)的卷板機,由液壓馬達驅動工作輥做回轉運動、液壓缸實現(xiàn)工作輥的移動或工作輥的傾斜,可能還有翻倒缸控制倒頭的復位和翻倒、平衡缸控制工作輥的平衡等。在卷板機液壓系統(tǒng)中,工作輥、倒頭裝置等被控對象都有對應的液壓電磁閥等被控元件,通過對這些電磁閥動作進行一定的組合可以使被控對象執(zhí)行相應的動作。卷板機加工時,控制程序使用工件的加工工藝參數(shù)來設定每道加工工序中各個工作輥的位置值等相關參數(shù),并結合采集的位置反饋值,工作輥動作控制子程序將按照一定的控制算法產(chǎn)生控制信號控制液壓系統(tǒng)中的液壓電磁閥等控制元件使工作輥執(zhí)行相應的動作或到達指定位置。卷板機某工作輥的運動控制流程如圖4 所示。
圖3 基于Qt 設計的三輥卷板機人機交互界面
圖4 工作輥位置控制流程
當卷板機的所有工作輥完成了系統(tǒng)設定的所有加工工序,加工過程結束。如果卷板機有倒頭裝置,則控制倒頭液壓缸帶動倒頭下降,取出制品。
需要注意的是對于一個工作輥由多個液壓缸帶動的情況,工作輥時移動需要對液壓缸的運動進行同步。采用“主從模式”來進行同步,即設定其中一個液壓缸的運動為主運動,其輸出為理想輸出,其余液壓缸的運動為從運動,從運動受到控制來跟蹤主運動的理想輸出來實現(xiàn)液壓缸的同步運動。
2.1.3 數(shù)據(jù)采集模塊
數(shù)據(jù)采集模塊用于采集各種反饋量和狀態(tài)值便于了解卷板機的工作狀態(tài)。采集各種開關量、壓力傳感器、位移傳感器、編碼器的反饋值等用于監(jiān)測設備工作狀態(tài)和工作輥的運動控制。
2.1.4 故障診斷模塊
故障診斷程序主要用于發(fā)現(xiàn)設備故障并可在數(shù)控系統(tǒng)界面的錯誤提示窗口上做出故障提示便于故障查找和排除,實時了解卷板機的運行狀態(tài)。
本數(shù)控系統(tǒng)運行Linux 操作系統(tǒng),系統(tǒng)層需要有CPLD 設備的驅動程序才能使CPLD 正常工作。CPLD設備驅動的基本原理是將CPLD 作為Linux 操作系統(tǒng)的一個字符型設備文件,通過Linux 系統(tǒng)提供的設備文件統(tǒng)一函數(shù)接口進行各種操作,如設備的初始化和釋放、設備的讀和寫、設備的打開和關閉等。需要注意的是,用戶空間對CPLD 設備的訪問通過內存映射機制實現(xiàn),即將CPLD 芯片看作是連接在ARM處理器芯片存儲Bank 上的一段物理地址來尋址,然后將此段物理地址空間映射到虛擬地址空間,通過操作系統(tǒng)API 可對此I/O 內存資源進行訪問。
本系統(tǒng)中,CPLD 掛載在ARM 的nRCS5 對應的存儲空間上,其物理起始地址為0x28000000,通過ioremap()函數(shù)調用可將對應大小的一段物理地址映射到內核虛擬地址空間。通過ioread()、iowrite()類函數(shù)對內核虛擬地址空間進行讀寫訪問,使用copy_to_user()從內核虛擬地址空間中讀數(shù)據(jù)到用戶空間,而寫操作則使用copy_from_user()實現(xiàn)相反的功能。
硬件層程序需要編寫CPLD 程序,在該數(shù)控系統(tǒng)中,CPLD 程序主要完成對系統(tǒng)的輸入輸出信息進行預處理以及為外圍芯片如AD/DA 轉換器等芯片提供運行時序和進行相關控制。CPLD 程序主要包括ARM 與CPLD 通信程序、開關量I/O 信號處理程序、AD、DA 芯片時序控制程序、旋轉編碼器信號處理程序、中斷信號發(fā)送程序幾個部分,采用Verilog HDL 語言可方便地實現(xiàn)各種功能。
ARM 與CPLD 的通信程序實現(xiàn)ARM 對CPLD內部寄存器的訪問,原理是將CPLD 作為ARM 的外部存儲器掛載在ARM 的存儲器Bank 上,通過內存映射,按照ARM 讀寫總線的時序要求來編寫Verilog HDL 程序,按地址訪問CPLD 內部定義的寄存器。實現(xiàn)正常的讀、寫操作需要設置好ARM 處理器控制寄存器對應的位寬、總線速率等。
開關量信號處理程序負責讀取開關量輸入信號以及發(fā)出開關量輸出信號。輸入信號由硬件接口獲取,經(jīng)調理電路后寄存到CPLD 內部定義的寄存器中,供ARM 讀取;開關量輸出信號則由ARM 將要輸出的信號發(fā)送到CPLD 相應的寄存器,并由CPLD對應的引腳輸出,信號經(jīng)過調理電路,最終通過數(shù)字量輸出接口輸出。
A/D 轉換時序程序是根據(jù)芯片手冊提供的時序要求編寫出其轉換狀態(tài)變化的有限狀態(tài)機程序,CPLD 產(chǎn)生時序信號并提供給A/D 轉換器芯片。轉換后的數(shù)據(jù)寄存到CPLD 的寄存器中由ARM 讀取。由于16 路模擬量需分時送入A/D 轉換器,需要編寫多路模擬開關的通道選擇程序,設計思路是CPLD 程序接收ARM 發(fā)送開始通道和結束通道的地址,然后程序可以實現(xiàn)分時選通這兩個通道之間的通道,或者選通任意單個通道。
D/A 轉換的數(shù)據(jù)則由ARM 通過CPLD 寄存器間接發(fā)送到D/A 轉換器進行轉換。由于系統(tǒng)的數(shù)據(jù)總線為16 位,D/A 轉換器為12 位,CPLD 程序接收ARM 發(fā)送的包含D/A 轉換器通道地址和轉換數(shù)據(jù)的數(shù)據(jù)幀并發(fā)送到D/A 轉換器的各個通道的數(shù)據(jù)寄存器,然后CPLD 程序接收ARM 發(fā)送轉換信號即可實現(xiàn)各個通道的模擬量輸出。
增量式旋轉編碼器信號處理程序將CPLD 讀取到的編碼器A、B 兩相信號進行四倍頻、依據(jù)相位進行辨向、對編碼器信號進行計數(shù)操作后得到編碼器的計數(shù)值,寄存在CPLD 寄存器中供ARM 讀取。每一路編碼器對應一個計數(shù)寄存器,同時還定義一個6 位的清零寄存器,通過對相應的位賦1 來清零相應編碼器的計數(shù)寄存器。
中斷信號發(fā)送程序每隔一定時間發(fā)送一個中斷信號給ARM,是控制程序運行的中斷源程序,系統(tǒng)中設置每2ms 發(fā)送一個中斷信號。
CPLD 程序使信號在硬件接口上正常輸入與輸出,實現(xiàn)數(shù)控系統(tǒng)對設備的控制。
基于ARM 的嵌入式卷板機數(shù)控系統(tǒng)接口豐富,結構簡單,可以根據(jù)控制需要配置不同的接口模塊,具有一定的通用性和較好的靈活性,用戶界面友好,結構緊湊、功耗低,可用于目前普遍使用的卷板機數(shù)控系統(tǒng)的替換和改造。
[1]方四喜.埃斯頓嵌入式數(shù)控系統(tǒng)在三輥卷板機上的解決方案[J].鍛壓裝備與制造技術,2012,47(4):51-53.
[2]邢偉榮,原加強,郭永平.水平下調式結構在大型三輥卷板機上的應用[J].鍛壓裝備與制造技術,2006,41(5):20-22.
[3]劉 源,朱善安.基于ARM9 和CPLD 的嵌入式工業(yè)控制系統(tǒng)[J].機電工程,2007,24(1):39-41.
[4]吳彥宏,陳相寧.S3C2410 在Linux 下的FPGA 驅動[J].科學技術與工程,2008,8(17):5034-5038.
[5]閆莎莎,朱世強,劉華山,等.基于CPLD 的光電編碼器測量系統(tǒng)[J].機電工程,2009,26(1):77-79.
[6]竇高強,車小霞.數(shù)控弧線下調式30×2500 四輥卷板機液壓系統(tǒng)的優(yōu)化[J].鍛壓裝備與制造技術,2014,49(5):39-40.
[7]李 森.四輥卷板機數(shù)控系統(tǒng)的設計與研究[D].南京:南京航空航天大學,2012.
[8]李沙妮,等.大型卷板機回轉電液系統(tǒng)的設計與優(yōu)化[J].液壓氣動與密封,2014,(5).