陳 卓,陳柏金
(華中科技大學 材料成形與模具技術國家重點實驗室,湖北 武漢430074)
卷板機是金屬加工行業廣泛使用的加工裝備。卷板機數控系統可滿足方便、高效、高精的生產要求。目前廣泛應用于卷板機上的數控系統是基于工業控制計算機和PLC 開發的,技術已經十分成熟。隨著電子行業技術的進步,嵌入式處理器憑借自身優勢得到越來越多的應用。相對于傳統的基于PLC開發的數控系統,嵌入式系統體積小,功耗低,成本低,同時能夠運行嵌入式操作系統,多任務處理能力強,運算速度快。從近年的發展趨勢看,工業控制系統的嵌入式化將是工業控制系統發展的一個重要方向。
本文詳細介紹一套采用ARM926EJ 核的S3C2416處理器和Altera 公司MAX II 系列CPLD EPM570T 144C5 為控制核心的數控系統設計方案。該系統具有完備的用戶接口和控制接口、運行Linux 操作系統、擁有基于Qt 設計的友好觸控界面,可適用于常用的三輥或四輥卷板機控制。此系統具有一定的通用性,也可搭配合適的數控軟件應用于其他工業控制場合。
該數控系統硬件設計主要分為ARM 最小系統和CPLD 互聯以及基于CPLD 擴展各種I/O 接口兩大部分。該數控系統具有64MB DDRII 運行內存,256MB SLC NAND Flash 存儲器用于存儲系統軟件和數據,ARM 處理器運行主頻為400MHz。ARM處理器是系統的控制核心,完成數據計算、系統控制、人機交互、通訊等任務。因ARM 芯片I/O 端口數量有限,而控制卷板機需要較多的I/O 端口,采用CPLD 擴展各類控制接口。ARM 通過16 位數據總線、8 位地址總線、控制總線(片選、讀、寫信號等)以并行總線方式與CPLD 實現互聯。
該數控系統電源電壓為5V,由于數控系統需要有不同的電壓確保各類器件正常工作,在系統電源模塊中分別采用LM2596、AD0515、AD587 等專用電源器件實現系統所需的5V、3.3V、±15V、±10V 等各種不同電壓。CPLD 運行時鐘由50MHz 的晶振提供。
卷板機數控系統需要對卷板機的工作輥、倒頭裝置等進行控制,根據卷板機液壓系統原理,對各種液壓控制元件進行控制,同時還需要對現場的各種傳感器、編碼器、開關量信號等進行采集以用于工作輥運動控制和監測設備運行狀態,系統采用2 片CPLD 芯片擴展了24/44 路開關量輸入/輸出接口、16/8 路模擬量輸入/輸出接口以及6 路增量式旋轉編碼器信號輸入接口以滿足控制需求,此外系統還具有觸摸屏LCD、USB、UART、以太網絡等接口。系統硬件部分設計成主控制電路板和各個接口電路板相分離的形式,便于構成不同配置的系統。
數控系統硬件接口整體結構如圖1 所示。
數控系統的各種硬件接口功能如下:
開關量輸出接口用于控制液壓電磁閥等控制元件,開關量輸入接口用于采集現場的各種開關量輸入值。采用PC817 光電耦合器實現開關信號的光電隔離,在數字量輸出時采用ULN2803 提高輸出功率。
增量式編碼器接口采集旋轉式編碼器信號,用于卷板機工作輥位移、角位移等的測量,需要將A+、A-、B+、B-、Z+、Z-差分信號轉為A、B、Z 單端信號,通過光電隔離以及信號整形來獲得良好的信號波形,再將信號電壓轉換為CPLD 引腳容許電壓即可送入CPLD。

圖1 基于ARM 的卷板機數控系統硬件結構
AD 轉換電路用來測量卷板機液壓系統的工作壓力以及部分位移信號,采用12 位的AD 轉換器AD1674 和多路模擬開關AD7506 實現。
對于一些控制精度要求高的卷板機,液壓缸的運動控制采用了電液比例閥,需要模擬量輸出接口來用于控制電液比例方向閥和比例壓力閥,采用12位4 通道DA 轉換器DAC7724 芯片實現。
LCD 觸摸屏接口用于外接8 寸觸摸屏、USB 接口可以用于外接鍵鼠、UART 接口用于與上位機進行通訊、以太網接口不僅可用于系統更新時的NFS掛載,同時也可用于實現控制系統網絡化,ARM JTAG 接口用于ARM 程序調試,CPLD 的JTAG 接口用于CPLD 程序的下載。
數控系統軟件實現人機交互、控制算法、分配和控制系統硬件資源、發出控制信號和設備狀態監測等任務。卷板機數控系統軟件分為應用控制層、操作系統層和硬件層三部分。該數控系統運行Linux 操作系統,其中操作系統層包括操作系統API、操作系統內核、設備驅動程序三部分。應用層軟件通過操作系統API 與系統層進行信息交互,系統層則通過設備驅動程序驅動CPLD 與其他外設,使信號通過硬件接口與被控設備產生交互以實現控制。系統軟件結構以及三者之間的關系如圖2 所示。

圖2 卷板機數控系統軟件層次結構
數控系統的應用控制軟件主要包括人機交互模塊、控制模塊、數據采集模塊和故障診斷模塊,其中人機交互模塊包括工藝參數計算、系統參數設置等功能模塊。
2.1.1 人機交互模塊
人機交互模塊基于Qt 開發,以水平下調式三輥卷板機人機交互模塊為例,其主要包括工藝參數計算、工藝參數選擇、系統參數設置、動作狀態輸入、輔助可視化、故障提示等主要功能模塊。
工藝參數計算模塊依據輸入板材尺寸和工件參數,按工藝計算算法計算獲得對應的加工工藝參數,并將此工件參數和工藝參數分別保存到數據庫中的工件參數表和工藝參數表中。
加工工藝參數選擇是從數據庫中調出保存的工件參數所對應的工藝參數進行加工,同時加工工藝參數將在主界面工序列表中顯示,可對列表中的工藝參數進行編輯修改并保存。
系統參數設置提供一些加工常用的參數值或極限值,可用于加工或限定部分輸入參數值大小以保證卷板機的加工精度,保存在數據庫的系統參數表中,可以根據具體情況進行參數的修改。
動作狀態輸入是對卷板機進行一系列手動調節。輔助可視化將直觀地顯示出上輥左、右主缸壓力和液壓電磁閥狀態,由OpenGL 設計的模擬工作輥可模擬加工時工作輥狀態及位置變化。故障顯示是對設備運行的故障作出提示。三輥卷板機數控系統界面如圖3 所示。
2.1.2 控制模塊
控制模塊實現卷板機加工的自動控制,使卷板機按照設定的加工參數對卷板機工作輥進行運動控制,完成一定規格工件的加工。控制程序通過中斷方式實現,由CPLD 提供中斷信號。
對于多數采用液壓傳動系統的卷板機,由液壓馬達驅動工作輥做回轉運動、液壓缸實現工作輥的移動或工作輥的傾斜,可能還有翻倒缸控制倒頭的復位和翻倒、平衡缸控制工作輥的平衡等。在卷板機液壓系統中,工作輥、倒頭裝置等被控對象都有對應的液壓電磁閥等被控元件,通過對這些電磁閥動作進行一定的組合可以使被控對象執行相應的動作。卷板機加工時,控制程序使用工件的加工工藝參數來設定每道加工工序中各個工作輥的位置值等相關參數,并結合采集的位置反饋值,工作輥動作控制子程序將按照一定的控制算法產生控制信號控制液壓系統中的液壓電磁閥等控制元件使工作輥執行相應的動作或到達指定位置。卷板機某工作輥的運動控制流程如圖4 所示。

圖3 基于Qt 設計的三輥卷板機人機交互界面

圖4 工作輥位置控制流程
當卷板機的所有工作輥完成了系統設定的所有加工工序,加工過程結束。如果卷板機有倒頭裝置,則控制倒頭液壓缸帶動倒頭下降,取出制品。
需要注意的是對于一個工作輥由多個液壓缸帶動的情況,工作輥時移動需要對液壓缸的運動進行同步。采用“主從模式”來進行同步,即設定其中一個液壓缸的運動為主運動,其輸出為理想輸出,其余液壓缸的運動為從運動,從運動受到控制來跟蹤主運動的理想輸出來實現液壓缸的同步運動。
2.1.3 數據采集模塊
數據采集模塊用于采集各種反饋量和狀態值便于了解卷板機的工作狀態。采集各種開關量、壓力傳感器、位移傳感器、編碼器的反饋值等用于監測設備工作狀態和工作輥的運動控制。
2.1.4 故障診斷模塊
故障診斷程序主要用于發現設備故障并可在數控系統界面的錯誤提示窗口上做出故障提示便于故障查找和排除,實時了解卷板機的運行狀態。
本數控系統運行Linux 操作系統,系統層需要有CPLD 設備的驅動程序才能使CPLD 正常工作。CPLD設備驅動的基本原理是將CPLD 作為Linux 操作系統的一個字符型設備文件,通過Linux 系統提供的設備文件統一函數接口進行各種操作,如設備的初始化和釋放、設備的讀和寫、設備的打開和關閉等。需要注意的是,用戶空間對CPLD 設備的訪問通過內存映射機制實現,即將CPLD 芯片看作是連接在ARM處理器芯片存儲Bank 上的一段物理地址來尋址,然后將此段物理地址空間映射到虛擬地址空間,通過操作系統API 可對此I/O 內存資源進行訪問。
本系統中,CPLD 掛載在ARM 的nRCS5 對應的存儲空間上,其物理起始地址為0x28000000,通過ioremap()函數調用可將對應大小的一段物理地址映射到內核虛擬地址空間。通過ioread()、iowrite()類函數對內核虛擬地址空間進行讀寫訪問,使用copy_to_user()從內核虛擬地址空間中讀數據到用戶空間,而寫操作則使用copy_from_user()實現相反的功能。
硬件層程序需要編寫CPLD 程序,在該數控系統中,CPLD 程序主要完成對系統的輸入輸出信息進行預處理以及為外圍芯片如AD/DA 轉換器等芯片提供運行時序和進行相關控制。CPLD 程序主要包括ARM 與CPLD 通信程序、開關量I/O 信號處理程序、AD、DA 芯片時序控制程序、旋轉編碼器信號處理程序、中斷信號發送程序幾個部分,采用Verilog HDL 語言可方便地實現各種功能。
ARM 與CPLD 的通信程序實現ARM 對CPLD內部寄存器的訪問,原理是將CPLD 作為ARM 的外部存儲器掛載在ARM 的存儲器Bank 上,通過內存映射,按照ARM 讀寫總線的時序要求來編寫Verilog HDL 程序,按地址訪問CPLD 內部定義的寄存器。實現正常的讀、寫操作需要設置好ARM 處理器控制寄存器對應的位寬、總線速率等。
開關量信號處理程序負責讀取開關量輸入信號以及發出開關量輸出信號。輸入信號由硬件接口獲取,經調理電路后寄存到CPLD 內部定義的寄存器中,供ARM 讀取;開關量輸出信號則由ARM 將要輸出的信號發送到CPLD 相應的寄存器,并由CPLD對應的引腳輸出,信號經過調理電路,最終通過數字量輸出接口輸出。
A/D 轉換時序程序是根據芯片手冊提供的時序要求編寫出其轉換狀態變化的有限狀態機程序,CPLD 產生時序信號并提供給A/D 轉換器芯片。轉換后的數據寄存到CPLD 的寄存器中由ARM 讀取。由于16 路模擬量需分時送入A/D 轉換器,需要編寫多路模擬開關的通道選擇程序,設計思路是CPLD 程序接收ARM 發送開始通道和結束通道的地址,然后程序可以實現分時選通這兩個通道之間的通道,或者選通任意單個通道。
D/A 轉換的數據則由ARM 通過CPLD 寄存器間接發送到D/A 轉換器進行轉換。由于系統的數據總線為16 位,D/A 轉換器為12 位,CPLD 程序接收ARM 發送的包含D/A 轉換器通道地址和轉換數據的數據幀并發送到D/A 轉換器的各個通道的數據寄存器,然后CPLD 程序接收ARM 發送轉換信號即可實現各個通道的模擬量輸出。
增量式旋轉編碼器信號處理程序將CPLD 讀取到的編碼器A、B 兩相信號進行四倍頻、依據相位進行辨向、對編碼器信號進行計數操作后得到編碼器的計數值,寄存在CPLD 寄存器中供ARM 讀取。每一路編碼器對應一個計數寄存器,同時還定義一個6 位的清零寄存器,通過對相應的位賦1 來清零相應編碼器的計數寄存器。
中斷信號發送程序每隔一定時間發送一個中斷信號給ARM,是控制程序運行的中斷源程序,系統中設置每2ms 發送一個中斷信號。
CPLD 程序使信號在硬件接口上正常輸入與輸出,實現數控系統對設備的控制。
基于ARM 的嵌入式卷板機數控系統接口豐富,結構簡單,可以根據控制需要配置不同的接口模塊,具有一定的通用性和較好的靈活性,用戶界面友好,結構緊湊、功耗低,可用于目前普遍使用的卷板機數控系統的替換和改造。
[1]方四喜.埃斯頓嵌入式數控系統在三輥卷板機上的解決方案[J].鍛壓裝備與制造技術,2012,47(4):51-53.
[2]邢偉榮,原加強,郭永平.水平下調式結構在大型三輥卷板機上的應用[J].鍛壓裝備與制造技術,2006,41(5):20-22.
[3]劉 源,朱善安.基于ARM9 和CPLD 的嵌入式工業控制系統[J].機電工程,2007,24(1):39-41.
[4]吳彥宏,陳相寧.S3C2410 在Linux 下的FPGA 驅動[J].科學技術與工程,2008,8(17):5034-5038.
[5]閆莎莎,朱世強,劉華山,等.基于CPLD 的光電編碼器測量系統[J].機電工程,2009,26(1):77-79.
[6]竇高強,車小霞.數控弧線下調式30×2500 四輥卷板機液壓系統的優化[J].鍛壓裝備與制造技術,2014,49(5):39-40.
[7]李 森.四輥卷板機數控系統的設計與研究[D].南京:南京航空航天大學,2012.
[8]李沙妮,等.大型卷板機回轉電液系統的設計與優化[J].液壓氣動與密封,2014,(5).